Corrija o espaçamento entre linhas ao alterar o tamanho da fonte sem causar o final do parágrafo

Corrija o espaçamento entre linhas ao alterar o tamanho da fonte sem causar o final do parágrafo

Considere o seguinte código:

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

O que produz a seguinte saída:


problema


O problema que tenho é que gostaria que o espaçamento entre linhas fosse recalculado para a parte do texto com tamanho minúsculo. Uma maneira de conseguir isso seria adicionar um \parno grupo:

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

que agora produz o seguinte:


par


o que é melhor, mas gostaria de permanecer no mesmo parágrafo e evitar quebra de linha.


PERGUNTA:Como obter um espaçamento minúsculo para o texto escrito em fonte minúscula sem causar final de parágrafo e quebra de linha? (Gostaria de uma solução que fosse compatível com qualquer tamanho de fonte).

Responder1

Você pode registrar a posição do final do texto pequeno e depois voltar para iniciar o texto grande nessa posição, são necessárias duas execuções.

\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}

insira a descrição da imagem aqui

informação relacionada