LetLtxMacro funktioniert nicht wie erwartet

LetLtxMacro funktioniert nicht wie erwartet

Wenn die auskommentierten Zeilen durch die darüber liegenden ersetzt werden, wird der Index nicht gesetzt. Warum nicht?

\documentclass{article}
\usepackage{imakeidx}
\usepackage{hyperref}
\usepackage{letltxmacro}

\def\fn#1#2{%
\hyperpage{#2} n.\,#1%
}%

\LetLtxMacro{\oldindex}{\index}
\newcommand{\is}[1]{%
\if@noftnote%
\index{#1}%
%\oldindex{#1}%
\else%
\index{#1|fn{\number\value{footnote}}}%
%\oldindex{#1|fn{\number\value{footnote}}}%
\fi%
}

\makeindex

\begin{document}
Cheese.\footnote{\is{cake}cake.}
\printindex
\end{document}

Antwort1

\LetLtxMacro tutfunktioniert wie erwartet. \oldindexhat die Bedeutung von\index zum Zeitpunkt der Abtretung, insbesondere dies ist platziertVor \makeindex, wobei LaTeX \indexnur als Dummy ohne Aktion dient. \makeindexDefiniert neu \index, um einen Eintrag in die .idxDatei zu schreiben.

Korrektur:

\makeindex % redefines \index
\LetLtxMacro\oldindex\index

verwandte Informationen