我正在排版一本简单的歌曲集,并希望一些歌曲显示在两列中(我使用multicol
包)。但是,我想避免在节内插入分栏符。如果有类似samecol
环境的东西就太好了。
我尝试应用来自防止多列索引中的列中断,但没有得到预期的结果。
如有任何建议我将不胜感激。
答案1
我在寻找其他内容时偶然发现了答案。为了防止节内的分栏,我用\\*
而不是来标记行尾\\
。例如:
\begin{multicols}{2}
\begin{verse}
I heard, I heard, the old man say,\\*
John Kanaka-naka tu-lai-ay!\\*
Today, today is a holiday,\\*
John Kanaka-naka tu-lai-ay!
Tu-lai-ay, Oh! Tu-lai-ay!\\*
John Kanaka-naka tu-lai-ay!
\end{verse}
\end{multicols}
我意识到这并不能解决防止列中断的一般问题,但却完全满足了我的需求。
答案2
我建议你看看需要空间包及其宏\Needspace{}
。应使用需要保持在一起的行数(以 的倍数表示)来调用此宏\baselineskip
。因此,\Needspace{5\baselineskip}
将在节开始前强制分栏(如果需要)以将接下来的五行保持在一起。请注意,它只能在段落(节)之间使用。
答案3
\linewidth
我找到了一个适合我的解决方案,尽管在不同情况下可能需要调整需要乘以的因子:
放
\newenvironment{stanza}
{\begin{minipage}{1.1\linewidth} \begin{verse}}
{\end{verse} \end{minipage}}
在序言中,并使用stanza
环境来处理麻烦的诗节。