跳转到内容

LaTeX/术语表

50% developed
来自Wikibooks,开放世界中的开放书籍

LaTeX

入门
  1. 介绍
  2. 安装
  3. 安装额外包
  4. 基础
  5. 如何获取帮助

常用元素

  1. 文档结构
  2. 文本格式化
  3. 段落格式化
  4. 颜色
  5. 字体
  6. 列表结构
  7. 特殊字符
  8. 国际化
  9. 旋转
  10. 表格
  11. 标题创建
  12. 页面布局
  13. 自定义页面页眉和页脚‎
  14. 导入图形
  15. 浮动体、图形和标题
  16. 脚注和边注
  17. 超链接
  18. 标签和交叉引用
  19. 首字母

机制

  1. 错误和警告
  2. 长度
  3. 计数器
  4. 规则和撑杆

技术文本

  1. 数学
  2. 高级数学
  3. 定理
  4. 化学图形
  5. 算法
  6. 源代码列表
  7. 语言学

特殊页面

  1. 索引
  2. 术语表
  3. 参考文献管理
  4. 更多参考文献

特殊文档

  1. 科学报告(学士报告、硕士论文、博士论文)
  2. 信件
  3. 演示文稿
  4. 教师专栏
  5. 简历
  6. 学术期刊(MLA、APA等)

创建图形

  1. 介绍过程化图形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 创建3D图形

编程

  1. Plain TeX
  2. 创建包
  3. 创建包文档
  4. 主题

其他

  1. 模块化文档
  2. LaTeX文档的协作编写
  3. 导出到其他格式

帮助和建议

  1. 常见问题解答
  2. 提示和技巧

附录

  1. 作者
  2. 链接
  3. 包参考
  4. LaTeX示例文档
  5. 索引
  6. 命令术语表

编辑此框编辑TOC


许多技术文档使用普通人群不了解的术语或缩略词。通常的做法是添加一个术语表,以使此类文档更容易理解。

可以使用glossaries包创建术语表。它支持多个术语表、缩略词和符号。此包替换了glossary包,可以用作nomencl包的替代方案。[1]需要更简单解决方案的用户应考虑使用以下方法手动编码其条目描述环境,或longtabutabu包提供的环境。


快速入门

[编辑 | 编辑源代码]

在你的前言中(如果存在,则在\usepackage{hyperref}之后)放置\usepackage{glossaries}\makeglossaries。然后在你的前言(推荐)或文档正文中第一次使用之前定义任意数量的\newglossaryentry\newacronym术语表和缩略词条目。最后添加一个\printglossaries调用以在你的文档结构中定位术语表列表。然后用\gls{mylabel}宏(以及类似的宏)来同时插入你预定义的文本并构建相关的术语表。文件处理现在必须包括对makeglossaries document_name_without_extension的调用,然后至少再调用一次latexpdflatex

使用glossaries

[编辑 | 编辑源代码]

要使用glossaries包,您必须显式加载它

\usepackage{glossaries}

如果你想使用xindy(高级索引工具[2])用于索引阶段,而不是makeindex(默认值),您需要指定xindy选项

\usepackage[xindy]{glossaries}

为了使术语表显示在您的目录中,您需要指定toc选项

\usepackage[toc]{glossaries}

另请参阅本页面底部的自定义名称

最后,将以下命令放在你的文档前言中以生成术语表

\makeglossaries

除非你在hyperref之后加载glossaries包,否则生成的术语表中的任何链接都将不可点击。

此外,希望使用makeglossaries的用户需要安装Perl——这通常不是Microsoft Windows平台上的默认设置。也就是说,makeglossaries仅提供了一个方便的界面到makeindexxindy并且不是必需的。

定义术语表条目

[编辑 | 编辑源代码]

要使用术语表中的条目,您首先需要定义它。根据您定义的内容以及如何使用它,有几种方法可以定义条目。

请注意,除非在文档中使用,否则已定义的条目不会包含在打印的术语表中。这使您可以创建一个通用术语的术语表,并将其\include到所有文档中。

定义术语

[编辑 | 编辑源代码]

要在术语表中定义术语,请使用\newglossaryentry

\newglossaryentry{<label>}{<settings>}

<label>是用于标识术语表中条目的唯一标签,<settings>是逗号分隔的key=value对,用于定义条目。

例如,要定义一个计算机条目

\newglossaryentry{computer}
{
  name=computer,
  description={is a programmable machine that receives input,
               stores and manipulates data, and provides
               output in a useful format}
}

上面的示例定义了一个标签和条目名称相同的条目。这并不总是这样,因为下一个条目将显示

\newglossaryentry{naiive}
{
  name=na\"{\i}ve,
  description={is a French loanword (adjective, form of naïf)
               indicating having or showing a lack of experience,
               understanding or sophistication}
}

当您定义术语时,您需要记住它们将按以下排序makeindexxindy。虽然xindy更了解 LaTeX,但它通过省略 latex 宏(\"{\i})来实现,从而错误地将上述示例排序为nave. makeindex效果也不会好很多,因为它不理解 TeX 宏,它会完全按照定义的方式解释该词,将其放在符号类中,在以naa开头的单词之前。因此,需要扩展我们的示例并指定如何对单词进行排序

\newglossaryentry{naiive}
{
  name=na\"{\i}ve,
  description={is a French loanword (adjective, form of naïf)
               indicating having or showing a lack of experience,
               understanding or sophistication},
  sort=naiive
}

您还可以指定复数形式,如果它们不是通过添加“s”来形成的(我们将在下一节中学习如何使用它们)

\newglossaryentry{Linux}
{
  name=Linux,
  description={is a generic term referring to the family of Unix-like
               computer operating systems that use the Linux kernel},
  plural=Linuces
}

或者,对于首字母缩略词

\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}

这将避免错误的长复数:Frame per Seconds。

到目前为止,术语表条目被定义为键值列表。有时,描述比仅仅一段话更复杂。例如,您可能希望有多个段落、项目符号列表、图形、表格等。对于此类术语表条目,请使用命令longnewglossaryentry其中描述跟随键值列表。然后,计算机条目如下所示

\longnewglossaryentry{computer}
{
  name=computer
}
  {is a programmable machine that receives input,
               stores and manipulates data, and provides
               output in a useful format}

定义符号

[编辑 | 编辑源代码]

已定义的条目也可以是符号

\newglossaryentry{pi}
{
  name={\ensuremath{\pi}},
  description={ratio of circumference of circle to its
               diameter},
  sort=pi
}

您还可以同时定义名称和符号

\newglossaryentry{real number}
{
  name={real number},
  description={include both rational numbers, such as $42$ and 
               $\frac{-23}{129}$, and irrational numbers, 
               such as $\pi$ and the square root of two; or,
               a real number can be given by an infinite decimal
               representation, such as $2.4871773339\ldots$ where
               the digits continue in some way; or, the real
               numbers may be thought of as points on an infinitely
               long number line},
  symbol={\ensuremath{\mathbb{R}}}
}

请注意,并非所有术语表样式都显示已定义的符号。

定义首字母缩略词

[编辑 | 编辑源代码]

要定义一个新的首字母缩略词,您可以使用 \newacronym

\newacronym{<label>}{<abbrv>}{<full>}

其中 <label> 是标识首字母缩略词的唯一标签,<abbrv> 是首字母缩略词的缩写形式,<full> 是扩展文本。例如

\newacronym{lvm}{LVM}{Logical Volume Manager}

如果使用,则可以将已定义的首字母缩略词放在单独的列表中acronym包选项

\usepackage[acronym]{glossaries}

使用已定义的术语

[编辑 | 编辑源代码]

定义术语后,您可以在文档中使用它。有许多不同的命令用于引用术语表术语。

常规引用

[编辑 | 编辑源代码]

常规引用与 \gls 命令一起使用。例如,如果您将术语表条目定义为上述条目,则可以使用以下方式使用它

\Gls{naiive} people don't know about
alternative \gls{computer} operating systems:
\glspl{Linux}, BSDs and GNU/Hurd.

天真的人不知道替代计算机操-
作系统:Linuces、BSDs 和 GNU/Hurd。

上述示例中使用的命令说明

\gls{<label>}

此命令打印与其参数传递的 <label> 关联的术语。如果在 glossaries 之前加载了 hyperref 包,它也将超链接到术语表中的条目。

\glspl{<label>}

此命令打印已定义术语的复数形式,除此之外,它的行为方式与 gls 相同。

\Gls{<label>}

此命令打印术语的单数形式,并将第一个字符转换为大写。

\Glspl{<label>}

此命令打印复数形式,并将术语的第一个字母转换为大写。

\glslink{<label>}{<alternate text>}

此命令照常创建链接,但会排版替代文本。它还可以采用一些选项来更改其默认行为(请参阅文档)。

\glssymbol{<label>}

此命令打印在 \newglossaryentry{<label>}{symbol={glssymbol 的输出}, ...} 中定义的内容。

\glsdesc{<label>}

此命令打印在 \newglossaryentry{<label>}{description={glsdesc 的输出}, ...} 中定义的内容。

引用首字母缩略词

[编辑 | 编辑源代码]

首字母缩略词的行为与普通术语表术语略有不同。在第一次使用时,\gls 命令将显示“<full> (<abbrv>)”。在随后的使用中,只会显示缩写。如果这种情况没有发生,则需要设置 \setacronymstyle{long-short}

要重置首字母缩略词的第一次使用,请使用命令

\glsreset{<label>}

或者,如果要重置所有首字母缩略词的使用状态

\glsresetall

类似地,要取消设置首字母缩略词的第一次使用,以便仅显示缩写,请使用

\glsunset{<label>}

或者,对于所有首字母缩略词

\glsunsetall

如果您只想打印首字母缩略词的长版本而不带缩写“<full>”,请使用 

\acrlong{<label>}

如果您只想打印首字母缩略词的长版本以及缩写“<full> (<abbrv>)”,请使用 

\acrfull{<label>}

如果您只想打印缩写“<abbrv>”,请使用 

\acrshort{<label>}

显示术语表

[编辑 | 编辑源代码]

要显示排序的术语列表,您需要添加

\printglossaries

在您希望术语表和首字母缩略词列表出现的位置。

如果要打印所有条目,则可以在 \printglossaries 之前插入命令。

\glsaddall

您可能还想使用 \usepackage[nonumberlist]{glossaries} 来抑制术语表中的位置列表。

单独的术语表和首字母缩略词列表

[编辑 | 编辑源代码]

\printglossaries 将按定义顺序显示所有术语表。[3] 如果没有定义自定义术语表,则将显示默认术语表和首字母缩略词列表。

术语表和首字母缩略词列表可以分别显示在不同位置[4]

\usepackage[acronyms]{glossaries}

\printglossary[type=\acronymtype] % prints just the list of acronyms

Some text between the list of acronyms and the glossary.

\printglossary % if no option is supplied the default glossary is printed.

双重条目,从首字母缩略词引用术语表条目

[编辑 | 编辑源代码]

对同一术语同时拥有首字母缩略词和术语表条目可能很有用。要链接这两个条目,请使用以下方式定义首字母缩略词,其中包含对术语表条目的引用

\newglossaryentry{gls-OWD} {
  name={One-Way Delay},
  description={The time a packet uses through a network from one host to another},
}
\newacronym[see={[Glossary:]{gls-OWD}}]{OWD}{OWD}{One-Way Delay\glsadd{gls-OWD}}
Refer to acronym with \gls{OWD} and the glossary with \gls{gls-OWD}

为了简化操作,我们可以使用此命令(修改自官方文档中的示例)

Syntax: \newdualentry[glossary options][acronym options]{label}{abbrv}{long}{description}
\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {
  \newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
    description={#6},#1
  }
  \makeglossaries
  \newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}

然后,为术语表和首字母缩略词列表定义新的(双重)条目,如下所示

\newdualentry{OWD} % label
  {OWD}            % abbreviation
  {One-Way Delay}  % long form
  {The time a packet uses through a network from one host to another} % description

自定义名称

[编辑 | 编辑源代码]

术语表部分的名称可以用自定义名称替换或翻译成不同的语言。将选项 title 添加到 \printglossary 以指定术语表的标题。添加选项 toctitle 以指定在目录中使用的标题(如果未使用,则 title 用作默认值)。[5]

\printglossary[title=List of Terms,toctitle=Terms and abbreviations]

删除句点

[编辑 | 编辑源代码]

要省略每个描述结尾处的句点,请使用以下代码

\usepackage[nopostdot]{glossaries}

使用术语表样式更改术语表条目显示

[编辑 | 编辑源代码]

许多预建样式可用,并且可以使用以下方法轻松更改

% Must be issued before \printglossaries
\setglossarystyle{<newstyle>}

常用的样式包括

  • 列表
My Term Has some long description 7, 9
  • altlist(在术语后插入换行符并缩进描述)
My Term 
   Has some long description 7, 9
  • altlistgrouplistgroup(group 根据术语的首字母添加分组)
M
My First Term 
   Has some long description 7, 9
My Second Term 
   Has some long description 7, 9
  • altlisthypergrouplisthypergroup(hyper 在每个术语表顶部添加一个超链接“索引”以跳转到一个组)
A|B|C|D|F|G|I|M|O|R|S|C|D|G|M|P
A
A First term 
   Has some long description 7, 9
B
Barely missed first 
   Has some long description 7, 9

构建您的文档

[编辑 | 编辑源代码]

要将术语表添加到最终文档中,需要

  1. 构建您的 LaTeX 文档——这也会生成术语表所需的 aux 文件makeglossaries
  2. 调用makeglossaries——一个脚本,它选择正确的字符编码和语言设置,并且也会运行xindymakeindex如果这些在您的文档文件中指定
  3. 再次构建您的 LaTeX 文档——以生成包含术语表条目的文档

因此

latex doc
makeglossaries doc
latex doc

其中latex是您通常的构建调用,可能是 pdflatexlualatexdoc是您的 LaTeX 主文件的文件名(不含扩展名)。选项 -d out 可用于指定 aux 和其他中间文件的位置。如果您的条目相互链接(条目本身使用 \gls 调用链接到其他条目),则需要运行步骤 1 和 2 两次,即按以下顺序:1、2、1、2、3。

任何问题都将在doc.logdoc.glg文件中报告。

在 Windows 中使用 Texmaker 的示例

[编辑 | 编辑源代码]

使用 xindy 编译术语表 - 在使用 Texmaker 的 Windows 中

[编辑 | 编辑源代码]

在 TeX Live 中,以及从 2015 年 6 月开始在 MikTeX 中,xindy 已经包含在内。

MikTeX 安装目录路径中存在空格的问题。可以通过以下编辑解决:http://tex.stackexchange.com/questions/251221/miktex-and-xindy-problems/251801#251801

您需要在安装xindy后重新启动 Texmaker,以更新对xindy和 Perl 二进制文件的 PATH 引用。

然后,在 Texmaker 中,转到用户 -> 用户命令 -> 编辑用户命令
选择命令 1

  1. 菜单项 = makeglossaries
  2. 命令 = makeglossaries %

现在按下Alt+Shift+F1,然后 ->F1

注意,对于 Texmaker 的“使用构建目录”选项:makeglossaries 需要找到 aux 文件。值得庆幸的是,虽然 Texmaker 在这里没有提供帮助,但 makeglossaries 的选项-d <dir> 提供了子目录的情况。因此,在这种情况下,命令应为
命令 = makeglossaries -d build %

文档前导

[编辑 | 编辑源代码]

应在前言中包含(注意,hyperref 应在glossaries 之前加载)

\usepackage[nomain,acronym,xindy,toc]{glossaries} % nomain, if you define glossaries in a file, and you use \include{INP-00-glossary}
\makeglossaries
\usepackage[xindy]{imakeidx}
\makeindex

术语表定义

[编辑 | 编辑源代码]

将所有术语表/首字母缩略词写入一个文件:例如:INP-00-glossary.tex

\newacronym{ddye}{D$_{\text{dye}}$}{donor dye, ex. Alexa 488}
\newacronym[description={\glslink{r0}{F\"{o}rster distance}}]{R0}{$R_{0}$}{F\"{o}rster distance}
\newglossaryentry{r0}{name=\glslink{R0}{\ensuremath{R_{0}}},text=F\"{o}rster distance,description={F\"{o}rster distance, where 50\% ...}, sort=R}
\newglossaryentry{kdeac}{name=\glslink{R0}{\ensuremath{k_{DEAC}}},text=$k_{DEAC}$, description={is the rate of deactivation from ... and emission)}, sort=k}

包含术语表定义并打印术语表

[编辑 | 编辑源代码]

在前言中包含术语表定义(在“\begin{document}”之前)

\loadglsentries[main]{INP-00-glossary}
% or using \input:
%\input{INP-00-glossary}

\begin{document}

打印术语表,靠近结尾

\appendix
\bibliographystyle{plainnat}
\bibliography{bibtex}
\printindex
\printglossaries
\end{document}

参考文献

[编辑 | 编辑源代码]
  • 使用 LaTeX 撰写博士论文,Nicola L.C. Talbot,[1]
  • 术语表、命名法、符号和首字母缩略词列表,Nicola L. C. Talbot,链接


Clipboard

待办事项

  • 添加高级用法
  • 添加样式示例



上一页:索引 索引 下一页:参考文献管理
华夏公益教科书