如何强制 KOMA-Script 使用页眉/页脚作为标准类?

如何强制 KOMA-Script 使用页眉/页脚作为标准类?

众所周知,KOMA-Script 比标准类具有更大的灵活性。一个例子是能够使用任何字体大小(例如 11.5pt)。但是出现了一个问题,即页眉和页脚的放置。在标准类中,页码(例如,在底部)放置得很明智,但在 KOMA 中,它太靠近纸张边缘了。

问题是如何强制 KOMA 对页脚、页眉、规则和边距使用与标准类相同的距离。这是一个 MWE:

\documentclass[12pt,a4paper]{article}
\usepackage[margin=2cm]{geometry}
\begin{document}
A test document
\end{document}

正确输出页脚:

在此处输入图片描述

而使用 KOMA-Script:

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[margin=2cm]{geometry}
\begin{document}
A test document
\end{document}

输出此(不受欢迎的)行为:

在此处输入图片描述

有什么想法吗?谢谢。

编辑:

标题中的奇怪行为也可以通过以下示例显示:

\documentclass[12pt,a4paper,headsepline,twoside=false]{scrbook}
\usepackage[left=3.50cm, right=2.50cm, top=2.5cm, bottom=2.5cm]{geometry}
\usepackage{pagegrid}
\begin{document}

\mainmatter
\chapter{Test Chapter}
\noindent 
Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines.

\newpage     
\noindent 
Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. Some plain text just to fill paragraph lines. 

\end{document}

页眉中的问题如下图所示:

在此处输入图片描述

答案1

footskip如果您想要与标准类使用的相同,article则将其更改为30pt

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[margin=2cm,
  footskip=30pt% <- added
]{geometry}
\begin{document}
A test document: \the\footskip
\end{document}

在此处输入图片描述


解释:

使用 KOMA-Script 类时,将\footskip设置为3.5\baselineskip。标准类articlereport使用30pt\footskip,而book类使用.35in带有字体大小10pt.38in带有11pt30pt带有字体大小12pt。如果使用包仅更改边距,则即使使用标准类geometry\footskip不会更改。请参见以下示例:

\documentclass[12pt,a4paper]{article}
\usepackage[
  margin=30pt,
  showframe% to show the page layout
  ]{geometry}
\begin{document}
A test document: \the\footskip
\end{document}

结果:

在此处输入图片描述

正如您所见,即使article使用标准类,页码也可能太靠近纸张边缘。因此,标准类不会明智地放置页码 - 其基线只是简单地放置30pt在文本正文下方。

因此,如果您手动更改边距,则您的任务是手动调整footskip

如果页码基线应位于空白的中间,则可以使用(= 底部边距的一半)。或者,如果页码应几乎位于底部空白的中心,footskip=1cm则选择类似方法。footskip=\dimexpr1cm+.7ex\relax


更新/添加(关于改变的问题和评论)

这是使用包showframe和的第二个示例layout

\documentclass[12pt,a4paper,headsepline,twoside=false]{scrbook}
\usepackage[left=3.50cm, right=2.50cm, top=2.5cm, bottom=2.5cm,
%includehead,
]{geometry}
\usepackage{pagegrid}
\pagegridsetup{tl,firstcolor=blue!50}
\usepackage{showframe}
\usepackage{layout}
\usepackage{lipsum}
\begin{document}
\layout
\chapter{Test Chapter}
\lipsum[10]
\clearpage
\noindent\lipsum[10]
\end{document}

结果:

在此处输入图片描述

如您所见,文本主体从纸张边缘下方 2.5 厘米处开始。请注意,KOMA 选项为 KOMA 包headsepline设置了 KOMA 选项。但您使用 更改布局。因此,您必须告诉此包应包含标题。如果您在示例中取消注释其选项,您将得到headincludetypeareageometryincludehead

在此处输入图片描述

现在页眉的顶部位于纸张边缘下方 2.5 厘米处。

\layout包中的命令layout向我们展示了确切的值

在此处输入图片描述

页眉的顶部位于1inch+\voffset+\topmargin纸张边缘下方。请注意,\voffset通常是0pt选项includehead这会导致您的结果为 2.5cm(由 设置geometry)。

文本主体1inch+\voffset+\topmargin+\headheight+\headskip从纸张边缘下方开始。没有选项includehead的结果为 2.5cm(由 设置geometry)。

使用geometry您可以控制:

  • 到文本主体的距离(无includehead)或到标题顶部的距离(通过选项geometrytop
  • 头部的高度由geometry选项headheight
  • 标题和正文之间的间隔由geometry选项headsep

查看记录geometry了解更多信息。

答案2

我建议不要使用 geometry 包。如果删除它,你会看到分页移动到了更好的位置。如果需要调整边距,请使用 KOMA 的功能,更改划分(使用 KOMA 选项 DIV=)并将一小部分类型区域分配给边距,例如

\documentclass[fontsize=12pt, paper=a4, DIV=11]{scrartcl}

\AfterCalculatingTypearea{
    \addtolength{\evensidemargin}{0.1\textwidth}
    \setlength{\textwidth}{0.9\textwidth}
    \setlength{\marginparwidth}{%
        \dimexpr 1.5\evensidemargin+0.5\marginparsep\relax}
    \setlength{\marginparsep}{0.5\marginparsep}
}
\KOMAoptions{DIV=last}

有关调整分区和类型区域的一些信息可以在 KOMA 文档的第 2 章(特别是 2.2 和 2.6)中找到。

HTH,达里奥

相关内容