我正在用阿拉伯语写一本关于概率的书,我正在使用以下命令
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Traditional Arabic}
使用此包,命令\emph
和\textit
无效,也就是说,它留下罗马字。我该如何修复这个问题?
以下是一个例子:
\documentclass[a4paper]{book}
\usepackage[dvips]{graphicx}
\usepackage{boxedminipage}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{rotating}
\usepackage{fmultico}
\setlength{\columnseprule}{0.1pt}
\usepackage{polyglossia}
\setmainlanguage[numerals=maghrib]{arabic}
\setotherlanguage{english}
\newfontfamily\arabicfont[Script=Arabic]{Traditional Arabic}
\begin{document}
\hfill\LR{A sample of probabilistic arabic text}
نهتم، في كثير من الأحيان، بتحديد عدد
\emph{المجموعات المختلفة} المتكونة من $r$
عنصر، التي يمكن تشكيلها من مجموعة فيها $n$ عنصر.
\end{document}
答案1
如果你有要使用“传统阿拉伯语”字体,根据评论,该字体似乎没有斜体/倾斜版本,您可以使用以下两种替代方法之一来解决该问题:
一种是使用
AutoFakeSlant
字体定义中的特性,因此:\newfontfamily\arabicfont[Script=Arabic, AutoFakeSlant=-0.15]{Traditional Arabic}
顾名思义,它会采用常规直立字母并自动使其倾斜(我认为是使用简单的变换)。
另一种方法是使用具有倾斜版本的其他字体。这样,传统阿拉伯语将用于直立字母,并且无论何时使用
\emph
或\textit
fontspec
都将选择其他字体。请注意,倾斜版本的阿拉伯语字体通常在字体名称后有Italic
或Slanted
。要使用此方法,请定义字体系列如下:\newfontfamily\arabicfont[Script=Arabic, ItalicFont=AnotherArabicFont Slanted]{Traditional Arabic}
我认为第一种方法可能更好,因为找到另一种字体在排版上足够相似的字体可能真的很棘手。我用第一种方法来论文:我的主要希伯来语字体没有倾斜版本(粗俗希伯来语没有斜体,但有人尝试为特定字体设计“类似斜体”的字母形式),因此我使用AutoFakeSlant
来获得倾斜的版本,以引用其他作品的标题(参见'霍比特人' 用英语)。它工作正常。请注意,对于阿拉伯语和希伯来语,都应该使用负因子(我发现这是-0.15
一个合理的选择),因为它们是用 RTL 编写的,而 LTR 脚本应该使用正因子。
如果您需要粗体版本,您可以使用这些并行功能:
AutoFakeBold=1.5
(当然,你可以改变这个因素),并且BoldFont=AnotherArabicFont Bold
+BoldItalicFont=AnotherArabicFont Bold Italic
。
答案2
总体而言,我不建议在阿拉伯语中使用粗体和倾斜来强调:它们在阿拉伯语中效果不佳,尤其是倾斜,它并不总是那么明显,而且与阿拉伯语排版传统完全格格不入。(尽管我自己的 Amiri 字体有它们,但它们的存在是为了避免 GUI 应用程序合成的假粗体和倾斜,这些效果非常差,在许多情况下会直接破坏字体。)传统上,强调是使用不同的书法风格来完成的,例如使用 Nastaliq 来强调正文中的 Naskh,或者使用看起来更粗的其他字体,或者使用上划线或不同的颜色等。所以我建议您根据要设置的文本的性质采用其中一种技术。