问题

问题

问题

\pagenumber不反映conversion前言与正文上下文中的属性值。前言使用罗马数字,正文使用普通文本。

代码

显示问题的最小工作示例:

\setuppapersize[letter][letter]

% See: https://tex.stackexchange.com/a/128858/2148
\setuplayout[
  % Allow text to be flush with the top
  topspace=\zeropoint,
  % Stretch the text to its maximum (to place page number at very bottom)
  height=fit,
  % Allow text to be flush with the bottom
  footerdistance=\zeropoint,
]

  \setupcolors[state=start]

\definecolor[colourhighlight][h=F5F6CE]
\definecolor[colourtocseparator][colourtertiary]

% Use Roman numerals for the front matter
\definestructureconversionset[frontpart:pagenumber] [] [romannumerals]

% Put a coloured box around the page number
\setuppagenumbering[
  command={\inframed[
    frame=no,
    background=color,
    backgroundcolor=colourhighlight,
    width=2em,
    height=2em,
  ]{\pagenumber}},
]

  % Right-align the page number in the footer and assume single-sided pages
  \setuppagenumbering[location={footer,right,margin},alternative=singlesided]

  % Do not define a double-sided document environment.
  % See: https://tex.stackexchange.com/a/122349/2148
  \setupmakeup[standard][page=yes, doublesided=no]

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

  % Title page (front cover)
  \startstandardmakeup
    Title page
  \stopstandardmakeup

  % Copyright page
  \startstandardmakeup
    Copyright
  \stopstandardmakeup

  % Table of Contents
  \completecontent
\stopfrontmatter

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

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

  \input knuth

  \stopchapter

\stopbodymatter

\stoptext

实际结果

前言的输出显示正常页码(这不是所希望的:它应该是罗马数字)旁边是转换为罗马数字的页码:

前言页码

正文的输出显示正常页码(这是理想的),旁边是转换为常规数字的页码:

正文页码

预期成绩

我期望页码保留转换值的上下文,因此在\inframed宏中显示为罗马数字。我试图在前言中完成以下操作:

内嵌框架内的罗马数字

如果可能的话,我宁愿避免创建层。

问题

\framed如何在(或\inframed)中创建根据以下指定的转换值格式化的页码:

\setuppagenumbering[conversion=romannumerals]

有关的

答案1

简短答案

改成。\pagenumber\userpagenumber

扩展

让我们看看这里发生了什么。运行context --pipe并输入

*\显示\页码
> \pagenumber=宏:
->\strc_counters_raw \s!用户页面。

所以,\pagenumber因此生的计数器 的 值\s!userpage.

另一方面,

*\显示\用户页码
> \userpagenumber=宏:
->\directconvertedcounter \s!用户页 \empty 。

所以\userpagenumber已转换计数器 的 值\s!userpage.

相关内容