\恢复几何将一个页码错误

Joanna F 05/14/2018. 2 answers, 125 views
header-footer positioning page-numbering

我正在准备一个模板,其中我需要:(1)自定义标题页(单独生成)(2)具有非常大的页脚和无页码的自定义抽象页面(3)具有花哨页脚的文档的其余部分特别是包括页码)和标题。

为了实现(2),我使用了\newgeometry\restoregeometry 。 但是,页码只能从第4页开始放在正确的位置,但第3页的底部边距大小错误。 任何尝试修复它只会削弱这种情况(例如,将ALL页码与“不正确”的页码对齐)。 这是我的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} 

2 Answers


Skillmon 05/14/2018.

问题在于,KOMA脚本在第2页调整了您的超大页脚的\restoregeometry\restoregeometry不会将该长度设置回来,而只会更改其他长度。 结果是在接下来的页面上有一个非常大的页脚。

为了解决这个问题,在\recalctypearea之前放置一个\recalctypearea ,它将\footheight回正常状态(基本上这将所有设置设置为KOMA在没有geometry情况下使用的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} 

esdd 05/14/2018.

这是另一个避免重新计算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} 

请注意,我删除了\pagestyleNO和第3页的manuel设置。

在这里输入图像描述


您还可以为免责声明页面使用新的图层页面样式:

\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} 

Related questions

Hot questions

Language

Popular Tags