定义橡胶长度

定义橡胶长度

关于这个主题有很多相关问题,但我仍然不明白该机制是如何工作的。在下面的代码中:

\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}

相关内容