2014年9月26日金曜日

latexmkの最も敷居の低い使い方

makefile を作ります。

all:
clean:
        latexmk -c hoge.tex

latexmk を設定しなくても make clean を簡単に作れます。おわり。 

……これ地味に見えるんですが、rmとアスタリスクの組み合わせが招く不幸を防げるという点でとてもありがたいと思いました。-c にするか -C にするかはお好みで。

2014年9月23日火曜日

uim-mozcをパッケージに触らず無効化する方法

システムワイドに uim-mozc が入っていて、uim-anthy を入れるからmozcは無効化したい、でもパッケージは削除したくない…… そんなシチュエーションに遭遇する人はあまりいないと思いますが、そんなときは uim から mozc を無効化しましょう。 システム全体に影響する変更方法はこちら。


# uim-module-manager --unregister mozc --path /var/lib/uim
で、このコマンドを探し当てるためにまた遠回りしたので、その経緯を書いておきます。

まず、uim の仕組みが分かっていなかったので、とりあえずなにかファイルを消せばいいと思った(強引)のですが

% dpkg -L uim-mozc
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/uim
/usr/lib/x86_64-linux-gnu/uim/plugin
/usr/lib/x86_64-linux-gnu/uim/plugin/libuim-mozc.so
/usr/share
/usr/share/uim
/usr/share/uim/pixmaps
/usr/share/uim/mozc.scm
/usr/share/uim/mozc-custom.scm
/usr/share/uim/mozc-key-custom.scm
/usr/share/doc
/usr/share/doc/uim-mozc
/usr/share/doc/uim-mozc/README.Debian
/usr/share/doc/uim-mozc/copyright
/usr/share/doc/uim-mozc/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/uim-mozc
/usr/share/uim/pixmaps/mozc_tool_dictionary_tool.png
/usr/share/uim/pixmaps/mozc.png
/usr/share/uim/pixmaps/mozc_tool_selector.png
/usr/share/uim/pixmaps/mozc_tool_config_dialog.png

当然、なにを消して良いかこれだけで理解するのは無理というもの。

そういえばdebian にはパッケージのコントロールファイルがあるじゃないか。それを見よう、と思い立つわけです。

% dpkg -e uim-mozc_1.5.1090.102-4+deb7u1_amd64.deb ~/tmp-uimcontrol
% cd ~/tmp-uimcontrol
% ls -la
total 44
drwxr-xr-x   2 tarai staff  4096 Jun  7  2013 .
drwx------ 140 tarai staff 20480 Sep 23 17:49 ..
-rw-r--r--   1 tarai staff  1010 Jun  7  2013 control
-rw-r--r--   1 tarai staff   560 Jun  7  2013 md5sums
-rwxr-xr-x   1 tarai staff  1504 Jun  7  2013 postinst
-rwxr-xr-x   1 tarai staff   132 Jun  7  2013 postrm
-rwxr-xr-x   1 tarai staff   985 Jun  7  2013 prerm
-rw-r--r--   1 tarai staff    21 Jun  7  2013 shlibs
% lv postinst
(中略)
    configure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --register mozc --path /var/lib/uim
        fi
    ;;
(以下略)
% lv prerm
(中略)
    remove|deconfigure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --unregister mozc --path /etc/uim
        fi
        ;;
(以下略)

postinst や prerm の詳細は http://www.debian.or.jp/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.html が詳しいです。

つまりこの uim-module-manager というコマンドが重要なんですね、というところにたどりつき、 冒頭のような操作で大丈夫だろう、という結論に到達した次第です。
(何故postinstとprermで pathの引数が違うんだろう……)