![如何在 dtx 文件中执行“\DoNotIndex \”?](https://linux22.com/image/272304/%E5%A6%82%E4%BD%95%E5%9C%A8%20dtx%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%89%A7%E8%A1%8C%E2%80%9C%5CDoNotIndex%20%5C%E2%80%9D%EF%BC%9F.png)
\EnableCrossrefs
我在文件中使用dtx
。在索引中我现在已经\,
编入索引。我试过了\DoNotIndex{{\,}}
,但\DoNotIndex{\thinspace}
没有成功。
有没有办法可以防止被纳入\,
索引?
答案1
只需放
\DoNotIndex{\,}
应该可以工作,不需要多余的括号。
如果您想添加更多不需要索引的内容,只需添加逗号即可:
\DoNotIndex{\,,\addtocounter}
答案2
\DoNotIndex{\,}
偶然的作品:
\DoNotIndex
将 catcode 更改\
为 12(其他),并将\,,
令牌寄存器添加到排除命令列表中\index@excludelist
。第二个逗号是分隔符。然后,宏在列表中查找由反斜杠、宏名称部分和分隔符逗号
\ifnot@excluded
组成的字符串,最后使用 LaTeX 进行匹配。由于已经包含逗号,算法会感到困惑,不会将逗号解释为宏名称,而是解释为分隔符逗号。因此,在排除命令列表中找到。\
,
\@@in
\,
\,
- 还
\{
可以\}
使用一个技巧。由于\DoNotIndex
更改了反斜杠的 catcode\
,花括号不再正确嵌套。花括号还需要 catcode 12(其他)。\string
如示例所示,这很有帮助。
\,
以下示例显示了、\{
和的排除\}
:
% \iffalse
% arara: pdflatex: {draft: yes}
% arara: makeindex: {style: gind}
% arara: pdflatex
%<*driver>
\documentclass{ltxdoc}
\CodelineIndex
\EnableCrossrefs
\IndexPrologue{}
\DoNotIndex{\,}
\expandafter\DoNotIndex\expandafter{\string\{}
\expandafter\DoNotIndex\expandafter{\string\}}
\begin{document}
\DocInput{\jobname.dtx}%
\end{document}
%</driver>
% \fi
% \begin{macrocode}
%<*package>
\relax \, \thinspace \{ \}
%</package>
% \end{macrocode}
%
% \PrintIndex
% \Finale