与 bidi 或 arabxetex 相关的错误:命令 \XeTeX 已定义

与 bidi 或 arabxetex 相关的错误:命令 \XeTeX 已定义

当我运行以下 MWE 时出现非致命错误:

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[12pt]{article}
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{xltxtra,fontspec,xunicode}

% Choose roman font (choosing the mapping so that ``-->“, '-->’ etc.).
\setromanfont[Mapping=tex-text]{Gentium}
\setmonofont[Scale=0.90,Ligatures=NoCommon]{Courier}

% Greek (not strictly necessary since I just use Gentium for both Greek and Latin).
\newfontfamily\greekfont{Gentium} % GFS Porson

% Arabic
\usepackage[novoc,fdf2alif]{arabxetex}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.2,WordSpace=2]{USAMA NASKH}
\usepackage{bidi}
\usepackage{bidipoem}
\renewcommand\poemcolsepskip{1cm}
\newcommand{\ar}[1]{\textarab{#1}}

\usepackage[american]{babel} 
\usepackage{csquotes}


\begin{document}

\title{Title}
\author{Author}
\date{date}
\maketitle

text

\end{document}

错误信息出现两次:

 /usr/local/texlive/2017/texmf-dist/tex/xelatex/bidi/latex-xetex-bidi.def:122: L
 aTeX Error: Command \XeTeX already defined.
                Or name \end... illegal, see p.192 of the manual.

显然存在一些与bidi或相关的问题arabxetex,因为当我注释掉这些行时,错误消息就消失了。

问题:有没有办法在不删除阿拉伯文字功能的情况下解决这个问题?

答案1

@cfr 对我的问题的评论值得升级为答案,我在这里给出答案:

正如@cfr所建议的,解决方案是停止独立于和删除的加载fontspec和。这意味着我还必须在开始定义希腊和罗马字体系列之前加载(因为后者需要)。bidiarabxetexxltxtraarabxetexfontspec

相关内容