
Me gustaría incluirlo \allowbreak
en una \index
entrada pero no consigo que funcione. Se \allowbreak
cambia \penalty \z@
en el archivo .idx, lo que daña el índice generado.
¿Como puedo resolver esto?
Respuesta1
Probablemente esté invocando \index
el argumento de otro comando; aquí hay una emulación:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
a\index{abcdef@abc\allowbreak def}
% now do the call in the argument of a command
\textbf{g\index{ghijkl@ghi\allowbreak jkl}}
% now use the proper input
\textbf{m\index{mnopqr@mno\protect\allowbreak pqr}}
\printindex
\end{document}
Esto produce el siguiente .idx
archivo
\indexentry{abcdef@abc\allowbreak def}{1}
\indexentry{ghijkl@ghi\penalty \z@ jkl}{1}
\indexentry{mnopqr@mno\allowbreak pqr}{1}
El mismo problema con \allowbreak
convertido \penalty \z@
ocurriría si tienes algo como
\newcommand{\indexword}[1]{#1\index{#1}}
y hacer
\indexword{abc\allowbreak def}
Usar \protect\allowbreak
también servirá en este caso. Sin embargo, ordenar las entradas del índice \allowbreak
probablemente dará resultados incorrectos.