什么原因导致了枚举环境的这种奇怪行为?

什么原因导致了枚举环境的这种奇怪行为?

我正在使用枚举环境,但发生了一些奇怪的事情。以下是导致奇怪行为的 LaTeX 代码行:

\begin{enumerate}[{\bf Some List  \#1:\ }] 

这样,生成的列表就有以下形式的标题:

一些 L1st #1:等等等等等等

一些 L2st #2:等等等等等等

我最终纠正这个问题的方法是修改那一行特定的内容如下:

\begin{enumerate}[{\bf {Some List}  \#1:\ }] 

因此,我的问题有点学术性,因为我有一个解决方案。我只是不知道为什么会发生这种情况,也不知道为什么这个解决方案有效。提出这个问题的另一个原因是,虽然对我来说答案有点学术性,但对这个问题的讨论可能会对其他人有所帮助。最后,提出这个问题的一个原因是,虽然这种奇怪的行为令人困惑,但我对它的发现和我的解决办法都让我发笑,我认为我没有权利剥夺别人的欢乐时刻。:)

答案1

您获得的输出基本上是随机的。

\documentclass{article}
\usepackage{enumerate}

\begin{document}

Wrong:
\begin{enumerate}[{\bf Some List  \#1:\ }]
\item A
\item B
\end{enumerate}

Right:
\begin{enumerate}[\bfseries Some {List} \#1:\ ]
\item A
\item B
\end{enumerate}

\end{document}

在此处输入图片描述

另一方面,enumitem封装更加简单:

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{enumerate}[label=\bfseries Some List \#\arabic*:]
\item A
\item B
\end{enumerate}

\end{document}

在此处输入图片描述

请注意,这\bf已经过时二十多年了。

答案2

请注意,\bf不应在乳胶中使用。

enumerate尽管您没有说,但您大概正在使用该包。

enumerate在该包定义的可选参数中i触发使用罗马数字,因此

\documentclass{article}

\usepackage{enumerate}

\begin{document}

\begin{enumerate}[{List}]
\item zzzz
\item zzzz
\end{enumerate}
\end{document}

生成 List、Liist

但你也可以1选择重新定义计数器以使用 1,2

\begin{enumerate}[{List 1}]

产生 L1st 1、L2st 2。

通常{}会隐藏特殊标记,但低级 tex 解析规则意味着{}整个可选参数组将被删除。

相关内容