ConTeXt:在目录中获取正确的换行符

ConTeXt:在目录中获取正确的换行符

我正在使用 mikep 描述的目录:ConTeXt:我可以从位置列表目录中排除条目吗?

我受到 Max Chernoff 的回答的启发,对目录中的各个部分进行了样式设计:上下文:自定义章节标题

在目录中,我想要一个水平布局,每个部分的名称及其页码都在同一行。我的 MWE 实现了这一点,但存在 3 个问题:

1 - 部分可以延伸到右边距。我想要在 之前换行Another~section~looooooooong · 3

2 - 我的宏 在目录中的每个章节名称和编号后myTOC插入一个。我可以阻止新章节前的最后一项出现这种情况吗?\hskip 10mm

3 - 我在章节名称的单词之间添加了波浪号,这样名称就不会在目录中换行。有没有办法使用空格而不换行? 目录

\showframe
\define[3]\myTOC{{#2}~·~{#3}\hskip 10mm}%   Write a section TOC entry

\setuphead[part][placehead=yes, number=no,]
\definehead[mypart][part][number=no,]
\setuphead[chapter][sectionsegments={chapter:section},]
\setuphead[section][sectionsegments={chapter:section},]

\setuplist[part][style={\bfa}, pagenumber=no,]  
\setuplist[chapter][style={\bf}, pagenumber=no,]    
\setuplist[chapter,section][headnumber=no,]
\setuplist[section][command=\myTOC,alternative=command,]
%\setuplist[section][alternative=d,]
\setupcombinedlist[content][list={part,chapter,section}]

\starttext

\unhyphenated{ {\raggedright % no bad line breaks in horizontal
\completecontent }}
\chapter[title={Introduction chapter}]
\section[title=Section~one]\samplefile{douglas}
\section[title=Section~two]\samplefile{douglas}
\section[title=Third~section]\samplefile{douglas}
\section[title=Another~section~looooooooong]\samplefile{douglas}
\section[title=Yet~another~section]\samplefile{douglas}
\section[title=A~following~section]\samplefile{douglas}
\stoptext

答案1

您永远不需要插入这样的手动波浪线。要将东西放在一起,请将其放入一个盒子中(在芭芭拉的评论之后也有一些支撑):

\define[3]\myTOC{\dontleavehmode\hbox{\begstrut #2 · #3\endstrut}\hskip 10mm}%

另外,除了\unhyphenated和之外\raggedright,您还可以尝试

\startalign[flushleft,broad]
\completecontent
\stopalign

因此,

\showframe

\setuphead[part][placehead=yes,number=no,]
\definehead[mypart][part][number=no,]
\setuphead[chapter][sectionsegments={chapter:section},]
\setuphead[section][sectionsegments={chapter:section},]

\setuplist[part][style={\bfa}, pagenumber=no,]  
\setuplist[chapter][style={\bf}, pagenumber=no,]    
\setuplist[chapter,section][headnumber=no,]

\define[3]\myTOC{\dontleavehmode\hbox{\begstrut #2 · #3\endstrut}\hskip 10mm}%

\setuplist[section][
    alternative=command,
    command=\myTOC,
]

\setupcombinedlist[content][list={part,chapter,section}]

\starttext
\startalign[flushleft,broad]
\completecontent
\stopalign

\chapter[title={Introduction chapter}]
\section[title=Section one]\samplefile{douglas}
\section[title=Section two]\samplefile{douglas}
\section[title=Third section]\samplefile{douglas}
\section[title=Another section looooooooong]\samplefile{douglas}
\section[title=Yet another section]\samplefile{douglas}
\section[title=A following section]\samplefile{douglas}
\stoptext

我得到以下输出:

目录

如果我们展示盒子和支柱(\showboxes\showstruts),它看起来像这样:

带箱子和支柱

来自旧答案且没有支柱的图像:

目录

相关内容