Texinfo で日本語 PDF 出力
Texinfo が 6.3 になってから、日本語の PDF を直接(TeX の助けを借りるけれども)生成することができるようになったそうです。6 系になってから Perl スクリプトになり、動作がかなり遅くなったのですが、出力される HTML のタグ付けはかなりまともになりました。PDF を使うことが(個人的には)なくなったので現状に満足していたのですが、やっぱり試してみたくなりました。
今までは texi
ファイルから日本語の PDF を生成するために、下記のような手順で生成していました。
TEX=ptex texi2dvi kemof.texi dvipdfmx kemof.dvi
これで PDF ファイルが生成されるのですが、日本語の見出しのフォントサイズが小さかったりして、あまり満足のできるものではありませんでした。
新しいバージョンの texinfo
をインストールしてから、そのソースの texinfo-6.3/doc
内に移動し、サンプルの short-sample-ja.texi
から PDF を生成してみることにしました。
しかし下記のようにコマンドを実行しても、エラーが出てうまくいきません。
> texi2pdf short-sample-ja.texi This is pdfTeX, Version 3.14159265 ... The TeX engine is not LuaTeX / XeTeX. LuaTeX / XeTeX is required for Japanese Texinfo files.
TeXLive 2016 をインストールしてあるのですが、パスか何かが悪いのでしょうか?しばらく気付かなかったのですが、PDFTEX=luatex
のように、環境変数で指定してやるとうまくいくようです。もちろん PDFTEX=xetex
でも大丈夫です。
さて、サンプルからの生成はうまくいくようになったのですが、自分のプロジェクトの texi
ファイルから PDF を生成しようとすると、必要なファイルが無いといってビルドが止まってしまいます。もちろん、サンプルにあるようにヘッダ部分は下記のように修正してあります。
\input texinfo-ja @c -*- texinfo -*- @documentencoding UTF-8 @documentlanguage ja
どうやらカレントディレクトリに texinfo-ja.tex
と txi-ja.tex
を置いてやると、うまくいくようです。
TeXLive のディレクトリを調べてみると /usr/local/texlive/2016/texmf-dist/tex/texinfo
に texinfo 関連のものが入っているようです。しかしここには texinfo-ja.tex
と txi-ja.tex
は存在していませんでした。この場所は TeXLive が使うものであって、texinfo をインストールしても、この場所にはインストールしてくれないようです。2017 年版ではデフォルトで収録されるのかな?
ということで、ユーザーがバージョン(年度)に関係なく勝手に使える /usr/local/texlive/texmf-local/tex/latex/local/
以下に texinfo
というディレクトリを作り、そこにコピーしてみることにしました。そして texhash
を実行して ls-R
を更新します。
> cd /usr/local/texlive/texmf-local/ > sudo mkdir tex/latex/local/texinfo > sudo cp texinfo-ja.tex tex/latex/local/texinfo/ > sudo cp txi-ja.tex tex/latex/local/texinfo/ > sudo texhash
これでカレントディレクトリに texinfo-ja.tex
と txi-ja.tex
がなくても PDF を生成することができるようになりました。
> PDFTEX=luatex texi2pdf kemof.texi
わ〜い!PDF が出力された!コントリビュートした人すご〜い!