如何避免需要在 \index 中聲明已聲明的項目?

如何避免需要在 \index 中聲明已聲明的項目?

代碼:

\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 beautifulonly index,指的是beautiful necklace。檢測此類實例需要,因此與理解自然語言一樣困難。

根據我的經驗,索引術語確實大多以某種修改後的形式出現。這就是為什麼最簡單的解決方案(忽略這一事實並且可行)是沒有用的。

相關內容