Matematik ve İnternet: Hangi programları kullanmalısınız? HTML belgelerine formül eklemenin temel yolları mathml'yi destekleyen programlar

  • 05.11.2019

Yukarıdakilerin tümü, belgenin bağlamı dışındaki bireysel formüller için geçerlidir. Programlama dillerini öğrenirken kullanılan "Merhaba Dünya!" örneğine karşılık gelen bir örneğe daha yakından bakalım. Yukarıda tartışılan iki değişkenin toplamının karesini içeren bir XHTML 1.0 belgesinin tam kodunu sunacağız:

MathML'in Merhaba Meydanı

Bu tam bir kare:

Bu standart XHTML belge yapısıdır. Bir XML ad alanı bildirimi ve bir dil bildirimi içeren bir açılış etiketiyle başlar. Head öğesi her zamanki gibi başlığı içerir. Açılış etiketi başlangıcı aynı zamanda standart MathML ad alanı için kullanılacak m kısaltmalı önek harfinin bir ad alanı bildirimine de sahiptir. Sonra her zamanki paragraf geliyor. Son olarak, aynı zamanda bir ad alanı bildirimine sahip olan math öğesi vardır. Math öğesinin içinde MathML işaretlemesi bulunur.

MathML Örnekleri İşaretleme Örneklerini Görüntüle

Gösterim: X 2 + 4X + 4 = 0.

İşaretleme:

Terimleri temsil etmek için iç içe mrow öğelerinin kullanıldığına dikkat edin. Örneğin denklemin sol tarafı "=" için işlenendir. Terim vurgulama, görsel görüntüleme, ses çalma ve satır sarma için yapıyı büyük ölçüde geliştirir. MathML InvisibleTimes sembolü, oluşturucuya 4 ile x arasında satır sonlarına izin verilmediğini bildirmek için kullanılır. Aslında MathML 1.0'da tanıtılan bu öğenin bu şekilde kullanılması önerilmez. Tüm normal metin verileri Unicode kodlarında belirtilir. Bununla birlikte, Unicode 3.2'de yeni bir karakter beklenmesine ve Unicode'un iyileştirilmesine yönelik öneriler dikkate alınmasına rağmen, Unicode 3.0'ın mevcut sürümü böyle bir karakter kullanmamaktadır. Beklenen dijital referansı kullanabiliriz ࠎ ancak netlik sağlamak amacıyla örneklerde InvisibleTimes öğesini kullanmaya devam edeceğiz.

İşaretleme:

±

mfrac ve msqrt elemanları sırasıyla kesir ve karekök oluşturmak için kullanılır.

Artı-eksi işaretinin özel bir varlık tarafından belirtildiğini unutmayın; ancak bu durumda B1; gibi bir Unicode karakter bulunur. MathML, matematiksel sembolleri tanımlayan kapsamlı bir öğe adları listesi sağlar. MathML, bir belgeyi görüntülemek ve yazdırmak için kullanılan matematiksel sembollerin yanı sıra, bir belgenin konuşma kullanılarak işlenmesi için de semboller sağlar. Konuşmanın oynatılması için bir pasajın nasıl okunması gerektiğinin otomatik olarak belirlenmesi önemlidir.

Nasıl " z değerle çarpmak X artı sen"veya" z ile çarpmak X artı sen". (U+2062) ve (U+2061) karakterleri, yazarlara konuşma programları için bu tür farklılıkları doğrudan kodlamanın bir yolunu sağlar. Örneğin, ilk durumda, (U+2062) karakteri satırdan sonra eklenmelidir. içeren z. MathML ayrıca bir diferansiyeli temsil eden (U+2146) gibi varlıkları da içerir. Yazdırıldığında alışılagelmiş "d" sembolünden farklı aralıklarla görüntülenir ve "d" veya "ilgili olarak" olarak telaffuz edilebilir. Belirsizliği ortadan kaldırmak için içerik etiketleri veya başka herhangi bir mekanizma kullanılsa da, yazarlar belgeleri daha erişilebilir kılmak için her zaman yukarıda açıklanan simgeleri varlıklar olarak kullanmalıdır.

İşaretleme:

X

sen

z

w

Mtable öğesi MathML'de bir tablonun başlangıcını işaret eder. Mtr öğesi bir tablo satırını tanımlar ve mtd öğesi, satır öğesine (hücreye) ilişkin verileri içerir. Çoğu öğenin ekranda ve baskıda görüntü özelliklerini belirleyen nitelikleri vardır. Örneğin mfenced öğesi, gruplandırma ifadesinin başında ve sonunda hangi karakterlerin kullanılması gerektiğini belirten niteliklere sahiptir. Operatör öğelerinin nitelikleri, öğeyi kullanan dizin tarafından tanımlanan varsayılan değere ayarlanır.

.

MathML işaretlemesine duyulan ihtiyaç, birçok harika özelliğe rağmen HTML formatının matematiksel gösterimleri aktarma konusunda oldukça sınırlı yeteneklere sahip olmasından kaynaklanmaktadır. Çoğu zaman, HTML sayfalarındaki formüller grafik biçiminde (raster veya vektör) sunulur, ancak bu yöntemin bariz dezavantajları vardır. Örneğin, bir çizim formülünün düzenlenmesi neredeyse imkansızdır ve yazdırıldığında kalitesi genellikle arzu edilenin çok altında kalır. Fikirlerin gelişimi, MathML'yi de içeren bütün bir matematiksel işaretleme dilleri ailesinin yaratılmasına yol açtı. Geliştiriciler sorunun derinliğinin farkına vardılar ve aşağıdaki sınırlı ancak yine de oldukça önemli gereksinimleri karşılayan bir spesifikasyon oluşturma hedefini belirlediler:

ü öğrenme kolaylığı ve temel matematiksel gösterimlerin elle yazılması

ü uygun zarflarla sağlanması gereken diğer matematiksel formatlarla maksimum uyumluluk

ü çeşitli terminal cihazlarına formül çıktısı verme yeteneği

ü genişletilebilirlik desteği, yani yeni sembollerin ve şemaların tanıtılması.

MathML kullanmanın genel prensibi, matematiksel yapıların normal bir HTML belgesine yerleştirilmesi ve belge internetten indirildiğinde çoğaltılmasıdır.

MathML dili, matematiksel materyali kaydetmek için esnek ve genişletilebilir bir sistem sunarak, harici programlarla etkileşime girmesine ve çeşitli bilgi ortamlarında yüksek kaliteli görüntü sağlamasına olanak tanır. MathML kullanmanın genel prensibi, matematiksel yapıları bir XHTML/HTML belgesine yerleştirmektir. MathML kullanarak web sayfaları oluşturmak üç şekilde mümkündür: HTML + sunumsal MathML, XHTML + sunumsal MathML, XML + MathML

Matematiksel ifadeleri MathML'e dönüştürmek için birçok yardımcı program mevcuttur. MathML'i doğrudan destekleyen ana tarayıcılar, Mozilla'nın en son sürümleri ve çeşitleridir. Diğer birçok tarayıcı, uygun eklentilerin kurulu olmasıyla bu formatı destekler. Ayrıca MathML, Microsoft Word ve OpenOffice.org gibi önemli ofis programlarının yanı sıra Mathematica, Maple gibi matematik yazılım ürünleri tarafından da desteklenmektedir. MathML çok güçlü ve çok yönlü bir formül işaretleme dilidir. Doğru, formülleri düzenlemek (ve okumak) oldukça zordur. MathML dili XML teknolojisi kullanılarak oluşturulmuştur ve formül parçalarını belirtmek için kendi etiketlerini kullanır.

Basit bir formül açıklaması örneği

X

+

3

Örnek 2

TeX işaretlemesini kullanarak HTML belgelerine formül ekleme

TeX, özellikle matematik dünyasında, kelime işlemcide, belge biçimlendirme sistemlerinde pek çok kişi tarafından kullanılan popüler bir işaretleme dilidir.

Paket, çeşitli dillerde metin yazmak, bölümleri ve formülleri numaralandırmak, çapraz referans vermek, sayfaya resimler ve tablolar yerleştirmek, kaynakça tutmak vb. dahil olmak üzere makale yazma ve hazırlamaya ilişkin birçok görevi otomatikleştirmenize olanak tanır.

LaTeX'teki formüller özel komutlar kullanılarak yazılır. Örneğin, LaTeX'teki normal dağılım formülü şu şekilde görünecektir: \frac(1)(\sigma\sqrt(2\pi))\exp\left(-\frac((x-\mu) ^2) (2\sigma ^2)\sağ)

ve şu şekilde görüntülenecektir:

Matematiksel formülün kaynak kodu etiketin içine yazılmıştır... Boşluklar dikkate alınmaz (TeX kendisi yapacaktır). Boş satırlara izin verilmez.

TEX'in Avantajları:

  • TEX yazılım uygulamaları neredeyse tüm bilgisayar türleri için mevcuttur
  • donanım kaynakları için düşük gereksinimler (286/386 işlemcili IBM PC uyumlu bir bilgisayar çalışma için yeterlidir)
  • kaynak metinlerin taşınabilirliği (biçimlendirme sonuçları, yani belgenizin son görünümü tüm platformlar için aynı olacaktır)
  • Yazdırıldığında metin tipografik kalitededir,
  • çok sayıda ücretsiz uygulama
  • Basıldığında harika görünecek her türlü karmaşıklıktaki matematiksel ve diğer formülleri minimum çabayla hazırlama yeteneği
  • genişletilebilirlik (mevcut temel komutlara dayanarak, kendi daha karmaşık komutlarınızı oluşturabilirsiniz)

TeX tasarlandığında yerleşik olan ana özelliklerden biri, matematiksel formülleri kolayca oluşturabilme yeteneğiydi.

Bir dizi karmaşık formül, "görsel" düzenleyicilerden (M$ Equation, MathCAD) çok daha kolay ve hızlıdır. Bu, özellikle formülleri birbirine göre hizalamanın, numaralandırmayı düzenlemenin ve ayrıca standart olmayan matematiksel gösterimlerin kullanılmasının gerekli olduğu durumlarda fark edilir.

Formüller yalnızca TeX gösteriminde desteklenir. Örnek:

E=mc^2

şuna benzeyecek:

Formülleri HTML belgelerine resim olarak ekleme

En kolay yol, img etiketini kullanarak formülleri bitmap görüntüleri olarak eklemektir. Formül görseli manuel olarak (görsel formül düzenleyiciden) veya otomatik olarak elde edilebilir. Formüller, belgeye gömülü eklenen nesneler olarak temsil edilir. Çok katlı basit kesirler, Yunan harfleri, matrisler içerebilirler.

Avantajları:

resimleri görüntüleyen tüm tarayıcılarda orijinaliyle aynı şekilde görüntülenir

Office belgelerine kopyalamak nispeten kolaydır

Kusurlar:

çözme seçeneklerinin tüm ırklarının formüllerini içeren en büyük sayfa boyutu

formülün boyutunu değiştirmek imkansızdır - genellikle metne göre çok küçük veya çok büyük veya metne göre çok küçük veya çok büyüktür

yazdırıldığında kötü görünüyor - çözünürlükler eşleşmiyor

formülü kaynak kodu ve özel bir program olmadan değiştirmek imkansızdır

formülü metinde ortalamak oldukça zordur

formülü kelimelere aktarmak imkansızdır - gerekirse birkaç satıra bölün

Kullanılan edebiyat.

1. Galaktionov V.V. Genişletilebilir İşaretleme Dili (XML): Yeni nesil İnternet yazılım mimarisini tanımlayan bir endüstri standardı. JINR İletişimi, R10-2000-44, Dubna, 2000.

2. D. Knuth. "TeX hakkında her şey."

3. http://math.accent.kiev.ua

4. http://www.raleigh.ru/ MathML /MathML2/chapter2.html ·

5. www.elbib.ru/index.phtml?page=elbib/rus/journal/2005/

6. http://www.ibb.ru/articles/tex/node3.phtml

Bu sayfada MathML kullanılarak matematiksel ifadelerin nasıl yazılacağı açıklanmaktadır. HTML gibi MathML'nin de temel öğeleri etiketler ve niteliklerdir. Bir HTML belgesi, listeler veya tablolar gibi yapılar içerdiğinde karmaşık hale gelir, ancak neyse ki Web sayfaları oluşturmanıza yardımcı olacak birçok basit gösterim tabanlı oluşturucu, WYSIWYG düzenleyicisi ve diğer içerik yönetim sistemleri vardır.

Kesirler, karekökler veya matrisler gibi muhtemelen kendi etiketlerini gerektiren yapılarla matematiksel gösterim daha da karmaşıktır. Bu nedenle MathML ile ilgili geliştirme araçları oldukça önemlidir. Bu araçlardan bazılarını aşağıda açıklıyoruz. Özellikle Mozilla MathML ekibi, burada açıklanan senaryoların çoğunda kullanılması amaçlanan TeXZilla'yı (Javascript Unicode LaTeX'ten MathML'ye dönüştürücü) geliştirdi. Elbette bu liste hiçbir şekilde kapsamlı değildir ve başka araçlar bulabileceğiniz W3C MathML yazılım listesini kontrol etmenizi öneririz.

MathML'nin HTML5'e iyi entegre olduğunu unutmayın. Özellikle CSS, DOM, Javascript veya SVG gibi yaygın Web araçlarını kullanabilirsiniz. Bu konu bu belgenin kapsamı dışındadır ancak temel Web dilleri bilgisine sahip olan herkes bu araçları MathML ile kolaylıkla birleştirebilir. Daha fazla ayrıntı için örneklerimize göz atın.

HTML Sayfalarında MathML MathML'yi Kullanma

Sunum MathML'yi HTML5 belgelerinin içinde kullanabilirsiniz:

HTML5'te MathML HTML5'te MathML

İkinin karekökü: 2

Content MathML tarayıcılar tarafından desteklenmez. Mizanpajınızı yayınlamadan önce, örneğin bir stil sayfası kullanarak Content MathML'den Sunum MathML'ye dönüştürmeniz önerilir. Bu sayfada bahsedilen araçlar Sunum MathML'yi oluşturur.

MathML desteği olmayan tarayıcılar için seçenekler

Ne yazık ki bazı tarayıcılar MathML ifadelerini görüntüleyemiyor veya sınırlı desteğe sahip. Bu nedenle, bazı işleme geri dönüşleri sağlamak için MathML çoklu doldurma kullanmanız gerekecektir. Bu MDN wiki'sinde kullanılanlar gibi yalnızca temel matematik yapılarına ihtiyacınız varsa, küçük bir mathml.css stil sayfası yeterli olabilir. Kullanmak için belgenizin başına bir satır eklemeniz yeterlidir:

Daha karmaşık yapılara ihtiyacınız varsa, bunun yerine daha zengin MathJax kütüphanesini MathML çoklu dolgusu olarak kullanabilirsiniz:

Bu iki betiğin mspace veya mpadded öğelerini tanıdığını unutmayın (bu sayfalardaki tarayıcı uyumluluk tablosuna bakın). Ayrıca, MathML desteği iyi olmayan tarayıcılar için sayfanın üst kısmında bir uyarı görüntüleyen ve kullanıcıların aşağıdaki seçeneklerden birini seçmesine olanak tanıyan benzer bir komut dosyası da vardır:

Bu GitHub bağlantısını kullanmak istemiyorsanız ve bunun yerine bu çoklu doldurmaları veya başka bir şeyi projenize entegre etmek istiyorsanız, MathML desteğinin düzeyini kontrol eden bir komut dosyasına ihtiyacınız olabilir. Örneğin, aşağıdaki işlev mspace öğesini test ederek MathML desteğini test eder (mspace'i mpadded ile değiştirebilirsiniz):

İşlev 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;

Matematik yazı tipleri

İyi bir düzen elde etmek veya istenilen stili sağlamak için matematik yazı tiplerine sahip olmak önemlidir. Ziyaretçilerinizin sistemlerinde uygun yazı tiplerinin yüklü olup olmadığını kontrol edebilmeleri için MDN yazı tipi kılavuzuna bir bağlantı sağlamak her zaman iyi bir fikirdir. Web yazı tiplerinizin yedeğini almak da iyi bir fikirdir.

Gecko 31.0'dan (Firefox 31.0 / Thunderbird 31.0 / SeaMonkey 2.28) önce matematik yazı tiplerini yüklemek sıkıcıydı (Mozilla 2.0 için yazı tipi yükleme talimatlarına bakın). Gecko 31.0 (Firefox 31.0 / Thunderbird 31.0 / SeaMonkey 2.28) için bu çok daha basittir ve MathML desteğine sahip tüm Web işleme motorlarıyla uyumludur. Örneğin, metin için Latin Modern yazı tipini ve matematiksel ifadeler için Latin Modern Math yazı tipini kullanmaya yönelik minimal stil sayfasını burada bulabilirsiniz:

@namespace url("http://www.w3.org/1999/xhtml"); @namespace m url("http://www.w3.org/1998/Math/MathML"); gövde, m|mtext ( yazı tipi ailesi: Latin Modern; ) m|math ( yazı tipi ailesi: Latin Modern Matematik; )

XML belgelerinde MathML (XHTML, EPUB, vb.)

Herhangi bir nedenle XML belgelerinde MathML'yi kullanmanız gerekiyorsa, genel gereksinimleri takip ettiğinizden emin olun: doğru MIME türünü kullanan iyi biçimlendirilmiş bir belge, MathML ad alanı "http://www.w3.org/1998/Math /MathML" kök öğeli. Örneğin, önceki örneğin XHTML sürümü şuna benzer:

XHTML+MathML Örneği XHTML+MathML Örneği

İkinin karekökü: 2

E-posta istemcilerinde ve anlık mesajlaşma istemcilerinde MathML

Modern e-posta istemcileri, HTML5 biçiminde e-posta gönderip alabilir; bu, MathML ifadelerini kullanabilecekleri anlamına gelir. "HTML olarak gönder" ve "HTML olarak görüntüle" seçeneklerini etkinleştirdiğinizden emin olun. Thunderbird'de HTML + MathML kodunu eklemek için HTML Ekle komutunu kullanabilirsiniz. MathBird, AsciiMath giriş sözdizimini kullanarak bu tür MathML ifadelerini eklemek için Thunderbird için kullanışlı bir eklentidir. Ek olarak, LaTeX'ten MathML'ye giriş alanı da sürüm 2.28'den beri SeaMonkey'e ve sürüm 31'den beri Thunderbird'e entegre edilmiştir. Öte yandan, MathML kodunun işlenmesi ve MathML oluşturmanın kalitesi e-posta istemcisine bağlıdır. Tarayıcınız MathML'i desteklese bile e-postanız, içinde MathML bulunan mesaj gönderip almanızı engelleyebilir.

Gecko tabanlı anlık mesajlaşma istemcileri, Javascript tabanlı bir metinden MathML'ye dönüştürücüyü entegre edebilir (aşağıya bakın) ve düz IM metninden oluşturulan MathML ifadelerini görüntüleyebilir. Örneğin Instantbird adında LaTeX ifadelerini işleyen bir eklenti var.

Basit sözdiziminden dönüştürme

HTML sayfaları oluşturmak için birçok basit sözdizimi sistemi (örneğin, wiki veya işaretleme sözdizimleri) vardır. Aynı durum MathML için de geçerlidir: örneğin hesap makinelerinde kullanılan ASCII sözdizimleri veya daha güçlü LaTeX dili bilim camiası arasında çok popülerdir. Bu bölümde düz sözdiziminden MathML'ye dönüştürmeye yönelik bu araçlardan bazılarını sunuyoruz.

  • artıları:
    • Matematiksel ifadelerin yazılması yalnızca standart bir metin düzenleyici gerektirebilir.
    • Bazıları klasik LaTeX'ten pdf'e iş akışıyla uyumlu olan birçok araç mevcuttur.
    • Bu, LaTeX makrolarına benzer gelişmiş makro özelliklerine erişmenizi sağlar.
  • eksileri:
    • Kullanımı daha zor olabilir: insanların sözdizimini öğrenmesi gerekir, koddaki yazım hataları kolaylıkla ayrıştırma veya işleme hatalarına yol açabilir, vb.
    • Arayüz kullanıcı dostu değildir: matematiksel ifadeyi hemen görüntülemeyen yalnızca bir kod düzenleyici vardır.
    • Sözdizimlerinin hiçbiri standartlaştırılmamıştır, bu da dönüştürücüler arasında çapraz uyumluluğu zorlaştırmaktadır. Popüler LaTeX dili bile yeni paketlerle güncellenmeye devam ediyor.
İstemci tarafı dönüşümü

Web ortamında basit sözdizimini DOM ağacına dönüştürmenin en belirgin yöntemi Javascript kullanmaktır ve elbette bu görevi gerçekleştirmek için birçok kütüphane geliştirilmiştir.

  • artıları:
    • Kurulumu çok kolay: Sadece birkaç Javascript ve CSS dosyası yüklemeniz ve/veya belge başlığına bağlantılar eklemeniz yeterli.
    • Bu saf bir Web çözümüdür: her şey tarayıcılar tarafından yapılır ve başka hiçbir programın kurulmasına veya derlenmesine gerek yoktur.
  • eksileri:
    • Kullanıcının Javascript'i devre dışı bırakması durumunda bu çalışmaz.
    • MathML kodu Web tarayıcıları (matematik arama motorları veya haber toplayıcılar gibi) tarafından desteklenmez. Özellikle içeriğiniz Planet'te doğru şekilde görüntülenmez.
    • Dönüşümün her sayfa yüklemesinde yapılması gerekir, yavaş olabilir ve HTML ayrıştırmayla çakışabilir (ör. "