TeX Live 2015 で変わったこと、変わらなかったこと
先日正式にリリースされた TeX Live 2015 であるが、アップデートするメリットはなんだろうか? というわけで、ここに「TeX Live 2015 で変わったこと、変わらなかったこと」の気づいた点をまとめてみる。とはいっても、すべて網羅する気は全くなく、一般ユーザである僕の独断と偏見で選んでいる。
- TeX Live 2015 released | There and back again
- Twitter より:
【速報】TeX Live 2015 にして改善したこと ・e-(u)pTeX に \pdfshellescape が実装された ・e-(u)pTeX で直前の文字を取得できるようになった ・extractbb で複数ページPDFの2ページ目以降のbb取得が可能になった
— Yusuke Terada (@doraTeX) 2015, 6月 12そういえば/DecodeParmsが入ったPDFをdvipdfmxで画像取り込みできるようになったのは、TeX Live 2015以降ですね http://t.co/9hTe3z7q2d Adobe純正品を使ってPDFを作ることが多い方は更新しましょう
— Acetaminophen (@aminophen) 2015, 6月 14そういえば、TL2015 だと LaTeX が fixltx2e したやつに変わるね。 #TeX #テフライブ ……まあ、latex.ltxをリーディングしている某集団を除いて、特に影響はない気がするけど。
— ZR-TeXnobabbler(既定値) (@zr_tex8r) 2015, 6月 14
変わったこと (1):dvipdfmx の進化
まずは、dvipdfmx がいろいろ進化したことを書いておくべきだろう。
(u)pLaTeX + dvipdfmx で複数ページ PDF の2ページ目以降を利用可能に
pdfLaTeX では従来から複数ページ PDF の2ページ目以降を \includegraphics することができたが、dvipdfmx は extractbb が2ページ目以降の BoundingBox 情報を取得できなかったため不可能だった。それが TeX Live 2015 以降および W32TeX [2014/12/03] 以降では、以下のようにして可能になった。
\documentclass{jsarticle} \usepackage[dvipdfmx]{graphicx} \begin{document} \begin{figure}[htb] \centering \includegraphics[page=1,clip]{fig.pdf} \caption{1ページ目です} \includegraphics[page=2,clip]{fig.pdf} \caption{2ページ目です} \includegraphics[page=3,clip]{fig.pdf} \caption{3ページ目です} \end{figure} \end{document}
詳細は以下のリンクを参照:
dvipdfmx が /DecodeParms を含む PDF を処理可能に
Adobe 純正品の Illustrator, Distiller 等を使って PDF を作成した場合にとりわけ多い現象であるが、しばしば PDF-1.5 以上ではそのストリームの中に /DecodeParms が含まれてしまう。これが運悪く extractbb (dvipdfmx) の解釈すべき範囲にあるときに dvipdfmx が非対応であるため、その PDF 画像を \includegraphics できないという問題があった。これは TeX Live 2015 以降および W32TeX [2014/08/14] 以降、/DecodeParms に対応する処理が施された。したがって、主に Adobe 純正品ユーザにとってこの問題を気にする必要がなくなった。
詳細は以下のリンクを参照:
extractbb の自動実行が標準で許可された
これは dvipdfmx 自身の進化も一因といえるだろう。
画像の BoundingBox 情報を取得する extractbb というプログラムを実行しなければ、LaTeX は図を貼り込む領域を確保できない。この extractbb は、TeX Live 2013 以前では .xbb ファイルを吐いていたため、paranoid 制約に反していた。2014/07/02 の変更で extractbb は BoundingBox 情報を .xbb ファイルを書き出すのを止め、代わりにその内容を標準出力に書き出すようになったので、それを TeX エンジンがパイプ入力を用いて読み込めば paranoid 制約を満たすことができる。これに伴い、TeX Live 2015 以降では自動実行が許可されたのである。具体的にはTEXMFDIST/web2c/texmf.cnf
の shell_escape_commands に extractbb が追加されているのがわかる。
詳細は以下のリンクを参照:
変わったこと (2):Ghostsctipt 9.16 への更新
TeX Live 2015 (Windows) や MacTeX-2015 に付属した Ghostscript はバージョン9.16である。以前の記事で説明したとおり、アウトライン化した EPS を出力するために従来からよく用いられてきた epswrite というデバイスが gs9.15 を境に廃止され、代わりに eps2write というデバイスが追加されて現在に至っている。
eps2write には epswrite と比較して出力する EPS のソース中にバイナリを含む(従来はテキストのみだった)という点にも注意が必要。この変更の影響を直に受けたアプリケーションが次々と対策を講じた。
- LaTeX ソースコードをタイプセットして画像で出力する TeX2img
- Tpic special を利用した LaTeX での描画を助ける WinTpic
- MetaPost を発展させたベクトルグラフィック記述ツール Aymptote
ここで注意すべきなのは、TeX Live 2015 に付属した Asymptote 2.35 では eps2write に対応させると同時に従来の epswrite のサポートが打ち切られてしまった。このため、Asymptote のバージョンを上げた場合に Ghostscript のバージョンが 9.10 以下だとエラーになる。
変わったこと (3):e-pTeX 新プリミティブの実装
タイトルでは分かりにくいが、\pdfshellescape と \lastnodechar というプリミティブが実装された。\pdfshellescape は pdfTeX と同様のものであるので割愛する。\lastnodechar については分かりやすい例がある。例えば pLaTeX で
これは,\textgt{『ほげ党宣言』}の…
のように書くと「全角カンマと開き括弧の間に全角アキが挿入されてしまう」という挙動が話題になっていて、この問題を解決すべく実装されたのが \lastnodechar プリミティブである。これらが TeX Live 2015 には取り込まれた。以下を参照。
変わったこと (4):LaTeX2e が新しくなった
従来の「バグ修正用のパッチは LaTeX2e 本体(カーネル)とは別に fixltx2e パッケージとして提供する」という方針が転換し、パッチが標準で適用されるようになった。一般ユーザにとっては問題になりそうにないが、念のためメモしておく。
変わらなかったこと
やっぱり TeX はアレです。
【速報】TeX Live 2015 にしても改善しなかったこと ・TeXはアレ #TeX
— ZR-TeXnobabbler(既定値) (@zr_tex8r) 2015, 6月 12
【駄報】TeX Live 2015でも相変わらずなところ:\thinmuskip,\medmuskip,\thickmuskipのデフォルト値
— きえだ ゆうすけ (@p_typo) 2015, 6月 12
MacTeX-2015 の TeX Live Utility の不具合
さて一方で、早速不具合も報告されている。MacTeX-2015 の TeX Live ユーティリティで内部エラーが発生したり、リポジトリにアクセスできなかったりするようである。対処法は Forum に書かれている。
その他(おまけ)
今年4月に TeXworks 0.4.6 がリリースされた際、「エラー時に子プロセスを呼び出すプログラムを停止しようとするとフリーズする」という問題が発生した。TeX Forum での議論を元に開発チームに対処していただいたので、TeX Live 2015 に間に合った。