如何标记索引和词汇表

如何标记索引和词汇表

假设您想要\pageref索引和/或词汇表,您如何标记索引/词汇表?

以下方法失败(原因很明显):

\label{glos}
\printglossary

\label{idx}
\printindex

(在索引和词汇表前标注)

\printglossary
\label{glos}

\printindex
\label{idx}

(索引和词汇表最后一页有标签)

如何标记索引和词汇表?

平均能量损失

\documentclass{article}
\usepackage{makeidx,glossaries}
\makeindex
\makeglossaries

\begin{document}
In this example we introduce \index{text}\newglossaryentry{text}{name={text},description={foo}}text. You can consult the glossary on page \pageref{glos} and the index on page \pageref{idx}.

\label{glos}
\printglossary
\label{idx}
\printindex
\end{document}

答案1

glossaries简单的方法是使用包选项¹自动生成标签numberedsection

\documentclass{report}

\usepackage[numberedsection=nameref]{glossaries}

\makeglossaries

\newglossaryentry{text}{name={text},description={foo}}

\begin{document}
In this example we introduce \gls{text}.
You can consult the glossary on page \pageref{main}.

\printglossary
\end{document}

这会自动在词汇表的开头插入一个标签,标签由 给出,\glsautoprefix后面跟着词汇表标签。前缀命令\glsautoprefix默认为空,因此main词汇表默认设置了标签\label{main},因此可以使用 进行引用\pageref{main}。您可以重新定义\glsautoprefix以提供前缀,以防止任何标签冲突。

另一种可能性是修改词汇表序言。只需一个词汇表,您就可以简单地重新定义\glossarypreamble,如下所示:

\documentclass{report}

\usepackage{glossaries}

\renewcommand{\glossarypreamble}{\label{glos}}

\makeglossaries

\newglossaryentry{text}{name={text},description={foo}}

\begin{document}
In this example we introduce \gls{text}.
You can consult the glossary on page \pageref{glos}.

\printglossary
\end{document}

对于多个词汇表,您要么需要\glossarypreamble在每个词汇表之前重新定义,要么可以使用\setglossarypreamble[main]{\label{glos}}等。


¹ 我已将词汇表定义移至序言中,词汇表手册中的建议

答案2

这是一个解决方案,使用etoolbox包。

笔记:请参阅下面 Nicola Talbot 的评论(和答案)

\documentclass{article}
\usepackage{etoolbox}

\usepackage{makeidx,glossaries}
\makeindex
\makeglossaries

\csappto{theglossary}{\label{mtglos}}
\csappto{theindex}{\label{mtidx}}

\begin{document}
In this example  we introduce \index{text}
\newglossaryentry{bla}{name={text},description={foo}}text. \gls{bla} You can consult the glossary on page \pageref{mtglos} and the index on page \pageref{mtidx}.


\printglossary
\printindex
\end{document}

在此处输入图片描述

相关内容