Laut der Dokumentation von Memoir, Kapitel 8.4.1, soll der Befehl \linenottooshort dafür sorgen, dass die letzte Zeile eines Absatzes nicht kürzer als eine optionale Länge (Standard 2em) ist. Ich erwarte also, dass der Befehl mir hilft, die Anzahl der Absätze mit kurzen letzten Zeilen zu reduzieren.
Allerdings liefert das erste MWE (ohne \linenottooshort) das in der Abbildung unten linke Ergebnis, während das zweite MWE (mit \linenottooshort) das rechte Ergebnis liefert, das hinsichtlich kurzer letzter Zeilen deutlich schlechter ist.
Ich vermute, dass der Text in der letzten Zeile des Beispiels rechts nicht kürzer als 2em sein dürfte. Aber \linenottooshort sollte Absätze doch nicht schlechter machen, als sie ohne es wären? Was ist hier los?
Links:
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\begin{document}
\blindtext
\end{document}
Rechts:
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\linenottooshort
\begin{document}
\blindtext
\end{document}
Antwort1
Die Position von \linenottooshort
ist falsch: Es müsste nach kommen \begin{document}
, da vorher memoir
die Seitenmaße noch nicht aktualisiert wurden.
Der Befehl führt auf jeden Fall zu anderen merkwürdigen Ergebnissen, da er falsch einstellt \@tempdima
, was den Wert ohne Vorankündigung ändern könnte, da es sich um ein Scratch-Längenregister handelt.
Wenn Sie sich den Wert \@tempdima
nach „doing“ \linenottooshort
in der Präambel ansehen, erhalten Sie 325,19989 pt. Nach „doing“ in der document
Umgebung beträgt der Wert 297,63295 pt.
Eine korrekte Definition wäre
\documentclass[11pt]{memoir}
\setlength{\textwidth}{120mm}
\setlength{\parindent}{0mm}
\usepackage{blindtext}
\makeatletter
\renewcommand*{\linenottooshort}[1][4em]{%
\@tempdima=\hsize
\advance\@tempdima -#1\relax
%\leftskip\z@skip % ???
%\rightskip\leftskip % ???
\begingroup\edef\x{\endgroup
\parfillskip=\the\@tempdima \@minus \the\@tempdima\relax
}\x
}
\makeatother
\AtBeginDocument{\linenottooshort}
\begin{document}
\blindtext
\end{document}
Beachten Sie, dass dies zu seltsamen Ergebnissen in oder Listen führen kann minipage
. \parbox
Ich bin mir nicht wirklich sicher, ob es nützlich ist.