Um Hurensöhne in der letzten Zeile eines Absatzes zu vermeiden, passe ich an parfillskip
:
\parfillskip 0pt plus 0.75\textwidth
Dies führt zwar zu schöneren Absätzen, streckt aber auch die Abschnittstitel ein wenig, wie Sie unten sehen können. Der erste Titel ist mit dem Standard parfillskip
, der zweite mit 0pt plus 0.75\textwidth
:
Wie kann ich meine parfillskip
Einstellung für Absätze beibehalten, aber nicht für Titel?
Dieser Code zeigt den Effekt für Text und Titel (Vorschau):
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\section{This is a section title}
\lipsum[1]
\section{This is a section title}
% Fill the last line of paragraphs for minimum 25%
\parfillskip 0pt plus 0.75\textwidth
\section{This is a section title}
\lipsum[1]
\end{document}
Antwort1
Der Abschnittstitel wird durch gesetzt \@sect
, wodurch der relevante Teil in einer Gruppe zusammengefasst wird. Am Ende wird hinzugefügt \@@par
, was das primitive ist \par
.
Daher können wir \@sect
(für nummerierte Abschnitte) und \@ssect
(für nicht nummerierte Abschnitte) sicher patchen:
\documentclass{article}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@sect}{\begingroup}{\begingroup\parfillskip=0pt plus 1fil\relax}{}{}
\patchcmd{\@ssect}{\begingroup}{\begingroup\parfillskip=0pt plus 1fil\relax}{}{}
\makeatother
\usepackage{lipsum}
\begin{document}
\section{This is a section title}
\lipsum[1]
% Fill the last line of paragraphs for minimum 25%
\parfillskip 0pt plus 0.75\textwidth
\section{This is a section title}
\lipsum[1]
\end{document}
Antwort2
Für die memoir
Klasse genügt es, der Präambel hinzuzufügen:
\setsecheadstyle{\Large\parfillskip=0pt plus 1fil}
Antwort3
Da Abschnittstitel auf keinen Fall mit rechtsbündigen Rändern formatiert werden sollten – obwohl die Standarddokumentklassen genau dies tun – sollten Sie dies \raggedright
in der Definition der Abschnittseinteilung deklarieren. Sobald Sie das getan haben, \parfillskip
ist es irrelevant.
Definieren Sie die Unterteilung nach Ihren Wünschen:
- mit Memoiren oder Koma oder einer anderen schönen Dokumentklasse;
- Verwenden Sie ein Paket wie Titlesec oder ein ähnliches.
- mit Unterteilung der Standard-Dokumentenklassen mittels
\@startsection
- oder, die meisten Hacker, Patch-Befehle wie
\@sect
Beispielsweise verwendet die Basisklasse „Artikel“
\newcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\bfseries}}
Ein Dokument-Setup könnte also \renewcommand
Folgendes enthalten, wobei \raggedright
das Argument „font-style“ eingefügt wird.
\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\raggedright\Large\bfseries}}