平衡点


2014/12/05

_ Debian 8.x (Jessie) での TeX 環境

この記事は「TeX & LaTeX Advent Calendar 2014」の 12/05 分の記事です.昨日は @CardinalXaro の 「LaTeXで踊る -TeX & LaTeX Advent Calendar 2014- 」でした(...おお,本当に踊ってるよ).

さて.

一昨年の Advenct Calendar で Ubuntu 12.04/Debian Squeeze での TeXLive (>=2012) 環境 という話を書きました.また(その前の日に)次期安定版 Debian 7.0 'Wheezy' での TeX 環境(特に pTeX 環境)についてなんて事も書いていました(こちらはDebian/Ubuntu JP Advenct Calendar の記事です).

今年の話題はその改訂版になります.なんか @iwamatsu にもネタ振られたし: --nigauri.org--(2014-10-13)

(2014-12-05 08:00 誤字修正)

(2014-12-05 08:30 誤字修正) pLaTeX, upLaTeX の場合に,dvips→ps2pdfwr として PDF を生成する場合にしか触れていないのですが,Postscript 経由で PDF を生成せざるを得ない場合を除いて,dvipdfmx を使う方が良いと思います.

(2014-12-05 09:00 追記) TeXLive リリースマネージャであり,Debian の TeXLive のパッケージメンテナでもある Norbert Perining さんによる Writing Japanese in LaTeX : Part 1 – Introduction | There and back again が同じ日に公開されています.英語の記事ですが,現在使える TeX Engine での日本語組版についてのサマリがありますので,参考になるかと思います.

パッケージとして提供されている TeXLive の状況

昨年 の G.W. にリリースされた Debian 7.x (Wheezy) から,パッケージとして提供されている TeX 環境は TeX Live ベースへ移行しています.Wheezy で提供されている TeX 環境は TeXLive 2012 でしたが,Jessie で提供される TeX 環境は Debian -- Details of package texlive-full in jessie によれば 2014.20141024-1 となっています.TeXLive 2014 + 10/24までの更新,ですね:

% pdflatex
This is pdfTeX, Version 3.14159265-2.6-1.40.15
(TeX Live 2015/dev/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
 ,**

とか

% platex
This is e-pTeX, Version 3.14159265-p3.5-130605-2.6 (utf8.euc)
(TeX Live 2015/dev/Debian) (preloaded format=platex)
restricted \write18 enabled.
,**

みたいに.

ちなみに Debian の TeX 関連パッケージは基本的に TeXLive のリリース版を適切に分割してまとめることで生成されています.「バージョンが古い」とか「○○が無い」という場合には,CTAN: Comprehensive TeX Archive Network に登録されていないか,CTAN に集録されている版の更新が遅れているのが原因(であることが多い)です.

新規インストール

何も考えずに

% sudo apt-get install texlive-full

でも良いですが,結構なサイズになります(とはいえ,今時数GB程度だと気にならないかと思いますけれど).

個別にインストールする場合は以下の通り.

  1. とりあえず pTeX,upTeX を使えるようにする:

    % sudo apt-get install texlive-lang-japanese

上記パッケージを install することで, ptex2pdf も使えるようになります.

  1. XeTeX, LuaTeX も使えるようにする:

    % sudo apt-get install texlive-xetex
    % sudo apt-get install texlive-luatex
  2. DVI と PDF の Viewer はお好みで:

    % sudo apt-get install evince xdvik-ja

default デスクトップ環境は Gnome ですから,PDF の閲覧には Evince を使うのかな? 日本語の表示が可能な xdvi, いわゆる pxdvi は xdvik-ja としてパッケージングしています(とはいえ,今なら直接 PDF を閲覧するのが良いと思いますが...).

旧バージョンからのアップグレード

今のところ特にハマり所はありません(無い筈).普通にアップグレードできました.wheezy → jessie のアップグレードに関する(全体の)ドキュメントは現在鋭意修正・更新中ですので,もしTeX関連のアップグレードに失敗するみたいでしたら,御気軽にご連絡下さい or BTS に投稿下さい.

日本語が扱えるTeX あれこれ

昨年の TeX Advent Calender の記事ですが, @_yuu_ による LaTeX - TeX処理系御伽話 なんかが参考になるのではないでしょうか?

個人的には,

  • pLaTeX: (計算機にそれほど詳しくない)他人とデータのやりとりをする時(共著なんか)
  • XeLaTeX or LuaTeX: 個人で作業する時,もしくは複数人でも説明が楽な相手の場合

と使い分けています.

以下,処理系毎に「現状」に関してまとめていきます.

pTeX

多分,多くの人々が現状では p(La)TeX をお使いかと思います.共著作業の際に(年上の方々に)説明するのが楽ですし,学会のTeXフォーマットが p(La)TeX 前提だったりするので,わりと離れられませんよね....

dvipdfmx, dvips+ps2pdfwrを使用した日本語フォントの埋め込みと xdvik-ja での表示の制御に関して.以前提供されていた updmap-setup-kanji{,-sys} コマンドは kanji-config-updmap{,-sys} コマンドに rename されていますので,

  • フォントを埋め込まない場合:

    % kanji-config-updmap noEmbed
       or
    % sudo kanji-config-updmap-sys noEmbed
  • IPAexフォントを埋め込む場合:

    % sudo apt-get install fonts-ipaexfonts     # <-- install されていなかったら.
    % kanji-config-updmap ipaex
       or
    % sudo kanji-config-updmap-sys ipaex

で,一通り設定が終わります.

ただし,現状では dvips + ps2pdfwr での処理がちょっと半端(?)です.

まず, noEmbed を指定した場合.

platex → dvips で生成された PostScript では実フォント名が用いられません(望んだ動作だと思います).しかしながら,これを ps2pdfwr で処理すると, Ryumin-Light, GothicBBB-Medium として /usr/share/fonts/truetype/fonts-japanese-{mincho,gothic}.ttf が埋め込まれます(これらのフォントは alternatives で切り替え可能です).

この挙動の制御は Ghostscript の管轄で,Debian の場合は /etc/ghostscript/cidfmap.d/90gs-cjk-resource-japan1.conf で設定されています(この設定のおかげで,PostScript 内で Ryumin-Light, GothicBBB-Medium で指定されている場合でも gs で表示が可能なわけです). noEmbed なのに PDF 生成までやると /usr/share/fonts/truetype/fonts-japanese-{mincho,gothic}.ttf が埋め込まれるってのは混乱しないかな,とか思ったりもします(PDFの規格としては埋め込むのが正しいですが).

次に, ipaex を指定した場合. platex→dvips で PostScript を生成すると,ファイル中のフォント指定が IPAex{Mincho,Gothic}-H になります. ですが,現在 Debian で提供されている Ghostscript には,IPAexフォントのエントリがありません(ので gs での Postscript 表示, ps2pdfwr での PDF 生成に失敗します).以下の手順で設定が必要です:

  1. /etc/ghostscript/cidfmap.d/ 以下に, 10-local-ipaexfonts.conf 等の名前で以下のファイルを置きます. 番号はとりあえず 10 番台にしました.

    /IPAexMincho << /FileType /TrueType /Path (/usr/share/fonts/opentype/ipaexfont-mincho/ipaexm.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
    /IPAexGothic << /FileType /TrueType /Path (/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
    /IPAMincho << /FileType /TrueType /Path (/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
    /IPAGothic << /FileType /TrueType /Path (/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf) /SubfontID 0 /CSI [(Japan1) 6] >> ;
  2. 以下を唱えます

    % sudo update-gsfontmap

これで, Ghostscript から IPAex{Mincho,gothic} が見えるようになり,IPAex フォントを埋め込んだ PDF を生成することができます.

upTeX

状況は pTeX と変わりませんので kanji-config-updmap{,-sys} で設定して下さい.

ただし, dvips→ps2pdfwr の場合には,ちゃんとグリフ探せない場合がありますね.新しく文書を書き始める場合には dvipdfmx を使う方が良い思いますが,必要に迫られて dvips→ps2pdfr でPDFを生成する場合には,どうしたら良いかな....

XeTeX

パッケージで提供されている ZXjatype, ZXjafont, BXjscls のバージョンは

  • ZXjatype: v0.6
  • ZXjafont: v0.2
  • BXjscls: v0.3a

となっていますので,とりあえず日本語での組版に困る事はないでしょう(BXjscls が古い...?). 例えば以下のソースを xelatex で typeset することで,IPA{明朝,ゴシック}が埋め込まれた PDF が生成されます.

# source: tex
\documentclass[a4paper]{bxjsarticle}
\usepackage{zxjatype}
\usepackage[ipa]{zxjafont}
\usepackage{xltxtra}

\begin{document}

\section{幸田露伴「雲のいろ〳〵――卿雲」}
景雲といひ、卿雲といひ、慶雲といへる、しかと指し定められたる雲にはあらざるべし。
卿雲爛たり糺縵〻たり、といへる、煙にあらず雲にあらず紫を曳き光を流す、といへる、
大人作矣、五色氤氳、といへる、金柯初めて繞繚、玉葉漸く氤氳、といへる、
還つて九霄に入りて沆瀣を成し、夕嵐生ずる處鶴松に歸る、
といへる詩の句などによりて見れば、歸するところは美しき雲といふまでなり。
\end{document}
luaTeX

LuaTeX-ja も更新されています.例えば以下のソースを lualatex で typeset することで,IPAex{明朝,ゴシック}が埋め込まれた PDF が生成されます.

# source: tex
\documentclass{ltjsarticle}
\usepackage[ipaex]{luatexja-preset}
\begin{document}

\section{幸田露伴「雲のいろ〳〵――卿雲」}
景雲といひ、卿雲といひ、慶雲といへる、しかと指し定められたる雲にはあらざるべし。
卿雲爛たり糺縵〻たり、といへる、煙にあらず雲にあらず紫を曳き光を流す、といへる、
大人作矣、五色氤氳、といへる、金柯初めて繞繚、玉葉漸く氤氳、といへる、
還つて九霄に入りて沆瀣を成し、夕嵐生ずる處鶴松に歸る、
といへる詩の句などによりて見れば、歸するところは美しき雲といふまでなり。

\end{document}
番外: pdfLaTeX で日本語組版

pdfLaTeX で処理を行ないたい場合には,パッケージが提供している BXjscls が古い(v0.3)ので github: zr-tex8r/BXjscls より取得して install しましょう.そうすると,例えば以下を pdflatex で typeset することで,PDF が生成されます.

# source: tex
\documentclass[pdflatex,jadriver=standard]{bxjsarticle}
\begin{document}

\section{幸田露伴「雲のいろ〳〵――卿雲」}
景雲といひ、卿雲といひ、慶雲といへる、しかと指し定められたる雲にはあらざるべし。
卿雲爛たり糺縵〻たり、といへる、煙にあらず雲にあらず紫を曳き光を流す、といへる、
大人作矣、五色氤氳、といへる、金柯初めて繞繚、玉葉漸く氤氳、といへる、
還つて九霄に入りて沆瀣を成し、夕嵐生ずる處鶴松に歸る、
といへる詩の句などによりて見れば、歸するところは美しき雲といふまでなり。

\end{document}

「tlmgr 使いたいんですけれど...?」

Ubuntu 12.04/Debian Squeeze での TeXLive (>=2012) 環境 の 2014 版を実行することになります.新しい equivs 用の control ファイルは Debian support - TeX Live - TeX Users Group で提供されていますので,これを使って下さい.

詳細は以前の記事を参照下さい.

まとめ

以上,駆け足でしたが,現在の Jessie での TeX 環境についてまとめてみました.Ubuntu は最近まったく触らなくなったので良く知りませんが,14.04 あたりなら,そんなに状況は変わっていないんじゃないかと思います.

そんなこんなで.

明日は mattskala の予定です.よろしくお願いします.

参考文献