-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ptex] ページ・数式の組方向 #21
Comments
もう一点, 数式モードから抜ける前のリストを
となりますが,この数式リストは
つまり,「dtou 方向の段落の中に,縦組の数式が組方向の情報を失い埋め込まれる」わけです. 数式モードの内部では |
一つ目のコメントに対して,雑多なコメントだけ。 確かに不自然な挙動ではあるのですが,tarticle.cls などの改修が必要になることから一旦見送ったのでしたっけ。 forum:1344, forum:1508 ※ forum:1508 の biblatex のエラーは最新では出なくなっている 現在は tarticle.cls がコミュニティ管理になっているので,最悪我々で改修すればそこの問題は回避できますが,他の方々が配っている縦組クラスが動かなくなる可能性がありますよね。 私はまだ全貌が見えていないのでなんとも… |
すでに3年前に forum に書いていたとは.すっかり忘れていました.
似たような状況として,非限定水平モードの先頭で
|
挙げていただいた不可解な挙動をまとめるとこんな感じでしょうか。個人的には (2) の挙動は特に奇妙に感じ,縦ディレクションと縦数式ディレクションの行き来で不都合が生じなければ改善はアリかなと。 ただ,いずれも「判定が甘い故に不自然な挙動が生じている」とは思いますが,「それが実用の組版機能における致命的な問題を引き起こしている」とは感じていないので,改善が必須とまでは至っていません。一方同時に,上掲の biblatex で一時エラーが出ていたような例から,「判定の甘さをかいくぐれない状況が容易に生じうるデリケートさ」をはらんでいるのは事実で,これはある意味で問題といえるとも思います。 一番の興味としては,「縦組クラスはどう実装するのが安全か」です。pTeX を変えるにせよ変えないにせよ,これは気になる点です。また,現行の多くが \AtBeginDocument している理由もはっきりとは知りません。 |
tarticle, tbook(に限らず,単なる article, book クラスでも)では,クラスファイル読み込み時に
そのため,もし pTeX を「current page も recent contribution も空のときのみ組方向を変えられる」と仕様変更するとしたら,次のような選択肢が考えられるでしょうか.
LuaTeX-ja の ltjtarticle 等では 1. を(結果的に)取っています.2., 3. は再定義の影響が気になります. |
tex.web を見ていたら,「current page が mark と whatsit のみからなる場合に empty となる」変数 change_direction ブランチで実装してみました. |
縦組クラスを改修なしに使えるとのこと,ありがとうございます。 もう一点質問です。非限定水平モードの“穴”が塞がれた場合に \documentclass{tarticle}
\usepackage[word]{continue}% これは atbegshi 依存
\begin{document}
あ
\newpage
い
\end{document} を通すにはどうすればよいのでしょうか? 現在の pTeX では,ZR さんが forum:1508 で書いていらっしゃったバッドノウハウが使えて, \documentclass{tarticle}
\usepackage{atbegshi}% これを先に読んで…
\AtBeginShipout{\par\noindent\yoko}% ここで pTeX の穴を突く
\usepackage[word]{continue}
\begin{document}
あ
\newpage
い
\end{document} で回避できるっぽいのですが…。(forum:1508 は最新環境では発生しないエラーですが,類似のケースの例として上のソースを挙げてみました。) 追記 上の質問の背景には,forum:2134 のように「縦組クラス + atbegshi」でエラー
が出るときは \AtBeginShipout{\yoko} しておくとうまくいきそう,というのが背景にあります。これはほとんどのケースで有効ですが,うまくいかずエラー
になってしまう例が \usepackage[word]{continue} だったという次第です。 |
commit bebc228 を Mac 環境でビルドしてみると,eptexdir/eptriptest.test が落ちたのですが,なぜ落ちるのかよく理解できません。再現しますか?
→ cptripin.fot の中に eptexdir/eptrip/texmf.cnf の
を 37000 にちょっと増やしてみるとテストは通りました。 |
pTeX だと 40000 だったので,commit 3762246 でそれに揃えました.
|
ありがとうございます。同じコードが luatexja でも動作することも確認できました。 |
よく理解できていない状態で申し訳ないですが,新設の \documentclass{tarticle}
\usepackage{etoolbox}
\AtEndPreamble{\write16{A}}% これがあるとエラーになる
%\AtEndPreamble{\write16{A}\par}% これに変えるとエラーが出ない
\begin{document}
あいうえお
\end{document} |
もう一点、手元の Mac 環境では(すぐ上に書いたソースを tatecls-test.tex として)
のように,「platex 一旦エラーが出た後に Ctrl + Z で強制終了してもう一回 platex を走らせる」とすると,その一回だけコンパイルが通ってしまうようです。初期化不良か何かでしょうか? |
上 (\par なし) だと, 次のコードを仕込んでおくと,
こちらでも再現 (Gentoo Linux, amd64).Ctrl + Z は強制終了ではなく単に休止させているだけ( |
ff7fae2 で,recent contributions に hbox, vbox, rule, insertion がない場合も許容することにしました(page_contents = empty なので,先頭の glue, kern, penalty はdiscard される). 9/3 21:59 追記:hbox, vbox が dir_node でラップされている場合の考慮を忘れていたので, 3bb4554 で加えました. |
ああなるほど,難しい… ff7fae2 の方が私は自然な挙動だと思います。
おっと,発見のきっかけが TeXShop とかの「強制終了」ボタンを押したときだったので間違いました。 ff7fae2 だと同じ方法でエラーを起こせないので,とりあえず解決(?) |
LuaTeX-ja のチケット #37458, #37467 にも似たようなことを書いていますが,pTeX の組方向変更命令に気になる点があります.以下のソースを用いて説明します.
pTeX では,組方向は内部リストごとに設定できるようになっており,
\yoko
,\tate
のような組方向変更命令がリストの先頭でしか使えないことはご存知だと思います.まず,(外部)垂直モードでのリストの状況を調べてみると,tex.web では
と初期化されています.従って,"recent contribution" が空である” ときに組方向変更命令が実行可能ということになります.
上記のソースの具体例で言うと,次のようになります.
\tate
は実行でき,ページの組方向が縦組になる(\showlists``` で
tate direction` と表示されている).2つ目の段落「かd」は縦組で組まれる.\dtou
でページの組方向が dtou 方向となる.これはなんとも不思議な挙動で個人的には何らかの処置をしたいと思っていますが,
tarticle などの標準縦組クラスで効果を発揮しているので微妙なところです.
\documentclass{tarticle}
の直後で\showlists
を実行するととなっており,current page は非空だが recent contribution は空なので,その後に組方向を縦組に変更できるというわけです.
長いので,もう一点の気になる点についてはコメントを分けます.
The text was updated successfully, but these errors were encountered: