Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Matematyka w HTML'u

Ostatnio stanąłem przed dylematem wyboru technologii do publikowania tagów matematycznych na platformie Moodle.

Rozważałem użycie technologii *Tex z racji jej popularności i uniwersalności. Okazało się, że w moim przypadku użycie tej technologii odpada ze względu na brak odpowiednich skryptów zainstalowanych na serwerze, którego nie jestem administratorem.

Alternatywą okazał się system znaczników matematycznych MathML. Rosnąca popularność i dostępność narzędzi okazała się istotną zaletą. Jednak ten standard posiada jedną istotną wadę – jest stosunkowo nowy. Jest to przyczyną wielu problemów związanych z kompatybilnością rozwiązania z różnymi przeglądarkami. Okazało się, że Firefox 3.7 nie jest w stanie poprawnie interpretować wielu znaczników… Z Google Chrome jest podobnie, o Internet Explorerze wcale nie wspominając. Nawet Apple Safari, słynąca ze wsparcia dla nowych technologii nie była w stanie poprawnie wyświetlić skomplikowanych równań. Jedyną przeglądarką, która w 100% wspiera tą technologię, jest jeszcze niestabilne wydanie przeglądarki Mozilla Firefox 4 beta 7.

Nie mając innego wyjścia musiałem skorzystać z MathML’a. Swojego wyboru z całą pewnością nie żałuję, ponieważ jest to otwarty i nowoczesny standard, a jego popularność i kompatybilność stałe rośnie.  

Komentarze

0 nowych
underface   14 #1 14.01.2011 11:28

a opera 11 jak? daje rade? bo nie wspomniales o niej we wpisie

Jaahquubel_   13 #2 14.01.2011 12:05

A czy to w ogóle jest wygodne?
Bo jak ja patrzę na przykładowy kod na Wikipedii, to mi się słabo robi.

fenixproductions   6 #3 14.01.2011 13:06

MathML to przerośnięta parodia. Ilość kodu potrzebnego do implementacji znacznie przerasta TeXa. Do prostszych wzorów czasami nawet łatwiej użyć najzwyklejszego HTMLa (z sup i sub). Czasami się zastanawiam, dlaczego tworząc specyfikację MathML autorzy nie pomyśleli nad specjalnymi znacznikami dla istniejących języków? Znacznie wygodniej byłoby np. użyć (zamiast pytajników podstaw nawiasy):

?math mode="display" xmlns="http://www.w3.org/1998/Math/MathML"?
?tex?
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
?/tex?
?/math?

Gdybym samemu musiał poważniej zając się wzorami matematycznymi, pokombinowałbym ze skryptami (np. Perl: http://www.fourmilab.ch/webtools/textogif/textogif.html) konwertującymi wzory na obrazki *na własnym serwerze*.

borzole   4 #4 14.01.2011 13:38

Żaden XML nie jest wygodny do ręcznego wklepywania.
Można poszukać jakiejś klikanej aplikacji z możliwością eksportu do MathML, albo pisać w latex i konwertować:
http://www.google.pl/search?q=latex+to+mathml

borzole   4 #5 14.01.2011 13:51

@fenixproductions
Pomysł ze znacznikami ?tex? bardzo fajny. Po stronie serwera piszemy ?tex?, a klient w przeglądarce dostaje MathML. To musiałby implementować sam serwer, albo przynajmniej CMS. Może już coś takiego istnieje.

borzole   4 #7 14.01.2011 13:59

A puki co możesz spróbować jakiegoś rozwiązania z użyciem javascript:

http://www.math.union.edu/~dpvc/jsMath/examples/welcome.html

http://www.mathjax.org/

tomimaki   6 #8 14.01.2011 13:59

Wspaniale :/

webnull   9 #9 14.01.2011 14:50

Wpis bardzo krótki, zdecydowanie za krótki.

PS. Nie oceniam źle za Twój awatar, Twój awatar jest w porządku.

kwpolska   6 #10 14.01.2011 16:06

HTML-u i MathML-a.

NairdaCom   4 #11 14.01.2011 16:07

@webnull
Owszem, wpis jest krótki, bo jest to tylko namiastka moich zmagań z tą technologią... Doświadczeń z MathML mam coraz więcej, więc może w przyszłości powstanie poważniejszy post ;)

PS. Twój awatar też mi się podoba, choć jest "z innej bajki" - ale konkurencja na każdym rynku jest potrzebna i służy jedynie konsumentom ;-]

NairdaCom   4 #12 14.01.2011 16:11

Aha... By rozwiać wątpliwości, do tworzenia kodu MathML oczywiście wykorzystuję pewne narzędzie - bardzo przydatne, a mianowicie program MathMagic Personal, dający naprawdę ogromne możliwości wizualnego tworzenia i eksportu do wielu formatów kodu.
Niektórym zwracam uwagę, że jak pisałem, nie ja jestem administratorem serwera i wszelakiego typu biblioteki i Tex'y nie wchodziły w grę - nie miałem możliwości instalacji.

przemo_li   11 #13 14.01.2011 16:25

Yeap!

Rozwojowe wersje chrome i opery też powinny coraz lepiej obsługiwać MathML. Gdyż jego obsługa gdy jest przemieszany z HTML5 jest obowiązkowa. (OK nie zupełnie, przeglądarka ma wiedzieć na co się natkneła, ale i ta producenci przeglądarek implementują pełny MathML).

PS a próbowałeś MathML umieszczany w oddzielnych plikach? Tylko nowe przeglądarki odróżnią MathML jeśli jest on wymieszany ze znacznikami htmla w jednym pliku.

NairdaCom   4 #14 14.01.2011 16:34

@przemo_li
Jeszcze nie próbowałem, ale muszę zobaczyć ;D
Lecz stwierdzam, że wsparcie dla tej technologii ze strony przeglądarek stale rośnie, a Chrome (wersje rozwojowe) z każdym tygodniem interpretują coraz więcej znaczników. Myślę, że ta technologia, ze względu na możliwość prostej implementacji rozpopularyzuje się i zdominuje rynek.

  #15 14.01.2011 18:17

Draft MathML istniał co najmniej 4 lata wcześniej. Nie wiem, kiedy MathML został uznany za standard, ale na pewno nie wiele się zmieniło.
PS: W3 panuje tradycja, że dopóki nie powstaną dwie niezależne implementacje "technologi" opisywanych w szkicach, to o uznaniu czegoś za standard nie może być mowy. Nie wiem, jak wiele mogło się wydarzyć w W3, ale myślę, że nadal stosują ten dobry zwyczaj.

  #16 14.01.2011 18:20

@fenixproductions | 14.01.2011 13:06 :
Nie porównuję MathML do Tex-a, ale lepiej wstawiać jakiś skrypt w języku(w Tex na pewno da się tworzyć nowe wyrażenia) niż obrazki, bo tekst łatwiej skompresować.
Tex ma jedną istotną wagę w stosunku do MathML - nie jest zrozumiały przez komputer. MathML był projektowany po to, byś mógł np. wpisać sin x / cos x, a wyszukiwarka by Ci zwróciła np. Tangens.

Jaahquubel_   13 #17 14.01.2011 21:43

Jak rozumiem, wrzucanie na serwer obrazków wygenerowanych ciągiem .tex -> (LaTeX) -> .dvi -> (dvipng) -> .png Cię nie interesuje?

  #18 14.01.2011 22:48

Nigdy nie byłem zwolennikiem moodle'a do jakichkolwiek prezentacji edukacyjnych - szczególnie za brak realizacji podstawowych standardów związanych ze SCORM-em (import od biedy zaś export to chyba jeszcze daleka przyszłość - aktualnie używam systemu efront i ATutor - tam wprowadzanie reguł matematycznych jest trywialne szczególnie jezeli chodzi o efront który ma wtyczkę MathML - może lepiej przyjrzeć się innym systemom zdalnej edukacji niż ślęczeć na czymś co od dłuższego czasu stoi w miejscu?

NairdaCom   4 #19 14.01.2011 23:48

@Jaahquubel_:
Też o tym na początku myślałem, ale tworzone przeze mnie testy (bo to właśnie w nich stosuję MathML'a) będą wykorzystywane nie tylko na Moodle'u, lecz także eksportowane i wykorzystywane na innych platformach - obrazy powodują wtedy wiele komplikacji związanych z migracją i ogromną ilością takich grafik (mówimy o bazie kilku tysięcy pytań z wzorami). Dlatego ważne jest, by cały wzór był zawarty bezpośrednio w kodzie pytania. LaTeX byłby dobry, ale ze względu na różne konfiguracje serwerów, do których nie mam uprawnień aministracyjnych, nie mogę go zastosować.

fenixproductions   6 #20 15.01.2011 01:12

@notgnucy
Czasami kompresja to nie wszystko i o wiele istotniejszy jest dostęp do informacji. Proste obrazki GIF wyświetli każda przeglądarka (dla SEO można wrzucić wyrażenie TeX do znaczników title lub alt), ale MathML już nie. Nie czuję się laikiem, ale jeśli po wielu próbach i wielu przeczytanych wątkach nie jestem w stanie zmusić swojej Opery do poprawnej obsługi tego języka, to wątpię, by wszyscy użytkownicy końcowi zobaczyli bezproblemowo prezentowane wzory. Już nie raz spotkałem się z wykładowcami znającymi doskonale TeXa, a opornymi na wiedzę z zakresu instalowania dodatków do przeglądarek. Im ta wiedza jest niepotrzebna i strona ma po prostu działać.

Musiałbym jednak poważnie się zastanowić nad tym, jak obejść problem związany z brakiem uprawnień do zmian czegokolwiek na serwerze. Może coś takiego by pomogło:

http://ardoris.wordpress.com/2010/06/27/converting-inline-latex-to-images-with-j.../

NairdaCom   4 #21 15.01.2011 11:57

Jeżeli chodzi o interoperacyjność, to mam ten komfort, że przygotowuje tylko pytania do testów matematycznych, które są rozwiązywane przez uczniów w obecności nauczycieli, w przygotowanych do tego salach (na komputerach zainstalowany jest Firefox 4b7) dlatego nie ma problemu z wyświetlaniem MathML'a.

  #22 15.01.2011 22:06

Używam Opery 11.00.1156. Od jakiegoś czasu śledzę obsługę MathML'a w kolejnych wersjach (bodajże od wersji 9.xx). Ze smutkiem muszę stwierdzić, że w tej dziedzinie jest stagnacja.
Proste formuły da się zapisać. Przy bardziej złożonych wzorach macierzowych, lub operatorowych jest gorzej.
Podsyłam kolejny test obsługi języka MathML:
http://www.mozilla.org/projects/mathml/demo/texvsmml.xhtml

Jaahquubel_   13 #23 17.01.2011 22:53

Jest jeszcze jedna możliwość: latex2html. Konwersja off-line i tylko gotowe pliki wgrywasz na serwer. Minus taki, że to raczej średnio ładne jest.

  #24 19.01.2011 13:12

Witam

Nie zgodzę się z autorem artykułu, ze przeglądarki nie radzą sobie z językiem Mathml. Od pięciu lat prowadzę serwis math.edu.pl napisany w języku mathml i trzy przeglądarki wiodące Fierfox, IE i opera interpretują ten język. To Firefox jest najbardziej przystępny, już w wersji 2.0 sobie radził z tym językiem. Trzeba jednak odpowiedni nagłówek ustawić dla poszczególnych przeglądarek.

Pozdrawiam

NairdaCom   4 #25 23.01.2011 21:48

Trudno zgodzić mi się z przedmówcą, ponieważ odwiedziłem jego stronę i bardzo zastanawia mnie, dlaczego ułamki zwykłe nie są zapisywane na kresce ułamkowej, tylko po dwukropku? Mi są potrzebne skomplikowane, wielowersowe wzory naszpikowane ułamkami i pierwisatkami...