目的

簡単に日本語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

     日本語用クラスファイルjarticlejbookの改良版であるjsarticlejsbook、さらにいくつかのスタイルファイルが含まれている。主な改善点はこちらに書かれている。

  • あると便利なもの
  • dvi2ps-fontdesc-morisawa5

     DVIファイルをモリサワフォントにあわせてPSファイルに変換するための設定ファイル。モリサワフォントを所持していて、okumura-clsfilesmorisawa.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に入れるべきか、など

  • インストールの流れ

    1. sudo apt-get install latex-env-ja

      • texlive, texlive-math-extra, ptex-bin, xdvik-jaがインストールされる。

      • これで日本語TeXファイル(EUC-JP)をDVIファイルにし、それを表示するために必要なパッケージは全てインストールされる。
    2. 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ファイルに変換できる。
    3. sudo jisftconfig add

      • 新クラスファイルを使う場合はこれを実行する必要がある。日本語版セットアップ・ヘルパを使えば自動で実行してくれる。詳しいことはこちら

    4. xdviのフォント設定

      • 新クラスファイルで生成した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

    を実行する必要がある。ちなみにこれはTMCosmosdvpdfmxのインストール時にやっているdvipdfmx.cfgの修正と同じ効果がある。

    xdviのデフォルトフォント変更

    Ubuntuの初期設定ではxdviで日本語を表示したとき、東風フォントを利用するようになっている。これは見た目が悪いので、IPAモナーフォントがインストールされている場合はそれを利用したい。TMCosmosでは東風フォントを削除し、IPAモナーフォントへのシンボリックリンクを作成しているが、以下の方法なら東風フォントを残したままIPAモナーフォントを使うことができる。

    通常のクラスファイルを使う場合

    この内容は、Feisty以前の場合の話。Gutsyでは、IPAモナーフォントのパッケージ(ipamonafont_1.0.5-0ubuntu-ja2以降)であらかじめ修正されている。

    pTeXが提供している日本語用のクラスファイル(jarticlejreportなど)を使う場合、文字情報は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ファイルの中で指定されている。例えばrmlrmlvdmフォントに対して一般名がMincho Romanであるフォントが検索される。

     grep "GeneralFamily = Mincho Roman" /etc/defoma/hints/*.hints

    もし、存在しない場合は一般名がMinchoのフォントが検索される。

     grep "GeneralFamily = Mincho" /etc/defoma/hints/*.hints

    IPA モナーフォントがインストールされているなら、ipamonafont.hintsttf-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が提供している日本語用のクラスファイル(jsarticlejsbook)を使う場合、文字情報は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

    evinceghostscriptは最初からインストールされている。インストール時に出る警告については後述。

    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パッケージが用意されていないことが問題。

    その他の処理

    場合によっては、以下のいずれかの処理をする必要があるかもしれない。

    普通に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...

    Can't exec "/usr/bin/mkcfm"

    UbuntuJapaneseWiki: JapaneseLocalizedDerivative/LaTeXForJapanese (last edited 2012-01-10 11:49:24 by anonymous)