我正在处理一个包含大量外部 Lilypond 文件的文档。这些文件的渲染效果非常好,并且(虽然使用起来有点麻烦)lilypond-book
足够智能,可以在主文档的可用宽度上渲染音乐系统,并在系统之间添加换行符(以及可能的分页符)。
我甚至可以覆盖 Lilypond 在系统之间使用的函数来告诉 Latex,如果可以帮助的话,我真的不希望在单个乐谱内有分页符:
\newcommand{\betweenLilyPondSystem}[1]{\linebreak\nopagebreak[3]}
这种方法非常适合将短乐谱放在一页上,但在某些情况下这根本行不通。有些乐谱太长,必须跨越两页或更多页。在这些情况下,如果乐谱从偶数页(左)开始并延伸到奇数页(右),对音乐家来说会容易得多。
我希望能够改变分页惩罚的权重,这样乐谱就会尽量停留在一页上,但从偶数页开始的乐谱就不必太在意(比如说\nopagebreak[1]
),而奇数页上的乐谱则会显得很在意(\nopagebreak[3]
甚至4
)。此外,如果能在即将超出的乐谱前插入某种页面清除功能,这样较长的乐谱就会始终从偶数页开始。
如何实现这一点?
答案1
您可以尝试使用命令\ifthispageodd{<true part>}{<false part>}
,它是 KOMA-Script 的一部分。它使用 .aux 文件中的标签,因此需要至少两次 LaTeX 传递才能运行。在您的情况下,它可能看起来像:
\ifthispageodd{\nopagebreak[3]}{\nopagebreak[4]}
然而,如果没有 MWE,就很难判断这是否真的有效。