![\allowbreak 在 \index 中不起作用](https://linux22.com/image/316062/%5Callowbreak%20%E5%9C%A8%20%5Cindex%20%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我想将其包含\allowbreak
在一个\index
条目中,但我无法让它工作。.idx文件中\allowbreak
的 被更改为,这会破坏生成的索引。\penalty \z@
我该如何解决这个问题?
答案1
您可能正在\index
调用另一个命令的参数;这是一个模拟:
\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}
这将生成以下.idx
文件
\indexentry{abcdef@abc\allowbreak def}{1}
\indexentry{ghijkl@ghi\penalty \z@ jkl}{1}
\indexentry{mnopqr@mno\allowbreak pqr}{1}
\allowbreak
如果你有类似的东西,\penalty \z@
就会发生同样的问题
\newcommand{\indexword}[1]{#1\index{#1}}
并做
\indexword{abc\allowbreak def}
在这种情况下,使用\protect\allowbreak
也可以。但是,使用 对其进行排序\allowbreak
可能会产生错误的结果。