Título/título sofisticado com régua horizontal e vários elementos de texto no ConTeXt

Título/título sofisticado com régua horizontal e vários elementos de texto no ConTeXt

Quero criar um título como o seguinte:

_________________________________________________________________________________
|                             |                                    | 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

Precisa ser:

  • esticado completamente com a página
  • sublinhado com cor (=)
  • não há problemas no topo, esquerda, direita ou meio (|, _)
  • Subtexto separado por um caractere separador (•) alinhado no centro ou na parte superior e ajustado para ajuste ideal.

Até agora o que fiz foi (1ª parte do título/cabeçalho):

\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}}}}}

Mas isso não produz os resultados desejados.

Como eu faço isso?

Responder1

Não entendo completamente as especificações, então deixe-me tentar responder iterativamente.

  • Estou assumindo que a largura de Prefix + Title < \textwdith. Caso contrário, um desses dois também deverá ser embrulhado.
  • Não está claro como Prefixe Titlecomo deve ser alinhado verticalmente. Eu escolhi o alinhamento ao meio (que é chamado lohino ConTeXt)

Conceitualmente, o método mais simples é usar TABLEs. Então, a macro básica é:

\define[3]\TITLE
  {\startTABLE[setups=table:title]
      \NC #1 \NC #2 \NC #3 \NC \NR
    \stopTABLE}

Agora, tudo o que precisamos fazer é definir as configurações table:titlepara obter a formatação correta, o que pode ser feito da seguinte forma:

\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

É isso!

Aqui está o código completo com a saída:

\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

que dá

insira a descrição da imagem aqui

Os quadros superior e lateral servem \showframeapenas para mostrar que a tabela está estendida até a borda do limite da página.

informação relacionada