更改字體大小時正確的行距,不會導致段落結束

更改字體大小時正確的行距,不會導致段落結束

考慮以下程式碼:

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

產生以下輸出:


問題


我遇到的問題是我希望重新計算尺寸較小的文字部分的行距。實現此目的的一種方法是\par在群組中添加 a:

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

在此輸入影像描述

相關內容