ConTeXt 中带有水平线和多个文本元素的精美标题/标题

ConTeXt 中带有水平线和多个文本元素的精美标题/标题

我想创建如下标题:

_________________________________________________________________________________
|                             |                                    | 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显示表格延伸到页面边界的边缘。

相关内容