当我使用该scrheadings
包并在标题中放置多行时,就像这样:
\documentclass[a4paper,DIV8,10pt]{scrartcl}
\usepackage[headsepline]{scrpage2}
\pagestyle{scrheadings}
\chead{line 1\\ line 2\\ line 3}
\begin{document}
%\vspace*{0pt}
\section{Definition}
\end{document}
...部分标题与页眉的水平线相交!
但是,如果我创建一个空的vspace
,就像这样:
\chead{line 1\\ line 2\\ line 3}
\begin{document}
\vspace*{0pt}
\section{Definition}
\end{document}
...一切正常!
这是怎么回事?
答案1
虽然我不知道您遇到的行为的原因,但您的代码使用了过时的选项,并且您收到了有关该行为的警告(在日志中):
DIV8
应该DIV=8
scrpage2
已经过时,应该替换为scrlayer-scrpage
采取后者也能解决您的问题。
新语法:
\documentclass[a4paper,DIV=8,10pt]{scrartcl}
\usepackage[headsepline]{scrlayer-scrpage}
\pagestyle{scrheadings}
\chead{line 1\\ line 2\\ line 3}
\begin{document}
%\vspace*{0pt}
\section{Definition}
\end{document}
答案2
过时的软件包
scrheadings
不会在需要时调整标题的高度。您将收到overfull \vbox
警告,并且标题可能会在文本区域中运行。\vspace*{0pt}
并不能解决这个问题!如果一个部分从新页面开始,则在插入的部分标题之前没有额外的空间。在页面中间的部分标题之前有一个beforeskip
使用。
参见以下示例的第二页:
% This is only for demonstration! Suggested is the second example below!
\documentclass[
a4paper,
DIV=8,% <- use the correct syntax
10pt,
%headlines=4 <- this will solve the issue
]{scrartcl}
\usepackage{mwe}% <- onyl for dummy text
\usepackage{showframe}% <- shows the page layout
\usepackage[headsepline]{scrpage2}
\pagestyle{scrheadings}
\chead{line 1\\ line 2\\ line 3 \\ line 4}
\begin{document}
\vspace*{0pt}
\section{Abschnitt}
\Blindtext
\section{Zweiter Abschnitt}
\Blindtext
\end{document}
结果:
但无论有headlines=4
没有选项,\vspace*{0pt}
您都会得到想要的结果:
- 正如@TeXnician提到的那样,
scrpage2
它已经过时了。您应该使用它的后继者scrlayer-scrpage
。如果需要,此包会进行调整\headheight
。但为了避免出现警告,请在加载类时设置选项headheight
或选项。headlines
示例/建议:
\documentclass[
DIV=8,% <- use correct syntax
10pt,
headlines=4%<- this will solve the issue
]{scrartcl}
\usepackage{mwe}% <- only for dummd text
\usepackage{showframe}% <- shows the page layout
\usepackage[headsepline]{scrlayer-scrpage}% <- replace the outdated scrpage 2
\chead{line 1\\ line 2\\ line 3 \\ line 4}
\begin{document}
\section{Abschnitt}
\Blindtext
\section{Zweiter Abschnitt}
\Blindtext
\end{document}
结果: