TeX Live 2015 で変わったこと、変わらなかったこと (original) (raw)

この広告は、90日以上更新していないブログに表示しています。

先日正式にリリースされた TeX Live 2015 であるが、アップデートするメリットはなんだろうか? というわけで、ここに「TeX Live 2015 で変わったこと、変わらなかったこと」の気づいた点をまとめてみる。とはいっても、すべて網羅する気は全くなく、一般ユーザである僕の独断と偏見で選んでいる。

f:id:acetaminophen:20150614155359p:plain

f:id:acetaminophen:20150614155415p:plain

変わったこと (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 のソース中にバイナリを含む(従来はテキストのみだった)という点にも注意が必要。この変更の影響を直に受けたアプリケーションが次々と対策を講じた。

ここで注意すべきなのは、**TeX Live 2015 に付属した Asymptote 2.35 では eps2write に対応させると同時に従来の epswrite のサポートが打ち切られてしまった**。このため、Asymptote のバージョンを上げた場合に Ghostscript のバージョンが 9.10 以下だとエラーになる。

変わったこと (3):e-pTeX 新プリミティブの実装

タイトルでは分かりにくいが、\pdfshellescape と \lastnodechar というプリミティブが実装された。\pdfshellescape は pdfTeX と同様のものであるので割愛する。\lastnodechar については分かりやすい例がある。例えば pLaTeX

のように書くと「全角カンマと開き括弧の間に全角アキが挿入されてしまう」という挙動が話題になっていて、この問題を解決すべく実装されたのが \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 に間に合った。