关于这个主题有很多相关问题,但我仍然不明白该机制是如何工作的。在下面的代码中:
\documentclass{article}
\usepackage[
paperwidth=30pc,%
paperheight=48pc,%
margin=6pc,%
]{geometry}
\usepackage{pgfornament}
\newcommand\divider{%
\par\bigskip\noindent\hfill\pgfornament[width=10pt]{6}\hfill\null\par\bigskip
}
\usepackage{lipsum}
\usepackage{blindtext}
\usepackage{quoting}
\usepackage[osf]{libertine}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
First line.
\begin{quoting}
\lipsum[4]
\end{quoting}
\divider
Last line
\end{document}
我应该如何定义之前的垂直空间,divider
使得的垂直间距divider
不会增加quoting
环境垂直间距的任何额外内容?(因此,我通常如何处理这个问题。)
答案1
您想要\addvspace{\bigskipamount}
的不是\bigskip
。 的目的\addvspace
恰恰在于在两个这样的连续规范之间添加最大的一个;所有列表(包括quoting
)都用 来添加它们周围的垂直间距\addvspace
。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[
paperwidth=30pc,%
paperheight=48pc,%
margin=6pc,%
]{geometry}
\usepackage[osf]{libertine}
\usepackage{quoting}
\usepackage{pgfornament}
\usepackage{lipsum}
\usepackage{blindtext}
\newcommand\divider{%
\par\addvspace{\bigskipamount}
\noindent\makebox[\textwidth]{\pgfornament[width=10pt]{6}}%
\par\addvspace{\bigskipamount}
}
\newcommand{\baddivider}{%
\par\bigskip\noindent\hfill\pgfornament[width=10pt]{6}\hfill\null\par\bigskip
}
\begin{document}
First line.
\begin{quoting}
\lipsum[4]
\end{quoting}
\divider
Last line
\clearpage
First line.
\begin{quoting}
\lipsum[4]
\end{quoting}
\baddivider
Last line
\end{document}
答案2
据我了解,您想纠正quoting
环境后的间距。一个简单但不通用的解决方案可能如下:
\documentclass{article}
\usepackage[
paperwidth=30pc,%
paperheight=48pc,%
margin=6pc,%
]{geometry}
\usepackage{pgfornament}
\newcommand\divider{%
\par\bigskip\noindent\hfill\pgfornament[width=10pt]{6}\hfill\null\par\bigskip
}
\usepackage{lipsum}
\usepackage{blindtext}
\usepackage{quoting}
\usepackage[osf]{libertine}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
First line.
\begin{quoting}
\lipsum[4]
\end{quoting}\unskip % here -- PS
\divider
Last line
\end{document}