自定义标签

每个列表条目开头的 标记(或标签) 是您可以更改的。将itemize 的子弹变成钻石,或“1”。 enumerate 变成罗马“I”。或“(a)”——关键是每个级别提供的一些宏。本页涵盖了通过 \renewcommand 的经典路线(itemize\labelitemienumerate\theenumi\labelenumi)以及 enumitem 的现代、更简单的 label= 键,展示了它们的不同之处以及何时到达每个路线。

更改逐项标记

itemize 的标记位于宏 \labelitemi\labelitemii\labelitemiii\labelitemiv 中,每个嵌套级别一个(i / ii / iii / iv 是级别 1-4 的罗马数字)。在标准类中,默认值是:级别 1 为实心项目符号 \textbullet (•),级别 2 为粗体破折号 (–),级别 3 为星号 \textasteriskcentered (*),级别 4 为居中点 \textperiodcentered (·)。

要更改 整个级别 的标记,请使用 \renewcommand 重新定义匹配的宏,将其放置在序言中或您想要的范围之前。例如,要将第一层设为菱形:

latex
\renewcommand{\labelitemi}{$\diamond$}
\begin{itemize}
  \item この階層の記号は菱形になる
  \item 二つめの項目
\end{itemize}

要更改仅一个条目的标记,请在 \item 之后的方括号中给出一个标签。 \item[$\star$] 使该条目的标记成为星号,而 \item[--] 使该条目的标记成为破折号。像这样的括号标签默认设置为粗体并右对齐。

枚举数字 — 计数器和\theenumi

enumerate 的参与程度更高。其编号由每级的计数器驱动:enumienumiienumiiienumiv。每个计数器的值(1、2、3…)如何表示\theenumi\theenumii等决定,其在标准类中的默认值是:

级别柜台默认`\the…`打印
\theenumi第一enumi\arabic{enumi}1, 2, 3 …
\theenumii第二enumii\alph{enumii}a、b、c …
\theenumiii第三名enumiii\roman{enumiii}一、二、三……
\theenumiv四号enumiv\Alph{enumiv}A、B、C …

要以罗马数字设置第一级,请用\Roman 重新定义\theenumi。因为 \theenumi 也是 当您 \ref 这样的项目时生成的字符串,因此更改它会同时更新打印的数字和交叉引用(更多信息请参见下面的参考资料)。

latex
\renewcommand{\theenumi}{\Roman{enumi}}
\begin{enumerate}
  \item 第一段階(既定では I. と表示)
  \item 第二段階
\end{enumerate}

\labelenumi 与 \theenumi

这就是症结所在。其中\theenumi 修复了数字的表示(1 vs I vs a),宏\labelenumi\labelenumii,...修复了如何在行首打印标签\labelenumi 在内部调用\theenumi 并用标点符号(句点或括号)将其括起来。下面的标准级默认值在除级别 2(带括号)之外的所有位置添加句点:

标签宏默认定义打印
\labelenumi\theenumi.1. 2. 3. …
\labelenumii(\theenumii)(一) (二) (三) …
\labelenumiii\theenumiii.我。二.三. ……
\labelenumiv\theenumiv.A. B. C. …

因此,当您只想更改标签的外观(不考虑数字的表示形式)时,请重新定义\labelenumi。转“1”。例如,在“(1)”中写入以下内容。由于 \theenumi 未受影响,因此对该项目的 \ref 仍会产生不带括号的裸 1

latex
\renewcommand{\labelenumi}{(\theenumi)}
\begin{enumerate}
  \item 行頭は (1) と表示される
  \item (2)、(3) と続く
\end{enumerate}

简而言之:数字的出现(I,a,1)是\theenumi;标签的整体样式(括号或句点)是 \labelenumi 交叉引用值使用 \theenumi 中的裸露表示形式,不带标签的标点符号 — 更准确地说,LaTeX 通过在 \theenumi 前加上 \p@enumi 前缀(默认为空)来构建引用。定义\p@enumii 和朋友,您可以进行包含父编号的引用,例如“1(a)”。

反表示命令

要选择数字在\theenumi\labelenumi 中的显示方式,请使用LaTeX 的标准反表示命令。每个都将计数器名称作为其参数(例如\Roman{enumi})并以所选形式打印该计数器的值。

命令打印范围/注释
\arabic1, 2, 3 …(阿拉伯语)允许负值
\alpha、b、c …(小写)1–26
\AlphA、B、C …(大写)1–26
\romani、ii、iii …(小写罗马)
\RomanI、II、III …(大写罗马)
\fnsymbol脚注符号 * † ‡ § ¶ ‖ ** †† ‡‡ 仅1–9

\alph\Alph 超过 26 的错误,\fnsymbol 超过 1-9 的错误。例如,\renewcommand{\theenumi}{\Alph{enumi}} 将第一级设置为 A、B、C …,而 \renewcommand{\labelenumi}{\arabic{enumi})} 则给出类似“1)”的标签。

现代、简单的方法 — enumitem 的标签=

重新定义宏很强大,但当您想要每个列表有不同的样式时,它会变得很笨拙。对于大多数情况,enumitem更干净,因此首先使用它。加载enumitem,您可以使用label=在其可选参数中设置列表的标签。

label= 内部,您使用星号 表示命令 - \alph*\Alph*\arabic*\roman*\Roman* - 这些命令不带任何参数,代表当前级别的计数器。您将标点符号写在旁边,因此 label=(\alph*) 给出“(a)”,label=\Roman*. 给出“I.”。

document.tex
\usepackage{enumitem}
% ...
\begin{enumerate}[label=(\alph*)]
  \item ラベルは (a) になる
  \item (b)、(c) と続く
\end{enumerate}

它也适用于 itemize\begin{itemize}[label=$\star$] 直接给出标记。默认情况下,label= 还设置交叉引用 (\ref) 的形式,但是当您希望引用形状不同时,请使用ref= 键。例如[label=(\alph*), ref=\alph*]在头部打印“(a)”,而\ref返回一个空的“a”。还有 label*=,它附加到父标签以构建累积数字,例如 1.、1.1.、1.1.1。 …请注意,label*= 仅针对打印标签进行累积:父编号不会自动添加到交叉引用中,因此要获得像“1.a”这样的引用,您必须用 ref= 拼写出来,例如ref=\theenumi.\alph*

要将相同的样式应用于文档中的每个列表,请使用 \setlist 设置一次,并在方括号中命名类型 (itemize / enumerate) 和级别。

latex
\usepackage{enumitem}
\setlist[enumerate,1]{label=\Roman*.}   % 第1階層を I. II. III.
\setlist[enumerate,2]{label=(\alph*)}    % 第2階層を (a) (b)
\setlist[itemize,1]{label=$\diamond$}    % itemize 第1階層を菱形に

通过enumitemshortlabels 选项,您还可以使用简洁的enumerate 包样式语法,例如\begin{enumerate}[(1)]enumitem 页面进一步介绍了更精细的每级计数器工作和内联列表。

一个有效的例子

最后,这是一个文档中的所有内容。上半场采用经典路线,给顶层一个罗马“I”。风格;第二个与enumitemlabel= 简洁地达到相同的结果。两者产生相同的输出。

document.tex
% --- 古典的な方法 / the classic way ---
\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\labelenumi}{\theenumi.}
\begin{enumerate}
  \item 下ごしらえ        % I. と表示
  \item 加熱する          % II.
\end{enumerate}

% --- enumitem を使う / with enumitem ---
\usepackage{enumitem}
\begin{enumerate}[label=\Roman*.]
  \item 下ごしらえ        % I.
  \item 加熱する          % II.
\end{enumerate}

在前半部分中,\theenumi 设置为 \Roman 以将表示形式更改为 I、II、...,然后 \labelenumi 定义为 \theenumi. 以添加句点(默认 \labelenumi 已经是 \theenumi.,因此该行只是使样式更加明确)。在后半部分,单个label=\Roman*.同时完成两项工作。对于日常工作来说,这个 enumitem 表格就足够了;仅当您需要分别控制标签和参考时,您才需要返回\theenumi\labelenumiref=