假设以下最小文档:
\documentclass{ltxdoc}
\CodelineIndex
\EnableCrossrefs
\begin{document}
\DescribeMacro{\macro}
A description of \cs{macro}
\begin{macrocode}
\macro
% \end{macrocode}
\PrintIndex
\end{document}
对文档进行 LaTeX 如下处理
pdflatex tex
makeindex -s gind.ist tex
makeindex -s gglo.ist -o tex.gls tex.glo
pdflatex tex
产生以下输出:
现在让我们加载hyperref
包:
\documentclass{ltxdoc}
\usepackage{hyperref}
\CodelineIndex
\EnableCrossrefs
\begin{document}
...
按照上面描述的方式对文档进行 LaTeX 处理,现在会产生以下输出:
索引不再包含宏描述的页码。有没有办法阻止此行为?
答案1
包使用其包hypdoc
加载hyperref
并添加对文档类的一些“超级”支持。然后链接索引条目:ltxdoc
doc
\documentclass{ltxdoc}
\usepackage{hypdoc}
\CodelineIndex
\EnableCrossrefs
\begin{document}
...
请注意,您需要通过 LaTeX 运行该文档makeindex
至少两次才能在索引中获得正确的链接:
pdflatex tex
makeindex -s gind.ist tex
makeindex -s gglo.ist -o tex.gls tex.glo
pdflatex tex
pdflatex tex
答案2
使用该选项hyperindex=false
来防止出现“错误”行为hyperref
。
\documentclass{ltxdoc}
\CodelineIndex
\EnableCrossrefs
\usepackage[hyperindex=false]{hyperref}
\begin{document}
\DescribeMacro{\macro}
A description of \cs{macro}
\begin{macrocode}
\macro
% \end{macrocode}
\PrintIndex
\end{document}