xelatex 中 unicode-math 与 hyperref 组合时出现奇怪错误

xelatex 中 unicode-math 与 hyperref 组合时出现奇怪错误

以下是我所面临的问题的 MWE:

\documentclass{article}

\usepackage{hyperref}
\usepackage{unicode-math}
\setmathfont{Asana Math}
\begin{document}
\section{$2\times 2$}
$2 \times 2$
\end{document}

当使用 xelatex 编译它时,我收到以下错误:

! Improper alphabetic constant.
<to be read again> 
                   \times 
l.7 \section{$2\times 2$}

但是,如果我删除 hyperref 包,错误就会消失。

现在显然我希望能够在节标题中使用数学,并且使用 pdflatex 编译很好(除了 hyperref 对书签中的数学的抱怨,可以通过其他方式修复)。

那么我对 xelatex 做错了什么吗?

答案1

Ulrike 答案的更新。

使用 hyperref 2012/08/13 v6.83a,您可以将选项unicode(或pdfencoding=auto)与选项 一起使用psdextra

\usepackage[unicode,psdextra]{hyperref}[2012/08/13]

然后包括在内的许多数学符号\times都被识别了。

答案2

您可以使用它\texorpdfstring来告诉 hyperref 使用其他文本作为书签:

\documentclass{article}

\usepackage{hyperref}
\usepackage{unicode-math}
\setmathfont{Asana Math}
\begin{document}
\section{\texorpdfstring{$2\times 2$}{2\texttimes2}}
$2 \times 2$
\end{document}

相关内容