Doxygenの設定メモ
今までpdf出力は文字化けがするので諦めていた。 以下のサイトを参考に色々と試したら、文字化けが治ったしフォントも綺麗になった。
残念ながら、今はもう紙の関数仕様書を要求する仕事は無いし、おそらくこれからも無いので単純に趣味の世界です。
で、作業メモ。
環境
環境は、macPortsで構築した。
- macosx 10.12.4
- xcode 8.3.1
- MacPorts 2.4.1
- TeX Live 2016/MacPorts 2016_4
- doxygen 1.8.13
構築したと言っても以下の1行を入力しただけ。
$ sudo port install texlive +full
Doxyfileファイルの設定
最低限、以下の3項目を変更すれば良い。
OUTPUT_LANGUAGE = English
LATEX_CMD_NAME = latex
USE_PDFLATEX = YES
これらの項目を以下のように変える。
OUTPUT_LANGUAGE = Japanese
LATEX_CMD_NAME = uplatex
USE_PDFLATEX = NO
それぞれの意味は、参考にしたサイトに載っているので特にここでは書かない。
ソースコードの位置や出力ファイルの位置も各自に合わせること。
最初の出力
一度、doxygenコマンドを実行して、latexディレクトリを生成する。
生成されたmakeファイルを実行すると文字化けのするpsファイルやpdfファイルしか作成できない。
その壊れたlatexディレクトリ中のmakeファイルを修正する。
修正箇所は3箇所。
1. pdfの生成にはdvipdfmxを使う
PostScriptファイルから生成している箇所をdvipdfmxから生成するように変更するだけです。
以下の箇所を変更します。
refman.pdf: refman.ps
ps2pdf refman.ps refman.pdf
変更後は以下のようになります。
refman.pdf: refman.dvi
dvipdfmx refman.dvi
2. pdfの複数のページを1ページにまとめるにはpdfnupを使う
ps2pdfはうまく日本語が通らないようなので、pdfnupを使います。
以下の箇所を変更します。
refman_2on1.pdf: refman_2on1.ps
ps2pdf refman_2on1.ps refman_2on1.pdf
変更後は以下のようになります。
refman_2on1.pdf: refman.pdf
pdfnup refman.pdf
mv refman-nup.pdf refman_2on1.pdf
3. 複数のpdfをまとめたファイルの後片付けをする
おそらく、doxygenの記載漏れ。clean時にrefman_2on1.pdfも含めるだけ。
以下の箇所を変更します。
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
変更後は以下のようになります。
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf refman_2on1.pdf
pdfに目次を作る
ここまでの変更を行うとpdfの文字化けは治ります。ここから先は、大抵の人には関係ありません。
印刷時の目次はあります。ここで作る目次は、pdfのbookmarkと呼ばれる機能です。
リンクの色は黒。bookmarkはdvipdfmxに対応させる。
% Hyperlinks (required, but should be loaded last)
\usepackage{ifpdf}
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode%
}
上記のコードを以下に置き換え。
% Hyperlinks (required, but should be loaded last)
% hyperrefをdvipdffmx用に決め打ち
\usepackage[dvipdfmx,
pagebackref=true,
colorlinks=true,
linkcolor=darkgray,
urlcolor=darkgray,
bookmarks
]{hyperref}
\usepackage{pxjahyper} % 日本語で'しおり'したい
これで、目次も出来て、リンクも作成された。
見た目を整える
完全に趣味です。
本文を明朝体にして、章立てやラベルはゴシック体に変更する。
% Custom commandsの末尾にでも以下のコードを追加する。
\usepackage[uplatex,deluxe, expert]{otf}
% sectionの書体を"ゴシック体、サンセリフ体、太字"
\allsectionsfont{
\gtfamily\sffamily
\color{darkgray}
}
% labelの書体を"ゴシック体、サンセリフ体、太字"
\renewcommand{\DoxyLabelFont}{
\gtfamily\sffamily
\color{darkgray}
}
\renewcommand{\kanjifamilydefault}{\mcdefault} % 日本語書体を明朝体
\renewcommand{\familydefault}{\rmdefault} % 欧文書体をローマン体
また、細すぎるので表紙のタイトルはゴシック体のボールドにする。begin{titlepage}の次の行に追加。
\begin{titlepage}
\gtfamily\sffamily\bfseries % <-- これを追加
ヒラギノフォントを使っているかも
macPorts の場合以下のコマンドでヒラギノを有効にした記憶があるが定かでは無い。
$ cd /opt/local/share/texmf-texlive/scripts/cjk-gs-integrate
$ sudo perl cjk-gs-integrate.pl --link-texmf --force
$ sudo mktexlsr
$ sudo kanji-config-updmap-sys hiragino-elcapitan-pron
以下のコマンドではヒラギノが埋め込まれているように見える。
$ pdffonts refman.pdf
参考URL
- DoxygenのLaTeX出力で日本語を使う(2015年版) http://dev.activebasic.com/egtra/2015/06/29/814/
次は、上記のサイトのように、スクリプトで自動化したい。