我正在准备一个模板,其中我需要:(1)自定义标题页(单独生成)(2)自定义摘要页,带有非常大的页脚但没有页码(3)文档的其余部分,带有漂亮的页脚(特别是包括页码)和页眉。
为了实现 (2),我使用了\newgeometry
和\restoregeometry
。但是,只有从第 4 页开始,页码才放置在正确的位置,但第 3 页的底部边距大小“错误”。任何修复它的尝试只会使情况变得更糟(例如对齐全部页码与“不正确”的页码相同)。这是我的 MWE(至少我希望它是最小的):
\documentclass[11pt,a4paper,twoside=semi]{scrartcl}
\usepackage{graphicx}
\usepackage[top=4.79cm, bottom=2.5cm, left=1.5cm, right=1.5cm]{geometry}
\usepackage{eso-pic}
\usepackage{afterpage}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{lipsum}
\begin{document}
\title{Some stuff on title page}
\maketitle
\clearpage
\afterpage{
\newgeometry{bottom=8cm}
\pagenumbering{gobble}
\newcommand{\FooterDisclaimer}{%
{\parbox[c][5cm]{\textwidth}
{very long message in footer
}
}
}
\chead{}
\cfoot{\FooterDisclaimer}
Some stuff on the second page with different footer
\restoregeometry
}
\clearpage
\thispagestyle{scrheadings}
\pagenumbering{arabic}
\setcounter{page}{3}
\clearpairofpagestyles
\cfoot{\pagemark}
\section{Test}
\lipsum[1-20]
\end{document}
答案1
问题是,KOMA 脚本调整了\footheight
第 2 页上非常大的页脚。\restoregeometry
不会将该长度设置回原位,而只会更改其他长度。结果是后续页面上的页脚非常大。
为了解决这个问题,在\recalctypearea
之前放置一个\restoregeometry
,将 恢复\footheight
正常(基本上,这会将所有内容设置为 KOMA 在没有 的情况下使用的尺寸geometry
)。\restoregeometry
重置geometry
的尺寸。
在代码中:
\documentclass[11pt,paper=a4,twoside=semi]{scrartcl}
\usepackage[automark]{scrlayer-scrpage}
\usepackage[top=4.79cm, bottom=2.5cm, left=1.5cm, right=1.5cm]{geometry}
\usepackage{lipsum}
\begin{document}
\title{Some stuff on title page}
\maketitle
%% Your second page
\clearpage
\newgeometry{bottom=8cm}%
\pagenumbering{gobble}
\newcommand{\FooterDisclaimer}
{%
\parbox[c][5cm]{\textwidth}
{\lipsum[1]}%
}
\chead{}
\cfoot{\FooterDisclaimer}
Some stuff on the second page with different footer
\lipsum[2-5]
\clearpage
%%
\recalctypearea % reset footer height
\restoregeometry % reset page margins
\pagenumbering{arabic}
\setcounter{page}{3}
\clearpairofpagestyles
\cfoot{\pagemark}
\section{Test}
\lipsum[1-20]
\end{document}
答案2
以下是另一个避免重新计算的建议footheight
(以及有关此重新计算的警告):
\documentclass[twoside=semi]{scrartcl}
\usepackage[top=4.79cm, bottom=2.5cm, left=1.5cm, right=1.5cm,
showframe% to show the page layout
]{geometry}
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot{\pagemark}
\newcommand{\FooterDisclaimer}{%
\parbox[c][5cm]{\textwidth}{%
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi.
Morbi auctor lorem non justo.
Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus.
}%
}
\newcommand\StartDisclaimerPages
{%
\newgeometry{bottom=8cm}\begingroup
\cfoot{\raisebox{\dimexpr-\height+\ht\strutbox\relax}
[\ht\strutbox][\dp\strutbox]{\FooterDisclaimer}}%
}
\newcommand\EndDisclaimerPages
{\clearpage\endgroup\restoregeometry}
\usepackage{lipsum}% only for dummy text
\begin{document}
\title{Some stuff on title page}
\author{Author}
\maketitle
\StartDisclaimerPages
\lipsum[1-4]
\EndDisclaimerPages
\section{test}
\lipsum[5-20]
\end{document}
请注意,我已删除了\pagestyle{gobble}
页码 3 的手动设置。
您还可以对免责声明页面使用新的图层页面样式:
\documentclass[twoside=semi]{scrartcl}
\usepackage[top=4.79cm, bottom=2.5cm, left=1.5cm, right=1.5cm,
showframe% to show the page layout
]{geometry}
\usepackage[automark]{scrlayer-scrpage}
\clearpairofpagestyles
\cfoot{\pagemark}
\newcommand{\FooterDisclaimer}{%
\parbox[c][5cm]{\textwidth}{%
Nam dui ligula, fringilla a, euismod sodales, sollicitudin vel, wisi.
Morbi auctor lorem non justo.
Nam lacus libero, pretium at, lobortis vitae, ultricies et, tellus.
}%
}
\DeclareNewLayer[
foreground,
foot,
contents={%
\usekomafont{pageheadfoot}\usekomafont{pagefoot}%
\FooterDisclaimer
}
]{disclaimer.foot}
\DeclareNewPageStyleByLayers{disclaimer}{disclaimer.foot}
\newcommand\StartDisclaimerPages
{\newgeometry{bottom=8cm}\begingroup\pagestyle{disclaimer}}
\newcommand\EndDisclaimerPages
{\clearpage\endgroup\restoregeometry}
\usepackage{lipsum,blindtext}% only for dummy text
\begin{document}
\title{Some stuff on title page}
\author{Author}
\maketitle
\StartDisclaimerPages
\lipsum[1-4]
\EndDisclaimerPages
\section{test}
\lipsum[5-20]
\end{document}