
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. \oldindex
tiene el significado de\index
en el momento de la asignación, especialmente esto se colocaantes \makeindex
, donde LaTeX \index
sólo tiene una función ficticia sin acción. \makeindex
redefine \index
para escribir una entrada en el .idx
archivo.
Corrección:
\makeindex % redefines \index
\LetLtxMacro\oldindex\index