从右到左的多列不起作用(与 ExPeX 的兼容性问题?)

从右到左的多列不起作用(与 ExPeX 的兼容性问题?)

根据multicol 文档,在第 5 页第 2.5 节中,您可以通过调用 切换到从右到左的列\RLmulticolcolumns。我已经这样做了,但它不起作用。这是一个错误,还是我做错了什么?与 不expex兼容multicol

%XeLaTeX
\documentclass[11pt]{scrartcl}
\usepackage{multicol}    
\usepackage{polyglossia}
    \setdefaultlanguage{english}
    \setotherlanguage{hebrew}
    \newfontfamily\hebrewfont[Script=Hebrew]{Arial}
    \newfontfamily\englishfont[Ligatures=NoCommon]{Linux Libertine O}

\usepackage{expex}

\begin{document}

\section{Foo Bar}

\RLmulticolcolumns

  \begin{multicols}{3}
    \begin{hebrew}

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl\xe%

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl\xe%

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl\xe%

    \end{hebrew}
  \end{multicols}
\end{document}

(1)应在右边,(3)应在左边。 在此处输入图片描述

编辑:我发现了一个随机的非 ExPeX测试用例在哪里RLmulticolcolumns 可以工作。打开和关闭它以查看其工作情况:

\documentclass{article}
\usepackage{multicol}
\setlength{\multicolsep}{6.0pt plus 2.0pt minus 1.5pt}% 50% of original values
\usepackage{lipsum}

\begin{document}
\lipsum[1]
%\RLmulticolcolumns
\begin{multicols}{3}
   \noindent
   \begin{equation}\sum F_x = 0\end{equation}
   \begin{equation}\frac{dP}{dx} - p = 0\end{equation}
   \begin{equation}\sum F_y = 0\end{equation}
   \begin{equation}\frac{dQ}{dx} + q = 0\end{equation}
   \begin{equation}\sum M = 0\end{equation}
   \begin{equation}\frac{dQ}{dx} + q = 0\end{equation}
\end{multicols}
\lipsum[1]
\end{document}

答案1

每当声明 RTL 语言时,该polyglossia包就会加载包,并修改许多包的行为以使其适应 RTL 排版,因此检查文档()以了解其所做的事情总是有用的。bidibidibiditexdoc bidi-doc

在这种情况下,bidi有一个不同的宏来更改列的方向multicol:而不是宏multicol\RLmuticolcolumns定义bidi一个\RTLmulticolcolumns宏。如果你使用它,事情就会奏效。

与所有bidi问题一样,请确保在声明 RTL 语言之前加载大多数包,因为它bidi会修改大量包代码。

\documentclass[11pt]{scrartcl}
\usepackage{multicol}
\usepackage{expex}  
\usepackage{polyglossia}
    \setdefaultlanguage{english}
    \setotherlanguage{hebrew}
    \newfontfamily\hebrewfont[Script=Hebrew]{David CLM}
    \newfontfamily\englishfont[Ligatures=NoCommon]{Linux Libertine O}

\begin{document}
\section{Foo Bar}

\RTLmulticolcolumns % bidi version of \RLmulticolcolumns
\begin{hebrew}
\begin{multicols}{3}

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl
\xe%

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl
\xe%

\ex\begingl%
    \gla אני מורה //  
    \glb ani more //  
    \glc I teacher //   
\endgl
\xe%


\end{multicols}
\end{hebrew}
\end{document}

代码输出

相关内容