如何减少段落内的行距

如何减少段落内的行距

我想减少段落中某些句子的行距,比如下面蓝色的句子,我该怎么做?

\documentclass{article}

\usepackage{setspace,lipsum}
\setstretch{1.2}
\usepackage{xcolor}

\begin{document}

\lipsum[1] {\color{blue}\lipsum[2]}

\lipsum[1]

\end{document}

在此处输入图片描述

答案1

任务不明确:当蓝色文本开始出现在一行内时该怎么办?

问题在于 TeX在处理\baselineskip时使用整个段落的值。\par

您的示例可以使用两个段落来解决,第一个段落是黑色文本,第二个段落是蓝色文本。第一个段落以不带伸缩性的形式完成\parfillskip,第二个段落以 开头\noindent并带有 修改\baselineskip

\documentclass{article}

\usepackage{setspace,lipsum}
\setstretch{1.2}
\usepackage{xcolor}

\def\endpar{{\parfillskip=0pt \par}
   \smallskip\baselineskip=10pt \lineskiplimit=-10pt \noindent}

\begin{document}

\lipsum[1] {\endpar\color{blue}\lipsum[2]\par}

\lipsum[1]

\end{document}

答案2

如果蓝色部分之前的部分不够长,则此方法不起作用,因为它可能会在最后一行产生较大的单词间空格。

这个想法类似于wipet 的但是我使用了适当的 LaTeX 环境,这样就无需进行明确的说明\par\color而且无需猜测就能获得正确的顶行间距。

\documentclass{article}

\usepackage{setspace}
\usepackage{xcolor}

\usepackage{lipsum}% for the example

\setstretch{1.2}

\newenvironment{innerpar}[1]{%
  {\unskip\strut\parfillskip=0pt \par}%
  \vspace*{0.2\baselineskip}%
  \setstretch{1}\noindent\ignorespaces\color{#1}%
}{\par}

\begin{document}

\lipsum[1]
\begin{innerpar}{blue!60}
\lipsum[2]
\end{innerpar}

\lipsum[1]

\end{document}

在此处输入图片描述

相关内容