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

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(226 Punkte bei 13 Stimmen)
Speichern in der Cloud
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Re: War doch klar...
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

933 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 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 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 2 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 1 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...