내 문서 중간에 올빼미에 관한 단락이 있다고 가정해 보겠습니다. Here is a new paragraph about owls. Owls are extraordinary.
imakeidx를 사용하여 이 단락을 색인화하고 싶기 때문에 다음과 같이 작성합니다.
\index{owls}Here is a new paragraph about owls. Owls are extraordinary.
그러나 문제는 이 문단이 새 페이지 k의 상단에서 끝나는 경우 색인의 올빼미 항목이 이전 페이지를 참조한다는 것입니다. 옆에는 "k" 대신 "k-1" 페이지가 있습니다(아래 최소 작업 예제 참조).
가장 쉬운 해결책은 \index
명령을 단락 내부로 이동하는 것입니다. Here\index{owls} is a new paragraph about owls. Owls are extraordinary.
그러나 나에게는 이것이 이상적이지 않습니다. 나는 긴 문서를 가지고 있고 많은 단락에 많은 관련 \index
명령이 있습니다. 이러한 \index
명령을 해당 단락 내부로 이동하면 편집 시 단락을 읽기가 어려워집니다.
위에서는 의 가장 간단한 경우를 설명했지만 \index
페이지 범위를 지정할 때 비슷한 문제가 있습니다. \index{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\index{owls|)}
,보다는 그냥 간단히 쓰고 싶습니다
Here\index{owls|(} is a new paragraph about owls. Owls are extraordinary.\index{owls|)}
.
이것은 내 질문으로 이어집니다. \indexn
다음 두 가지 경우에 대해 색인에서 올바른 페이지 번호를 생성하는 새 명령을 어떻게 정의합니까 \indexn{owls}Here is a new paragraph about owls. Owls are extraordinary.
?
\indexn{owls|(}Here is a new paragraph about owls. Owls are extraordinary.\indexn{owls|)}
문제의 최소 작동 예는 다음과 같습니다.
\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}
답변1
\mbox{}\index{owls}
아니면 \leavevmode\index{owls}
일할 것인가