LaTeX in Textpattern (und eigentlich überall)

Solange Kon­zepte wie MathML nicht von allen Brow­sern aus­rei­chend unter­stützt werden, sind Gra­fi­ken eine brauch­bare Alter­na­tive zur Dar­stel­lung mathe­ma­ti­scher For­meln im Inter­net – zumal es mit LaTeX schon lange die Mög­lich­keit gibt, alle mög­li­chen Glei­chun­gen schick dar­zu­stel­len.

Da so ein LaTeX-Parser recht umfang­reich ist, bietet es sich an, bestehende Mög­lich­kei­ten zu nutzen. So bieten bei­spiels­weise Word​press​.com und Code­Cogs die Mög­lich­keit, TeX zu parsen.

Der Code wird bequem über GET über­tra­gen; so stellt die Grafik mit der URL

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

etwa die bild­hüb­sche Glei­chung

dar.

Da das Han­tie­ren mit Bild-URLs ein wenig unhand­lich ist, bietet es sich an, Text­pat­tern (bzw. Tex­tile) um eine Formel-Funk­tion zu ergän­zen. Im Text­pat­tern-Forum stieß ich auf einen Tipp, genau dies zu bewerk­stel­li­gen.

Wie wird’s gemacht?

Kurz zusam­men­ge­fasst, was zu tun ist (wie immer ohne Gewähr – wer keine Back­ups 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 Funk­tion (also etwa Zeile 990, vor function span($text) wird dieser Block ein­ge­fü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 ver­stel­len muss, um Farben, Schrift­größe, HTML-Attri­bute usw. zu ver­än­dern kann jeder durch schar­fes Hin­se­hen erken­nen.

Was hat es bewirkt?

Tex­tile wurde durch obige Ver­än­de­run­gen dahin­ge­hend ergänzt, $$ foo $$ an den Parser von Word­press zu senden, um ein For­mel­bild­chen zurück zu bekom­men. Das obige Formel-Bei­spiel lässt sich jetzt also durch $$ e^{\pi \cdot \mathrm{i}} = -1 $$ über­all in Text­pat­tern-Arti­keln ein­fü­gen.

Erste Hilfe

Ohne Übung ist der For­mel­satz zuge­ge­be­ner­ma­ßen nicht ganz ein­fach. Die For­mel­ein­gabe lässt sich aber durch einen klei­nen Online-Editor ver­ein­fa­chen. Als hilf­reich hat sich für mich auch die TeX-Hilfe der Wiki­pe­dia erwie­sen, die viele Tricks und Kniffe parat hält.