TeX Live 2009 in Ubuntu 10.04

Mittwoch, 26.05.2010 um 20:23 Uhr

Hallo liebe Lesergemeinde,

Seit rund einem Monat ist nun Ubuntu 10.04 die aktuellste Ubuntu Version. Heute habe ich endlich mal die Zeit gefunden, was für eine TeX Live Version in das neue Ubuntu integriert wurde.

Siehe da – das längst überfällige Upgrade auf die 2009er Version dieser LaTeX Distri ist nun in den Paketquellen enthalten. Endlich ist die Zeit vorüber in der man umständlich manuell TeX Live installieren musste, um ein aktuelles System zum Texte schreiben zu haben.

Ein sehr großes Lob an die Debian Leute, die diese Pakete zusammengebaut und in Debian und Ubuntu integriert haben.

Fensterbuttons im neuen Ubuntu 10.04

Montag, 22.03.2010 um 18:58 Uhr

Moin liebe Lesergemeinde,

man sieht an der momentanen Diskussion rund um die Fensterbuttons (Schließen, Minimieren, Maximieren), dass die meisten Ubuntu/Linuxuser irgendwie keine anderen Probleme haben, als sich über die neue Position der Buttons aufzuregen.

Das ist eigentlich sehr erfreulich, heißt es doch, dass Ubuntu/Linux so gut wie keine weiteren Probleme mehr macht – wenn man die Zeit hat über so etwas Nebensächliches wochenlang zu diskutieren.

:D

Übrigens für die Leute, die sich an die Buttons nicht gewöhnen wollen – nehmt Tastenkombinationen. Da können die Buttons auch auf der Rückseite des Programmfensters sein, das ist dann egal ^^.

Schließen: Alt+F4
Minimieren: Alt+F9
Maximieren (ein/aus): Alt+F10

Kochbuch mit LaTeX verfassen

Dienstag, 15.12.2009 um 17:20 Uhr

Moin liebe Lesergemeinde,

lang ist’s her, dass ich mal was von mir hören ließ. Deswegen soll es nun heute wieder eine Vorlage für LaTeX Liebhaber geben.

Vor einiger Zeit ist mir der Zettelwust in der Küche mit den Rezepten auf die Nerven gegangen, hier mal ein Rezept hingekritzelt, da mal vergessen, das Rezept zu benennen und man weiß nicht mehr was man da eigentlich kochen wollte. Da kam ich auf die Idee das ganze mit einem eigenen Design zu digitalisieren und damit zu ordnen und vor allem auch durchsuchbar zu machen – die Idee zu einem eigenen Kochbuch war geboren.

Da ich nunmal ein Liebhaber von LaTeX bin, lag der Schluss nahe, ein Kochbuch in LaTeX zu verfassen. Zumal mir Word/OpenOffice/Scribus eher ungeeignet dafür erschienen, da man hier auch mit Vorlage immer noch formatieren muss.

Es gibt bereits einige Kochbuchklassen in einigen LaTeX Paketen, jedoch hat mir sowohl der Aufbau des Kochbuches als auch der Quelltext für ein Rezept nicht gefallen. So habe ich mir meine eigene Rezeptumgebung zusammen programmiert. Da ich bisher mit richtiger LaTeX-Programmierung sehr wenig am Hut hatte (und trotz viel Übung immer noch habe) hat das Ganze doch geraume Zeit gedauert. Nun möchte ich euch das Ergebnis präsentieren.

Hier gibt’s erstmal das Paket zum Download: Kochbuch Vorlage

So sieht ein Beispielrezept aus:

kochbuch

Wenn das Zip Archiv entpackt wird, befinden sich mehre Dateien und Ordner darin. Die PDF im Hauptordner ist eine vorkompilierte Beispieldatei. In die Ordner ./bilder/ und ./rezepte/ kommen jeweils die Bilder für die Rezepte und die jeweiligen Tex-Dateien für jedes einzelne Rezept. Die cook.sty im Hauptordner ist meine Style-Datei, die alle notwendigen Befehle und Umgebungen für mein Rezeptbuch beinhaltet. Diese muss sich immer in dem selben Ordner wie die cookbook.tex (Hauptdokument) befindet.

Öffnet man dieses Hauptdokument (cookbook.tex) ist das in dem Beispiel sehr übersichtlich. Je mehr Rezepte, desto länger wird auch dieses Dokument. In der zweiten Zeile der cookbook.tex sieht man wie die Style-Datei (cook.sty) eingebunden wird. In den folgenden Zeilen werden verschiedene Schriftarten für abwechslungsreiche Rezeptüberschriften geladen. Will man dies nicht, können diese Zeilen auskommentiert/gelöscht werden. Im Allgemeinen ist für die Nutzung der Schriftarten das Paket texlive-fonts-extra nachzuinstallieren. Nach den Schriftarten erfolgt die Deklaration der PDF Metadaten und der Titelseite.

Will man sein Rezeptbuch in verschiedene Kategorien unterteilen, kann man das wie in der Datei zu sehen, wie gewohnt mit den \section-Befehlen tun. Bei zweiseitigem Druck ist darauf zu achten, wie Titelseiten und Rezeptbeginn angeordnet sind (meistens auf der ungerade Seite). Mit \newpage kann man entsprechende Leerseiten einfügen. Rezepte werden an der entsprechenden Stelle mit dem Befehl \input{./rezepte/….tex} eingebunden.

Im Ordner ./rezepte/ liegt bereits ein Beispiel Rezept, wie es aussehen könnte.

Die Datei dummy.txt im Hauptordner des Kochbuchs listet alle Befehle mit ihren Parametern/Optionen auf. Diese Datei ist sehr wichtig, wenn man sein Kochbuch weiter individualisieren will (Bilder, mehrseitige Rezepte, Tipps, Anmerkungen, etc.). Ich bitte darum diese Datei aufmerksam zu lesen.

Bevor ihr eigene Rezepte in das Kochbuch einfügt, solltet ihr überprüfen, ob alles einwandfrei funktioniert. Eventuell sind einige Pakete nachzuinstallieren. Ich habe eine vollständige Textlive Distri installiert, so dass ich nicht weiß, welche Pakete in einer Standardinstallation über die Ubuntuquellen nicht enthalten sind. Sollte es nicht funktionieren, könnte es helfen im Hauptdokument alle Schriftarten und im Beispielrezept den optionalen Parameter in der Rezeptdeklaration >>[font=\rustfamily]<< zu entfernen.

Viel Spaß beim Testen, weitere Anregungen/Fehler/Lob bitte in die Kommentare ;-)

Briefe in LaTeX

Freitag, 02.10.2009 um 15:42 Uhr

Moin liebe Lesergemeinde,

ich mache für gewöhnlich einen großen Bogen um normale Office Software, da diese für mich einfach nur umständlich ist. Deswegen liegt es nahe, dass ich auch meine Briefe in LaTeX verfasse. Dazu gibt es nur eins zu sagen: Nie war Briefe schreiben so einfach!

Im folgenden gibt es eine kurze Einführung in die Welt der Briefe unter LaTeX mit der Briefklasse scrlttr2. Die komplette Dokumentation zu Koma Skript und damit auch zur Briefklasse findet man auf BerliOS zum Download. Dort einfach zur passenden Koma Skript Version die Datei scrguide-….pdf herunterladen. Anmerkung: Die Dokumentation ist ausgesprochen gut, ausführlich und mit vielen Beispielen. Für LaTeX Schreiber ein muss.

So nun zum eigentlichen Thema. Das Grundgerüst für einen Brief besteht aus knapp 20 Zeilen:

test.tex

\documentclass{scrlttr2} % Letter Klasse des Koma-Skripts
\LoadLetterOption{test}
\begin{document}
%% Brief
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setkomavar{subject}{Mein Grund}
\begin{letter}{
Name Empfänger\\
Adresse\\
PLZ Ort
}
\opening{Sehr geehrte Damen und Herren,}
hiermit üöäß...
\closing{Mit freundlichen Grüßen}
\vskip-5em
\includegraphics[height=4em]{../dokumente/unterschrift.png}
\end{letter}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}

Gehen wir dieses Gerüst einmal durch. Als erstes wird die LaTeX Klasse scrlttr2 aus dem Koma Skript aufgerufen. Dann werden sämtliche Einstellungen für den Brief geladen. Diese befinden sich in der Datei test.lco. Dazu später mehr.

Nun beginnt das eigentliche LaTeX Dokument. Jeder Brief sollte einen Betreff haben, der wird mit der Koma Variable subject festgelegt. Nun beginnt der eigentliche Brief mit der Anschrift des Empfängers. Mit normalen \\ kann ein Zeilenumbruch hervorgerufen werden. Wichtig ist, dass hier keine Leerzeilen (Absatz) genutzt werden. Mit dem Befehl \opening legt man die Anrede im Brief fest, mit \closing demnach das Ende des Briefes. Zwischen opening und closing kommt der eigentliche Brieftext, den es zu verfassen gilt.

Mit \vskip (Position festlegen) und \includegraphics binde ich meine handschriftliche Unterschrift in das Dokument ein. Mit einer entsprechenden Auflösung sieht das Ganze ausgedruckt sogar wie eine echte Unterschrift aus.

Dann wird nur noch Brief und Dokument beendet. Das wars auch schon. So kann man innerhalb von einer Minute ein Briefgerüst verfassen, dass nach DIN in einer PDF gesetzt wird. Als Zusatz hat man gleich Falt-/Lochmarken sowie eine Rücksendeadresse für Briefumschläge mit Fenster integriert ohne sich um Abstände und irgendwelche anderen Sachen Gedanken zu machen.

test.lco

\ProvidesFile{test.lco}[2009/03/04 lco (Christian Gatzlaff)]
% Pakete
\usepackage{cmap}        % to make the PDF files "searchable and copyable" in pdf viewer
\usepackage[ngerman]{babel}    % deutschsprachig
\usepackage[utf8]{inputenc}    % utf8 encoding
\usepackage[T1]{fontenc}    % Schriftkodierung
\usepackage{lmodern}        % Computer Modern-Schrift (TYPE1-tauglich)
\usepackage{microtype}        % echter Blocksatz
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{pdfpages}        % Einbinden von PDF Seiten aus PDF Dokument
\usepackage{fixltx2e}        % Verbessert einige Kernkompetenzen von LaTeX2e
\usepackage{ellipsis}        % Korrigiert den Weißraum um Auslassungspunkte
\KOMAoptions{%
foldmarks=true,
backaddress=true,
fromphone,
fromemail,
enlargefirstpage=true,
paper=A4,    %
fontsize=12pt,    %
fromalign=left,    %
draft=false    %
}
\setkomavar{fromname}{Vorname Nachname}
\setkomavar{fromaddress}{Irgendwo 35\\
02635 Im Nirgendwo}
\setkomavar{fromphone}{03845945097}
\setkomavar{fromemail}{test@noaddress.de}
\renewcommand*{\raggedsignature}{\raggedright}
\setkomavar{place}{Im Nirgendwo}
%\@addtoplength[-1]{toaddrvpos}{20mm}
%\@addtoplength[-1]{refvpos}{20mm}

Das ist nun die text.lco, wenn man so will die Konfigurationsdatei für eigene Briefe. Hier kommen alle Einstellungen rein, die man in allen Briefen nutzen will. Neben den hier gezeigten Daten können natürlich auch ganze Briefköpfe, Firmenlogos, zusätzliche Daten etc. eingefügt werden (wichtig für Geschäftsbriefe in einem Corporate Design).

Um hier die wichtigsten Einstellungen zu erklären. Mit \ProvidesFile legt man fest um welche Datei es sich handelt, wie sie heißt, wann sie geschrieben wurden und wer der Autor ist. Der nächste Abschnitt bindet die Pakete ein, die man für seine Briefe benötigt. Hier eine kleine Auswahl, die ich nutze.

Der Abschnitt \KOMAoptions legt generelle Briefeinstellungen fest, so zum Beispiel Faltmarken, die Anzeige von verschiedenen Adresselementen, etc.

Mit \setkomavar werden die persönlichen Daten festgelegt, diese erscheinen dann in jedem Brief. Anmerkung: natürlich können auch für jeden Brief manuell diese Angaben überschrieben werden. Diese Angaben sind eigentlich selbsterklärend.

Die Zeile \renewcommand setzt den Namen unter der Unterschrift linksbündig. Lässt man diesen Befehl weg, wird der Name eingerückt (hier kann natürlich jeder für sich entscheiden, was er mag). Die Variable place, setzt neben das aktuelle Datum in Brief noch die Ortsangabe.

Die beiden letzten Zeilen sind auskommentiert. Mit diesen kann man, wenn der Briefinhalt nicht auf eine Seite passt, jedoch nur wenige Zeilen auf der nächsten Seite sind, spielen, um die Zeilen auch noch auf die erste Seite zu holen. Wenn diese Abstandsänderungen nicht gebraucht werden, kann man sie auch löschen.

So das wars, ich hoffe ich konnte euch die Einfachheit des Briefeschreibens unter LaTeX etwas näher bringen. Wenn man einmal seine Vorlage zusammen hat, kann man so schnell Briefe schreiben, wie sonst kein anderer. Im Hauptdokument lassen sich übrigens auch mehrere Briefe verfassen, indem man einfach nach dem Schließen der letter-Umgebung eine neue letter-Umgebung aufmacht.

Achja aussehen tut die PDF ohne auch nur einen Satz Inhalt geschrieben zu haben wie folgt:

test

Ubuntu NAS Server: Erfahrungen

Mittwoch, 23.09.2009 um 15:54 Uhr

Moin liebe Lesergemeinde,

da ich recht viele Daten zu verwalten habe, habe ich mich nun endlich mal zu dem Schritt durch gerungen, mir ein NAS anzuschaffen. Da ich das gleich richtig machen wollte (also auch die Homeverzeichnisse auf dem NAS auslagern wollte), kam nur eine Selbstbaulösung in Frage, da die kommerziell erhältlichen NAS Systeme selbst mit Gigabitethernet sehr lahm und zudem wie ich finde recht überteuert sind.

Das Ganze sollte Platz bieten für vier SATA-Festplatten, trotzdem klein sein, wenig Strom verbrauchen und wenn möglich auch leise sein und schick aussehen. So, hier nun zum Aufbau:

Board: Point of View POV/ION330-1, NVIDIA ION Mainboard + Intel ATOM 330, Mini ITX
Gehäuse: Chenbro ES34069
RAM: Corsair TWIN2X4096-6400C5 PC2-6400 Arbeitspeicher 4 GB
HDD: Western Digital WD20EADS Caviar Green 2TB interne Festplatte
USB Stick fürs System: Transcend TS4GJFV30 JetFlash V30 USB-Stick 4GB USB 2.0
System: Ubuntu Server 9.04

Momentan betreibe ich das Ganze erstmal mit einer Festplatte. Insgesamt verbraucht der laufende PC ohne HDD 33W mit Festplatte 41W unter Volllast. Eigentlich hatte ich gedacht, dass das Board ein Bisschen weniger verbraucht. Das könnte aber daran liegen, dass ich zwei RAM-Sticks eingebaut habe. Mit vollem Festplattenausbau wären das knapp über 60W. Da der Server nicht 24h/365d laufen soll, ist das für mich ok – selbst wenn, beliefe sich bei circa 20Cent/kWh der Unterhalt auf 100€ im Jahr.

Zudem sind in dem Gehäuse zwei ungeregelte Lüfter drinne, die wahrscheinlich auch etwas Strom ziehen. Durch Lüfter ist der Server doch recht laut. Da werde ich allerdings nochmal nachhelfen und einen der Lüfter außer Betrieb setzen, denn im Gehäuse ist es kälter als außerhalb!!

Soweit zur Hardware. Durch den Atom-Dualcore bekomme ich im normalen 100er LAN vollen Datendurchsatz von circa 11 MB/s. Das 1000er habe ich noch nicht ausprobiert, da mir noch der entsprechende Switch fehlt der das kann :D Aber ich denke dass ich auch hier akzeptable Geschwindigkeiten erreichen werde.

Auch sonst läuft das gesamte System mit dem Ubuntu Server außerordentlich flott. Eventuell baue ich da den einen RAM Stick noch raus, den brauche ich bei weitem nicht (Momentan liegt die RAM Auslastung bei knapp 300MB).

Die Installation des Systems auf dem USB Stick habe ich mit der Server-Installations-CD bewerkstelligt. Bis auf, dass die Installation etwas länger dauerte als auf einer HDD, gab es keinerlei Probleme. Die Hardware wurde, wie bei einem guten Linux zu erwarten, Out-of-the-Box erkannt und funktionierte auf Anhieb. Zum Datenzugriff habe ich neben dem Minimal-Serversystem noch Samba, SSH und NFS aufgesetzt. Eventuell kommt noch ein Streaming Server, FTP und eine LAMPP Installation hinzu – mal schauen. In den Samba-Einstellungen musste ich noch die Authentifizierung auf NTLMv2 umschalten/erzwingen, damit ich auch Vista dazu bewegen kann, auf meinen Server zuzugreifen.

Da ich das System auf USB Stick installiert habe und diese bekanntlich nur begrenzte Schreibzyklen zulassen, habe ich die Swappiness des Systems auf 0 gesetzt und das Schreiben der logs in den RAM ausgelagert. Zum Auslagern nutze ich das Programm ramlog, das deb-Paket dazu kann man sich hier herunterladen. Der obligatorische Hinweis: Fremdpakete können das System gefährden!

Das erste Benutzerhomeverzeichnis ist zu Testzwecken auch schon auf den Server umgezogen und funktioniert trotz 100er LAN Verbindung angenehm schnell und ohne Probleme. Genauso kann ich von mehreren Rechner gleichzeitig auf die Film- und Musikdaten zugreifen, ohne dass es zu Aussetzern oder Rucklern kommt. Nur wenn ich große Datenmengen auf den Server kopiere, wird ein weiterer Zugriff aufgrund von Bandbreitenbegrenzung etwas schwierig.

Probleme mit upgegradetem Ubuntu

Montag, 21.09.2009 um 12:00 Uhr

Moin liebe Lesergemeinde,

ich bin ein Fan von Compiz-Effekten und auch ein Fan des Shiki-Themes (Anleitung hier). Leider kann ich auf meinem PC nicht beides gleichzeitig haben. Die beiden Bilder zeigen meine Fensterrahmen ohne und mit Desktopeffekten.

ohne Effekte:

Desktoptheme ohne Effekte

mit Effekten:

Desktoptheme mit Effekten

Wie man sieht ist das Theme total verhunzt, wenn Compiz angeschaltet wird – und das trifft auf alle Themes zu (außer das Standard-Ubuntu-Theme).

Ich habe auch herausgefunden woran das liegen könnte. Ich upgrade mein Ubuntu seit der Version 7.04. Seit dem habe ich das System nicht neu aufgesetzt. Auf meinem Laptop habe ich Ubuntu seit Version 8.10 drauf – da funktionieren Theme und Compiz einwandfrei miteinander! Also vermute ich, dass irgendwelche Einstellungen nicht mit upgegradet wurden und so verhindern, dass ich andere Themes nutzen kann. So funktionieren auch einige Funktionen von Pulseaudio auf meinem Desktopsystem nicht richtig, es kam sogar vor, dass bei mir Pulseaudio abstürzt, wenn sich ein anderer PC im Netz mit seinem Pulseaudio Server anmeldet. Das konnte ich bei den anderen Rechnern ebenfalls nicht beobachten. Das trifft auch auf verschiedene andere Funktionen zu, die ich zwar nicht benötige, die mir aber irgendwann mal aufgefallen sind.

Die Möglichkeit wäre die eigenen persönlichen Einstellungen im Homeverzeichnis zu löschen (fragt sich aber, ob das was bringt), oder das System neu aufzusetzen (was ich mit 9.10 tun werde). Das würde bedeuten, dass eine Neuinstallation alle 2 Jahre definitv sinnvoll ist, zumindest wenn größere Neuerungen eingespielt wurden. Oder hat jemand von euch ne Idee was die Ursache sein könnte, oder wie man das Problem beheben könnte?

Exotische Linux-Applikationen gesucht: Quod Libet

Dienstag, 01.09.2009 um 11:22 Uhr

Moin liebe Lesergemeinde,

ich beteilige mich nun auch mal an der Reihe mit exotischeren Linux-Apps, heute stelle ich euch einen vielleicht nicht so bekannten Medienspieler vor: Quod Libet.

Quod Libet kommt aus dem lateinischen und heißt “was beliebt”. Genauso ist auch der Player aufgebaut. Es gibt eine ganze Reihe verschiedener Ansichten, die es erlauben seinen Medienspieler nach den eigenen Wünschen zu konfigurieren. Der Player baut auf GStreamer auf und kann alle Medienformate abspielen, die für GStreamer installiert wurden. Des Weiteren können Audio-Feeds und Internet-Radio Stationen verwaltet und abgespielt werden. Mit Pulse Audio kommt Quod Libet ebenfalls ohne Probleme zurecht.

Mit Plugins kann das Programm sehr gut erweitert werden. So können Albumcover einfach heruntergeladen, Lyrics gespeichert, die Titel mit einem On-Screen-Display angezeigt werden und vieles mehr. Eine einfache Steuerung über das Tray-Icon ist ebenfalls möglich. Des Weiteren wird Replay Gain unterstützt, was bei unterschiedlich lauten Musikstücken sehr vorteilhaft ist. Die Anbindung verschiedener externer Player ist ebenfalls möglich, so kann der IPod auch direkt aus dem Programm heraus bespielt werden. Eine für mich sehr wichtige Funktion ist die Warteschlange, in die man mittels Tastendruck (Taste: q) einen Titel hinzufügen kann.

Die Filterung der Bibliothek ist sehr einfach gehalten und durchsucht alle Tags in einem Musik-File. Eine Suche mit regulären Ausdrücken ist ebenfalls möglich. Die Bibliothek wird bei neuen Musikstücken rasend schnell neu aufgebaut und indiziert. Ein guter Musiktagger ist ebenfalls gleich dabei, dieser ist nicht auf Standardtags beschränkt. Es können also alle möglichen Informationen in eine Musik-Datei abgespeichert werden.

Die Weiterentwicklung des Programms schreitet zwar nur mäßig voran, es wird aber zumindest kontinuierlich gepflegt. Die Webseite des Projekts lässt jedoch zu wünschen übrig, da sie recht unübersichtlich gehalten ist.

quodlibet

Ubuntu One – ein kurzer Statusbericht

Donnerstag, 20.08.2009 um 15:58 Uhr

Moin liebe Lesergemeinde,

ich habe gerade auch ein Sommerloch: Allerdings spricht dieses für Ubuntu. Ich habe derzeit keinerlei Probleme oder auftauchende Fragen im Alltäglichen Umgang mit Ubuntu. Alle meine Programme und das System an sich funktionieren einfach – das geht doch nicht ;-) Ubuntu ist über die Zeit einfach viel zu gut geworden…

Deswegen muss man sich umschauen und sich eben selbst Themen suchen, die einen interessieren. Dabei ist mir aufgefallen, dass ich auf meinen verschiedenen Rechnern ja nun schon seit ein paar Monaten Ubuntu One benutze. Nun wollte ich mal sehen, ob sich in der Zeit was getan hat, schließlich hat man seit der Veröffentlichung des Dienstes nichts mehr davon gehört.

Auch wenn der Ubuntu-One Client regelmäßig in den Aktualisierungen von Ubuntu auftaucht, hat sich zumindest an der Bedienung nichts verändert. Es können nachwievor keinerlei Anpassungen clientseitig vorgenommen werden. Zudem ist mir aufgefallen, dass das Icon im Tray kurz nach dem Start aus der Leiste verschwindet und nicht wieder auftaucht, obwohl der Dienst im Hintergrund noch läuft.

Das Webinterface hat sich etwas im Aussehen verändert, bietet jedoch ebenfalls nur eine sehr geringe Funktionalität. So ist leider immer noch keine Versionsverwaltung eingebaut. Das ist der ausschlaggebende Grund, warum ich immer noch Dropbox vorziehe und Ubuntu One nicht mit wichtigen Daten fülle.

Im Allgemeinen hat sich, zumindest seitens der Benutzung innerhalb der 2-3 Monaten, die der Dienst jetzt Online ist, wenig getan. Die habe aber die Hoffnung, das Canonical die eigentlichen Updates an dem Dienst noch zurückhält und diese zeitgleich mit Ubuntu 9.10 veröffentlicht. Mal schauen was dann noch kommt. Bis jetzt ist es wie gesagt ernüchternd.

Umfrage – Distributionschaos Ubuntu

Dienstag, 04.08.2009 um 16:28 Uhr

Moin liebe Lesergemeinde,

es gibt gefühlt fast jede Woche einen neuen Ubuntu Ableger. Mittlerweile ist die Anzahl, der auf Ubuntu aufsetzenden Distributionen nicht mehr überschaubar.

Was haltet ihr davon? Findet ihr die ständige Abspaltung neuer Distris sinnvoll, oder reichen eurer Meinung nach wenige? Wie sollte man der Fülle an Distris Herr werden, ist das überhaupt nötig?

Ab mit euren Meinungen in die Kommentare…

LaTeX Serienbriefe – GUI zur Adressbuch Generierung

Freitag, 24.07.2009 um 16:32 Uhr

Moin liebe Lesergemeinde,

da ich mich ja, wie ihr wisst, ausführlich mit LaTeX beschäftige, gibt es heute eine kleine GUI Anwendung, die das Leben mit LaTeX etwas vereinfachen soll.

Aber vorher noch zur Vorgeschichte:

Ich habe vor einiger Zeit ein Projekt begonnen, was das Schreiben von Briefen in LaTeX vereinfachen soll. Das heißt es gibt eine Oberfläche in der man sämtliche Adressdaten und den Briefinhalt eingeben kann. Beim Speichern der Angaben wird mit Hilfe eines Brief Templates das ganze in einen LaTeX Brief umgewandelt.

Das Ganze soll sich allerdings mehr an Firmen richten, denn jemand (Admin) muss sich die Arbeit machen und ein LaTeX Template im Corporate Design der jeweiligen Firma anfertigen. Dieses Template könnte (read only) im Netz liegen und von den Mitarbeitern mit Hilfe meiner Oberfläche genutzt werden. Das würde den Nutzern erlauben, wirklich nur den Brief mit den jeweiligen Daten zu verfassen, das ganze Layout wird automatisch im Hintergrund durch ein Template erzeugt. Es gibt zwar auch Vorlagen, die man in Word erstellen kann, aber da kann man doch schnell das Design verhunzen, wenn man keine Ahnung hat – außerdem sieht sogar ein Latex Brief deutlich besser aus, als ein Word Brief.

Das Projekt wird in Python mit Qt als GUI Framework geschrieben. Momentan habe ich das große Projekt (was ich eben beschrieben habe) allerdings ersteinmal hinten angestellt. Da ich gerade erst Python richtig lerne, versuche ich kleine Teilaufgaben zu programmieren. Die heute vorgestellte Software kann also als Teilprojekt angesehen werden.

Die Oberfläche für die Briefe soll später auch Serienbriefe unterstützen. Da LaTeX aber ein eigenes Adressbuchformat voraussetzt, muss man gängige Adressbücher aus Evolution, Outlook, Thunderbird, etc. erst in dieses Format bringen. Das wäre händisch sehr unschön zu lösen, pflegen lässt sich so ein Adressbuch eher auch schlecht, da es bisher dazu keine sinnvolle Oberfläche gibt.

Adressbuchformat von LaTeX abgespeichert in einem *.adr-Textfile:

\adrentry{Name}{Vorname}{Adresse}{Telefon}{F1}{F2}{Kommentar}{Kürzel}

Durch ein Python Skript von Frederik Elwert bin ich auf die Idee gekommen, eine GUI zum Mapping eines Adressbuches im CSV Format in das LaTeX kompatible Format zu schreiben. Das eigentliche Mapping führt das Skript von Frederik bereits aus, ich habe dieses um eine GUI erweitert. Vollständig konsolenbedienbar bleibt das Skript allerdings trotzdem.

Nun aber genug der Rede:

onGnome

onKDE

onWindows

Wie man sieht, funktioniert das Programm mit Gnome, KDE und Windows. Mac OS kann ich nicht testen. Das Programm sollte mit jeder Standard-Installation von Python und PyQt4 laufen. Bei Kubuntu ist alles standardmäßig vorhanden, bei Ubuntu muss man schauen, ob PyQt4 bereits installiert ist und es notfalls nachinstallieren.

Bedienung:

GUI:

Das Adressbuch muss im CSV Format vorliegen. Jede mir bekannte Adressbuchverwaltung kann in ein CSV Format exportieren, was also kein Problem darstellen dürfte. Das Skript muss ausführbar sein (chmod +x LatexAddressbook.py). Wird das Skript ohne Parameter aufgerufen startet die GUI automatisch (./LatexAddressbook.py). Mit Klick auf die Schaltfläche “…” kann das CSV Adressbuch ausgewählt werden. Ist dies geschehen, sollten in der Liste am rechten Rand des Programms alle verfügbaren Spaltenüberschriften des Adressbuches erscheinen. Diese kann man nun per Drag and Drop in die Textfelder für die jeweiligen Adressbuchfelder des LaTeX Adressbuches ziehen.

Dabei können auch mehrere CSV-Felder in einem LaTeX Feld verbunden werden.

Beispiel: Die Adresse liegt im CSV Adressbuch in den einzelnen Spalten Adresse, PLZ, Ort vor. So kann man das Feld “Address” folgendermaßen gestalten: $Adresse\\$PLZ $Ort. \\ bedeutet in LaTeX einen Zeilenumbruch. Das heißt man hat nun die gesamte Adresse des Empfängers in einem Feld stehen.

In dieser Weise können auch alle anderen Adressbuchfelder ausgefüllt werden. Free 1 und Free 2 sind im LaTeX Adressbuch keiner Funktion zugeordnet und können so frei verwendet werden. Mit Klick auf OK wird man nach dem Speicherort für das LaTeX Adressbuch gefragt. Dieses wird mit der Erweiterung *.adr gespeichert.

Konsole:

Hier ist die Bedienung der vom Original Skript übernommen. Mit dem Befehl

./LatexAddressbook.py -h

wird die Hilfe angezeigt. Hier ist ein Beispielbefehl, wie er zur Umwandlung des Adressbuches genutzt werden kann.

./LatexAddressbook.py -m 'Name=$Nachname' -m 'Vorname=$Vorname' -m 'Adresse=$Strasse\\$PLZ $Ort' -m 'F1=$Geschlecht' -o 'adressen.adr' adressen.csv

So das wars auch schon zur Benutzung. Bei meinen Tests hat eigentlich alles funktioniert soweit. Bitte gebt mir Feedback, ob prinzipiell Interesse besteht eine GUI für Briefe in LaTeX zu benutzen und wenn ja, was alles an Features enthalten sein sollte. Gibt es eventuell Interessenten, die sich vorstellen könnten, sowas auch in der eigenen Firma einzusetzen? Bitte gebt mir Feedback, ob es sich überhaupt lohnt, soetwas zu programmieren.

Probleme:

Probleme gibt es, wenn es Spaltenüberschriften in der CSV Datei mit Sonderzeichen gibt. Die Überschriften werden im Skript als Schlüssel in einem Dictionary verwendet. Ich habe bisher nichts gefunden, was UTF-8 Schlüssel in Dictionaries in Python erlauben würde. Ich lasse mich aber gerne eines Besseren belehren.

Es fehlt auch noch eine Mehrsprachen-Unterstützung. Die ist allerdings schon vorgesehen. Allerdings würde ich sowas erst implementieren, wenn Interesse an Nutzung bestehen sollte.

Falls weitere Fehler auffallen oder es Verbesserungsvorschläge gibt, dann bitte ab damit in die Kommentare.

Aber nun, fast hätte ich es vergessen, hier der Download des Skripts. Sollte ich das ganze noch weiter entwickeln, würde ich das auch bei Launchpad hosten.

Download: latexAddressbook.zip