每个列表条目开头的 标记(或标签) 是您可以更改的。将itemize 的子弹变成钻石,或“1”。 enumerate 变成罗马“I”。或“(a)”——关键是每个级别提供的一些宏。本页涵盖了通过 \renewcommand 的经典路线(itemize 的 \labelitemi 和 enumerate 的 \theenumi 和 \labelenumi)以及 enumitem 的现代、更简单的 label= 键,展示了它们的不同之处以及何时到达每个路线。
更改逐项标记
itemize 的标记位于宏 \labelitemi、\labelitemii、\labelitemiii 和 \labelitemiv 中,每个嵌套级别一个(i / ii / iii / iv 是级别 1-4 的罗马数字)。在标准类中,默认值是:级别 1 为实心项目符号 \textbullet (•),级别 2 为粗体破折号 (–),级别 3 为星号 \textasteriskcentered (*),级别 4 为居中点 \textperiodcentered (·)。
要更改 整个级别 的标记,请使用 \renewcommand 重新定义匹配的宏,将其放置在序言中或您想要的范围之前。例如,要将第一层设为菱形:
\renewcommand{\labelitemi}{$\diamond$}
\begin{itemize}
\item この階層の記号は菱形になる
\item 二つめの項目
\end{itemize}要更改仅一个条目的标记,请在 \item 之后的方括号中给出一个标签。 \item[$\star$] 使该条目的标记成为星号,而 \item[--] 使该条目的标记成为破折号。像这样的括号标签默认设置为粗体并右对齐。
枚举数字 — 计数器和\theenumi
enumerate 的参与程度更高。其编号由每级的计数器驱动:enumi、enumii、enumiii、enumiv。每个计数器的值(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 这样的项目时生成的字符串,因此更改它会同时更新打印的数字和交叉引用(更多信息请参见下面的参考资料)。
\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。
\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})并以所选形式打印该计数器的值。
| 命令 | 打印 | 范围/注释 |
|---|---|---|
\arabic | 1, 2, 3 …(阿拉伯语) | 允许负值 |
\alph | a、b、c …(小写) | 1–26 |
\Alph | A、B、C …(大写) | 1–26 |
\roman | i、ii、iii …(小写罗马) | |
\Roman | I、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.”。
\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) 和级别。
\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階層を菱形に通过enumitem 的shortlabels 选项,您还可以使用简洁的enumerate 包样式语法,例如\begin{enumerate}[(1)]。 enumitem 页面进一步介绍了更精细的每级计数器工作和内联列表。
一个有效的例子
最后,这是一个文档中的所有内容。上半场采用经典路线,给顶层一个罗马“I”。风格;第二个与enumitem 的label= 简洁地达到相同的结果。两者产生相同的输出。
% --- 古典的な方法 / 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、\labelenumi 和ref=。