避免詩節中的分頁

避免詩節中的分頁

我正在嘗試排版一些詩歌,但我想強制在節之間進行分頁,以避免在節內中斷。我搜尋了多種方法,如下面的範例所示,但它們似乎都不起作用。有沒有辦法做到這一點?

\documentclass[12pt]{scrartcl}
\usepackage[letterpaper,margin=1in]{geometry}
\setlength{\parskip}{12pt}

% try not to have a page break in the middle of a stanza
\widowpenalty=10000
\clubpenalty=10000
\linepenalty=400
  \raggedbottom

\begin{document}

\begin{verse}

Lorem \textbf{ipsum} dolor sit amet, \emph{consectetur}\\adipisicing
elit, sed do eiusmod\\tempor incididunt ut labore et\\dolore magna
aliqua. Ut enim

ad minim veniam, quis nostrud\\exercitation ullamco laboris\\nisi ut
aliquip ex ea commodo\\consequat. Donec\\gravida quis augue in
tincidunt.\\Ut pulvinar ac sapien venenatis dignissim.\\Fusce vulputate
congue dui, at dictum risus congue vel.\\Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

Lorem ipsum dolor sit amet,\\consectetur adipiscing elit.\\Sed
ullamcorper est in erat efficitur congue. Integer ullamcorper ac lorem
non maximus. Aliquam ut placerat nisl, eget euismod ante.

Sed ut perspiciatis\\unde omnis iste\\natus error sit\\voluptatem
accusantium.

Lorem \textbf{ipsum} dolor sit amet, \emph{consectetur}\\adipisicing
elit, sed do eiusmod\\tempor incididunt ut labore et\\dolore magna
aliqua. Ut enim

ad minim veniam, quis nostrud\\exercitation ullamco laboris\\nisi ut
aliquip ex ea commodo\\consequat. Donec\\gravida quis augue in
tincidunt.\\Ut pulvinar ac sapien venenatis dignissim.\\Fusce vulputate
congue dui, at dictum risus congue vel.\\Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

ad minim veniam, quis nostrud\\exercitation ullamco laboris\\nisi ut
aliquip ex ea commodo\\consequat. Donec\\gravida quis augue in
tincidunt.\\Ut pulvinar ac sapien venenatis dignissim.\\Fusce vulputate
congue dui, at dictum risus congue vel.\\Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

ad minim veniam, quis nostrud\\exercitation ullamco laboris\\nisi ut
aliquip ex ea commodo\\consequat. Donec\\gravida quis augue in
tincidunt.\\Ut pulvinar ac sapien venenatis dignissim.\\Fusce vulputate
congue dui, at dictum risus congue vel.\\Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.


\end{verse}

\end{document}

答案1

行和寡婦懲罰沒有效果,因為內部verse \\是內部的,\par所以每行都是 Tex 原始級別的一個單獨的段落,這些懲罰在其中運行。您可以使用\\*它來防止分頁:

請注意,此版本不會產生有關未定義頁面樣式的錯誤。

\documentclass[12pt]{scrartcl}
%\pagestyle{fancy}
\usepackage[letterpaper,margin=1in]{geometry}
\setlength{\parskip}{12pt}



\begin{document}

\begin{verse}

Lorem \textbf{ipsum} dolor sit amet, \emph{consectetur}\\*adipisicing
elit, sed do eiusmod\\*tempor incididunt ut labore et\\*dolore magna
aliqua. Ut enim

ad minim veniam, quis nostrud\\*exercitation ullamco laboris\\*nisi ut
aliquip ex ea commodo\\*consequat. Donec\\*gravida quis augue in
tincidunt.\\*Ut pulvinar ac sapien venenatis dignissim.\\*Fusce vulputate
congue dui, at dictum risus congue vel.\\*Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\*Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

Lorem ipsum dolor sit amet,\\*consectetur adipiscing elit.\\*Sed
ullamcorper est in erat efficitur congue. Integer ullamcorper ac lorem
non maximus. Aliquam ut placerat nisl, eget euismod ante.

Sed ut perspiciatis\\*unde omnis iste\\*natus error sit\\*voluptatem
accusantium.

Lorem \textbf{ipsum} dolor sit amet, \emph{consectetur}\\*adipisicing
elit, sed do eiusmod\\*tempor incididunt ut labore et\\*dolore magna
aliqua. Ut enim

ad minim veniam, quis nostrud\\*exercitation ullamco laboris\\*nisi ut
aliquip ex ea commodo\\*consequat. Donec\\*gravida quis augue in
tincidunt.\\*Ut pulvinar ac sapien venenatis dignissim.\\*Fusce vulputate
congue dui, at dictum risus congue vel.\\*Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\*Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

ad minim veniam, quis nostrud\\*exercitation ullamco laboris\\*nisi ut
aliquip ex ea commodo\\*consequat. Donec\\*gravida quis augue in
tincidunt.\\*Ut pulvinar ac sapien venenatis dignissim.\\*Fusce vulputate
congue dui, at dictum risus congue vel.\\*Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\*Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.

ad minim veniam, quis nostrud\\*exercitation ullamco laboris\\*nisi ut
aliquip ex ea commodo\\*consequat. Donec\\*gravida quis augue in
tincidunt.\\*Ut pulvinar ac sapien venenatis dignissim.\\*Fusce vulputate
congue dui, at dictum risus congue vel.\\*Vivamus rutrum commodo nunc,
sed elementum velit consectetur nec.\\*Aenean sit amet tellus non nisi
vulputate ornare. Vestibulum in nibh cursus, volutpat leo in, auctor
lacus. Donec euismod suscipit nunc sed tempus.


\end{verse}

\end{document}

答案2

在詩歌中,您可以重新定義節環境,將懲罰更改為您想要的任何內容。 Poemscol 也會自動標記頁面邊界處有(或沒有)節中斷的情況。這可能對你也有幫助。

這是一個最小的例子poemscol。實際上設定懲罰是為了稍微鼓勵節環境之間的翻頁。但是,如果翻頁時有節中斷,請在頁面底部poemscol放置一個(或任何您想要的內容)。*

\documentclass{article}
\usepackage{fancyhdr,geometry,keyval,ifthen,mparhack}
\usepackage{poemscol}
\stanzaatbottom{*}
\nostanzaatbottom{\relax}
\geometry{textwidth=4in,textheight=6.75in,headheight=14pt,paperwidth=6in,paperheight=9in}
\begin{document}
\poemtitle{The Funeral Day}


\epigraph{Suffield, Connecticut, 1952}

\begin{poem}
\begin{stanza}
Later, we folded our hands in his tidy room.\verseline
Patience taught us nothing: we sat for hours\verseline
While the brass clock mumbled to itself like a nun.\verseline
The shadows in the eaves began\verseline
To knot up all the air. And then outside\verseline
This bird just sang and sang and sang.\verseline
What was it to him? Where did he get the right?\verseline
I got up to close the window\end{stanza}

\begin{stanza}
And there I saw the tobacco-fields\verseline
Moving their shrouds in the dusk.\verseline
The wind came thoughtlessly over the wide cloth\verseline
And lifted the white undersides of leaves.\verseline
I didn't close the window. When I sat back down,\verseline
I didn't say what I had seen.\end{stanza}
\end{poem}

\end{document}

Poemscol 這樣定義節環境:

\newenvironment{stanza}{\penalty-100\instanzatrue\mark{\nostanzaatbottomvalue\ }}
 {\nobreak\mark{\stanzaatbottomvalue\ }\nobreak\ifspeciallinelock%
\relax\else%
\nolinebreak\incrementverselinenumber%
\fi%
\speciallinelockfalse%
\nobreak
  \instanzafalse

  \stanzaskip
}

如果您想要變更節環境以阻止甚至防止節間斷頁,請使用\renewenvironment並變更第一行中的懲罰值。

相關內容