Home / LinuxUser / 2003 / 12 / ASCII-Grafiken erstellen mit cadubi, figlet und boxes

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

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

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

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

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

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.

Tip a friend    Druckansicht Bookmark and Share
Kommentare

2137 Hits
Wertung: 120 Punkte (10 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...