自动生成索引

自动生成索引

有没有办法自动生成makeidx包的索引?我已经写了大约 270 页,但没想过要添加\index{}所有地方。

我真的需要仔细检查所有内容并添加吗\index{}

答案1

我真的需要仔细检查所有内容并添加吗\index{}

不幸的是,是的。即使你编写了一个脚本来自动化它,你最终也会得到一个索引,而索引不是索引。

我认为,最好将索引的编写推迟到书快要完成的时候。编写索引是一门艺术,大多数出版商都雇用“人工索引编制者”来编写有用且发挥其功能的索引。

因为幸运的是,您第一次错过了它,所以在深入研究它之前,这是进行一些思考和计划的好时机。

制定指数时要考虑的最重要的几点是分类一致性。想想你的书的可能读者(或者年纪越大的读者越会忘记你年轻时写过的东西),并提供在搜索信息时可能使用的标题。例如,考虑一本描述早期船只及其贸易路线的历史书。例如,仅用一个词来索引船名可能毫无意义。考虑以下 MWE:

\documentclass{article}
\usepackage{makeidx}
\makeindex
\DeclareRobustCommand{\ship}[1]{\textit{#1}\index{Steam ships!#1}}
\DeclareRobustCommand{\AUports}[1]{\textit{#1}\index{Austalia ports!#1}}
\begin{document}
  One of the early steam ships to sail to \AUports{Melbourne} 
  was the \ship{Africa}. Its maiden trip was on the 1.1.1870 and 
  its last trip ten years later on the 13.12.1880. 
\printindex
\end{document}

我使用了一个标题将船舶归类为蒸汽船(您可以根据需要添加宏),并提供了第二个标题将墨尔本归类为港口。通过围绕您的主题创建一些常用类别,您还可以确保您拥有一个良好的分类系统,并提供一致性。您可能已经注意到,船名采用斜体排版,以符合牛津风格指南,并且通过创建宏,索引和排版都正确而高效地完成。

答案2

我知道这是一个老话题,但我想提一下,我刚刚发布了一个软件来解决这个问题。它并不完美,但作为一个“半自动”解决方案,它比用文本编辑器一次添加一个 \index{} 标签要快得多。它包含一个程序,可以读取您的 LaTex 文件并使用各种启发式方法来建议应该包含在索引中的术语,另一个问题是快速浏览您的 LaTex 文件并插入术语。它是 GPL,您可以在以下网址免费下载https://sourceforge.net/projects/indexmeister/

同一页面还附有我制作的简短 YouTube 视频教程链接,其中介绍了如何使用该软件。希望它对某些人有用。我已经在我的小型出版公司内部使用它了。

答案3

我已经取得了良好的成绩 https://github.com/feup-infolab/latex-index-tools

它是一个 Python 工具,首先获取概念,然后允许您编辑概念列表,然后自动将概念作为 \index 插入到您的 latex 文件中。对我来说效果很好。

答案4

这是一个简单的 Python 解决方案:https://github.com/themoodymann/IndexTex. 它为目录中存储的所有 .tex 文件中的定义、标题、定理和强调词建立索引。

相关内容