
コード:
\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」自体の将来の参照を処理する必要があります。
\index{} を使用してキーワードを指定すると、この単語の次の出現箇所 (別のページにある場合) が自動的にインデックスに入力されるようにする方法 (tcl スクリプトを使用せずに) はありますか?
答え1
私は barbara の反対意見に完全に同意します。私も重要な用語を自動的にインデックス化するというアイデアを思いつき、簡単なスクリプトを作成しました。もちろん、このようなことはindex all occurrences of “beautiful necklace”
簡単に実行できます。必要なのは、選択したインデックス化および強調表示マクロを囲む、検索と置換の後処理スクリプトだけbeautiful necklace
です。
TeX
一方、それ自体でそれを行うことはほぼ不可能ですが、egLuaTeX
の機能が何を提供するのかはわかりません。しかし、結局のところ、TeX
少なくともコンパイラーでは、コードを後処理していることになります (eg ではpdflatex
、多くの場合、より多くの手順が必要になります)。そのため、間に別のスクリプトを使用するのは簡単なように思えます。
さて、barbara が指摘したように、すべての場所で置換が行われないようにしたい場合もあります。そのような場合の解決はかなり複雑になり、自動的に解決できないこともあります。
さらに大きな障害は、インデックスされた用語がドキュメント内で均一に表現されないことが多いことです。たとえば、どこかで について話しbeautiful necklace
、後でここでは を参照して のみをThis necklace is golden, which makes it very beautiful.
インデックスしますと言う場合があります。このようなインスタンスを検出するには が必要であり、自然言語を理解するのと同じくらい困難です。beautiful
beautiful necklace
私の経験では、インデックスされた用語はたいてい何らかの修正された形で現れます。そのため、この事実を無視して実行可能な最も単純な解決策は役に立ちません。