KOMA-Script 中此页面布局参数的名称是什么?

KOMA-Script 中此页面布局参数的名称是什么?

用于将正文定位在章节第一页的垂直偏移:

\documentclass[chapterprefix = true]{scrbook}

\usepackage{blindtext}

\begin{document}

\chapter{Test Chapter}
\blindtext[5]

\end{document}

给出

在此处输入图片描述

显然不是\topmargin:使用该layout包为我提供了页面布局的描述,该描述适用于以下页面,而不是打开页面。

在此处输入图片描述

我在 KOMA-Script 手册中找不到相关记录。如能提供任何帮助,我将不胜感激。

编辑:我想使用这个值在前一页放置一个文本块(具体来说是一个题词),以便它很好地排列,如下所示:

在此处输入图片描述

我只需要获取垂直偏移;此时无需更改它。

答案1

没有一个单一的长度可以描述这个距离,但是有几种长度,有些还取决于字体大小:

  • 顶部边距。这是\topmargin+ 1 英寸,因为原点不是在左上边缘,而是在纸张左上边缘 1 英寸处。如果您使用类似的东西,crop\voffset可以参与其中。但在这种情况下,您还必须考虑长度是否应该从物理纸张边缘或逻辑边缘测量。所以在下文中我将省略 的潜在影响\voffset
  • 页面头部的高度。这是\headheight
  • 页面头部和文本区域之间的距离。这是\headsep
  • 文本区域边缘与第一条基线之间的距离。这是\topsep
  • 章节标题上方的距离。您可以通过beforeskip命令选项设置此内容\RedeclareSectionCommand。只要您不更改样式,\chapter此值就会存储在内部宏中\scr@chapter@beforeskip。此宏的粘合值也可以为负数。如果 KOMA-Script <= 3.25,则必须始终使用绝对值而不是负值。自 KOMA-Script 3.25 以来,这变得更加复杂,但我在下文中省略了这一点。
  • 前缀行的大小。这是\baselineskip,但在使用 的值之前必须设置字体\baselineskip
  • 前缀行和主标题行之间的距离。您可以通过midkip命令选项设置它\RedeclareSectionCommand。只要您不更改样式,\chapter它就会存储在内部宏中\scr@chapter@innerskip。这也可以作为粘合剂。
  • 章节主标题的大小。这是\baselineskip,但在使用值之前必须设置字体\baselineskip。只要标题不需要换行符,这是正确的。
  • 章节标题下方的距离。您可以通过afterskip命令选项设置该距离\RedeclareSectionCommand。只要您不更改样式,\chapter该距离就会存储在内部宏中\scr@chapter@belowskip。但是,此命令的粘合值也可以为负数。如果 KOMA-Script <= 3.25,则必须始终使用绝对值而不是负值。自 KOMA-Script 3.25 以来,这变得更加复杂,但我在下文中省略了这一点。

有了这些知识我们就可以进行计算,但我们应该将其推迟到\begin{document}

\documentclass[chapterprefix = true]{scrbook}

\usepackage{blindtext}

\usepackage{eso-pic,picture,xcolor}

\newlength{\topedgetotextbelowchapter}
\makeatletter
\AtBeginDocument{%
  \setlength{\topedgetotextbelowchapter}{%
    \dimexpr \topmargin+1in% the top margin
            +\headheight% the head height
            +\headsep% distance from head to text area
            +\topsep% distance to the first base-line
            +\glueexpr\scr@chapter@innerskip\relax% distance between the prefix and the title
    \relax
    \addtolength{\topedgetotextbelowchapter}{%
      % distance before the heading
      \ifdim \glueexpr\scr@chapter@beforeskip\relax<\z@
        -\glueexpr\scr@chapter@beforeskip\relax
      \else
        \glueexpr\scr@chapter@beforeskip\relax
      \fi
    }
    \addtolength{\topedgetotextbelowchapter}{%
      % distance after the heading
      \ifdim \glueexpr\scr@chapter@afterskip\relax<\z@
        -\glueexpr\scr@chapter@afterskip\relax
      \else
        \glueexpr\scr@chapter@afterskip\relax
      \fi
    }
  }%
  {\usekomafont{disposition}\usekomafont{chapter}{%
      \global\advance\topedgetotextbelowchapter
      \baselineskip
      \usekomafont{chapterprefix}{%
        \global\advance\topedgetotextbelowchapter
        \baselineskip
      }}}%
}
\makeatother
\usepackage{showframe}
\begin{document}
\AddToShipoutPictureBG*{%
  \AtPageUpperLeft{%
    \thicklines\color{red}%
    \put(.5\paperwidth,0){\vector(0,-1){\topedgetotextbelowchapter}}%
  }%
}
\chapter{Test Chapter}
\blindtext[3]

\end{document}

在此处输入图片描述

您应该注意,这是一个黑客解决方案,因为它使用了未记录的供包作者或用户使用的内部宏。

相关内容