Schicker Titel/Überschrift mit horizontaler Linie und mehreren Textelementen in ConTeXt

Schicker Titel/Überschrift mit horizontaler Linie und mehreren Textelementen in ConTeXt

Ich möchte einen Titel wie den folgenden erstellen:

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

Es muss sein:

  • voll ausgestreckt mit der Seite
  • farbig unterstrichen (=)
  • es gibt keine Störungen oben, links, rechts oder in der Mitte (|, _)
  • Untertext, der durch ein Trennzeichen (•) abgetrennt ist, zentriert oder oben ausgerichtet und für optimale Passform angepasst wird.

Bisher habe ich Folgendes getan (1. Teil des Titels/der Überschrift):

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

Dies führt jedoch nicht zu den gewünschten Ergebnissen.

Wie mache ich es?

Antwort1

Ich verstehe die Spezifikationen nicht ganz, daher werde ich versuchen, diese Frage iterativ zu beantworten.

  • Ich gehe davon aus, dass die Breite von Prefix + Title < \textwdith. Wenn nicht, muss einer dieser beiden auch umbrechen.
  • Es ist nicht klar, wie Prefixund Titlewie vertikal ausgerichtet werden soll. Ich habe mich für die Mittenausrichtung entschieden (was lohiin ConTeXt so heißt).

Konzeptionell ist die einfachste Methode die Verwendung von TABLES. Das grundlegende Makro lautet also:

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

Jetzt müssen wir nur noch die Einstellungen vornehmen, table:titleum die richtige Formatierung zu erhalten. Dies geht folgendermaßen:

\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

Das ist es!

Hier ist der vollständige Code mit der Ausgabe:

\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

was gibt

Bildbeschreibung hier eingeben

Die oberen und seitlichen Rahmen dienen \showframelediglich dazu, anzuzeigen, dass die Tabelle bis an den Rand der Seitenbegrenzung reicht.

verwandte Informationen