
Рассмотрим следующий код:
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]%
\begingroup%
\tiny\color{red}%
\lipsum[2]%
\endgroup%
\lipsum[3]%
\end{document}
Что дает следующий результат:
Проблема в том, что я хотел бы, чтобы межстрочный интервал был пересчитан для части текста с крошечным размером. Для этого можно добавить \par
в группу:
\documentclass[12pt]{article}
\usepackage{xcolor}
\usepackage{lipsum}
\begin{document}
\lipsum[1]%
\begingroup%
\tiny\color{red}%
\lipsum[2]%
\par%
\endgroup%
\lipsum[3]%
\end{document}
который теперь производит следующее:
что уже лучше, но я бы хотел остаться в том же абзаце и избежать переноса строки.
ВОПРОС:Как добиться крошечного межстрочного интервала для текста, написанного мелким шрифтом, не создавая при этом конца абзаца и переноса строки? (Мне бы хотелось найти решение, совместимое с любым размером шрифта).
решение1
Вы можете записать положение конца небольшого текста, а затем вернуться назад, чтобы начать большой текст с этой позиции, что займет два прохода.
\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}