Hatena::ブログ(Diary)

アセトアミノフェンの気ままな日常

2016-04-27

pLaTeX と共存できていない LaTeX パッケージの備忘録

ときどき TeX Forum で出てくる「LaTeX では使えるのに pLaTeX では使えない場合があるパッケージ」。特に縦組で使えないパッケージがたくさんあるのは周知のとおりであるが、いま記憶しているものだけ列挙しておく。多分もっと山ほどあるのだろうけれど、既知のものをまとめていくだけでも今後の何かの参考になるかもしれないと思うので…

pict2e パッケージ

縦組ではエラーが出ないが支離滅裂な描画結果となる。ただ「LaTeX カーネル互換の picture コードは pict2e を読んでも同じになる」が理想的な挙動なのかどうかすらよくわからない。以前とりあげたここここを参照。

everysel パッケージ(ragged2e 依存パッケージなど含む)

pLaTeX で everysel したい話にあるとおり、pLaTeX のフォント管理機構が壊されてしまってエラーなしに文字化けしたりフォントサイズが不正になったりする。pxeverysel パッケージを使えばいけるらしい*1。(forum:603, forum:1763)
追記 (2016-04-29):tracefnt と ptrace についても考察中
追記 (2016-05-02):さらに考察を進めた

everyshi パッケージ(tikz パッケージなど含む)

縦組と共存できていない。ただし、pxeveryshi パッケージを使えば通るようである*2。(qa:56760, qa:56761)

\documentclass[dvipdfmx]{tarticle}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (1,2);
\end{tikzpicture}
\end{document}
《縦組モード》 ABD: EveryShipout initializing macros
! Incompatible direction list can't be unboxed.
\@EveryShipout@Hook ...vbox \@cclv \unvbox \@cclv 
                                                  \else \hsize =\wd \@cclv \...
l.7 \end{document}
                  
? 

ftnright パッケージ

縦組と共存できていない。実際にはそれだけではなく、ほかにも pLaTeX カーネルの独自変更をキャンセルしてしまう挙動がある(後日)。(forum:1896)

\documentclass[a4paper,twocolumn]{tbook}
\usepackage{ftnright}
% ダミーテキスト用
\def\hoge{ほげほげ。ふがふがふが。ぴよぴよぴよぴよ。}
% 長めのダミーテキストを準備
\def\HOGE{\hoge\hoge\hoge\hoge\hoge\hoge\hoge\hoge\hoge\hoge}
\begin{document}
\HOGE\HOGE
ここに脚注を\footnote{脚注です。}入れました。
\HOGE\HOGE
もう一つ脚注を\footnote{ふたつめの脚注です。}入れてみましょう。
\HOGE\HOGE
\end{document}
! Incompatible direction list can't be unboxed.
\@startcolumn ...nsert \footins {\unvbox \footins 
                                                  }\fi \fi 
l.13 \end{document}
                   
?

geometry パッケージ

縦組と共存できていない。(forum:1116)

\documentclass{tarticle}
\usepackage[b6paper,dvipdfm]{geometry}
\begin{document}
縦組です。
\end{document}
! Incompatible direction list can't be unboxed.
\@begindvi ->\unvbox \@begindvibox 
                                   \global \let \@begindvi \@empty 
l.5 \end{document}
                  
? 

既に LuaTeX-ja プロジェクトが lltjp-geometry パッケージを公開していて、これは「pLaTeX の縦組」でも利用できる(参考1, 2)。

追記 (2016-05-01):続き

*1:なお、LuaTeX-ja の lltjfont.sty ではあらかじめ everysel を読み込んでおいてそのあとからフォント管理コマンドにパッチして対処している(ようにみえる)。

*2:ちなみに LuaTeX-ja の縦組クラスでも同様の問題が起きるが、こちらは pxeveryshi と同等のコードを導入することで独自対処しているようだ(参考)。