背景
希望将页码放在前言目录中每个部分标题的左侧,类似于以下内容(其中“此处的标题”是部分标题,页码是超链接):
默认情况下,“替代”样式(a 到 f)始终将页码放在章节标题的右侧。例如:
\setupcombinedlist[content][
alternative=a,
]
问题
我无法确定如何检查是否在目录中显示章节标题。
代码
以下是我目前所掌握的信息:
\startsetups [list:TOC]
\starttabulate
\currentlistentrypagenumber{} \hskip 1em \NC \currentlistentrytitle{} \NR
\stoptabulate
\stopsetups
\definelistalternative
[TOC]
[renderingsetup=list:TOC]
% Format the ToC style.
\setupcombinedlist[content][
alternative=TOC,
]
\starttext
\completecontent
\startchapter [title=alpha] \stopchapter
\startsection[title=alphasec] \stopsection
\startchapter [title=beta] \stopchapter
\startsection[title=alphasec] \stopsection
\startchapter [title=gamma] \stopchapter
\startsection[title=alphasec] \stopsection
\stoptext
问题
如何确定是否应该显示章节标题?
想法
维基百科上的代码显示:
\doifelse\currentlistentrylocation{\structureheadlocation{chapter}}
{{\bfb\currentlistentrytitle}}
{ \currentlistentrytitle}\NC\NR
但是,代码中存在许多语法错误,并且条件表达式假设目录被放置在每一页上。此假设允许它解析namedstructureheadlocation值。对于常规目录,没有“当前章节”,因此条件失败。
有关的
答案1
来自邮件列表:
\define[3]\SectionListEntry
{\par \leftaligned\bgroup
\hbox to 2em{\color[red]{#3}}%
\hskip 1em
\vtop{\hsize\dimexpr\textwidth-3em\relax#2}
\egroup \par}
\setuplist[chapter][headnumber=no,pagenumber=no,style=\bfc]
\setuplist[section][alternative=command,command=\SectionListEntry]
不要使用设置,而是将命令应用于各部分的列表条目格式。