向使用阿拉伯字体的文档添加特定段落格式说明时,XeLatex 编译失败

向使用阿拉伯字体的文档添加特定段落格式说明时,XeLatex 编译失败

我在使用 XeLatex 编译以下乳胶代码时遇到困难。它引发了臭名昭著的“缺少 \endcsname 插入”错误。

\documentclass[11pt,a4paper]{article}
\usepackage{polyglossia}    
\setmainlanguage{arabic}
\setotherlanguage{english}
\setmainfont{Arabic Typesetting}
\begin{document}

% Begin paragraph formatting instructions
\parindent0pt
\catcode`\ \active
\def\par{\endgraf\leftskip=0pt\relax}
\obeylines
\def {\ifvmode\advance\leftskip5pt\relax\else\space\fi}
% End paragraph formatting instructions

كلمة.
\end{document}

我猜这个问题是由以下代码引起的:

\def {\ifvmode\advance\leftskip5pt\relax\else\space\fi}

其功能是根据我的需要执行段落格式化(感谢大卫这个问题)。在这个小例子中,格式并不明显,但重点是:关于段落格式的部分需要存在。

以下是 (i) 删除格式说明和 (ii) 添加格式说明时编译日志文件中的两段摘录。

首先,当删除格式说明时,文档可以正常编译。

Package fontspec Info: Adjusting the maths setup (use [no-math] to avoid
(fontspec)             this).

\symlegacymaths=\mathgroup4
LaTeX Font Info:    Overwriting symbol font `legacymaths' in version `bold'
(Font)                  OT1/cmr/m/n --> OT1/cmr/bx/n on input line 13.
LaTeX Font Info:    Redeclaring math accent \acute on input line 13.
LaTeX Font Info:    Redeclaring math accent \grave on input line 13.
LaTeX Font Info:    Redeclaring math accent \ddot on input line 13.
LaTeX Font Info:    Redeclaring math accent \tilde on input line 13.
LaTeX Font Info:    Redeclaring math accent \bar on input line 13.
LaTeX Font Info:    Redeclaring math accent \breve on input line 13.
LaTeX Font Info:    Redeclaring math accent \check on input line 13.
LaTeX Font Info:    Redeclaring math accent \hat on input line 13.
LaTeX Font Info:    Redeclaring math accent \dot on input line 13.
LaTeX Font Info:    Redeclaring math accent \mathring on input line 13.
% more lines follow in the log file

其次,当添加格式化指令时,我在日志文件的最后得到以下内容,之后编译失败并出现上述错误。

Package fontspec Info: Adjusting the maths setup (use [no-math] to avoid
(fontspec)             this).

\symlegacymaths=\mathgroup4
LaTeX Font Info:    Overwriting symbol font `legacymaths' in version `bold'
(Font)                  OT1/cmr/m/n --> OT1/cmr/bx/n on input line 13.
LaTeX Font Info:    Redeclaring math accent \acute on input line 13.
LaTeX Font Info:    Redeclaring math accent \grave on input line 13.
LaTeX Font Info:    Redeclaring math accent \ddot on input line 13.
LaTeX Font Info:    Redeclaring math accent \tilde on input line 13.
LaTeX Font Info:    Redeclaring math accent \bar on input line 13.
LaTeX Font Info:    Redeclaring math accent \breve on input line 13.
LaTeX Font Info:    Redeclaring math accent \check on input line 13.
LaTeX Font Info:    Redeclaring m

我的问题:我该如何修改段落格式以适应阿拉伯语和其他潜在的 RTL 非英语语言?

我在Windows 10下使用Latex,版本信息如下:XeTeX 3.14159265-2.6-0.999991(TeX Live 2019/W32TeX)。

非常感谢。

相关内容