我想在自定义命令中本地更改行距。但是,finalrenewcommand
会覆盖自定义命令中的行距。我该如何在本地设置行距并防止其被覆盖?
我知道设置行距的其他方法,但由于我正在修改不属于我的代码,所以我想坚持使用baselinestretch
。
测试.sty:
\xdef\@singlespaced{1}
\newcommand\lalala{
\let\baselinestretch\@singlespaced{
sdfhjsdkfh sfjkhsdjfhs sdfkhskdjfhs dfksdhfjkshdf jkhsdkfjhsdkjf hskjdfhksjfh skjfh skjdfhksjf hskjdfhskjdfh skjfh skjfh skjdfh skjdhf skdf
}
}
\renewcommand{\baselinestretch}{2}
主要.tex:
\documentclass{report}
\usepackage{test}
\begin{document}
\lalala
\end{document}
答案1
更改后需要设置文本大小\baselinestretch
才能生效。要使更改成为本地更改,您应该将其里面组内,而不是组前。由于\baselinestretch
总是影响整个段落,因此您需要将段落内容\lalala
与周围文本分开。
\documentclass{report}
\usepackage{lipsum}
\newcommand\lalala{%
\par
{\def\baselinestretch{1}\normalsize
sdfhjsdkfh sfjkhsdjfhs sdfkhskdjfhs dfksdhfjkshdf jkhsdkfjhsdkjf hskjdfhksjfh skjfh skjdfhksjf hskjdfhskjdfh skjfh skjfh skjdfh skjdhf skdf%
\par
}%
}
\renewcommand{\baselinestretch}{2}
\begin{document}
\lipsum[1]
\lalala
\lipsum[2]
\end{document}