更改字体大小时纠正行距,而不会导致段落结束

更改字体大小时纠正行距,而不会导致段落结束

考虑以下代码:

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

在此处输入图片描述

相关内容