MWE 是:
% !TeX program = XeLaTeX
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\section{\^e\%}
\section{20\%}
\end{document}
在pdfLaTeX和LuaLaTeX下都可以正常使用,但是在XeLaTeX下会出现错误:
(./mwe.out)
Runaway argument?
{ê\BOOKMARK [1][-]{section.2}{20\045}{}
! File ended while scanning use of \@@BOOKMARK.
<inserted text>
\par
l.5 \begin{document}
?
(./mwe.out)
Runaway argument?
{ê\BOOKMARK [1][-]{section.2}{20\045}{}
! File ended while scanning use of \@@BOOKMARK.
<inserted text>
\par
l.5 \begin{document}
?
\@outlinefile=\write3
\openout3 = `mwe.out'.
我可以看到书签辅助文件(mwe.out)是
\BOOKMARK [1][-]{section.1}{ê%}{}% 1
\BOOKMARK [1][-]{section.2}{20\045}{}% 2
我认为这是由于%
第一个中的第一个造成的\BOOKMARK
。如何在 XeLaTeX 下避免这种情况?
答案1
加载bookmark
包裹相反,它提供了更新的书签参考:
\documentclass{article}
\usepackage{bookmark}
\begin{document}
\section{\^e\%}
\section{20\%}
\end{document}
bookmark
负载hyperref
(看我应该先加载哪个包:hyperref
或者bookmark
?)