![从右到左的多列不起作用(与 ExPeX 的兼容性问题?)](https://linux22.com/image/374967/%E4%BB%8E%E5%8F%B3%E5%88%B0%E5%B7%A6%E7%9A%84%E5%A4%9A%E5%88%97%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%88%E4%B8%8E%20ExPeX%20%E7%9A%84%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98%EF%BC%9F%EF%BC%89.png)
根据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}
编辑:我发现了一个随机的非 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 排版,因此检查文档()以了解其所做的事情总是有用的。bidi
bidi
bidi
texdoc 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}