我如何禁止在 处分页\\
?我试过\\*
,有时有效,有时无效。
这是一个不起作用的例子:
\documentclass{article}
\usepackage{geometry}
\geometry{textheight=2cm}
\begin{document}
1st line
2nd line
% Expected page break is here
3rd line\\*
4th line\\*% This line is on the 1st page
5th line% But this line appears on the 2nd page
\end{document}
我想\\
在文件格式描述中使用。我不能使用verbose
或,lstlisting
因为我想插入特殊元素。这是一个简化的示例:
\documentclass{article}
\usepackage{textcomp}
\newcommand{\meta}[1]{\textnormal{#1}}
\newcommand{\variable}[1]{\textnormal{\textlangle\textit{#1}\textrangle}}
\newenvironment{file}{\begin{quote}\normalfont\ttfamily}{\end{quote}}
\begin{document}
\begin{file}
[\variable{section}]\\
\variable{key} = \variable{value}\\
\variable{key} = \variable{value}\\
\meta{...}
\end{file}
\end{document}
答案1
\\*
在此时添加 100000(无限)的惩罚以打破这一点,但如果其他东西允许打破,或者没有其他选择,它可以被覆盖。在这种情况下,垂直列表看起来像
....\glue(\rightskip) 0.0
...\penalty 10000
...\penalty 150
...\glue(\baselineskip) 5.05556
因此,10000 之后立即是 150 的寡妇惩罚,这是为了阻止此时突破,但在这种情况下允许休息。
在文档中,除了对齐之外使用几乎\\
总是错误的,所以这通常不是问题,但如果你绝对不想让文本块中断,请将其放在一个框中:
\documentclass{article}
\usepackage{geometry}
\geometry{textheight=2cm}
\begin{document}
%\showoutput
1st line
2nd line
% Expected page break is here
\noindent\parbox[t]{\textwidth}{%
3rd line\\*
4th line\\*% This line is on the 1st page
5th line% But this line appears on the 2nd page
}
\end{document}
在这种情况下,所有内容都适合在页面上。
答案2
您的情况是段落内出现简单的分页符。这不是最佳选择,但是,如果将整个段落移至下一页,则第一页会太空(因此会受到惩罚)。
在您的情况下,要解决这个问题,您可以把下一页单行的惩罚设置为一个大数字,参见如何防止出现孤儿线
\widowpenalty10000