gmverse 导致页面过早分页

gmverse 导致页面过早分页

当我调用该gmverse包时,有时(我无法找到,具体取决于哪个标准)在节后出现太多早期的分页符,并且它会在某些页面中用非常夸张的空白打破一般的 LaTeX 垂直空间。

下面我给出的例子不是真正的 MWE,因为我无法分离出最小的情况。有很多情况,以下是我能产生的“最简约”的情况。如果我添加一些行或删除一些单词,垂直空间可能会在我尝试修复的位置消失,但它会在文档的后面出现:

\documentclass[a5paper,10pt]{book}
\usepackage{verse}
\usepackage{gmverse}
\usepackage{geometry}
\usepackage{lipsum}

\geometry{a5paper}
\begin{document}
\poemtitle{First title}
\begin{verse}
a\\
b\\
c\\
d

a\\
b\\
c\\
d
\end{verse}

\lipsum[1-2]

\poemtitle{second title}
\begin{verse}
a\\
a\\
a
\end{verse}
\end{document}

我得到了这个渲染:

渲染

因此,gmverse全局破坏了 LaTeX 精细的垂直空间管理,我只需要它用于方括号和右对齐的法语悬挂(如

因此,也可以这样:

如果没有包裹我怎样才能获得法式悬挂gmverse

或者

修复垂直空间管理gmverse

答案1

我认为这gmverse太过聪明了。

\documentclass[a5paper,10pt]{book}
\usepackage{verse}
\usepackage{gmverse}
\usepackage{geometry}
\usepackage{xpatch}
\usepackage{lipsum}

\geometry{a5paper}

\AtBeginDocument{%
  \xpatchcmd{\verse}
    {\penalty10000 \vfil\penalty\betweenstanzaspenalty\vfilneg\relax}
    {\penalty\betweenstanzaspenalty}
    {}{}%
}

\begin{document}

\poemtitle{First title}
\begin{verse}
a\\
b\\
c\\
d

a\\
b\\
c\\
d
\end{verse}

\lipsum[1-2]

\poemtitle{second title}
\begin{verse}
a\\
a\\
a
\end{verse}
\end{document}

读了我删除的那段代码后,我的印象是该包仅用于打印诗歌。使用和的技巧\vfil\vfilneg在 TeXbook 中描述)很难“关闭”,而且确实在您展示的示例中没有关闭。

在此处输入图片描述

答案2

我尝试了您的 MWE,但没有使用verse包,只是gmverse。它的排版似乎与 @egreg 的答案类似,但有一个小问题,即它说\poemtitle未定义,标题在常规字体中左对齐。也许你可以只使用gmverse和 defunine 你自己\poemtitle

相关内容