Η MathJax είναι μια βιβλιοθήκη JavaScript για την απόδοση μαθηματικών τύπων σε προγράμματα περιήγησης ιστού, χρησιμοποιώντας MathML, LaTeX και ASCIIMathML.[3][4][5] Κυκλοφορεί ως λογισμικό ανοιχτού κώδικα με την άδεια Apache.

MathJax
Γενικά
Είδοςλογισμικό μαθηματικών, ελεύθερο λογισμικό
Διανομή
Έκδοση3.2.2 (8 Ιουνίου 2022)[1][2]
Δοκιμαστική έκδοση2.7.0-beta.0 (1 Σεπτέμβριος 2016)[2]
ΛειτουργικάLinux, Ανεξάρτητο πλατφόρμας, FreeBSD
Ανάπτυξη
Υπευθ. ανάπτυξηςΑμερικανική Μαθηματική Εταιρεία
Άδεια χρήσηςΆδεια Apache, Έκδοση 2.0
Σύνδεσμοι
Επίσημος ιστότοπος
https://www.mathjax.org/
Αποθετήριο κώδικα
https://github.com/mathjax/MathJax

Η MathJax ξεκίνησε το 2009 ως διάδοχος μιας προηγούμενης βιβλιοθήκης JavaScript για μορφοποίησης μαθηματικών την jsMath,[6] και την διαχειρίζεται η Αμερικανική Μαθηματική Εταιρεία.[7] Το έργο ιδρύθηκε από την Αμερικανική Μαθηματική Εταιρεία, την Επιστήμη του Σχεδιασμού και την Εταιρεία Βιομηχανικών και Εφαρμοσμένων Μαθηματικών και υποστηρίζεται από πολυάριθμους χορηγούς, όπως το Αμερικανικό Ινστιτούτο Φυσικής και το Stack Exchange.[8]

Το MathJax χρησιμοποιείται από ιστοτόπους όπως το arXiv,[9] το ScienceDirect της Elsevier,[10] το MathSciNet,[11] το n-category cafe, τοMathOverflow, την Wikipedia (στο παρασκήνιο),[12][13] η Scholarpedia, τα περιοδικά Project Euclid,[14] IEEEXplore,[15] το Publons, η Coursera, και η Πανρωσική Μαθηματική Πύλη.[16]

Χαρακτηριστικά

Επεξεργασία

Η βιβλιοθήκη MathJax κατεβαίνει ως μέρος μιας ιστοσελίδας, σαρώνει τη σελίδα για μαθηματικούς τύπους και στοιχειοθετεί τις μαθηματικές πληροφορίες ανάλογα. Έτσι, το MathJax δεν απαιτεί εγκατάσταση λογισμικού ή επιπλέον γραμματοσειρές στο σύστημα του αναγνώστη. Αυτό επιτρέπει στο MathJax να εκτελείται σε οποιοδήποτε πρόγραμμα περιήγησης με υποστήριξη JavaScript, συμπεριλαμβανομένων των φορητών συσκευών.[17]

Η MathJax μπορεί να εμφανίσει μαθηματικά χρησιμοποιώντας έναν συνδυασμό της HTML και της CSS ή χρησιμοποιώντας την εγγενή υποστήριξη MathML του περιηγητή ιστού, όταν είναι διαθέσιμη. Η ακριβής μέθοδος που χρησιμοποιεί η MathJax για τη στοιχειοθέτηση μαθηματικών εξαρτάται από τις δυνατότητες του προγράμματος περιήγησης του χρήστη, τις γραμματοσειρές που είναι διαθέσιμες στο σύστημα του χρήστη και τις ρυθμίσεις διαμόρφωσης. Το MathJax v2.0-beta εισήγαγε την απόδοση σε SVG.[18]

Στην περίπτωση της στοιχειοθεσίας με HTML και CSS, η MathJax μεγιστοποιεί την ποιότητα εμφάνισης των μαθηματικών χρησιμοποιώντας γραμματοσειρές μαθηματικών εάν είναι διαθέσιμες και καταφεύγοντας σε χρήση εικόνων για παλαιότερα προγράμματα περιήγησης. Για νεότερους περιηγητές ιστού που υποστηρίζουν γραμματοσειρές ιστού, η MathJax παρέχει ένα ολοκληρωμένο σύνολο γραμματοσειρών ιστού, τις οποίες η MathJax κατεβάζει όταν χρειάζεται. Εάν το πρόγραμμα περιήγησης δεν υποστηρίζει γραμματοσειρές ιστού, η MathJax ελέγχει εάν υπάρχουν έγκυρες γραμματοσειρές διαθέσιμες στο σύστημα του χρήστη. Εάν αυτό δεν λειτουργεί, η MathJax παρέχει εικόνες για τα σύμβολα που λείπουν.. Η MathJax μπορεί να ρυθμιστεί ώστε να ενεργοποιεί ή να απενεργοποιεί τις γραμματοσειρές ιστού, τις τοπικές γραμματοσειρές και τις γραμματοσειρές εικόνας.

Η MathJax χρησιμοποιεί τις γραμματοσειρές STIX για τη συμπερίληψη μαθηματικών σε ιστοσελίδες. Η εγκατάσταση των γραμματοσειρών στον τοπικό υπολογιστή βελτιώνει την ταχύτητα στοιχειοθεσίας της MathJax.

Η MathJax μπορεί να εμφανίσει μαθηματικούς τύπους γραμμένους σε LaTeX ή MathML. Επειδή η MathJax προορίζεται μόνο για εμφάνιση μαθηματικών, ενώ η LaTeX είναι μια γλώσσα διάταξης εγγράφων, η MathJax υποστηρίζει μόνο το υποσύνολο του LaTeX που χρησιμοποιείται για την περιγραφή μαθηματικών τύπων.[17]

Η MathJax υποστηρίζει επίσης την προσβασιμότητα στα μαθηματικά εκθέτοντας το MathML μέσω του API του σε λογισμικό υποστηρικτικής τεχνολογίας, καθώς και στον βασικό "ρόλο" του WAI-ARIA και παλαιότερα χαρακτηριστικά alt.[19]

Η αρχιτεκτονική της MathJax έχει σχεδιαστεί για να υποστηρίζει την προσθήκη γλωσσών εισαγωγής και μεθόδων εμφάνισης στο μέλλον μέσω δυναμικά φορτωμένων μονάδων. Η MathJax παρέχει επίσης ένα API σε JavaScript για απαρίθμηση και αλληλεπίδραση με τους μαθηματικούς τύπους σε μια σελίδα.

Συμβατότητα με περιηγητές ιστού

Επεξεργασία

Το MathJax αποδίδει μαθηματικά στους πιο δημοφιλείς περιηγητές ιστού, συμπεριλαμβανομένων των Internet Explorer 6+, Firefox 3+, Google Chrome 0.3+, Safari 2.0+, Opera 9.5+, iPhone / iPad Safari και του προγράμματος περιήγησης Android. Ορισμένες παλαιότερες εκδόσεις προγραμμάτων περιήγησης δεν υποστηρίζουν γραμματοσειρές ιστού (με το @font-face της CSS), επομένως πρέπει να χρησιμοποιούν τη λειτουργία γραμματοσειράς εικόνας MathJax. Η λίστα συμβατότητας προγράμματος περιήγησης είναι διαθέσιμη στον επίσημο ιστότοπο.[20]

Από την τρίτη έκδοση, η MathJax μπορεί να χρησιμοποιηθεί στο Node.js.[21] Για την έκδοση 2, η βιβλιοθήκη MathJax-node [22] παρέχει συμβατότητα με το Node.js.

Συμβατότητα με επεξεργαστές εξισώσεων

Επεξεργασία

Οποιαδήποτε εξίσωση MathJax που εμφανίζεται σε ένα υποστηριζόμενο πρόγραμμα περιήγησης μπορεί να αντιγραφεί υπό την μορφή MathML ή LaTeX χρησιμοποιώντας του υπομενού "Εμφάνιση μαθηματικών ως" που εμφανίζεται πατώντας το δεξί κλικ. Στη συνέχεια, μπορεί να επικολληθεί σε οποιοδήποτε πρόγραμμα επεξεργασίας εξισώσεων που υποστηρίζει MathML ή LaTeX, όπως το Mathematica, MathType, MathMagic, Firemath για επαναχρησιμοποίηση. [23]

Οποιοιδήποτε μαθηματικοί τύποι είναι γραμμένοι στην μορφή MathML ή LaTeX από οποιοδήποτε πρόγραμμα επεξεργασίας εξισώσεων μπορούν να χρησιμοποιηθούν σε ιστοσελίδες με που έχουν τη MathJax.

Υποστήριξη TeX

Επεξεργασία

Η MathJax αναπαράγει τις εντολές μαθηματικού περιβάλλοντος της LaTeX. Οι μαθηματικές εντολές AMS-LaTeX υποστηρίζονται μέσω επεκτάσεων. Το MathJax υποστηρίζει επίσης μακροεντολές TeX και διάφορες μορφοποιήσεις όπως \color (για το χρώμα της γραμματοσειράς) και \underline (για υπογράμμιση).[24]

Υποστήριξη MathML

Επεξεργασία

Η MathJax πρόσθεσε μερική υποστήριξη για το MathML 2.0 και ορισμένες δομές MathML 3.0 στην έκδοση beta 2. Η MathJax υποστηρίζει παρουσίαση MathML και, από την έκδοση 2.2, παρέχει πειραματική υποστήριξη για το περιεχόμενο MathML. [25]

Διακομιστές CDN

Επεξεργασία

Ο ιστότοπος MathJax έχει ένα δίκτυο παράδοσης περιεχομένου (CDN) που παρέχει τον κώδικα JavaScript που απαιτείται για να λειτουργήσει η MathJax. Κατά την στοιχειοθέτηση της ιστοσελίδας ο περιηγητής ιστού λαμβάνει αυτόν το κώδικα από το CDN. Αυτό απλοποιεί την εγκατάσταση και διασφαλίζει ότι χρησιμοποιείται πάντα η πιο πρόσφατη έκδοση της βιβλιοθήκης. Με την πάροδο του χρόνου, η χρήση του διακομιστή αυξήθηκε από 1,3 TB ανά μήνα το 2011 σε 70 TB ανά μήνα το 2017. Λόγω του αυξανόμενου κόστους φιλοξενίας του διακομιστή, ο κύριος διακομιστής CDN τερματίστηκε στα τέλη Απριλίου 2017. Διατίθενται εναλλακτικοί διακομιστές CDN που παρέχονται από τρίτους.[26]

Δείτε επίσης

Επεξεργασία
  • KaTeX – JavaScript εναλλακτική της MathJax

Παραπομπές

Επεξεργασία
  1. «Release 3.2.2». 8 Ιουνίου 2022. Ανακτήθηκε στις 28 Οκτώβριος 2022. 
  2. 2,0 2,1 Error: Unable to display the reference properly. See the documentation for details.
  3. «MathJax: Rich Math display from LaTeX and MathML». 17 Νοεμβρίου 2015. 
  4. «MathJax AsciiMath support». Αρχειοθετήθηκε από το πρωτότυπο στις 23 Μαρτίου 2018. Ανακτήθηκε στις 7 Απριλίου 2013. 
  5. Cuellar, Autumn; Topping, Paul (June 2013). «What you need to know about the Maths Stack». XML London 2013: 63–68. doi:10.14337/XMLLondon13.Cuellar01 (inactive 2024-03-14) . ISBN 978-0-9926471-0-0. http://xmllondon.com/2013/presentations/cuellar/. 
  6. Hayes, Brian (2009), «Writing Math on the Web: The Web would make a dandy blackboard if only we could scribble an equation», American Scientist 92 (2): 98, doi:10.1511/2009.77.98 .
  7. «AMS becomes managing partner of the MathJax Consortium». 20 Μαρτίου 2013. 
  8. «MathJax Sponsorship». 
  9. «arXiv.org help – What is MathJax?». 
  10. «MathJax on ScienceDirect». Αρχειοθετήθηκε από το πρωτότυπο στις 26 Αυγούστου 2014. Ανακτήθηκε στις 24 Αυγούστου 2014. 
  11. «MathSciNet What's New». 
  12. Schubotz, Moritz· Wicke, Gabriel (1 Ιανουαρίου 2014). «Mathoid: Robust, Scalable, Fast and Accessible Math Rendering for Wikipedia». Intelligent Computer Mathematics. Lecture Notes in Computer Science. 8543. σελίδες 224–235. ISBN 978-3-319-08434-3. 
  13. «Extension:Math - MediaWiki». www.mediawiki.org (στα Αγγλικά). Ανακτήθηκε στις 6 Απριλίου 2017. 
  14. «What is MathJax?». 
  15. «IEEE Xplore Help». ieeexplore.ieee.org. Ανακτήθηκε στις 5 Αυγούστου 2021. 
  16. «All-Russian Mathematical Portal». 
  17. 17,0 17,1 Cervone, Davide (2012), «Math Jax: A Platform for Mathematics on the Web», Notices of the American Mathematical Society 59 (2): 312–316, doi:10.1090/noti794, https://www.ams.org/notices/201202/rtx120200312p.pdf 
  18. «MathJax v2.0-beta now available on CDN». 11 Φεβρουαρίου 2012. 
  19. «MathJax: Accessibility». 
  20. «MathJax: Browser Compatibility». Αρχειοθετήθηκε από το πρωτότυπο στις 6 Απριλίου 2015. Ανακτήθηκε στις 5 Ιουνίου 2017. 
  21. «What's New in MathJax 3». 
  22. «mathjax-node». 5 Ιουνίου 2018. 
  23. «Copy and Paste Math». 
  24. «MathJax: Supported LaTeX Commands». Αρχειοθετήθηκε από το πρωτότυπο στις 16 Δεκεμβρίου 2018. Ανακτήθηκε στις 5 Ιουνίου 2017. 
  25. «MathJax MathML Support — MathJax 2.3 documentation». Αρχειοθετήθηκε από το πρωτότυπο στις 15 Δεκεμβρίου 2018. Ανακτήθηκε στις 14 Φεβρουαρίου 2014. 
  26. «MathJax CDN shutting down on April 30, 2017». MathJax. 31 Μαρτίου 2017. 

Εξωτερικοί σύνδεσμοι

Επεξεργασία