Andreas: Verwendung von MathML

Hi Forumer,

ich habe mal eine Anfängerfrage zu XML. Ich muss einen technischen Text mit einem Haufen an Formeln als Webseite schreiben. Wenn ich das ganze über LaTeX mache und als HTML-Seite ausgeben lasse, sind die Formeln alle als Grafik gespeichert, was mir persönlich nicht so gefällt.

Beim W3C habe ich dann etwas über MathML gefunden und mal versucht damit etwas zu basteln. Die Doku zu MathML und XML habe ich mir runtergeladen, desweiteren auch die DTD's.

Ich habe versuchsmäßig mal folgendes geschrieben:

<?xml version="1.0"?>
<!doctype math public "-//W3C//DTD MathML 2.0//EN" "MathML/mathml2.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>Mathe-Versuch</title>
  </head>
  <body>
    <p>The following is MathML markup:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <msup>
          <mfenced>
            <mrow>
              <mi>a</mi>
              <mo>+</mo>
              <mi>b</mi>
            </mrow>
          </mfenced>
          <mn>2</mn>
        </msup>
      </mrow>
    </math>
  </body>
</html>

und als xml-Datei gespeichert. Die Dateien für MathML, die ich vom W3C runterladen kann, habe ich im angegebenen Unterverzeichnis "MathML" gespeichert.

Wenn ich die Datei in meinen Browsern aufrufe, bekomme ich folgende Fehlermeldungen:

Opera 5.12: XML-Interpretation fehlgeschlagen: Syntaxfehler (2:0)

IE 5: Die Deklaration hat einen ungültigen Namen. Zeile 2, Position 3

Mozilla 0.93: eine Kombination der beiden ersten Fehlermeldungen

Kann mir jemand von Euch sagen, wie die Deklaration aussehen muss, damit ich MathML nutzen kann? Die Deklaration, so wie sie jetzt ist, habe ich mir aus den Dokus zu XML und MathML rausgeholt, weil ich mich wie gesagt bisher noch nicht damit beschäftigt habe.

Für Lösungsansätze, Tipps, Links, etc. bin ich immer dankbar.

Grüße

Andreas

  1. Hi Andreas,

    die angegeben Browser können alle noch kein MathML.

    Der einzige den ich kenne, ist der Amaya-Browser vom W3C.
    Ob es allerdings Sinn macht, MathML jetzt anzuwenden, wenn es noch keiner lesen kann, sei dahingestellt.

    Gruß

    1. Hi Peter,

      die angegeben Browser können alle noch kein MathML.

      och manno, wenn ich das gewusst hätte, hätte ich mir einen Haufen Arbeit sparen können. *g*

      Der einzige den ich kenne, ist der Amaya-Browser vom W3C.
      Ob es allerdings Sinn macht, MathML jetzt anzuwenden, wenn es noch keiner lesen kann, sei dahingestellt.

      Hmm, den Sinn kann ich zum jetzigen Zeitpunkt auch nicht erkennen, also doch der Umweg über LaTeX.

      Danke für den Hinweis.

      Grüße

      Andreas

      1. Hi Andreas

        Endlich mal jemand der sich hier für MathML interessiert.
        Geh mal auf die Mozilla Page letztes mal haben sie dort nen
        speziellen Download angeboten in dem MathML betamäßig
        in Mozilla integriert war.

        Weiterhin Latex zu benutzen ist sowieso nicht nicht falsch, da IMHO
        MathML hauptsächlich aus Tex-Code generiert werden wird
        (respektive aus Dialekten wie itex). Ich hoffe das Latex2Html
        (das benutzt du wohl) irgendwann eine MathML aufsatz bekommen wird.

        MathML ist zum direkten setzen von Formeln wohl doch _etwas_ zu umständlich.

        Viele Grüße
        Rolf

        1. Hi Rolf,

          Endlich mal jemand der sich hier für MathML interessiert.
          Geh mal auf die Mozilla Page letztes mal haben sie dort nen
          speziellen Download angeboten in dem MathML betamäßig
          in Mozilla integriert war.

          Jo, da schau ich doch gleich mal nach. *froi*

          Weiterhin Latex zu benutzen ist sowieso nicht nicht falsch, da IMHO
          MathML hauptsächlich aus Tex-Code generiert werden wird
          (respektive aus Dialekten wie itex). Ich hoffe das Latex2Html
          (das benutzt du wohl) irgendwann eine MathML aufsatz bekommen wird.

          So wie ich das verstanden und in der Doku gelesen habe, ist MathML praktisch TeX für HTML, die Tags sind teilweise auch ähnlich den LaTeX-Befehlen.

          MathML ist zum direkten setzen von Formeln wohl doch _etwas_ zu umständlich.

          Aber ich könnte mir dann die ganzen Bilderleins sparen. :-)

          Grüße

          Andreas

          1. Hi Andreas,

            So wie ich das verstanden und in der Doku gelesen habe, ist MathML praktisch TeX für HTML, die Tags sind teilweise auch ähnlich den LaTeX-Befehlen.

            Zweifel! Das XML-Paradigma stellt sich da AFAIK selbst nen Fuß,
            "Trennung von Inhalt und Layout" oder so (Korrigiert mich ;)

            Ich habs von Leuten die's wissen muessen, und es ist auch plausibel.
            Du wirst nie so intuitiv MathML Coden können wie Tex, oder willste
            z.B. ständig Endtags setzen? Schreib mal ne Potenzreihe mit Indizes
            in Latex und vergleichs mit dem Code von MathML.

            Klar werden die Tags genauso heißen wie in Tex. Tex ist der Standard! ;)

            MathML ist zum direkten setzen von Formeln wohl doch _etwas_ zu umständlich.

            Aber ich könnte mir dann die ganzen Bilderleins sparen. :-)

            Was stört dich an den PNGs? ich kenne nur einen echten Nachteil: Plattenplatz!
            die dinger haben ne größe von 100-200 Bytes aber auf den Riesenpallten
            von heute sind Blocksizes von >=4K eingestellt => 50 Bilderchen = 200K.

            Der user merkt beim download aber nicht viel davon.
            (das haben wir hier schon mal diskutiert)

            Man kann lange darüber diskutieren was der richtige Ansatz ist (ist gibt da
            noch so vieeele mehr...), ich denke die Zukunft wirds weisen, und wenn man heute
            im Web Formeln publizieren will reicht Latex2Html 1. aus und 2. wird es keine
            Lösung geben/durchsetzen die inkomtaibel zu alten Latex-Code sein wird.

            IMHO >95% der mathematischen Unterlagen im Netz liegen heute noch in PS
            oder PDF vor, da ist Latex2HTML noch hightech!

            Viele Grüße
            Rolf

            1. Hi Rolf,

              hab jetzt grad mal nachgeschaut.

              So wie ich das verstanden und in der Doku gelesen habe, ist MathML praktisch TeX für HTML, die Tags sind teilweise auch ähnlich den LaTeX-Befehlen.

              Zweifel! Das XML-Paradigma stellt sich da AFAIK selbst nen Fuß,
              "Trennung von Inhalt und Layout" oder so (Korrigiert mich ;)

              TeX bzw. LaTeX ist doch auch Trennung von Inhalt und Layout. Das macht's ja für mich so einfach vernünftige Texte damit zu schreiben. *g* Außerdem ist das Erstellen von Formeln natürlich perfekt. ;-)

              Ich habs von Leuten die's wissen muessen, und es ist auch plausibel.
              Du wirst nie so intuitiv MathML Coden können wie Tex, oder willste
              z.B. ständig Endtags setzen? Schreib mal ne Potenzreihe mit Indizes
              in Latex und vergleichs mit dem Code von MathML.

              Dass TeX besser für Formeln ist, ist klar, da gibt's nichts zu rütteln. Ich glaube da noch etwas zu verbessern, dürfte sich als schwieriges Unterfangen herausstellen.

              Aber ich könnte mir dann die ganzen Bilderleins sparen. :-)

              Was stört dich an den PNGs? ich kenne nur einen echten Nachteil: Plattenplatz!
              die dinger haben ne größe von 100-200 Bytes aber auf den Riesenpallten
              von heute sind Blocksizes von >=4K eingestellt => 50 Bilderchen = 200K.

              Der user merkt beim download aber nicht viel davon.
              (das haben wir hier schon mal diskutiert)

              Es geht auch nicht um den Plattenplatz, ist eher eine Philosophie. *g*

              Man kann lange darüber diskutieren was der richtige Ansatz ist (ist gibt da
              noch so vieeele mehr...), ich denke die Zukunft wirds weisen, und wenn man heute
              im Web Formeln publizieren will reicht Latex2Html 1. aus und 2. wird es keine
              Lösung geben/durchsetzen die inkomtaibel zu alten Latex-Code sein wird.

              Bei http://hutchinson.belmont.ma.us/tth/mml/ gibt's einen TeX2HTML-Konverter. Ich hab ihn noch nicht ausprobiert, aber er soll wohl nach MathML konvertieren. Und den Mozilla-Source kann man wirklich an MathML anpassen.

              Grüße

              Andreas, der jetzt solange gebraucht hat, weil die Freundin angerufen hat

              1. Hi Andreas

                Zweifel! Das XML-Paradigma stellt sich da AFAIK selbst nen Fuß,
                "Trennung von Inhalt und Layout" oder so (Korrigiert mich ;)

                TeX bzw. LaTeX ist doch auch Trennung von Inhalt und Layout. Das macht's ja für mich so einfach vernünftige Texte damit zu schreiben. *g* Außerdem ist das Erstellen von Formeln natürlich perfekt. ;-)

                Hier mal ein Auszug zum Thema "Tex oder MathML" was geht einfacher, aus
                http://pear.math.pitt.edu/mathzilla/mathml.html
                (Da findest du auch Details zu iTex)

                Example: A Taylor series expansion.

                In latex:

                [f(z) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (z-a)^n].

                And in MathML:

                <math xmlns='http://www.w3.org/1998/Math/MathML' mode='display'>
                <mi>f</mi><mo>(</mo><mi>z</mi><mo>)</mo>
                <mo>=</mo>
                <msubsup>
                <mo>&Sum;</mo>
                <mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow>
                <mn>∞</mn>
                </msubsup>
                <mfrac>
                <mrow>
                <msup><mi>f</mi> <mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow> </msup>
                <mo>(</mo><mi>a</mi><mo>)</mo>
                </mrow>
                <mrow><mi>n</mi><mo>!</mo></mrow>
                </mfrac>
                <mo>(</mo><mi>z</mi><mo>-</mo><mi>a</mi>
                <msup><mo>)</mo> <mi>n</mi></msup>
                </math>

                Das macht Spass gell?

                Viele Grüße
                Rolf

                1. Hi Rolf,

                  Hier mal ein Auszug zum Thema "Tex oder MathML" was geht einfacher, aus
                  http://pear.math.pitt.edu/mathzilla/mathml.html
                  (Da findest du auch Details zu iTex)

                  Example: A Taylor series expansion.

                  In latex:

                  [f(z) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (z-a)^n].

                  And in MathML:

                  <math xmlns='http://www.w3.org/1998/Math/MathML' mode='display'>
                  <mi>f</mi><mo>(</mo><mi>z</mi><mo>)</mo>
                  <mo>=</mo>
                  <msubsup>
                  <mo>&Sum;</mo>
                  <mrow><mi>n</mi><mo>=</mo><mn>0</mn></mrow>
                  <mn>∞</mn>
                  </msubsup>
                  <mfrac>
                  <mrow>
                  <msup><mi>f</mi> <mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow> </msup>
                  <mo>(</mo><mi>a</mi><mo>)</mo>
                  </mrow>
                  <mrow><mi>n</mi><mo>!</mo></mrow>
                  </mfrac>
                  <mo>(</mo><mi>z</mi><mo>-</mo><mi>a</mi>
                  <msup><mo>)</mo> <mi>n</mi></msup>
                  </math>

                  Das macht Spass gell?

                  Wir sind uns ja auch einig, dass in LaTeX Formeln einfach und schnell zu schreiben sind. Ich kenne auch kein Programm, dass das besser machen würde, schon gar nicht der Formeleditor von MS.

                  Dass der MathML-Code sehr kompliziert wird, ist mir auch schon beim Durchforsten der Doku aufgefallen. Andererseits gibt's ja sogar mittlerweile ein paar LaTeX-zu-MathML-Konverter.

                  Grüße

                  Andreas

                  1. Hallo Andreas

                    Wir sind uns ja auch einig, dass in LaTeX Formeln einfach und schnell zu schreiben sind. Ich kenne auch kein Programm, dass das besser machen würde, schon gar nicht der Formeleditor von MS.

                    War nur ein Nachtrag, es lesen noch andere Leute mit, die HTML++ für
                    das nonplusultra halten oder noch nix von MathML gehört haben,
                    da wollt ich das Beispiel noch nachliefern. ;)

                    Dass der MathML-Code sehr kompliziert wird, ist mir auch schon beim Durchforsten der Doku aufgefallen. Andererseits gibt's ja sogar mittlerweile ein paar LaTeX-zu-MathML-Konverter.

                    Ich habs nur kurz überflogen, aber halte den iTex Ansatz für gelungen
                    da wird gleich Tex in der Page embedded.

                    Die nächste Fragestellung wird noch werden wie man Formeln in Chats
                    und Foren einbaut! Da bin ich schon lange am überlegen.

                    Hast du eigentlich ernsthaft vor, jetzt schon mit MathML zu publizieren?

                    Viele Grüße
                    Rolf

        2. Grüssi,

          Endlich mal jemand der sich hier für MathML interessiert.
          Geh mal auf die Mozilla Page letztes mal haben sie dort nen
          speziellen Download angeboten in dem MathML betamäßig
          in Mozilla integriert war.

          Ich finds schade, dass man als normalsterblicher diese ganze bunte *ML-Welt nie zu sehen bekommt. Da haben sich viele Menschen viele Gedanken gemacht, damit man das plattformunabhängig präsentieren kann, nur setzt niemand die dafür nötige Software um. Ich nehme mal an es gibt so kleine auf irgendeiner Uni zusammengeflickte Exoten wie MathML-Explorer oder ChemZilla oder so, aber es wär irgendwie schön, wenn die lieben Herrn und Damen Browserhersteller so nett wären und Module schreiben würden, die man sich herunterladen kann, wenn man vorhat sich mit ChemML herumzuspielen, oder aber öfters mal ne MathML-Seite ansurft. Das wär echt eine schöne Welt dann. Gschwind mal das Plugin runtergeladen, und dann kannste anschauen waste willst :o)

          jaja, ich bin ein Träumer ;-)

          lg bern*jedem seine Träume*hard

          1. Lieber Bernhard

            Ich finds schade, dass man als normalsterblicher diese ganze bunte *ML-Welt nie zu sehen bekommt. Da haben sich viele Menschen viele Gedanken gemacht, damit man das plattformunabhängig präsentieren kann, nur setzt niemand die dafür nötige Software um. Ich nehme mal an es gibt so kleine auf irgendeiner Uni zusammengeflickte Exoten wie MathML-Explorer oder ChemZilla oder so, aber es wär irgendwie schön, wenn die lieben Herrn und Damen Browserhersteller so nett wären und Module schreiben würden, die man sich herunterladen kann, wenn man vorhat sich mit ChemML herumzuspielen, oder aber öfters mal ne MathML-Seite ansurft. Das wär echt eine schöne Welt dann. Gschwind mal das Plugin runtergeladen, und dann kannste anschauen waste willst :o)

            Dito!  Hoffen wir halt dass Mozilla den Weg zum Massenbrowser macht.

            Allerdings plugins gibts für Formeln auch, such mal nach WebEq,
            allerdings ob's dass bringt ???

            Viele Grüße
            Rolf

            PS: Bin ich's jetzt wirklich?

            -----BEGIN PGP SIGNATURE-----
            iQA/AwUBONpOg40d+PaAQUTlEQIc5ACdGkKSzpOrsT0Gvj3jH9NXD8ZP2IcAn0vj
            /BHT+qQCtPCtCwO1aQ3Xk/NL
            =1CZt
            -----END PGP SIGNATURE-----

  2. Kann mir jemand von Euch sagen, wie die Deklaration aussehen muss, damit ich MathML nutzen kann? Die Deklaration, so wie sie jetzt ist, habe ich mir aus den Dokus zu XML und MathML rausgeholt, weil ich mich wie gesagt bisher noch nicht damit beschäftigt habe.

    Du hast das Problem, daß MathML noch von keinem Browser verstanden wird. Um die Integration von Grafiken für Formeln wirst du zur Zeit nicht herumkommen.

    - Sven Rautenberg

  3. Ich habe versuchsmäßig mal folgendes geschrieben:

    <?xml version="1.0"?>
    <!doctype math public "-//W3C//DTD MathML 2.0//EN" "MathML/mathml2.dtd">

    Opera 5.12: XML-Interpretation fehlgeschlagen: Syntaxfehler (2:0)

    IE 5: Die Deklaration hat einen ungültigen Namen. Zeile 2, Position 3

    Mozilla 0.93: eine Kombination der beiden ersten Fehlermeldungen

    Syntaxfehler also, hier in der Dokumenttyp-Deklaration; die Bezeichner dort unterscheiden zwischen Gross- und Kleinschreibung.

    Kann mir jemand von Euch sagen, wie die Deklaration aussehen muss, damit ich MathML nutzen kann?

    Du musst DOCTYPE und PUBLIC statt 'doctype' und 'public' schreiben, ausserdem darfst du damit keine XHTML-Elemente im Dokument verwenden. Du kannst entweder dabei bleiben oder musst einen XHTML-Dokumenttyp deklarieren. Den musst du allerdings vorher selber definieren, da es bisher kein MathML-Integrationssatz gibt, daher lasse die Deklaration weg.

    Die Deklaration, so wie sie jetzt ist, habe ich mir aus den Dokus zu XML und MathML rausgeholt, weil ich mich wie gesagt bisher noch nicht damit beschäftigt habe.

    Das bezweifel ich.

    1. Hi,

      Du musst DOCTYPE und PUBLIC statt 'doctype' und 'public' schreiben, ausserdem darfst du damit keine XHTML-Elemente im Dokument verwenden. Du kannst entweder dabei bleiben oder musst einen XHTML-Dokumenttyp deklarieren. Den musst du allerdings vorher selber definieren, da es bisher kein MathML-Integrationssatz gibt, daher lasse die Deklaration weg.

      Die Deklaration, so wie sie jetzt ist, habe ich mir aus den Dokus zu XML und MathML rausgeholt, weil ich mich wie gesagt bisher noch nicht damit beschäftigt habe.

      Das bezweifel ich.

      Deine Zweifel stimmen teilweise. ;-)

      DOCTYPE und PUBLIC waren in den Dokus groß geschrieben, allerdings hat's damit auch nicht funktioniert. :-( Die Deklaration an sich habe ich allerdings schon aus den Dokumentationen.

      Grüße

      Andreas

      1. DOCTYPE und PUBLIC waren in den Dokus groß geschrieben, allerdings hat's damit auch nicht funktioniert.

        Definiere "nicht funktioniert".

        1. Hi,

          DOCTYPE und PUBLIC waren in den Dokus groß geschrieben, allerdings hat's damit auch nicht funktioniert.

          Definiere "nicht funktioniert".

          Definition:
          Das gewünschte Verhalten/Ereignis wurde nicht erreicht. ;-)

          Es hat sich mittlerweile auch schon geklärt. Der Fehler, der mir bei Großschreibung der beiden Worte angezeigt wurde, lag daran, dass MathML noch nicht in die Browser integriert ist, die ich verwendet habe.

          Grüße

          Andreas