平衡点


2012/12/02 [長年日記]

_ 次期安定版 Debian 7.0 "Wheezy" での TeX 環境(特に pTeX 環境)について

はじめに

この記事は Debian/Ubuntu JP Advent Calendar 2012 : ATND の 12/02(日) の記事です. 昨日は野首さん(@knok)による Debian Advent Calendar - cron-aptで常に最新状態を保つ | @knok blog でした.

今日のお題は Debian の次期安定版 Debian 7.0 "Wheezy" での TeX 環境(特に pTeX 環境)について, です. 実の所こういう, 話は 既に何度も書いているので, 食傷気味の方もいらっしゃるかもしれませんが, ご容赦下さい.

Wheezy の現状

パッケージの現状は Debian -- 'sid' のサブセクション tex に含まれるソフトウェアパッケージ をご覧下さい, ということになりますが, これだけだとアレですね.

Squeeze から Wheezy に移行した際の(pTeX関連での)大きな変更点は, teTeX から TeXLive への移行です. これまで Debian では, teTeX に pTeX 関連の patch を当てることで ptex-base, ptex-bin といったパッケージを作成/提供してきました. しかし e-pTeX が TeXLive (>= 2011) に取り込まれたことから, これらのパッケージはその役割を終えています.

上記リンク先を見てもらえればわかる通り, Wheezy から ptex-bin, ptex-basetexlive-lang-cjk= へ移行するための dummy package となっています.

$ dlocate /usr/bin/ptex
texlive-binaries: /usr/bin/ptex
$ dlocate /usr/bin/eptex
texlive-binaries: /usr/bin/eptex
$ dlocate /usr/bin/platex
texlive-lang-cjk: /usr/bin/platex
$ dlocate /usr/bin/platex
texlive-lang-cjk: /usr/bin/uplatex

e-TeX 拡張に対応した事で, 沢山のご利益があるのですが, UTF-8 で書かれたファイルをplatexで直接処理できる ことなんかもあります. 「Debian の TeX は UTF-8も使えないのかよ」みたいな人にも安心です (主に私が. というか, 単にファイルの文字コードだけの話なら nkf でも噛ませろよ, とか思ったりする訳ですが). レジスタ増えたので tikz でお絵描きとかも気軽にできますし.

問題は, 既存の(古い/重複している)パッケージの整理ができていないことでしょうか?

例えば

などなど, です. そのうち改善されます/します. 逆に言えば, こんぐらいですかね.

Squeeze からのアップグレード

手元で試した感じでは特に困ることはありませんでした. 安心して dist-upgrade して下さい.

  • フォントの設定方法が変わっています(後述).
  • 既存の資源をコンパイルする際には注意が必要です. 文字コードを指定する必要があります. 自動判別の仕組みはまだパッケージに入っていません.
    • platex --kanji=euc, pbibtex --kanji=euc といった感じで
  • METAPOST に関しては pmpost を使って下さい. jmpost は提供されません.
    • と思ったら, まだあるみたい. これ動くの? 誰か試してる?

Wheezy での新規 install

% sudo apt-get install texlive-lang-cjk

以上. viewer とか, class ファイルなんかも必要に応じて install して下さい. ちなみに奥村先生の新ドキュメントクラス okumura-clsfiles は既に texlive-lang-cjk に含まれています

  • Debian -- Package Search Results -- okumura-clsfiles
    • これも drop すべきパッケージですね...
  • PDF の viewer は Evince, Okular などを適当なのをお使い下さい. これら二つは SyncTeX をサポートしています.
  • 佐々木は最近 Zathura を愛用しています. 残念ながら Wheezy の Zathura は SyncTeX をサポートしていませんが...
  • xdvi の viewer である xdvik-ja は まだ TeXLive に同梱されていないため, 単独パッケージとして提供されます.
    • というか 「 pxdvi は Debian では提供されていないため... 」とか言われて 結構悔しい思いをしていたり.
    • 提供しているからね!! pxdvi 使いたい人は xdvik-ja パッケージを install してね.

インストール後/アップグレード後に必要な作業

個人的には texlive-lang-cjk の hook なんかで対応できたら良いのですが...

/usr/share/texmf/web2c/texmf.cnf を編集して

shell_escape_commands = \
bibtex,bibtex8,bibtexu,pbibtex,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,\
mpost,pmpost,\
repstopdf,epspdf,extractbb,\

という風に bibtexu, pbibtex, upbibtex, biber, mendex, texindy, pmpost, epspdf, extarctbb を追加しておくと良いでしょう (何をしているのかわからない人は, おまじないだと思って).

コマンド引数として --shell-escape を毎度追加しても良いと思いますが,

フォント制御

使用するフォントの指定やフォント埋め込みの制御は updmap-setup-kanji{,-sys} で一括管理されます.

埋め込まない場合
% sudo updmap-setup-kanji-sys nofont    <-- システム全体で有効化
% updmap-setup-kanji nofont             <-- ~/.texmf-config 以下で設定

これで

  • platexdvipdfmx
  • platexdvipsps2pdfwr

によって, フォントが埋め込まれていない ps とか pdf が生成できます. dvips で PDF を生成する際のフォントに関しては Ghostscript の管轄です. これは後述.

埋め込む場合

埋め込み用のマップファイルとして IPAフォント, IPAexフォント, ヒラギノフォント, 小塚フォントの マップファイルが提供されています. ヒラギノと小塚は売り物なので, 購入しなければ使えませんが, IPA{,ex}フォントは apt-get でインストールしておけば使えます.

% sudo updmap-setup-kanji-sys ipa    <-- システム全体で有効化
% updmap-setup-kanji ipa             <-- ~/.texmf-config 以下で設定

といった塩梅で.

この設定で dvips を使うと, PostScript に IPAフォントの名前が埋め込 まれます. PostScript から ps2pdfwr で PDF を生成する際のフォント埋め込みの制御は Ghostscript の範疇ですね. ここで好みのフォントを使用したい場合には cidfmap の設定が必要です. Ghostscript - TeX Wiki なんかを参考に, /etc/ghostscript/cidfmap.d/ 以下に必要なファイル片を置いてから

% sudo update-gsfontmap

して下さい.

ヒラギノや小塚を使ったり, 売り物のフォントを使用したい場合には ヒラギノフォントを /usr/local/shate/texmf/fonts/opentype/ あたりに置いて

% sudo mktexlsr
% sudo updmap-setup-kanji-sys hiragino

とかやると良いと思います. 実際に置くフォントのファイル名は /usr/share/texlive/texmf-dist/fonts/map/dvipdfmx/jfontmaps/ 以下の map ファイルを眺めて下さい.

Ubuntu

TeXLive 関連は universe ですね. LTS 12.04 は, Squeeze 相当なので, Quanal QuetzalRaring Ringtail を使うと, Wheezy/Sid 相当の TeXLive が導入されます(多分).

12.04 の場合は...

  • tlmgr (TeXLive のパッケージマネージャ)
  • tlptexlive (外部リポジトリ, pxdvi, pmpost を提供)

を使うことになりますかね.

これについてはそのうち書きます(というか, 書く必要があるので...).

まとめ...?

というわけで, Wheezy での TeX 関連のお話でした. パッケージの整理が今後の課題…なのかな? あ, そういえば NTT jTeX のメンテナを募集しています . Debian と NTT jTeX に愛のある方, ご連絡下さい.

明日は岩松さん(@iwamatsu) による記事の予定です.

本日のツッコミ(全5件) [ツッコミを入れる]
_ ノルベルト (2012/12/04 07:50)

そうですよね。NTT jTeXは問題になりました。libkpathsea6に対応にしてみたのに、無理でした。それは出来なかったら、jTeXを使えないことになります。

_ うわばみ (2012/12/04 11:07)

> ノルベルト<br><br>大浦さんが libkpathsea6 対応を進めていて、jTeX のメンテナをやっても良い、とは言ってくれたんですが、その後音沙汰が無いですね.<br><br>http://lists.debian.or.jp/debian-devel/201209/msg00005.html<br><br>jTeX に愛のある人が作業を進めて欲しい、と思っています。どっちにしても Wheezy+1 ですかね。

_ 通りすがり (2015/04/08 16:07)

texlive2014本家をつかってmain.tex等を用いての分割コンパイルができないのですが(/home/hoge/TEX-DOC 以下にtexのファイルを配置)<br>なにか対処方法がありますか

_ うわばみ (2015/04/08 16:41)

> 通りすがり<br>ここより TeX Q&A 等に問い合わせた方が良いかと思いますが。<br><br>「分割コンパイル」は main.tex から他のファイルを \input もしくは \include で読み込んでいる、という解釈で良いですか? 「できない」とは?エラーは何が出ていますか?

_ 通りすがり (2015/04/09 01:11)

「分割コンパイル」は main.tex から他のファイルを \input もしくは \include で読み込んでいる、という解釈で良いですか?<br>>はい \inputでよみこみ、もちろん同じディレクトリにfile1.texなどが配置されています。<br> 「できない」とは?エラーは何が出ていますか?<br>>file1.texなどが見つからないと出ます。同じものをW32texでは読み取りPDFが生成されます。ただしsjisに変換しています。<br>WheezyのほうはUTF-8になっています。<br>よろしくお願いします。