KOMA 横向页面的页码位置错误

KOMA 横向页面的页码位置错误

我构建了一个名为“landscapepage”的环境,以便typearea在我的文章中插入风景页面。

一切都正常,只是插入的横向页面的页码位置不正确,如附图所示。

为什么?又该如何处理?

梅威瑟:

\documentclass{article}
\usepackage{typearea,geometry,fancyhdr}
\geometry{showframe}

\newenvironment{landscapepage}[1][]
{%
  \clearpage
  \savegeometry{prelandscape}
  \KOMAoptions{paper=landscape,pagesize,DIV=15,#1}
  \recalctypearea
}
{%
  \clearpage
  \KOMAoptions{paper=portrait,pagesize}
  \recalctypearea
  \loadgeometry{prelandscape}
}

\begin{document}
\newgeometry{top=3cm,bottom=3cm}
\section{This is my Portrait Page}
This is my Portrait Page
\clearpage
%%%%%%%%%%%%%%%%%%%%%%%

\begin{landscapepage}[DIV=8]
\pagestyle{fancy}  
\fancyhfoffset[E,O]{0pt}
\fancyhf{}
\rfoot{\roman{page}}

\section{This is my Landscape Page}
Text in my landscape section\footnote{Footnote in Landscape}
\clearpage
Text in my landscape second page
\end{landscapepage}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{This is again Portrait Page}
\end{document}

在此处输入图片描述

答案1

您会在 MWE 的日志文件中发现以下警告:

包 typearea 警告:\typearea 在组级别 2 使用。在任何组内使用 \typearea(例如环境、数学模式、框等)可能会导致许多排版问题。您应该将命令 \typearea 移到输入行 26 上的所有组之外。

请注意,\recalctypearea是 的缩写版本\typearea[current]{last}。因此您不应\recalctypearea在组中使用。请注意,\loadgeometry{prelandscape}可以从 MWE 中删除,而无需对文档进行任何更改,因为它也位于组内。

您可以定义横向和纵向页面的开关:

\documentclass{article}
\usepackage[usegeometry]{typearea}
\usepackage[showframe]{geometry}
\usepackage{fancyhdr}

\newcommand\landscapepageon[1][]
{%
  \cleardoublepage
  \savegeometry{prelandscape}
  \KOMAoptions{paper=landscape,DIV=15,#1}
  \recalctypearea
  \bgroup% begins a group
}
\newcommand\landscapepageoff{%
  \cleardoublepage
  \egroup% ends a group
  \KOMAoptions{paper=portrait}
  \recalctypearea
  \loadgeometry{prelandscape}
}

\begin{document}
\newgeometry{top=3cm,bottom=3cm}
\section{This is my Portrait Page}
This is my Portrait Page

\landscapepageon[DIV=8]
\pagestyle{fancy}
\fancyhfoffset[E,O]{0pt}
\fancyhf{}
\renewcommand\thepage{\roman{page}}
\fancyfoot[R]{\thepage}

\section{This is my Landscape Page}
Text in my landscape section\footnote{Footnote in Landscape}
\clearpage
Text in my landscape second page
\landscapepageoff

\section{This is again Portrait Page}
\end{document}

备注: 由于代码中有和,\landscapepageon所以后面必须跟。它们是横向页面本地更改所必需的。\landscapepageoff\bgroup\egroup

补充说明:不要使用\rfoot{\roman{page}}。文档中会有罗马页码,但目录中会有阿拉伯页码。

在此处输入图片描述

答案2

您可以通过重复 \newgeometry{top=3cm,bottom=3cm} 来恢复它

肖像页之前。

此外,为什么您将 DIV 设置为 15,然后在启动横向页面时将其重新定义为 8?当我在第 9 行将 DIV 设置为 8 时,我得到了相同的布局。 底部的页码

相关内容