背景

背景

背景

希望使用 ConTeXt 将页码放在页面底部。以下最小工作示例 (MWE) 中的关键行是:

\setuplayout[
  topspace=\zeropoint,
  %bottomspace=\zeropoint,
]

我以为通过消除topspace和消除bottomspace页面的文本高度会自动计算以填充整个区域。

最小工作示例

一个显示我想要实现的目标的示例:

\setuppapersize[letter][letter]
\setuplayout[
  topspace=\zeropoint,
  %bottomspace=\zeropoint,
]

\showframe

% Use roman numerals for the front matter
\definestructureconversionset[frontpart:pagenumber] [] [romannumerals]
\setuppagenumbering[location={footer,right},alternative=singlesided]

\starttext

\startfrontmatter
  \setuppagenumbering[conversion=romannumerals]
  \setcounter[userpage][1]

  % Table of Contents
  \completecontent
\stopfrontmatter

\startbodymatter
\setuppagenumbering[conversion=numbers]
\setcounter[userpage][2]

\startchapter[
  title={chapter},
  reference=sec:chapter,
]

\startsection[
  title={section},
  reference=sec:section,
]

\stopsection

\stopchapter

\stopbodymatter

\stoptext

问题

如何将页码移动到页面的最底部,如下图所示:

页码

这是需要动态层

有关的

答案1

您可以使用height=fit(参见Wiki-setuplayout),这会将文本高度拉伸到最大,将页脚(包括页码)一直向下推。由于您可能不希望文本高度那么大,因此可以增加footerdistance。示例:

\setuplayout
  [topspace=\zeropoint,
    height=fit,
    footerdistance=2cm]

\setuppagenumbering
  [location={footer, right}]

\showframe
\starttext
  \null
\stoptext

截屏

要将页码向右移动,可以使用

\setuppagenumbering
  [location={footer, right, margin}]

答案2

Marco 已经回答了您的问题,但让我说明另一种直观地实现相同结果的方法。

图层是将内容放置在页面特定位置的便捷方式。例如,要将页码放置在页面的最底部,您可以使用

\setuppapersize[A6]

\definelayer
  [pagenumber]
  [
    width=\paperwidth,
    height=\paperheight,
    preset=rightbottom,
  ]

\setupbackgrounds[page][background=pagenumber, setups=setpagenumber]

\startsetups setpagenumber
  % Set the page number to be (2em, \lineheight) from the bottom right corner 
  % Note the `preset=rightbottom` above.
  %
  % The 2nd set of optional arguments are for the frame. For illustration I change
  % the color and font of the page number
  \setlayerframed
    [pagenumber]
    [
      x=2em,
      y=\lineheight,
    ]
    [
      frame=on,
      foregroundcolor=red,
      foregroundstyle=bold,
    ]
    {\pagenumber}
\stopsetups

% Disable default page numbering
\setuppagenumbering[location=]

\starttext
\input knuth
\input knuth
\input knuth
\stoptext

这使

在此处输入图片描述

如果您需要将页码放在非常规位置(如在许多 ConTeXt 手册中所做的那样),则此方法很有用。

相关内容