我在使用 XeLaTeX 时遇到了一个奇怪的错误:我包含caption.sty
并使用了类似命令\renewcommand\thefigure{\Alph{figure}}
来调整图形计数器。如果我包含arabxetex.sty
,我对计数器所做的调整就会被恢复。
请参阅此 MWE:
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{caption}
\renewcommand\thefigure{\Alph{figure}}
\usepackage[utf]{arabxetex}
\newfontfamily\arabicfont{Arial}
\begin{document}
\begin{figure}
\caption{Test figure}
\end{figure}
\end{document}
结果:
并比较:
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{caption}
\renewcommand\thefigure{\Alph{figure}}
%\usepackage[utf]{arabxetex}
\newfontfamily\arabicfont{Arial}
\begin{document}
\begin{figure}
\caption{Test figure}
\end{figure}
\end{document}
结果:
有人知道为什么会发生这种情况吗?我知道正在arabxetex.sty
加载bidi.sty
,并且加载顺序是:首先caption
然后bidi
。但在我的例子中,这个顺序是被遵守的。
顺便说一句:arabxetex
直接加载后caption
可以解决问题。但我受此命令的特定顺序约束,因为arabxetex
将由样式包加载,而前 4 行在类中。我也知道使用的可能性\AtBeginDocument{\renewcommand\thefigure{\Alph{figure}}}
,这也可以解决这个问题。
arabxetex
然而,我真的很想知道: or中是否存在错误bidi
,以及它还会对其他什么产生影响?也许我还需要投入更多精力\AtBeginDocument
;)
谢谢。
答案1
没有什么奇怪的事情;只要把
\renewcommand\thefigure{\Alph{figure}}
加载包后arabxetex
。