Formelsatz in HTML-Dokumenten

Um Formeln in HTML-Dokumenten einzubetten gibt es eine Reihe von Möglichkeiten, eine davon ist tex4ht. Über die Arbeitsweise von tex4ht ist z.B. in der Wikipedia nachzulesen. Wesentlich bleibt festzustellen, daß die Formeln in PNG-Bilder umgewandelt werden und damit jeglichen Browserbeschränkungen (wie bei Verwendung von MathML etc.) aus dem Weg gegangen wird. Diese Methode wird derzeit auch von der Wikipedia bei der Umsetzung von Formeln favorisiert. Das Latex-Dokument wird am einfachsten mit dem zu tex4ht gehörigen Skript htlatex aufgerufen, anschließend stehen die entsprechenden Bilder zum einbinden in HTML zur Verfügung. Weiterführende Angaben zu htlatex findet man unter dem Link.
Zum Schluß sei noch ein durch tex4ht erzeugtes Bild hier eingebettet (gegebenenfalls noch style="border:none;" in den Image-Tag einfügen um den Rahmen zu entfernen):

Eine gute Einführung in die Konfiguration von tex4ht bietet der Artikel tex4ht for Scientific WorkPlace von Philip A. Viton und natürlich der Beitrag TEX4ht: HTML Production des ursprünglichen Autoren Eitan M. Gurari. Ebenfalls empfehlenswert ist der Aufsatz A guide to using TEX4ht as a tool for publishing LATEX-documents on the web von Simen Kvaal.

Eine weitere interessante Möglichkeit des Formelsatzes bietet jsMath. Dieses auf JavaScript basierende Paket, ermöglicht es, den Latex-Code für die Formel direkt im HTML-Dokument einzubetten, außerdem stellt es ein komfortables Interface zur Administration bereit, z.B. um die zur Verwendung kommenden Fonts zu verwalten. Abgesehen von dem Nachteil, dass der verwendete Browser JavaScript unterstützen muß, hat jsMath den großen Vorteil, dass man den Quellcode für den Formelsatz nicht vom Dokument trennen muß und die Formeln auch mit dem Dokument skaliert werden können. jsMath unterliegt der Apache License 2.0.

Die einfachste Integration von Formelsatz in Blogs, Wikis und Webseiten ist meiner Erfahrung nach mit MathJax möglich. Auch bei MathJax handelt es sich um ein JavaScript-Framework, welches es gestattet den Latex-Code für die Formel direkt im HTML-Dokument einzubetten. Um MathJax in WordPress zu nutzen, existieren bereits einige Plugins, wie bspw. Simple-MathJax von Samuel Coskey. Hat man das Plugin im Dashboard über den Punkt Plugins installiert und aktiviert, so kann man die weiter oben als Bild eingebettete Formel durch Angabe des nativen Latex-Code im Dokument direkt vom Browser rendern lassen.
So wird der Latex-Code:
$${}_pF_q(a_1, \ldots, a_p; c_1, \ldots, c_q; z) =
\sum_{n=0}^\infty \frac{(a_1)_n \cdots (a_p)_n}{(c_1)_n \cdots (c_q)_n} \frac{z^n}{n!} \,$$

durch MathJax folgendermaßen gerendert:
$${}_pF_q(a_1, \ldots, a_p; c_1, \ldots, c_q; z) =
\sum_{n=0}^\infty \frac{(a_1)_n \cdots (a_p)_n}{(c_1)_n \cdots (c_q)_n} \frac{z^n}{n!} \,$$
Für weitere Beispiele schaue man auf die MathJax Example Pages.

WordPress installieren und Sicherungen erstellen

Eine hervorragende Einführung in WordPress bietet DokuPress – das WordPress Benutzerhandbuch.

Installation beim Hoster bplaced.net

Die Installation von WordPress auf bplaced.net ist hier ausführlich beschrieben. Prinzipiell lädt man sich die aktuelle deutsche Anpassung der WordPress-Distribution herunter, entpackt sie auf dem lokalen System und kopiert die komplette Verzeichnisstruktur anschließend mit einem geeigneten ftp-client (z.B. FileZilla) in das Wurzelverzeichnis bei bplaced.net. Dann muß noch eine MySql-Datenbank angelegt werden und die dabei vergebenen Namen und Passwörter müssen anschließend in der Datei wp-config.php bekanntgemacht werden. Ist dies geschehen, so muß im Browser noch die Datei install.php aufgerufen werden (sie befindet sich im Verzeichnis wp-admin) um die Installation abzuschließen.

Blog aus Backup neu aufsetzen

Man sollte seinen Blog in regelmäßigen Abständen sichern. Dazu steht im Dashboard unter dem Punkt Werkzeuge der Eintrag Daten exportieren zur Verfügung. Um das dabei angelegte Backup wieder einzuspielen, muß noch das Plugin WordPress Importer installiert werden. Es ist jedoch zu beachten, dass bei dieser Methode keine Dateien der Mediathek mitgesichert werden. Um diese Dateien ebenfalls zu sichern, sollte mit FileZilla das Verzeichnis /wp-content/uploads auf den lokalen Server übertragen werden. Spielt man dieses Verzeichnis nach einer Neuinstallation wieder bei seinem Hoster auf, so ist es zwar auf dem Server physisch vorhanden, allein der Mediathek sind die Dateien nicht bekannt. Dies kann durch das Plugin Add From Server geschehen, das den Import des uploads-Verzeichnisses in die Mediathek gestattet.

WordPress: Fließtext um Bilder

Um Bilder von Text umfließen zu lassen, muß in der HTML-View des betreffenden Bildes im Artikeleditor im <img>-Tag die Anweisung class="alignnone" entsprechend zu "alignright" bzw. "alignleft" geändert werden. Dies funktioniert natürlich nur, wenn im gewählten Themes überhaupt derartige Klassen definiert wurden, gegebenfalls muß im css-File des Themes die Definition nachgeholt werden (im Dashboard unter Menüpunkt “Design” Untermenü “Editor” wählen):

.alignleft { float: left; margin-right: 8px; }
.alignright { float: right; margin-left: 8px; }

Code in WordPress-Artikel einfügen

Zum Einfügen von Code muß das Plugin wp-syntax installiert und aktiviert werden. Dann kann in der HTML-View des Artikeleditors der gewünschte Code zwischen <pre lang="language" line="1"> und </pre> eingefügt werden (z.B. durch Klick mit der rechten Maustaste und der anschließenden Auswahl des Punktes “Als unformatierten Text einfügen”). Mit “language” wird die verwendete Programmiersprache angegeben, mit line kann optional die Zeilennummerierung angeschaltet werden, wobei gleichzeitig die Startzeile übergeben wird. Die Visuell-View des Artikeleditors sollte übrigens bei Verwendung des Plugins nicht benutzt werden! Das Ergebnis sieht dann für Python-Code bspw. so aus:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/python 
 
# Umbenennen eines Dateinamens in die kleingeschriebene
# Variante des Namens.
 
import os, glob 
import string
 
liste = glob.glob("*.PDF")
for line in liste:
        print "Rename: %s" % line
        os.rename(line, line.lower())

Das wars auch schon…