Ich habe eine einfache Klasse definiert
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mycustom}[2019/03/06 My custom class]
\LoadClass{article}
\RequirePackage{setspace}
\newcommand{\summary}{
\begingroup
\setlength{\parindent}{0cm}
\onehalfspacing
}
\newcommand{\ensummary}{
\endgroup
}
\endinput
Vorausgesetzt, ich habe eine einfache LaTeX-Datei erstellt, definiert wie:
\documentclass{mycustom}
\usepackage{lipsum}
\begin{document}
\lipsum[1][1-3]
\summary
\lipsum[1][1-4]\par
\ensummary
\lipsum[1][1-3]
\end{document}
Mir ist aufgefallen, dass der Abstand von eineinhalb einfach nicht funktioniert, wenn ich ihn nicht par
innerhalb des hinzufüge . Ich würde gerne wissen, wie dieses Verhalten zustande kommt und ob es eine Möglichkeit gibt, es zu entfernen und das gleiche Verhalten (Abstand von eineinhalb innerhalb des ) beizubehalten. Alle Verbesserungsvorschläge sind herzlich willkommen.\summary
\par
\summary
Dies ist der Absatz, in dem ich hinzufüge\par
Dies ist der Absatz ohne\par
Achten Sie auf den Zeilenabstand im Absatz in der Mitte.
Antwort1
Sie sollten die Umgebungsdefinition mit beenden, \par
damit sie im Gültigkeitsbereich der Zeilenabstandsänderung liegt. Umgekehrt sollten SieStartdie Umgebung mit, \par
da sonst der vorhergehende Text betroffen sein könnte (versuchen Sie es mit dem folgenden Beispiel ohne den ersten \par
in der Definition).
Wie in den Kommentaren angemerkt, sollte dies eine Umgebung sein (Latex verhindert normalerweise die Definition von Befehlen, deren Namen mit beginnen \end...
). In diesem Fall \begingroup
ist das explizite Attribut nicht erforderlich. Außerdem \newline
beendet es nie einen Absatz, sondern erzwingt nur einen Zeilenumbruch.
\documentclass{article}
\usepackage{setspace,lipsum}
\newenvironment{summary}
{\par\setlength{\parindent}{0cm}\onehalfspacing}
{\par}
\begin{document}
\lipsum[1][1-3]
\begin{summary}
\lipsum[1][1-4]
\end{summary}
\lipsum[1][1-3]
\end{document}