
Я хочу создать заголовок вроде следующего:
_________________________________________________________________________________
| | | 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
иTitle
должно быть выровнено по вертикали. Я выбрал выравнивание по центру (так называетсяlohi
в ConTeXt)
Концептуально, самый простой метод — использовать ТАБЛИЦЫ. Итак, базовый макрос:
\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
только для того, чтобы показать, что таблица простирается до края страницы.