背景
希望定制目录。
问题
示例中存在以下问题:
- 目录中的最后一项没有超链接。
- 所有超链接均关闭。
请注意,章节和部分是文档中的单独页面。
下图中,红框围住了无法点击的条目:
最小工作示例
以下是重现该问题的代码:
\setupinteraction[state=start,]
\setuphead[chapter,section][page=yes,continue=no,]
\define[3]\SectionTOC{#3 #2}
% Using alternative causes the cross-reference to be off.
\setuplist[section][
alternative=interactive,
command=\SectionTOC,
]
\starttext
\placecontent
\startchapter[title=Chapter]
\dorecurse{4}{
\startsection[title=Section]
Level \recurselevel.
\stopsection
}
\stopchapter
\stoptext
问题
如何使用交互式替代方案为自定义目录生成正确的超链接?
答案1
从邮件列表中,\noindent
需要消除半行偏移:
% The table of contents links get shifted up. This code adds a
% \noindent so that the TOC links do not get shifted.
\unprotect
\startsetups[\??listrenderings:interactive]
\edef\p_command{\listalternativeparameter\c!command}%
\ifx\p_command\empty
[\currentlist: \currentlistentrynumber\space -- \currentlistentrytitle\space -- \currentlistentrypagenumber]%
\else
\listparameter\c!before
\noindent\hbox \strc_lists_get_reference_attribute\v!all \strc_lists_get_destination_attribute {
\p_command\currentlistentrynumber\currentlistentrytitle\currentlistentrypagenumber
}
\listparameter\c!after
\fi
\stopsetups
\protect
接下来,将以下内容添加\endgraf
到列表中:
\setuplist[chapter][
before={\endgraf\blank[big]},
after={\blank[medium]},
]
\setuplist[section,sectionpicture][
before=\endgraf,
]