问题
宏\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
.