LaTeX 类中的宏

LaTeX 类中的宏

我在 LaTeX 类中有以下宏:

\def\labelenumi{\theenumi.}
\def\theenumi{\arabic{enumi}}

\def\labelenumii{(\theenumii)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}

\def\labelenumiii{\theenumiii.}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}

\def\labelenumiv{\theenumiv.}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}

我知道这些是用于编号的,但我不太明白。有人能解释一下它们的作用以及如何使用它们吗?我有一个相关的问题。现在我有点困惑。我发现我的 latex 类中在上述宏之后定义了另一组宏。下面是一个例子:

\def\labelitemi{\m@th\bullet}
\def\labelitemii{\bfseries --}  
\def\labelitemiii{\m@th\ast}    
\def\labelitemiv{\m@th\cdot}
\begin{document}
\begin{enumerate}
 \item 
 level 1
 \begin{enumerate}
\item 
level 2
 \begin{enumerate}
\item 
level 3
 \begin{enumerate}
\item 
level 4
 \end{enumerate}
 \end{enumerate}
 \end{enumerate}
\end{enumerate}

这些似乎与我之前提到的宏所做的工作相同。但这个更简单!由于两者都包括在内,我想知道是否存在我忽略的细微差别。

提前致谢。

答案1

这些定义了枚举列表的标签。

\documentclass{article}
\makeatletter
\def\labelenumi{\theenumi.}
\def\theenumi{\arabic{enumi}}

\def\labelenumii{(\theenumii)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}

\def\labelenumiii{\theenumiii.}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}

\def\labelenumiv{\theenumiv.}
\def\theenumiv{\Alph{enumiv}}
\def\p@enumiv{\p@enumiii\theenumiii}
\makeatother

\begin{document}
\begin{enumerate}
\item level 1
\begin{enumerate}
\item level 2
\begin{enumerate}
\item level 3
\begin{enumerate}
\item level 4
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}

\end{document}

在此处输入图片描述

答案2

latexenumerate根据嵌套级别使用不同的计数器。顶级枚举使用enumi项目内部的枚举,而项目内部的枚举则使用enumii等。

这些设置了计数器使用的打印样式。采用第二级

\def\labelenumii{(\theenumii)}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}

\theenumi是通常的the...与每个乳胶计数器相关联,并给出其默认打印格式。这里\alph是 a、b、c、...

\labelenumi是此处枚举标签中使用的形式(a)(b)等等,括号仅用于标签中,而不\theenumii用于交叉引用或计数器的其他用途。

\p@enumi是交叉引用中使用的前缀。因此这里是\theenumi周围项的打印形式,因此如果此枚举在外部列表的第 2 项中,并且这是此列表的第 2 项,\p@enumi则将为标2有的此项\ref生成。2b(b)

相关内容