使页面宽度 = 纸张宽度,无论页面几何形状如何

使页面宽度 = 纸张宽度,无论页面几何形状如何

我希望每页的页眉线延伸到整个页面。我遇到的问题是当几何形状通过以下方式更改时\newgeometry

\documentclass{scrreprt}
\usepackage{geometry}
\usepackage[headsepline, headwidth=paper:\the\textwidth/2-\the\paperwidth/2:\the\textwidth/2-\the\paperwidth/2]{scrlayer-scrpage}    

\usepackage{lipsum}

\begin{document}
\lipsum
\newgeometry{textwidth=5cm}
\lipsum

\end{document}

在具有新几何形状的页面上,页眉不会延伸到整个页面。如何才能使用scrlayer-scrpage任意页面几何形状延伸页眉线?

答案1

使用您的代码,根据当前的 计算一次标题偏移量\textwidth。如果 发生变化,则不会重新计算\textwidth

如果应该headoffset依赖于灵活性,\textwidth您必须确保headwidth在每一页上重新计算包括偏移量。

\documentclass{scrreprt}
\usepackage{geometry}
\usepackage[headsepline]{scrlayer-scrpage}
\KOMAoptions{onpsbackground={\KOMAoptions{headwidth=paper}}}

\usepackage{lipsum}

\begin{document}
\lipsum
\newgeometry{textwidth=5cm}\KOMAoptions{headwidth=paper}
\lipsum
\end{document}

在此处输入图片描述

请注意,headwidth=paper单侧模式\the\textwidth/2-\the\paperwidth/2默认使用偏移量。


但无需重新计算每一页的偏移量也是有可能的。

如果页眉应具有与纸张相同的宽度,则将所有页眉层的水平偏移量设置为 0pt:

\ForEachLayerOfPageStyle*{scrheadings}{%
  \ifstrstart{#1}{scrheadings.head}{%
    \ModifyLayer[hoffset=0pt,width=\paperwidth]{#1}%
  }{}%
}

也许您必须对 执行相同的操作plain.scrheadings。请注意,页面样式plain只是加载plain.scrheadings时的一个别名。scrlayer-scrpage

在此处输入图片描述

代码:

\documentclass
  %[twoside]
  {scrreprt}
\usepackage{geometry}

\usepackage[headsepline,headwidth=page]{scrlayer-scrpage}

\ForEachLayerOfPageStyle*{scrheadings}{%
  \ifstrstart{#1}{scrheadings.head}{%
    \ModifyLayer[hoffset=0pt,width=\paperwidth]{#1}%
  }{}%
}
\ForEachLayerOfPageStyle*{plain.scrheadings}{%
  \ifstrstart{#1}{plain.scrheadings.head}{
    \ModifyLayer[hoffset=0pt,width=\paperwidth]{#1}%
  }{}%
}

\ihead{inner}\chead{center}\ohead{outer}

\usepackage{lipsum}
\begin{document}
\lipsum
\newgeometry{textwidth=5cm}
\lipsum
\end{document}

如果只需要扩展标题下方的行而不是标题本身,则只需修改层scrheadings.head.below.line

\documentclass
  %[twoside]
  {scrreprt}
\usepackage{geometry}

\usepackage[headsepline=:page]{scrlayer-scrpage}
\ModifyLayer[hoffset=0pt,width=\paperwidth]{scrheadings.head.below.line}%

\ihead{inner}\chead{center}\ohead{outer}

\usepackage{lipsum}
\begin{document}
\lipsum
\newgeometry{textwidth=5cm}
\lipsum
\end{document}

结果:

在此处输入图片描述

相关内容