仕事で書いた Perl モジュールの API 仕様を紙媒体にしなければならないので、今回は pod2latex を使ってみる。
pod2latex -modify -full -out hoge-utf8.tex lib
で lib ディレクトリ以下の *.pm の Pod が集められて hoge-utf8.tex になる。ソースを UTF-8 で書いているのでこれを lv などで EUC-JP に変換して、platex してdvipdfmx。
前に Javadoc から LaTeX に落とした時に比べて非常にすんなりと変換してくれる。 '=item foo([opt])' とかすると ] 文字が落ちたりする以外は特に今のところ目につく問題なし。
ま、いざとなったらスクリプトに手を入れて直せるだろうし、なかなかいいんじゃないでしょうか。
Perl で書かれたネットサービスの機能変更をする必要があって、まずはコードリーディングからということで ag (The Silver Searcher) 使ってメソッド名で検索しつつ処理の流れを影響範囲などをチェック。でもなんかしっくりこないんだよなーと思っていたんだけれど、ふと見たら、あれこのメソッドここでも使っているのってな感じで。どうも ag でマッチしていなかったらしい。
あちゃー。
日本語を含むファイル (EUC-JP) のいくつかがバイナリと誤判定されて検索対象から外れてマッチしていなかった模様。--debug オプションを指定すると
DEBUG: DEBUG: File ./Hoge.pm is binary. Skipping...
とか出力された。
ag 0.13.1 と、話題になった時にインストールされたちょっと古いというのもあるかもしれないけれどもこれはちょっと厳しいなぁ。
ag は最近悪い評判をたまに見かけてたけど、自分もはまったわー。もう使わん。
git clone して src/util.c の is_binary() を見る限り最新でも駄目そう。
昨年話題になった ag (The Silver Searcher) は、UTF-8 以外の日本語テキストファイルの扱いに難があったので ack に戻していたのだけれど、 pt (The Platinum Searcher) が良いというので ack から乗り換えてみた。
UTF-8 やら 日本語 EUC (EUC-JP)やらシフト JIS(Shift_JIS)やら、様々な文字エンコーディングのファイルのあるディレクトリ以下をまとめて検索できるのいいね。
Emacs の設定に以下を追加しておいた。
(let ((pt (executable-find "pt"))) (if pt (setq grep-find-command (concat pt " --nocolor --nogroup "))))
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。