我似乎遇到了一个意想不到的错误。当使用多列包排版阿拉伯语文本(在 Windows 10 上使用 XeLatex、MiKTeX、TeXworks 进行多语排版)时,我遇到了一个问题。当将阿拉伯语设置为主要(或默认)语言时,没有问题。文本输出正确。但是当英语是主要语言,而阿拉伯语只是另一种语言时,列处理不正确,并且它们在输出中显示为反转,而不是正确的顺序。下面是一个最小示例:
\documentclass[a4paper]{article}
\usepackage{multicol}
\usepackage{polyglossia}
\usepackage[hmargin=1cm, vmargin=1cm]{geometry}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic]{Lateef}
\pagestyle{empty}
\begin{document}
\begin{Arabic}
\begin{multicols}{3}
\setlength\parskip{0pt}
شنّت القوات العراقية هجوما على مطار مدينة الموصل، أحد أهم أهداف العملية
العسكرية لطرد مسلحي تنظيم الدولة الإسلامية من شطر المدينة الغربي. كما
اقتحمت القوات معسكر الغزلاني القريب من المطار، والذي شهد اشتباكات عسكرية
عنيفة، بحسب وكالة أسوشيتد برس. يشار إلى أن تنظيم الدولة قد دمّر بالفعل
ممر الطائرات، غير أن الاستيلاء على مثل هذا الموقع المهم من شأنه مساعدة
الجيش العراقي في السيطرة على الطرق المؤدية إلى المدينة.
واستعادت القوات العراقية والميليشيات الموالية لها الشطر الشرقي
للمدينة، الشهر الماضي. ويقول مراسل بي بي سي، كوينتين سومرفيل، الذي
رافق القوات العراقية، إنهم وصلوا إلى محيط المطار. وقال متحدث باسم
الجيش لفضائية "العراقية" إن غارات متزامنة يُجرى شنها على المطار وقاعدة
الغزلاني لـ "تشتيت" مسلحي تنظيم الدولة.
وكانت منشورات قد أُلقيت في وقت سابق، للتحذير من شنّ هجوم وشيك على غرب
المدينة، الذي يقول مسؤولون عسكريون إن شوارعه المتعرجة والضيقة قد تجعل
استعادة المنطقة مهمة صعبة. وعلى الرغم من أن غرب المدينة أصغر بقليل من
شرقها، إلا أنه أكثر كثافة ويضم مناطق يُنظر إليها باعتبارها مؤيدة لتنظيم
الدولة. وأعربت الأمم المتحدة عن قلقها بشأن الأوضاع المعيشية للمدنيين
المحاصرين في المدينة، وسط تقارير عن أن عددهم قد يرتفع إلى 650 ألفا.
وفرّ بالفعل ما يربو على 160 ألف شخص من منازلهم داخل المدينة وحولها.
\end{multicols}
\end{Arabic}
\end{document}
本文改编自 kashida / tatweel 的一个精美范例(http://andreasmhallberg.github.io/stretchable-kashida/)。在原示例中,阿拉伯语被设置为主要语言,输出 PDF 中各列均正确显示。但是,当阿拉伯语不是主要语言时,各列显示不正确,第三列显示为第一列。
任何帮助将不胜感激!
答案1
根据建议这里,你应该添加\RTLmulticolcolumns
:
\documentclass[a4paper]{article}
\usepackage{multicol}
\usepackage{polyglossia}
\usepackage[hmargin=1cm, vmargin=1cm]{geometry}
\setdefaultlanguage{english}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic]{Lateef}
\pagestyle{empty}
\begin{document}
\begin{Arabic}\RTLmulticolcolumns
\begin{multicols}{3}
\setlength\parskip{0pt}
شنّت القوات العراقية هجوما على مطار مدينة الموصل، أحد أهم أهداف العملية
العسكرية لطرد مسلحي تنظيم الدولة الإسلامية من شطر المدينة الغربي. كما
اقتحمت القوات معسكر الغزلاني القريب من المطار، والذي شهد اشتباكات عسكرية
عنيفة، بحسب وكالة أسوشيتد برس. يشار إلى أن تنظيم الدولة قد دمّر بالفعل
ممر الطائرات، غير أن الاستيلاء على مثل هذا الموقع المهم من شأنه مساعدة
الجيش العراقي في السيطرة على الطرق المؤدية إلى المدينة.
واستعادت القوات العراقية والميليشيات الموالية لها الشطر الشرقي
للمدينة، الشهر الماضي. ويقول مراسل بي بي سي، كوينتين سومرفيل، الذي
رافق القوات العراقية، إنهم وصلوا إلى محيط المطار. وقال متحدث باسم
الجيش لفضائية "العراقية" إن غارات متزامنة يُجرى شنها على المطار وقاعدة
الغزلاني لـ "تشتيت" مسلحي تنظيم الدولة.
وكانت منشورات قد أُلقيت في وقت سابق، للتحذير من شنّ هجوم وشيك على غرب
المدينة، الذي يقول مسؤولون عسكريون إن شوارعه المتعرجة والضيقة قد تجعل
استعادة المنطقة مهمة صعبة. وعلى الرغم من أن غرب المدينة أصغر بقليل من
شرقها، إلا أنه أكثر كثافة ويضم مناطق يُنظر إليها باعتبارها مؤيدة لتنظيم
الدولة. وأعربت الأمم المتحدة عن قلقها بشأن الأوضاع المعيشية للمدنيين
المحاصرين في المدينة، وسط تقارير عن أن عددهم قد يرتفع إلى 650 ألفا.
وفرّ بالفعل ما يربو على 160 ألف شخص من منازلهم داخل المدينة وحولها.
\end{multicols}
\end{Arabic}
\end{document}