代碼:
\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」。
我沒有將其他出現的「Hello World」包含在 \index{} 標記下。
但我希望透過這種方式我已經聲明了索引的關鍵字。
LaTeX 應該處理「Hello World」本身的未來引用。
有沒有什麼方法(不使用任何 tcl 腳本)一旦我使用 \index{} 指定關鍵字,該單字的下一次出現(如果位於不同的頁面上)應該自動輸入到索引中?
答案1
我完全同意芭芭拉的反對意見。我也有自動索引重要術語的想法並編寫了一個簡單的腳本。當然,類似的事情index all occurrences of “beautiful necklace”
很容易做到。您只需要一個搜尋和替換後處理腳本,其中包含beautiful necklace
您選擇的索引和突出顯示巨集。
TeX
另一方面,儘管我不知道egLuaTeX
的能力提供了什麼,但單獨做到這一點幾乎是不可能的。但畢竟,無論如何,您都在對程式碼進行後處理TeX
,至少使用編譯器(例如pdflatex
,通常需要更多步驟)。所以對我來說,在兩者之間使用另一個腳本似乎很簡單。
現在,就像芭芭拉指出的那樣,有時您可能不希望在所有地方都進行替換。弄清楚這些問題可能會變得相當複雜,甚至無法自動解決。
更大的障礙是,這些索引術語通常不會在文件中統一呈現。例如,您可能在某處談論 a beautiful necklace
,然後說This necklace is golden, which makes it very beautiful.
Here I will beautiful
only index,指的是beautiful necklace
。檢測此類實例需要,因此與理解自然語言一樣困難。
根據我的經驗,索引術語確實大多以某種修改後的形式出現。這就是為什麼最簡單的解決方案(忽略這一事實並且可行)是沒有用的。