Schlagwort-Archive: blog

MathML mit WordPress

Im Artikel über Matrix-Generierung habe ich zum ersten Mal MathML benutzt. Um zu einer korrekten Darstellung in WordPress zu kommen, musste ich etwas Tricksen. Was genau zu tun ist, beschreibe ich hier.

Das Layout von nerdpause ist bereits in HTML5 geschrieben (erkennbar am als erster Zeile der Ausgabe), so dass Math ML ohne weitere Probleme benutzt werden kann. Sollte das Layout noch in XHTML 1.1 verfasst sein, muss der DocType um die Angabe zu MathML erweitert werden, sie lautet dann .

Wie man MathML-Code schreibt, ist in vielen Artikeln und Blogs beschrieben, zum Beispiel hier von Danijel Gorupec, aber auch der (englische) Wikipedia-Artikel bietet für den Einstieg einige Beispiele. Der Deutsche taugt natürlich mal wieder nichts und verdient im aktuellen Zustand keinen Link.

Die wesentliche Struktur von MathML-Code ist eher langatmig. Der Formel aus dem Satz von Pythagoras, a2 + b2 = c2, wobei a,b,c, sieht etwa so aus:

<math>
  <msup>
    <mi>a</mi>
    <mn>2</mn>
  </msup>
  <mo>+</mo>
  <msup>
    <mi>b</mi>
    <mn>2</mn>
  </msup>
  <mo>=</mo>
  <msup>
    <mi>c</mi>
    <mn>2</mn>
  </msup>
  <mtext>, wobei&nbsp;</mtext>
  <mi>a</mi>
  <mo>,</mo>
  <mi>b</mi>
  <mo>,</mo>
  <mi>c</mi>
  <mo>&#x02208;</mo>
  <mi>&#x0211D;</mi>
</math>

Dabei ist vor allem zu beachten, dass der Mathematik-Bereich von <math> umschlossen wird. Das Element math kann entweder inline oder als Block dargestellt werden, was über CSS geregelt werden kann (analog z.B. zu span oder div).

Im Standardverhalten von WordPress ist das Ergebnis jedoch grauenhaft. Es werden zahllose Leerzeilen eingefügt, ein Blick in den Code der übertragenen Seite zeigt viele zusätzliche <p> und <br>-Tags. Das ist ein bekannter Bug, der jedoch schon seit 4 Jahren nicht gefixt wird. Angeblich weil das Einflüsse auf Rückwärtskompatibilität hätte. Dass man bei Verwendung der Auto-Format-Funktion von WordPress auf MathML in der selbst geschriebenen Variante komplett verzichten muss wird dabei nicht berücksichtig.

Wie behebt man das ganze nun? Ganz einfach!

In WordPress gibt es die Funktion wpautop, die bestimmte Formatierungen automatisch durchführt. Eigentlich ganz praktisch, damit kann man Absätze erzeugen, indem man einfach leere Zeilen einfügt, ähnlich wie bei LaTeX. Die Methode fügt die Absätze noch an weiteren Stellen ein, unter anderem auch nach math-Umgebungen. Um das Verhalten zu ändern, muss man einfach die datei wp-includes/formatting.php öffnen und eine Zeile wie folgende suchen:

// Space things out a little
$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|style|p|h[1-6]|hr|fieldset|noscript|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';

In der Variable allblocks sind alle Bereiche definiert, die als Block dargestellt werden sollen. Man muss dort einfach den Teil |math| löschen, und die Darstellung von MathML klappt problemlos!

Geschrieben von Kap. Zuletzt geändert am 7. Februar 2014.

Endlich erwachsen :-)

Die Nerdpause wird endlich erwachsen: Ich habe gerade meinen ersten Spam-Kommentar erhalten :-/

Achievement unlocked - Spam comments on blog

Dank an Skulltrail, dank dem ich den Hinweis auf die Schriftart Convection für das Achievement-Meme erhalten habe.

Geschrieben von Kap. Zuletzt geändert am 20. November 2013.

Die Crux mit Picasa und Google+

Die Bilder für das Blog lade ich bei Picasa (bzw. Google+, ist ja nun das gleiche) hoch. Dort konnte ich bisher prima die Links zu den Bildern erzeugen. Doch seit kurzem leitet mich Google immer automatisch auf die Google+-Fotos-Seite weiter, wenn ich versuche Picasa anzusteuern.

Wenn die beiden Produkte in ihren Fähigkeiten ähnlich wären, wäre das kein Problem. Leider gibt es in G+ noch keine Möglichkeit, Links zu den Bildern zu generieren. Ein großes Manko!

Zum Glück bin ich nicht der einzige mit diesem Problem. Georg Maschke hat auch eine Lösung parat. Man hängt an den Link einfach den Parameter

?noredirect=1

an. Wenn der Link bereits Parameter enthält (also nicht direkt auf die Picasa-Startseite sondern auf eines eurer Alben zeigt), muss man das Fragezeichen ersetzen und der Link wird so ergänzt:

&noredirect=1

Hoffen wir mal, dass Google bald die fehlenden Features in G+ nachrüstet.

Geschrieben von Kap. Zuletzt geändert am 1. November 2013.

nerdpause!

Willkommen bei meinem neuen Blog, der nerdpause. Hier werde ich in Zukunft schreiben, welche Gedanken mich in der Pause umtreiben (und auch sonst!).

Geschrieben von Kap. Zuletzt geändert am 20. Februar 2019.