Niedawno stanąłem przed zadaniem wyświetlenia ładnie sformatowanych, czytaj czytelnych, wzorów matematycznych na swojej stronie www. Niby nic wielkiego, a jednak... HTML pozwala w zasadzie tylko na indeksy. Cokolwiek więcej to już małe wyzwanie.

 

W artykule opiszę rozwiązanie problemu za pomocą skryptu cgi o nazwie mimetex. Zapraszam do lektury!

 

Niektóre ze swoich artykułów przygotowuję w edytorze tekstów. Ze względu na złe przyzwyczajenia z dzieciństwa ;-] tudzież lenistwo używam edytorów WYSIWYG. W domu jest to OpenOffice.org. Niestety z jakiś przyczyn twórcy tego pakietu biurowego postanowili wyważyć otwarte drzwi i napisać od podstaw własny moduł do wprowadzania równań. Jego zaletą jest możliwość 'wyklikania' równań prawie wyłącznie za pomocą myszy. Wadą jest brak zgodności z LaTeX. A szkoda. Wprawdzie LaTeX, a raczej TeX chyba nie jest standardem (w każdym razie Wikipedia milczy na ten temat) to jednak właśnie z jego pomocą są tworzone poważne czasopisma posługujące się językiem matematyki.

 

Krótkie poszukiwania z pomocą wujka Google'a zaowocowały znalezieniem modułu OOoLatex. Zainstalowałem wersję 4.0.0-beta-1c. W ten sposób uzyskałem jednakowy kod wzorów matematycznych w OpenOffice jak dla TeX i LaTeX. Kolejny krok to transformacja kodu LaTeX na HTML. Znowu z pomocą przyszedł wujek Google. Rozwiązaniem jest kod opracowany przez Johna Forkosha kod na licencji GNU. Narzędzie nosi nazwę mimetex. By cieszyć się ładnie sformatowanymi równaniami należy ściągnąć paczkę z plikami źródłowymi, przegrać je na nasz serwer www, rozpakować, skompilować i wreszcie plik wynikowy umieścić w odpowiednim katalogu. W przypadku serwera www Apache jest to katalog cgi-bin. Jeżeli teraz jakiś ciąg ma zostać wyświetlony jako równanie, zamykamy go w ramach nowego znacznika (szczegóły na stronie). Wszystko fajnie, ale czy nie można jeszcze prościej? Można, o ile mamy Joomle :-]

 

Oprócz czystego kodu mimetex dobrzy ludzie napisali dodatki dla kilku popularnych CMS-ów. Autorem tego przeznaczonego dla Joomli jest Minh-Tri Pham. Dodatek nosi nazwę MimeTeX i jest do pobrania np. stąd. Dzięki niemu znacząco upraszcza się proces oznaczania ciągów tekstu, które mają zostać wyświetlone jako równania. Wygląda to mniej więcej tak:

 

a. ciąg reprezentujacy równanie zapisany zgodnie z wymaganiami składni LaTeX:

 

c^2=a^2+b^2

 

b. dodanie tagów, które zostaną rozpoznane przez mimetex i wyświetlone w postaci ładnie sformatowanego równania:

 

{ tex}...jakieś równanie w LaTeXu... {/tex }

 

(W powyższym zapisie celowo umieściłem znak spacji za pierwszym otwierającym nawiasem klamrowym i przed ostatnim zamykającym nawiasem klamrowym by 'oszukać' moduł MimeTeX i nie pozwolić mu na potraktowanie tekstu jak równania).

 

Efekt końcowy wygląda następująco:

 

 

Podczas prób użycia dodatku MimeTeX napotkałem na niezrozumiałe problemy. Pomimo instalacji skryptu mimetex w odpowiednim katalogu serwera www i poprawnej instalacji dodatku (nie zapomnij o opublikowaniu dodatku po instalacji) wciąż nie widziałem na ekranie prawidłowo sformatowanych równań. Niestety nie udało mi się dociec właściwej przyczyny nieprawidłowego zachowania oprogramowania. Wydaje się, że powód jest związany z trybem zgodności wstecznej (ang. Legacy mode). Po wyłączeniu tego trybu (Menu: Rozszerzenia -> Dodatki -> System - Legacy) wreszcie zobaczyłem na swojej stronie równania. Przy odkryciu tej prawidłowości pomógł mi sam autor, czyli Minh-Tri Pham, któremu przy tej okazji serdecznie dziękuję.

 

Komentowanie za pomocą rozszerzenia JComments zostało wyłączone. Zapraszam do dodawania komentarzy za pomocą aplikacji Disqus.