インラインの注釈を作成するコマンドにparboxで包む工程を追加したところ動かない

インラインの注釈を作成するコマンドにparboxで包む工程を追加したところ動かない

- KK TeX の投稿
返信数: 2

https://x.com/doraTeX/status/1544320679436517378

このツイートにあるnote.styがとてもいいなと思い、

https://github.com/KKTeX/undernote

今ここにてスタイリングをしています。自身で少し改造して、

(一部抜粋)

\newlength{\undernote@textlen@tempo}
\NewDocumentCommand{\wrap@undernote@par}{ +m }{%
\parbox[t]{\dimexpr\undernote@textlen@tempo - \noterulehsize - \noterulehshift - 1em\relax}{#1}
}



\DeclareDocumentCommand{\undernote}{ s O{} m +m }{%%% #1(star)注釈をparboxに包む,
%%% #2 (optinal): 注釈を下にずらす「行数」(与えない場合,自動設定),
%%% #3: 注釈をつける語句,#4: 注釈
\settowidth{\undernote@textlen@tempo}{#3}
\begingroup
\stepcounter{noteid}%
\ifmmode
\@note@save@conters
\savepos
\expandafter\@math@note
\else
\leavevmode
\savepos
\expandafter\@text@note
\fi
{#2}{#3}{%
\ifnum\ltjgetparameter{direction}=4
\begin{varwidth}[t]{\maxdimen}\IfBooleanTF{#1}{\wrap@undernote@par{#4}}{#4}\end{varwidth}%
\else
\raisebox{.38\zw}{\begin{varwidth}[t]{\maxdimen}\IfBooleanTF{#1}{\wrap@undernote@par{#4}}{#4}\end{varwidth}}%
\fi%
}%
\endgroup}

以下のようにスターをつけると長い内容を入れてもparboxにより折り返してくれるという仕様にしました。

ところが、通常のparboxの仕様的に引数内部に空行ないし\parを入れても動いて然るべきなのに、エラーが出て動きませんでした。

parboxを先に完全に展開しておけば壊れないのかなあと思いつつ、力不足でうまくいっていないのが現状です。どなたかお力添えいただけませんでしょうか。

必要なファイルは全て、上に書いたリンクと同じ https://github.com/KKTeX/undernote このリポジトリに入れてありますので、ご使用ください。

KK TeX への返信

Re: インラインの注釈を作成するコマンドにparboxで包む工程を追加したところ動かない

- 本田 知亮 の投稿
脳内コンパイルだけで書いてます.

githubにアップされているlogに

{\ifnum \ltjgetparameter {direction}=4 \begin {varwidth}[t]{\maxdimen \ETC.
/Users/majinkuu/Desktop/undernote/test1.tex:11: Paragraph ended before \@text@note was complete.

\par
l.11 }

とあるのだから
\@text@note
の第三引数に long な引数が入る形になるからでは?

\long\def\@text@note

で状況が変わるのではないでしょうか


本田 知亮 への返信

Re: インラインの注釈を作成するコマンドにparboxで包む工程を追加したところ動かない

- KK TeX の投稿

できました!!!

ありがとうございます!!!