我想创建如下标题:
_________________________________________________________________________________
| | | Sufix |
| Prefix unwrapped (CAPS) | Unwrapped title (Small Caps) | wraped |
| | | as needed |
=================================================================================
Ba ba Ba ba
• Sub text 1 • Sub text 2 • Sub text 3 • Sub text 4 •
Ba Black Sheep
它必须是:
- 占满整个页面
- 彩色下划线(=)
- 顶部、左侧、右侧或中间均无任何问题 (|, _)
- 子文本由分隔符 (•) 分隔,居中或顶部对齐并进行调整以达到最佳效果。
到目前为止我所做的是(标题/页眉的第一部分):
\define[3]\TITLE{\midaligned{\framed[frame=off,align=middle,bottomframe=on,framecolor=blue]
{\inframed[frame=off]{{\tfa\WORD#1}: {\tfb\sc#2}}\inframed[frame=off]{{\tfa, #3}}}}}
但这并没有产生预期的结果。
我该怎么做?
答案1
我不完全了解规格,所以让我尝试反复回答这个问题。
- 我假设的宽度为
Prefix + Title < \textwdith
。如果不是,那么这两个中的一个也必须换行。 - 不清楚如何
Prefix
以及应该如何垂直对齐。我选择了中间对齐(在 ConTeXt 中Title
称为)lohi
从概念上讲,最简单的方法是使用表。因此,基本宏是:
\define[3]\TITLE
{\startTABLE[setups=table:title]
\NC #1 \NC #2 \NC #3 \NC \NR
\stopTABLE}
现在,我们需要做的就是定义设置table:title
以获得正确的格式,可以按如下方式完成:
\startsetups table:title
\setupTABLE[each][each][frame=off,bottomframe=on,rulethickness=2bp]
\setupTABLE[column][1][style=WORD, align=lohi]
\setupTABLE[column][2][style=\sc, align=lohi]
\setupTABLE[column][3][align={hyphenated,tolerant}]
\stopsetups
就是这样!
以下是带有输出的完整代码:
\startsetups table:title
\setupTABLE[each][each][frame=off,bottomframe=on,rulethickness=2bp]
\setupTABLE[column][1][style=WORD, align=lohi]
\setupTABLE[column][2][style=\sc, align=lohi]
\setupTABLE[column][3][align={hyphenated,tolerant}]
\stopsetups
\define[3]\TITLE
{\startTABLE[setups=table:title]
\NC #1 \NC #2 \NC #3 \NC \NR
\stopTABLE}
\showframe % To visualize the page frame
\starttext
\TITLE{prefix}{Unwrapped title}{\dorecurse{5}{A very long text\space}}
\stoptext
这使
顶部和侧面的框架只是为了\showframe
显示表格延伸到页面边界的边缘。