更改普通文本的行距,但不更改表格或诗句的行距

更改普通文本的行距,但不更改表格或诗句的行距
\usepackage{setspace}
\doublespacing

我使用以上两行代码来更改文档中的间距。这会更改整个文档的间距。

我的要求是仅更改段落中的行距。我想保留versetable环境不变。我只想更改段落。我没有将段落放在任何环境中。我也需要这样做吗?

答案1

\documentclass{article}

\usepackage{etoolbox}
\usepackage[doublespacing]{setspace}

\AtBeginEnvironment{verse}{\singlespacing}
\AtBeginEnvironment{tabular}{\singlespacing}

\usepackage{lipsum}% just for blindtext

\begin{document}

\lipsum[1]

\begin{verse}
  \lipsum[1]
\end{verse}

\lipsum[1]

\begin{tabular}{p{10cm}}
  \lipsum[1]
\end{tabular}

\lipsum[1]

\end{document}

这将修补verse和环境,使其在开头tabular使用。环境不受其影响,因此不需要任何修补,但您可能希望使用。\singlespacingtable[doublespacing]tabular

输出的屏幕截图

答案2

要在本地更改文档中的行距,请使用包提供的singlespace, onehalfspace环境。例如:doublespacesetspace

\documentclass{article}

\usepackage{setspace}
\doublespacing

...

\begin{document}

...

\begin{singlespace}
  ...
\end{singlespace}

...

\end{document}

答案3

您可以重新定义versetabular环境以使它们成为单倍行距:

\let\oldtabular\tabular
\let\endoldtabular\endtabular
\renewenvironment{tabular}
   {\bgroup\singlespacing\oldtabular}%
   {\endoldtabular\egroup}
\let\oldverse\verse
\let\endoldverse\endverse
\renewenvironment{verse}
   {\bgroup\singlespacing\oldverse}%
   {\endoldverse\egroup}

相关内容