Andwil.de

ls -a /home/andwil

BlogSchlagwörter

Artikel zum Thema webauthoring

Gezeigt werden nur Blog-Artikel, die mit dem Schlagwort webauthoring versehen sind. Wenn du alle Blog-Artikel lesen möchtest, wechsle direkt in die Sektion Blog.

LaTeX in Textpattern (und eigentlich überall)

Verfasst am 6. Februar 2011, abends.

Solange Konzepte wie MathML nicht von allen Browsern ausreichend unterstützt werden, sind Grafiken eine brauchbare Alternative zur Darstellung mathematischer Formeln im Internet – zumal es mit (La-)TeX schon lange die Möglichkeit gibt, alle möglichen Gleichungen schick darzustellen.

Da so ein LaTeX-Parser recht umfangreich ist, bietet es sich an, bestehende Möglichkeiten zu nutzen. So bieten beispielsweise Wordpress.com und CodeCogs die Möglichkeit, TeX zu parsen.

Der Code wird bequem über GET übertragen; so stellt die Grafik mit der URL

http://l.wordpress.com/latex.php?latex=\mathrm{e}^{\pi \cdot \mathrm{i}} = -1&s=1&fg=000000&bg=FFFFFF

etwa die bildhübsche Gleichung

 \mathrm{e}^{\pi \cdot \mathrm{i}} = -1

dar.

Da das Hantieren mit Bild-URLs ein wenig unhandlich ist, bietet es sich an, Textpattern (bzw. Textile) um eine Formel-Funktion zu ergänzen. Im Textpattern-Forum stieß ich auf einen Tipp, genau dies zu bewerkstelligen.

Wie wird’s gemacht?

Kurz zusammengefasst, was zu tun ist (wie immer ohne Gewähr – wer keine Backups parat hält, ist selbst Schuld):

Man schnappt sich die Datei ./textpattern/lib/classTextile.php und fügt in den Body von function graf($text) bspw. in Zeile 987 dies ein:

	$text = $this->doSpecial($text, '$$', '$$', 'fLatex');

Hinter der Funktion (also etwa Zeile 990, vor function span($text) wird dieser Block eingefügt:

	/* Parse LaTeX $$ $$ strings into pictures */
	function fLatex($m) 
	{
		@list (, $before, $text, $after) = $m;

		$uri = "http://l.wordpress.com/latex.php";
		$background = "FFFFFF"; // colours for pictures
		$foreground = "000000"; 
		$size = "1";
		$style = "tex";

		return " <img class=\"$style\" src=\"". $uri . '?latex='
			. rawurlencode($text) . "&s=$size&fg=$foreground&bg=$background\""
			. " alt=\"$text\""
			. " />";
	}

Welche Hebel man verstellen muss, um Farben, Schriftgröße, HTML-Attribute usw. zu verändern kann jeder durch scharfes Hinsehen erkennen.

Wer verspricht, mir nicht ans Leder zu wollen, wenn etwas kaputt geht, darf auch diese von mir präparierte classTextile.php verwenden. (Getestet mit TXP 4.3.0)

Was hat es bewirkt?

Textile wurde durch obige Veränderungen dahingehend ergänzt, $$ foo $$ an den Parser von Wordpress zu senden, um ein Formelbildchen zurück zu bekommen. Das obige Formel-Beispiel lässt sich jetzt also durch $$ e^{\pi \cdot \mathrm{i}} = -1 $$ überall in Textpattern-Artikeln einfügen.

Erste Hilfe

Ohne Übung ist der Formelsatz zugegebenermaßen nicht ganz einfach. Die Formeleingabe lässt sich aber durch einen kleinen Online-Editor vereinfachen. Als hilfreich hat sich für mich auch die TeX-Hilfe der Wikipedia erwiesen, die viele Tricks und Kniffe parat hält.

Schlagwörter: , , , ,

Außerdem: kommentieren | weitersagen

Kontakt, Impressum, Datenschutz