LetLtxMacro no funciona como se esperaba

LetLtxMacro no funciona como se esperaba

Si las líneas comentadas se sustituyen por las que están encima de ellas, el índice no se establece. ¿Por qué no?

\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}

Respuesta1

\LetLtxMacro haceFunciona como se esperaba. \oldindextiene el significado de\index en el momento de la asignación, especialmente esto se colocaantes \makeindex, donde LaTeX \indexsólo tiene una función ficticia sin acción. \makeindexredefine \indexpara escribir una entrada en el .idxarchivo.

Corrección:

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

información relacionada