我如何定义自己的头部,以便每页顶部都显示相同的内容?我想将其用于短文档(最多 5 页),头部如图所示。
但以下方法我并没有成功。
\documentclass[a4paper,12pt]{scrartcl}
\def\makeheadline{
\noindent My name \quad \hfill MM.DD.YYYY
\vspace{5pt}
\hrule height 0.4pt depth 0pt \relax
\begin{center}
\textbf{My Headline}
\end{center}
}
\begin{document}
Hello
\newpage
Page 2
\end{document}
答案1
要制作 KOMA-Script 类的标题,最好使用scrlayer-scrpage
,它是捆绑包的一部分。
您可以将您的代码包含在内\chead{...}
。
\documentclass[a4paper,12pt]{scrartcl}
\usepackage{scrlayer-scrpage}% added <<<<<<<<<<<<<
\setlength{\headheight}{45pt}% make room for the header
\newcommand{\makeheadline}{% custom header
\normalfont
My name \hfill MM.DD.YYYY
\vspace{1ex}
\hrule height 0.4pt depth 0pt
\vspace{1.5ex}
\textbf{My Headline}
}
\chead{\makeheadline}% custom header in the chead
\cfoot{Page~\thepage}% page numbering
\usepackage{kantlipsum}% only for dummy text
\begin{document}
\kant[1-14]
\end{document}
你可以使用该fancyhdr
包并忽略(长)警告。此代码将产生类似的结果。
\documentclass[a4paper,12pt]{scrartcl}
\setlength{\headheight}{40pt}% make room for the header
\newcommand{\makeheadline}{% custom header
\normalfont
My name \hfill MM.DD.YYYY
\vspace{1ex}
\hrule height 0.4pt depth 0pt
\vspace{1.5ex}
\textbf{My Headline}
}
\usepackage{fancyhdr} % added <<<<<
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[C]{\makeheadline}
\fancyfoot[C]{\usekomafont{pageheadfoot}Page~\thepage}
\usepackage{kantlipsum}% only for dummy text
\begin{document}
\kant[1-14]
\end{document}
答案2
您可以使用标准页面样式,该样式适用于手册页标题(请参阅第 3.18 节中myheadings
的描述)。\pagestyle
英语或者德语 KOMA-Script 手册):
\documentclass[a4paper,12pt,headlines=2.7]{scrartcl}
\setkomafont{pageheadfoot}{}
\pagestyle{myheadings}
\def\makeheadline{%
My name\hfill MM.DD.YYYY\\
\rule[1ex]{\linewidth}{.4pt}
\centering
\textbf{My Headline}
}
\markright{%
\parbox[b]{\linewidth}{\makeheadline}%
}
\usepackage{mwe}
\begin{document}
\Blindtext[5]
\end{document}
对于如此大的标题,我也会使用选项headinclude
:
\documentclass[a4paper,12pt,headlines=2.7,headinclude]{scrartcl}
\setkomafont{pageheadfoot}{}
\pagestyle{myheadings}
\def\makeheadline{%
My name\hfill MM.DD.YYYY\\
\rule[1ex]{\linewidth}{.4pt}
\centering
\textbf{My Headline}
}
\markright{%
\parbox[b]{\linewidth}{\makeheadline}%
}
\usepackage{mwe}
\begin{document}
\Blindtext[5]
\end{document}
注意:使用非常过时的 TeX 安装时(据我所知,TeX Live 2019 之前),定义内部会出现问题\centering
。为了避免此问题,您可以更新或使用
\def\makeheadline{%
My name\hfill MM.DD.YYYY\\
\rule[1ex]{\linewidth}{.4pt}\\
\makebox[\linewidth][c]{\textbf{My Headline}}
}
代替
\def\makeheadline{%
My name\hfill MM.DD.YYYY\\
\rule[1ex]{\linewidth}{.4pt}
\centering
\textbf{My Headline}
}
结果是一样的。