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

MusicBrainz Picard – einfacher Musik Tagger

Samstag, 18.07.2009 um 11:58 Uhr

Moin liebe Lesergemeinde,

heute möchte ich euch meinen Lieblingsmusik Tagger vorstellen. Er heißt MusicBrainz Picard und nutzt zum Taggen der Musik den Online Dienst musicbrainz.org.

Aber was ist das besondere an diesem Programm? Es ist sehr simpel. Man lädt seine nicht oder schlecht getaggte Musik in das Programm, klickt auf einen Button und das Programm sucht das Lied in der Datenbank des Onlinedienstes und bietet an, die gefundenen Tags in die Musikdatei zu schreiben. Man kann ebenfalls seine eigenen Musikdateien nach einem festgelegten Schema umbenennen lassen.

Das ganze funktioniert, indem das Programm einen Fingerabdruck des Liedes erstellt. Normalerweise ist jedes Lied einzigartig im Fingerabdruck. Ist das Lied schon in der Datenbank vorhanden, wird der Fingerabdruck gefunden und das Lied damit identifiziert. Bis jetzt waren alle Lieder, die ich taggen wollte bereits in der Datenbank vorhanden. Wenn dies einmal nicht der Fall sein sollte, kann man auch selbst die Einträge zu MusicBraniz hochladen, muss dann aber seine Dateien selber Taggen.

Durch verschieden starke Kompression der Musikdateien, unterschiedliche Versionen eines Albums/Liedes oder auch das Vorkommen eines Liedes in mehreren Alben/Singles führt manchmal dazu, dass Lieder falsch zugeordnet werden. Dann muss man selber etwas Hand anlegen und kann die Musik per Drag and Drop an die richtige Stelle schieben, oder auch Online in der Datenbank nachschauen und den passenden Eintrag auswählen.

Zur Bedienung:

musicbrainz picard

Das Fenster ist Zweigeteilt. Links werden die noch nicht erkannten Original Dateien angezeigt. Rechts die gefundenen und zugeordneten und auch bereits getaggten Lieder. Will man nun ein Album Taggen, wählt man den entsprechenden Ordner aus. Sind bereits Metadaten im Lied vorhanden, kann man die schnellere Methode (Lookup) vornehmen. In dieser Variante werden nur die Tags verglichen und nach diesen Einträge gesucht. Sind noch keine Tags vorhanden, muss man auf Prüfen klicken. Jetzt wird ein Fingerabdruck erzeugt und online verglichen. Diese Variante dauert recht lange. Wurde alles gefunden und hat man sein Album zusammen, kann man mit Speichern die Tags schreiben und gleichzeitig nach Schema umbenennen. Das Schema stellt man unter Einstellungen → File Naming ein.

Bei mir funktioniert das meistens zuverlässig und einfach ohne großen Aufwand.

Installieren kann man das Programm unter Ubuntu mit dem Befehl:

sudo apt-get install picard

Firefox Bookmarks synchronisieren mit Dropbox

Freitag, 10.07.2009 um 16:25 Uhr

Moin liebe Lesergemeinde,

da ich nun mittlerweile an drei PCs arbeite möchte ich auch an allen die gleichen Lesezeichen in meinem Firefox haben. Schließlich kennt das jeder. Sitzt man vor einem PC hat man garantiert das Lesezeichen was man braucht nicht auf dem PC vor dem man sitzt. Dann geht das große Suchen los. Um diesem Problem aus dem Weg zu gehen, wollte ich meine Lesezeichen über das Internet synchronisieren.

Es gibt zig Erweiterungen für den Firefox die das erledigen können. Leider sind die meisten davon mit einem Server verbunden, über den man keinerlei Gewalt hat und wo auch nicht klar ist, wie mit welcher Verschlüsselung oder ähnlichem gespeichert wird. Also kamen diese nicht in Frage.

Dann habe ich einen interessanten Artikel gefunden, der beschreibt, wie man sein ganzes Firefox Profil mit Hilfe von Dropbox synchronisieren kann. Nach einiger Zeit bekam der Autor aber Probleme, durch das quasi ständige Synchroniseren mit Dropbox. Mit der Zeit entstand soviel Datenmüll, dass irgendwann Fehler auftauchten und der Firefox nicht mehr startete – also auch nicht das wahre.

Als nächste Variante hat er nur seine wichtigen Daten (Extension, Bookmarks, Einstellungen, etc) auf Dropbox belassen und von dort symbolische Links in sein lokales Firefox Profil eingerichtet. Diese Variante habe ich auch ausprobiert. Ich habe die places.sqlite (also dort wo Bookmarks und History gespeichert werden) auf Dropbox gelegt und in meine Firefox Installation einen symbolischen Link eingefügt. Das funktioniert und Linux/Mac wunderbar. Allerdings nutze ich auf Arbeit auch Windows. Da kann man zwar eine Verknüpfung anlegen, aber das funktioniert nicht! Also schied diese Variante auch aus. Zudem immer wenn ich eine Webseite besucht habe, oder einen Link aufgerufen habe, Dropbox die places.sqlite aktualisieren musste.

Dann bin ich auf die Firefox Erweiterung syncPlaces gestoßen. Diese erlaubt es seine Bookmarks mit einem eigenen FTP zu synchronisieren. Das funktioniert wunderbar. Allerdings gibt es auch eine Einstellungsvariante in der man die json-Datei (Dateiformat für die Bookmarks) lokal (also auch im Dropbox Ordner) speichern kann. Also habe ich unter den SyncPlaces Einstellungen unter Servereinstellungen/Verbindungen die Option “Datei” ausgewählt. Im Tab Synchronisation habe ich dann den gewünschten Dropbox Pfad eingestellt et voila die Bookmarks werden nun mittels Dropbox auf alle Rechner ausgeliefert, die Dropbox installiert haben (finde ich besser als FTP, da ich von Dropbox das Passwort auswändig weiß ;-) ). Dann kann man noch unter Optionen Automatikfunktionen die Automatiken einstellen, so dass bei einer Änderung der Bookmarks automatisch eine Aktualisierung der json-Datei erfolgt. Manuell kan man das ganze auch starten, indem man unten rechts in der Statusleiste vom Firefox mit rechts-Klick seine Bookmarks ex- bzw importiert.

Funktioniert super, ist einfach und effektiv. Über die Weboberfläche von Dropbox, hat man seine Bookmarks auch schnell an allen anderen PCs der Welt zur Verfügung.