\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}
,则列的顺序将变成从左到右,如果我们arabic
用farsi
或任何从右到左的语言替换,情况也是一样的。
我认为问题来自于当从右到左的语言被定义为其他语言时polyglossia
定义发生变化的包。\RLmulticolcolumns
如何修复此问题并利用将\RLmulticolcolumns
从右到左的语言设置为其他语言的命令,谢谢。
答案1
\RTLmulticolcolumns
使用from bidi
package 而不是\RLmulticolcolumns
from命令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}