众所周知,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
。标准类article
和report
使用30pt
为\footskip
,而book
类使用.35in
带有字体大小10pt
、.38in
带有11pt
和30pt
带有字体大小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 选项。但您使用 更改布局。因此,您必须告诉此包应包含标题。如果您在示例中取消注释其选项,您将得到headinclude
typearea
geometry
includehead
现在页眉的顶部位于纸张边缘下方 2.5 厘米处。
\layout
包中的命令layout
向我们展示了确切的值
页眉的顶部位于1inch+\voffset+\topmargin
纸张边缘下方。请注意,\voffset
通常是0pt
。和选项includehead
这会导致您的结果为 2.5cm(由 设置geometry
)。
文本主体1inch+\voffset+\topmargin+\headheight+\headskip
从纸张边缘下方开始。没有选项includehead
的结果为 2.5cm(由 设置geometry
)。
使用geometry
您可以控制:
- 到文本主体的距离(无
includehead
)或到标题顶部的距离(通过选项geometry
)top
- 头部的高度由
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,达里奥