Równania matematyczne w sieci

Jak mogę renderować równania matematyczne w sieci? Jestem już zaznajomiony z trybem matematycznym LaTeX ' a.

Author: Flexo, 2009-04-22

16 answers

Okazuje się, że to trochę boli.

Możesz użyć MathML , ale obsługa przeglądarki nadal jest niepewna. Jeśli zaczynasz od latex ' a, masz kilka opcji konwersji do html, ale wszystkie zazwyczaj kończą się renderowaniem rzeczywistych równań na obrazy i wstawianiem ich.

Nic tak ładnego (chyba, że uciekniesz się do pdf czy coś). To, co najlepsze, będzie zależeć trochę od tego, jakiego rodzaju treści, ile równań i jak skomplikowane równania są.

Tutaj {[4] } jest przyzwoite podsumowanie.

 25
Author: simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-21 23:55:28

Inne odpowiedzi są nieaktualne. Od 2012 roku, piękna matematyka jest łatwa do pisania i renderowania. Technologia nazywa się MathJax . Możesz to zobaczyć w cichej akcji na MathOverflow i setkach blogów matematycznych.

MathJax to open source JavaScript display engine dla matematyki, który działa we wszystkich nowoczesnych przeglądarkach. Koniec z konfiguracją dla czytelników. Koniec z wtyczkami do przeglądarki. Koniec z instalacjami czcionek ... po prostu działa.

Mathjax jest niezawodny i dyskretny, więc musisz tylko napisać matematykę. Robisz to w Tex (Latex), zwięzłej składni, z którą większość naukowców i matematyków jest zaznajomiona (i dzieli się dziesięcioleciami dobrych samouczków). W przypadku Mathjax wystarczy wpisać kod Tex-a w HTML między znakami double dollar, np.

Gdy $$a \ ne 0$$, istnieją dwa rozwiązania $ $ ax^2 + bx + c = 0$$ i są to $$x = {-B \pm \sqrt{b^2-4AC} \over 2A}.$$

Aby użyć Mathjax do renderowania Twojej matematyki, umieść Linia Javascript w nagłówku HTML:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>

Jeśli publikujesz na platformie takiej jak WordPress, Tumblr lub Blogger, w ich galeriach znajdują się wtyczki do tego ( Wordpress ).

Jak Mathjax renderuje matematykę? Javascript renderuje Twoją matematykę do pięknego HTML i CSS (niezwykle przypominającego Latex) w ułamku sekundy. Jeśli przeglądarka obsługuje MathML, może również renderować matematykę, ale to nie jest ważne. Jest to popularny sukces, ponieważ użytkownik końcowy przepływ pracy jest łatwy, nie ze względu na stojącą za nim technologię.

Możesz użyć Mathjax (zamiast obrazów png) Na Wikipedii, jeśli masz konto. Poszukaj Special:Preferences / Appearance.


MathML jest śmieszny. Nie jest czytelny dla człowieka ani nie nadaje się do zapisu (równanie kwadratowe zajmuje 800 znaków - w Tex-IE jest 50). To po prostu kolejny bezsensowny język XML . Na szczęście jest przestarzały, zanim większość przeglądarek go obsługuje. Nie wygląda nawet jako dobry jak TEX lub Mathjax HTML-CSS!
 27
Author: Colonel Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-13 12:57:55

Moje dwa ulubione podejścia:

  • Client-side: MathJax. Zobacz kilka przykładów tutaj . Jest bardzo łatwy w użyciu i instalacji, a jego rozwój jest wspierany przez AMS i SIAM {6]} wśród innych instytucji naukowych. Spodziewam się, że stanie się to standardem defacto do wyświetlania matematyki w Internecie.

  • Server-side: LaTeXML. Jest on używany do tworzenia cyfrowej biblioteki funkcji matematycznych NIST . Ma tendencję do czkawki jeśli masz własne makra w swoich źródłach TeX, ale ogólnie daje to bardzo dobre wyniki.

 18
Author: jmbr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-20 09:52:16

Pakiet jsMath jest kolejną opcją, która używa znaczników LaTeX i czcionek natywnych. Cytowanie z ich strony http://www.math.union.edu / ~dpvc / jsMath/:

Pakiet jsMath zapewnia metodę of including mathematics in HTML pages działa w wielu przeglądarkach pod Windows, Macintosh OS X, Linux i inne smaki Uniksa. Informatyka pokonuje szereg niedociągnięć tradycyjnej metody stosowania obrazy przedstawiające matematykę: jsMath używa czcionek natywnych, więc zmiana rozmiaru po zmianie rozmiaru tekst w przeglądarce, drukują na Pełna rozdzielczość drukarki, i nie musisz czekać na dziesiątki zdjęć do pobrania w celu zobacz matematykę na stronie. Istnieją również zalety strony internetowej autorów, ponieważ nie ma potrzeby przygotuj swoje strony internetowe do generowania dowolne obrazy, a matematyka jest wprowadzone w formie TeX, dzięki czemu łatwo jest twórz i utrzymuj swoją sieć stron.

Patrz na przykład ta strona lub ta strona .

 11
Author: Fanfan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-23 20:09:34

Możesz zrobić więcej matematyki bezpośrednio w HTML, niż większość ludzi zdaje sobie sprawę. Zobacz te notatki .

Jedynym bezpiecznym sposobem renderowania LaTeX-A jest zapisanie wyjścia jako obrazu. Niektóre witryny próbują używać narzędzi do tego w locie i nigdy nie działają niezawodnie. Na przykład na niektórych blogach działa to, jeśli odwiedzasz stronę internetową bezpośrednio, ale nie, jeśli przejdziesz przez Feedburner / Google Reader.

Miałem straszne doświadczenie z obsługą przeglądarki MathML, zarówno w Firefoksie, jak i IE. Nawet nie próbuj. Jeszcze nie. Może za kilka lat.

Oto Strona używam do kompilacji LaTeX do GIFów.

Jeśli chcesz używać PDF zamiast HTML, sprawy stają się znacznie łatwiejsze. Po prostu utwórz swój dokument LaTeX i użyj pdflatex, aby skompilować go do formatu PDF. Jeśli wybierzesz trasę PDF, możesz być zainteresowany Jak dołączyć właściwości PDF , takie jak autor, słowa kluczowe itp. w Twoim pliku LaTeX. Ponadto, ta strona wyjaśnia, jak oznaczyć LaTeX, aby linki w pliku PDF.

 7
Author: John D. Cook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-14 12:09:49

Katex

Para programistów z Khan Academy wydała błyskawiczną bibliotekę opartą na Tex-Ie o nazwie Katex :

  • Fast
  • wysokiej jakości
  • samodzielne; oraz,
  • Może być renderowany na serwerze
Wygląda na świetną, nowoczesną opcję.

Próbka Katex

 7
Author: Joshua Pinter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-01 21:34:58

Texvc może konwertować równania matematyczne LaTeX do png lub HTML.

 1
Author: jfclavette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-21 23:54:57

LaTeX i MathML są jedynymi "słusznymi" sposobami, aby to zrobić. Jednak każdy z nich ma poważne ograniczenia. Inne opcje to obrazy (niezbyt optymalne, jeśli trzeba później edytować równania) lub złożony HTML(wymaga trochę treningu, ale można to zrobić).

 1
Author: Jeremy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-21 23:56:00

Renderuję Formuły LaTeX "na żądanie" w mojej wiki. Zasadniczo wyodrębniam kod latex z każdej sekcji wiki i umieszczam go w.plik tex (którego nazwa pliku jest sumą md5 z lateksu, więc jeśli ten sam kod zostanie użyty ponownie, ten sam tex i tym samym ten sam obrazek zostanie użyty). Plik tex jest następnie Latex skompilowany przez zadanie cron co minutę, do produkcji najpierw. ps, a następnie z programu konwersji a .png (nazwany ponownie z oryginalnym md5). Wpis wiki zastępuje tekst latex ze znacznikiem img odwołując się do tego png (z oryginalnym kodem latex jako alt, dla czytników tekstu).

Jeśli chcesz iść tą drogą, bądź Bardzo ostrożnie odkażać swój Lateks tak bardzo, jak możesz. istnieją polecenia w latexie, takie jak \input, których zdecydowanie nie chcesz puszczać, ponieważ każdy, kto będzie mógł ich użyć, będzie mógł dołączyć dowolny czytelny plik na dysku serwera i dołączyć go do wynikowego wyjścia latex.

Aby rozwiązać ten problem, Mediawiki (o sławie Wikipedii) ma specjalną plugin, który dezynfekuje wejście latex, ale nie chciałem go używać z dwóch powodów: po pierwsze nie używałem mediawiki, po drugie jest napisany w OCaml i nie chciałem zadzierać z językiem, którego nie znam.

 1
Author: Stefano Borini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 01:30:59

Używałem do tego ASCIIMathML w przeszłości. Jest to zasadniczo biblioteka JavaScript i może używać wtyczki w IE do optymalizacji wydajności, ale działa również bez niego w IE & Firefox/Mozilla (choć trochę wolniej). Składnia obsługuje podzbiór LaTeX, ale różnice powodują pewne zamieszanie, więc może to mylić użytkowników, w zależności od tego, skąd pochodzą.

Oto kilka linków, abyś mógł sam to sprawdzić:

Nie jest idealny i nie działa we wszystkich przeglądarkach (Safari itp.), ale jest to coś, co działa przynajmniej dzisiaj, choć w nieco selektywnym podzbiorze sieci.

 1
Author: krohrbaugh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 02:15:32

Napisałem do tego moduł javascript open source o nazwie jqmath. Zobacz http://mathscribe.com/author/jqmath.html. wpisujesz równania w uproszczonej składni TeX-owej, a jqmath konwertuje je na MathML lub prosty HTML i CSS, w zależności od przeglądarki. Jest to bardziej wydajne i dostępne niż używanie obrazów.

Przy okazji, niektóre streszczenia i notatki wymienione w innych odpowiedziach są teraz dość przestarzałe. Ponadto Firefox obsługuje teraz MathML i webkit (Chrome i Safari) mają go w swoich nocnych kompilacjach, choć jeszcze go nie wydali. Internet Explorer renderuje MathML, jeśli masz wtyczkę MathPlayer. Opera fałszuje MathML za pomocą arkusza stylów. MathML jest częścią standardu HTML 5, więc prawdopodobnie wszystkie te przeglądarki będą go natywnie wspierać prędzej niż później. To prawda, że do tego czasu, wyjście jqmath nie będzie wyglądać tak dobrze jak TeX, ale na pewno jest czytelne i jest zdecydowanie lepszym rozwiązaniem dla stron internetowych w przyszłości.

 1
Author: Dave Barton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 23:31:26

Jeśli używasz obrazów, czy czytnik dla niewidomego użytkownika będzie w stanie odczytać równanie? Niektórzy mogą chcieć.

 0
Author: thursdaysgeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 00:00:02

Istnieje mała aplikacja Mac o nazwie LatexIt , która sprawia, że bardzo łatwo konwertować równania LaTeX do PDF, PNGs itp.

(używam go do tworzenia równań dla moich slajdów w Keynote lub PowerPoint. Jest to bardzo miłe, z obsługą drag 'n drop, więc możesz po prostu "przeciągnąć" równania w dowolnym miejscu, aby je wstawić.)

 0
Author: Frank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 00:13:22

Mam wrażenie, że MediaWiki pozwoli Ci wprowadzić znaczniki LaTeX (lub coś podobnego) i dynamicznie zdecydować, jak najlepiej je wyświetlić. Obecnie myślę, że używa HTML tam, gdzie to możliwe dla małych wyrażeń i obrazów dla bardziej skomplikowanych wyrażeń, które nie mogą być reprezentowane w inny sposób; podejrzewam, że pewnego dnia może skorzystać z tego, co inne metody stają się najnowocześniejsze, np. MathML, jeśli przeglądarki zaczną go wspierać. Więc myślę, że może się okazać, że jeśli używasz MediaWiki tak, jakby to był twój silnik strony internetowej, będziesz kompatybilny z tym, co nadejdzie w przyszłości.

 0
Author: skiphoppy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 01:57:30

Możesz wygenerować obraz równania w locie za pomocą serwera LaTeX.

Http://www.forkosh.com/mimetex.html

Jeśli używasz WordPress, możesz użyć LaTeX dla WordPress ( http://wordpress.org/extend/plugins/latex / ) plugin.

 0
Author: riza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-22 06:59:21

Obecnie stan renderowania MathML po stronie klienta nie jest gotowy do szerokiego zastosowania. Środki, których naprawdę potrzebujesz, aby renderować MathML jako obraz. Sposób, w jaki to zrobisz, zależy od Twojego środowiska.

Czy masz dostęp roota do własnego serwera? Czy wygodnie instalujesz na nim oprogramowanie? W takim przypadku możesz renderować własne obrazy. Jeśli Twoje uruchomione oprogramowanie do blogowania lub wiki, ogólnie możesz znaleźć wtyczkę, która wykorzysta możliwości Twoich platform. To jest zazwyczaj scenariusz pomysł, jeśli planujesz napisać wiele wyrażeń matematycznych.

Jeśli hostujesz własne obrazy, możesz je wstępnie renderować lub użyć rozszerzenia takiego jak mimetex.cgi. Jeśli zezwalasz na renderowanie dowolnych wyrażeń MathML, ryzykujesz, że inne strony internetowe połączą się z Twoim rendererem obrazów. Jeśli umieścisz filtr na serwerze WWW, aby zapobiec gorącemu łączeniu, osoby przeglądające Twoją witrynę za pośrednictwem czytnika kanałów również zostaną zablokowane.

Jeśli nie możesz renderować własnego obrazy, lub jeśli masz tylko kilka wyrażeń, które chcesz renderować, zazwyczaj możesz mieć inną usługę generującą obraz i połączyć go w swojej witrynie. Minusem jest oczywiście uzależnienie od innej strony, która nie dostaje nic w zamian za serwowanie zdjęć dla Ciebie.

Przykłady innych usług (jak wspomniano w innych komentarzach) obejmują: * http://www.artofproblemsolving.com/LaTeX/AoPS_L_TeXer.php : alt text http://alt2.artofproblemsolving.com/Forum/latexrender/pictures/a/f/c/afc183343d84d030898f589bac12a8d9cf04558a.gif * http://www.forkosh.com/mimetex.html : mimetex.cgi http://www.forkosh.dreamhost.com/mimetex.cgi?c=%5Csqrt%7Ba%5E2 + b%5E2 % 7D

Zaletą używania mimetex jest to, że można łatwo zmienić formułę i ponownie ją renderować.

 0
Author: brianegge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-05 07:12:14