Programos, palaikančios matematiką. Matematinių tekstų ruošimas naudojant MathML

Šiame puslapyje paaiškinama, kaip rašyti matematines išraiškas naudojant MathML. Kaip ir HTML, pagrindiniai MathML elementai yra žymos ir atributai. HTML dokumentas tampa sudėtingas, kai jame yra tokių struktūrų kaip sąrašai ar lentelės, bet, laimei, yra daug paprastų žymėjimu pagrįstų generatorių, WYSIWYG redaktorių ir kitų turinio valdymo sistemų, padedančių kurti tinklalapius.

Matematinis žymėjimas yra dar sudėtingesnis naudojant tokias struktūras kaip trupmenos, kvadratinės šaknys ar matricos, kurioms greičiausiai reikės savo žymų. Todėl su MathML susiję kūrimo įrankiai yra labai svarbūs. Toliau aprašome kai kuriuos iš šių įrankių. Visų pirma, „Mozilla MathML“ komanda sukūrė „TeXZilla“ („Javascript Unicode LaTeX-to-MathML“ konverteris), kuris skirtas naudoti daugelyje čia aprašytų scenarijų. Žinoma, šis sąrašas jokiu būdu nėra baigtinis, todėl rekomenduojame patikrinti W3C MathML programinės įrangos sąrašą, kuriame galite rasti kitų įrankių.

Atminkite, kad MathML yra gerai integruotas į HTML5. Visų pirma galite naudoti įprastus žiniatinklio įrankius, tokius kaip CSS, DOM, Javascript arba SVG. Ši tema nepatenka į šio dokumento taikymo sritį, tačiau kiekvienas, turintis pagrindinių žiniatinklio kalbų žinių, gali lengvai sujungti šiuos įrankius su MathML. Norėdami gauti daugiau informacijos, žiūrėkite mūsų pavyzdžius.

MathML naudojimas MathML HTML puslapiuose

Galite naudoti „Presentation MathML“ HTML5 dokumentuose:

MathML HTML5 MathML HTML5

Kvadratinė šaknis iš dviejų: 2

Turinio MathML naršyklės nepalaiko. Prieš paskelbiant maketą rekomenduojama konvertuoti iš „Content MathML“ į „Presentation MathML“, pavyzdžiui, naudojant stiliaus lapą. Šiame puslapyje paminėti įrankiai generuoja pristatymą MathML.

Naršyklėms be MathML palaikymo parinktys

Deja, kai kurios naršyklės negali rodyti MathML išraiškų arba turi ribotą palaikymą. Todėl turėsite naudoti MathML daugialypį užpildą, kad pateiktumėte atsarginį atvaizdavimo variantą. Jei jums reikia tik pagrindinių matematikos konstrukcijų, pvz., naudojamų šiame MDN wiki, gali pakakti nedidelio mathml.css stiliaus lapo. Norėdami jį naudoti, tiesiog įterpkite vieną eilutę į dokumento antraštę:

Jei jums reikia sudėtingesnių konstrukcijų, galite naudoti turtingesnę MathJax biblioteką kaip MathML daugialypį užpildą:

Atminkite, kad šie du scenarijai atpažįsta mspace arba mpadded elementus (žr. šiuose puslapiuose pateiktą naršyklės suderinamumo lentelę). Taip pat yra panašus scenarijus, kuris puslapio viršuje rodo įspėjimą naršyklėms, neturinčioms gero MathML palaikymo, ir leidžia vartotojams pasirinkti vieną iš šių parinkčių:

Jei nenorite naudoti šios „GitHub“ nuorodos, bet norite integruoti šiuos polifilius ar dar ką nors į savo projektą, jums gali prireikti scenarijaus, kuris patikrintų „MathML“ palaikymo lygį. Pavyzdžiui, šios funkcijos patikrina MathML palaikymą, išbandydami elementą mspace (galite pakeisti mspace į mpaded):

Funkcija hasMathMLSupport() ( var div = document.createElement("div"), box; div.innerHTML = ""; document.body.appendChild(div); box = div.firstChild.firstChild.getBoundingClientRect(); document.body .removeChild(div);return Math.abs(box.height - 23) -1 && ua.indexOf("Chrome") === -1;

Matematikos šriftai

Norint gauti gerą išdėstymą ar suteikti norimą stilių, svarbu turėti matematinius šriftus. Visada naudinga pateikti nuorodą į MDN šriftų vadovą, kad lankytojai galėtų patikrinti, ar jų sistemoje įdiegti tinkami šriftai. Taip pat pravartu turėti atsarginę žiniatinklio šriftų kopiją.

Prieš „Gecko 31.0“ („Firefox 31.0“ / „Thunderbird 31.0“ / „SeaMonkey 2.28“) buvo nuobodu įdiegti matematinius šriftus (žr. „Mozilla 2.0“ šriftų diegimo instrukcijas). „Gecko 31.0“ („Firefox 31.0“ / „Thunderbird 31.0“ / „SeaMonkey 2.28“) tai daug paprastesnė ir suderinama su visais žiniatinklio atvaizdavimo varikliais su „MathML“ palaikymu. Pavyzdžiui, čia yra minimalus stiliaus lapas, skirtas naudoti lotyniškojo modernaus šrifto tekstui ir Lotynų šiuolaikinės matematikos šriftą matematinėms išraiškoms:

@namespace url("http://www.w3.org/1999/xhtml"); @namespace m url("http://www.w3.org/1998/Math/MathML"); body, m|mtext ( šriftų šeima: Latin Modern; ) m|math ( šriftų šeima: Latin Modern Math; )

MathML XML dokumentuose (XHTML, EPUB ir kt.)

Jei dėl kokių nors priežasčių XML dokumentuose reikia naudoti MathML, būtinai laikykitės įprastų reikalavimų: gerai suformuotas dokumentas, naudojant tinkamą MIME tipą, MathML vardų sritis „http://www.w3.org/1998/Math /MathML“ su šaknies elementu. Pavyzdžiui, ankstesnio pavyzdžio XHTML versija atrodo taip:

XHTML+MathML pavyzdys XHTML+MathML pavyzdys

Kvadratinė šaknis iš dviejų: 2

MathML el. pašto programose ir momentinių pranešimų programose

Šiuolaikinės el. pašto programos gali siųsti ir gauti el. laiškus HTML5 formatu, o tai reiškia, kad gali naudoti MathML išraiškas. Būtinai įgalinkite parinktis „siųsti kaip HTML“ ir „žiūrėti kaip HTML“. „Thunderbird“ galite naudoti komandą Įterpti HTML, kad įterptumėte HTML + MathML kodą. MathBird yra patogus Thunderbird priedas, skirtas įterpti tokias MathML išraiškas naudojant AsciiMath įvesties sintaksę. Be to, LaTeX į MathML įvesties laukas taip pat buvo integruotas į SeaMonkey nuo 2.28 versijos ir į Thunderbird nuo 31 versijos. Kita vertus, MathML kodo apdorojimas ir MathML atvaizdavimo kokybė priklauso nuo el. pašto kliento. Net jei jūsų naršyklė palaiko MathML, jūsų el. paštas gali neleisti jums siųsti ar gauti pranešimų su MathML viduje.

Gecko pagrįsti momentinių pranešimų klientai gali integruoti Javascript pagrįstą teksto į MathML keitiklį (žr. toliau) ir rodyti MathML išraiškas, sugeneruotas iš paprasto IM teksto. Pavyzdžiui, yra priedas, vadinamas Instantbird, kuris tvarko LaTeX išraiškas.

Konvertavimas iš paprastos sintaksės

Yra daug paprastų sintaksės sistemų (pavyzdžiui, wiki arba žymėjimo sintaksės), skirtos HTML puslapiams generuoti. Tas pats pasakytina ir apie MathML: pavyzdžiui, skaičiuotuvuose naudojamos ASCII sintaksės arba galingesnė LaTeX kalba yra labai populiarios tarp mokslo bendruomenės. Šiame skyriuje pateikiame kai kuriuos iš šių įrankių, skirtų konvertuoti iš paprastos sintaksės į MathML.

  • privalumai:
    • Norint rašyti matematines išraiškas, gali prireikti tik standartinio teksto rengyklės.
    • Yra daug įrankių, kai kurie iš jų suderinami su klasikine LaTeX į PDF darbo eiga.
    • Tai suteikia prieigą prie išplėstinių makrokomandų galimybių, panašių į LaTeX makrokomandas.
  • minusai:
    • Jį naudoti gali būti sunkiau: žmonės turi išmokti sintaksę, kodo rašybos klaidos gali lengvai sukelti analizavimo ar atvaizdavimo klaidas ir pan.
    • Sąsaja nėra patogi vartotojui: yra tik kodo rengyklė, iškart nerodoma matematinės išraiškos.
    • Nė viena sintaksė nebuvo standartizuota, todėl keitiklių kryžminis suderinamumas yra sudėtingas. Net populiarioji LaTeX kalba ir toliau atnaujinama naujais paketais.
Kliento pusės konversija

Žiniatinklio aplinkoje akivaizdžiausias būdas paprastą sintaksę konvertuoti į DOM medį yra naudoti Javascript, ir, žinoma, šiai užduočiai atlikti buvo sukurta daug bibliotekų.

  • privalumai:
    • Labai paprasta sąranka: tereikia įkelti keletą Javascript ir CSS failų ir (arba) pridėti nuorodas į dokumento galvutę.
    • Tai grynas žiniatinklio sprendimas: viską atlieka naršyklės, nereikia diegti ar kompiliuoti jokių kitų programų.
  • minusai:
    • Tai neveiks, jei vartotojas išjungs „Javascript“.
    • MathML kodo nepalaiko žiniatinklio tikrinimo programos (pvz., matematikos paieškos varikliai ar naujienų kaupikliai). Tiksliau, jūsų turinys nebus tinkamai rodomas planetoje.
    • Konvertavimas turi būti atliktas kiekvieną kartą įkeliant puslapį, gali būti lėtas ir gali prieštarauti HTML analizei (pvz.
Dalintis