Textboxen


Gelegentlich wird ein Sachverhalt mit der Zitat-Umgebung nicht ausreichend hervorgehoben. Wichtige Hinweise oder Warnungen könnten in einem Rahmen, mit roter Füllfarbe erscheinen. Hierzu kann man folgende Möglichkeiten aufgreifen:

(A) Farbiges Rechteck

#rect(fill: red)[Achtung!]

#rect(fill: red, inset: 8pt, radius: 4pt)[Blockzitat]

  • Für die obere Box wird als Füllung ein sprechender Farbname "aqua" benutzt. Bei der unteren Box wird stattdessen die luma-Funktion verwendet, die eine Graustufen-Skala erzeugt.
  • Mit dem Parameter inset wird die beidseitige Einrückung des Textes gesteuert,
  • und der Parameter radius rundet die Ecken der Box ab.

(B) Eigene Umgebungen definieren

Beispiel 1

Mittels der let-Funktion können eigene Variablen programmiert werden. Für das erste Beispiel soll eine Funktion namens "note" erzeugt werden:

#let note(body) = {block(fill: rgb("#f8f8f8"), stroke: 1pt + rgb("#e0e0e0"), width: 100%, radius: 4pt, inset: 10pt, body)}

Die Parameter steuern das Aussehen der Box:

  • fill = Flächenfarbe als RGB-Hexcode,
  • stroke = Farbe und Stärke der Umrandungslinie,
  • width = Breite der Box,
  • radius = Abrundung der Ecken,
  • inset = beidseitiges Einrücken des Textes.

Mit Aufruf der (neu programmierten) Funktion note (Code-Zeile 56) wird der Box-Text zwischen eckige Klammern gesetzt.

Beispiel 2

Es soll eine Infobox mit einem dicken Randstreifen erzeugt werden. Wir nennen sie "infoxbox":

#let infobox = rect.with(fill: luma(240), stroke: (left: 0.25em))

Laut Definition handelt es sich um ein Rechteckt (rect), bei dem eine Graustufen-Füllung (fill: luma) erfolgt und der linke Rand (stroke: left) auf dick gesetzt wird.

Auch hier wird die neue Funktion aufgerufen (Code-Zeile 52) und der Box-Text zwischen den eckigen Klammern plaziert.

Beispiel 3

Es soll eine Funktion namens "warnung" definiert werden.

#let warning(body) = block(above: 2em, stroke: 0.5pt + red, width: 100%, inset: 14pt)[#set text(font: "Noto Sans", fill: red) #place(top + left, dy: -6pt - 14pt, dx: 6pt - 14pt, block(fill: white, inset: 2pt)[*Warnung*]) #body]

Die Anweisung besteht diesmal aus zwei Teilen:

  • Zum einen der Defintion einer großen Rahmenbox (Code-Zeilen: 49 und 50),
  • zum anderen aus der Definition einer kleineren Box (Code-Zeilen 52 bis 57), die im Beispiel das Wort "Warnung" enthält.
  • Außerdem wird die Schriftart für diese Box auf "Noto Sans" gewechselt.
  • Die Parameter stroke (Umrißlinie), width (Box-Breite), fill (Füllfarbe) und inset (Einrückung des Textes) wurden bereits vorgestellt.
  • Neu ist hier das place-Argument top + left, was den Text "Warnung" in die linke obere Rahmenecke verschiebt. Über die Parameter dy und dx kann man weiter an der Position fummeln.

In der Anwendung wird zum einen der Box-Titel festgelegt, hier das Wort "Warnung". Der Box-Inhalt wird dann in der neu programmierten Funktion warning (Code-Zeile 62) zwischen RUNDEN (nicht eckigen) Klammern plaziert.

Eine vergleichbare Box könnte als Funktion "aufgabe" o.ä. definiert werden, diesmal z.B. in blauen Farben.

Alle drei gezeigten Box-Beispiele können mit Schriftarten und Farben nach eigenen Vorstellungen angepaßt werden.