纯 TeX 格式的描述列表,标签后可选择中断

纯 TeX 格式的描述列表,标签后可选择中断

我希望有一个纯 TeX 格式的描述列表,其中如果标签宽度超过某个值,则项目标签后只有一个换行符。假设标签的缩进为零,项目文本的缩进为 3em。因此,如果标签文本加上 1em 小于或等于 3em,则以下文本应直接跟随(对齐在 3em),如果大于 3em,则标签后应该有一个换行符。列表的 ASCII 示例:

A   <text1>
AB  <text2>
ABC
    <text3>

上述所有文本均应以 3em 对齐。

项目宏的使用形式应为

\item{<tag>} <text>

因此,只有标签是参数,而不是后面的文本。

我看了 TeXbook 第 106 页,那里有类似的内容,但没有帮助。

答案1

这里我使用 0.5em 作为最小分离度,请根据你的情况进行更改。

\def\fitem#1{%
  \par\noindent
  \hangindent 3em
  \setbox0=\hbox{#1}%
  \hbox to\hangindent{#1\hss}%
  \ifdim\wd0>2.5em \hfil\break \fi
  \ignorespaces
}

\def\a{some text }
\def\b{\a\a\a\a}
\def\test{Some text \b\b\b\b}

\test

\fitem{A} \test
\fitem{AB} \test
\fitem{ABC} \test
\fitem{ABCD} \test
\fitem{ABCDE} \test

\test

\bye

在此处输入图片描述

相关内容