背景

背景

背景

希望将页码放在前言目录中每个部分标题的左侧,类似于以下内容(其中“此处的标题”是部分标题,页码是超链接):

目录图片

默认情况下,“替代”样式(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]

不要使用设置,而是将命令应用于各部分的列表条目格式。

相关内容