初めまして。
TeX Live 2022をexeでWindows 10 22H2にインストールし使用しています。
下記文書をTeXworksのLuaLaTeXでコンパイルするとOverfullのメッセージが出て、窓見出しのある行の表示が崩れます。
\documentclass[book]{jlreq}
\NewCutinHeading{mado}{2}{}
\begin{document}
\chapter{あ}
\mado{吾輩は}
どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。
\end{document}
メッセージは下記のとおりです。
Overfull \hbox (10.0pt too wide) in paragraph at lines 5--5
|[]|
[]
Overfull \hbox (20.0pt too wide) in paragraph at lines 6--7
|\JY3/mc/m/n/10 ど
[]
Overfull \hbox (20.0pt too wide) in paragraph at lines 6--7
|\JY3/mc/m/n/10 こ
[]
[1
{c:/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./test7.aux))
手元の環境では下記のような動作を確認済みです。
(窓見出し自体の設定値はデフォルトのままですので、7字以上で2行にわたって表示されます。)
・窓見出しのテキストが1~6字では前述のとおり表示が崩れる。
・窓見出しのテキストが7字以上では正常と思われる表示になる。
原因をご教示いただけますと幸いです。
よろしくお願いいたします。
使ったことがないので、色々試行錯誤した結果です。
窓見出しの文字列を「\mado{吾輩はどこで生}」まで伸ばすと警告メッセージ
は表示されなくなります。
どうしてもと「\mado{吾輩は}」と短いものでしたら、
\NewCutinHeading{mado}{2}{onelinemax=1\zw}
ないし \NewCutinHeading{mado}{2}{onelinemax=2\zw}
と 3\zw 未満であれば警告メッセージは表示されません。
以上はマニュアル(*1) 「 7.4 窓見出し」を参考にしました。
(*1) https://tug.ctan.org/macros/jptex/latex/jlreq/jlreq-ja.pdf
あるいはコマンドプロンプト等で texdoc jlreq-ja
窓見出しの文字列を「\mado{吾輩はどこで生}」まで伸ばすと警告メッセージ
は表示されなくなります。
どうしてもと「\mado{吾輩は}」と短いものでしたら、
\NewCutinHeading{mado}{2}{onelinemax=1\zw}
ないし \NewCutinHeading{mado}{2}{onelinemax=2\zw}
と 3\zw 未満であれば警告メッセージは表示されません。
以上はマニュアル(*1) 「 7.4 窓見出し」を参考にしました。
(*1) https://tug.ctan.org/macros/jptex/latex/jlreq/jlreq-ja.pdf
あるいはコマンドプロンプト等で texdoc jlreq-ja
# 私の手元のシステムは W32TeX [2020/07/19] と古くて、あと、
# expl3 もよく分かってないので、見当はずれかも知れませんが…。
私の手元の jlreq は [2020/05/01 jlreq] なのですが、[2022/11/28 jlreq]
と比べてみますと、「窓見出し」の設定について:
\ifnum\jlreq@CutinHeading@linecount=1\relax
\setbox\jlreq@resultbox=\vbox{\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox{#1#6}}%
\def\jlreq@CutinHeading@linecount{2}%
\else
となっていた部分が:
\int_compare:nTF { \l__jlreq_cutinheading_linecount_tl = 1 }{
\vbox_set:Nn \l_jlreq_tmpb_box {\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox_unpack_drop:N \l_jlreq_tmpa_box}
\tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2}
}{
へと変更されています。
それで、\hbox_unpack_drop:N を \box_use_drop:N に(プリアン
ブルで)書き替えてみましたら、うまくいくように見えます。
(\hbox_unpack_drop:N だと、\vbox の幅が \linewidth になって
しまうのでしょうか)
# expl3 もよく分かってないので、見当はずれかも知れませんが…。
私の手元の jlreq は [2020/05/01 jlreq] なのですが、[2022/11/28 jlreq]
と比べてみますと、「窓見出し」の設定について:
\ifnum\jlreq@CutinHeading@linecount=1\relax
\setbox\jlreq@resultbox=\vbox{\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox{#1#6}}%
\def\jlreq@CutinHeading@linecount{2}%
\else
となっていた部分が:
\int_compare:nTF { \l__jlreq_cutinheading_linecount_tl = 1 }{
\vbox_set:Nn \l_jlreq_tmpb_box {\parindent=0pt\rightskip=0pt\leftskip=0pt\hbox_unpack_drop:N \l_jlreq_tmpa_box}
\tl_set:Nn \l__jlreq_cutinheading_linecount_tl {2}
}{
へと変更されています。
それで、\hbox_unpack_drop:N を \box_use_drop:N に(プリアン
ブルで)書き替えてみましたら、うまくいくように見えます。
(\hbox_unpack_drop:N だと、\vbox の幅が \linewidth になって
しまうのでしょうか)
つい、癖で、「\vbox の幅が \linewidth になってしまうのでしょうか」
と語尾を濁した言い方をしてしまいましたが、「挙動」は多分、単純化
すると、以下のような感じなのではないかと思われます:
\documentclass{jarticle}
\newbox\windowbox
\setbox\windowbox=\hbox{吾輩は}
\parindent=0pt
\begin{document}
吾輩は\hfill 犬
\medskip
\leavevmode\vbox{\unhcopy\windowbox}猿
\medskip
\leavevmode\vbox{\box\windowbox}雉
\end{document}
# 余談ですが、クヌース先生御自身も The TeXbook で "admittedly peculiar"
# とおっしゃっていた "\un..." というプリミティブの名前を、expl3 では
# "unpack" と言い替えているのが、すごく分かり易くて感心してしまいました。
と語尾を濁した言い方をしてしまいましたが、「挙動」は多分、単純化
すると、以下のような感じなのではないかと思われます:
\documentclass{jarticle}
\newbox\windowbox
\setbox\windowbox=\hbox{吾輩は}
\parindent=0pt
\begin{document}
吾輩は\hfill 犬
\medskip
\leavevmode\vbox{\unhcopy\windowbox}猿
\medskip
\leavevmode\vbox{\box\windowbox}雉
\end{document}
# 余談ですが、クヌース先生御自身も The TeXbook で "admittedly peculiar"
# とおっしゃっていた "\un..." というプリミティブの名前を、expl3 では
# "unpack" と言い替えているのが、すごく分かり易くて感心してしまいました。