Korrekter Zeilenabstand beim Ändern der Schriftgröße, ohne das Ende des Absatzes zu verursachen

Korrekter Zeilenabstand beim Ändern der Schriftgröße, ohne das Ende des Absatzes zu verursachen

Betrachten Sie den folgenden Code:

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]%
\begingroup%
\tiny\color{red}%
\lipsum[2]%
\endgroup%
\lipsum[3]%
\end{document}

Das Ergebnis ist folgendes:


Problem


Mein Problem ist, dass ich den Zeilenabstand für den Textteil mit der kleinsten Größe neu berechnen lassen möchte. Dies ließe sich erreichen, indem man \parin der Gruppe Folgendes hinzufügt:

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]%
\begingroup%
\tiny\color{red}%
\lipsum[2]%
\par%
\endgroup%
\lipsum[3]%
\end{document}

was nun folgendes ergibt:


Par


was besser ist, aber ich möchte im selben Absatz bleiben und einen Zeilenumbruch vermeiden.


FRAGE:Wie kann man bei Text in winziger Schriftart einen kleinen Zeilenabstand erzielen, ohne dass es zu einem Absatzende und einem Zeilenumbruch kommt? (Ich hätte gern eine Lösung, die mit jeder Schriftgröße kompatibel ist.)

Antwort1

Sie können die Position des Endes des kleinen Textes aufzeichnen und dann zurückgehen, um den großen Text an dieser Position zu beginnen. Dies erfordert zwei Durchläufe.

\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\makeatletter
\begingroup%
\tiny\color{red}%
aaa \lipsum[2]%
{\normalsize\strut}%
\pdfsavepos\write\@auxout{\gdef\string\wdA{\the\pdflastxpos}}
\par%
\endgroup
\nopagebreak\kern-\baselineskip
\noindent\pdfsavepos\write\@auxout{\gdef\string\wdB{\the\pdflastxpos}}
\ifx\wdA\undefined\else 
\kern\numexpr\wdA-\wdB\relax sp\fi
\lipsum[3]%
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen