makeidx에서 라인번호(lineno)를 사용할 수 있는 방법이 있나요?

makeidx에서 라인번호(lineno)를 사용할 수 있는 방법이 있나요?

lineno패키지에 있는 숫자를 카운터로 사용할 수 있나요 imakeidx? 아래 MWE에서 볼 수 있듯이 xpatch인덱스에 대한 카운터를 으로 변경하려고 시도했지만 thelinenumber성공하지 못했습니다.

\documentclass{article}

\usepackage{lineno}



\usepackage{imakeidx}
\usepackage{xpatch}
\makeindex
\makeatletter



  \makeatletter
\patchcmd{\@wrindex}{\thepage}{\thelinenumber}{}{}
\makeatother



\begin{document}
\linenumbers


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus 
facilisis magna, id sodales ante convallis vitae. In a porttitor nibh, 
eget vehicula dui\index{test}. Integer feugiat dui nec neque porttitor, non eleifend 
erat lobortis. Sed varius malesuada nisi, id vulputate ante commodo vitae. 
Nam non felis at ante mollis commodo eget porttitor ex. Donec in quam diam. 
Maecenas fringilla, turpis a egestas pulvinar, massa lacus molestie enim, 
vel vulputate lorem ante ac velit. Nam ex nulla, venenatis et tortor at, 
efficitur fringilla ante.



\clearpage  \printindex

\end{document}

답변1

을 직접 사용할 수는 없습니다 \thelinenumber. 이는 단락이 이미 줄로 분할되었을 때 계산된 줄 번호를 참조하기 때문입니다.

\thelinenumber패치를 사용하면 잘못된 시간에 확장되었기 때문에 얻는 숫자는 1입니다 . 하지만 \noexpand\thelinenumber8을 얻게 됩니다. 왜냐하면 단락이 처리될 때의 값(7줄)이기 때문입니다.

메커니즘 을 사용해야 합니다 \linelabel.

\documentclass{article}

\usepackage{lineno,refcount}
\usepackage{imakeidx}
\usepackage{xpatch}

\makeindex

\makeatletter
\newcommand{\lineindex}[1]{\linelabel{#1}\index{#1}}
\patchcmd{\@wrindex}{\thepage}{\getrefnumber{#2}}{}{}
\makeatother

\begin{document}
\linenumbers

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dapibus 
facilisis magna, id sodales ante convallis vitae. In a porttitor nibh, 
eget vehicula dui\lineindex{dui}. Integer feugiat dui nec neque porttitor, non eleifend 
erat lobortis. Sed varius malesuada nisi, id vulputate ante commodo vitae. 
Nam non felis at ante mollis commodo eget porttitor ex. Donec in quam diam. 
Maecenas fringilla, turpis a egestas pulvinar, massa lacus molestie enim\lineindex{enim}, 
vel vulputate lorem ante ac velit. Nam ex nulla, venenatis et tortor at, 
efficitur fringilla ante.

\printindex

\end{document}

이를 사용하려면 두 번의 실행이 필요합니다 \ref(실제로 확장 가능한 버전 \getrefnumber).

여기에 이미지 설명을 입력하세요

관련 정보