创建独立词汇表

创建独立词汇表

作为这个问题,我想问一下如何使用该glossaries软件包来创建词汇表。我不希望它成为文档的一部分,而希望它是一个独立的文档,其中包含术语及其定义的列表。

编辑(1):我想我想要的通常被称为词典或字典。

编辑 (2):为了澄清我的意思,让我补充几点。首先,这可能glossaries不是我想要的。我正在寻找一种工具,可以让我编辑包含文本、图形、图表、不同条目之间的链接等的条目,然后按字母顺序排版。也许像百科全书这样的东西更能描述我想要获得的东西。我希望现在清楚了。

编辑 (3):最后我找到了一个我想要的例子。考虑一下这本书。我显然想要更简单的东西,但这就是精神所在。也就是说,每个术语/条目都可以包含数学、数字等。编译过程应该考虑字母顺序。glossaries使用正确的包吗?

答案1

以下是您需要的基本信息(见笔记代码如下):

\documentclass{article}
\newcommand*{\glossaryname}{Dictionary}
\usepackage[nonumberlist]{glossaries}
\newcommand{\dictentry}[2]{%
  \newglossaryentry{#1}{name=#1,description={#2}}%
  \glslink{#1}{}%
}
\makeglossaries

\begin{document}
\dictentry{aardvark}{an animal}%
\dictentry{lion}{another animal, but with
  a really long description that spills over many, many, many, many, many, 
  many, many, many, many, many, many, many, many, many, many, many, many, 
  many, many, many, many, many, many, many, many, many, many lines}
\dictentry{zebra}{yet another animal}%
\printglossary[style=list]%
\end{document}

笔记:

  1. 定义\glossaryname 加载词汇表包
  2. 加载词汇表包,并nonumberslist选择隐藏不存在页面的链接/超链接
  3. 选择\printglossary[style=...]最适合您需求的(我通常选择style=long,前面加上以\setlength{\glsdescwidth}{...}配置相关的长表宽度)。
  4. %在每个行尾添加一个,以防止任何虚假文本在\printglossary命令之前潜入输出流。
  5. 渲染时运行 makeglossaries 命令以使词汇表出现

答案2

您可以使用 \glspar 在描述键中获取 \par。但是如果您有较长的文本,最好将它们存储在命令中

\dictentry{lion}{\liontext}%
\newcommand\liontext{a large animal\par some facts:
 \begin{itemize}
  \item Image: \includegraphics[width=1cm]{tiger}
  \item Lives in africa 
 \end{itemize}}

答案3

首先,我要感谢 Ulrike Fischer 和 Geoffrey Jones 的精彩回答。但是,我担心使用glossaries会过于复杂,难以调整以适应我的需求。因此,我将尝试以下解决方案:我将生成一个_first.tex文件和一个分别zzzEnd.tex包含前言和的文件\end{document}

然后,我会为每个条目创建一个单独的文件。例如:lion.tex, tiger.tex, cow.tex等等。每个这样的文件都将以“例如”开头\section{Lion},然后是条目的文本、图形、表格等等。

最后,我将用cat *.tex > tmp.tex它生成整个.tex文件,并进行编译。

我希望这样就能实现我的目标。

当然,稍后我可以将标题改为Section例如Definition。我将尝试使该过程自动化。我希望这能解决我的问题。我刚刚运行了一个简单的示例,它似乎对我有用。

仍然欢迎评论、改进和其他建议!

编辑(1):这是我编写的用于自动化编译过程的一个小脚本:

#! /bin/bash

#Create a tmp directory
mkdir tmp

#Concatenate the different entries into one .tex file in the tmp dir.
cat *.tex > tmp/glossary.tex
# make a copy of the bibTeX
cp ref.bib tmp/

cd tmp
# Complie the document
pdflatex glossary.tex
bibtex glossary
pdflatex glossary.tex
pdflatex glossary.tex

# Extract the resulting .pdf
cd ..
cp tmp/glossary.pdf .

# Clean the mess.
rm -rf tmp

到目前为止,它对我来说似乎运行良好。我可以向条目中添加任何我想要的内容。

相关内容