我想更好地理解为什么fancyhdr
不建议使用scrartcl
。到目前为止,我一起使用它们没有遇到任何问题,但输出总是抱怨我不应该使用fancyhdr
。scrartcl
相反,我应该使用scrlayer-scrpage
。有人可以解释一下我不应该使用 的原因fancyhdr
吗?
\documentclass[a4paper,pagesize ,landscape, fontsize=6pt]{scrartcl}
\usepackage[left=0.75cm,right=0.75cm, top=1cm, bottom=0.75cm]{geometry}
\usepackage{multicol}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{fancyhdr}
%\usepackage{scrlayer-scrpage}
\setlength{\columnsep}{25pt}
\setlength{\columnseprule}{0.4pt}
\pagestyle{fancy}
\fancyhf{}
\rhead{Name}
\chead{Page \thepage}
\lhead{Title description}
\begin{document}
\begin{multicols*}{3}
Some entries here
\columnbreak
and some entries there
\columnbreak
and the list goes on
\end{multicols*}
\end{document}
答案1
您只能使用以下包之一scrlayer-scrpage
:scrpage2
( 的前身scrlayer-scrpage
)、fancyhdr
、...
建议与 KOMA-Script 类一起使用的包是scrlayer-scrpage
因为它是 KOMA-Script 包的一部分,并且您可以按照与类相同的方式设置和更改选项,请参阅KOMA-Script 文档。我真的建议使用scrlayer-scrpage
。
您的标头包含scrlayer-scrpage
:
\documentclass[
%a4paper,% default
%pagesize,% default since version 3.17
landscape,
fontsize=6pt,
]{scrartcl}
\usepackage[left=0.75cm,right=0.75cm, top=1cm, bottom=0.75cm]{geometry}
\usepackage{multicol}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[headsepline]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{Name}
\chead{\pagemark}
\ihead{Title description}
\renewcommand*\pagemark{{\usekomafont{pagenumber}Page\nobreakspace\thepage}}
\addtokomafont{pageheadfoot}{\upshape}
\setlength{\columnsep}{25pt}
\setlength{\columnseprule}{0.4pt}
\usepackage{blindtext}% dummy text
\begin{document}
\begin{multicols*}{3}
\Blinddocument
\end{multicols*}
\end{document}
但fancyhdr
如果确实想使用这个包,也可以使用:
\documentclass[
%a4paper,% default
%pagesize,% default since version 3.17
landscape,
fontsize=6pt
]{scrartcl}
\usepackage[left=0.75cm,right=0.75cm, top=1cm, bottom=0.75cm]{geometry}
\usepackage{multicol}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\usekomafont{pageheadfoot}Name}
\fancyhead[C]{\usekomafont{pageheadfoot}\pagemark}
\fancyhead[L]{\usekomafont{pageheadfoot}Title description}
\renewcommand*\pagemark{{\usekomafont{pagenumber}Page\nobreakspace\thepage}}
\addtokomafont{pageheadfoot}{\upshape}
\setlength{\columnsep}{25pt}
\setlength{\columnseprule}{0.4pt}
\usepackage{blindtext}
\begin{document}
\begin{multicols*}{3}
\Blinddocument
\end{multicols*}
\end{document}
fancyhdr
请注意,少数与页眉和页脚有关的选项将不起作用。例如 KOMA 选项footsepline
。
所以如果你真的想使用fancyhdr
而且有仅有的fancyhdr
不建议与 KOMA-Script 类一起使用的警告,您可以忽略它。
但不要忽略有关旧字体命令的任何额外警告,例如\rm
,\sl
。请注意,fancyhdr
在其默认的页眉和页脚定义中使用此命令。
从当前预发行的下一个 KOMA-Script 版本(3.20) KOMA 脚本没有定义这个旧命令。所以
\documentclass{scrartcl}[2015/11/06]
\usepackage{fancyhdr}
\pagestyle{fancy}
\begin{document}
Text
\end{document}
\fancyhf{}
会导致错误。如果您使用并定义自己的页眉和页脚(使用\fancyhead
或\fancyfoot
不使用旧字体命令)或使用兼容性选项,则可以避免错误。