Navigáció: Főoldal / III. rész / III. rész (4. fejezet)

III. rész: Részletes összehasonlítás (folytatás III.)

4. Az interfész

4.1. A MathML HTML-be ágyazása

Mióta a MathML megszületett, egyre többen ismerik meg, és használják a matematikában. Számtalan felhasználása létezik, az egyszerű szerkesztőktől kezdve a különböző matematikai alkalmazásokig, de mégis használatának legelterjedtebb módja a HTML dokumentumokba való beágyazás.

A MathML HTML-be ágyazásának háromféle interfészét ismerjük.

Az első, mikor szemantikailag integráljuk a két nyelvet. Ez legtöbbször azt használja ki, hogy a MathML az XML “leszármazottja”, így az XML beágyazásának szabályai érvényesek itt is.

A másik módja, mikor az általunk használt böngésző fel van készítve a MathML szövegek felismerésére, így azokat a matematikai jelölés szabályainak megfelelően jeleníti meg.

Harmadik módszer, mikor olyan segédeszközöket használunk, melyek a MathML kódot kezelni tudják. Ezek az eszközök lehetnek speciális szövegszerkesztők, fordítók, kódgenerátorok számítógépes algebrai rendszerek és más tudományos szoftverek.

4.1.1. A <math> elem

A MathML-nek egyetlen interfész eleme van, a <math>, mely körbezár minden MathML nyelvű szövegrészt egy adott HTML dokumentumban. Mindig a legfelső szinten áll, ezért nem lehet egymásba ágyazni több ilyen elemet. Ez az elem jelzi a megjelenítőnek, hogy innentől ne HTML-ként, hanem MathML-ként kell értelmeznie a további szöveget.

A <math> elemnek korlátlan számú utóda lehet, és alapjában véve úgy viselkedik, mint egy <mrow> elem.

A <math> elemnek a következő attribútumai lehetnek: class, style (ezeket a stíluslapokkal való későbbi kompatibilitás miatt specifikálták), macros (külső makrók helyét határozhatjuk meg itt), mode (a megjelenítés módját határozza meg, hasonlít az <mstyle> displaystyle attribútumára). Ezeket belső interfész-attribútumoknak hívjuk.

Ahhoz, hogy böngészőnkben helyesen értelmezni és megjeleníteni tudjuk MathML kódjainkat, szükséges lehet még néhány attribútum beállítása. Ezeket szintén a <math> elem attribútumaiként adjuk meg, feladatuk a böngésző és a MathML megjelenítő közötti információátadás. Ezek az úgynevezett külső interfész-attribútumok: type (a tartalom MIME-típusát adhatjuk itt meg), name (a szövegrész neve), height, width, baseline (az elemek adott tulajdonságainak ideiglenes beállítására szolgálnak), overflow (ha egy kifejezés valamilyen okból – pl. túl hosszú – nem lenne megjeleníthető, itt adhatunk meg egy alternatív megjelenési módot; értékei: “scroll” – görgetést tesz lehetővé görgetősávok alkalmazásával egy új ablakban; “elide” – ahol tudja, lerövidíti a kifejezéseinket, pl. egy polinomnál a + ... + alkalmazásával; “truncate” – a jobboldali és alsó határon túl eső részeket egyszerűen levágja; “scale” – átállítja a betűtípusok méretét, vagy ha lehetséges, nagyobbra állítja az ablak méretét), altimg, alttext (ezeket akkor használjuk, ha a böngésző nem alkalmas beágyazott elemek megjelenítésére, így valamilyen más alternatív megoldást kell választanunk).

A fenti attribútumok beállítása a dokumentum első beolvasásakor lépnek érvénybe. Ekkor történnek meg az olyan beállítások, mint a betűméretek módosítása is, melyek a MathML szövegrészekre is hatással vannak.

Az olyan dokumentumaink fejrészébe, amelyek tartalmaznak MathML elemeket, célszerű elhelyezni a következő HTML <META> elemet:

<META content-math-type="text/mathml">

Ugyanígy a <math> elem type attribútumában is megadhatjuk a text/mathml MIME-típust. Ezeket a dokumentumokat a standard .mml kiterjesztéssel is megjelölhetjük.

Közvetlenül nincsen lehetőség arra, hogy MathML kódokhoz kapcsoljunk HTML dokumentumokat, mert a MathML specifikációja nem engedélyezi a MathML és HTML elemek egy adott szövegben való összevegyítését. Sajnos, ez a MathML hibája, a későbbi változatoknál meg kellene vizsgálni ennek a lehetőségét.

A fentiek miatt így nincs arra lehetőségünk, hogy MathML szövegben közvetlenül kapcsokat hozzunk létre más dokumentumokkal, mert nem használhatjuk a HTML <A> elemét. Szerencsénkre, mivel a MathML egy XML változat, azért van lehetőségünk erre, bár egy kicsit bonyolultabban. Az <malignmark/>, az <maligngroup/>, a <none/>, a <power/> és a <sep/> kivételével az összes többi elemnek lehet még két attribútuma, az XML-LINK és a HREF, mellyel a kapcsok készítése megoldható, a következő módon:

<mrow XML-LINK="simple" HREF="http://www.mypage.com">
...
</mrow>

Az XML-LINK a következő értékeket veheti fel: “simple, extended, locator, group, document”, melyek közül MathML kódunknál a “simple”-t érdemes használni (a többiről bővebb információt a W3C XML specifikációja ad). Az, hogy az így létrehozott kapocs hogyan jelenik meg, teljesen a böngészőtől függ.

A kapcsokhoz hasonlóan képeket sem tudunk megjeleníteni MathML kódban, erre áthidaló megoldás sincs. Legjobb módszer, ha ilyenkor a matematikai kifejezést és a megjelenítendő képet valamilyen módon egyesítjük, és ezt a képet jelenítjük meg normál HTML kódból.

4.1.2. Egy egyszerű MathML példa

Ebben a példában egy HTML kódot mutatok be, amely a keretben található szöveget jeleníti meg:

 

MathML példa

A másodfokú egyenletek megoldóképlete: Másodfokú egyenlet

 

A HTML kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
  <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
    <META Content-math-Type="text/mathml">
    <TITLE>MathML példa</TITLE>
  </HEAD>
  <BODY>
    <H1 align=”center”>MathML példa</H1>
    <P>A másodfokú egyenletek megoldóképlete:&nbsp;
    <math>
      <mrow>
        <mi>x</mi>
        <mo>=</mo>
        <mfrac>
          <mrow>
            <mrow>
              <mo>-</mo>
              <mi>b</mi>
            </mrow>
            <mo>&PlusMinus;</mo>
            <msqrt>
              <mrow>
                <msup>
                  <mi>b</mi>
                  <mn>2</mn>
                </msup>
                <mo>-</mo>
                <mrow>
                  <mn>4</mn>
                  <mo>&InvisibleTimes;</mo>
                  <mi>a</mi>
                  <mo>&InvisibleTimes;</mo>
                  <mi>c</mi>
                </mrow>
              </mrow>
            </msqrt>
          </mrow>
          <mrow>
            <mn>2</mn>
            <mo>&InvisibleTimes;</mo>
            <mi>a</mi>
          </mrow>
        </mfrac>
      </mrow>
    </math>
    </P>
  </BODY>
</HTML>

4.2. Az OpenMath HTML-be ágyazása

4.2.1. Az <OMOBJ> elem

Hasonlóan a MathML-hez, az OpenMath-nak is egyetlen interfész eleme van, az <OMOBJ> elem, mely körbezár minden OpenMath nyelvű szövegrészt az adott HTML dokumentumban, és jelzi a megjelenítőnek, hogy innentől kezdve OpenMath nyelvű leírás kezdődik. Mindig az OpenMath nyelvű szövegek legfelső szintjén áll, nem lehet egymásba ágyazni.

Az <OMOBJ> elemnek korlátlan argumentuma lehet, viszont nincsenek attribútumai, alapjában véve úgy viselkedik, mint egy <OMA> elem.

OpenMath nyelvű dokumentumoknál is tanácsos lehet beállítani a HTML dokumentumunk fejrészében egy <META> elemet, a következő módon:

<META content-math-type=”text/OpenMath”>

OpenMath-ban egyáltalán nincs lehetőségünk arra, hogy kapcsokat hozzunk létre más dokumentumokkal, ezt abból a HTML dokumentumból kell elvégeznünk, amibe beágyaztuk OpenMath nyelvű szövegünket.

4.2.2. Egy egyszerű OpenMath példa

A fenti, MathML-nél megadott példa OpenMath-os formája:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
  <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
    <META Content-Type="text/OpenMath">
    <TITLE>OpenMath példa</TITLE>
  </HEAD>
  <BODY>
    <H1 align=”center”>OpenMath példa</H1>
    <P>A másodfokú egyenletek megoldóképlete:&nbsp;
    <OMOBJ>
      <OMA>
        <OMS cd = "relation" name="eq"/>
        <OMV name="x"/>
        <OMA>
          <OMS cd="arith" name="divide"/>
          <OMA>
            <OMS cd=”arith” name=”plusminus”/>
            <OMA>
              <OMS cd = "arith" name="unary_minus"/>
              <OMV name="b"/>
            </OMA>
            <OMA>
              <OMS cd="arith" name="root"/>
              <OMA>
                <OMS cd = "arith" name="minus"/>
                <OMA>
                  <OMS cd="arith" name="power"/>
                  <OMV name="b"/>
                  <OMI>2</OMI>
                </OMA>
                <OMA>
                  <OMS cd = "arith" name="times"/>
                  <OMA>
                    <OMS cd = "arith" name="times"/>
                    <OMI>4</OMI>
                    <OMV name="a"/>
                  </OMA>
                  <OMV name="c"/>
                </OMA>
              </OMA>
              <OMA>
                <OMI> 2 </OMI>
              </OMA>
            </OMA>
          </OMA>
          <OMA>
            <OMS cd = "arith" name="times"/> 
            <OMI>2</OMI>
            <OMV name="a"/>
          </OMA>
        </OMA>
      </OMA>
    </OMOBJ>
    </P>
  </BODY>
</HTML>

4.3. A TEX kapcsolatai

Napjainkban sajnos nincsen arra mód, hogy TEX-ben megírt szövegeinket megjeleníthessük az Interneten; jelenleg lehetőségeink kimerülnek abban, hogy a TEX kódot egyszerűen megjelenítsük.

Létezik ugyan néhány program, amely a TEX-ben írt szöveget átkonvertálja HTML-be, de a konvertálás során - a HTML hiányosságai miatt - rengeteg olyan információ elveszik, amely miatt az eredmény korántsem egyezik meg a kiindulási szöveggel. Ennek a módszernek egyetlen előnye az, hogy bármilyen standard böngészőben megjeleníthető, ami a MathML és OpenMath kódú dokumentumokról nem mondható el.

<<< Előző   |   Következő >>>