Como posso definir um novo comando de índice que funcione melhor para parágrafos?

Como posso definir um novo comando de índice que funcione melhor para parágrafos?

Suponha que, no meio do meu documento, eu tenha um parágrafo sobre corujas: Here is a new paragraph about owls. Owls are extraordinary.

Quero indexar este parágrafo usando imakeidx, então escrevo, \index{owls}Here is a new paragraph about owls. Owls are extraordinary.

Porém, é problemático que se este parágrafo terminar no topo de uma nova página k, então a entrada para corujas no índice se refere à página anterior; ele tem uma página "k-1" ao lado, em vez de um "k" (veja, por exemplo, o exemplo mínimo de trabalho abaixo).

A solução mais fácil é mover o \indexcomando para dentro do parágrafo: Here\index{owls} is a new paragraph about owls. Owls are extraordinary.

Para mim, porém, isso não é o ideal. Tenho um documento longo e muitos dos parágrafos possuem muitos \indexcomandos associados. Mover esses \indexcomandos dentro dos parágrafos correspondentes torna os parágrafos menos legíveis para edição.

Embora o texto acima descreva o caso mais simples de \index, há um problema semelhante ao especificar um intervalo de páginas. Eu gostaria simplesmente de escrever, \index{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\index{owls|)}em vez de, Here\index{owls|(} is a new paragraph about owls. Owls are extraordinary.\index{owls|)}.

Isso me leva à minha pergunta. Como defino um novo comando \indexnque produza números de página corretos no índice para os dois casos a seguir: \indexn{owls}Here is a new paragraph about owls. Owls are extraordinary.e \indexn{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\indexn{owls|)},?

Um exemplo mínimo de trabalho do problema está abaixo.

\documentclass{book}

\usepackage{imakeidx}
\makeindex

\begin{document}

% This code block just generates 552 copies of the word "lorem".
\newcount\zz
\loop
lorem
\advance\zz1
\ifnum\zz<552
\repeat

\index{owls}Here is a paragraph about owls.  Owls are extraordinary.
%\index{owls|(}Here is a new paragraph about owls.  Owls are extraordinary.\index{owls|)}

\printindex

\end{document}

Responder1

\mbox{}\index{owls}ou \leavevmode\index{owls}funcionaria

informação relacionada