我的 LuaLaTeX 系统中 bidi 的环境未定义

我的 LuaLaTeX 系统中 bidi 的环境未定义

我使用 排版阿拉伯语文本LuaLaTeX。我使用以下定义,效果很好:

\newcommand{\arabtext}[1]       % Arabic inside LTR
    {\bgroup\luatextextdir TRT\arabicfont #1\egroup}

(更多扩展版本这里

不过,不久前,有人通过评论告诉我“[我的]定义……是错误的”我可能会看看这个bidi包。事实上,我看过好几次了,但从来没有让它在我的系统上运行。事实上,我甚至无法编译从bidi文档本身中获取的示例:

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\Parsifont[Script=Arabic]{Arabic Typesetting}
\usepackage{bidi}
\begin{document}
\begin{RTL}
Anyone who reads Old and Middle English \LRE{Short LTR text} literary texts will be familiar with the mid-brown volumes of the EETS, with the symbol of Alfred's jewel embossed on the front cover.
\begin{LTR}
Anyone who reads Old and Middle English \RLE{Short RTL text} literary texts will be familiar with the mid-brown volumes of the EETS, with the symbol of Alfred's jewel embossed on the front cover.
\end{LTR}
\end{RTL}
\end{document}

唯一的结果就是LaTeX Error: Environment RTL undefined

为什么会这样?bidi与 LuaLaTeX 不兼容?

我之所以问这个问题,是因为我确实相信 bidi 可能比我上面提供的更好(因为例如,它bidi有许多其他功能,如 RTL 脚注等),并且我想尝试使用它。

答案1

bidi基本上是 XeTeX 独有的:作者已将他的 LuaTeX 代码移至(商业)替代方案。XeTeX 和 LuaTeX 使用不同的 RTL 模型,因此在低级别上需要完全不同的方法。在文档方面:这取决于软件包作者。我总是在代码中包含一个测试,并带有适当的警告/错误,但并不是每个人都这样做。

(LaTeX3 团队最近一直在研究这个问题,试图抽象一些接口,但这项工作还在进行中。)

相关内容