Doxygenと戯れる日々

現在せっせと某プログラムのドキュメント作りに励んでいます。といっても僕は『ソースを読めば全て書いてあるでしょう、バグも含めて(by まつもとひろゆき氏)』で思考停止してしまっているので、ドキュメントといってもソースに埋め込むコメント程度しか書けません。で、あとはDoxygenで処理してHTMLなりPDFなりにしようという算段です。今回の記事はDoxygenをWindows(+Cygwin)で使うまでに設定したことを、メモ書きで自分用に残しておこうと思いました。

続きをどうぞ。

例によって箇条書きです。

まずは文字コードの話です。DoxygenをCygwin、というかWindows上で使う場合、文字コードの問題が発生する(Shift-JISが悪さをしてTeXの¥エスケープと勘違いする)ので、全てEUCコードで処理した方が無難なようです。設定としてはDoxygenの設定ファイルにおいて以下の設定をしています。

OUTPUT_LANGUAGE = Japanese
USE_WINDOWS_ENCODING = NO
INPUT_FILTER = "nkf -e"
LATEX_CMD_NAME = platex-euc

次は数式の話です。HTMLに数式を画像で埋め込む際には、TeXで数式がdvi化され、それをdvipsで画像にしているようですが、Cygwinのdvipsではフォントの指定をするのが面倒であったので、/usr/binにあったdvipsをTeXインストーラ(TeX Wikiの解説ページ)でインストールされるdvipsにシンボリックリンクで置換しました。ただしここでdvipsのオメガ拡張がどうの、という話が絡んでいるので、odvipsを使いました。

最後に、HTMLを一つのファイルにまとめてchm形式にするためにした設定を書いておきます。chm形式とはWindowsでよく見られるヘルプファイルの形式で、複数のHTMLや画像ファイルを一つのファイルにまとめて圧縮をかけたものです。作るためにはM$謹製のツール、HTML Help Workshopを利用します(リンク先の日本語版の方はどうやらドキュメント類だけのようなので、英語版をインストールしました)。あとはDoxygenの設定を以下のように行えば、chm形式でドキュメントが生成とれるようになりました。

GENERATE_HTMLHELP = YES
HHC_LOCATION = "/cygdrive/path/to/HTML Help Workshop/hhc.exe"

ただし現時点ではEUCで文字コードを処理しているためか、索引ページが文字化けを起こしてしまっています。索引はShift-JISでなければならないのでしょうか。現在調査中です。

もうしばらくしたら、雑然と置いてあるソースがわかりやすくなるかもしれません(笑)。

March 20, 2007 23:21 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

私はWindows用のDoxygenをデフォルトのSJISで使っていますが、文字コードの問題はここ数年おきていません。警告が出ますが知らん顔で使っています。
Doxygen、あまりにすばらしいので頼りっぱなしになると、説明が全部局所的になってしまいます。桑原桑原。

Posted by: 酔漢 : March 21, 2007 08:14 AM

>酔漢さん
そうですね、まさに局所的になってきていますorz そのうえTeXの数式を埋め込むのが楽しくて仕方ありません(笑)

Posted by: fenrir : March 21, 2007 10:57 PM

私もWindows版のをつかっています。得にデフォルトで問題ないですね。警告すら出た記憶がありません(^^;
個別にマニュアルを作るとそっちに時間取られて大変ですが、Doxygenだけで終わることもできないので使いようですね。

Posted by: まや : March 22, 2007 10:33 AM

>まやさん
そうですね。個別にマニュアルを作り出すと色々と細かいところが気になりだして、なかなか終わらない性分(凝り性らしい)なので、ざっくりやってくれるDoxygenのようなツールがないと身の破滅です(笑)

Posted by: fenrir : March 25, 2007 12:27 AM

こんにちは、私も全く同じ現象で煮詰まってしまっています。
何故索引だけ文字化けしてしまうのでしょうね??
私も現在調査中ですが、もし解決策等、既に発見して
いましたら、ぜひご教授ください m(_)m

Posted by: Smile : July 5, 2007 08:19 PM

>Smileさん
はじめまして。結局のところnkfで全てSJISに変換してからhhc.exeをかけるようにすることで解決しました。参考にこちらで利用しているMakefileやDoxyfileをこのあたりにおいておきます。お役に立てれば幸いです。
https://fenrir.naruoka.org/download/archive/doxygen/

Posted by: fenrir : July 8, 2007 02:24 AM

コメントする