我想在文本中引用词汇表(我正在使用包glossaries
)。但是,由于词汇表是使用 生成的\printglossaries
,我不能直接将\label
命令放在需要的位置。将\label
命令放在命令之前或之后\printglossaries
不起作用:它会给出错误的页码。
我浏览了glossaries
手册,但没有找到任何有关标签或参考的内容。
答案1
使用电子工具箱包来修补glossaries
'内部\@glossarysection
宏。
编辑:如果您想知道\@@glossaryseclabel
正在做什么:如果您glossaries
使用选项加载包,词汇表将 a) 被编号 b) 具有使用词汇表类型的自动标签。在这种情况下,您可以使用例如或来numberedsection=autolabel
引用不同的词汇表。请参阅第 2.2 节。\ref{main}
\pageref{acronym}
glossaries
。对于未编号词汇表,使用下面我的破解方法。(当然,\ref
由于没有可参考的节号,所以无法正常工作,但\pageref
可以。)
\documentclass{book}
\usepackage{glossaries}
\makeglossaries
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@glossarysection}{%
\@@glossaryseclabel%
}{%
\@@glossaryseclabel%
\label{\glsautoprefix\@glo@type}% "main" for main glossary, "acronym" for list of acronyms
}{}{}
\makeatother
\newglossaryentry{electrolyte}{name=electrolyte,%
description={solution able to conduct electric current}}
\begin{document}
Some text about \gls{electrolyte}.
The glossary starts on page~\pageref{main}.
\printglossaries
\end{document}