4

The command \RLmulticolcolumns from multicol package to reverse order of the columns on the page from right to left work fine with pdflatex or xelatex, here a working example:

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

\setdefaultlanguage{english}
%\setotherlanguage{arabic}

\begin{document}

\RLmulticolcolumns

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

\end{document}

The order of columns is starting here from right to left.

If we uncomment the line \setotherlanguage{arabic}, order of columns become starting from left to right, same thing if we replace arabic with farsi or any right to left language.

I think that the problem comes from the package polyglossia which change in definition of \RLmulticolcolumns when right to left language is defined as otherlanguage.

How to fix this problem and take advantage of the \RLmulticolcolumns command with right to left language set as other language, thanks.

3
  • What TeX distribution are you using? This seems to work correctly for me (TL2015).
    – Alan Munn
    Jul 31, 2015 at 20:25
  • TL2015 on windows 8.1
    – Salim Bou
    Jul 31, 2015 at 20:26
  • Sorry, it worked with LuaLaTeX, but it doesn't work with XeLaTeX.
    – Alan Munn
    Jul 31, 2015 at 20:28

2 Answers 2

3

With the command \RTLmulticolcolumns from bidi package instead of \RLmulticolcolumns from multicol we can obtain what we need: columns starting from right to left

\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}

Showing that polyglossia use bidi package if a right to left language is loaded as other language.

enter image description here

1

It seem like \(LR-RL)multicolcolumns doesn't work

you can try with the command \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}
3
  • Thanks @touhami, but I would like to keep the same settings along my document, Namely : \setdefaultlanguage{english} and \setotherlanguage{arabic}.
    – Salim Bou
    Aug 1, 2015 at 6:05
  • @salimbou you're right. but you still can define myArabic environment that make arabic as defaut at begin and reset english at end (if no other solution)
    – touhami
    Aug 1, 2015 at 6:25
  • It's a good idea @touhami but it cannot be applied in my situation to get what I want.
    – Salim Bou
    Aug 1, 2015 at 6:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .