带有指向外部 pdf 的超链接的词汇表

带有指向外部 pdf 的超链接的词汇表

我们正在制作一本书,其中的每一章都包含在一个主 .tex 文件中,并一起编译。我们还单独编译每一章,为每个章节制作一个 .pdf 文件,并且我们可以使用该xr-hyper包轻松地引用另一章(例如,章节编号会变成超链接,按下后主 .pdf 文件会在右侧页面上打开)。

现在,我们想对词汇表做同样的事情,这样当标记一个条目时,例如\gls{<entry label>}当单击时,主 .pdf 会在主 .pdf 文档的词汇表中的条目处打开。

此外,如果能提供一个指向主 .pdf 的 url 的版本就更好了(就像使用 实现的一样xr-hyper\externaldocument{master}[<url>]

我不知道该怎么做。这可能吗?如何做?

答案1

这有助于最小工作示例(MWE)但假设名为该主文件的文件master.tex格式如下:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}

\makeglossaries

\loadglsentries{example-glossaries-brief}

\begin{document}

\gls{lorem}.

\printglossaries

\end{document}

这是按通常的方式编译的:

pdflatex master
makeglossaries master
pdflatex master

现在是一个子文档:

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage{glossaries}

\loadglsentries{example-glossaries-brief}

\renewcommand*{\glsdohyperlink}[2]{%
 \hyperref{master.pdf}{}{#1}{#2}%
}

\glsenablehyper

\begin{document}
\gls{lorem}.

\end{document}

假设调用此文件child.tex,则该文件的构建过程为:

pdflatex child
pdflatex child

如果您还需要内部词汇表,那么这种方法就行不通了。如果您需要混合使用内部和外部链接,那么最简单的方法是使用扩展包glossaries-extra至少 v1.11(2017-01-19):

\documentclass{report}

\usepackage[colorlinks]{hyperref}
\usepackage{glossaries-extra}[2017/01/19]

\newignoredglossary*{external}

\makeglossaries

\loadglsentries[external]{example-glossaries-brief}

\newglossaryentry{sample}{name=sample,category=internal,
 description={an example}
}

\glssetcategoryattribute{general}{targeturl}{master.pdf}
\glssetcategoryattribute{general}{targetname}{\glolinkprefix\glslabel}


\begin{document}
\gls{lorem}, \gls{sample}.

\printglossaries

\end{document}

构建过程现在是:

pdflatex child
makeglossaries child
pdflatex child

相关内容