description

description定义列表 的环境 - 术语及其解释对。给每个\item一个可选参数[...],其内容成为术语(标签),默认在左边距以粗体设置,解释如下。它非常适合词汇表、选项列表和参数文档。

基本用法

其中itemizeenumerate 为您提供标签(1.),description 则不同:您以文字形式给出标签。 标签位于\item可选参数 [...] 中。在itemizeenumerate中,[...]是覆盖一项标记的额外内容;在description 中,这实际上就是重点。

latex
\begin{description}
  \item[TeX] クヌースが作った組版システム。
  \item[LaTeX] TeX 上に築かれた文書作成のための言語。
  \item[CTAN] パッケージを配布する世界規模のアーカイブ網。
\end{description}

排版,TeXLaTeXCTAN 等词以 粗体 位于左边距,每个词的右侧都有其解释(如果很长,则换行到下一行)。当标签很长时,第一行解释就在它之后开始。与itemizeenumerate 一样,您至少需要一项;零项会引发错误“Something's wrong--perhaps a missing \item”。

标签陷阱

如果您省略[...],则该项目没有标签(您将获得一个悬挂段落样式的条目,没有标记,也没有缩进提示)。由于标签是description 的全部要点,因此除非故意,否则请避免这样做。官方 LaTeX 参考建议始终提供标签,“因为没有合理的默认值。”

另一个陷阱是方括号。 因为[] 分隔了可选参数,所以当您希望文字括号*作为标签或正文中的字符*时,请将其隐藏在大括号中。如果正文以[开头,则写\item {[};要将右括号放在标签内,请将其括起来为{]},例如\item[Close bracket, {]}]

latex
\begin{description}
  \item[\texttt{[a-z]}] 文字クラス。ラベル内の角括弧は中括弧で保護する。
  \item {[}本文が角括弧で始まる場合はこう書く。
\end{description}

另外,在标签内以声明形式编写的字体更改命令会覆盖默认的粗体。例如,要在等宽字体中设置标签,请将整个内容括在大括号中 — \item[{\ttfamily label}] — 以确保安全。

使用enumitem 进行定制

要微调术语的字体和位置,请使用 enumitem 包。它允许您直接将选项传递到description环境:font=设置标签字体,leftmargin=左缩进,以及style=标签和正文的排列方式。与其他列表共享的密钥(例如itemsep=)也可以在这里使用。

latex
\usepackage{enumitem}

\begin{description}[font=\bfseries\sffamily, style=nextline, leftmargin=1cm]
  \item[オプション] 長いラベルは次の行から本文が始まる。
  \item[既定値] サンセリフ体の太字でラベルを組む。
\end{description}

style= 键采用这些主要值。在 description 中,标签始终从左侧开始,但当标签很长时,它们的主体流动方式有所不同。

风格行为
standard与标准类中的描述类似;标签设置在一个盒子中。
unboxed接近标准,但标签未装盒,因此长标签不会拥挤且可能破裂。
nextline如果标签不适合边距,则正文从下一行开始;正文永远不会粘在左边距中。
sameline与下一行类似,但如果标签不适合,正文将在同一行上继续。

要将相同的设置应用于每个description,请在前导码中写入\setlist[description]{...} 一次。例如\setlist[description]{font=\sffamily\bfseries, style=nextline}同时适用于文档中的所有定义列表。 leftmargin=labelsep=也值得了解:前者使body的启动依赖于标签,而后者修复了标签和主体之间的间隙。

更改粗体 (\descriptionlabel)

如果您只想更改默认粗体而不使用enumitem,请使用\renewcommand 重新定义\descriptionlabel(设置每个标签的命令)。它的参数#1是标签文本。下面是一个将每个标签设置为 小写大写 的示例(\hspace{\labelsep} 添加了标签和正文之间的常见间隙)。

latex
\renewcommand{\descriptionlabel}[1]{%
  {\hspace{\labelsep}\textsc{#1}}}

将此重新定义放在序言中,并且每个后续description 标签均设置为小型大写字母。将\textsc 替换为\texttt(等宽字体)或\textit(斜体)以获得您喜欢的外观。请注意,虽然 itemize 通过 *·(具有嵌套深度)循环其标记,enumerate 循环 1.(a)i.A.,但 description 在每个嵌套级别都保持相同的标签样式 — 只有一个 \descriptionlabel,因此重新定义统一适用于文档中的所有级别。

一个工作术语表

为了实际使用,这里有一个用 enumitem 修饰的小术语表。 style=nextline 将长术语放在自己的行上,font=\bfseries 使粗体明确,leftmargin= 整齐地缩进解释。每个\item 都在[...] 中携带其术语,后跟解释。

document.tex
\documentclass{article}
\usepackage{enumitem}
\begin{document}

\begin{description}[font=\bfseries, style=nextline, leftmargin=1.5cm]
  \item[コンパイル]
    ソースファイルを TeX エンジンで処理し、PDF などの出力を得ること。
  \item[プリアンブル]
    \verb|\documentclass| から \verb|\begin{document}| までの設定部分。
  \item[相互参照]
    \verb|\label| と \verb|\ref| により、番号やページを自動で挿入するしくみ。
\end{description}

\end{document}

排版,这会产生一个可读的术语表:三个术语“编译”、“前言”和“交叉引用”分别以粗体显示在自己的行上,解释在下面缩进 1.5 厘米。如果您的术语很短,请删除style=nextline并让解释从同一行开始。