当使用 \newline 保持水平模式时,信息会在同一页面上吗?

当使用 \newline 保持水平模式时,信息会在同一页面上吗?

我在这里看到使用\newline保持水平模式处于启用状态。那么,当我选择\newline例如

\noindent\rule{\textwidth}{\heavyrulewidth}\newline
Here is some text.

该行和“这里是一些文本”将始终在同一页面上吗?

我的理解是,使用\\\par会短暂切换到垂直模式,这可能会导致内容之间出现分页符。这无法确保行 ( \rule) 和“Here is some text”位于同一页上。

看: 何时使用 \par 以及何时使用 \\ 或空行

我希望一行后面紧跟着小文本(尽可能接近但不显得奇怪)。它们必须始终排版在同一页上。

例子:

\documentclass{article}
\usepackage{fontspec}
\usepackage{booktabs}

\begin{document}
\noindent\rule{\textwidth}{\heavyrulewidth}\newline
{\tiny Here is some text.}

\noindent\rule{\textwidth}{\heavyrulewidth}\\[.1\baselineskip]
{\tiny Here is some text.}

\noindent\rule{\textwidth}{\heavyrulewidth}{\tiny\par
Here is some text.}
\end{document}

答案1

不会,\\在正常的 LR 模式下不会切换到垂直模式,也不会\newline

在正常 LR 模式下,的定义\newline\@normalcr\relax\relax是为了避免后续*被解释为 *-变体。

的定义\\本质上是\@normalcr,但它会寻找后面的*和 可选参数。如果存在可选参数,则它应该是长度,并且 LaTeX 会插入\vadjust{\vskip<length>}\vadjust{\nobreak\vskip<length>}如果*跟在 后面\\,则插入\hfil\break以触发换行符。效果是在换行符和下一行之间添加一个垂直空格;如果使用\\*或 ,则不会出现分页符。在前一种情况下,当然只会添加 。\\*[<length>]\vadjust{\nobreak}

\vadjust项目添加了垂直材料,将在页面设置时考虑该材料,该段落已被分成几行,并且这样获得的框被贡献到正在构建的垂直列表中。

可能添加的胶水将插入两行之间此外与普通的线间胶水一样。

一般来说,一个段落两行之间的行间粘连是一个可行的分页点,除非行间粘连前面有一个惩罚,该惩罚可能会自动插入:\clubpenalty前两行之间、\widowpenalty最后两行之间以及\interlinepenalty任何其他对之间(如果该参数未设置为 0)。

你想要的东西可以轻松获得

\documentclass{article}
\usepackage{booktabs}
\usepackage{lipsum}

\begin{document}

\lipsum[2]

{\nopagebreak\tiny\noindent\rule{\textwidth}{\heavyrulewidth}\\*
\tiny Here is some text.\par}

\lipsum[3]

\end{document}

在此处输入图片描述

然而,一个更简单的方法是

\documentclass{article}
\usepackage{booktabs}
\usepackage{lipsum}

\begin{document}

\lipsum[2]

\par\kern3pt
\hrule height \heavyrulewidth
\kern1pt
{\tiny\noindent Here is some text.\par\nointerlineskip}
\kern3pt
\nopagebreak

\lipsum[3]

\end{document}

这使用较低级别的工具并利用以下事实:

  1. 前后不加线间胶\hrule

  2. 垂直模式下的字距调整如果没有跟在粘连线后面,则不是可行的分页点

因此,带有小文本的规则无法转到新页面,其后也不能有分页符。如果要允许,请删除最后一个\nopagebreak

通过这种方式控制空间就更容易了。

在此处输入图片描述

答案2

我会用

{\tiny
\noindent\rule{\textwidth}{\heavyrulewidth}

\nopagebreak
 Here is some text.

}

其中两个空白行都是需要的(或者可能是\par同一件事)。

第一个空白行进入垂直模式,以便您可以添加分页惩罚(实际上,这里的空白行不是严格必要的,因为\nopagebreak在垂直模式下可以通过 工作\vadjust)。需要第二个空白行,以便为小文本设置合适的基线,并适当地接近规则。

相关内容