如何使 ConTeXt 目录中的条目居中对齐?

如何使 ConTeXt 目录中的条目居中对齐?

在我的目录中,part定义如下:

\setuplist[part][pagenumber=no]

我想将该部分的标题居中对齐,以便它在目录中显示如下:

 __________
| Contents |
|          |
|  Part 1  |
| Ch. 1..1 |
| Ch. 2..5 |
| Ch. 3.10 |
|__________|

我查阅了关于设置列表在 ConTeXt wiki 上,但我看不到水平对齐条目的选项。

  • 如何使目录中的部分条目居中对齐?

答案1

定义专用的列表替代方案可能是最明智的选择:

\unprotect

%%% We’ll wrap the header title into a frame for convenience.
\defineframed [centered_list_frame] [
  frame=off,
  width=broad,
  align=middle,
]

%%% A new list alternative employing the frame. The three args are:
%%% #1 -> Item number.
%%% #2 -> Item title.
%%% #3 -> Page number (ignored in this example).
\definelistplacement [centered_list_placement]#1#2#3{%
  \centered_list_frame{\words\sc Part #1:\hskip\emwidth#2}%
}

%%% Here instruct the part list to use the new list alternative.
\setuplist [part] [alternative=centered_list_placement,]

\protect

\starttext

\placelist [part,chapter]

\dorecurse{3} {\part{foo} \dorecurse{5}{\chapter{bar}}}

\stoptext

这样,您就可以完全控制构成目录条目的三个项目,并可以随意将它们居中对齐。

居中部分列表标题

相关内容