1. 简介

术语表(Glossary)是按字母顺序排列的术语及其定义的列表。与创建参考文献类似,LaTeX 也支持通过特定包自动创建术语表。

在本教程中,我们将逐步讲解如何在 LaTeX 文档中创建术语表。

2. 准备工作

2.1. 前提条件

目前常用的用于创建术语表的 LaTeX 包有两个:*nomencl* 和 *glossaries*。这两个包支持缩写词、多术语表,并能配合多语言使用(通过 babel 或 *polyglossia*)。

和使用其他 LaTeX 包一样,我们需要使用 \usepackage 命令来加载 nomenclglossaries 包。如果需要用到一些依赖包(如 hyperrefbabelpolyglossiainputencfontenc),则这些包必须在 glossaries 之前加载。

2.2. 术语表生成流程

生成术语表的标准流程如下:

  1. 加载术语表所需包
  2. 调用命令生成术语表结构
  3. 定义术语及其定义
  4. 在文档中插入术语
  5. 输出术语表

接下来,我们将以 glossaries 包为例,逐步讲解如何实现上述流程。

3. 使用 glossaries

3.1. 详细步骤

首先,我们需要加载 glossaries 包:

\usepackage{glossaries}

接着,使用 \makeglossaries 命令来生成术语表结构:

\makeglossaries

然后,使用 \newglossaryentry 定义术语及其定义:

\newglossaryentry{latex}{name=latex, description={LaTeX 是一个文档排版系统}}

参数说明如下:

  • latex:术语的标签(label),用于后续引用
  • name=latex:术语的显示名称,建议使用小写
  • description={...}:术语的定义内容

在文档中插入术语时,可以使用 \gls{} 命令:

在这一句中插入自定义术语 \gls{latex}。

该命令会以小写形式输出术语,如 \gls{latex} 输出 latex

如需首字母大写或复数形式,可使用以下命令:

% 标准形式
\gls{<label>}

% 首字母大写
\Gls{<label>}

% 复数形式
\glspl{<label>}

% 首字母大写 + 复数
\Glspl{<label>}

最后,使用 \printglossaries 命令输出术语表:

\printglossaries

3.2. 基本示例

下面是一个完整的示例:

\begin{document} 

\section{包含术语表的章节}

% 定义术语
\newglossaryentry{fondue}{
    name=fondue,
    description={是一种瑞士菜肴,由在便携炉上加热的奶酪锅组成,通常用蜡烛或酒精灯加热}
}

\newglossaryentry{raclette}{
    name=raclette,
    description={是一种瑞士菜肴,通过加热奶酪并刮下融化部分,再搭配肉类或蔬菜食用}
}

% 插入术语
\Gls{fondue} 是一道非常受欢迎的菜肴,常与 \gls{raclette} 搭配出现。

% 输出术语表
\printglossaries 

\end{document}

生成效果如下:

basic_glossary_example

可以看到,使用 \Gls{} 会首字母大写,而 \gls{} 则是小写。

3.3. 缩写词(Acronyms)

缩写词与普通术语略有不同,通常在第一次出现时显示全称和缩写,后续只显示缩写。

要启用缩写词支持,需在加载包时添加 acronym 选项:

\usepackage[acronym]{glossaries}

定义缩写词使用 \newacronym 命令:

\newacronym{e2e}{E2E}{End to End}

参数说明如下:

  • e2e:标签,用于引用
  • E2E:缩写形式,建议全大写
  • End to End:全称

要输出缩写词列表,使用以下命令:

\printglossary[type=\acronymtype]

⚠️ 注意:如果你使用 Overleaf 等在线平台,可能需要先调用一次 \printglossary 再调用 \printglossary[type=\acronymtype],否则缩写词列表可能无法正确生成。首次编译后可删除第一个 \printglossary

示例代码如下:

\documentclass{article}

\usepackage[acronym,nomain]{glossaries}
\makeglossaries

\begin{document}

\section*{使用缩写词的章节}

% 定义缩写词
\newacronym{e2e}{E2E}{End To End} 

% 使用缩写词
\begin{itemize}
    \item \verb+\acrlong{e2e}+ 输出:\acrlong{e2e}
    \item \verb+\acrshort{e2e}+ 输出:\acrshort{e2e}
    \item \verb+\acrfull{e2e}+ 输出:\acrfull{e2e}
\end{itemize}

% 输出缩写词表
\printglossary[type=\acronymtype]

\end{document}

生成效果如下:

Basic Acronym Example

3.4. 自定义术语表标题

默认情况下,术语表标题为 “Glossary”,缩写词列表为 “Acronyms”。你可以通过以下方式自定义标题:

\printglossary[title=术语表, toctitle=术语表(目录项)]
  • title:页面上显示的标题
  • toctitle:目录中显示的标题

若希望术语表出现在目录中,需在加载包时添加 toc 选项:

\usepackage[toc]{glossaries}

示例:

\begin{document} 

\tableofcontents

\section{包含术语表的章节}

% 定义术语
\newglossaryentry{fondue}{
    name=fondue,
    description={是一种瑞士菜肴,由在便携炉上加热的奶酪锅组成,通常用蜡烛或酒精灯加热}
}

\newglossaryentry{raclette}{
    name=raclette,
    description={是一种瑞士菜肴,通过加热奶酪并刮下融化部分,再搭配肉类或蔬菜食用}
}

% 插入术语
\Gls{fondue} 是一道非常受欢迎的菜肴,常与 \gls{raclette} 搭配出现。

% 输出术语表
\printglossary[type=\acronymtype, title=术语表, toctitle=术语表(目录项)]

\end{document}

生成效果如下:

basic_glossary_example_with_toc

可以看到标题已改为“术语表”,目录项也更新为“术语表(目录项)”。

4. 总结 ✅

本文介绍了如何使用 glossaries 包在 LaTeX 中创建术语表和缩写词列表。我们讲解了术语表的生成流程、基本术语定义、缩写词处理方式以及标题的自定义方法。

掌握了这些内容后,你就可以在自己的 LaTeX 文档中轻松添加术语表,提升文档的专业性和可读性。


原始标题:How to Create a Glossary in LaTeX