MathJax

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

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

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

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

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

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

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

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

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

Η αρχιτεκτονική της 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. Η λίστα συμβατότητας προγράμματος περιήγησης είναι διαθέσιμη στον επίσημο ιστότοπο.

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

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

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

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

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

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

## Δείτε επίσης

* KaTeX – JavaScript εναλλακτική της MathJax

## Παραπομπές

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

* Επίσημη ιστοσελίδα
* SimpleMathJax, μια επέκταση του MediaWiki
* MathJax, μια επέκταση του MediaWiki
Κατηγορία:Βιβλιοθήκες JavaScript