確認しました.LuaTeX-ja では,\shipout するときに縦組ボックスを*実際に*回転させる処理を
\AtBeginShipout{\directlua{luatexja.direction.finalize()}}として入れていますが,preview パッケージで出力する際にはこの処理が実行されない状況になっています.
対症療法としては,
\RequirePackage{luatex85} \documentclass{article} \usepackage{lltjext}\AtBeginShipoutInit % preview の前に LuaTeX-ja 読み込み. \usepackage[active,tightpage]{preview} \PreviewEnvironment{minipage} \begin{document} \begin{minipage}{3\zw} あ\pbox<t>{たーて。}い \end{minipage} \end{document}と,
ことでしょうか(なお.縦組クラス使用時はこれでもエラーが出る状態のままです).
atbegshi パッケージに頼らず,LuaTeX 本体のコールバックだけでなんとかできないかなあ,と考えてみます.
縦組クラスだと preview が ! Package luatexja Error: Incompatible direction list can't be unboxed. エラー
0 vlist 0 (3.8961+5.72609)x28.86658, dir=0 .0 whatsit 8 userid:4 (direction) (node list) dir: 3 % 組方向情報 by LuaTeX-ja .0 penalty 0 -10000 .0 glue 3 0.0pt .0 hlist 2 (3.8961+5.72609)x28.86658, dir=0
という vbox を \vsplit したときに,「取り去られた部分」が中身が空のボックスとなってしまい,結果として「ボックスの組方向は縦組である」という情報も失われてしまうのが原因のようです.
LuaTeX-ja では vsplit の際に,先頭の組方向情報を含んだ whatsit を一旦取り除き,その後復活させるという処理をしています (commit 38812c59d) が,それがアダになったようです.
commit c14cdc4c で直したつもりです.
組方向情報を格納する whatsit さえない,正真正銘中身が空のボックスはいつでも unbox できるようにしました.
最初の
で「たーて。」が縦組のまま左に 90 度回転する問題ですが,20170730.0 でもまだ直っていないですね.もう一回調べてみます. (「補足:」のエラーは直っています.)
20170730.0 でもまだ直っていないですね
20171112.0 を出しましたが,まだ直っていないようです.
8aa7cca を見てみました。動いていそう,ですが
\setbox\AtBeginShipoutBox=\hbox{\yoko\box\pr@box}%
で \vbox ではなく \hbox にしている理由は何でしょうか? 少なくともその手前までで \pr@box は垂直ボックスになっているはずなので,ここは \vbox の方が合っていそうな気がしています。(問題がおきる例は作れていませんが…)
aminophen への返信
8aa7cca を見てみました。動いていそう,ですが {{{ \setbox\AtBeginShipoutBox=\hbox{\yoko\box\pr@box}% }}} で \vbox ではなく \hbox にしている理由は何でしょうか? 少なくともその手前までで \pr@box は垂直ボックスになっているはずなので,ここは \vbox の方が合っていそうな気がしています。(問題がおきる例は作れていませんが…)
特に \hbox でも問題はおきないと思いますが,ba256d2 で \vbox にしました.
http://blog.livedoor.jp/ti5942/archives/9549474.html を見ていて気になったので、可能な限り最小化して投稿します。
lltjext による部分縦組を含むソースを preview で切り取るとします。
このとき「たーて。」が縦組のまま左に 90 度回転して寝ています。同じことを standalone クラスでやってみると
こちらは問題ありません。preview パッケージで部分縦組が寝るのはなぜでしょうか。
補足:そもそも縦組クラスだと preview が ! Package luatexja Error: Incompatible direction list can't be unboxed. エラーになります。
この状況は pLaTeX の縦組クラスの場合でも同様にエラーです。「単に preview が縦組に未対応である」というのも考えたのですが、plext の部分縦組については pLaTeX + dvips + gs7.07 で正常ですから、別の問題が起きていると思っています。(ちなみに pLaTeX + dvipdfmx は「preview の dvipdfmx ドライバ」 http://d.hatena.ne.jp/zrbabbler/20121007/1349622782 がうまく動かないので未確認です)