<> == 目的 == 簡単に日本語LaTeX環境を構築できるようにする。 *LaTeXに関係するパッケージと環境構築に必要なコマンドを洗い出す(完了) *必要最低限なものを選びだし、それをインストールしてくれる`latex-env-ja`パッケージを作成する(完了) *ptetex/ptexliveを簡単にインストールできるようにする(未定) *テスト用のデータを作成する == LaTeXパッケージ一覧 == 最低限必要なもの:: ||`tetex-*`|| [[http://www.tug.org/tetex/|teTeX]]はLaTeXに関するソフトウェアを集めたLaTeXディストリビューションの一つ。pTeXもteTeXを元に日本語対応を行っている。2006年5月、大本のメンテナンス終了が宣言された。Ubuntuでも、Gutsy以降は全てTeX Liveで代替できることになっている。いまだteTeXに依存しているパッケージも存在するため、TeX Liveをインストールしていない状態でpTeXをインストールすると`tetex-bin`パッケージもインストールされるが、実体のないパッケージなのでteTeXに依存するパッケージが存在しなければ削除しても問題ない。|| ||`texlive`|| [[http://www.tug.org/texlive/|TeX Live]]はLaTeXに関するソフトウェアを集めたLaTeXディストリビューションの一つ。teTeXの後継と目されているが、あらゆるLaTeXソフトウェアを網羅しようとしているので、パッケージがとてつもなく巨大(通常インストールで150MBほど、フルインストールだと1GBを越える)。Gutsy以降はteTeXが廃止されたので、teTeXベースなpTeXがTeX Liveベースでも正しく動くかどうか確認する必要がある。pTeXをインストールするのに900MB弱の空き容量が必要になる。その後、不要なパッケージが大量に出るので`apt-get autoremove`すれば減量できるが、それでも500MBほど必要。|| 日本語化に必要なもの:: ||`ptex-*`|| [[http://www.ascii.co.jp/pb/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`、さらにいくつかのスタイルファイルが含まれている。主な改善点は[[http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/|こちら]]に書かれている。|| あると便利なもの:: ||`dvi2ps-fontdesc-morisawa5`|| DVIファイルをモリサワフォントにあわせてPSファイルに変換するための設定ファイル。モリサワフォントを所持していて、`okumura-clsfiles`の`morisawa.sty`を使うためには必要になる。|| ||`jmpost`|| 図形などのEPS画像を作成できるソフトウェア[[http://www.sat.t.u-tokyo.ac.jp/~hideyuki/metapost/|MetaPost]]の日本語対応版。|| ||`jbibtex-bin`|| 参考文献作成コマンド`bibtex`の日本語版`jbibtex`。日本語特有のパラメータなどが追加されている。|| ||`mendexk`|| 索引作成コマンド`makeindex`の日本語版`mendex`。本家との違いは[[http://www.ascii.co.jp/pb/ptex/etc/README.mendexk.txt|こちら]]|| ||`latexmk`||<(|2> 索引や参考文献などを作成する場合、何度かLaTeXコマンドを実行する必要がある。これらのパッケージは、適切な回数だけコマンドを実行してくれるもの。[[http://www.phys.psu.edu/~collins/software/latexmk-jcc/|latexmk]]はオプションで設定するタイプ、[[http://latex-mk.sourceforge.net/|latex-mk]]はMakefileみたいなものを作成して設定するタイプみたい。|| ||`latex-mk`|| ||`pybliographer`|| BibTeXファイルのGUI管理ツール。|| ||`yatex`|| [[http://www.yatex.org/|YaTeX]]はEmacsでLaTeXを編集するのに便利なelファイル集。|| LaTeX環境を使うもの:: ||`lyx`|| [[http://www.lyx.org/|LyX]]はバックエンドにLaTeXシステムを使ったワードプロセッサ。バージョン1.5以降でUTF-8に完全に対応し、「UTF-8に対応したLaTeXシステムを使えば」日本語の文書も作成可能。ちなみに、上記pTeXはUTF-8には対応していない。|| ||`latex2html`|| [[http://www.latex2html.org/|LaTeX2HTML]]はその名のとおり、LaTeXソースファイルをHTMLに変換してくれるソフトウェア。|| ||`dvipng`|| DVIファイルをPNGファイルに変換するコマンド。|| ||`latex-beamer`|| LaTeXシステムで簡単にプレゼンテーション用PDFを作成するための[[http://latex-beamer.sourceforge.net/|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`||<(|5> PDFや!PostScript関係のフォントマッピングの問題を解決するファイル集。japan1/japan2が日本語関係。cns1が繁体字、gb1が簡体字、korea1がハングル。`dvipdfmx`でPDFを作成したり、Evinceやxpdfで日本語を表示する場合はjapan1が必要になる(japan2は通常は必要ない)。|| ||`cmap-adobe-japan2`|| ||`cmap-adobe-cns`1|| ||`cmap-adobe-gb1`|| ||`cmap-adobe-korea1`|| ||<-2>'''以下募集中:'''間違いの指摘、上記以外のパッケージの提案、どれを`latex-env-ja`に入れるべきか、など|| == インストールの流れ == 1. `sudo apt-get install latex-env-ja` *`texlive, texlive-math-extra, ptex-bin, xdvik-ja`がインストールされる。 *これで日本語TeXファイル(EUC-JP)をDVIファイルにし、それを表示するために必要なパッケージは全てインストールされる。 1. `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ファイルに変換できる。 1. `sudo jisftconfig add` *新クラスファイルを使う場合はこれを実行する必要がある。日本語版セットアップ・ヘルパを使えば自動で実行してくれる。詳しいことは[[https://wiki.ubuntulinux.jp/JapaneseLocalizedDerivative/LaTeXForJapanese#head-f0bd1aa0a4b8bc66cfdfdf51a47bffc82af8c2d8|こちら]]。 1. [[https://wiki.ubuntulinux.jp/JapaneseLocalizedDerivative/LaTeXForJapanese#head-918726f659c902f4cbc641734e9bc7821f5c8bf6|xdviのフォント設定]] *新クラスファイルで生成したDVIファイルを、Defomaで管理するフォント(例えばIPAモナーフォント)で表示するために必要。 == パッケージインストール後に必要な処理 == === 参考サイト === *[[http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Linux%2FDebian]] *[[http://tmcosmos.org/linux/ubuntu/ubuntu704.html]] *[[http://debian.fam.cx/index.php?Japanese]] === okumura-clsfiles用の設定 === UbuntuにLaTeXをインストール上で[[http://tmcosmos.org/linux/ubuntu/ubuntu704.html#tex|よく参照される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 }}} を実行する必要がある。ちなみにこれは[[http://tmcosmos.org/linux/ubuntu/ubuntu704.html#dvipdfmx|TMCosmos]]で`dvpdfmx`のインストール時にやっている`dvipdfmx.cfg`の修正と同じ効果がある。 === xdviのデフォルトフォント変更 === Ubuntuの初期設定ではxdviで日本語を表示したとき、東風フォントを利用するようになっている。これは見た目が悪いので、IPAモナーフォントがインストールされている場合はそれを利用したい。[[http://tmcosmos.org/linux/ubuntu/ubuntu704.html#tex|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 }}} このファイルの書式については[[http://lists.debian.or.jp/debian-users/200610/msg00031.html|こちら]]を参照。とりあえずフォント名やエンコーディング名は無視して、フォントファイル名(`@`で始まる行)のみを変更する。`@`の間は 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 }}} このシンボリックリンクは[[https://bugs.launchpad.net/ubuntu/+source/ghostscript/+bug/139911/comments/5|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ではバグ登録済み。 * [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445226|Please package poppler-data]] * [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453172|RFP: poppler-data -- Encoding data for the poppler PDF rendering library]] * 同じデータファイルを含んでいる`xpdf-japanese`側でなんとかしようという動きもある。 * [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=461411|work-around for missing poppler-data?]] * HardyではMultiverseに`poppler-data`パッケージを作成したため、これをインストールするだけで解決する。 * [[https://launchpad.net/ubuntu/+source/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`などを参照)。例えば上流の[[http://www.ghostscript.com/awki|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ファイルについては次のサイトが詳しい:[[http://tutimura.ath.cx/ptetex/?Ghostscript|Ghostscript - ptetex Wiki]] 昔のdebian-develのMLのスレッドにも情報あり:[[http://lists.debian.or.jp/debian-devel/200103/msg00079.html|その1]]、[[http://lists.debian.or.jp/debian-devel/200104/msg00001.html|その2]]、[[http://lists.debian.or.jp/debian-devel/200104/msg00071.html|その3]]、[[http://lists.debian.or.jp/debian-devel/200104/msg00089.html|その4]]、[[http://lists.debian.or.jp/debian-devel/200104/msg00101.html|その5]] === No CIDSupplement supecified for... === === Can't exec "/usr/bin/mkcfm" ===