ConTeXt 中阿拉伯语的行距 - 如何在环境中停用网格设置

ConTeXt 中阿拉伯语的行距 - 如何在环境中停用网格设置

我使用以下环境在 ConTeXt 中实现阿拉伯语(能够在德语和阿拉伯语之间切换)。

\startenvironment arab-besser-sty
\definefont[Sheh][name:Scheherazade*arabic at 15pt] % or file:amiri-regular.ttf*... file:alq.ttf
\definestartstop[Arab][commands=\setups{Arabic}]
\def\Arab{\doArab}
\def\Arab[#1]{
\startArab 
\setupalign[r2l]\Sheh #1
\stopArab
}

\stopenvironment

一切正常,但使用我的标准设置:

\environment arab-besser-sty

\setuplayout[location=middle,
topspace=1cm,
width=middle,
cutspace=2.7cm,
rightmargindistance=0.4cm,
leftmargindistance=0.2cm,
backspace=1.5cm,
height=fit,
rightmargin=2.5cm,
leftmargin=1cm,
bottomspace=1.5cm,
footer=1.2cm,
grid=yes]

阿拉伯语行之间的行距太大,为什么?如何在不干扰上述标准布局的情况下解决这个问题?

完整最小示例:

    \environment arab-besser-sty

\setuplayout[location=middle,
  topspace=1cm,
  width=middle,
  cutspace=2.7cm,
  rightmargindistance=0.4cm,
  leftmargindistance=0.2cm,
  backspace=1.5cm,
  height=fit,
  rightmargin=2.5cm,
  leftmargin=1cm,
  bottomspace=1.5cm,
  footer=1.2cm,
  grid=yes]

\starttext

\Arab[

يَـٰٓأَيُّهَا ٱلنَّاسُ ٱتَّقُوا۟ رَ‌بَّكُمُ ٱلَّذِى خَلَقَكُم مِّن نَّفْسٍ وَٰحِدَةٍ وَخَلَقَ مِنْهَا زَوْجَهَا وَبَثَّ مِنْهُمَا رِ‌جَالًا كَثِيرً‌ۭا وَنِسَآءً وَٱتَّقُوا۟ ٱللَّـهَ ٱلَّذِى تَسَآءَلُونَ بِهِۦ وَٱلْأَرْ‌حَامَ إِنَّ ٱللَّـهَ كَانَ عَلَيْكُمْ رَ‌قِيبًا ﴿١﴾ وَءَاتُوا۟ ٱلْيَتَـٰمَىٰٓ أَمْوَٰلَهُمْ وَلَا تَتَبَدَّلُوا۟ ٱلْخَبِيثَ بِٱلطَّيِّبِ وَلَا تَأْكُلُوٓا۟ أَمْوَٰلَهُمْ إِلَىٰٓ أَمْوَٰلِكُمْ إِنَّهُۥ كَانَ حُوبًا كَبِيرً‌ۭا ﴿٢﴾ وَإِنْ خِفْتُمْ أَلَّا تُقْسِطُوا۟ فِى ٱلْيَتَـٰمَىٰ فَٱنكِحُوا۟ مَا طَابَ لَكُم
]

Too much line space above.

\stoptext

答案1

我找到了一个解决方案。我将环境设置Arab\placeongrid[bottom]{...},效果很好。

相关内容