平衡点
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) に取り込まれたことから, これらのパッケージはその役割を終えています.
- e-pTeX Wiki - SourceForge.JP
- Debian -- Package Search Results -- ptex-bin
- Debian -- Package Search Results -- ptex-base
上記リンク先を見てもらえればわかる通り, Wheezy から ptex-bin, ptex-base は texlive-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 でお絵描きとかも気軽にできますし.
問題は, 既存の(古い/重複している)パッケージの整理ができていないことでしょうか?
例えば
- Debian -- sid の dvipsk-ja パッケージに関する詳細
- texlive-binaries の提供する /usr/bin/dvips には dvipsk-ja のパッチが既に当たっており, このパッケージは不要.
- texlive-binaries 側で transitional dummy pakcage を提供する様にしてもらい, このパッケージは drop するのが筋
- ただし現状でも動作に問題は無いので Wheezy+1, かな?
- NTT jTeX を提供するか?
- メンテナの反応が無く/引き継ぎ手がなく, TeXFam は既に drop された. このまま手を上げる人がいない場合には, NTT jTeX は提供されなくなる
- Debian -- sid の jtex-base パッケージに関する詳細
- Debian -- sid の jtex-bin パッケージに関する詳細
- 日本語 BibTeX 関連
- texlive-binaries において, UTF-8 サポート付きの pbibtex が提供されている.
- NTT jTeX をサポートしないならば, 以下の二つは不要?
などなど, です. そのうち改善されます/します. 逆に言えば, こんぐらいですかね.
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 以下で設定
これで
- platex → dvipdfmx
- platex → dvips → ps2pdfwr
によって, フォントが埋め込まれていない 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 Quetzal か Raring Ringtail を使うと, Wheezy/Sid 相当の TeXLive が導入されます(多分).
12.04 の場合は...
- tlmgr (TeXLive のパッケージマネージャ)
- tlptexlive (外部リポジトリ, pxdvi, pmpost を提供)
を使うことになりますかね.
これについてはそのうち書きます(というか, 書く必要があるので...).
まとめ...?
というわけで, Wheezy での TeX 関連のお話でした. パッケージの整理が今後の課題…なのかな? あ, そういえば NTT jTeX のメンテナを募集しています . Debian と NTT jTeX に愛のある方, ご連絡下さい.
明日は岩松さん(@iwamatsu) による記事の予定です.
そうですよね。NTT jTeXは問題になりました。libkpathsea6に対応にしてみたのに、無理でした。それは出来なかったら、jTeXを使えないことになります。
> ノルベルト<br><br>大浦さんが libkpathsea6 対応を進めていて、jTeX のメンテナをやっても良い、とは言ってくれたんですが、その後音沙汰が無いですね.<br><br>http://lists.debian.or.jp/debian-devel/201209/msg00005.html<br><br>jTeX に愛のある人が作業を進めて欲しい、と思っています。どっちにしても Wheezy+1 ですかね。
texlive2014本家をつかってmain.tex等を用いての分割コンパイルができないのですが(/home/hoge/TEX-DOC 以下にtexのファイルを配置)<br>なにか対処方法がありますか
> 通りすがり<br>ここより TeX Q&A 等に問い合わせた方が良いかと思いますが。<br><br>「分割コンパイル」は main.tex から他のファイルを \input もしくは \include で読み込んでいる、という解釈で良いですか? 「できない」とは?エラーは何が出ていますか?
「分割コンパイル」は main.tex から他のファイルを \input もしくは \include で読み込んでいる、という解釈で良いですか?<br>>はい \inputでよみこみ、もちろん同じディレクトリにfile1.texなどが配置されています。<br> 「できない」とは?エラーは何が出ていますか?<br>>file1.texなどが見つからないと出ます。同じものをW32texでは読み取りPDFが生成されます。ただしsjisに変換しています。<br>WheezyのほうはUTF-8になっています。<br>よろしくお願いします。