Contents
目的
簡単に日本語LaTeX環境を構築できるようにする。
- LaTeXに関係するパッケージと環境構築に必要なコマンドを洗い出す(完了)
必要最低限なものを選びだし、それをインストールしてくれるlatex-env-jaパッケージを作成する(完了)
- ptetex/ptexliveを簡単にインストールできるようにする(未定)
- テスト用のデータを作成する
LaTeXパッケージ一覧
- 最低限必要なもの
tetex-*
teTeXはLaTeXに関するソフトウェアを集めたLaTeXディストリビューションの一つ。pTeXもteTeXを元に日本語対応を行っている。2006年5月、大本のメンテナンス終了が宣言された。Ubuntuでも、Gutsy以降は全てTeX Liveで代替できることになっている。いまだteTeXに依存しているパッケージも存在するため、TeX Liveをインストールしていない状態でpTeXをインストールするとtetex-binパッケージもインストールされるが、実体のないパッケージなのでteTeXに依存するパッケージが存在しなければ削除しても問題ない。
texlive
TeX LiveはLaTeXに関するソフトウェアを集めたLaTeXディストリビューションの一つ。teTeXの後継と目されているが、あらゆるLaTeXソフトウェアを網羅しようとしているので、パッケージがとてつもなく巨大(通常インストールで150MBほど、フルインストールだと1GBを越える)。Gutsy以降はteTeXが廃止されたので、teTeXベースなpTeXがTeX Liveベースでも正しく動くかどうか確認する必要がある。pTeXをインストールするのに900MB弱の空き容量が必要になる。その後、不要なパッケージが大量に出るのでapt-get autoremoveすれば減量できるが、それでも500MBほど必要。
- 日本語化に必要なもの
ptex-*
pTeXはアスキーが開発している日本語版LaTeX。teTeXを土台にして、縦書きなどオリジナルには存在しない日本でよく使う機能を実装している。
xdvik-ja
日本語も表示できるDVIファイルビューワ。
- 必須ではないがよく使われるもの
dvipsk-ja
DVIファイルをPSファイルに変換するコマンドとその日本語対応版。
dvi2ps
DVIファイルをPSファイルに変換するもう一つのコマンド。dvipsとの違いは?
dvipdfmx
DVIファイルからPDFファイルを作成するためのコマンドdvipdfmの日本語対応版。
okumura-clsfiles
日本語用クラスファイルjarticleとjbookの改良版であるjsarticleとjsbook、さらにいくつかのスタイルファイルが含まれている。主な改善点はこちらに書かれている。
- あると便利なもの
dvi2ps-fontdesc-morisawa5
DVIファイルをモリサワフォントにあわせてPSファイルに変換するための設定ファイル。モリサワフォントを所持していて、okumura-clsfilesのmorisawa.styを使うためには必要になる。
jmpost
図形などのEPS画像を作成できるソフトウェアMetaPostの日本語対応版。
jbibtex-bin
参考文献作成コマンドbibtexの日本語版jbibtex。日本語特有のパラメータなどが追加されている。
mendexk
索引作成コマンドmakeindexの日本語版mendex。本家との違いはこちら
latexmk
索引や参考文献などを作成する場合、何度かLaTeXコマンドを実行する必要がある。これらのパッケージは、適切な回数だけコマンドを実行してくれるもの。latexmkはオプションで設定するタイプ、latex-mkはMakefileみたいなものを作成して設定するタイプみたい。
latex-mk
pybliographer
BibTeXファイルのGUI管理ツール。
yatex
YaTeXはEmacsでLaTeXを編集するのに便利なelファイル集。
- LaTeX環境を使うもの
lyx
LyXはバックエンドにLaTeXシステムを使ったワードプロセッサ。バージョン1.5以降でUTF-8に完全に対応し、「UTF-8に対応したLaTeXシステムを使えば」日本語の文書も作成可能。ちなみに、上記pTeXはUTF-8には対応していない。
latex2html
LaTeX2HTMLはその名のとおり、LaTeXソースファイルをHTMLに変換してくれるソフトウェア。
dvipng
DVIファイルをPNGファイルに変換するコマンド。
latex-beamer
LaTeXシステムで簡単にプレゼンテーション用PDFを作成するためのbeamerクラスファイル。いちおう日本語も使えるが、日本語に対応していないpdflatexというコマンドを前提に作成しているので、 dvipdfmxでPDFを作成した場合、一部の画面効果が機能しない。
- その他
adobereader-jpn
Adobe製PDFファイルビューワ。PDFファイルを読みたい場合、これを使えばまず問題は起きない。ただし、プロプライエタリ。日本語版セットアップ・ヘルパから簡単にインストールできる。
evince
Ubuntuに標準でインストールされる、PDF・PS・DVIファイルビューワ。ただし標準では日本語を含むPDF/PS/DVIファイルを表示できない。
xpdf
PDFファイルビューワの一つ。Evinceよりは日本語を含むファイルや著作権保護されたファイルに対応できているらしい。EvinceではXpdfの技術を元とにしたライブラリpopplerを使ってPDFを表示している。
xpdf-japanese
日本語PDFファイルを表示するのに必要なCID/CMapに関するファイルを提供している。よってこのパッケージはEvinceで日本語PDFファイルを表示するために必要となる。
gv
PostScriptファイルビューワ。PDFファイルも読めるらしい。Evinceがある以上、インストールする必要はあまりないかもしれない。あとgnome-gvはGutsy以降削除されている。
gs-cjk-resource
Evinceで日本語PSファイルを表示するときなど、PostScriptインタプリタであるgsで日本語を解釈させるために必要。
cmap-adobe-japan1
PDFやPostScript関係のフォントマッピングの問題を解決するファイル集。japan1/japan2が日本語関係。cns1が繁体字、gb1が簡体字、korea1がハングル。dvipdfmxでPDFを作成したり、Evinceやxpdfで日本語を表示する場合はjapan1が必要になる(japan2は通常は必要ない)。
cmap-adobe-japan2
cmap-adobe-cns1
cmap-adobe-gb1
cmap-adobe-korea1
以下募集中:間違いの指摘、上記以外のパッケージの提案、どれをlatex-env-jaに入れるべきか、など
インストールの流れ
sudo apt-get install latex-env-ja
texlive, texlive-math-extra, ptex-bin, xdvik-jaがインストールされる。
- これで日本語TeXファイル(EUC-JP)をDVIファイルにし、それを表示するために必要なパッケージは全てインストールされる。
sudo apt-get install latex-extra-ja
latex-env-ja, dvipsk-ja, dvipdfmx, cmap-adobe-japan1, okumura-clsfiles, jmpost, jbibtex-bin, mendexkがインストールされる。
- これで日本語DVIファイルをPDFやPSファイルに変換できる。
sudo jisftconfig add
新クラスファイルを使う場合はこれを実行する必要がある。日本語版セットアップ・ヘルパを使えば自動で実行してくれる。詳しいことはこちら。
- 新クラスファイルで生成したDVIファイルを、Defomaで管理するフォント(例えばIPAモナーフォント)で表示するために必要。
パッケージインストール後に必要な処理
参考サイト
okumura-clsfiles用の設定
UbuntuにLaTeXをインストール上でよく参照されるTMCosmosでpTeXをインストール後に実行されているコマンド
sudo jisftconfig add
は日本語版dvips(dvipsk-ja)の設定ファイル(/etc/texmf/dvipsj/config.ps)に、okumura-clsfilesで使われる日本語フォント用(*-jis.tfm)のパッチを当てるシェルスクリプトである。つまりdvipsk-jaをインストール後に行うことが望まれる。
また、このコマンドはptex-jisfontsパッケージに属するが、ptex-jisfontsをインストール時に、dvipdfmxが「既にインストールされていれば」dvipdfmx用の設定(/etc/texmf/dvipdfm/fontmapsxの作成)もしてくれる。よってptex-jisfontsよりもdvipdfmxを先にインストールしたほうがよい。そうでなければ、dvipdfmxインストール後に
sudo dpkg-reconfigure ptex-jisfonts
を実行する必要がある。ちなみにこれはTMCosmosでdvpdfmxのインストール時にやっているdvipdfmx.cfgの修正と同じ効果がある。
xdviのデフォルトフォント変更
Ubuntuの初期設定ではxdviで日本語を表示したとき、東風フォントを利用するようになっている。これは見た目が悪いので、IPAモナーフォントがインストールされている場合はそれを利用したい。TMCosmosでは東風フォントを削除し、IPAモナーフォントへのシンボリックリンクを作成しているが、以下の方法なら東風フォントを残したままIPAモナーフォントを使うことができる。
通常のクラスファイルを使う場合
この内容は、Feisty以前の場合の話。Gutsyでは、IPAモナーフォントのパッケージ(ipamonafont_1.0.5-0ubuntu-ja2以降)であらかじめ修正されている。
pTeXが提供している日本語用のクラスファイル(jarticle、jreportなど)を使う場合、文字情報はrml.tfmなどを参照するので実際のフォントは/etc/texmf/vfontmap.d/20xdvik-ja.mapの内容に従う。
@Mincho Roman|Mincho@ rml JIS-H % ASCII pTeX rmlv JIS-V % ASCII pTeX dm JIS-H % NTT jTeX @Gothic SansSerif|Gothic@ gbm JIS-H % ASCII pTeX gbmv JIS-V % ASCII pTeX dg JIS-H % NTT jTeX
このファイルの書式についてはこちらを参照。とりあえずフォント名やエンコーディング名は無視して、フォントファイル名(@で始まる行)のみを変更する。@の間は Defoma(Debian Font Manager)による一般名(GeneralFamily)であり、hintsファイルの中で指定されている。例えばrml、rmlv、dmフォントに対して一般名がMincho Romanであるフォントが検索される。
grep "GeneralFamily = Mincho Roman" /etc/defoma/hints/*.hints
もし、存在しない場合は一般名がMinchoのフォントが検索される。
grep "GeneralFamily = Mincho" /etc/defoma/hints/*.hints
IPA モナーフォントがインストールされているなら、ipamonafont.hints、ttf-kochi-mincho.hintsがひっかかるはずである。複数のフォントが同じ一般名を持っている場合、hintsファイルの中で指定されているPriorityの高い方が優先される(値の範囲は0-99)。今回の場合、ipamonafont.hintsのIPAMonaMinchoが20、ttf-kochi- mincho.hints内のKochiMinchoが50なので東風明朝フォントが表示されるわけである。IPAモナー明朝を優先させたい場合、 Priorityを50より大きくするだけでよい。hintsファイルを修正した場合は
sudo defoma-font register-all ipamonafont.hints
を実行する。hintsファイルに関する詳しいことはdefoma-docパッケージのドキュメントファイルを参照されたし(特に/usr/share/doc/defoma-doc/developers.html/ch1.html)。
okumura-clsfilesのクラスファイルを使う場合
okumura-clsfilesが提供している日本語用のクラスファイル(jsarticle、jsbook)を使う場合、文字情報はrml-jis.tfmなどを参照するので実際のフォントは/etc/texmf/vfontmap.d/20ptex-jisfonts.mapの内容に従う。
### For ptex-jisfonts /usr/share/fonts/truetype/kochi/kochi-mincho.ttf rml-jis JIS-H /usr/share/fonts/truetype/kochi/kochi-gothic.ttf gbm-jis JIS-H
ここで東風フォントへのフルパス名を、IPAモナーフォントのフルパス名に置き換えてもいいのだが、20xdvik-ja.mapと同じようにDefomaの一般名にしておくと便利である。
### For ptex-jisfonts @Mincho Roman|Mincho@ rml-jis JIS-H @Gothic SansSerif|Gothic@ gbm-jis JIS-H
/etc/texmf/vfontmap.dディレクトリ以下を修正した場合は、次のコマンドで/var/lib/texmf/vfontmapに設定を反映させる。
sudo update-vfontmap
Feisty以前なら、あとは通常のクラスファイルを使ったときと同じようにIPAモナーフォントが先に検索されるようにhintsファイルを修正する。
Evinceの文字化け対策
基本的にGutsy用。Feisty以前ならパッケージをインストールだけでいけるはず。
日本語PostScriptの場合
必要なパッケージのインストール
sudo apt-get install evince ghostscript cmap-adobe-japan1 gs-cjk-resource
evinceとghostscriptは最初からインストールされている。インストール時に出る警告については後述。
GhostscriptがCMapファイルを検索してくれるようにシンボリックリンクを作成。
sudo ln --symbolic /var/lib/defoma/gs.d/dirs/CMap /usr/share/ghostscript/8.61/Resource/CMap
このシンボリックリンクはGhostscriptのパッケージで作成してもらえるようになったので、8.61.dfsg.1~svn8187-0ubuntu2以降ならこの作業は必要ない。
この状態で
evince filename gs -sDEVICE=x11 filename
のどちらでも日本語を含むPSファイルを表示できるようになる。またgsコマンドの方のみ、日本語を含むPDFファイルも表示できる。
日本語PDFの場合
必要なパッケージのインストール
sudo apt-get install evince ghostscript cmap-adobe-japan1 xpdf-japanese
gs-cjk-resourceの必要性は不明。
CMap関係のファイルを検索してくれるようにシンボリックリンクを作成。
sudo mkdir -p /usr/share/poppler/cidToUnicode sudo ln --symbolic /usr/share/xpdf/japanese/Adobe-Japan1.cidToUnicode \ /usr/share/poppler/cidToUnicode/Adobe-Japan1 sudo mkdir -p /usr/share/poppler/cMap sudo ln --symbolic /usr/share/fonts/cmap/adobe-japan1 /usr/share/poppler/cMap/Adobe-Japan1
これでEvinceでも日本語を含むPDFファイルが表示できるようになる。
以上はpoppler自身の問題ではなく、poppler-dataパッケージが用意されていないことが問題。
- Debianではバグ登録済み。
同じデータファイルを含んでいるxpdf-japanese側でなんとかしようという動きもある。
HardyではMultiverseにpoppler-dataパッケージを作成したため、これをインストールするだけで解決する。
- Hardy+1以降はDebianの解決方法に従うことになる。
その他の処理
場合によっては、以下のいずれかの処理をする必要があるかもしれない。
普通にcmap-adobe-japan1をインストールしただけだと、基本的な設定しか用意されないので、以下のように
sudo dpkg-reconfigure cmap-adobe-japan1
としてから、「標準」だけではなく「随意」と「追加」にもチェックをいれる。
補助漢字(JIS X 0212)用のCMapファイルのインストール。
sudo apt-get install cmap-adobe-japan2
Adobe-Japan1-6がリリースされたことによって、このパッケージは必要なくなった。
UnicodeからCIDコードへの変換ファイル。
sudo mkdir /usr/share/poppler/unicodeMap sudo ln --symbolic /usr/share/xpdf/japanese/EUC-JP.unicodeMap \ /usr/share/poppler/unicodeMap/EUC-JP sudo ln --symbolic /usr/share/xpdf/japanese/ISO-2022-JP.unicodeMap \ /usr/share/poppler/unicodeMap/ISO-2022-JP sudo ln --symbolic /usr/share/xpdf/japanese/Shift-JIS.unicodeMap \ /usr/share/poppler/unicodeMap/Shift-JIS
どういうときに必要?
未解決の問題
不自由なCMapファイル
CMapファイルは、日本語を含むPostScriptやPDFファイルを扱うときに必要になるファイル(中身は普通のPostScript)。本来は最初からインストールされているべきファイルなのだけれども、ライセンス上問題があって別途インストールする必要がある(ライセンスの問題に関する議論の流れは/usr/share/doc/cmap-adobe-japan1/copyrightなどを参照)。例えば上流のGhostscriptのソースアーカイブにはCMapファイル一式が含まれているが、DebianやUbuntuでは、フリーなghostscriptパッケージと、ノンフリーなgs-cjk-resourceパッケージに分離されている。
CMapファイルを含むパッケージには以下のものがある。
cmap-adobe-japan1,japan2,cns1,gb1,korea1:CMapファイル一式
gs-cjk-resource:こちらもCMapファイル一式。cmap-adobe-*と重複している分もたくさんあり。
xpdf-japanese:xpdf用(poppler用)CMapファイル。加えてcidToUnicodとかunicodeMapとかいう用途がはっきりしないファイルもあり。
dvipdfmx:PDFに変換するのに必要なCMapファイルを含んでいる。
パッケージに含まれる同じファイル名のものは中身も全く同じなので、かなり重複している。よって、これらは一つにまとめて一括管理すべき。歴史的な経緯もあるだろうからそう簡単には変えられないだろうけど、まずどこに相談すべきかがわからない。
Ghostscriptの歴史とCMapファイルについては次のサイトが詳しい:Ghostscript - ptetex Wiki
昔のdebian-develのMLのスレッドにも情報あり:その1、その2、その3、その4、その5
No CIDSupplement supecified for...