
我需要一個具有不同字體大小的新環境,例如\large
.我正在做這樣的事情微量元素:
\documentclass{article}
\usepackage{lipsum} % dummy text
\usepackage{setspace} % for a 'forced' solution
\NewDocumentEnvironment{mynewenv}{}{\large}{}
\NewDocumentEnvironment{myotherenv}{}{\begin{spacing}{1}\large}{\end{spacing}}
\begin{document}
\begin{mynewenv}
\lipsum[1][1-4]
\lipsum[1][1-4]
\end{mynewenv}
Text outside environments and with normal size.
% 'forced' solution:
\begin{myotherenv}
\lipsum[1][1-4]
\lipsum[1][1-4]
\end{myotherenv}
\end{document}
似乎第二段的行間距與第一段不同,所以我認為我做錯了什麼。
最後兩段是試圖在setspace
包包的幫助下強制解決方案。它工作得很好,但正如我所說,我確信有些事情我沒有做得正確,並且必須有一個更簡單的解決方案。有什麼幫助嗎?
答案1
spacing
如果您查看by的定義,setspace.sty
您會發現(註釋已刪除)
\newenvironment{spacing}[1]{%
\par
\begingroup
\setstretch {#1}%
}{%
\restore@spacing
}
現在你看到了
\newcommand{\restore@spacing}{%
\par
\vskip \parskip
\vskip \baselineskip
\endgroup
\vskip -\parskip
\vskip -\baselineskip
}
\par
除了主要內容(即開頭和結尾)之外,您幾乎不需要包中的任何內容。
\NewDocumentEnvironment{mynewenv}{}{\par\large}{\par}
\par
最後到底是什麼原因呢?如果你沒有它,則在\large
排版段落之前結束的範圍,TeX 將使用\par
遇到時有效的基線間距,因此通常從\normalsize
.