lua-ul で作成した波線マクロが上手く機能しない

lua-ul で作成した波線マクロが上手く機能しない

- 上山 英二 の投稿
返信数: 4

失礼致します.上山と申します.

luatexja+jlreq で lua-ul パッケージを用いて,とりあえずマニュアルに従いながら以下のような波線マクロを定義しました:

\newunderlinetype\beginUnderWaby{\cleaders\hbox{%
    \begin{tikzpicture}[xscale=1.3,baseline=4pt,x=1pt,y=0.75pt]%
        \clip (1,1+1pt) rectangle (5,-1-1pt);
        \draw[semithick] (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0) sin (5,1) cos (6,0);
    \end{tikzpicture}%
    }}
\NewDocumentCommand{\underWaby}{+m}{{\beginUnderWaby#1}}
 
しかし,このマクロは様々な所でうまく機能しません.
場面によっては改行するところで波線がページの端まで伸びてしまったり,引数に指定した文字の長さよりも長く波線が伸びてしまったり,さらには一部の文字にだけ波線が二重に引かれてしまったりします.
組版の際に各文字間に挿入される kanjiskip や xkanjiskip が伸縮することによってこのような不具合が起きているのではないかとも考えましたが,正直なところよく分かりません.
投げやりな質問になってしまい大変恐縮ではございますが,この問題を根本的に解決する手段はありますでしょうか.
 
一応,このマクロを使用したことによって生じた問題(の一部)をまとめた tex ファイルをここに添付いたしますので,参考にしていただけますと幸いです.
 
上山 英二 への返信

Re: lua-ul で作成した波線マクロが上手く機能しない

- 北川 弘典 の投稿
LuaTeX-ja のところにチケットを立てました( https://github.com/luatexja/luatexja/issues/30 ).

LuaTeX-ja + jlreq では自動的に luatexja-adjust を読み込み,「優先度付きの行長調整」 (priority=true) を有効にしますが,こいつが何らかの理由で悪さをしているようです.
---- jlreq.cls ----
%.. JFMとluatexjaのロード
\ifx l\jlreq@engine
  ...
  \RequirePackage{luatexja-adjust}
  \ltjenableadjust[lineend=extended,priority=true]
  ...
----

手っ取り早い解決策としては,\ltjenableadjust[priority=false] をプリアンブルに記述することでしょうか.
北川 弘典 への返信

Re: lua-ul で作成した波線マクロが上手く機能しない

- 上山 英二 の投稿
>北川先生

迅速なご回答誠にありがとうございます。
とりあえず \ltjenableadjust[priority=false] をプリアンブルに記述したところ,無事に期待通りの出力が得られる事を確認致しました。本当にありがとうございます。
お礼の返信が遅くなってしまい,申し訳ございません。

上山
北川 弘典 への返信

Re: lua-ul で作成した波線マクロが上手く機能しない

- 上山 英二 の投稿
追加のご質問失礼いたします.
 
プリアンブルに \ltjenableadjust[priority=false] を記述したことによって,以前挙げたような波線の寸法が正しく計測されない不具合は完全に解消されたのですが,波線マクロの引数内に括弧類や中黒,句読点等の約物が入ると波線が途中で少し途切れてしまう不具合が新たに見つかりました.
なおこの不具合は \ltjenableadjust[priority=false] をしなくても発生したため,こちらによる変更は無関係かと思われます.
また ltjsarticle+luatexja の場合は全く問題なく出力されていたため,恐らく jlreq+luatexja 特有の問題であると思われます(そもそも KK TeX さんの仰っていた通り,jlreq はこのようなコテコテの装飾コマンドを用いるのには向いていないと思われるため,そもそも文書クラスとして jlreq を用いるのであればこのような文字装飾は諦めた方が良いのかもしれませんが…).
 
また新たにこちらの不具合を載せたファイルを添付いたしますので,参考にして頂けますと幸いです.
何度も北川先生の手を煩わせてしまい申し訳ない限りではございますが,もし可能であればご対応をお願いしたく存じます.
上山 英二 への返信

Re: lua-ul で作成した波線マクロが上手く機能しない

- 北川 弘典 の投稿
おそらく治ったであろう LuaTeX-ja 20250614.0 を出しました.数日中に TeX Live に入ると思います.
なにかあったら,LuaTeX-ja の issue ( https://github.com/luatexja/luatexja/issues/30 ) の方に報告をお願いします.