我想改变目录的样式:
章节条目不应该有虚线。(见下文)没有编号的章节应该没有左边距。(见下文)- 无论页码是一位数还是两位数,虚线都应以相同的“x 位置”结束。
这是我当前最小(并非完全)的工作示例代码:
\setupcombinedlist[content][
alternative=c,
aligntitle=no % has no effect?
]
\setuplist[chapter][
alternative=b, % has no effect?
width=1.4em,
style={\ss\bf},
aligntitle=no, % has no effect?
before={\blank[4*big]}
]
\setuplist[section][width=2.2em]
\setupinterlinespace[line=3.4ex] % more line spacing
\setupwhitespace[medium] % space between paragraphs
% maybe there is a better way decrease line spacing for TOC?…
\startsectionblockenvironment[frontpart]
\setupinterlinespace[line=1.5ex]
\stopsectionblockenvironment
\starttext
\startfrontmatter
\completecontent
\chapter{Bla}
\stopfrontmatter
\page[8] % to get two-digit numbers
\startbodymatter
\chapter{Foo}
\section{Foo Foo}
\section{Foo Foo}
\chapter{Bar}
\section{Bar Bar}
\chapter{Baz}
\section{Baz Baz}
\stopbodymatter
\startbackmatter
\chapter{Bibliography}
\stopbackmatter
\startappendices
\chapter{CD Contents}
\stopappendices
\stoptext
注释结果:
它看起来有点像这个 LaTeX 版本:
\documentclass[a4paper]{scrbook}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[tocfullflat]{tocstyle}
\usetocstyle{KOMAlike}
\begin{document}
\tableofcontents
\frontmatter
\chapter{Bla}
\mainmatter
\setcounter{page}{8} % to get two-digit numbers
\chapter{Foo}
\section{Foo Foo}
\section{Foo Foo}
\chapter{Bar}
\section{Bar Bar}
\chapter{Baz}
\section{Baz Baz}
\backmatter
\chapter{Bibliography}
\appendix
\chapter{CD Contents}
\end{document}
更新 1:
问题 1 的解决方案非常简单:alternative=c
必须从中删除\setupcombinedlist[content]
,因为此样式传递给全部子列表。而是\setupcombinedlist[section,subsection][alternative=c]
仅为章节和子章节启用虚线。
更新 2:
问题 2 似乎在较新的 ConTeXt 版本中不存在。屏幕截图是使用版本 2012.05.30 11:26 创建的。但版本 2013.01.08 01:19 可以正常工作。
答案1
以下是我针对您最后三点提出的解决方案。实际上,它同时涵盖了所有三点。让我们开始吧:
首先,我们定义一个新的列表替代方案。这是一种抽象且非常灵活的设置列表布局的方法(顺便说一下,节标题使用类似的机制)。我称之为dotfix
:
\unprotect
\definelistalternative
[dotfix]
[distance=0pt,
width=2em,
stretch=10em,
filler=\hskip.5em\gleaders\hbox to .5em{\hss.\hss}\hfill\relax,
renderingsetup=\??listrenderings:abc]
\protect
该width
设置调整点和页码之间的距离,这就是您想要的。现在您可以使用新创建的样式,而不是默认样式:
\setupcombinedlist
[section]
[alternative=dotfix]
其余部分或多或少是从您的示例中复制而来的。
\setuplist[chapter]
[alternative=b,
style=sansbold,
before={\blank[4*big]}]
\setuplist
[section]
[width=2.2em]
\setupwhitespace
[medium]
\startsectionblockenvironment[frontpart]
\setupinterlinespace [line=1.5ex]
\stopsectionblockenvironment
\starttext
\startfrontmatter
\completecontent
\startchapter [title=Bla]
\stopchapter
\stopfrontmatter
\startbodymatter
\dorecurse{3}{
\startchapter [title=Foo]
\startsection [title=Bar]
\stopsection
\startsection [title=Another section]
\stopsection
\stopchapter}
\setcounter [userpage] [1234]
\stopbodymatter
\startbackmatter
\startchapter [title=Bibliography]
\stopchapter
\stopbackmatter
\stoptext