这是这个问题。
我希望页面内容的起始位置与没有页眉时起始位置完全一致。这比想象的要困难得多。
以下代码适用于标题后的小字体大小:
\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
重置深度。在这种情况下这并不重要,但在某些情况下确实如此。