[texhax] Stretchable line skip in scrartcl?

Aleksandar Zec zealeksanman at gmail.com
Wed May 24 11:50:34 CEST 2017


On 18 May 2017 at 17:47, Ulrike Fischer <news3 at nililand.de> wrote:
> Am Wed, 17 May 2017 19:13:38 +0000 schrieb Aleksandar Zec:
>
>> Hi all,
>>
>> I have successfully used many times this method, provided by Heiko
>> Oberdiek, to stretch line skip in cases of emergency:
>> http://tug.org/pipermail/texhax/2010-October/015736.html
>
>
>> However, it doesn't work with koma classes, say scrartcl.
>
> KOMA redefines \baselinestretch from "nothing" to 1.
>
> This means that in the code somewhere the calculation
>
> \baselineskip= 1\baselineskip
>
> is done. And it this case TeX force the glue (with stretchable
> space) into a dimen (without it). You would get the same effect with
> article, if you would add a \renewcommand\baselinestretch{1} to your
> document.
>
> You could try \renewcommand\baselinestretch{}, but it could fail if
> KOMA uses the command in places where a number is expected. Or you
> could use \glueexpr in \set at fontsize:
>
> \RequirePackage{etoolbox}
> \makeatletter
>
> \patchcmd\set at fontsize{\baselineskip\f at linespread\baselineskip}{%
>  \ifdefempty{\f at linespread}%
>  {\baselineskip=\baselineskip}%
>  {\baselineskip=\glueexpr \baselineskip *
> \f at linespread\relax}}{}{\fail}
>
> \let\org at set@fontsize\set at fontsize
> \def\set at fontsize#1#2#3{%
>   \@defaultunits\@tempskipa#3pt\relax\@nnil
>   \advance\@tempskipa by 0pt\@plus 1pt\relax
>   %\advance\@tempskipa by 0pt\@plus .2\@tempskipa\relax
>   \expandafter\set at fontsize@i\the\@tempskipa\@nil{#1}{#2}%
> }
> \def\set at fontsize@i#1\@nil#2#3{%
>   \org at set@fontsize{#2}{#3}{#1}%
> }
> \makeatother
>
> \documentclass[a4paper,11pt]{scrartcl}
> \usepackage[english]{babel}
> \usepackage{blindtext}
> \begin{document}
>
> \flushbottom
> \blindtext\par
> \blindtext\par
> \blindtext\par
> \blindtext\par
>
> \rule{1cm}{10cm} %to force a page break
>
> \blindtext\par
> \blindtext\par
> \end{document}

Ulrike, I finally tested this solution in all circumstances, and it
works like a charm.

Thank you for your explanations. Every your mail improves
understanding and knowledge.

AlexZ


More information about the texhax mailing list