Buchstabenkünstler

ASCII-Grafiken erstellen mit cadubi, figlet und boxes

01.12.2003
Lustige Rahmen in E-Mails, farbenfrohe Login-Texte und dreidimensionale Fonts - und das alles nur aus Buchstaben: Die Tools, die wir hier vorstellen, setzen Ihrer Kreativität keine Grenzen.

Kaum hat der Mensch das Alphabet erfunden, wird es ein paar Tausend Jährchen später auch schon zweckentfremdet: In der Zeit der Grün-Grün-Monitore und Textkonsolen entstand die so genannte ASCII-Art, die Kunst, mit Buchstaben Bilder zu malen. Musste man damals noch mühsam im Text-Editor Zeichen für Zeichen setzen, erleichtern heute spezielle Werkzeuge das Malen.

Eine ASCII-Grafik kommt in der Regel ohne Umlaute daher. Sie eignet sich deshalb zum Beispiel für plattformübergreifende und auch auf älteren Systemen darstellbare Info-Grafiken (Abbildung 1). Vor allem aber macht das Zeichnen mit Buchstaben Spaß: Mit einer liebevoll gestalteten /etc/issue oder /etc/motd beispielsweise verleihen Sie Ihrem System schon beim Login eine ganz persönliche Note. Diesem Aspekt wenden wir uns im Folgenden zu.

Abbildung 1: Eine Infografik im ASCII-Format

Kasten 1: Installationshinweise

cadubi liegt der LinuxUser-CD bei. Entpacken Sie das Tar-Archiv mit tar xvzf cadubi_1.2.tar.gz und wechseln mit cd in das cadubi-Verzeichnis. Dort starten Sie das Perl-Skript mit ./cadubi. cadubi benötigt Perl 5.002 oder höher, außerdem das Perl-Modul Term::ReadKeyREADME im Paket TermReadKey-2.21.tar.gz verrät Ihnen Näheres zur Installation des Moduls, ebenso wie der Befehl perldoc -q cpan .

Von figlet haben wir neben dem Quellcode auch RPM- und Deb-Pakete auf die LinuxUser-CD gepackt, die Sie mit den Werkzeugen Ihrer Distribution installieren. Wer figlet selbst kompilieren will, entpackt zunächst das Archiv mit dem Befehl tar xvzf figlet221.tar.gz. Standardmäßig installiert figlet Programme, Hilfskripte, Fonts und Manpage nach /usr/local; um das zu ändern, passen Sie die Variablen DESTDIRDEFAULTFONTDIR und MANDIR im Makefile an. Dort müssen Sie auch die Zeile

DEFAULTFONTDIR = fonts

mit dem Hash-Zeichen # auskommentieren, da die Installation der Fonts sonst fehlschlägt. Existiert das Verzeichnis /usr/local/man/man6, in das Figlet seine Manpage kopieren will, bei Ihnen noch nicht, legen Sie es mit mkdir -p /usr/local/man/man6 an.

Mit make figlet erzeugen Sie nun die beiden Binaries figlet und chkfont. Jetzt müssen Sie nur noch die Shell-Skripte figlist und showfigfonts, wie in [5] beschrieben, mit dem Befehl chmod +x figlist showfigfonts ausführbar machen. Nach einem von Ihnen als root aufgerufenen make install befinden sich dann alle Programmteile am gewünschten Ort.

Zur Installation von boxes greifen Sie auf das fertige RPM-Paket zurück, das auf der LinuxUser-CD oder auf der Boxes-Homepage [2] zu finden ist.

Der Schönschreiber

Beginnen wir mit figlet [1], einem Tool, das unterschiedliche Schriftbilder hervorzaubert, zum Beispiel den Debian-Schriftzug in Abbildung 2. Debianern genügt der Befehls apt-get install figlet, um den Schönschreiber auf die Festplatte zu bannen. Auch die Utilities cadubi und boxes, mit denen wir uns noch beschäftigen werden, installieren sie via apt-get. Wie Sie die drei hier vorgestellten Tools auf anderen Distributionen installieren, behandelt Kasten 1.

Abbildung 2: cadubi erstellt eine /etc/motd

Doch zurück zu figlet. Das Programm stellt eingegebene Texte in ASCII-Schriftzügen dar: das sind Fonts, die komplett aus einzelnen Zeichen bestehen und sich damit ideal für die Kommandozeile eignen, die nur einen einzigen Zeichensatz mit fester Breite verwendet.

Mit der Anweisung figlist erhalten Sie eine alphabetische Liste der verfügbaren Fonts für figlet. Am besten schicken Sie den Befehl durch den Pager less, da die Ausgabe sonst an Ihnen vorbeirauscht:

> figlist | less
Default font: standard
Font directory: /usr/share/figlet
Figlet fonts in this directory:
3-d
3x5
[…]
big
[…]

Schriftmuster der figlet-Fonts zeigt das Kommando showfigfonts.

> showfigfonts | less
[…]
big :
 _     _
| |   (_)
| |__  _  __ _
| '_ \| |/ _` |
| |_) | | (_| |
|_.__/|_|\__, |
          __/ |
         |___/
[…]

Die per showfigfonts und figlist entdeckten Fonts übergeben Sie figlet mit der Option -f, gefolgt vom Text, den Sie anzeigen wollen. So schreibt figlet -f caligraphy Linux das Wort Linux in geschwungenen, altertümlichen Lettern.

Standardmäßig umbricht figlet nach 80 Zeichen, -t passt den Umbruch automatisch an die Größe des benutzten Terminals an. Mit -w geben Sie die Textweite fest vor, beispielsweise umbricht die Option -w 40 nach 40 Zeichen.

Wie der Text ausgerichtet werden soll, bestimmen Sie mit den Parametern -c (zentriert), -l (linksbündig) und -r (rechtsbündig). -R schreibt den Text sogar von rechts nach links.

Wie bei fast allen Kommandozeilen-Tools dürfen Sie hier Pipes einsetzen. Im nächsten Beispiel ersetzt der Befehl tr alle Hash-Zeichen (#) im Font banner3 durch den Klammeraffen @ (Abbildung 3):

figlet -f banner ABC | tr '#' '@'
Abbildung 3: Figlet-Fonts lassen sich mit dem Kommando "tr" on-the-fly manipulieren

Typografische Feinheiten wie Kerning und weitere Beispiele behandelt die Manpage des Pakets, die Sie mit man figlet aufrufen.

Der Rahmenbauer

Zum dekorativen Font der richtige Rahmen: Hier muss das Mini-DTP-Programm figlet passen und übergibt stattdessen an einen Spezialisten. boxes heißt das Tool, das vorgegebene Texte dekorativ umrandet – selbstverständlich in purem ASCII. (Abbildung 4).

Abbildung 4: Im Duo richtig stark: Font-Programm figlet und Rahmengenerator boxes

Welche Rahmenstile das Programm bereithält, verrät es mit der Option -l (list). Auch diese Liste schaut man sich besser seitenweise an:

boxes -l | less

Mit dem Parameter -d wählen Sie den gewünschten Stil:

boxes -d boxname alt neu

alt ist der Name der Originaldatei und neu der Name der gerahmten Ausgabedatei. Alternativ arbeitet das Tool auch mit der Standardein- und -ausgabe des Terminals:

andreas:~> echo "Dies ist
> ein C-Kommentar"|boxes -d c-cmt2
/* Dies ist ein C-Kommentar */

Hier zeigt sich boxes von einer höchst praktischen Seite: Das Tool zeichnet nicht nur Zierrahmen, sondern beherrscht auch die Kommentarstile zahlreicher Programmiersprachen. Dazu integriert man boxes am besten in den Text-Editor. Wie das in Jed und den üblichen Verdächtigen, Vim und Emacs, geht und auch wie Sie eigene Rahmen entwerfen, erfahren Sie auf der Boxes-Projektseite [2].

Bei größeren Boxen (z. B. dem Rahmenstil dog in Abbildung 4) mit wenig Inhalt ist es sinnvoll, die Satzausrichtung zu definieren. Die Option -a leitet die Ausrichtung ein, gefolgt von c, r oder l (zentiert, rechts, links).

Den Abstand zwischen Text und Rahmen bestimmt die Option -p (Padding), die Sie um Richtungsangabe und Zeichenzahl ergänzen. Zum Beispiel bedeutet -pa5t3r1: Der Inhalt ist in jeder Richtung fünf Zeichen vom Rahmen entfernt (a5). Lediglich vom oberen Rand trennen ihn drei Zeilen (t3) und vom rechten sogar nur ein Zeichen (r1). Folgende Angaben sind zusammen mit -p möglich:

  • a: In alle Richtungen
  • b: Zum Boden der Box
  • h: In horizontaler Richtung
  • l: Zur linken Seite der Box
  • r: Zur rechten Seite der Box
  • t: Zum Kopf (top) der Box
  • v: In vertikaler Richtung

Einen starren Rahmen, unabhängig vom Text, geben Sie mit der Option -s (size) vor. Im folgenden Beispiel erzwingen wir eine Box, die neun Zeichen breit und drei Zeilen hoch ist:

> echo LINUX | boxes -s 9x3 -d shell
#########
# LINUX #
#########

Der letzte wichtige Parameter lautet -r (remove). Mit ihm löschen Sie falsch gewählte oder unpassende Boxen, ohne den Inhalt anzutasten. boxes erkennt dabei automatisch den Rahmenstil und entfernte im Test sogar doppelte Rahmen mühelos.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zeichen setzen
    Mit dem freien ASCII-Editor JavE erstellen Sie Diagramme, verschönern Mails, schreiben Schaltpläne, erstellen Trickfilme oder zeichnen ganz einfach zum Vergnügen ASCII-Art.
  • Shell-Tipps
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Know-how für die Kommandozeile
    Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.
  • Präsentationen auf der Kommandozeile
    Wenn's für fast jede Anwendung eine Möglichkeit gibt, alternativ auf grafische oder textbasierter Software zurück zu greifen – warum sollte das bei Vorträgen und Präsentationen anders sein?
  • Perlentaucher
Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 0 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...