我有一个单词列表,我想将其包含在索引中,该列表列在单独的文本文件中。但我不确定如何将此列表添加到 LaTeX 中以生成索引。
例如,假设我的文档是一个简单的单段文本:
\documentclass{book}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla convallis quis nunc a aliquam. Pellentesque habitant
morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Nulla porttitor dolor nec imperdiet elementum.
\end{document}
我的单词列表位于一个单独的文件中,如下所示:
amet
dolor
ipsum
lorem
nulla
我可以用这个 wordfile 创建索引吗?或者我只能使用类似的东西麦基德克斯并使用类似的命令\索引{amet}在主文件中?
答案1
如果我理解您的需求,您可以csvsimple
根据需要使用它来详细说明您的单词列表文件(即使正如艾伦在他的评论中所说的那样,无法创建指向文中引用该单词的链接)。
\documentclass{book}
\usepackage{csvsimple}
\usepackage{multicol}
% The following code is here only to create the file mylist.txt
% you don't need it in your actual document,
% since you already have your word list file
\usepackage{filecontents}
\begin{filecontents*}{mylist.txt}
amet
dolor
ipsum
lorem
nulla
\end{filecontents*}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla convallis quis nunc a aliquam. Pellentesque habitant
morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Nulla porttitor dolor nec imperdiet elementum.
\chapter{My index}
\begin{multicols}{3}
\csvreader[no head]{mylist.txt}{1=\name}{\noindent\name\par}
\end{multicols}
\end{document}
编辑:假设您设法创建一个包含术语和引用该术语的页面的文件(问题是如果您有很多术语则很难手动创建它,甚至更难自动创建它),您可以执行以下操作:
\documentclass{book}
\usepackage{csvsimple}
\usepackage{multicol}
% The following code is here only to create the file mylist.txt
% you don't need it in your actual document,
% since you already have your word list file
\usepackage{filecontents}
\begin{filecontents*}{mylist.txt}
amet, 1
dolor, {30, 50}
ipsum, 4
lorem, {7, 9}
nulla, {10, 11, 12}
\end{filecontents*}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla convallis quis nunc a aliquam. Pellentesque habitant
morbi tristique senectus et netus et malesuada fames ac
turpis egestas. Nulla porttitor dolor nec imperdiet elementum.
\chapter{My index}
\begin{multicols}{3}
\csvreader[no head]{mylist.txt}{1=\name,2=\whereis}{\noindent\name\dotfill\whereis\par}
\end{multicols}
\end{document}