以下是我所面临的问题的 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}