自定义逐字命令写入索引

自定义逐字命令写入索引

我已经创建了一个自定义 fancyvrb 命令,\CustomVerbatimCommand{\afun}{Verb}{}用于编写编程语言函数,比如说\afun|object.method.blah|,等等。

我想自动建立所有提及函数名称的索引。

我知道我可以尝试用普通的 LaTeX 命令来做到这一点,例如:

\newcommand{\afun}[1]{\texttt{#1}\index{#1@\texttt{#1}}}

这将创建一个带有函数名称的索引条目。

有什么方法可以实现这一点,但是要使用 fancyvrb 的自定义逐字命令?

答案1

我建议使用xparse

\documentclass{article}
\usepackage{imakeidx}
\usepackage{xparse}

\makeindex

\NewDocumentCommand\afun{v}{%
  \texttt{#1}\index{#1@\ifun{#1}}%
}
\NewDocumentCommand{\ifun}{v}{\texttt{#1}}

\begin{document}

\afun{object.method.blah}

\afun{object.method_2.blah}

\printindex

\end{document}

如果您只需要下划线,那么在特殊字符中,这似乎是最干净的方法。

在此处输入图片描述

相关内容