当阿拉伯语文本被发声时(使用称为塔什基尔),有时整条线会低于预期基线。
以下是具有以下 MWE 的示例:
\documentclass[12pt,oneside,french]{article}
\usepackage{paracol}
\usepackage{polyglossia}
\newfontfamily\arabicfont[Ligatures=TeX,Script=Arabic]{Amiri}
\setotherlanguages{arabic}
\begin{document}
\begin{paracol}{2}
\switchcolumn[0]
Correct baseline
\switchcolumn[1]
Incorrect baseline
\switchcolumn[0]
\textarabic{لوغيم إپسوم دولور}\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}
\switchcolumn[1]
\vbox{\textarabic{لُوغِيمْ إپْسُومْ دُلُورْ}}
\switchcolumn[0]
\textarabic{لوغيم إپسوم دولور}\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}
\switchcolumn[1]
\vbox{\textarabic{لُوغِيمْ إپْسُومْ دُلُورْ}}
\end{paracol}
\end{document}
女巫给出以下渲染:
我paracol
在这里将预期行为和不良行为并列。因此,如您所见,如果该paracol
行前面是完整的拉丁文行,则发声不会发生任何变化。
但是——这是主要的问题——当这一paracol
行前面有一整行阿拉伯语时,就会发生转变。
问题
那么,如何才能强制发声的阿拉伯语文本在任何情况下始终遵守指定的基线?
答案1
文本高度大于指定基线间距
因此,您可以增加空间(bbb)或允许变音符号在上面一行上覆盖降部(ccc),或者妥协并增加足够的空间以避免大部分重叠,但如果变音符号出现在长降部下,仍然允许它(ddd)
\documentclass[12pt,oneside,french]{article}
\usepackage{paracol}
\usepackage{polyglossia}
\newfontfamily\arabicfont[Ligatures=TeX,Script=Arabic]{Amiri}
\setotherlanguages{arabic}
\def\test{%
\begin{paracol}{2}
\switchcolumn[0]
Correct baseline
\switchcolumn[1]
Incorrect baseline
\switchcolumn[0]
\textarabic{لوغيم إپسوم دولور}\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}
\switchcolumn[1]
\vbox{\textarabic{لُوغِيمْ إپْسُومْ دُلُورْ}}
\switchcolumn[0]
\textarabic{لوغيم إپسوم دولور}\noindent\makebox[\linewidth]{\rule{\paperwidth}{0.4pt}}
\switchcolumn[1]
\vbox{\textarabic{لُوغِيمْ إپْسُومْ دُلُورْ}}
\end{paracol}%
}
\begin{document}
aaa
\test
\bigskip
bbb
{\def\baselinestretch{1.5}\normalsize
\test
}
\bigskip
ccc
{\lineskiplimit=-20pt
\test
}
\bigskip
ddd
{\lineskiplimit=-10pt
\def\baselinestretch{1.2}\normalsize
\test
}
\end{document}