任务单 #37164

preview パッケージと縦書き

开放日期: 2017-05-08 02:59 最后更新: 2018-01-20 17:13

报告人:
属主:
类型:
状态:
关闭
组件:
(无)
里程碑:
(无)
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:

Details

http://blog.livedoor.jp/ti5942/archives/9549474.html を見ていて気になったので、可能な限り最小化して投稿します。

lltjext による部分縦組を含むソースを preview で切り取るとします。

\RequirePackage{luatex85}% preview.sty は新しい LuaTeX に未対応らしい
\documentclass{article}
\usepackage[active,tightpage]{preview}
\usepackage{lltjext}
\PreviewEnvironment{minipage}
\begin{document}
\begin{minipage}{3\zw}
あ\pbox<t>{たーて。}い
\end{minipage}
\end{document}

このとき「たーて。」が縦組のまま左に 90 度回転して寝ています。同じことを standalone クラスでやってみると

\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{lltjext}
\begin{document}
\begin{minipage}{3\zw}
あ\pbox<t>{たーて。}い
\end{minipage}
\end{document}

こちらは問題ありません。preview パッケージで部分縦組が寝るのはなぜでしょうか。

補足:そもそも縦組クラスだと preview が ! Package luatexja Error: Incompatible direction list can't be unboxed. エラーになります。

\RequirePackage{luatex85}
\documentclass{ltjtarticle}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{minipage}
\begin{document}
\begin{minipage}{3\zw}
あいう
\end{minipage}
\end{document}

この状況は pLaTeX の縦組クラスの場合でも同様にエラーです。「単に preview が縦組に未対応である」というのも考えたのですが、plext の部分縦組については pLaTeX + dvips + gs7.07 で正常ですから、別の問題が起きていると思っています。(ちなみに pLaTeX + dvipdfmx は「preview の dvipdfmx ドライバ」 http://d.hatena.ne.jp/zrbabbler/20121007/1349622782 がうまく動かないので未確認です)

任务单历史 (3/9 Histories)

2017-05-08 02:59 Updated by: aminophen
  • New Ticket "preview パッケージと縦書き" created
2017-05-08 16:47 Updated by: h7k
评论

確認しました.LuaTeX-ja では,\shipout するときに縦組ボックスを*実際に*回転させる処理を

\AtBeginShipout{\directlua{luatexja.direction.finalize()}}
として入れていますが,preview パッケージで出力する際にはこの処理が実行されない状況になっています.

2017-05-08 17:14 Updated by: h7k
评论

対症療法としては,

\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}
と,

  • LuaTeX-ja を preview パッケージの前に読む
  • preview パッケージの前に,(atbegshi パッケージのパッチを有効化させる)\AtBeginShipoutInit を呼ぶ

ことでしょうか(なお.縦組クラス使用時はこれでもエラーが出る状態のままです).

atbegshi パッケージに頼らず,LuaTeX 本体のコールバックだけでなんとかできないかなあ,と考えてみます.

2017-05-08 20:15 Updated by: h7k
评论

縦組クラスだと 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) が,それがアダになったようです.

2017-05-08 21:24 Updated by: h7k
评论

commit c14cdc4c で直したつもりです.

組方向情報を格納する whatsit さえない,正真正銘中身が空のボックスはいつでも unbox できるようにしました.

2017-08-03 17:19 Updated by: h7k
评论

最初の

  1. \RequirePackage{luatex85}% preview.sty は新しい LuaTeX に未対応らしい
  2. \documentclass{article}
  3. \usepackage[active,tightpage]{preview}
  4. \usepackage{lltjext}
  5. \PreviewEnvironment{minipage}
  6. \begin{document}
  7. \begin{minipage}{3\zw}
  8. \pbox<t>{たーて。}
  9. \end{minipage}
  10. \end{document}
で「たーて。」が縦組のまま左に 90 度回転する問題ですが,20170730.0 でもまだ直っていないですね.もう一回調べてみます. (「補足:」のエラーは直っています.)

2017-11-12 21:18 Updated by: h7k
评论

20170730.0 でもまだ直っていないですね

20171112.0 を出しましたが,まだ直っていないようです.

2017-11-12 23:07 Updated by: aminophen
评论

8aa7cca を見てみました。動いていそう,ですが

\setbox\AtBeginShipoutBox=\hbox{\yoko\box\pr@box}%

で \vbox ではなく \hbox にしている理由は何でしょうか? 少なくともその手前までで \pr@box は垂直ボックスになっているはずなので,ここは \vbox の方が合っていそうな気がしています。(問題がおきる例は作れていませんが…)

2018-01-20 17:13 Updated by: h7k
  • Details Updated
  • 处理结果 Update from to Fixed
  • 属主 Update from (无) to h7k
  • 状态 Update from 开启 to 关闭
评论

aminophen への返信

8aa7cca を見てみました。動いていそう,ですが {{{ \setbox\AtBeginShipoutBox=\hbox{\yoko\box\pr@box}% }}} で \vbox ではなく \hbox にしている理由は何でしょうか? 少なくともその手前までで \pr@box は垂直ボックスになっているはずなので,ここは \vbox の方が合っていそうな気がしています。(問題がおきる例は作れていませんが…)

特に \hbox でも問題はおきないと思いますが,ba256d2 で \vbox にしました.

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名