Título/título elegante con regla horizontal y múltiples elementos de texto en ConTeXt

Título/título elegante con regla horizontal y múltiples elementos de texto en ConTeXt

Quiero crear un título como el siguiente:

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

Necesita ser:

  • estirado completo con de la página
  • subrayado con color (=)
  • no hay molestias arriba, izquierda, derecha o medio (|, _)
  • Subtexto que está separado por un carácter separador (•) que está alineado en el centro o en la parte superior y ajustado para un ajuste óptimo.

Hasta ahora lo que he hecho es (primera parte del título/encabezado):

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

Pero esto no produce los resultados deseados.

¿Cómo lo hago?

Respuesta1

No entiendo completamente las especificaciones, así que déjame intentar responder esto de forma iterativa.

  • Supongo que el ancho de Prefix + Title < \textwdith. Si no, entonces uno de estos dos también debe envolverse.
  • No está claro cómo Prefixy Titlecómo se debe alinear verticalmente. Elegí alineado medio (que se llama lohien ConTeXt)

Conceptualmente, el método más sencillo es utilizar TABLAS. Entonces, la macro básica es:

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

Ahora, todo lo que tenemos que hacer es definir las configuraciones table:titlepara obtener el formato correcto, lo que se puede hacer de la siguiente manera:

\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

¡Eso es todo!

Aquí está el código completo con el resultado:

\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

lo que da

ingrese la descripción de la imagen aquí

Los marcos superior y lateral solo sirven \showframepara mostrar que la tabla se extiende hasta el borde del límite de la página.

información relacionada