
Ich versuche, in meinem Hauptdokument den Zeilenabstand auf anderthalbfachen Abstand einzustellen und für eingerückte Zitate einfachen Abstand zu verwenden.
Ich habe bemerkt, dass eine gute Möglichkeit dazu vorgeschlagen wurde inWie gestaltet man Blockzitate?, wenn ich dies jedoch auf ein eingerücktes Zitat innerhalb eines Absatzes anwenden möchte, wird der einfache Zeilenabstand auf den vorangehenden Text angewendet:
Welcher Mechanismus führt zuvor zu dem fehlerhaften einzelnen Leerzeichen und wie kann dieser korrigiert werden?
\lipsum[66]
Eine Problemumgehung besteht darin, zwischen dem ersten und einen Zeilenumbruch einzufügen \begin{quote}
. Dies ist jedoch semantisch „falsch“, da sie zum selben Absatz gehören sollten.
MWE:
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\usepackage{etoolbox}
\onehalfspacing
\AtBeginEnvironment{quote}{\singlespacing}
\begin{document}
\lipsum[66]
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\end{document}
Antwort1
\onehalfspacing
Manche Einstellungen in TeX und LaTeX gelten für den gesamten Absatz, der mit und eingestellte Zeilenabstand \singlespacing
ist eine solche Einstellung. Normalerweise wird der Absatz mit den am Absatzende aktiven Einstellungen gesetzt.
Intern quote
wird es als implementiert \list
, das an einer Stelle aufruft, \par
um einen neuen Absatz für die Liste zu beginnen.
Mit dem Patch wird der betreffende Code dann im Wesentlichen ausgeführt
\lipsum[66]
{\singlespace\list...\endlist}
wobei \list
ein \par
Aufruf enthalten ist. Das bedeutet, dass LaTeX eine ähnliche Situation sieht wie die folgende
\lipsum[66]{\singlespace\par}
Hier wird der Absatz beendet und der gesamte Absatz mit aktiver Zeilenabstandseinstellung gesetzt.an diesem Punkt. Der gesamte Absatz wird also mit einfachem Zeilenabstand gesetzt.
Das ist eindeutig nicht das, was wir wollen. Eine Lösung wäre, den Absatz manuell zu beenden, bevor Sie zu quote
(das haben Sie bereits in der Frage gefunden) übergehen. Wenn sich das semantisch falsch anfühlt, können Sie das \par
(das quote
ohnehin ausgeführt wird) etwas früher erzwingen, indem Sie es in den Patch aufnehmen
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\onehalfspacing
\AtBeginEnvironment{quote}{\par\singlespacing}
\begin{document}
\lipsum[66]
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\lipsum[66]
\end{document}
Da Sie laden, csquotes
empfehle ich Ihnen, tatsächlich eine seiner Umgebungen anstelle der Standardumgebung zu verwenden quote
. Wir können dann sein Verhalten wie in vorgeschlagen csquotes.cfg
und gezeigt ändernmeine AntwortZuWie ändere ich die Schriftgröße eines csquotes-Zitats?
Für die semantisch schönere Lösung müssen wir die interne Implementierung von \singlespacing
als Einstellung verwenden \setstretch {\setspace@singlespace}
, um die durch eingeführte Leerzeichenkorrektur zu vermeiden \singlespacing
.
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{setspace}
\onehalfspacing
\makeatletter
\newenvironment{singlequote}
{\quote\setstretch{\setspace@singlespace}}
{\endquote}
\makeatother
\SetBlockEnvironment{singlequote}
\usepackage{lipsum}
\begin{document}
\lipsum[66]
\begin{displayquote}
\lipsum[75]
\end{displayquote}
\lipsum[66]
\end{document}
Antwort2
Wenn ich Ihren Code ohne Änderungen an den Abständen ausprobiere, hat das Anführungszeichen in der Ausgabe vor und nach dem Anführungszeichen eine leere Zeile. Es sieht also so aus, als ob es sich um eine Zwischenzeile zwischen den beiden handelt \lipsum[66]
.
Wenn Sie möchten, dass in der Ausgabe vor dem Anführungszeichen kein zusätzliches Leerzeichen angezeigt wird, fügen Sie davor ein Leerzeichen ein. Zum Beispiel:
% spacingpob.tex SE 569716
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\usepackage{etoolbox}
%\onehalfspacing
%\AtBeginEnvironment{quote}{\singlespacing}
%\AtBeginEnvironment{quote}{\onehalfspacing\singlespacing}
\begin{document}
\lipsum[66]
\vspace{-0.6\baselineskip}
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\end{document}
Ich denke, man muss unterscheiden zwischen dem Nachdenken über dieSemantikim LaTeX gegenüber dem in der Ausgabe.