Как избежать необходимости объявлять уже объявленные элементы в \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}

Вывод (индекс):

фу, 1 Привет, мир, 1

Постановка задачи: Другие упоминания «Hello World» в индексе пропущены.

  • Я не включил другие вхождения «Hello World» в тег \index{}.

  • Но я ожидаю, что таким образом я объявил ключевое слово для индекса.

  • LaTeX должен сам позаботиться о будущих ссылках на «Hello World».

Есть ли способ (без использования скрипта TCL), чтобы после указания ключевого слова с помощью \index{} все последующие вхождения этого слова (если они находятся на другой странице) автоматически заносились в индекс?

решение1

Я полностью согласен с возражением Барбары. У меня тоже была идея автоматически индексировать важные термины, и я написал простой скрипт. Конечно, такие вещи index all occurrences of “beautiful necklace”легко сделать. Вам нужен только скрипт постобработки поиска и замены, который включает в себя beautiful necklaceмакросы индексации и подсветки по вашему выбору.

TeXС другой стороны, сделать это само по себе почти невозможно, хотя я не знаю, какие LuaTeXвозможности предоставляет eg. Но в конце концов, вы в любом случае постобрабатываете свой TeXкод, по крайней мере, с помощью своего компилятора (eg pdflatex, часто требуется больше шагов). Поэтому мне кажется прямолинейным использовать другой скрипт между ними.

Теперь, как заметила Барбара, могут быть случаи, когда вы не хотите, чтобы замена происходила во всех местах. Выяснение этих моментов может быть довольно сложным и даже не решаемым автоматически.

Еще большим препятствием является то, что часто эти индексированные термины не представлены единообразно в документе. Например, вы можете где-то говорить о а beautiful necklaceи позже сказать This necklace is golden, which makes it very beautiful.Здесь я бы индексировал beautifulтолько, ссылаясь на beautiful necklace. Обнаружение таких случаев требует и, таким образом, так же сложно, как и понимание естественного языка.

По моему опыту, индексированные термины непо большей частипоявляются в какой-то измененной форме. Вот почему самое простое решение, которое игнорирует этот факт и было бы осуществимым, бесполезно.

Связанный контент