マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

ルビはじめました(PXrubrica パッケージ)(6)

(3) で示した例において、段落冒頭での前進入(<-)が働いていなかった。これは故意にそうしていたためで、その理由は、(段落途中の)行頭と同じで、「版面の外にはみ出るのを防止する」ためである。しかし、確かに、段落下げの直後であれば進入してもはみ出ないわけで、そうすると「進入する」という選択肢が必要になる。(なお、「段落下げのある段落冒頭」を判断するのは難しい。((\everypar を設定すれば可能なはずだが副作用がある。)))

これを実現するのに、「段落冒頭でも行中と同じ処理をする」という方法が考えられる。すなわち、「進入を望まない場合は |- を指定する」という仕様にすることである。ただこれを採用すると、「必要な場合に |- を忘れて、しかもはみ出ているのに気付かない」という事態が頻発しそうだ。それに段落途中の行頭と挙動が違うのが何か気持ち悪い。

というわけで、「通常は段落冒頭では進入を行わないが、! オプションを入れた場合は行う」という仕様に決めた(またオプションが増えた…)。

\documentclass{jsarticle}
\usepackage{pxrubrica}
\usepackage{otf}
\usepackage{plext}
\begin{document}
\noindent\frame{\parbox<t>{15zw}{%
123456789012345\par
\setlength{\parindent}{1zw} % 段落下げを有効にする
% <! だと段落頭でも進入を行う
\ruby[<!m]{蛤御門}{はまぐり|ご|もん}の変は幕末の…\par
% 段落頭では ! のない < は | と同じ
\ruby[<m]{蛤御門}{はまぐり|ご|もん}の変は幕末の…\par
\ruby[|m]{蛤御門}{はまぐり|ご|もん}の変は幕末の…\par
}}
\end{document}

ところで、この件の仕様を考えている時に、「そういえば段落末での挙動について全く考慮していない」ことに気がついた。段落末尾は段落先頭と異なり直接判定ができそうにないので厄介だなあ……。