我最初在EB 加拉蒙德存储库,但建议在这里提问。这个问题只发生在我尝试的两种字体上:EB Garamond 和 Junicode Two Beta。如果您尝试使用从右到左的语言(如阿拉伯语)并将babel
英语和阿拉伯语文本放在multicols
环境中,如果段落结束在之前,结果将不正确\end{otherlanguage}
。我想把段落结束在之前的原因是\end{otherlanguage}
是为了解决问题使用 linebreaker 包。除最后一页外,所有页面都将向左移动很远。让我困惑的是为什么这种情况只发生在某些字体上。
\documentclass{book}
\usepackage{multicol, lipsum, linebreaker}
\usepackage[bidi = basic]{babel}
\babelprovide[main, import]{english}
\babelprovide[import]{arabic}
\babelfont[english]{rm}{EB Garamond}
\babelfont[arabic]{rm}{Amiri}
\begin{document}
\begin{multicols}{2}
\lipsum[1-6]
\begin{otherlanguage}{arabic}
لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار النشوة وتمجيد الألم
نشأت بالفعل، وسأعرض لك التفاصيل لتكتشف حقيقة وأساس تلك السعادة البشرية، فلا أحد
يرفض أو يكره أو يتجنب الشعور بالسعادة، ولكن بفضل هؤلاء الأشخاص الذين لا يدركون بأن
السعادة لا بد أن نستشعرها بصورة أكثر عقلانية ومنطقية فيعرضهم هذا لمواجهة الظروف
الأليمة، وأكرر بأنه لا يوجد من يرغب في الحب ونيل المنال ويتلذذ بالآلام، الألم هو الألم
ولكن نتيجة لظروف ما قد تكمن السعاده فيما نتحمله من كد وأسي.
\end{otherlanguage}
\end{multicols}
\end{document}
编辑:正如@Mico 指出的那样,导致此问题的原因实际上不是段落结束于 之前\end{otherlanguage}
。 这是因为该otherlanguage
部分之前有一个分页符。
答案1
正如上面的评论所述,babel 和 linebreaker 包有可用的更新(尚未在 ctan 上,但在 github 上),这解决了这个问题,@amarakon 证实了这一点