11

This is something that is already annoying me for quite a while. (I use LuaLaTeX)

The line spacing of the Arabic text is uneven (see pic and/or MWE below). In particular, I think, lines 2, 7, and 10. It would very unpleasant if a book got printed like this.

I use Khaled Hosny's font Amiri Font -- but it's not the font's fault. I also get this with Microsoft's Arabic Typesetting, for example.

Nonetheless, I contacted Khaled (because I knew him from TeX.sx) and he said:

"This may be due to the way TeX calculates line spacing, lines with high/deep glyphs will cause bigger line spacing. Since Arabic prefers more generous interline spacing than Latin, the solution is usually to make the line spacing big enough by default. If this does not suit you (e.g. the main text is in Latin script), then I think there are ways to force TeX to do fixed line spacing (I don’t use LaTeX my self, but in ConTeXt I just set the text on a grid)."

So he suggests two solutions, I make three out of them:

  1. increase the line spacing of all text (i.e. Arabic and Latin) -- not suitable, but maybe:

  2. increase the line spacing of Arabic text only

  3. force fixed line spacing of all text

Any ideas of how to accomplish this? Any further ideas?

Pic (looks better than here displayed when you download it):

uneven line spacing

MWE:

% !TEX TS-program = lualatex
\documentclass[paper=a4,fontsize=11pt,DIV=calc]{scrartcl}

\usepackage{fontspec}
    \setmainfont[Ligatures=TeX]{Times New Roman}
\newfontfamily\arabicfont[Script=Arabic,Numbers=Arabic]{Amiri}

\usepackage{csquotes}
\newcommand{\arabtext}[1]   % Arabic inside LTR
    {\bgroup\luatextextdir TRT\arabicfont #1\egroup}
\newcommand{\aq}[2] %
    {\blockquote{\arabtext{#1\hfill}\\{#2}}}

\begin{document}

\aq{وأمّا مَنْ جعل العناصر والأسطقسّات أكثر من واحد مثل ابن دقليس وأنكساغورش ولوقيس وديمقراطيس فإنّه يلزمهم أن يقولوا إنّ الكون هو غير الاستحالة لأنّه يجب أن يكون الكون باجتماع الأسطقسّات والفساد بافتراقها والاستحالة شئ غير الاجتماع والافتراق. فأمّا ابن دقليس فإنه كان يقول إنّ الأسطقسّات ستّة اثنان محرّكان وهما العداوة والمحبّة وأربعة متحرّكة وهى الأرض والماء والهواء والنار. وأمّا أنكساغورش ولوقيس وديمقراطيس فإنّهم كانوا يقولون إنّ الأسطقسّات غير متناهية. وأمّا أنكساغورش فكان يضع التى بهذه الصفة هي الأجسام المتشابهة الأجزاء وهى التى يُسَمَّى الكلّ منها والجزء باسم واحد بعينه مثل اللحم والمخّ والخشب. وأمّا ديمقراطس ولو قيس فإنّهما يريان أنّ التى بهذه الصفة هي أجسام غير متجزّئة وأنّها غير متناهية فى عددها وأشكالها وأنّ الأجسام المركّبة من هذه إنّما تختلف لمكان اختلاف الأجزاء التى تتركّب منها من قبل ثلاثة أشياء : الشكل والوضع والترتيب.}
{Facientes autem elementa esse plura uno, ut Empedocles et Anaxagoras et Leucippus et Democritus, necesse est eis dicere generationem esse aliam ab alteratione. Generatio enim fit per congregationem elementorum et corruptio per segregationem eorum; alteratio autem neque est congregatio neque segregatio. Empedocles vero dicebat sex esse elementa, quorum duo sunt moventia, scilicet amicitia et lis, et quatuor mobilia, scilicet terra et aqua et aër et ignis. Anaxagoras autem et Leucippus et Democritus dicebant elementa esse infinita. Sed Anaxagoras ponebat ea esse corpora consimilium partium, quorum totum et pars habent idem nomen, ut caro et medulla et lignum. Democritus autem { p. 6} et Leucippus dixerunt ea esse corpora infinita in numero et in figuris, et quod corpora composita ex hiis diversificantur secundum diversitatem illarum partium aut propter figuram aut propter situm aut propter ordinem.}

\end{document}
  • 4
    you might check the value of \lineskiplimit, and if it is greater than 0pt, decreasing it to zero. if you also set \lineskip=0pt, tex will not add any extra vertical space unless depth + height indicates an actual overlap, in which case the distance between the baselines will be increased until the two lines are butted up against one another (according to the actual depth and height). but i suppose that khaled has already suggested this. – barbara beeton Jul 30 '13 at 19:00
  • @barbarabeeton : this definitely is an improvement, but the lines are still uneven. As you said, presumably because tex tries to avoid an overlap. So it is even, unless there is an overlap. But then it seems as if what I need is a way to set the line spacing always exactly so as if there was the same biggest possible overlap in every line (even though there would not be an overlap in some of the lines), so that the two lines are always, as you said, butted up against one another. or did I overlook something? – ClintEastwood Jul 30 '13 at 21:27
  • @barbarabeeton : on the other hand this would also mean that the spacing gets bigger over all, but what I actually what is that the height of those lines with large spacing be reduced to the height of the lines with small spacing (and not the other way around that the height of the small lines be increased to the height of the large ones...). any ideas? – ClintEastwood Jul 31 '13 at 4:56
  • This suggestion alone won’t give you a perfect grid, but you can combine it with the others: the contrast between the Arabic and the Latin blocks is less disturbing if you choose a Latin font with relatively long ascenders and descenders, one which benefits from increased linespread (e.g., I’ve seen \linespread{1.0609} proposed for URW’s Garamond). Experimenting with fontspec’s Scale=MatchLowercase or Scale=MatchUppercase for Amiri may further improve the color of the page. – Thérèse Jul 31 '13 at 7:14
  • 3
    If you want to force baseline distances there’s also the registers \pdfeachlineheight and \pdfeachlinedepth, see the pdftex manual. – Philipp Gesang Jul 31 '13 at 8:46
1

I don't understand what \blockquote does and I have no arabic font on my computer. But I am able to say where is the core of your problem. You have to split the text to two paragraphs and to set \baselineskip and \lineskiplimit for the first paragraph. It means (I did'n try this):

\def\ar#1#2{{\luatextextdir TRT\arabicfont\baselineset #1\par}\medskip\noindent#2\par} 
\def\baselineset{\lineskiplimit=-\maxdimen \baselineskip=30pt \relax}

\ar{وأمّا مَنْ جعل العناصر والأسطقسّات أكثر من واحد مثل ابن دقليس وأنكساغورش ولوقيس وديمقراطيس فإنّه يلزمهم أ. يقولوا إنّ الكون هو غير الاستحالة لأنّه يجب أن يكون الكون باجتماع الأسطقسّات والفساد بافتراقها والاستحالة شئ غي. الاجتماع والافتراق. فأمّا ابن دقليس فإنه كان يقول إنّ الأسطقسّات ستّة اثنان محرّكان وهما العداوة والمحبّة وأربعة متحرّك. وهى الأرض والماء والهواء والنار. وأمّا أنكساغورش ولوقيس وديمقراطيس فإنّهم كانوا يقولون إنّ الأسطقسّات غير متناهية. وأمّا أنكساغورش فكان يضع التى بهذه الصفة هي الأجسام المتشابهة الأجزاء وهى التى يُسَمَّى الكلّ منها والجزء باسم واح. بعينه مثل اللحم والمخّ والخشب. وأمّا ديمقراطس ولو قيس فإنّهما يريان أنّ التى بهذه الصفة هي أجسام غير متجزّئة وأنّها غي. متناهية فى عددها وأشكالها وأنّ الأجسام المركّبة من هذه إنّما تختلف لمكان اختلاف الأجزاء التى تتركّب منها من قبل ثلاث. أشياء : الشكل والوضع والترتيب.}
{Facientes autem elementa esse plura uno, ut Empedocles et Anaxagoras et Leucippus et Democritus, necesse est eis dicere generationem esse aliam ab alteratione. Generatio enim fit per congregationem elementorum et corruptio per segregationem eorum; alteratio autem neque est congregatio neque segregatio. Empedocles vero dicebat sex esse elementa, quorum duo sunt moventia, scilicet amicitia et lis, et quatuor mobilia, scilicet terra et aqua et aër et ignis. Anaxagoras autem et Leucippus et Democritus dicebant elementa esse infinita. Sed Anaxagoras ponebat ea esse corpora consimilium partium, quorum totum et pars habent idem nomen, ut caro et medulla et lignum. Democritus autem { p. 6} et Leucippus dixerunt ea esse corpora infinita in numero et in figuris, et quod corpora composita ex hiis diversificantur secundum diversitatem illarum partium aut propter figuram aut propter situm aut propter ordinem.}
  • That is a very nice solution! There is one minor flaw: Since Arabic is left-to-right, the final lines need to be left-aligned. I usually achieve this with \hfill. But writing \baselineset #1\hfill\par does not work. Nor does it work to wrap {#1\hfill} in brackets. Any ideas, how to add this to your nice solution? – ClintEastwood Oct 16 '14 at 9:20
  • by the way: you could simply use Arial as a font for Arabic. – ClintEastwood Oct 16 '14 at 9:34
  • 1
    Try to use #1\hfill\null\par. – wipet Oct 16 '14 at 9:54
  • 2
    by the way: A don't have Arial too because I don't use MS Windows :-) – wipet Oct 16 '14 at 9:55
  • 2
    If you type \lineskiplimit=... in a group then it is local setting (the \baselineset macro is in group). You can set \lineskiplimit=-\maxdimen to your preamble, but the behavior of lines with tall objects (like in-text integrals) will be changed. Default \lineskiplimit=0pt means that such tall lines will be "lean one against second" but with -\maxdimen value they can overlap. – wipet Oct 16 '14 at 13:40
6

Regarding changing the linespacing for the Arabic text, you could do the following (caveat: I do not know Arabic so it is hard for me to gauge what line spacing setting looks good):

\usepackage{setspace}
...
\newcommand{\arabtext}[1]   % Arabic inside LTR @ 1.35 line spacing
  {\bgroup\begin{spacing}{1.35}\luatextextdir  
    TRT\arabicfont #1\hfill\end{spacing}\egroup}
\newcommand{\aq}[2] %
  {\blockquote{\arabtext{#1\hfill}{#2}}}% <-- need to remove the \\ since the Arabic text is now 'ended' by the \end{spacing}

original image

Perhaps it is easier to test different settings against a grid background. Here's a complete example:

\documentclass[paper=a4,fontsize=11pt,DIV=calc]{scrartcl}
\usepackage{fontspec}
    \setmainfont[Ligatures=TeX]{Latin Modern Roman}
\newfontfamily\arabicfont[Script=Arabic,Numbers=Arabic]{Amiri}
\usepackage{csquotes}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage[grid, gridunit=pt,
  gridcolor=red!20,
  subgridcolor=blue!20]{eso-pic}
% code changed to allow setting the `spacing` env.
\newcommand{\arlat}[2]%
  {\bgroup
    \begin{spacing}{#1}
      \luatextextdir TRT\arabicfont #2\hfill
    \end{spacing}
    \egroup}
\newcommand{\arlatqt}[3]%
  {\blockquote{\arlat{#1}{#2\hfill}{#3}}}

\begin{document}

\arlatqt{1.5}{وأمّا مَنْ جعل العناصر والأسطقسّات أكثر من واحد مثل ابن دقليس وأنكساغورش ولوقيس وديمقراطيس فإنّه يلزمهم أن يقولوا إنّ الكون هو غير الاستحالة لأنّه يجب أن يكون الكون باجتماع الأسطقسّات والفساد بافتراقها والاستحالة شئ غير الاجتماع والافتراق. فأمّا ابن دقليس فإنه كان يقول إنّ الأسطقسّات ستّة اثنان محرّكان وهما العداوة والمحبّة وأربعة متحرّكة وهى الأرض والماء والهواء والنار. وأمّا أنكساغورش ولوقيس وديمقراطيس فإنّهم كانوا يقولون إنّ الأسطقسّات غير متناهية. وأمّا أنكساغورش فكان يضع التى بهذه الصفة هي الأجسام المتشابهة الأجزاء وهى التى يُسَمَّى الكلّ منها والجزء باسم واحد بعينه مثل اللحم والمخّ والخشب. وأمّا ديمقراطس ولو قيس فإنّهما يريان أنّ التى بهذه الصفة هي أجسام غير متجزّئة وأنّها غير متناهية فى عددها وأشكالها وأنّ الأجسام المركّبة من هذه إنّما تختلف لمكان اختلاف الأجزاء التى تتركّب منها من قبل ثلاثة أشياء : الشكل والوضع والترتيب.}
{Facientes autem elementa esse plura uno, ut Empedocles et Anaxagoras et Leucippus et Democritus, necesse est eis dicere generationem esse aliam ab alteratione. Generatio enim fit per congregationem elementorum et corruptio per segregationem eorum; alteratio autem neque est congregatio neque segregatio. Empedocles vero dicebat sex esse elementa, quorum duo sunt moventia, scilicet amicitia et lis, et quatuor mobilia, scilicet terra et aqua et aër et ignis. Anaxagoras autem et Leucippus et Democritus dicebant elementa esse infinita. Sed Anaxagoras ponebat ea esse corpora consimilium partium, quorum totum et pars habent idem nomen, ut caro et medulla et lignum. Democritus autem { p. 6} et Leucippus dixerunt ea esse corpora infinita in numero et in figuris, et quod corpora composita ex hiis diversificantur secundum diversitatem illarum partium aut propter figuram aut propter situm aut propter ordinem.}

\end{document}

The following is setting spacing to 1.5. More than that might look wrong, but without having looked at many Arabic pages, it is really difficult for me to judge what looks odd, wrong, or anything else.

revised image

  • thanks jon. That's a good idea and it is an improvement, but the spacing is still a little uneven (again lines 2, 7, and 10). Or -- I was just looking at it again -- does it only seem to be uneven? Is there any way to check? – ClintEastwood Jul 30 '13 at 21:09
  • no, I just checked it amateurishly with a grid in Adobe Acrobat. it is uneven. – ClintEastwood Jul 30 '13 at 21:23
  • @ClintEastwood -- Well I hope it is at least somewhat useful. Hopefully someone who knows what they are doing and knows Arabic will (one day) provide a better answer. – jon Aug 22 '13 at 20:22
4

Today I returned to this question which I could not previously solve to my full satisfaction. But today, while exploring once more barbara beeton's suggestion in her very first comment, I could find a solution.

Setting the value of \lineskiplimit to -\maxdimen forces LaTeX to adopt a single fixed line height throughout the document. On this basis, then, I can increase the line height of a given paragraph through changing the value of \baselinestretch, for example: \renewcommand{\baselinestretch}{1.50}\normalsize.

However, the Latin text underneath the quotation in my example would also have the same increased line height (which would be too high for Latin text). So I turned my command \aq (which before consisted of one \blockquote command for one block quote) into a command \aqq (which now consist of two \blockquote commands for two blockquotes to which I can apply \baselinestretch individually with a reduced space between them).

This is sofar the best solution to my issue. I will have to see how it turns out in the end. When I apply it to my entire document. But the particular question seems to be more or less answered now. A grid in Adobe Acrobat with the height of 20,33 pt confirms this:

enter image description here

MWE:

% !TEX TS-program = lualatex
\documentclass[paper=a4,fontsize=11pt,DIV=16]{scrartcl}

\usepackage{fontspec}
    \setmainfont[Ligatures=TeX]{Times New Roman}
\newfontfamily\arabicfont[Script=Arabic,Numbers=Arabic]{Amiri}

\usepackage{csquotes}
\newcommand{\arabtext}[1]   % Arabic inside LTR
    {\bgroup\luatextextdir TRT\arabicfont #1\egroup}
\newcommand{\aq}[2] %
    {\blockquote{\arabtext{#1\hfill}\\{#2}}}

% The magic begins here:
\lineskiplimit=-\maxdimen
\newcommand{\myvariablelineheight}[1]%
    {\renewcommand{\baselinestretch}{#1}\normalsize}
\newcommand{\aqq}[2] %
    {\blockquote{\myvariablelineheight{1.5}\arabtext{#1\hfill}}\vspace{-2em}\blockquote{#2}}

\begin{document}

\aq{وأمّا مَنْ جعل العناصر والأسطقسّات أكثر من واحد مثل ابن دقليس وأنكساغورش ولوقيس وديمقراطيس فإنّه يلزمهم أ. يقولوا إنّ الكون هو غير الاستحالة لأنّه يجب أن يكون الكون باجتماع الأسطقسّات والفساد بافتراقها والاستحالة شئ غي. الاجتماع والافتراق. فأمّا ابن دقليس فإنه كان يقول إنّ الأسطقسّات ستّة اثنان محرّكان وهما العداوة والمحبّة وأربعة متحرّك. وهى الأرض والماء والهواء والنار. وأمّا أنكساغورش ولوقيس وديمقراطيس فإنّهم كانوا يقولون إنّ الأسطقسّات غير متناهية. وأمّا أنكساغورش فكان يضع التى بهذه الصفة هي الأجسام المتشابهة الأجزاء وهى التى يُسَمَّى الكلّ منها والجزء باسم واح. بعينه مثل اللحم والمخّ والخشب. وأمّا ديمقراطس ولو قيس فإنّهما يريان أنّ التى بهذه الصفة هي أجسام غير متجزّئة وأنّها غي. متناهية فى عددها وأشكالها وأنّ الأجسام المركّبة من هذه إنّما تختلف لمكان اختلاف الأجزاء التى تتركّب منها من قبل ثلاث. أشياء : الشكل والوضع والترتيب.}
{Facientes autem elementa esse plura uno, ut Empedocles et Anaxagoras et Leucippus et Democritus, necesse est eis dicere generationem esse aliam ab alteratione. Generatio enim fit per congregationem elementorum et corruptio per segregationem eorum; alteratio autem neque est congregatio neque segregatio. Empedocles vero dicebat sex esse elementa, quorum duo sunt moventia, scilicet amicitia et lis, et quatuor mobilia, scilicet terra et aqua et aër et ignis. Anaxagoras autem et Leucippus et Democritus dicebant elementa esse infinita. Sed Anaxagoras ponebat ea esse corpora consimilium partium, quorum totum et pars habent idem nomen, ut caro et medulla et lignum. Democritus autem { p. 6} et Leucippus dixerunt ea esse corpora infinita in numero et in figuris, et quod corpora composita ex hiis diversificantur secundum diversitatem illarum partium aut propter figuram aut propter situm aut propter ordinem.}

\aqq{وأمّا مَنْ جعل العناصر والأسطقسّات أكثر من واحد مثل ابن دقليس وأنكساغورش ولوقيس وديمقراطيس فإنّه يلزمهم أ. يقولوا إنّ الكون هو غير الاستحالة لأنّه يجب أن يكون الكون باجتماع الأسطقسّات والفساد بافتراقها والاستحالة شئ غي. الاجتماع والافتراق. فأمّا ابن دقليس فإنه كان يقول إنّ الأسطقسّات ستّة اثنان محرّكان وهما العداوة والمحبّة وأربعة متحرّك. وهى الأرض والماء والهواء والنار. وأمّا أنكساغورش ولوقيس وديمقراطيس فإنّهم كانوا يقولون إنّ الأسطقسّات غير متناهية. وأمّا أنكساغورش فكان يضع التى بهذه الصفة هي الأجسام المتشابهة الأجزاء وهى التى يُسَمَّى الكلّ منها والجزء باسم واح. بعينه مثل اللحم والمخّ والخشب. وأمّا ديمقراطس ولو قيس فإنّهما يريان أنّ التى بهذه الصفة هي أجسام غير متجزّئة وأنّها غي. متناهية فى عددها وأشكالها وأنّ الأجسام المركّبة من هذه إنّما تختلف لمكان اختلاف الأجزاء التى تتركّب منها من قبل ثلاث. أشياء : الشكل والوضع والترتيب.}
{Facientes autem elementa esse plura uno, ut Empedocles et Anaxagoras et Leucippus et Democritus, necesse est eis dicere generationem esse aliam ab alteratione. Generatio enim fit per congregationem elementorum et corruptio per segregationem eorum; alteratio autem neque est congregatio neque segregatio. Empedocles vero dicebat sex esse elementa, quorum duo sunt moventia, scilicet amicitia et lis, et quatuor mobilia, scilicet terra et aqua et aër et ignis. Anaxagoras autem et Leucippus et Democritus dicebant elementa esse infinita. Sed Anaxagoras ponebat ea esse corpora consimilium partium, quorum totum et pars habent idem nomen, ut caro et medulla et lignum. Democritus autem { p. 6} et Leucippus dixerunt ea esse corpora infinita in numero et in figuris, et quod corpora composita ex hiis diversificantur secundum diversitatem illarum partium aut propter figuram aut propter situm aut propter ordinem.}

\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.