Texdoc 3.0をリリースしました

2018-06-08 (updated: 2025-12-09) #TeX Live #Texdoc

去る6月6日、2012年以来実に6年ぶりとなるTexdocの大型アップデートを行いました。既にTeX Live 2018に収録されています。従来のTexdocはCTANを介さない極めて特殊な方法でアップデートされていましたが、今回からは他のパッケージと同様CTANを経由してのリリースとなります。

Texdoc 3.0の新機能

Texdoc 3.0の目玉機能は「新しいオプションパーサ」と「あいまい検索」の2つです。

新オプションパーサ

従来のTexdocでは、複数のオプションを指定する場合、たとえショートオプションでも

$ texdoc -v -s -l <keyword>

のように1つ1つにハイフンをつけて個別に指定してやる必要がありました。

新しいオプションパーサは、可能な限りPOSIX互換になることを目指していて

$ texdoc -vsl <keyword>

のように複数のショートオプションをまとめて指定できるようになりました。

あいまい検索

従来のTexdocでは、ミスタイプや記憶違いによって間違ったパッケージ名を入力すると

$ texdoc -l tikzsnowman
Sorry, no documentation found for tikzsnowman.
If you are unsure about the name, try searching CTAN's TeX catalogue at
http://ctan.org/search.html#byDescription.

のように“not found”なメッセージが出て終わりとなってしまいました。

Texdoc 3.0では、入力キーワードに対して該当するドキュメントが1つも見つからなかった場合、自動的にあいまい検索が走ります。したがって仮にタイポや記憶違いがあっても

$ texdoc -l tikzsnowman
 1 /usr/local/texlive/2018/texmf-dist/doc/latex/scsnowman/scsnowman.pdf
   = Package documentation
 2 /usr/local/texlive/2018/texmf-dist/doc/latex/scsnowman/scsnowman-sample.pdf
   = [ja] Sample of use
 3 /usr/local/texlive/2018/texmf-dist/doc/latex/scsnowman/README.md
   = Readme
Enter number of file to view, RET to view 1, anything else to skip:

のように、入力に最も近い名前のパッケージを見つけ出すことができます。

このあいまい検索が許容する「あいまいさ」(正確にはLevenshtein距離)は設定ファイル (texdoc.cnf) でfuzzy_levelの値を調整することで自由にカスタマイズすることができます1

fuzzy_level = 3

デフォルト値は5ですが、これを大きくすればより許容されるあいまいさが大きくなり、小さくすると許容範囲が狭まります。また0を指定することにより、あいまい検索機能を完全にオフにすることも可能です。

上記の新機能については先月ポーランドで開催されたBachoTeX 2018でトークを行っているので、詳しいことについてはその際の発表資料も参考にしてください(ただし当然ながら、英語です)。

その他の変更点

上記2つの新機能以外にも、Texdoc 3.0では多くのバグ修正や軽微な更新を行っています。例えば、下記の記事で指摘されているPAGER等の環境変数が(状況によって)効かない問題が修正されています。

また、昨年末より開発リポジトリをGitHubに移転しました。

細かい変更点や議論は、上記リポジトリで確認できます。バグ報告等もGitHub上で受け付けています。

おわりに

昨年11月頃からちょいちょいTexdocのソースコードをいじっていたのですが、私が大きく手を入れたバージョンをリリースするのはこれが初めてです。大きな問題がないといいのですが……

Texdocは全世界でかなり多くのTeX Liveユーザが利用しているツールだと思われますが、意外にも5年ほどまともにメンテナンスされていなかったようです2。Texdocのスコア計算の仕組みを理解してこのブログに記事を書くためにTexdocのソースコードを読み込んだ結果3、うっかりメンテナになってしまったというのがことの顛末です。

なにはともあれ、TeXユーザの皆さまにはTexdoc 3.0でより快適なTeXライフを送っていただければ幸いです。バグ報告や機能追加の要望はGitHubリポジトリでissue登録・プルリクエストするか、または私個人宛てに送っていただければ対応するかも知れません(日本語でもokです)。


  1. texdoc -fを実行すると、編集すべきtexdoc.cnfの位置を調べることができます。 ↩︎

  2. そんなことを言うと従前メンテナンスを担当されていたTeX Liveチームの方々に失礼なわけですが、彼らはTeX Live全般について膨大な仕事を処理してくださっているので、Texdocに注力するわけにもいかず仕方のないことです。 ↩︎

  3. もっというとスコア計算に関係のない部分まで実装を読んだのはジョークソフトを作るためでした。 ↩︎