如果使用 \setotherlanguage xelatex 加载“从右到左”语言,则 \RLmulticolcolumns 将被停用

如果使用 \setotherlanguage xelatex 加载“从右到左”语言,则 \RLmulticolcolumns 将被停用

\RLmulticolcolumns包中的命令multicol可以很好地从右到左反转页面上的列顺序,pdflatex或者xelatex,这里有一个工作示例:

\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{polyglossia}

\setdefaultlanguage{english}
%\setotherlanguage{arabic}

\begin{document}

\RLmulticolcolumns

\begin{multicols}{2}
\lipsum[2]
\end{multicols}

\end{document}

列的顺序从这里开始从右到左。

如果我们取消注释该行\setotherlanguage{arabic},则列的顺序将变成从左到右,如果我们arabicfarsi或任何从右到左的语言替换,情况也是一样的。

我认为问题来自于当从右到左的语言被定义为其他语言时polyglossia定义发生变化的包。\RLmulticolcolumns

如何修复此问题并利用将\RLmulticolcolumns从右到左的语言设置为其他语言的命令,谢谢。

答案1

\RTLmulticolcolumns使用from bidipackage 而不是\RLmulticolcolumnsfrom命令multicol我们可以得到我们需要的内容:从右到左开始的列

\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}

\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{english}
\setotherlanguage{arabic}

\setmainfont{Times New Roman}
\newfontfamily\arabicfont[Script = Arabic,Scale=1.2]{Amiri} 

\RTLmulticolcolumns % defined from bidi package 

\begin{document}

\begin{multicols}{2}
\lipsum[2]
\end{multicols}

\end{document}

显示如果从右到左的语言作为其他语言加载则polyglossia使用包。bidi

在此处输入图片描述

答案2

似乎\(LR-RL)multicolcolumns不起作用

您可以尝试使用命令\resetdefaultlanguage

\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}

\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{english}
\setotherlanguage{arabic}

\setmainfont{Times New Roman}
\newfontfamily\arabicfont[Script = Arabic,Scale=1.2]{Times New Roman} 

\begin{document}

\begin{multicols}{2}
\lipsum[2]
\end{multicols}

\resetdefaultlanguage{arabic}


\begin{multicols}{2}
اللغة العربية لغة جميله
اللغة العربية لغة جميله
اللغة العربية لغة جميله
اللغة العربية لغة جميله

اللغة العربية لغة جميله
اللغة العربية لغة جميله
اللغة العربية لغة جميله
اللغة العربية لغة جميله

اللغة العربية لغة جميله
اللغة العربية لغة جميله
اللغة العربية لغة جميله
\end{multicols}
\end{document}

相关内容