合并页面开始

合并页面开始

这是这个问题

我希望页面内容的起始位置与没有页眉时起始位置完全一致。这比想象的要困难得多。

以下代码适用于标题后的小字体大小:

\documentclass[twoside=false]{scrbook}

\setlength\parindent{0pt}

\begin{document}
\setlength\parindent{0pt}%
\thispagestyle{plain}
\vspace*{-\dimexpr\topskip+\baselineskip+\parskip}
\parbox[b][0pt]{\textwidth}{
    {\Huge Test}\\[-1ex]
    \rule{\dimexpr\textwidth}{1mm}
}
\par
{\Large\vspace{\dimexpr\topskip-\baselineskip-\parskip}}

\Large test

\clearpage

test

\end{document}

但是,使用\Huge以下文本的字体大小时,文本的高度会超出范围\topskip(我认为?),所以我的解决方案不再起作用。

使用添加垂直空间的环境似乎也不起作用,因为\vspace当页面开头没有文本时行为会有所不同。

我努力了

\newcommand\vspacesave[1]{\vspace{#1}}
\renewcommand\vspace[1]{\vspace*{#1}}
\begin{flushleft}
    test
\end{flushleft}
\renewcommand\vspace[1]{\vspacesave{#1}}

但无济于事。

编辑:无论如何,所有这一切似乎都是徒劳的,因为尝试创造空间vspace*{...}只会再次给我不同数量的空间......

答案1

如果您插入的只有一行,您可以\smash插入\strut“通常”大小的行来建立基线。

\smash使“粉碎”的材料具有零高度和深度。这将导致它在页面上移动到更高的位置,因此您确实需要将高度重置为“通常”值。这就是 a 所做的\strut

\strut also重置深度。在这种情况下这并不重要,但在某些情况下确实如此。

相关内容