我正在使用 serupheadertexts 来定义文档中的标题:
\setuphead[chapter] [number=yes]
\setupheadertexts[{\getmarking[chapter]}][][][]
我想访问章节编号,但它没有显示。
我尝试过这个:
\setupheadertexts[{\getnumber[chapter] \getmarking[chapter]}][][][]
那里没有显示任何数字。
如何在 ConTeXt 的页眉中显示章节编号?
答案1
您可以使用命令通过名称访问当前活动结构组件的节计数器的第一个、当前和最终值\somenamedheadnumber
。
\somenamedheadnumber
接受两个强制参数:
- 这姓名结构元素,例如部分,章节, 和
- 标识符之一第一的,当前的,最后的确定要检索的值。
例子:
%% the initial value of the chapter counter
\somenamedheadnumber{chapter}{first}
%% the number of the final section in the current chapter
\somenamedheadnumber{section}{last}
%% the number of the currently active subsubsection;
%% in the page header this will retrieve the number of the
%% structural last active on the current page
\somenamedheadnumber{subsubsection}{current}
作为简写,\namedheadnumber{<name>}
相当于
\somenamedheadnumber{<name>}{current}
。
一个更广泛的示例展示了结构计数器的各种 getter 的实际作用:
\setuppagenumbering [location=footer,alternative=doublesided]
\startsetups header.outer
Chapter
\space
\namedheadnumber{chapter}
\space of \space
\somenamedheadnumber{chapter}{last}
\space --- \space
{\cap\getmarking[chapter]}
\stopsetups
\startsetups header.inner
Section
\space
\namedheadnumber{section}
\space of \space
\somenamedheadnumber{section}{last}
\space --- \space
{\italic\getmarking[section]}
\stopsetups
\setupheadertexts
[\setups{header.outer}]
[\setups{header.inner}]
\starttext
\getrandomnumber\i25
\completecontent\page
\dorecurse{\i}{
\getrandomnumber\j27
\startchapter[title=foo]
\input knuth
\dorecurse{\j}{
\startsection[title=bar]
\input ward\par\input dawkins
\stopsection
}
\stopchapter
}
\stoptext
答案2
获取标题中的章节编号的正常方式是使用\getmarking[chapternumber]
。
\setupheadertexts[{\getmarking[chapternumber]--\getmarking[chapter]}]
\starttext
\startchapter[title={First chapter}, marking={Mark for first chapter}]
\input knuth
\stopchapter
\startchapter[title={Second chapter}, marking={Mark for second chapter}]
\input knuth
\stopchapter
\stoptext
这使