Seite 1 von 1

Ungewollter zusätzlicher Abstand bei {\raggedright\tiny ...}

Verfasst: Mi 6. Nov 2019, 16:32
von Blumentopf
Hallo,

mir ist aufgefallen, dass bei einer gewissen Konstellation ein zusätzlicher Abstand vor der letzten Zeile eingefügt wird und ich weiß nicht wieso. Ursprünglich ist mir dies aufgefallen, als ich bei scrlttr2 das location Feld mit Text aus der KOMA-Variablen frombank befüllt habe. Das Problem ist aber wohl nicht auf KOMA-Script zurückzuführen und ich habe ein allgemeineres Beispiel gefunden. Das Minimalbeispiel füge ich ans Ende des Posts, da es etwas länglich ist aufgrund der vielen Fallbeispiele.

Meine Ausgangssituation war ursprünglich Test 5a. Warum gibt es hier den Abstand vor der letzten Zeile? Und warum verschwindet der, wenn man wie in Test 5b auch in der letzten Zeile ein \\ setzt? (Der Abstand auf das darauffolgende scheint sich dabei zu verringern.)

Interessanterweise gibt es das Problem nicht, wenn man nicht tiny verwendet (Test 4a und 4b). Das Problem gibt es auch, wenn man \centering statt \raggedright verwendet.

Außerhalb einer { ... } Umgebung gibt es das Problem nicht (Test 10).

Kann mir das zufällig jemand erklären? Ist es ein Bug oder ein Feature? Und wie bekomme ich es hin, dass kein großer Abstand gesetzt wird?

(Ich wollte ursprünglich in besagtem location Feld etwas in normal großem Text setzen und darunter noch die Bankverbindung in {\footnotesize \usekomavar{frombank}}.)

Liebe Grüße

Blumentopf
\documentclass[a4paper,%
               11pt,%
               version=last]{scrartcl}

\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\begin{document}

Test 1:\\
ABC\\
ABC\\
ABC
\\

{%
    Test 2:\\
    ABC\\
    ABC\\
    ABC%
}
\\


{%
    \tiny
    Test 3a:\\
    ABC\\
    ABC\\
    ABC%
}
\\

{%
    \tiny
    Test 3b:

    ABC

    ABC

    ABC%
}
\\

{%
    \raggedright
    Test 4a:\\
    ABC\\
    ABC\\
    ABC%
}
\\

{%
    \raggedright
    Test 4b:\\
    ABC\\
    ABC\\
    ABC\\
}

{%
    \raggedright
    \tiny
    Test 5a:\\
    ABC\\
    ABC\\
    ABC%
}
\\

{%
    \raggedright
    \tiny
    Test 5b:\\
    ABC\\
    ABC\\
    ABC\\
}

{%
    \centering
    Test 6:\\
    ABC\\
    ABC\\
    ABC%
}
\\

{%
    \centering
    \tiny
    Test 7:\\
    ABC\\
    ABC\\
    ABC%
}
\\

\clearpage

{%
    \centering
    Test 8:\\
    ABC\\
    ABC\\
    ABC\\
}

{%
    \centering
    \tiny
    Test 9:\\
    ABC\\
    ABC\\
    ABC\\
}

\tiny
\raggedright
Test 10:\\
ABC\\
ABC\\
ABC

\end{document}

Verfasst: Mi 6. Nov 2019, 16:57
von Gast
Da fehlen die Absatzenden.

Verfasst: Mi 6. Nov 2019, 17:14
von esdd
Zusätzlich kannst Du auch noch das hier lesen: https://texwelt.de/fragen/1849/was-ist- ... alsch/1850

Verfasst: Fr 8. Nov 2019, 17:43
von Blumentopf
Vielen Dank euch beiden :). Jetzt klappt's!

Eine Frage zu einem Beispiel aus einem der Links:
\documentclass{article}
\usepackage{blindtext}
\newcommand{\wichtig}[1]{{\large #1}}
\newcommand{\wichtigebemerkung}[1]{\par\wichtig{#1\par}}
\begin{document}
\wichtigebemerkung{\blindtext}
\end{document}
Warum werden bei der Definition von \wichtig doppelte geschweifte Klammern verwendet?
% Also, warum
\newcommand{\wichtig}[1]{{\large #1}}

% statt nur
\newcommand{\wichtig}[1]{\large #1}
Beenden die einfachen Klammern im 2. Fall nicht auch die Gruppe?

Verfasst: Fr 8. Nov 2019, 18:06
von MoeWe
Die äußeren geschweiften Klammern in \newcommand gehören hier quasi zur Syntax von \newcommand und werden der Makrodefinition nicht mit zugeschlagen.

Prinzipiell funktioniert ein Makro
\newcommand*{\foo}[1]{<Code mit #1>}
so, dass alle Vorkommen von \foo{<Irgendetwas>} im Dokument von TeX mit <Code mit #1> ersetzt werden, wobei #1 durch <Irgendetwas> ersetzt wird. Die äußeren Klammern zeigen dabei eigentlich immer nur an, was genau zum Argument des Makros gehört, sie werden nicht selbst als Ersetzung verwendet. Also wird z.B.
\newcommand{\wichtigFALSCH}[1]{\large #1}
in
lorem \wichtigFALSCH{ipsum} dolor
zu
lorem \large ipsum dolor
denn der <Code mit #1> ist hier \large #1.
\newcommand{\wichtigRICHTIG}[1]{{\large #1}}
wird in
lorem \wichtigRICHTIG{ipsum} dolor
zu
lorem {\large ipsum} dolor
denn da ist <Code mit #1> wegen der doppelten Klammern {\large #1}.
\documentclass{article}
\usepackage{xcolor}
\newcommand{\wichtigFALSCH}[1]{\color{red} #1}
\newcommand{\wichtigRICHTIG}[1]{{\color{green} #1}}


\begin{document}
Lorem \wichtigRICHTIG{Ipsum} Dolor

Lorem \wichtigFALSCH{Ipsum} Dolor
\end{document}

Verfasst: Fr 8. Nov 2019, 19:53
von Blumentopf
Ah, vielen Dank :).

Ich hake das Thema mal als beantwortet ab.