![向使用阿拉伯字体的文档添加特定段落格式说明时,XeLatex 编译失败](https://linux22.com/image/422358/%E5%90%91%E4%BD%BF%E7%94%A8%E9%98%BF%E6%8B%89%E4%BC%AF%E5%AD%97%E4%BD%93%E7%9A%84%E6%96%87%E6%A1%A3%E6%B7%BB%E5%8A%A0%E7%89%B9%E5%AE%9A%E6%AE%B5%E8%90%BD%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E%E6%97%B6%EF%BC%8CXeLatex%20%E7%BC%96%E8%AF%91%E5%A4%B1%E8%B4%A5.png)
我在使用 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)。
非常感谢。