背景

背景

背景

希望定制目录。

问题

示例中存在以下问题:

  • 目录中的最后一项没有超链接。
  • 所有超链接均关闭。

请注意,章节和部分是文档中的单独页面。

下图中,红框围住了无法点击的条目:

缺失的环节

最小工作示例

以下是重现该问题的代码:

\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,
]

相关内容