\documentclass{article}
\usepackage{index}
\makeindex
\begin{document}
\begin{figure}
\centering
\fbox{Diagram placeholder}
\caption{\index{quote (\verb|""|)}ok}
\end{figure}
\printindex
\end{document}
LaTeX 提示错误:\@caption 的参数有一个多余的 }。哪里出了问题?
答案1
你肯定不想要\verb
那里:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
Text\index{quote (\texttt{""})}
\begin{figure}
\centering
\fbox{Diagram placeholder}
\caption[ok]{\index{quote (\string\texttt{""})}ok}
\end{figure}
\printindex
\end{document}
为什么\string
?因为\index
当它是另一个命令的参数时,无法逐字读取其参数。
还要注意,需要“短标题”参数,否则当标题出现在图形列表中时,条目也会被索引。
为什么不呢\protect\verb
?因为\verb
可以绝不进入另一个命令的参数。
实际上,\verb
可以工作:
\documentclass{article}
\usepackage{makeidx}
\makeindex
\begin{document}
\index{quote (\verb+""+)}
\begin{figure}
\centering
\fbox{Diagram placeholder}
\caption{\index{quote (\string\verb+""+)}ok}
\end{figure}
\printindex
\end{document}
给出相同的结果,但是从一开始就是错误的。