我正在尝试排版一份包含阿拉伯语、中文(以及其他一些语言)的多语言文档。在下面的 MWE 中,阿拉伯语单词 الشمس 表示“sun”,但没有显示(可能是因为babel
未加载该包)。但是,如果我babel
使用该arabic
选项加载该包,则会收到一条错误消息
! LaTeX Error: Command \I already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.155 ...ing\else\ArabicEncoding\fi\beginL#1\endL}
%
?
知道如何解决这个问题吗?我应该补充一点,出于向后兼容的原因,我必须使用 pdftex 引擎来编译这个特定的文档。
平均能量损失
\documentclass[border=2pt]{standalone}
\usepackage[UTF8]{ctexcap}
% \usepackage[arabic]{babel}
\begin{document}
% English:
Sun
% Arabic:
الشمس
% \foreignlanguage{arabic}{الشمس}
% Chinese:
太阳
\end{document}
答案1
arabic.ldf 非常旧,与 unicode 引擎不兼容。使用 lualatex,您可以使用类似这样的代码:
\documentclass[border=2pt]{standalone}
\usepackage[UTF8,fontset=fandol]{ctexcap}
\usepackage[bidi=basic,english]{babel}
\babelprovide[onchar=fonts ids]{arabic}
\babelfont[arabic]{rm}[Scale=1.5,Renderer=Harfbuzz]{Amiri}
\begin{document}
% English:
Sun
% Arabic:
الشمس
% \foreignlanguage{arabic}{الشمس}
% Chinese:
太阳
\end{document}