代码:
\documentclass{article}
\usepackage{index}
\usepackage{lipsum}
\makeindex
\begin{document}
\section{\index*{Hello World}}
Hello World
Some text about \index*{foo}.
\lipsum[1-15]
Hello World.
\printindex
\end{document}
输出(索引):
foo,1 你好,世界,1
问题陈述: 索引中遗漏了其他出现的“Hello World”。
我没有在 \index{} 标签下包含其他出现的“Hello World”。
但我希望通过这种方式我已经为索引声明了一个关键词。
LaTeX 应该负责“Hello World”本身的未来引用。
有没有什么方法(不使用任何 tcl 脚本)使得我使用 \index{} 指定关键字后,该词的下一次出现(如果位于不同的页面上)应该自动输入到索引中?
答案1
我完全同意芭芭拉的反对意见。我也曾想过自动索引重要术语,并写了一个简单的脚本。当然,这样的事情index all occurrences of “beautiful necklace”
很容易做到。你只需要一个搜索和替换后处理脚本,其中包含beautiful necklace
你选择的索引和突出显示宏。
TeX
另一方面,自己做这件事几乎是不可能的,尽管我不知道 egLuaTeX
的能力提供了什么。但毕竟,TeX
无论如何你都在对代码进行后处理,至少是用你的编译器(例如pdflatex
,通常需要更多步骤)。所以在我看来,在两者之间使用另一个脚本似乎很简单。
现在,正如芭芭拉所说,有时你可能不希望在所有地方都进行替换。解决这些问题可能相当复杂,甚至无法自动解决。
更大的障碍是,这些索引术语通常不会在文档中统一出现。例如,你可能在某处谈到了beautiful necklace
,然后又说,This necklace is golden, which makes it very beautiful.
这里我只会索引beautiful
,指的是beautiful necklace
。检测此类情况需要,因此与理解自然语言一样困难。
根据我的经验,索引术语确实大多以某种修改形式出现。这就是为什么忽略这一事实且可行的最简单解决方案毫无用处。