Skip to content

U0303 Headlineschrift oder Fliesstextschrift

Aufgabenstellung

Schreibe ein Processing Sketch, der einen Text in Lesegröße und einen Text in Schaugröße mit einer zufällig ausgewählten Schriftart, zeigt. Der Name der Schrift soll in Konsultationsgröße unten rechts angezeigt werden. Führe den Sketch mehrfach aus und entscheide jeweils, ob es sich bei der zufällig gewählten Schrift um eine Headlineschrift oder Fließtextschrift handelt.

Lernziel: Schriftkunde, Schulung des grafischen Verständnisses, Hierarchien im Layout.

Umsetzung

text Schrift: „Waseem“ → Headlineschrift
Dieses prägnantes Erscheinungsbild eignet sich hervorragend für Überschriften und plakative Einsätze, während sich diese Formgebung in längeren Fließtexten schnell ermüdend lesen würde.

text Schrift: „Wingdings“ → Headlineschrift
Der verwendete Font ist eine reine Symbol-/Piktogramm-Schrift: Sie liefert keine lesbaren Buchstaben, sondern dekorative Icons. Solche Fonts sind ausschließlich für plakative, gestalterische Akzente geeignet – als Headlineschrift also brauchbar, für Fließtext hingegen komplett unbrauchbar.

text Schrift: „Mukta Mahee“ → Fließtextschrift
Diese klar strukturierte, gut lesbare Schrift ist für Lesestrecken optimiert – ideal also als Fließtextschrift, weniger markant für plakative Headlines.

text Schrift: „Songti TC“ → Fließtextschrift
In Fließtextgröße sorgt die Schrift für gute Leserlichkeit und typografische Ruhe. Für plakative Headlines wäre ihr Erscheinungsbild hingegen zu fein und wenig markant.

Kommentare

Insgesamt zeigt die Übung, wie entscheidend die passende Schriftwahl für Leserführung und visuelle Klarheit ist.

Code

import processing.awt.PGraphicsJava2D;
import java.awt.GraphicsEnvironment;
PFont fontReading;    
PFont fontDisplay;    
PFont fontName;       
String chosenFontName;
String bodyText     = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
String headlineText = "TYPOGRAPHY";
int totalRuns  = 5;   Durchläufe
int currentRun = 0;   
void setup() {
  size(800, 600, JAVA2D);
}

void draw() {
  if (currentRun >= totalRuns) {
    println("Alle " + totalRuns + " Outputs erstellt.");
    noLoop();
    return;
  }

  String[] families = GraphicsEnvironment
                       .getLocalGraphicsEnvironment()
                       .getAvailableFontFamilyNames();
  chosenFontName = families[int(random(families.length))];

  fontReading = createFont(chosenFontName, 24);
  fontDisplay = createFont(chosenFontName, 96);
  fontName    = createFont(chosenFontName, 12);

  background(255);
  float margin = 50;
  fill(0);

  textFont(fontReading);
  textSize(24);
  textAlign(LEFT, TOP);
  text(bodyText, margin, margin, width - 2*margin, height - 2*margin);

  textFont(fontDisplay);
  textSize(96);
  textAlign(CENTER, TOP);
  float yHeadline = margin + textAscent() + textDescent() + 40;
  text(headlineText, width/2, yHeadline);

  textFont(fontName);
  textSize(12);
  textAlign(RIGHT, BOTTOM);
  text(chosenFontName, width - margin/2, height - margin/2);

  String filename = "output-" + nf(currentRun+1, 2) + ".png";
  saveFrame(filename);

  println("Run " + (currentRun+1) + " von " + totalRuns);
  println("  Gewählte Schrift: " + chosenFontName);
  println("  Datei gespeichert als: " + filename);

  currentRun++;
}