梅威瑟:
\documentclass{book}
\usepackage{appendix}
\usepackage{hyperref}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\begin{document}
\tableofcontents
\include{chapter1}
\begin{appendices}
\include{appendixA}
\end{appendices}
\end{document}
在这个例子中,目录正确指向附录的页码,但链接不起作用(它没有指向任何地方)。使用 PDF 的目录也不起作用。\appendix
但是使用可以。
更奇怪的是,这种情况只发生在 Ubuntu 16.04 中附带的 TeX Live 2015 上。以前的 LTS 版本不会发生这种情况。
这是一个已知错误吗?我该如何正确解决它?
答案1
由于polyglossia
允许使用unicode字符,将名称Apéndice
作为内容\appendixname
会给需要设置正确链接的超锚点带来问题。
该appendix
包定义\Hy@chapname
为\appendixname
,Apéndice
在这种情况下是“错误的”。
重新定义\Hy@chapname
可以解决问题——只需使用带有“常规”字母的锚点名称,即没有重音符号。等等。
\documentclass{book}
\usepackage{appendix}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\usepackage{hyperref}
\makeatletter
\newcommand{\usebetterlinkanchor}[1]{%
\def\Hy@chapapp{#1}%
}
\makeatother
\begin{document}
\tableofcontents
\chapter{Chapter 1}
\begin{appendices}
\usebetterlinkanchor{appendixchapters}
\chapter{Appendix}
\end{appendices}
\end{document}