diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 85490c904..000000000 --- a/docs/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.doctrees -html-mathjax-site -dirhtml -singlehtml -epub -latex -text -man -html/objects.inv -html/.buildinfo diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 1335a14e0..000000000 --- a/docs/Makefile +++ /dev/null @@ -1,137 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = . - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/.doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" -# @echo " pickle to make pickle files" -# @echo " json to make JSON files" -# @echo " htmlhelp to make HTML files and a HTML help project" -# @echo " qthelp to make HTML files and a qthelp project" -# @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo "or" - @echo " html-mathjax-site to make the documentation for www.mathjax.org" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -html-mathjax-site: - $(SPHINXBUILD) -b html -A for_site=True $(ALLSPHINXOPTS) $(BUILDDIR)/html-mathjax-site - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html-mathjax-site." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/UCBerkeleyAstronomy10Spring2011.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/UCBerkeleyAstronomy10Spring2011.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/UCBerkeleyAstronomy10Spring2011" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/UCBerkeleyAstronomy10Spring2011" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - make -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/README.txt b/docs/README.txt new file mode 100644 index 000000000..80f199ab9 --- /dev/null +++ b/docs/README.txt @@ -0,0 +1,11 @@ +The source files for the documentation are now kept in a separate +GitHub repository at + + https://github.com/mathjax/mathjax-docs + +The HTML versions are now available at + + http://mathjax.readthedocs.org/en/latest/ + +where it is possible for you to submit corrections and modifications +directly to the documentation on line. diff --git a/docs/html/CSS-styles.html b/docs/html/CSS-styles.html deleted file mode 100644 index fa4d40638..000000000 --- a/docs/html/CSS-styles.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - CSS Style Objects — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

CSS Style Objects

-

Many MathJax components allow you to specify CSS styles that control -the look of the elements they create. These are described using CSS -style objects, which are JavaScript objects that represent standard -CSS declarations. The main CSS style object is a collection of -name:value pairs where the name is the CSS selector that is being -defined, and the value is an object that gives the style for that -selector. Most often, the selector will need to be enclosed in -quotation marks, as it will contain special characters, so you would -need to use "#myID" rather than just #myID and "ul li" -rather than just ul li.

-

The value used to define the CSS style can either be a string -containing the CSS definition, or a javascript object that is itself a -collection of name:value pairs, where the name is the attribute -being defined and value is the value that attribute should be given. -Note that, since this is a JavaScript object, the pairs are separated -by commas (not semi-colons) and the values are enclosed in quotation -marks. If the name contains dashes, it should be enclosed in -quotation marks as well.

-

For example, jax/output/HTML-CSS/config.js includes the following -declaration:

-
styles: {
-
-  ".MathJax_Display": {
-    "text-align": "center",
-    margin:       "1em 0em"
-  },
-
-  ".MathJax .merror": {
-    "background-color": "#FFFF88",
-    color:   "#CC0000",
-    border:  "1px solid #CC0000",
-    padding: "1px 3px",
-    "font-style": "normal",
-    "font-size":  "90%"
-  }
-
-}
-
-
-

This defines two CSS styles, one for the selector -.MathJax_Display, which specifies its text alignment and margin -settings, and a second for .MathJax .merror, which specifies a -background color, foreground color, border, and so on.

-

You can add as many such definitions to a styles object as you -wish. Note, however, that since this is a JavaScript object, the -selectors must be unique (e.g., you can’t use two definitions for -"img", for example, as only the last one would be saved). If you -need to use more than one entry for a single selector, you can add -comments like /* 1 */ and /* 2 */ to the selector to make them -unique.

-

It is possible to include selectors like "@media print", in which -case the value is a CSS style object. For example:

-
styles: {
-  "@media print": {
-    ".MathJax .merror": {
-       "background-color": "white",
-       border: 0
-    }
-  }
-}
-
-
-

The various extensions and output processors include more examples of -CSS style objects, so see the code for those files for additional -samples. In particular, the extensions/MathMenu.js, -extensions/MathZoom.js, extensions/FontWarnsing.js, and -jax/output/HTML-CSS/jax.js files include such definitions.

-
- - -
-
-
-
-
-

Previous topic

-

Describing HTML snippets

-

Next topic

-

Glossary

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/HTML-snippets.html b/docs/html/HTML-snippets.html deleted file mode 100644 index 1e415da86..000000000 --- a/docs/html/HTML-snippets.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - Describing HTML snippets — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Describing HTML snippets

-

A number of MathJax configuration options allow you to specify an HTML -snippet using a JavaScript object. This lets you include HTML in your -configuration files even though they are not HTML files themselves. -The format is fairly simple, but flexible enough to let you represent -complicated HTML trees.

-

An HTML snippet is an array consisting of a series of elements that format -the HTML tree. Those elements are one of two things: either a string, -which represents text to be included in the snippet, or an array, -which represents an HTML tag to be included. In the latter case, the -array consists of three items: a string that is the tag name (e.g., -“img”), an optional object that gives attributes for the tag (as -described below), and an optional HTML snippet array that gives the -contents of the tag.

-

When attributes are provided, they are given as name:value pairs, -with the name giving the attribute name, and value giving its -value. For example

-
[["img",{src:"/images/mypic.jpg"}]]
-
-
-

represents an HTML snippet that includes one element: an <img> tag -with src set to /images/mypic.jpg. That is, this is -equivalent to

-
<img src="/images/mypic.jpg">
-
-
-

Note that the snippet has two sets of square brackets. The outermost -one is for the array that holds the snippet, and the innermost set is -because the first (and only) element in the snippet is a tag, not -text. Note that the code ["img",{src:"/images/mypic.jpg"}] -is invalid as an HTML snippet. It would represent a snippet that -starts with “img” as text in the snippet (not a tag), but the second -item is neither a string nor an array, and so is illegal. This is a -common mistake that should be avoided.

-

A more complex example is the following:

-
[
-  "Please read the ",
-  ["a",{href:"instructions.html"},["instructions"]],
-  " carefully before proceeding"
-]
-
-
-

which is equivalent to

-
please read the <a href="instructions.html">instructions</a> carefully
-before proceeding.
-
-
-

A final example shows how to set style attributes on an object:

-
[["span",
-  {
-    id:"mySpan",
-    style: {color:"red", "font-weight":"bold"}
-  },
-  [" This is bold text shown in red "]
-]]
-
-
-

which is equivalent to

-
<span id="mySpan" style="color: red; font-weight: bold;">
-This is bold text shown in red
-</span>
-
-
-
- - -
-
-
-
-
-

Previous topic

-

The MathJax Object-Oriented Programming Model

-

Next topic

-

CSS Style Objects

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/_images/mt_head.png b/docs/html/_images/mt_head.png deleted file mode 100644 index eb81080e6..000000000 Binary files a/docs/html/_images/mt_head.png and /dev/null differ diff --git a/docs/html/_images/mt_menu.png b/docs/html/_images/mt_menu.png deleted file mode 100644 index e64f2ae9a..000000000 Binary files a/docs/html/_images/mt_menu.png and /dev/null differ diff --git a/docs/html/_images/mt_templates.png b/docs/html/_images/mt_templates.png deleted file mode 100644 index ddf22f499..000000000 Binary files a/docs/html/_images/mt_templates.png and /dev/null differ diff --git a/docs/html/_images/wp_menu.png b/docs/html/_images/wp_menu.png deleted file mode 100644 index c10cc6d14..000000000 Binary files a/docs/html/_images/wp_menu.png and /dev/null differ diff --git a/docs/html/_images/wp_templates.png b/docs/html/_images/wp_templates.png deleted file mode 100644 index 35c9105d3..000000000 Binary files a/docs/html/_images/wp_templates.png and /dev/null differ diff --git a/docs/html/_sources/CSS-styles.txt b/docs/html/_sources/CSS-styles.txt deleted file mode 100644 index b7b8b0bbb..000000000 --- a/docs/html/_sources/CSS-styles.txt +++ /dev/null @@ -1,81 +0,0 @@ -.. _css-style-objects: - -***************** -CSS Style Objects -***************** - -Many MathJax components allow you to specify CSS styles that control -the look of the elements they create. These are described using `CSS -style objects`, which are JavaScript objects that represent standard -CSS declarations. The main CSS style object is a collection of -`name:value` pairs where the `name` is the CSS selector that is being -defined, and the `value` is an object that gives the style for that -selector. Most often, the selector will need to be enclosed in -quotation marks, as it will contain special characters, so you would -need to use ``"#myID"`` rather than just ``#myID`` and ``"ul li"`` -rather than just ``ul li``. - -The value used to define the CSS style can either be a string -containing the CSS definition, or a javascript object that is itself a -collection of `name:value` pairs, where the `name` is the attribute -being defined and `value` is the value that attribute should be given. -Note that, since this is a JavaScript object, the pairs are separated -by commas (not semi-colons) and the values are enclosed in quotation -marks. If the name contains dashes, it should be enclosed in -quotation marks as well. - -For example, ``jax/output/HTML-CSS/config.js`` includes the following -declaration: - -.. code-block:: javascript - - styles: { - - ".MathJax_Display": { - "text-align": "center", - margin: "1em 0em" - }, - - ".MathJax .merror": { - "background-color": "#FFFF88", - color: "#CC0000", - border: "1px solid #CC0000", - padding: "1px 3px", - "font-style": "normal", - "font-size": "90%" - } - - } - -This defines two CSS styles, one for the selector -``.MathJax_Display``, which specifies its text alignment and margin -settings, and a second for ``.MathJax .merror``, which specifies a -background color, foreground color, border, and so on. - -You can add as many such definitions to a ``styles`` object as you -wish. Note, however, that since this is a JavaScript object, the -selectors must be unique (e.g., you can't use two definitions for -``"img"``, for example, as only the last one would be saved). If you -need to use more than one entry for a single selector, you can add -comments like ``/* 1 */`` and ``/* 2 */`` to the selector to make them -unique. - -It is possible to include selectors like ``"@media print"``, in which -case the value is a CSS style object. For example: - -.. code-block:: javascript - - styles: { - "@media print": { - ".MathJax .merror": { - "background-color": "white", - border: 0 - } - } - } - -The various extensions and output processors include more examples of -CSS style objects, so see the code for those files for additional -samples. In particular, the ``extensions/MathMenu.js``, -``extensions/MathZoom.js``, ``extensions/FontWarnsing.js``, and -``jax/output/HTML-CSS/jax.js`` files include such definitions. diff --git a/docs/html/_sources/HTML-snippets.txt b/docs/html/_sources/HTML-snippets.txt deleted file mode 100644 index 5f8b9b07c..000000000 --- a/docs/html/_sources/HTML-snippets.txt +++ /dev/null @@ -1,83 +0,0 @@ -.. _html-snippets: - -************************ -Describing HTML snippets -************************ - -A number of MathJax configuration options allow you to specify an HTML -snippet using a JavaScript object. This lets you include HTML in your -configuration files even though they are not HTML files themselves. -The format is fairly simple, but flexible enough to let you represent -complicated HTML trees. - -An HTML snippet is an array consisting of a series of elements that format -the HTML tree. Those elements are one of two things: either a string, -which represents text to be included in the snippet, or an array, -which represents an HTML tag to be included. In the latter case, the -array consists of three items: a string that is the tag name (e.g., -"img"), an optional object that gives attributes for the tag (as -described below), and an optional HTML snippet array that gives the -contents of the tag. - -When attributes are provided, they are given as `name:value` pairs, -with the `name` giving the attribute name, and `value` giving its -value. For example - -.. code-block:: javascript - - [["img",{src:"/images/mypic.jpg"}]] - -represents an HTML snippet that includes one element: an ```` tag -with ``src`` set to ``/images/mypic.jpg``. That is, this is -equivalent to - -.. code-block:: html - - - -Note that the snippet has two sets of square brackets. The outermost -one is for the array that holds the snippet, and the innermost set is -because the first (and only) element in the snippet is a tag, not -text. Note that the code ``["img",{src:"/images/mypic.jpg"}]`` -is invalid as an HTML snippet. It would represent a snippet that -starts with "img" as text in the snippet (not a tag), but the second -item is neither a string nor an array, and so is illegal. This is a -common mistake that should be avoided. - -A more complex example is the following: - -.. code-block:: javascript - - [ - "Please read the ", - ["a",{href:"instructions.html"},["instructions"]], - " carefully before proceeding" - ] - -which is equivalent to - -.. code-block:: html - - please read the instructions carefully - before proceeding. - -A final example shows how to set style attributes on an object: - -.. code-block:: javascript - - [["span", - { - id:"mySpan", - style: {color:"red", "font-weight":"bold"} - }, - [" This is bold text shown in red "] - ]] - -which is equivalent to - -.. code-block:: html - - - This is bold text shown in red - - diff --git a/docs/html/_sources/api/ajax.txt b/docs/html/_sources/api/ajax.txt deleted file mode 100644 index 02cd883d4..000000000 --- a/docs/html/_sources/api/ajax.txt +++ /dev/null @@ -1,214 +0,0 @@ -.. _api-ajax: - -*********************** -The MathJax.Ajax Object -*********************** - -The `MathJax.Ajax` structure holds the data and functions for handling -loading of external modules. Modules are loaded only once, even if -called for in several places. The loading of files is asynchronous, -and so the code that requests an external module will continue to run -even when that module has not completed loading, so it is important to -be aware of the timing issues this may cause. Similarly, creating or -loading stylesheets is an asynchronous action. In particular, all -actions that rely on the file or stylesheet having been loaded must be -delayed until after the file has been downloaded completely. This is -the reason for the large number of routines that take callback -functions. - -Any operation that could cause the loading of a file or stylesheet -must be synchronized with the rest of the code via such callbacks. -Since processing any mathematics might cause files to be loaded (e.g., -little-used markup might be implemented in an extension that is loaded -only when that markup is used), any code that dynamically typesets -mathematics will need to be structured to use callbacks to guarantee -that the mathematics has been completely processed before the code -tries to use it. See the :ref:`Synchronizing with MathJax ` -documentation for details on how to do this properly. - - -Properties -========== - -.. describe:: timeout - - Number of milliseconds to wait for a file to load before - it is considered to have failed to load. - - *Default:* 15 seconds - -.. describe:: STATUS.OK - - The value used to indicate that a file load has occurred - successfully. - -.. describe:: STATUS.ERROR - - The value used to indicate that a file load has caused an error or - a timeout to occur. - -.. describe:: loaded - - An object containing the names of the files that have been loaded (or - requested) so far. ``MathJax.Ajax.loaded["file"]`` will be - non-``null`` when the file has been loaded, with the value being - the ``MathJax.Ajax.STATUS`` value of the load attempt. - -.. describe:: loading - - An object containing the files that are currently loading, the - callbacks that are to be run when they load or timeout, and - additional internal data. - -.. describe:: loadHooks - - An object containing the load hooks for the various files, set up by - the :meth:`LoadHook()` method, or by the - :meth:`MathJax.Hub.Register.LoadHook()` method. - - -Methods -======= - -.. method:: Require(file[,callback]) - - Loads the given file if it hasn't been already. The file must be a - JavaScript file or a CSS stylesheet; i.e., it must end in ``.js`` - or ``.css``. Alternatively, it can be an object with a single - `key:value` pair where the `key` is one of ``js`` or ``css`` and - the `value` is the file of that type to be loaded (this makes it - possible to have the file be created by a CGI script, for example, - or to use a ``data::`` URL). The file must be relative to the - MathJax home directory and can not contain ``../`` file path - components. - - When the file is completely loaded and run, the `callback`, if - provided, will be executed passing it the status of the file load. - If there was an error while loading the file, or if the file fails - to load within the time limit given by ``MathJax.Ajax.timout``, - the status will be ``MathJax.Ajax.STATUS.ERROR`` otherwise it - will be ``MathJax.Ajax.STATUS.OK``. If the file is already - loaded, the callback will be called immediately and the file will - not be loaded again. - - :Parameters: - - **file** --- name of the file to be loaded - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Load(file[,callback]) - - Used internally to load a given file without checking if it - already has been loaded, or where it is to be found. - - :Parameters: - - **file** --- name of the file to be loaded - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: loadComplete(file) - - Called from within the loaded files to inform MathJax that the - file has been completely loaded and initialized. The `file` - parameter is the name of the file that has been loaded. This - routine will cause any callback functions registered for the file - or included in the :meth:`MathJax.Ajax.Require()` calls to be - executed, passing them the status of the load - (``MathJax.Ajax.STATUS.OK`` or ``MathJax.Ajax.STATUS.ERROR``) as - their last parameter. - - :Parameters: - - **file** --- name of the file that has been loaded - :Returns: ``null`` - -.. method:: loadTimeout(file) - - Called when the timeout period is over and the file hasn't loaded. - This indicates an error condition, and the - :meth:`MathJax.Ajax.loadError()` method will be executed, then the - file's callback will be run with ``MathJax.Ajax.STATUS.ERROR`` as - its parameter. - - :Parameters: - - **file** --- name of the file that timed out - :Returns: ``null`` - -.. method:: loadError(file) - - The default error handler called when a file fails to load. It - puts a warning message into the MathJax message box on screen. - - :Parameters: - - **file** --- the name of the file that failed to load - :Returns: ``null`` - -.. method:: LoadHook(file,callback) - - Registers a callback to be executed when the given file is - loaded. The file load operation needs to be started when this - method is called, so it can be used to register a hook for a file - that may be loaded in the future. - - :Parameters: - - **file** --- the name of the file to wait for - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Preloading(file1[,file2...]) - - Used with combined configuration files to indicate what files are - in the configuration file. Marks the files as loading (since there - will never be an explicit :meth:`Load()` or :meth:`Require()` call for - them), so that load-hooks and other load-related events can be - properly processed when the :meth:`loadComplete()` occurs. - - :Parameters: - - **file1, file2, ...** --- the names of the files in the combined file - :Returns: ``null`` - -.. method:: Styles(styles[,callback]) - - Creates a stylesheet from the given style data. `styles` can - either be a string containing a stylesheet definition, or an - object containing a :ref:`CSS Style Object `. - For example: - - .. code-block:: javascript - - MathJax.Ajax.Styles("body {font-family: serif; font-style: italic}"); - - and - - .. code-block:: javascript - - MathJax.Ajax.Styles({ - body: { - "font-family": "serif", - "font-style": "italic" - } - }); - - both set the body font family and style. - - The callback routine is called when the stylesheet has been - created and is available for use. - - :Parameters: - - **styles** --- CSS style object for the styles to set - - **callback** --- the callback specification - :Returns: the callback object - - .. note:: - - Internet Explorer has a limit of 32 dynamically created - stylesheets, so it is best to combine your styles into one - large group rather than making several smaller calls. - -.. method:: fileURL(file) - - Returns a complete URL to a file (replacing ``[MathJax]`` with the - actual root URL location). - - :Parameters: - - **file** --- the file name possibly including ``[MathJax]`` - :Returns: the full URL for the file diff --git a/docs/html/_sources/api/callback.txt b/docs/html/_sources/api/callback.txt deleted file mode 100644 index 89681b9a3..000000000 --- a/docs/html/_sources/api/callback.txt +++ /dev/null @@ -1,304 +0,0 @@ -.. _api-callback: - -************************** -The MathJax.Callback Class -************************** - -The ``MathJax.Callback`` object is one of the key mechanisms used by -MathJax to synchronize its actions with those that occur -asynchronously, like loading files and stylesheets. A `Callback` -object is used to tie the execution of a function to the completion of -an asynchronous action. See :ref:`Synchronizing with MathJax -` for more details, and :ref:`Using Callbacks -` in particular for examples of how to specify and -use MathJax `Callback` objects. - - -Specifying a callback ---------------------- - -When a method includes a callback as one of its arguments, that -callback can be specified in a number of different ways, depending on -the functionality that is required of the callback. The easiest case -is to simply provide a function to be called, but it is also possible -to include data to pass to the function when it is executed, and even -the object that will be used as the javascript `this` object when the -function is called. - -Most functions that take callbacks as arguments accept a `callback -specification` rather than an actual callback object, though you can -use the :meth:`MathJax.Callback` function to convert a callback -specification into a Callback object if needed. - -A callback specification is any one of the following: - - .. describe:: fn - - A function that is to be called when the callback is executed. - No additional data is passed to it (other than what it is - called with at the time the callback is executed), and `this` - will be the window object. - - .. describe:: [fn] - - An array containing a function to be called when the callback - is executed (as above). - - .. describe:: [fn, data...] - - An array containing a function together with data to be passed - to that function when the callback is executed; `this` is still - the window object. For example, - - .. code-block:: javascript - - [function (x,y) {return x+y}, 2, 3] - - would specify a callback that would pass ``2`` and ``3`` to - the given function, and it would return their sum, ``5``, when - the callback is executed. - - .. describe:: [object, fn] - - An array containing an object to use as `this` and a function to - call for the callback. For example, - - .. code-block:: javascript - - [{x:'foo', y:'bar'}, function () {this.x}] - - would produce a callback that returns the string ``"foo"`` - when it is called. - - .. describe:: [object, fn, data...] - - Similar to the previous case, but with data that is passed to - the function as well. - - .. describe:: ["method", object] - - Here, `object` is an object that has a method called `method`, and - the callback will execute that method (with the object as - `this`) when it is called. For example, - - .. code-block:: javascript - - ["toString",[1,2,3,4]] - - would call the `toString` method on the array ``[1,2,3,4]`` when - the callback is called, returning ``1,2,3,4``. - - .. describe:: ["method", object, data...] - - Similar to the previous case, but with data that is passed to - the method. E.g., - - .. code-block:: javascript - - ["slice",[1,2,3,4],1,3] - - would perform the equivalent of ``[1,2,3,4].slice(1,3)``, - which returns the array ``[2,3]`` as a result. - - .. describe:: {hook: fn, data: [...], object: this} - - Here the data for the callback are given in an associative - array of `key:value` pairs. The value of `hook` is the - function to call, the value of `data` is an array of the - arguments to pass to the function, and the value of `object` - is the object to use as `this` in the function call. The - specification need not include all three `key:value` pairs; any - that are missing get default values (a function that does - nothing, an empty array, and the window object, respectively). - - .. describe:: "string" - - This specifies a callback where the string is executed via an - ``eval()`` statement. The code is run in the global context, - so any variables or functions created by the string become - part of the global namespace. The return value is the value of - the last statement executed in the string. - - -Executing a Callback Object -=========================== - -The `Callback` object is itself a function, and calling that function -executes the callback. You can pass the callback additional -parameters, just as you can any function, and these will be added to -the callback function's argument list following any data that was -supplied at the time the callback was created. For example - -.. code-block:: javascript - - var f = function (x,y) {return x + " and " +y} - var cb = MathJax.Callback([f, "foo"]); - var result = cb("bar"); // sets result to "foo and bar" - -Usually, the callback is not executed by the code that creates it (as -it is in the example above), but by some other code that runs at a -later time at the completion of some other activity (say the loading -of a file), or in response to a user action. For example: - -.. code-block:: javascript - - function f(x) {alert("x contains "+x)}; - function DelayedX(time) { - var x = "hi"; - setTimeout(MathJax.Callback([f, x], time)); - } - -The ``DelayedX`` function arranges for the function ``f`` to be called at -a later time, passing it the value of a local variable, ``x``. Normally, -this would require the use of a closure, but that is not needed when a -`MathJax.Callback` object is used. - - -Callback Object Properties --------------------------- - -.. describe:: hook - - The function to be called when the callback is executed. - -.. describe:: data - - An array containing the arguments to pass to the callback - function when it is executed. - -.. describe:: object - - The object to use as `this` during the call to the callback - function. - -.. describe:: called - - Set to ``true`` after the callback has been called, and undefined - otherwise. A callback will not be executed a second time unless - the callback's :meth:`reset()` method is called first, or its - ``autoReset`` property is set to ``true``. - -.. describe:: autoReset - - Set this to ``true`` if you want to be able to call the callback - more than once. (This is the case for signal listeners, for example). - -.. describe:: isCallback - - Always set to ``true`` (used to detect if an object is a callback - or not). - - -Callback Object Methods ------------------------ - -.. method:: reset() - - Clears the callback's `called` property. - - -MathJax.Callback Methods ------------------------- - -.. method:: Delay(time[, callback]) - - Waits for the specified time (given in milliseconds) and then - performs the callback. It returns the Callback object (or a blank - one if none was supplied). The returned callback structure has a - `timeout` property set to the result of the ``setTimeout()`` call - that was used to perform the wait so that you can cancel the wait, - if needed. Thus :meth:`MathJax.Callback.Delay()` can be used to - start a timeout delay that executes the callback if an action - doesn't occur within the given time (and if the action does occur, - the timeout can be canceled). Since - :meth:`MathJax.Callback.Delay()` returns a callback structure, it - can be used in a callback queue to insert a delay between queued - commands. - - :Parameters: - - **time** --- the amount of time to wait - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Queue([callback,...]) - - Creates a `MathJax.CallBack.Queue` object and pushes the given - callbacks into the queue. See :ref:`Using Queues ` - for more details about MathJax queues. - - :Parameters: - - **callback** --- one or more callback specifications - :Returns: the `Queue` object - -.. method:: Signal(name) - - Looks for a named signal, creates it if it doesn't already exist, - and returns the signal object. See - :ref:`Using Signals ` for more details. - - :Parameters: - - **name** --- name of the signal to get or create - :Returns: the `Signal` object - -.. method:: ExecuteHooks(hooks[, data[,reset]]) - - Calls each callback in the `hooks` array (or the single hook if it - is not an array), passing it the arguments stored in the data - array. If `reset` is ``true``, then the callback's - :meth:`reset()` method will be called before each hook is - executed. If any of the hooks returns a `Callback` object, then - it collects those callbacks and returns a new callback that will - execute when all the ones returned by the hooks have been - completed. Otherwise, :meth:`MathJax.Callback.ExecuteHooks()` - returns ``null``. - - :Parameters: - - **hooks** --- array of hooks to be called, or a hook - - **data** --- array of arguments to pass to each hook in turn - - **reset** --- ``true`` if the :meth:`reset()` method should be called - :Returns: callback that waits for all the hooks to complete, or ``null`` - -.. method:: Hooks(reset) - - Creates a prioritized list of hooks that are called in order based - on their priority (low priority numbers are handled first). This - is meant to replace :meth:`MathJax.Callback.ExecuteHooks()` and is - used internally for signal callbacks, pre- and post-filters, and - other lists of callbacks. - - :Parameters: - - **reset** --- ``true`` if callbacks can be called more than once - :Returns: the `Hooks` object - - The list has the following methods: - - .. method:: Add(hook[,priority]) - - Add a callback to the prioritized list. If ``priority`` is - not provided, the default is 10. The ``hook`` is a `Callback` - specification as described above. - - :Parameters: - - **hook** --- callback specification to add to the list - - **priority** --- priority of the hook in the list (default: 10) - :Returns: the callback object being added - - .. method:: Remove(hook) - :noindex: - - Remove a given hook (as returned from :meth:`Add()` above) - from the prioritized list. - - :Parameters: - - **hook** --- the callback to be removed - :Returns: ``null`` - - .. method:: Execute() - - Execute the list of callbacks, resetting them if requested. - If any of the hooks return callbacks, then ``Execute()`` - returns a callback that will be executed when they all have - completed. - - :Returns: a callback object or ``null`` - diff --git a/docs/html/_sources/api/elementjax.txt b/docs/html/_sources/api/elementjax.txt deleted file mode 100644 index a3a4159f7..000000000 --- a/docs/html/_sources/api/elementjax.txt +++ /dev/null @@ -1,145 +0,0 @@ -.. _api-element-jax: - -**************************** -The MathJax.ElementJax Class -**************************** - -The element jax is the bridge between the input and output jax, and -contains the data produced by the input jax needed by the output jax -to display the results. It is tied to the individual `` - -where ``path-to-MathJax`` is the URL to the MathJax directory on your -server or hard disk. If you are using MathJax from the CDN, you can -view the contents of `default.js -`_ as a -reference, but you will not be able to edit the CDN copy. It is -possible to use the CDN copy of MathJax with your own configuration -file, however; see :ref:`Using a Local Configuration File with the CDN -` for details. - -The remaining files in the `MathJax/config -`_ directory are -combined configuration files that include not just configuration -parameters but also the files that MathJax would need to load for -those configurations. This means MathJax will have to load fewer -files, and since each file access requires establishing connections -over the network, it can be faster to load one larger file than -several smaller ones. See :ref:`Loading and Configuring MathJax -` for more details about how to load configurations, and how -to modify the parameters for a configuration file. - -The following sections describe the contents of the combined configuration -files. Each comes in two flavors: a standard version and a "full" version. -The standard version simply defines the output processor(s) that are part -of the configuration, but doesn't load the code that implements the output -processor. The full version loads the complete output processors, so -everything that MathJax needs for the page should be loaded up front, and -there will be no delay once the page is ready to be processed. To obtain -the "full" version, add ``-full`` to the end of the configuration file -name. - - -The ``TeX-MML-AM_HTMLorMML`` configuration file -================================================ - -This configuration file is the most general of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX, MathML, and AsciiMath preprocessors and input processors, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, both -the native MathML and HTML-with-CSS output processor definitions, and -the MathMenu and MathZoom extensions. It is equivalent to the -following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX, MathML, and -AsciiMath input jax main code (not just the definition files), as well -as the `toMathML` extension, which is used by the Show Source option -in the MathJax contextual menu. The `-full` version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See the :ref:`asciimath2jax configuration ` section for -other configuration options for the ``asciimath2jax`` preprocessor, and the -:ref:`AsciiMath input jax configuration ` section for -options that control the AsciiMath input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``TeX-AMS-MML_HTMLorMML`` configuration file -================================================ - -This configuration file is the most commonly used of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, both the native -MathML and HTML-with-CSS output processor definitions, and the -MathMenu and MathZoom extensions. It is equivalent to the following -configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -`toMathML` extension, which is used by the Show Source option in the -MathJax contextual menu. The ``-full`` version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``TeX-AMS_HTML`` configuration file -================================================ - -This configuration file is for sites that only use TeX format for their -mathematics, and that want the output to be as close to TeX output as -possible. This uses the HTML-CSS output jax (even when the user's browser -understands MathML). The user can still use the MathJax contextual menu -to select the NativeMML output jax if they desire. - -This file includes all the important MathJax components for TeX input and -output, including the `tex2jax` preprocessor and TeX input jax, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, the -HTML-with-CSS output processor definition, and the MathMenu and MathZoom -extensions. It is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - jax: ["input/TeX","output/HTML-CSS"], - extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the `toMathML` extension, which -is used by the Show Source option in the MathJax contextual menu. The ``-full`` -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See :ref:`MathJax Output Formats ` for more -information on the HTML-CSS output processor. - - -The ``MML_HTMLorMML`` configuration file -================================================ - -This configuration file is for sites that only use MathML format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire. - -This file includes all the important MathJax components for MathML input -and output, including the `mml2jax` preprocessor and MathML input jax, the -NativeMML and HTML-CSS output processor definition files, and the MathMenu -and MathZoom extensions. It is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["mml2jax.js","MathMenu.js","MathZoom.js"] - }); - -In addition, it loads the mml Element Jax and the MathML input jax main -code (not just the definition file), as well as the `toMathML` extension, -which is used by the Show Source option in the MathJax contextual menu. -The ``-full`` version also loads both the HTML-CSS and NativeMML output jax main -code files, plus the HTML-CSS `mtable` extension, which is normally loaded -on demand. - -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``AM_HTMLorMML`` configuration file -================================================ - -This configuration file is for sites that only use AsciiMath format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire. - -This file includes all the important MathJax components for AsciiMath -input and output, including the `asciimath2jax` preprocessor and -AsciiMath input jax, the NativeMML and HTML-CSS output processor -definition files, and the MathMenu and MathZoom extensions. It is -equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML"], - extensions: ["asciimath2jax.js","MathMenu.js","MathZoom.js"] - }); - -In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the `toMathML` extension, which -is used by the Show Source option in the MathJax contextual menu. The ``-full`` -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`asciimath2jax configuration ` -section for other configuration options for the ``asciimath2jax`` -preprocessor, and the :ref:`AsciiMath input jax configuration -` section for options that control the AsciiMath -input processor. See :ref:`MathJax Output Formats ` -for more information on the HTML-CSS and NativeMML output processors. -See the :ref:`MMLorHTML configuration ` section -for details on the options that control the ``MMLorHTML`` -configuration. - - -The ``TeX-AMS-MML_SVG`` configuration file -================================================ - -This configuration file is the same as `TeX-AMS-MML_HTMLorMML` except -that it uses the SVG output renderer rather than the NativeMML or -HTML-CSS ones. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, the SVG output -processor definitions, and the MathMenu and MathZoom extensions. It -is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - jax: ["input/TeX","input/MathML","output/SVG"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -`toMathML` extension, which is used by the Show Source option in the -MathJax contextual menu. The ``-full`` version also loads both the -SVG output jax main code, plus the SVG `mtable` extension, which -is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the SVG output processor. - - -The ``Accessible`` configuration file -================================================ - -This configuration file is essentially the same as -``TeX-AMS-MML_HTMLorMML`` except that it includes options that are -designed for assistive technology, particularly for those with visual -challenged. *This file is deprecated* since the controls that make -MathJax work with screen readers are now available in the MathJax -contextual menu, and so there is no need to set them in the -configuration file any longer. So you can use any of the other -pre-defined configurations and readers with special needs should be -able to change the MathJax settings themselves to be appropriate for -their software. - -The Accessible configuration is equivalent to the following: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - }, - menuSettings: { - zoom: "Double-Click", - mpContext: true, - mpMouse: true - }, - errorSettings: { message: ["[Math Error]"] } - }); - -This turns off the MathJax contextual menu for IE when MathPlayer is -active, and passes mouse events on to MathPlayer to allow screen -readers full access to MathPlayer. It also sets the zoom trigger -to double-click, so that readers can see a larger version of the -mathematics but double-clicking on any equation. - -In addition, it loads the mml Element Jax, the TeX and MathML input jax -main code (not just the definition files), as well as the `toMathML` -extension, which is used by the Show Source option in the MathJax -contextual menu. The ``-full`` version also loads both the HTML-CSS and -NativeMML output jax main code, plus the HTML-CSS `mtable` extension, which -is normally loaded on demand. - diff --git a/docs/html/_sources/configuration.txt b/docs/html/_sources/configuration.txt deleted file mode 100644 index 841c33aa6..000000000 --- a/docs/html/_sources/configuration.txt +++ /dev/null @@ -1,479 +0,0 @@ -.. _loading: - -******************************* -Loading and Configuring MathJax -******************************* - -You load MathJax into a web page by including its main JavaScript file -into the page. That is done via a `` - -where ``path-to-MathJax`` is replaced by the URL of the copy of MathJax -that you are loading. For example, if you are using the MathJax -distributed network service, the tag might be - -.. code-block:: html - - - -If you have installed MathJax yourself, ``path-to-MathJax`` will be the -location of MathJax on your server, or (if you are using MathJax locally -rather than through a server) the location of that directory on your hard -disk. For example, if the MathJax directory is at the top level of your -web server's directory hierarchy, you might use - -.. code-block:: html - - - -to load MathJax. - -If you install MathJax on a server in a domain that is different from the -one containing the page that will load MathJax, then there are issues -involved in doing so that you need to take into consideration. See the -:ref:`Notes About Shared Servers ` for more details. - -When you load MathJax, it is common to request a specific -configuration file as discussed in the section on :ref:`Using a -Configuration File ` below, and in more detail in the -:ref:`Common Configurations ` section. A -typical invocation of MathJax would be - -.. code-block:: html - - - -which loads MathJax with a configuration file that includes everything -you need in order to enter mathematics in either TeX, LaTeX, or MathML -notation, and produces output using MathML if the browser supports -that well enough, or HTML-with-CSS otherwise. If you **don't** load -an explicit configuration file, you will need to include an in-line -configuration block in order to tell MathJax how to read and display -the mathematics on your pages. See the section below on :ref:`Using -In-line Configuration Options ` for details. - -It is best to load MathJax in the document's ```` block, but it -is also possible to load MathJax into the ```` section, if -needed. If you do this, load it as early as possible, as -MathJax will begin to load its components as soon as it is included in -the page, and that will help speed up the processing of the -mathematics on your page. MathJax does expect there to be a -```` section to the document, however, so be sure there is one -if you are loading MathJax in the ````. - -It is also possible to load MathJax dynamically after the page has -been prepared, for example, via a `GreaseMonkey -`_ script, or using a specially prepared -`bookmarklet `_. This is an -advanced topic, however; see :ref:`Loading MathJax Dynamically -` for more details. - -.. _loading-CDN: - -Loading MathJax from the CDN -============================ - -MathJax is available as a web service from ``cdn.mathjax.org``, so you -can obtain MathJax from there without needing to install it on your own -server. The CDN is part of a distributed "cloud" network, so it is -handled by servers around the world. That means that you should get access -to a server geographically near you, for a fast, reliable connection. - -The CDN hosts the most current version of MathJax, as well as older -versions, so you can either link to a version that stays up-to-date as -MathJax is improved, or you can stay with one of the release versions so -that your pages always use the same version of MathJax. - -The URL that you use to obtain MathJax determines the version that you -get. The CDN has the following directory structure: - -.. code-block:: sh - - mathjax/ # project-name - 1.0-latest/ - 1.1-latest/ # the 1.1 release with any ciritical patches - 2.0-beta/ # temporary - 2.0-latest/ # the 2.0 release with any ciritical patches - ... - latest/ # the most current version (2.0-latest in this case) - -Each directory corresponds to an official MathJax release; however, -hotfixes (urgent bug fixes) will be applied in each release branch as -necessary, even if new releases are not prepared. In other words, -``1.1-latest`` will initially point to v1.1, but over time may be updated -with patches that would correspond to releases that might be numbers 1.1a, -1.1b, etc., even if such releases are not actually packaged for -separate distribution (they likely won't be). -We may occasionally introduce directories for betas, as indicated above, -but they will be temporary, and will be removed after the official -release. - -To load from a particular release, use the directory for that release. -For example, - -.. code-block:: html - - - -will load the stable v1.1 version, even after we release v2.0 or other later -versions, while - -.. code-block:: html - - - -will always be the most current stable release, so it will go from v1.1 to -v2.0 automatically when that is released. Note that all the versions -available on the CDN are stable versions; the development version is not -hosted on the CDN. (If you wish to use the development version of -MathJax, you will need to install your own copy; see :ref:`Installing -and Testing MathJax ` for information on how to do that.) - -The use of ``cdn.mathjax.org`` is governed by its `terms of service -`_, so be -sure to read that before linking to the MathJax CDN server. - -If you wish to use the MathJax CDN but use your own configuration file -rather than one of the pre-defined ones, see the information at the -end of the :ref:`Using a Local Configuration File -` section below. - - -Configuring MathJax -=================== - -There are two ways to configure MathJax: via a configuration file, or by -including configuration commands within the web page itself. These can be -used independently, or in combination. For example, you can load a main -pre-defined configuration file, but include in-line commands to -adjust the configuration to your needs. - -Note that you must use at least one of these two forms of configuration. -Unlike MathJax v1.0, version 1.1 and higher does not load a default -configuration file. If you have been using version 1.0's -``config/MathJax.js`` for your configuration, you will need to load that -configuration file explicitly via a ``config`` parameter, as described -below. - - -.. _config-files: - -Using a configuration file -========================== - -The first way to configure MathJax is to use a configuration file. -MathJax comes with a number of pre-defined configuration files, which are -stored in the ``MathJax/config`` directory. Among these are the following - -.. describe:: default.js - - A file that contains nearly all the configuration options with comments - describing them, which you can edit to suit your needs. - -.. describe:: TeX-AMS-MML_HTMLorMML.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, or - :term:`MathML` notation, with the `AMSmath` and `AMSsymbols` - packages included, producing output using MathML if the browser - supports it sufficiently, and HTML-with-CSS otherwise. - -.. describe:: TeX-AMS_HTML.js - - Allows math to be specified in :term:`TeX` or :term:`LaTeX` notation, with the - `AMSmath` and `AMSsymbols` packages included, and produces output - using the HTML-CSS output processor. - -.. describe:: MML_HTMLorMML.js - - Allows math to be specified using :term:`MathML` notation, and produces MathML - output if the browser supports it sufficiently, or HTML-CSS output otherwise. - -.. describe:: AM_HTMLorMML.js - - Allows math to be specified using :term:`AsciiMath` notation, - producing output in MathML if the browser supports it - sufficiently, or as HTML-with-CSS otherwise. - -.. describe:: TeX-AMS-MML_SVG.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, or - :term:`MathML` notation, with the `AMSmath` and `AMSsymbols` - packages included, producing output using SVG. - -.. describe:: TeX-MML-AM_HTMLorMML.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, - :term:`MathML`, or :term:`AsciiMath` notation, with the `AMSmath` - and `AMSsymbols` packages included, producing output using MathML - if the browser supports it sufficiently, and HTML-with-CSS - otherwise. - -The first of these is a file that you can edit to suit your needs. It -contains nearly all the configuration options that MathJax allows, and has -comments explaining them. The others are what are called `combined -configuration files`, which not only configure MathJax, but also pre-load the -various files that the configuration requires. (The contents of these -files are explained in more detail in the `Common Configurations -`_ section.) - -Usually, MathJax loads its components only when they are needed, but each -component will require a separate file to be loaded, and that can cause -delays before the mathematics is displayed. The combined configuration -files load the majority of the needed files all as one large file, reducing -the number of network requests that are needed. That means you will -probably be getting the components that MathJax needs faster than you would -without the combined file, but you may be loading components that are never -actually used; that is the trade off. - -Each of the combined configuration files comes in two flavors: the ones -listed above, which only configure the output processors but don't include -the main code, and a "full" version, that also includes the complete -output processors. For example, with ``TeX-AMS_HTML.js`` and -``TeX-AMS_HTML-full.js``, the latter includes the complete HTML-CSS output -processor. The "full" configuration files are substantially larger (on -the order of 70KB more), so you need to decide whether it is worth loading the -full configuration for your pages. - -If most of your pages include mathematics, then it is to your advantage to -load the full version, but if you are including MathJax in a theme file for -a blog or wiki that only includes mathematics occasionally, then perhaps it -is better to use the standard configuration instead, in which case the -output processors are only loaded when they are actually needed, saving the -loading of 70KB for pages that don't. Of course, if your server is -configured to compress the files it sends, the difference between the two -is considerably reduced. Furthermore, most browsers will cache the -javascript they receive, so the download cost should only occur on the -first page a user views, so it may be best to use the "full" version after -all. Note, however, that mobile devices sometimes have limits on the size -of files that they cache, so they may be forced to download the -configuration on every page. You need to keep these issues in mind as you -decide on which configuration to use. - -To load a configuration file, use ``config=filename`` (where ``filename`` -is one of the names above without the ``.js``) as a parameter to the URL of -the ``MathJax.js`` file. For example - -.. code-block:: html - - - -loads the ``config/TeX-AMS-MML_HTMLorMML.js`` configuration file from the -MathJax distributed network service. - -You can include more than one configuration file by separating them with -commas. For example, if you have a locally defined configuration file -called ``MathJax/config/local/local.js`` that modifies the settings for the -``TeX-AMS_HML`` configuration, defines some new TeX macros, and so on, you -can use - -.. code-block:: html - - - -to first load the main configuration, then the local modifications. - - -.. _local-config-files: - -Using a local configuration file with the CDN -============================================= - -You can load MathJax from the MathJax CDN server but still use a -configuration from your own local server. For example, suppose you -have a configuration file called ``local.js`` on your own server, in a -directory called ``MathJax/config/local``. Then you can load MathJax -from the CDN and still use your configuration file as follows: - -.. code-block:: html - - - -Because the ``local.js`` file is not on the CDN server, you must give -the complete URL to the local configuration file. Note that you also -have to edit the :meth:`loadComplete()` call that is at the bottom of -the configuration file to change it from -``[MathJax]/config/local/local.js`` to the complete URL as you give it -in the ``config`` parameter. In the example above, it would be - -.. code-block:: javascript - - MathJax.Ajax.loadComplete("http://myserver.com/MathJax/config/local/local.js"); - -That is because the ``[MathJax]`` in the original URL refers to the -root directory where ``MathJax.js`` was loaded, which is on the CDN, -not your local server, and so you need to tell MathJax the actual -location of your configuration file. - - -.. _inline-config: - -Using in-line configuration options -=================================== - -The second way to configure MathJax is through `in-line configuration`, -which puts the configuration options within the web page itself. The use -of in-line configuration with MathJax requires two separate `` - - - - -.. _delayStartupUntil: - -Configuring MathJax after it is loaded -====================================== - -Because MathJax begins its configuration process immediately after it is -loaded (so that it can start loading files as quickly as it can), the -configuration blocks for MathJax must come before ``MathJax.js`` is loaded, -so they will be available to MathJax when it starts up. There are -situations, however, when you might want to put off configuring MathJax -until later in the page. - -One such situation is when you have a site that loads MathJax as part of a -theme or template, but want to be able to modify the configuration on -specific pages of the site. To accomplish this, you need to ask MathJax -to delay its startup configuration until some later time. MathJax uses -the ``delayStartupUntil`` parameter to control the timing of the startup -sequence. By default, it is set to ``none``, meaning there is no delay -and MathJax starts configuration right away. - -You can set ``delayStartupUntil=onload`` in order to prevent MathJax from -continuing its startup process until the page's onLoad handler fires. This -allows MathJax to find the ``text/x-mathjax-config`` blocks that occur -anywhere on the page, not just the ones that appear above the `` - -in your theme's header file, and - -.. code-block:: html - - - -in its footer, so that MathJax will delay setting up until the footer -is reached, but will not have to wait until images and other files are -loaded. In this way, if you have ``text/x-mathjax-config`` script -tags within the main body of the document, MathJax will read and -process those before continuing its startup. In this way you can use -a default configuration that can be modified on a page-by-page basis. - -Note that :meth:`MathJax.Hub.Configured()` is not called by MathJax; -you must make that call somewhere within the page yourself after the -configuration blocks are set up. If you do not execute this function, -MathJax will not process any of the math on the page. - - -Details of the MathJax configuration process -============================================ - -Since there are a number of different ways to configure MathJax, it is -important to know how they interact. The configuration actions are the -following: - -1. Process any configuration file explicitly specified as a script parameter. -2. Process the in-line script body (deprecated), if present. -3. If delayed startup is requested, wait for the indicated signal. -4. Process ``text/x-mathjax-config`` config blocks. -5. Process any config files queued in the configuration's `config` array - by earlier config code. - -Note that ``text/x-mathjax-config`` script blocks must either precede the -``MathJax.js`` script element, or startup must be delayed. Otherwise, blocks -that follow the ``MathJax.js`` script element may or may not be available -when MathJax runs, and browser-dependent erratic behavior will result. - - diff --git a/docs/html/_sources/dynamic.txt b/docs/html/_sources/dynamic.txt deleted file mode 100644 index ed528cbb0..000000000 --- a/docs/html/_sources/dynamic.txt +++ /dev/null @@ -1,154 +0,0 @@ -.. _ajax-mathjax: - -*************************** -Loading MathJax Dynamically -*************************** - -MathJax is designed to be included via a `` - - -would load the ``jsMath2jax`` preprocessor, along with a configuration -file that processes TeX input and produces HTML-with-CSS output. - -There are a few configuration options for ``jsMath2jax``, which you -can find in the ``config/default.js`` file, or in the :ref:`jsMath -configuration options ` section. - -If you are generating your jsMath documents programmatically, it would be -better to convert from generating the jsMath ```` and ``
`` tags -to producing the corresponding MathJax `` - -represents an in-line equation in TeX notation, and - -.. code-block:: html - - - -is a displayed TeX equation. - -Alternatively, using MathML notation, you could use - -.. code-block:: html - - - -for in-line math, or - -.. code-block:: html - - - -for displayed equations in MathML notation. -As other input jax are created, they will use other types to identify -the mathematics they can process. - -Page authors can use one of MathJax's preprocessors to convert from -math delimiters that are more natural for the author to type (e.g., -TeX math delimiters like ``$$...$$``) to MathJax's `` - - would display "[math]" in place of the math until MathJax is able - to typeset it. - - See also the ``preJax`` and ``postJax`` comments above. - -.. describe:: showProcessingMessages: true - - This value controls whether the `Processing Math: nn%` messages are - displayed in the lower left-hand corner. Set to ``false`` to - prevent those messages (though file loading and other messages - will still be shown). - -.. describe:: messageStyle: "normal" - - This value controls the verbosity of the messages in the lower - left-hand corner. Set it to ``"none"`` to eliminate all messages, - or set it to ``"simple"`` to show "Loading..." and "Processing..." - rather than showing the full file name or the percentage of the - mathematics processed. - -.. describe:: displayAlign: "center" and displayIndent: "0em" - - These two parameters control the alignment and shifting of - displayed equations. The first can be ``"left"``, ``"center"``, - or ``"right"``, and determines the alignment of displayed - equations. When the alignment is not ``"center"``, the second - determines an indentation from the left or right side for the - displayed equations. - - -.. describe:: delayStartupUntil: "none" - - Normally MathJax will perform its startup commands (loading of - configuration, styles, jax, and so on) as soon as it can. If you - expect to be doing additional configuration on the page, however, - you may want to have it wait until the page's onload handler is - called. If so, set this to ``"onload"``. You can also set this to - ``"configured"``, in which case, MathJax will delay its startup until - you explicitly call :meth:`MathJax.Hub.Configured()`. See - :ref:`Configuring MathJax after it is loaded ` for more - details. - -.. describe:: skipStartupTypeset: false - - Normally MathJax will typeset the mathematics on the page as soon - as the page is loaded. If you want to delay that process, in - which case you will need to call :meth:`MathJax.Hub.Typeset()` - yourself by hand, set this value to ``true``. - -.. describe:: elements: [] - - This is a list of DOM element ID's that are the ones to process for - mathematics when any of the Hub typesetting calls (``Typeset()``, ``Process()``, - ``Update()``, etc.) are called with no element specified, and during - MathJax's initial typesetting run when it starts up. This lets you - restrict the processing to particular containers rather than scanning - the entire document for mathematics. If none are supplied, the complete - document is processed. - -.. describe:: positionToHash: true - - Since typesetting usually changes the vertical dimensions of the - page, if the URL contains an anchor position, then after the page - is typeset, you may no longer be positioned at the correct - position on the page. MathJax can reposition to that location - after it completes its initial typesetting of the page. This - value controls whether MathJax will reposition the browser to the - ``#hash`` location from the page URL after typesetting for the page. - - -.. describe:: showMathMenu: true - showMathMenuMSIE: true - - These control whether to attach the MathJax contextual menu to the - expressions typeset by MathJax. Since the code for handling - MathPlayer in Internet Explorer is somewhat delicate, it is - controlled separately via ``showMathMenuMSIE``, but the latter is - now deprecated in favor of the MathJax contextual menu settings - for MathPlayer (see below). - - If ``showMathMenu`` is ``true``, then right-clicking (on Windows - or Linux) or control-clicking (on Mac OS X) will produce a MathJax - menu that allows you to get the source of the mathematics in - various formats, change the size of the mathematics relative to - the surrounding text, get information about MathJax, and configure - other MathJax settings. - - Set this to ``false`` to disable the menu. When ``true``, the - ``MathMenu`` configuration block determines the operation of the - menu. See :ref:`the MathMenu options ` for - more details. - - These values used to be listed in the separate output jax, but - have been moved to this more central location since they are - shared by all output jax. MathJax will still honor their values - from their original positions, if they are set there. - -.. describe:: menuSettings: { ... } - - This block contains settings for the mathematics contextual menu - that act as the defaults for the user's settings in that menu. - The possible values are: - - .. describe:: zoom: "None" - - This indicates when typeset mathematics should be zoomed. It - can be set to ``"None"``, ``"Hover"``, ``"Click"``, or - ``"Double-Click"`` to set the zoom trigger. - - .. describe:: CTRL: false, ALT: false, CMD: false, Shift: false - - These values indicate which keys must be pressed in order for - math zoom to be triggered. For example, if ``CTRL`` is set to - ``true`` and ``zoom`` is ``"Click"``, then math will be zoomed - only when the user control-clicks on mathematics (i.e., clicks - while holding down the `CTRL` key). If more than one is - ``true``, then all the indicated keys must be pressed for the - zoom to occur. - - .. describe:: zscale: "200%" - - This is the zoom scaling factor, and it can be set to any of - the values available in the `Zoom Factor` menu of the - `Settings` submenu of the contextual menu. - - .. describe:: context: "MathJax" - - This controls what contextual menu will be presented when a - right click (on a PC) or CTRL-click (on the Mac) occurs over a - typeset equation. When set to ``"MathJax"``, the MathJax - contextual menu will appear; when set to ``"Browser"``, the - browser's contextual menu will be used. For example, in - Internet Explorer with the MathPlayer plugin, if this is set - to ``"Browser"``, you will get the MathPlayer contextual menu - rather than the MathJax menu. - - .. describe:: texHints: true - - This controls whether the "Show Source" menu item includes - special class names that help MathJax to typeset the - mathematics that was produced by the TeX input jax. If these - are included, then you can take the output from "Show Source" - and put it into a page that uses MathJax's MathML input jax - and expect to get the same results as the original TeX. - (Without this, there may be some spacing differences.) - - There are also settings for ``format``, ``renderer``, ``font``, - ``mpContext``, and ``mpMouse``, but these are maintained by - MathJax and should not be set by the page author. - -.. describe:: errorSettings: { ... } - - This block contains settings that control how MathJax responds to - unexpected errors while processing mathematical equations. Rather - than simply crash, MathJax can report an error and go on. The - options you can set include: - - .. describe:: message: ["[Math Processing Error]"] - - This is an HTML snippet that will be inserted at the location - of the mathematics for any formula that causes MathJax to - produce an internal error (i.e., an error in the MathJax code - itself). See the :ref:`description of HTML snippets - ` for details on how to represent HTML code in - this way. - - .. describe:: style: {color:"#CC0000", "font-style":"italic"} - - This is the CSS style description to use for the error - messages produced by internal MathJax errors. See the section - on :ref:`CSS style objects ` for details on - how these are specified in JavaScript. - -.. describe:: v1.0-compatible: true - - This controls whether MathJax issues the warning about not having an - explicit configuration in the event that the `jax` array is empty - after configuration is complete. If you really intend that array to - be empty, set this flag to ``false``. Note that setting this to false - does **not** cause a default configuration file to be loaded. diff --git a/docs/html/_sources/options/index.txt b/docs/html/_sources/options/index.txt deleted file mode 100644 index 3a7d42c76..000000000 --- a/docs/html/_sources/options/index.txt +++ /dev/null @@ -1,95 +0,0 @@ -.. _configuration: - -********************* -Configuration Objects -********************* - -The various components of MathJax, including its input and output -processors, its preprocessors, its extensions, and the MathJax core, -all can be configured through the ``config/default.js`` file, or via a -:meth:`MathJax.Hub.Config()` call (indeed, if you look closely, you -will see that ``config/default.js`` is itself one big call to -:meth:`MathJax.Hub.Config()`). Anything that is in -``config/default.js`` can be included in-line to configure MathJax. - -The structure that you pass to :meth:`MathJax.Hub.Config()` is a -JavaScript object that includes `name:value` pairs giving the names of -parameters and their values, with pairs separated by commas. Be -careful not to include a comma after the last value, however, as some -browsers (namely Internet Explorer) will fail to process the -configuration if you do. - -The MathJax components, like the TeX input processor, have their own -sections in the configuration object labeled by the component name, -and using an object as its value. That object is itself -a configuration object made up of `name:value` pairs that give the -configuration options for the component. - -For example, - -.. code-block:: javascript - - MathJax.Hub.Config({ - showProcessingMessages: false, - jax: ["input/TeX", "output/HTML-CSS"], - TeX: { - TagSide: "left", - Macros: { - RR: '{\\bf R}', - bold: ['{\\bf #1}',1] - } - } - }); - -is a configuration that includes two settings for the MathJax Hub (one -for `showProcessingMessages` and one for the `jax` array), and a -configuration object for the TeX input processor. The latter includes -a setting for the TeX input processor's `TagSide` option (to set tags -on the left rather than the right) and a setting for `Macros`, which -defines new TeX macros (in this case, two macros, one called ``\RR`` -that produces a bold "R", and one called ``\bold`` that puts is -argument in bold face). - -The ``config/default.js`` file is another example that shows nearly -all the configuration options for all of MathJax's components. - - -Configuration Options by Component -================================== - -The individual options are explained in the following sections, which -are categorized by the component they affect. - -.. toctree:: - :maxdepth: 1 - - The core options - -.. toctree:: - :maxdepth: 1 - - The tex2jax preprocessor options - The mml2jax preprocessor options - The asciimath2jax preprocessor options - The jsMath2jax preprocessor options - -.. toctree:: - :maxdepth: 1 - - The TeX input processor options - The MathML input processor options - The AsciiMath input processor options - The HTML-CSS output processor options - The NativeMML output processor options - The SVG output processor options - The MMLorHTML configuration options - -.. toctree:: - :maxdepth: 1 - - The MathMenu options - The MathZoom options - The MathEvents options - The FontWarnings options - - diff --git a/docs/html/_sources/options/jsMath2jax.txt b/docs/html/_sources/options/jsMath2jax.txt deleted file mode 100644 index daf04ce29..000000000 --- a/docs/html/_sources/options/jsMath2jax.txt +++ /dev/null @@ -1,47 +0,0 @@ -.. _configure-jsMath2jax: - -*************************** -The jsMath2jax Preprocessor -*************************** - -The options below control the operation of the `jsMath2jax` -preprocessor that is run when you include ``"jsMath2jax.js"`` in the -`extensions` array of your configuration. They are listed with their -default values. To set any of these options, include a ``jsMath2jax`` -section in your :meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - jsMath2jax: { - preview: "none" - } - }); - -would set the ``preview`` parameter to ``"none"``. - -.. describe:: preview: "TeX" - - This controls whether `jsMath2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates in-line or display mathematics in the page. The default - is ``"TeX"``, which means use the TeX code as the preview (which - will be visible until it is processed by MathJax). Set to - ``"none"`` to prevent previews from being inserted (the math - will simply disappear until it is typeset). Set to an array - containing the description of an HTML snippet in order to use the - same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - diff --git a/docs/html/_sources/options/mml2jax.txt b/docs/html/_sources/options/mml2jax.txt deleted file mode 100644 index eff414341..000000000 --- a/docs/html/_sources/options/mml2jax.txt +++ /dev/null @@ -1,48 +0,0 @@ -.. _configure-mml2jax: - -************************ -The mml2jax Preprocessor -************************ - -The options below control the operation of the `mml2jax` preprocessor -that is run when you include ``"mml2jax.js"`` in the `extensions` array -of your configuration. They are listed with their default values. To -set any of these options, include a ``mml2jax`` section in your -:meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - mml2jax: { - preview: "none" - } - }); - -would set the ``preview`` parameter to ``"none"``. - -.. describe:: preview: "alttext" - - This controls whether `mml2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates mathematics on the page. The default is ``"alttext"``, - which means use the ```` tag's ``alttext`` attribute as the - preview (visible until it is processed by MathJax), if the tag has - one. Set it to ``"none"`` to prevent the previews from being - inserted (the math will simply disappear until it is typeset). - Set it to an array containing the description of an HTML snippet - in order to use the same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - - diff --git a/docs/html/_sources/options/tex2jax.txt b/docs/html/_sources/options/tex2jax.txt deleted file mode 100644 index 4354f2e9b..000000000 --- a/docs/html/_sources/options/tex2jax.txt +++ /dev/null @@ -1,155 +0,0 @@ -.. _configure-tex2jax: - -************************ -The tex2jax Preprocessor -************************ - -The options below control the operation of the `tex2jax` preprocessor -that is run when you include ``"tex2jax.js"`` in the `extensions` array -of your configuration. They are listed with their default values. To -set any of these options, include a ``tex2jax`` section in your -:meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - tex2jax: { - inlineMath: [ ['$','$'], ['\\(','\\)'] ] - } - }); - -would set the ``inlineMath`` delimiters for the `tex2jax` -preprocessor. - - -.. describe:: inlineMath: [['\\\(','\\\)']] - - Array of pairs of strings that are to be used as in-line math - delimiters. The first in each pair is the initial delimiter and - the second is the terminal delimiter. You can have as many pairs - as you want. For example, - - .. code-block:: javascript - - inlineMath: [ ['$','$'], ['\\(','\\)'] ] - - would cause `tex2jax` to look for ``$...$`` and ``\(...\)`` as - delimiters for inline mathematics. (Note that the single dollar - signs are not enabled by default because they are used too - frequently in normal text, so if you want to use them for math - delimiters, you must specify them explicitly.) - - Note that the delimiters can't look like HTML tags (i.e., can't - include the less-than sign), as these would be turned into tags by - the browser before MathJax has the chance to run. You can only - include text, not tags, as your math delimiters. - -.. describe:: displayMath: [ ['$$','$$'], ['\\\[','\\\]'] ] - - Array of pairs of strings that are to be used as delimiters for - displayed equations. The first in each pair is the initial - delimiter and the second is the terminal delimiter. You can have - as many pairs as you want. - - Note that the delimiters can't look like HTML tags (i.e., can't - include the less-than sign), as these would be turned into tags by - the browser before MathJax has the chance to run. You can only - include text, not tags, as your math delimiters. - -.. describe:: balanceBraces: true, - - This value determines whether `tex2jax` requires braces to be - balanced within math delimiters (which allows for nested dollar - signs). Set to ``false`` to get pre-v2.0 compatibility. When - ``true``, - - .. code-block:: latex - - $y = x^2 \hbox{ when $x > 2$}$. - - will be properly handled as a single expression. When ``false``, - it would be interpreted as two searpate expressions, each with - improperly balanced braces. - -.. describe:: processEscapes: false - - When set to ``true``, you may use ``\$`` to represent a literal - dollar sign, rather than using it as a math delimiter. When - ``false``, ``\$`` will not be altered, and the dollar sign may be - considered part of a math delimiter. Typically this is set to - ``true`` if you enable the ``$ ... $`` in-line delimiters, so you - can type ``\$`` and `tex2jax` will convert it to a regular dollar - sign in the rendered document. - -.. describe:: processEnvironments: true - - When ``true``, `tex2jax` looks not only for the in-line and - display math delimiters, but also for LaTeX environments - (``\begin{something}...\end{something}``) and marks them for - processing by MathJax. When ``false``, LaTeX environments will - not be processed outside of math mode. - -.. describe:: preview: "TeX" - - This controls whether `tex2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates in-line or display mathematics in the page. The default - is ``"TeX"``, which means use the TeX code as the preview (which - will be visible until it is processed by MathJax). Set to - ``"none"`` to prevent previews from being inserted (the math - will simply disappear until it is typeset). Set to an array - containing the description of an HTML snippet in order to use the - same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - -.. describe:: skipTags: ["script","noscript","style","textarea","pre","code"] - - This array lists the names of the tags whose contents should not - be processed by `tex2jax` (other than to look for ignore/process - classes as listed below). You can add to (or remove from) this - list to prevent MathJax from processing mathematics in specific - contexts. - -.. describe:: ignoreClass: "tex2jax_ignore" - - This is the class name used to mark elements whose contents should - not be processed by tex2jax (other than to look for the - ``processClass`` pattern below). Note that this is a regular - expression, and so you need to be sure to quote any `regexp` - special characters. The pattern is inserted into one that - requires your pattern to match a complete word, so setting - ``ignoreClass: "class2"`` would cause it to match an element with - ``class="class1 class2 class3"`` but not ``class="myclass2"``. - Note that you can assign several classes by separating them by the - vertical line character (``|``). For instance, with - ``ignoreClass: "class1|class2"`` any element assigned a class of - either ``class1`` or ``class2`` will be skipped. - -.. describe:: processClass: "tex2jax_process" - - This is the class name used to mark elements whose contents - *should* be processed by `tex2jax`. This is used to restart - processing within tags that have been marked as ignored via the - ``ignoreClass`` or to cause a tag that appears in the ``skipTags`` - list to be processed rather than skipped. Note that this is a - regular expression, and so you need to be sure to quote any - `regexp` special characters. The pattern is inserted into one - that requires your pattern to match a complete word, so setting - ``processClass: "class2"`` would cause it to match an element with - ``class="class1 class2 class3"`` but not ``class="myclass2"``. - Note that you can assign several classes by separating them by the - vertical line character (``|``). For instance, with - ``processClass: "class1|class2"`` any element assigned a class of - either ``class1`` or ``class2`` will have its contents processed. diff --git a/docs/html/_sources/output.txt b/docs/html/_sources/output.txt deleted file mode 100644 index ae503481a..000000000 --- a/docs/html/_sources/output.txt +++ /dev/null @@ -1,262 +0,0 @@ -.. _output-formats: - -********************** -MathJax Output Formats -********************** - -Currently, MathJax can render math in three ways: - -- Using HTML-with-CSS to lay out the mathematics, -- Using :term:`SVG` to lay out the mathematics, or -- Using a browser's native MathML support. - -These are implemented by the `HTML-CSS`, `SVG` and `NativeMML` output -processors. - -If you are using one of the combined configuration files, then this will -select one of these output processors for you. If the config file ends in -``_HTML``, then it is the HTML-CSS output processor, and if it ends in -``_SVG`` then the SVG output processor will be used. If it ends in -``_HTMLorMML``, then the NativeMML output processor will be chosen if the -browser supports it well enough, otherwise HTML-CSS output will be used. - -If you are performing your own in-line or file-based configuration, -you select which one you want to use by including either -``"output/HTML-CSS"``, ``"output/SVG"``, or ``"output/NativeMML"`` in -the `jax` array of your MathJax configuration. For example - -.. code-block:: javascript - - jax: ["input/TeX","output/HTML-CSS"] - -would specify TeX input and HTML-with-CSS output for the mathematics -in your document. - -The **HTML-CSS output processor** produces high-quality output in all -major browsers, with results that are consistent across browsers and -operating systems. This is MathJax's primary output mode. Its major -advantage is its quality and consistency; its drawback is that it is -slower than the NativeMML mode at rendering the mathematics. -Historically, the performance in Internet Explorer (and IE8 in -particular) was quite poor, with the page getting slower and slower as -more math is processed. MathJax version 2.0 includes a number of -optimizations to improve the display performance in IE, and it is now -more comparable to other browsers. The HTML-CSS output uses web-based -fonts so that users don't have to have math fonts installed on their -computers, which introduces some printing issues in certain browsers. - -The **SVG output processor** is new in MathJax version 2.0, and it -uses `Scalable Vector Graphics` to render the mathematics on the page. -SVG is supported in all the major browsers and most mobile devices; -note, however, that Internet Explorer prior to IE9 does not support -SVG, and IE9 only does in "IE9 standards mode", not its emulation -modes for earlier versions. The SVG output mode is high quality and -slightly faster than HTML-CSS, and it does not suffer from some of the -font-related issues that HTML-CSS does, so prints well in all -browsers. This format also works well in some ebook readers (e.g., -iBooks). The disadvantages of this mode are the following: first, -Internet Explorer only supports SVG in IE9 and later versions (and -then only in IE9 standards mode or above), and some versions of the -Android Internet browser don't have SVG enabled. Second, it does not -take advantage of STIX fonts, and so only has access to the characters -in the web-based fonts, and third, its variable-width tables become -fixed size once they are typeset, and don't rescale if the window size -changes (for example). Since equation numbers are handled through -variable-width tables, that means equation numbers may not stay at the -edge of the window if it is resized. For these reasons it is probably -best not to force the use of SVG output unless you have some control -over the browsers that are used to view your documents. - -The **NativeMML output processor** uses the browser's internal MathML -support (if any) to render the mathematics. Currently, Firefox has -native support for MathML, and IE has the `MathPlayer plugin -`_ for rendering -MathML. Opera has some built-in support for MathML that works well -with simple equations, but fails with more complex formulas, so we -don't recommend using the NativeMML output processor with Opera. -Safari has some support for MathML since version 5.1, but the quality -is not as high as either Firefox's implementation or IE with MathPlayer. -Chrome, Konqueror, and most other browsers don't support MathML -natively, but this may change in the future, since MathML is part of -the HTML5 specification. - -The advantage of the NativeMML output Processor is its speed, since -native MathML support is much faster than using complicated HTML and -CSS to typeset mathematics, as the HTML-CSS output processor does. -The disadvantage is that you are dependent on the browser's MathML -implementation for your rendering, and these vary in quality of output -and completeness of implementation. MathJax relies on features that -are not available in some renderers (for example, Firefox's MathML -support does not implement the features needed for labeled equations). -The results using the NativeMML output processor may have spacing or -other rendering problems that are outside of MathJax's control. - - -Automatic Selection of the Output Processor -=========================================== - -Since not all browsers support MathML natively, it would be unwise to -choose the NativeMML output processor unless you are sure of your -audience's browser capabilities. MathJax can help with that, however, -since a number of its combined configuration files will select -NativeMML output when the browser supports it well enough, and -HTML-CSS output otherwise. These are the configuration files that end -in ``_HTMLorMML``. - -If you are doing your own configuration, there is a special configuration -file that you can include that will choose between NativeMML and HTML-CSS -depending on the browser in use. To invoke it, add ``"MMLorHTML.js"`` to -your configuration's `config` array, and **do not** include an output -processor in your `jax` array; MathJax will fill that in for you based on -the abilities of your user's browser. - -.. code-block:: javascript - - config: ["MMLorHTML.js"], - jax: ["input/TeX"] - - -By default, MathJax will choose HTML-CSS in all browsers except for -one case: Internet Explorer when the MathPlayer plugin is present. -In the past, MathJax selected NativeMML output for Firefox as well, -but we have found that there are too many rendering issues with -Firefox's native MathML implementation, and so MathJax now selects -HTML-CSS output for Firefox by default as well. Users can still use -the Mathjax contextual menu to select the NativeMML renderer if they -wish to choose greater speed at the expense of some quality. - -You can customize which choice MathJax makes on a browser-by-browser -basis or a global basis. See the ``config/default.js`` file or the -:ref:`Configuring MMLorHTML ` section for further -details. As an example, this configuration tells MathJax to use -native MathML support rather than HTML-CSS output for Firefox: - -.. code-block:: html - - - - -With this configuration, MathML output will be used for both Firefox -and IE with the MathPlayer plugin. Note, however, that a user can -employ the MathJax contextual menu to select the other renderer if he -or she wishes. - -MathJax produces MathML that models the underlying mathematics as best -it can, rather than using complicated hacks to improve output for a -particular MathML implementation. When you make the choice to use the -NativeMML output processor, you are making a trade-off: gaining speed -at the expense of quality and reliability, a decision that should not -be taken lightly. - -.. _automatic-linebreaking: - -Automatic Line Breaking -======================= - -The HTML-CSS and SVG output processors implement (most of) the MathML3 -automatic line-breaking specification. (The NativeMML output -processor relies on the browser's native MathML support to handle line -breaking when it is used.) Since line-breaking takes extra processing -and so can slow down the mathematical output, it is off by default, -but you can enable it by adding - -.. code-block:: html - - - -to your page just before the `` - -at the top of the ```` section of your HTML documents. Note -that this line must come at the beginning of the ````, before -any stylesheets, scripts, or other content are loaded. - -.. _html-css-extensions: - -HTML-CSS Extensions -=================== - -The HTML-CSS output jax uses elements with width set to 100% when it -typesets displayed equations. If there are floating elements on the -left or right, this can mean that displayed mathematics isn't properly -centered, and can cause equation numbers to overlap the floating -content. To avoid this, you can specify the `handle-floats` extension -in the `extensions` array of your `HTML-CSS` configuration block. - -.. code-block:: javascript - - "HTML-CSS": { - extensions: ["handle-floats.js"] - } - -This will use CSS that puts the displayed equations into elements that -work like tabel cells, and won't overlap the floaring content. -Because this is somewhat of a misuse of CSS, it is not used by -default, but it has proved successful in most situations, so you may -consider using it in pages that include material that floats to the -left or right of text containing displayed mathematics, especially -when equation numbers or tags are used. - -See the :ref:`HTML-CSS configuration options ` for -other options of the HTML-CSS output jax. diff --git a/docs/html/_sources/platforms/index.txt b/docs/html/_sources/platforms/index.txt deleted file mode 100644 index 0f0b3b23f..000000000 --- a/docs/html/_sources/platforms/index.txt +++ /dev/null @@ -1,79 +0,0 @@ -.. _platforms: - -====================================== -Using MathJax in popular web platforms -====================================== - -MathJax plugins are available for a growing number of wikis, blogs, -and other content-management systems. These include WordPress, -Blogger, Sphinx, TiddlyWiki, and MathEL-Wiki. A list of these is -available in the `web applications -`_ list of the -`MathJax web site `_. - -If the program you are using is not one of these, you may still be able to -use MathJax by modifying the theme or template for your wiki or blog, -as explained below. - - -Using MathJax in a Theme File -============================= - -Most web-based content-management systems include a theme or template -layer that determines how the pages look, and that loads information -common to all pages. Such theme files provide one popular way to -include MathJax in your web templates in the absence of -MathJax-specific plugins for the system you are using. To take -advantage of this approach, you will need access to your theme files, -which probably means you need to be an administrator for the site; if -you are not, you may need to have an administrator do these steps for -you. - -To enable MathJax in your web platform, add the line:: - - - -either just before the ```` tag in your theme file, or at the end of -the file if it contains no ````. - -The theme files for various popular platforms are: - - `WordPress `_ - ``wp-content/themes/[current_theme]/header.php`` - - `Movable Type `_ - ``[current_theme_templates]/html_head.mhtml`` - - `Drupal `_ - ``themes/[current_theme]/page.tpl.php`` - - `Joomla `_ - ``templates/[current_theme]/index.php`` - - `MediaWiki `_ - ``skins/[current_skin].php`` - - `TiddlyWiki `_ - ``*.php`` (Whatever you call your TiddlyWiki php file) - - `Moodle `_ - ``theme/[current_theme]/header.html`` - -Keep in mind that this will enable MathJax for your current -theme/template only. If you change themes or update your theme, you -will have to repeat these steps. - - -Instructions for Specific Platforms -=================================== - -Some programs, such as WordPress and Moveable Type, allow you to edit -template files from inside their administrator interfaces. Specific -instructions for these are given via the links below. - -.. toctree:: - :maxdepth: 1 - - Wordpress - Movable Type diff --git a/docs/html/_sources/platforms/movable-type.txt b/docs/html/_sources/platforms/movable-type.txt deleted file mode 100644 index 65182fc01..000000000 --- a/docs/html/_sources/platforms/movable-type.txt +++ /dev/null @@ -1,38 +0,0 @@ -.. _platform-movable-type: - -============================= -Using MathJax in Movable Type -============================= - -1. Open Moveable Type Admin interface for the site on which you want to enable - MathJax. - -2. In the dashboard menu on the left, open up the Design menu. This - should show you the templates you are currently using on the site. - - .. image:: ../images/mt_menu.png - - -3. Scroll down to the Template Modules section in the template list - and open the `HTML Head` template. - - .. image:: ../images/mt_templates.png - -4. At the end of the file, insert - - .. code-block:: html - - - - to load MathJax from our distributed network service. - - .. image:: ../images/mt_head.png - -5. Save the file. This will enable MathJax with both TeX and MathML - input, so you should be able to start adding mathematical content to - your pages. If you need to adjust the configuration, see - :ref:`Configuring MathJax ` for more details. - - diff --git a/docs/html/_sources/platforms/wordpress.txt b/docs/html/_sources/platforms/wordpress.txt deleted file mode 100644 index 25b380f2e..000000000 --- a/docs/html/_sources/platforms/wordpress.txt +++ /dev/null @@ -1,42 +0,0 @@ -.. _platform-wordpress: - -=============================== -Installing MathJax in WordPress -=============================== - -Note that there is a `WordPress plugin for MathJax -`_, so that may be a -better choice than editing the theme directly. - -1. Open the WordPress admin interface. - -2. In the administration menu on the left, open up the `Appearance` - menu and click on the `Editor` submenu option. - - .. image:: ../images/wp_menu.png - - When you click on the editor option, WordPress should open up the - first stylesheet in the current theme. - -3. In the template list on the right side of the page, click on the - header file (it should be ``header.php``). - - .. image:: ../images/wp_templates.png - - This part depends slightly on how your current theme is written. - In the ``header.php`` file, look for the end-of-head tag, - ````. If you find it, insert - - .. code-block:: html - - - - just before that. Otherwise, insert the same code at the very - bottom of the file. - -4. Save the file. This will enable MathJax with both TeX and MathML - input, so you should be able to start adding mathematical content to - your pages. If you need to adjust the configuration, see - :ref:`Configuring MathJax ` for more details. diff --git a/docs/html/_sources/queues.txt b/docs/html/_sources/queues.txt deleted file mode 100644 index 289118049..000000000 --- a/docs/html/_sources/queues.txt +++ /dev/null @@ -1,254 +0,0 @@ -.. _using-queues: - -************ -Using Queues -************ - -The `callback queue` is one of MathJax's main tools for synchronizing -its actions, both internally, and with external programs, like -javascript code that you may write as part of dynamic web pages. -Because many actions in MathJax (like loading files) operate -asynchronously, MathJax needs a way to coordinate those actions so -that they occur in the right order. The -`MathJax.Callback.Queue` object provides that mechanism. - -A `callback queue` is a list of commands that will be performed one at -a time, in order. If the return value of one of the commands is a -`Callback` object, processing is suspended until that callback is -called, and then processing of the commands is resumed. In this way, -if a command starts an asynchronous operation like loading a file, it -can return the callback for that file-load operation and the queue -will wait until the file has loaded before continuing. Thus a queue -can be used to guarantee that commands don't get performed until other -ones are known to be finished, even if those commands usually operate -asynchronously. - - -Constructing Queues -=================== - -A queue is created via the :meth:`MathJax.Callback.Queue()` command, -which returns a `MathJax.Callback.Queue` object. The queue -itself consists of a series of commands given as callback -specifications (see :ref:`Using Callbacks ` for -details on callbacks), which allow you to provide functions (together -with their arguments) to be executed. You can provide the collection -of callback specifications when the queue is created by passing them -as arguments to :meth:`MathJax.Callback.Queue()`, or you can create an -empty queue to which commands are added later. Once a -`MathJax.Callback.Queue` object is created, you can push -additional callbacks on the end of the queue; if the queue is empty, -the command will be performed immediately, while if the queue is -waiting for another command to complete, the new command will be -queued for later processing. - -For example, - -.. code-block:: javascript - - function f(x) {alert(x)} - var queue = MathJax.Callback.Queue([f, 15], [f, 10], [f, 5]); - queue.Push([f, 0]); - -would create a queue containing three commands, each calling the -function ``f`` with a different input, that are performed in order. A -fourth command is then added to the queue, to be performed after the -other three. In this case, the result will be four alerts, the first -with the number 15, the second with 10, the third with 5 and the -fourth with 0. Of course ``f`` is not a function that operates -asynchronously, so it would have been easier to just call ``f`` four -times directly. The power of the queue comes from calling commands -that could operate asynchronously. For example: - -.. code-block:: javascript - - function f(x) {alert(x)} - MathJax.Callback.Queue( - [f, 1], - ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"], - [f, 2] - ); - -Here, the command ``MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js")`` -is queued between two calls to ``f``. The first call to ``f(1)`` will -be made immediately, then the :meth:`MathJax.Ajax.Require` statement -will be performed. Since the ``Require`` method loads a file, it -operates asynchronously, and its return value is a `MathJax.Callback` -object that will be called when the file is loaded. The call to -``f(2)`` will not be made until that callback is performed, -effectively synchronizing the second call to ``f`` with the completion -of the file loading. This is equivalent to - -.. code-block:: javascript - - f(1); - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js", [f, 2]); - -since the ``Require()`` command allows you to specify a (single) -callback to be performed on the completion of the file load. Note, -however, that the queue could be used to synchronize several file -loads along with multiple function calls, so is more flexible. - -For example, - -.. code-block:: javascript - - MathJax.Callback.Queue( - ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"], - [f, 1], - ["Require", MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"], - [f, 2] - ); - -would load the AMSmath extension, then call ``f(1)`` then load the -local AMSmath modifications, and then call ``f(2)``, with each action -waiting for the previous one to complete before being performed -itself. - - -Callbacks versus Callback Specifications -======================================== - -If one of the callback specifications is an actual callback object -itself, then the queue will wait for that action to be performed -before proceeding. For example, - -.. code-block:: javascript - - MathJax.Callback.Queue( - [f, 1], - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"), - [f, 2], - ); - -starts the loading of the AMSmath extension before the queue is -created, and then creates the queue containing the call to ``f``, the -callback for the file load, and the second call to ``f``. The queue -performs ``f(1)``, waits for the file load callback to be called, and -then calls ``f(2)``. The difference between this and the second -example above is that, in this example the file load is started before -the queue is even created, so the file is potentially loaded and -executed before the call to ``f(1)``, while in the example above, the -file load is guaranteed not to begin until after ``f(1)`` is executed. - -As a further example, consider - -.. code-block:: javascript - - MathJax.Callback.Queue( - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"), - [f, 1], - MathJax.Ajax.Require("[MathJax]/config/local/AMSmathAdditions.js"), - [f, 2] - ); - -in comparison to the example above that uses ``["Require", -MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"]`` and ``["Require", -MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"]`` instead. In that -example, ``AMSmath.js`` is loaded, then ``f(1)`` is called, then the -local additions are loaded, then ``f(2)`` is called. - -Here, however, both file loads are started before the queue is -created, and are operating in parallel (rather than sequentially as in -the earlier example). It is possible for the loading of the local -additions to complete before the AMSmath extension is loaded in this -case, which was guaranteed **not** to happen in the other example. -Note, however, that ``f(1)`` is guaranteed not to be performed until -after the AMSmath extensions load, and ``f(2)`` will not occur until -after both files are loaded. - -In this way, it is possible to start asynchronous loading of several -files simultaneously, and wait until all of them are loaded (in -whatever order) to perform some command. For instance, - -.. code-block:: javascript - - MathJax.Callback.Queue( - MathJax.Ajax.Require("file1.js"), - MathJax.Ajax.Require("file2.js"), - MathJax.Ajax.Require("file3.js"), - MathJax.Ajax.Require("file4.js"), - [f, "all done"] - ); - -starts four files loading all at once, and waits for all four to -complete before calling ``f("all done")``. The order in which they -complete is immaterial, and they all are being requested -simultaneously. - - -The MathJax Processing Queue -============================ - -MathJax uses a queue stored as ``MathJax.Hub.queue`` to regulate its -own actions so that they operate in the right order even when some -of them include asynchronous operations. You can take advantage of -that queue when you make calls to MathJax methods that need to be -synchronized with the other actions taken by MathJax. It may not -always be apparent, however, which methods fall into that category. - -The main source of asynchronous actions in MathJax is the loading of -external files, so any action that may cause a file to be loaded may -act asynchronously. Many important actions do so, including some that -you might not expect; e.g., typesetting mathematics can cause files to -be loaded. This is because some TeX commands, for example, are rare -enough that they are not included in the core TeX input processor, but -instead are defined in extensions that are loaded automatically when -needed. The typesetting of an expression containing one of these TeX -commands can cause the typesetting process to be suspended while the -file is loaded, and then restarted when the extension has become -available. - -As a result, any call to :meth:`MathJax.Hub.Typeset()` (or -:meth:`MathJax.Hub.Process()`, or :meth:`MathJax.Hub.Update()`, etc.) -could return long before the mathematics is actually typeset, and the -rest of your code may run before the mathematics is available. If you -have code that relies on the mathematics being visible on screen, you -will need to break that out into a separate operation that is -synchronized with the typesetting via the MathJax queue. - -Furthermore, your own typesetting calls may need to wait for file loading -to occur that is already underway, so even if you don't need to access -the mathematics after it is typeset, you may still need to queue the -typeset command in order to make sure it is properly synchronized with -*previous* typeset calls. For instance, if an earlier call -started loading an extension and you start another typeset call before -that extension is fully loaded, MathJax's internal state may be in -flux, and it may not be prepared to handle another typeset operation -yet. This is even more important if you are using other libraries -that may call MathJax, in which case your code may not be aware of the -state that MathJax is in. - -For these reasons, it is always best to perform typesetting operations -through the MathJax queue, and the same goes for any other action -that could cause files to load. A good rule of thumb is that, if a -MathJax function includes a callback argument, that function may operate -asynchronously; you should use the MathJax queue to perform it and -any actions that rely on its results. - -To place an action in the MathJax queue, use the -:meth:`MathJax.Hub.Queue()` command. For example - -.. code-block:: javascript - - MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathDiv"]); - -would queue the command ``MathJax.Hub.Typeset("MathDiv")``, causing -the contents of the DOM element with `id` equal to ``MathDiv`` to be -typeset. - -One of the uses of the MathJax queue is to allow you to synchronize an -action with the startup process for MathJax. If you want to have a -function performed after MathJax has become completely set up (and -performed its initial typesetting of the page), you can push it onto -the ``MathJax.Hub.queue`` so that it won't be performed until MathJax -finishes everything it has queued when it was loaded. For example, - -.. code-block:: html - - - diff --git a/docs/html/_sources/signals.txt b/docs/html/_sources/signals.txt deleted file mode 100644 index a5d7d6cd1..000000000 --- a/docs/html/_sources/signals.txt +++ /dev/null @@ -1,164 +0,0 @@ -.. _using-signals: - -************* -Using Signals -************* - -Because much of MathJax operates asynchronously, it is important for -MathJax to be able to indicate to other components operating on the -page that certain actions have been taken. For example, as MathJax is -starting up, it loads external files such as its configuration files -and the various input and output :term:`jax` that are used on the -page. This means that MathJax may not be ready to run until well -after the `` - -into the ```` block of your document. (It can also go in the -```` if necessary, but the head is to be preferred.) This will -load the latest version of MathJax from the distributed server, and -configure it to recognize mathematics in both TeX and MathML notation, -and ask it to generate its output using MathML if the browser supports -that well enough, and otherwise use HTML-with-CSS to display the -mathematics. This is one of the most general configurations, and -should suffice for most people's needs. Other configurations are -available, however, and you can also provide additional configuration -parameters to taylor one of the configurations to your needs. More -details can be found in the :ref:`Loading and Configuring MathJax -` instructions. - -The use of ``cdn.mathjax.org`` is governed by its `terms of service -`_, so be -sure to read that before linking to the MathJax CDN server. - -To see how to enter mathematics in your web pages, see `Putting -mathematics in a web page`_ below. - -Secure Access to the CDN ------------------------- - -When the the MathJax CDN is accessed via the address -``http://cdn.mathjax.org``, data is downloaded over a regular, insecure -HTTP connection. This introduces a security risk, since it is -possible a hostile 3rd party could intercept the MathJax program data, -and replace it. This is sometimes called a -`man-in-the-middle `_ attack. - -To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be done easily by using the -following `` - -Currently, the Amazon Cloudfront service used by the MathJax CDN does -not support the use of a human-friendly name like ``cdn.mathjax.org`` -for secure connections; however, the address given above is stable and -safe to use. - - -Installing Your Own Copy of MathJax -=================================== - -We recommend using the CDN service if you can, but you can also install -MathJax on your own server, or locally on your own hard disk. To do -so you will need to do the following things: - -1. Obtain a copy of MathJax and make it available on your server or -hard disk. - -2. Configure MathJax to suit the needs of your site. - -3. Link MathJax into the web pages that are to include mathematics. - -4. Put mathematics into your web pages so that MathJax can display - it. - - -Obtaining and Installing MathJax --------------------------------- - -The easiest way to set up MathJax is to obtain the v2.0 archive from -the `MathJax download page `_ (you -should obtain a file named something like -``mathjax-MathJax-v2.0-X-XXXXXXXX.zip`` where the X's are random -looking numbers and letters). This archive includes both the MathJax -code and the MathJax webfonts, so it is the only file you need. Note -that this is different from v1.0 and earlier releases, which had the -fonts separate from the rest of the code. - -Unpack the archive and place the resulting MathJax folder onto your -web server at a convenient location where you can include it into your -web pages. For example, making ``MathJax`` a top-level directory on -your server would be one natural way to do this. That would let you -refer to the main MathJax file via the URL ``/MathJax/MathJax.js`` -from within any page on your server. - -**Note:** While this is the easiest way to set up MathJax initially, there -is a better way to do it if you want to be able to keep your copy of -MathJax up-to-date. That uses the `Git `_ version -control system, and is described in the :ref:`Installing MathJax -` document. If you prefer using `Subversion -`_, you can also use that to get a copy -of MathJax (see :ref:`Installing MathJax via SVN -`). - -Once you have MathJax set up on your server, you can test it using the -files in the ``MathJax/test`` directory. If you are putting MathJax -on a server, load them in your browser using their web addresses -rather than opening them locally (i.e., use an ``http://`` URL rather -than a ``file://`` URL). When you view the ``index.html`` file, after -a few moments you should see a message indicating that MathJax appears -to be working. If not, check that the files have been transferred to -the server completely and that the permissions allow the server to -access the files and folders that are part of the MathJax directory. -(Be sure to verify the MathJax folder's permissions as well.) Check -the server log files for any errors that pertain to the MathJax -installation; this may help locate problems in the permission or -locations of files. - - -Configuring your copy of MathJax --------------------------------- - -When you include MathJax into your web pages as described below, it -will load the file ``config/TeX-AMS-MML_HTMLorMML.js`` (i.e., the file -named ``TeX-AMS-MML_HTMLorMML.js`` in the ``config`` folder of the -main ``MathJax`` folder). This file preloads all the most -commonly-used components of MathJax, allowing it to process -mathematics that is in the TeX or LaTeX format, or in MathML notation. -It will produce output in MathML form if the user's browser supports -that sufficiently, and will use HTML-with-CSS to render the -mathematics otherwise. - -There are a number of other prebuilt configuration files that you can -choose from as well, or you could use the ``config/default.js`` file and -customize the settings yourself. The combined configuration files are -described more fully in :ref:`Common Configurations -`, and the configuration options are described in -:ref:`Configuration Options `. - -Note: The configuration process changed between MathJax v1.0 and v1.1, -so if you have existing pages that use MathJax v1.0, you may need to -modify the tag that loads MathJax so that it conforms with the new -configuration process. See :ref:`Installing and Configuring MathJax -` for more details. - - -Linking your copy of MathJax into a web page --------------------------------------------- - -You can include MathJax in your web page by putting - -.. code-block:: html - - - -in your document's ```` block. Here, ``path-to-MathJax`` should -be replaced by the URL for the main MathJax directory, so if you have -put the ``MathJax`` directory at the top level of you server's web -site, you could use - -.. code-block:: html - - - -to load MathJax in your page. For example, your page could look like - -.. code-block:: html - - - - ... - - - - ... - - - -If you have installed MathJax on a server that is in a different -domain from the one serving the page that loads MathJax, be sure to -read the :ref:`Notes About Shared Servers ` for -more details. In that case, you may wish to consider using the -:ref:`MathJax CDN ` rather than installing your own copy -of MathJax. - - -Putting mathematics in a web page -================================= - -To put mathematics in your web page, you can use :term:`TeX` and -:term:`LaTeX` notation, :term:`MathML` notation, :term:`AsciiMath` -notation, or a combination of all three within the same page; the -MathJax configuration tells MathJax which you want to use, and how you -plan to indicate the mathematics when you are using TeX notation. The -configuration file used in the examples above tells MathJax to look -for both TeX and MathML notation within your pages. Other -configuration files tell MathJax to use AsciiMath input. These three -formats are described in more detail below. - - -.. _tex-and-latex-input: - -TeX and LaTeX input -------------------- - -Mathematics that is written in :term:`TeX` or :term:`LaTeX` format is -indicated using *math delimiters* that surround the mathematics, -telling MathJax what part of your page represents mathematics and what -is normal text. There are two types of equations: ones that occur -within a paragraph (in-line mathematics), and larger equations that -appear separated from the rest of the text on lines by themselves -(displayed mathematics). - -The default math delimiters are ``$$...$$`` and ``\[...\]`` for -displayed mathematics, and ``\(...\)`` for in-line mathematics. Note -in particular that the ``$...$`` in-line delimiters are **not** used -by default. That is because dollar signs appear too often in -non-mathematical settings, which could cause some text to be treated -as mathematics unexpectedly. For example, with single-dollar -delimiters, "... the cost is $2.50 for the first one, and $2.00 for -each additional one ..." would cause the phrase "2.50 for the first -one, and" to be treated as mathematics since it falls between dollar -signs. For this reason, if you want to use single-dollars for in-line -math mode, you must enable that explicitly in your configuration: - -.. code-block:: html - - - - -See the ``config/default.js`` file, or the :ref:`tex2jax configuration -options ` page, for additional configuration -parameters that you can specify for the `tex2jax` preprocessor, -which is the component of MathJax that identifies TeX notation within -the page. See the :ref:`TeX and LaTeX ` page for -more on MathJax's support for TeX, and in particular how to deal with -single dollar signs in your text when you have enabled single -dollar-sign delimiters. - -Here is a complete sample page containing TeX mathematics (also -available in the `test/sample-tex.html -`_ -file): - -.. code-block:: html - - - - - MathJax TeX Test Page - - - - - When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are - $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - - - -Since the TeX notation is part of the text of the page, there are some -caveats that you must keep in mind when you enter your mathematics. -In particular, you need to be careful about the use of less-than -signs, since those are what the browser uses to indicate the start of -a tag in HTML. Putting a space on both sides of the less-than sign -should be sufficient, but see :ref:`TeX and LaTeX support -` for details. - -If you are using MathJax within a blog, wiki, or other content -management system, the markup language used by that system may -interfere with the TeX notation used by MathJax. For example, if your -blog uses :term:`Markdown` notation for authoring your pages, the -underscores used by TeX to indicate subscripts may be confused with -the use of underscores by Markdown to indicate italics, and the two -uses may prevent your mathematics from being displayed. See :ref:`TeX -and LaTeX support ` for some suggestions about how to -deal with the problem. - -There are a number of extensions for the TeX input processor that are -loaded by the ``TeX-AMS-MML_HTMLorMML`` configuration. These include: - -- `TeX/AMSmath.js`, which defines the AMS math environments and - macros, - -- `TeX/AMSsymbols.js`, which defines the macros for the symbols in - the `msam10` and `msbm10` fonts, - -- `TeX/noErrors.js`, which shows the original TeX code rather than - an error message when there is a problem processing the TeX, and - -- `TeX/noUndefined.js`, which prevents undefined macros from - producing an error message, and instead shows the macro name in red. - -Other extensions may be loaded automatically when needed. See -:ref:`TeX and LaTeX support ` for details on the other -TeX extensions that are available. - - -.. _mathml-input: - -MathML input ------------- - -For mathematics written in :term:`MathML` notation, you mark your -mathematics using standard ```` tags, where ```` represents displayed mathematics and ```` or just ```` represents in-line mathematics. - -Note that this will work in HTML files, not just XHTML files (MathJax -works with both), and that the web page need not be served with any -special MIME-type. Also note that, unless you are using XHTML rather -than HTML, you should not include a namespace prefix for your -```` tags; for example, you should not use ```` except -in a file where you have tied the ``m`` namespace to the MathML DTD by -adding the ``xmlns:m="http://www.w3.org/1998/Math/MathML"`` attribtue -to your file's ```` tag. - -Although it is not required, it is recommended that you include the -``xmlns="http://www.w3.org/1998/Math/MathML"`` attribute on all -```` tags in your document (and this is preferred to the use of -a namespace prefix like ``m:`` above, since those are deprecated in -HTML5) in order to make your MathML work in the widest range of -situations. - -Here is a complete sample page containing MathML mathematics (also -available in the `test/sample-mml.html -`_ -file): - -.. code-block:: html - - - - - MathJax MathML Test Page - - - - -

- When - - a0 - , - there are two solutions to - - ax2 - + bx - + c = 0 - - and they are - - x = - - - - - b - ± - - b2 - - 4ac - - - 2a - - - . - -

- - - - -When entering MathML notation in an HTML page (rather than an XHTML -page), you should **not** use self-closing tags, but should use explicit -open and close tags for all your math elements. For example, you -should use - -.. code-block:: html - - - -rather than ```` in an HTML document. If you -use the self-closing form, some browsers will not build the math tree -properly, and MathJax will receive a damaged math structure, which -will not be rendered as the original notation would have been. -Typically, this will cause parts of your expression to not be -displayed. Unfortunately, there is nothing MathJax can do about that, -since the browser has incorrectly interpreted the tags long before -MathJax has a chance to work with them. - -The component of MathJax that recognizes MathML notation within the -page is called the `mml2jax` extension, and it has only a few -configuration options; see the ``config/default.js`` file or the -:ref:`mml2jax configuration options ` page for more -details. See the :ref:`MathML ` page for more on -MathJax's MathML support. - - -.. _asciimath-input: - -AsciiMath input ---------------- - -MathJax v2.0 includes a new input format: :term:`AsciiMath` notation. -For mathematics written in this form, you mark your mathematical -expressions by surrounding them in "back-ticks", i.e., ```...```. - -Here is a complete sample page containing AsciiMath notation (also -available in the `test/sample-asciimath.html -`_ -file): - -.. code-block:: html - - - - - MathJax AsciiMath Test Page - - - - -

When `a != 0`, there are two solutions to `ax^2 + bx + c = 0` and - they are

-

- `x = (-b +- sqrt(b^2-4ac))/(2a) .` -

- - - - -The component of MathJax that recognizes asciimath notation within the -page is called the `asciimath2jax` extension, and it has only a few -configuration options; see the ``config/default.js`` file or the -:ref:`asciimath2jax configuration options ` page for more -details. See the :ref:`AsciiMath support ` page for more on -MathJax's AsciiMath support. - - - -Where to go from here? -====================== - -If you have followed the instructions above, you should now have -MathJax installed and configured on your web server, and you should be -able to use it to write web pages that include mathematics. At this -point, you can start making pages that contain mathematical content! - -You could also read more about the details of how to :ref:`customize -MathJax `. - -If you are trying to use MathJax in blog or wiki software or in some -other content-management system, you might want to read about :ref:`using -MathJax in popular platforms `. - -If you are working on dynamic pages that include mathematics, you -might want to read about the :ref:`MathJax Application Programming -Interface ` (its API), so you know how to include -mathematics in your interactive pages. - -If you are having trouble getting MathJax to work, you can read more -about :ref:`installing MathJax `, or :ref:`loading and -configuring MathJax `. - -Finally, if you have questions or comments, or want to help support -MathJax, you could visit the :ref:`MathJax community forums -` or the :ref:`MathJax bug tracker -`. diff --git a/docs/html/_sources/startup.txt b/docs/html/_sources/startup.txt deleted file mode 100644 index 3258f6e59..000000000 --- a/docs/html/_sources/startup.txt +++ /dev/null @@ -1,186 +0,0 @@ -.. _startup-sequence: - -**************************** -The MathJax Startup Sequence -**************************** - -When you load ``MathJax.js`` into a web page, it configures itself and -immediately begins loading the components it needs. As MathJax starts -up, it uses its :ref:`signaling mechanism ` -to indicate the actions that it is taking so that MathJax extensions -can tie into the initialization process, and so other applications -within the page can synchronize their actions with MathJax. - -The startup process performs the following actions: - -- It creates the ``MathJax`` variable, and defines the following - subsystems: - - - ``MathJax.Object`` (object-oriented programming model) - - ``MathJax.Callback`` (callbacks, signals, and queues) - - ``MathJax.Ajax`` (file-loading and style-creation code) - - ``MathJax.HTML`` (support code for creating HTML elements) - - ``MathJax.Message`` (manages the menu line in the lower left) - - ``MathJax.Hub`` (the core MathJax functions) - -.. - -- It then creates the base ``MathJax.InputJax``, - ``MathJax.OutputJax``, and ``MathJax.ElementJax`` objects. - -.. - -- MathJax sets up the default configuration, and creates the - signal objects used for the startup and hub actions. - -.. - -- MathJax locates the `` - -If you are using the CDN, you can make a local configuration file on -your own server, and load MathJax itself from the CDN and your -configuration file from your server. See :ref:`Using a Local -Configuration File with the CDN ` for details. - - -.. _tex-eq-numbers: - -Autmatic Equation Numering -========================== - -New in MathJax v2.0 is the ability to have equations be numbered -automatically. This functionality is turned off by default, so -that pages don't change -when you update from v1.1 to v2.0, but it is easy to configure MathJax -to produce automatic equation numbers by adding: - -.. code-block:: html - - - -to your page just before the `` - - -will load the `autobold` TeX extension in addition to those already -included in the ``TeX-AMS_HTML`` configuration file. - -You can also load these extensions from within a math expresion using -the non-standard ``\require{extension}`` macro. For example - -.. code-block:: latex - - \(\require{color}\) - -would load the `color` extension into the page. This way you you can -load extensions into pages that didn't load them in their -configurations (and prevents you from having to load all the -extensions into all pages even if they aren't used). - -It is also possible to create a macro that will autoload an extension -when it is first used (under the assumption that the extension will -redefine it to perform its true function). For example - -.. code-block:: html - - - -would declare the ``\cancel``, ``\bcancel``, ``\xcancel``, and -``\cancelto`` macros to load the `cancel` extension (where they are -actually defined). Whichever is used first will cause the extension -to be loaded, redefining all four to their proper values. Note that -this may be better than loading the extension explicitly, since it -avoids loading the extra file on pages where these macros are *not* -used. The `sample autoloading macros -`_ -example page shows this in action. The `autoload-all` extension below -defines such macros for *all* the extensions so that if you include -it, MathJax will have access to all the macros it knows about. - -The main extensions are described below. - - -Action ------- - -The `action` extension gives you access to the MathML ```` -element. It defines three new non-standard macros: - -.. describe:: \\mathtip{math}{tip} - - Use ``tip`` (in math mode) as tooltip for ``math``. - -.. describe:: \\texttip{math}{tip} - - Use ``tip`` (in text mode) as tooltip for ``math``. - -.. describe:: \\toggle{math1}{math2}...\\endtoggle - - Show ``math1``, and when clicked, show ``math2``, and so on. - When the last one is clicked, go back to math1. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["action.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -AMSmath and AMSsymbols ----------------------- - -The `AMSmath` extension implements AMS math environments and macros, and -the `AMSsymbols` extension implements macros for accessing the AMS symbol -fonts. These are already included in the combined configuration files that -load the TeX input processor. To use these extensions in your own -configurations, add them to the `extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["AMSmath.js", "AMSsymbols.js", ...] - } - -See the list of control sequences at the end of this document for details -about what commands are implemented in these extensions. - -If you are not using one of the combined configuration files, the `AMSmath` -extension will be loaded automatically when you first use one of the math -environments it defines, but you will have to load it explicitly if you -want to use the other macros that it defines. The `AMSsymbols` extension -is not loaded automatically, so you must include it explicitly if you want -to use the macros it defines. - -Both extensions are included in all the combined configuration files -that load the TeX input processor. - - -Autobold --------- - -The `autobold` extension adds ``\boldsymbol{...}`` around mathematics that -appears in a section of an HTML page that is in bold. - -.. code-block:: javascript - - TeX: { - extensions: ["autobold.js"] - } - -This extension is **not** loaded by the combined configuration files. - - -BBox ----- - -The `bbox` extension defines a new macro for adding background colors, -borders, and padding to your math expressions. - -.. describe:: \\bbox[options]{math} - - puts a bounding box around ``math`` using the provided ``options``. - The options can be one of the following: - - 1. A color name used for the background color. - 2. A dimension (e.g., ``2px``) to be used as a padding around the - mathematics (on all sides). - 3. Style attributes to be applied to the mathematics (e.g., - ``border:1px solid red``). - 4. A combination of these separated by commas. - -Here are some examples: - -.. code-block:: latex - - \bbox[red]{x+y} % a red box behind x+y - \bbox[2pt]{x+1} % an invisible box around x+y with 2pt of extra space - \bbox[red,2pt]{x+1} % a red box around x+y with 2pt of extra space - \bbox[5px,border:2px solid red] - % a 2px red border around the math 5px away - -This extension is **not** included in any of the combined configurations, -but it will be loaded automatically, so you do not need to include it -in your `extensions` array. - - -Begingroup ----------- - -The `begingroup` extension implements commands that provide a -mechanism for localizing macro defintions so that they are not -permanent. This is useful if you have a blog site, for example, and -want to isolate changes that your readers make in their comments so -that they don't affect later comments. - -It defines two new non-standard macros, ``\begingroup`` and -``\endgroup``, that are used to start and stop a local namespace for -macros. Any macros that are defined between the ``\begingroup`` and -``\endgroup`` will be removed after the ``\endgroup`` is executed. -For example, if you put ``\(\begingroup\)`` at the top of each reader's -comments and ``\(\endgroup\)`` at the end, then any macros they define -within their response will be removed after it is processed. - -In addition to these two macros, the `begingroup` extension defines -the standard ``\global`` and ``\gdef`` control sequences from TeX. -(The ``\let``, ``\def``, ``\newcommand``, and ``\newenvironment`` -control sequences are already defined in the core TeX input jax.) - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["begingroup.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Cancel ------- - -The `cancel` extension defines the following macros: - -.. describe:: \\cancel{math} - - Strikeout ``math`` from lower left to upper right. - -.. describe:: \\bcancel{math} - - Strikeout ``math`` from upper left to lower right. - -.. describe:: \\xcancel{math} - - Strikeout ``math`` with an "X". - -.. describe:: \\cancelto{value}{math} - - Strikeout ``math`` with an arrow going to ``value``. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["cancel.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Color ------ - -The ``\color`` command in the core TeX input jax is not standard in -that it takes the mathematics to be colored as one of its parameters, -whereas the LaTeX ``\color`` command is a switch that changes the -color of everything that follows it. - -The `color` extension changes the ``\color`` command to be compatible -with the LaTeX implementation, and also defines ``\colorbox``, -``\fcolorbox``, and ``\DefineColor``, as in the LaTeX color package. -It defines the standard set of colors (Apricot, Aquamarine, -Bittersweet, and so on), and provides the RGB and grey-scale color -spaces in addition to named colors. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["color.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands, -and have ``\color`` be compatible with LaTeX usage. - - -Enclose -------- - -The `enclose` extension gives you access to the MathML ```` -element for adding boxes, ovals, strikethroughs, and other marks over -your mathematics. It defines the following non-standard macro: - -.. describe:: \\enclose{notation}[attributes]{math} - - Where ``notation`` is a comma-separated list of MathML - ```` notations (e.g., ``circle``, ``left``, - ``updiagonalstrike``, ``longdiv``, etc.), ``attributes`` are - MathML attribute values allowed on the ```` element - (e.g., ``mathcolor="red"``, ``mathbackground="yellow"``), and - ``math`` is the mathematics to be enclosed. - -For example - -.. code-block:: latex - - \enclose{circle}[mathcolor="red"]{x} - \enclose{circle}[mathcolor="red"]{\color{black}{x}} - \enclose{circle,box}{x} - \enclose{circle}{\enclose{box}{x}} - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["enclose.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Extpfeil --------- - -The `extpfeil` extension adds more macros for producing extensible -arrows, including ``\xtwoheadrightarrow``, ``\xtwoheadleftarrow``, -``\xmapsto``, ``\xlongequal``, ``\xtofrom``, and a non-standard -``\Newextarrow`` for creating your own extensible arrows. The latter -has the form - -.. describe:: \\Newextarrow{\\cs}{lspace,rspace}{unicode-char} - - where ``\cs`` is the new control sequence name to be defined, - ``lspace`` and ``rspace`` are integers representing the amount of - space (in suitably small units) to use at the left and right of - text that is placed above or below the arrow, and ``unicode-char`` - is a number representing a unicode character position in either - decimal or hexadecimal notation. - -For example - -.. code-block:: latex - - \Newextarrow{\xrightharpoonup}{5,10}{0x21C0} - -defines an extensible right harpoon with barb up. Note that MathJax -knows how to stretch only a limited number of characters, so you may -not actually get a stretchy character this way. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["extpfeil.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -HTML ----- - -The `HTML` extension gives you access to some HTML features like -styles, classes, element ID's and clickable links. It defines the -following non-standard macros: - -.. describe:: \\href{url}{math} - - Makes ``math`` be a link to the page given by ``url``. - -.. describe:: \\class{name}{math} - - Attaches the CSS class ``name`` to the output associated with - ``math`` when it is included in the HTML page. This allows your - CSS to style the element. - -.. describe:: \\cssId{id}{math} - - Attaches an id attribute with value ``id`` to the output - associated with ``math`` when it is included in the HTML page. - This allows your CSS to style the element, or your javascript to - locate it on the page. - -.. describe:: \\style{css}{math} - - Adds the give ``css`` declarations to the element associated with - ``math``. - -For example: - -.. code-block:: latex - - x \href{why-equal.html}{=} y^2 + 1 - - (x+1)^2 = \class{hidden}{(x+1)(x+1)} - - (x+1)^2 = \cssId{step1}{\style{visibility:hidden}{(x+1)(x+1)}} - -This extension is **not** included in any of the combined configurations, -but it will be loaded automatically when any of these macros is used, -so you do not need to include it explicitly in your configuration. - - -mhchem ------- - -The `mhchem` extensions implements the ``\ce``, ``\cf``, and ``\cee`` -chemical equation macros of the LaTeX `mhchem` package. See the -`mhchem CPAN page `_ for more -information and a link to the documentation for `mhchem`. - -For example - -.. code-block:: latex - - \ce{C6H5-CHO} - \ce{$A$ ->[\ce{+H2O}] $B$} - \ce{SO4^2- + Ba^2+ -> BaSO4 v} - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["mhchem.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -noErrors --------- - -The `noErrors` extension prevents TeX error messages from being -displayed and shows the original TeX code instead. You can configure -whether the dollar signs are shown or not for in-line math, and -whether to put all the TeX on one line or use multiple lines (if the -original text contained line breaks). - -This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the `noErrors` extension in -your own configuration, or to modify its parameters, add something like the -following to your :meth:`MathJax.Hub.Config()` call: - -.. code-block:: javascript - - TeX: { - extensions: ["noErrors.js"], - noErrors: { - inlineDelimiters: ["",""], // or ["$","$"] or ["\\(","\\)"] - multiLine: true, // false for TeX on all one line - style: { - "font-size": "90%", - "text-align": "left", - "color": "black", - "padding": "1px 3px", - "border": "1px solid" - // add any additional CSS styles that you want - // (be sure there is no extra comma at the end of the last item) - } - } - } - -Display-style math is always shown in multi-line format, and without -delimiters, as it will already be set off in its own centered -paragraph, like standard display mathematics. - -The default settings place the invalid TeX in a multi-line box with a -black border. If you want it to look as though the TeX is just part of -the paragraph, use - -.. code-block:: javascript - - TeX: { - noErrors: { - inlineDelimiters: ["$","$"], // or ["",""] or ["\\(","\\)"] - multiLine: false, - style: { - "font-size": "normal", - "border": "" - } - } - } - -You may also wish to set the font family or other CSS values here. - -If you are using a combined configuration file that loads the TeX -input processor, it will also load the `noErrors` extension -automatically. If you want to disable the `noErrors` extension so -that you receive the normal TeX error messages, use the following -configuration: - -.. code-block:: javascript - - TeX: { noErrors: { disabled: true } } - -Any math that includes errors will be replaced by an error message -indicating what went wrong. - - -noUndefined ------------ - -The `noUndefined` extension causes undefined control sequences to be -shown as their macro names rather than generating error messages. So -``$X_{\xxx}$`` would display as an "X" with a subscript consisting of the -text ``\xxx`` in red. - -This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the `noUndefined` extension -in your own configuration, or to modify its parameters, add something like -the following to your :meth:`MathJax.Hub.Config()` call: - -.. code-block:: javascript - - TeX: { - extensions: ["noUndefined.js"], - noUndefined: { - attributes: { - mathcolor: "red", - mathbackground: "#FFEEEE", - mathsize: "90%" - } - } - } - -The ``attributes`` setting specifies attributes to apply to the -``mtext`` element that encodes the name of the undefined macro. The -default values set ``mathcolor`` to ``"red"``, but do not set any -other attributes. This example sets the background to a light pink, -and reduces the font size slightly. - -If you are using a combined configuration file that loads the TeX -input processor, it will also load the `noUndefined` extension -automatically. If you want to disable the `noUndefined` extension so -that you receive the normal TeX error messages for undefined macros, -use the following configuration: - -.. code-block:: javascript - - TeX: { noUndefined: { disabled: true } } - -Any math that includes an undefined control sequence name will be -replaced by an error message indicating what name was undefined. - - -Unicode support ---------------- - -The `unicode` extension implements a ``\unicode{}`` extension to TeX -that allows arbitrary unicode code points to be entered in your -mathematics. You can specify the height and depth of the character -(the width is determined by the browser), and the default font from -which to take the character. - -Examples: - -.. code-block:: latex - - \unicode{65} % the character 'A' - \unicode{x41} % the character 'A' - \unicode[.55,0.05]{x22D6} % less-than with dot, with height .55em and depth 0.05em - \unicode[.55,0.05][Geramond]{x22D6} % same taken from Geramond font - \unicode[Garamond]{x22D6} % same, but with default height, depth of .8em,.2em - -Once a size and font are provided for a given unicode point, they need -not be specified again in subsequent ``\unicode{}`` calls for that -character. - -The result of ``\unicode{...}`` will have TeX class `ORD` (i.e., it -will act like a variable). Use ``\mathbin{...}``, ``\mathrel{...}``, -etc., to specify a different class. - -Note that a font list can be given in the ``\unicode{}`` macro, but -Internet Explorer has a buggy implementation of the ``font-family`` -CSS attribute where it only looks in the first font in the list that -is actually installed on the system, and if the required glyph is not -in that font, it does not look at later fonts, but goes directly to -the default font as set in the `Internet-Options/Font` panel. For -this reason, the default font list for the ``\unicode{}`` macro is -``STIXGeneral, 'Arial Unicode MS'``, so if the user has :term:`STIX` -fonts, the symbol will be taken from that (almost all the symbols are -in `STIXGeneral`), otherwise MathJax tries `Arial Unicode MS`. - -The `unicode` extension is loaded automatically when you first use the -``\unicode{}`` macro, so you do not need to add it to the `extensions` -array. You can configure the extension as follows: - -.. code-block:: javascript - - TeX: { - unicode: { - fonts: "STIXGeneral, 'Arial Unicode MS'" - } - } - - -Autoload-all ------------- - -The `autoload-all` extension predefines all the macros from the -extensions above so that they autoload the extensions when first -used. A number of macros already do this, e.g., ``\unicode``, but -this extension defines the others to do the same. That way MathJax -will have access to all the macros that it knows about. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["autoload-all.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - -Note that `autoload-all` redefines ``\color`` to be the one from the -`color` extension (the LaTeX-compatible one rather than the -non-standard MathJax version). This is because ``\colorbox`` and -``\fcolorbox`` autoload the `color` extension, which will cause -``\color`` to be redefined, and so for consistency, ``\color`` is -redefined immediately. - -If you wish to retain the original definition of ``\color``, then use -the following - -.. code-block:: html - - - - -.. _tex-commands: - -Supported LaTeX commands -======================== - -This is a long list of the TeX macros supported by MathJax. If the -macro is defined in an extension, the name of the extension follows -the macro name. If the extension is in brackets, the extension will -be loaded automatically when the macro or environment is first used. - -More complete details about how to use these macros, with examples and -explanations, is available at Carol Fisher's `TeX Commands Available -in MathJax -`_ page. - -Symbols -------- - -.. code-block:: latex - - # - % - & - ^ - _ - { - } - ~ - ' - - \ (backslash-space) - \! - \# - \$ - \% - \& - \, - \: - \; - \> - \\ - \_ - \{ - \| - \} - -A -- - -.. code-block:: latex - - \above - \abovewithdelims - \acute - \aleph - \alpha - \amalg - \And - \angle - \approx - \approxeq AMSsymbols - \arccos - \arcsin - \arctan - \arg - \array - \Arrowvert - \arrowvert - \ast - \asymp - \atop - \atopwithdelims - -B -- - -.. code-block:: latex - - \backepsilon AMSsymbols - \backprime AMSsymbols - \backsim AMSsymbols - \backsimeq AMSsymbols - \backslash - \backslash - \bar - \barwedge AMSsymbols - \Bbb - \Bbbk AMSsymbols - \bbox [bbox] - \bcancel cancel - \because AMSsymbols - \begin - \begingroup begingroup non-standard - \beta - \beth AMSsymbols - \between AMSsymbols - \bf - \Big - \big - \bigcap - \bigcirc - \bigcup - \Bigg - \bigg - \Biggl - \biggl - \Biggm - \biggm - \Biggr - \biggr - \Bigl - \bigl - \Bigm - \bigm - \bigodot - \bigoplus - \bigotimes - \Bigr - \bigr - \bigsqcup - \bigstar AMSsymbols - \bigtriangledown - \bigtriangleup - \biguplus - \bigvee - \bigwedge - \binom AMSmath - \blacklozenge AMSsymbols - \blacksquare AMSsymbols - \blacktriangle AMSsymbols - \blacktriangledown AMSsymbols - \blacktriangleleft AMSsymbols - \blacktriangleright AMSsymbols - \bmod - \boldsymbol [boldsymbol] - \bot - \bowtie - \Box AMSsymbols - \boxdot AMSsymbols - \boxed AMSmath - \boxminus AMSsymbols - \boxplus AMSsymbols - \boxtimes AMSsymbols - \brace - \bracevert - \brack - \breve - \buildrel - \bullet - \Bumpeq AMSsymbols - \bumpeq AMSsymbols - -C -- - -.. code-block:: latex - - \cal - \cancel cancel - \cancelto cancel - \cap - \Cap AMSsymbols - \cases - \cdot - \cdotp - \cdots - \ce mhchem - \cee mhchem - \centerdot AMSsymbols - \cf mhchem - \cfrac AMSmath - \check - \checkmark AMSsymbols - \chi - \choose - \circ - \circeq AMSsymbols - \circlearrowleft AMSsymbols - \circlearrowright AMSsymbols - \circledast AMSsymbols - \circledcirc AMSsymbols - \circleddash AMSsymbols - \circledR AMSsymbols - \circledS AMSsymbols - \class [HTML] non-standard - \clubsuit - \colon - \color color - \colorbox color - \complement AMSsymbols - \cong - \coprod - \cos - \cosh - \cot - \coth - \cr - \csc - \cssId [HTML] non-standard - \cup - \Cup AMSsymbols - \curlyeqprec AMSsymbols - \curlyeqsucc AMSsymbols - \curlyvee AMSsymbols - \curlywedge AMSsymbols - \curvearrowleft AMSsymbols - \curvearrowright AMSsymbols - -D -- - -.. code-block:: latex - - \dagger - \daleth AMSsymbols - \dashleftarrow AMSsymbols - \dashrightarrow AMSsymbols - \dashv - \dbinom AMSmath - \ddagger - \ddddot AMSmath - \dddot AMSmath - \ddot - \ddots - \DeclareMathOperator AMSmath - \DefineColor color - \def [newcommand] - \deg - \Delta - \delta - \det - \dfrac AMSmath - \diagdown AMSsymbols - \diagup AMSsymbols - \diamond - \Diamond AMSsymbols - \diamondsuit - \digamma AMSsymbols - \dim - \displaylines - \displaystyle - \div - \divideontimes AMSsymbols - \dot - \doteq - \Doteq AMSsymbols - \doteqdot AMSsymbols - \dotplus AMSsymbols - \dots - \dotsb - \dotsc - \dotsi - \dotsm - \dotso - \doublebarwedge AMSsymbols - \doublecap AMSsymbols - \doublecup AMSsymbols - \Downarrow - \downarrow - \downdownarrows AMSsymbols - \downharpoonleft AMSsymbols - \downharpoonright AMSsymbols - -E -- - -.. code-block:: latex - - \ell - \emptyset - \enclose enclose non-standard - \end - \endgroup begingroup non-standard - \enspace - \epsilon - \eqalign - \eqalignno - \eqcirc AMSsymbols - \eqref [AMSmath] - \eqsim AMSsymbols - \eqslantgtr AMSsymbols - \eqslantless AMSsymbols - \equiv - \eta - \eth AMSsymbols - \exists - \exp - -F -- - -.. code-block:: latex - - \fallingdotseq AMSsymbols - \fbox - \fcolorbox color - \Finv AMSsymbols - \flat - \forall - \frac - \frac AMSmath - \frak - \frown - -G -- - -.. code-block:: latex - - \Game AMSsymbols - \Gamma - \gamma - \gcd - \gdef begingroup - \ge - \genfrac AMSmath - \geq - \geqq AMSsymbols - \geqslant AMSsymbols - \gets - \gg - \ggg AMSsymbols - \gggtr AMSsymbols - \gimel AMSsymbols - \global begingroup - \gnapprox AMSsymbols - \gneq AMSsymbols - \gneqq AMSsymbols - \gnsim AMSsymbols - \grave - \gt - \gt - \gtrapprox AMSsymbols - \gtrdot AMSsymbols - \gtreqless AMSsymbols - \gtreqqless AMSsymbols - \gtrless AMSsymbols - \gtrsim AMSsymbols - \gvertneqq AMSsymbols - -H -- - -.. code-block:: latex - - \hat - \hbar - \hbox - \hdashline - \heartsuit - \hline - \hom - \hookleftarrow - \hookrightarrow - \hphantom - \href [HTML] - \hskip - \hslash AMSsymbols - \hspace - \Huge - \huge - \idotsint AMSmath - -I -- - -.. code-block:: latex - - \iff - \iiiint AMSmath - \iiint - \iint - \Im - \imath - \impliedby AMSsymbols - \implies AMSsymbols - \in - \inf - \infty - \injlim AMSmath - \int - \intercal AMSsymbols - \intop - \iota - \it - -J -- - -.. code-block:: latex - - \jmath - \Join AMSsymbols - -K -- - -.. code-block:: latex - - \kappa - \ker - \kern - -L -- - -.. code-block:: latex - - \label [AMSmath] - \Lambda - \lambda - \land - \langle - \LARGE - \Large - \large - \LaTeX - \lbrace - \lbrack - \lceil - \ldotp - \ldots - \le - \leadsto AMSsymbols - \left - \Leftarrow - \leftarrow - \leftarrowtail AMSsymbols - \leftharpoondown - \leftharpoonup - \leftleftarrows AMSsymbols - \Leftrightarrow - \leftrightarrow - \leftrightarrows AMSsymbols - \leftrightharpoons AMSsymbols - \leftrightsquigarrow AMSsymbols - \leftroot - \leftthreetimes AMSsymbols - \leq - \leqalignno - \leqq AMSsymbols - \leqslant AMSsymbols - \lessapprox AMSsymbols - \lessdot AMSsymbols - \lesseqgtr AMSsymbols - \lesseqqgtr AMSsymbols - \lessgtr AMSsymbols - \lesssim AMSsymbols - \let [newcommand] - \lfloor - \lg - \lgroup - \lhd AMSsymbols - \lim - \liminf - \limits - \limsup - \ll - \llap - \llcorner AMSsymbols - \Lleftarrow AMSsymbols - \lll AMSsymbols - \llless AMSsymbols - \lmoustache - \ln - \lnapprox AMSsymbols - \lneq AMSsymbols - \lneqq AMSsymbols - \lnot - \lnsim AMSsymbols - \log - \Longleftarrow - \longleftarrow - \Longleftrightarrow - \longleftrightarrow - \longmapsto - \Longrightarrow - \longrightarrow - \looparrowleft AMSsymbols - \looparrowright AMSsymbols - \lor - \lower - \lozenge AMSsymbols - \lrcorner AMSsymbols - \Lsh AMSsymbols - \lt - \lt - \ltimes AMSsymbols - \lVert AMSmath - \lvert AMSmath - \lvertneqq AMSsymbols - -M -- - -.. code-block:: latex - - \maltese AMSsymbols - \mapsto - \mathbb - \mathbf - \mathbin - \mathcal - \mathchoice [mathchoice] - \mathclose - \mathfrak - \mathinner - \mathit - \mathop - \mathopen - \mathord - \mathpunct - \mathrel - \mathring AMSmath - \mathrm - \mathscr - \mathsf - \mathstrut - \mathtip action non-standard - \mathtt - \matrix - \max - \mbox - \measuredangle AMSsymbols - \mho AMSsymbols - \mid - \middle - \min - \mit - \mkern - \mmlToken non-standard - \mod - \models - \moveleft - \moveright - \mp - \mskip - \mspace - \mu - \multimap AMSsymbols - -N -- - -.. code-block:: latex - - \nabla - \natural - \ncong AMSsymbols - \ne - \nearrow - \neg - \negmedspace AMSmath - \negthickspace AMSmath - \negthinspace - \neq - \newcommand [newcommand] - \newenvironment [newcommand] - \Newextarrow extpfeil - \newline - \nexists AMSsymbols - \ngeq AMSsymbols - \ngeqq AMSsymbols - \ngeqslant AMSsymbols - \ngtr AMSsymbols - \ni - \nLeftarrow AMSsymbols - \nleftarrow AMSsymbols - \nLeftrightarrow AMSsymbols - \nleftrightarrow AMSsymbols - \nleq AMSsymbols - \nleqq AMSsymbols - \nleqslant AMSsymbols - \nless AMSsymbols - \nmid AMSsymbols - \nobreakspace AMSmath - \nolimits - \normalsize - \not - \notag [AMSmath] - \notin - \nparallel AMSsymbols - \nprec AMSsymbols - \npreceq AMSsymbols - \nRightarrow AMSsymbols - \nrightarrow AMSsymbols - \nshortmid AMSsymbols - \nshortparallel AMSsymbols - \nsim AMSsymbols - \nsubseteq AMSsymbols - \nsubseteqq AMSsymbols - \nsucc AMSsymbols - \nsucceq AMSsymbols - \nsupseteq AMSsymbols - \nsupseteqq AMSsymbols - \ntriangleleft AMSsymbols - \ntrianglelefteq AMSsymbols - \ntriangleright AMSsymbols - \ntrianglerighteq AMSsymbols - \nu - \nVDash AMSsymbols - \nVdash AMSsymbols - \nvDash AMSsymbols - \nvdash AMSsymbols - \nwarrow - -O -- - -.. code-block:: latex - - \odot - \oint - \oldstyle - \Omega - \omega - \omicron - \ominus - \operatorname AMSmath - \oplus - \oslash - \otimes - \over - \overbrace - \overleftarrow - \overleftrightarrow - \overline - \overrightarrow - \overset - \overwithdelims - \owns - -P -- - -.. code-block:: latex - - \parallel - \partial - \perp - \phantom - \Phi - \phi - \Pi - \pi - \pitchfork AMSsymbols - \pm - \pmatrix - \pmb - \pmod - \pod - \Pr - \prec - \precapprox AMSsymbols - \preccurlyeq AMSsymbols - \preceq - \precnapprox AMSsymbols - \precneqq AMSsymbols - \precnsim AMSsymbols - \precsim AMSsymbols - \prime - \prod - \projlim AMSmath - \propto - \Psi - \psi - -Q -- - -.. code-block:: latex - - \qquad - \quad - -R -- - -.. code-block:: latex - - \raise - \rangle - \rbrace - \rbrack - \rceil - \Re - \ref [AMSmath] - \renewcommand [newcommand] - \renewenvironment [newcommand] - \require non-standard - \restriction AMSsymbols - \rfloor - \rgroup - \rhd AMSsymbols - \rho - \right - \Rightarrow - \rightarrow - \rightarrowtail AMSsymbols - \rightharpoondown - \rightharpoonup - \rightleftarrows AMSsymbols - \rightleftharpoons - \rightleftharpoons AMSsymbols - \rightrightarrows AMSsymbols - \rightsquigarrow AMSsymbols - \rightthreetimes AMSsymbols - \risingdotseq AMSsymbols - \rlap - \rm - \rmoustache - \root - \Rrightarrow AMSsymbols - \Rsh AMSsymbols - \rtimes AMSsymbols - \Rule non-standard - \rVert AMSmath - \rvert AMSmath - -S -- - -.. code-block:: latex - - \S - \scr - \scriptscriptstyle - \scriptsize - \scriptstyle - \searrow - \sec - \setminus - \sf - \sharp - \shortmid AMSsymbols - \shortparallel AMSsymbols - \shoveleft AMSmath - \shoveright AMSmath - \sideset AMSmath - \Sigma - \sigma - \sim - \simeq - \sin - \sinh - \skew - \small - \smallfrown AMSsymbols - \smallint - \smallsetminus AMSsymbols - \smallsmile AMSsymbols - \smash - \smile - \Space - \space - \spadesuit - \sphericalangle AMSsymbols - \sqcap - \sqcup - \sqrt - \sqsubset AMSsymbols - \sqsubseteq - \sqsupset AMSsymbols - \sqsupseteq - \square AMSsymbols - \stackrel - \star - \strut - \style [HTML] non-stanard - \subset - \Subset AMSsymbols - \subseteq - \subseteqq AMSsymbols - \subsetneq AMSsymbols - \subsetneqq AMSsymbols - \substack AMSmath - \succ - \succapprox AMSsymbols - \succcurlyeq AMSsymbols - \succeq - \succnapprox AMSsymbols - \succneqq AMSsymbols - \succnsim AMSsymbols - \succsim AMSsymbols - \sum - \sup - \supset - \Supset AMSsymbols - \supseteq - \supseteqq AMSsymbols - \supsetneq AMSsymbols - \supsetneqq AMSsymbols - \surd - \swarrow - -T -- - -.. code-block:: latex - - \tag [AMSmath] - \tan - \tanh - \tau - \tbinom AMSmath - \TeX - \text - \textbf - \textit - \textrm - \textstyle - \texttip action non-standard - \tfrac AMSmath - \therefore AMSsymbols - \Theta - \theta - \thickapprox AMSsymbols - \thicksim AMSsymbols - \thinspace - \tilde - \times - \tiny - \Tiny non-standard - \to - \toggle action non-standard - \top - \triangle - \triangledown AMSsymbols - \triangleleft - \trianglelefteq AMSsymbols - \triangleq AMSsymbols - \triangleright - \trianglerighteq AMSsymbols - \tt - \twoheadleftarrow AMSsymbols - \twoheadrightarrow AMSsymbols - -U -- - -.. code-block:: latex - - \ulcorner AMSsymbols - \underbrace - \underleftarrow - \underleftrightarrow - \underline - \underrightarrow - \underset - \unicode [unicode] non-standard - \unlhd AMSsymbols - \unrhd AMSsymbols - \Uparrow - \uparrow - \Updownarrow - \updownarrow - \upharpoonleft AMSsymbols - \upharpoonright AMSsymbols - \uplus - \uproot - \Upsilon - \upsilon - \upuparrows AMSsymbols - \urcorner AMSsymbols - -V -- - -.. code-block:: latex - - \varDelta AMSsymbols - \varepsilon - \varGamma AMSsymbols - \varinjlim AMSmath - \varkappa AMSsymbols - \varLambda AMSsymbols - \varliminf AMSmath - \varlimsup AMSmath - \varnothing AMSsymbols - \varOmega AMSsymbols - \varphi - \varPhi AMSsymbols - \varpi - \varPi AMSsymbols - \varprojlim AMSmath - \varpropto AMSsymbols - \varPsi AMSsymbols - \varrho - \varsigma - \varSigma AMSsymbols - \varsubsetneq AMSsymbols - \varsubsetneqq AMSsymbols - \varsupsetneq AMSsymbols - \varsupsetneqq AMSsymbols - \vartheta - \varTheta AMSsymbols - \vartriangle AMSsymbols - \vartriangleleft AMSsymbols - \vartriangleright AMSsymbols - \varUpsilon AMSsymbols - \varXi AMSsymbols - \vcenter - \vdash - \Vdash AMSsymbols - \vDash AMSsymbols - \vdots - \vec - \vee - \veebar AMSsymbols - \verb [verb] - \Vert - \vert - \vphantom - \Vvdash AMSsymbols - -W -- - -.. code-block:: latex - - \wedge - \widehat - \widetilde - \wp - \wr - -X -- - -.. code-block:: latex - - \Xi - \xi - \xcancel cancel - \xleftarrow AMSmath - \xlongequal extpfeil - \xmapsto extpfeil - \xrightarrow AMSmath - \xtofrom extpfeil - \xtwoheadleftarrow extpfeil - \xtwoheadrightarrow extpfeil - -Y -- - -.. code-block:: latex - - \yen AMSsymbols - -Z -- - -.. code-block:: latex - - \zeta - - -Environments ------------- - -LaTeX environments of the form ``\begin{XXX} ... \end{XXX}`` are -provided where ``XXX`` is one of the following: - -.. code-block:: latex - - align [AMSmath] - align* [AMSmath] - alignat [AMSmath] - alignat* [AMSmath] - aligned [AMSmath] - alignedat [AMSmath] - array - - Bmatrix - bmatrix - - cases - - eqnarray - eqnarray* - equation - equation* - - gather [AMSmath] - gather* [AMSmath] - gathered [AMSmath] - - matrix - multline [AMSmath] - multline* [AMSmath] - - pmatrix - - smallmatrix AMSmath - split [AMSmath] - subarray AMSmath - - Vmatrix - vmatrix diff --git a/docs/html/_sources/typeset.txt b/docs/html/_sources/typeset.txt deleted file mode 100644 index 681d811ef..000000000 --- a/docs/html/_sources/typeset.txt +++ /dev/null @@ -1,254 +0,0 @@ -.. _typeset-math: - -************************** -Modifying Math on the Page -************************** - -If you are writing a dynamic web page where content containing -mathematics may appear after MathJax has already typeset the rest of -the page, then you will need to tell MathJax to look for mathematics -in the page again when that new content is produced. To do that, you -need to use the :meth:`MathJax.Hub.Typeset()` method. This will cause -the preprocessors (if any were loaded) to run over the page again, and -then MathJax will look for unprocessed mathematics on the page and -typeset it, leaving unchanged any math that has already been typeset. - -You should not simply call this method directly, however. Because -MathJax operates asynchonously (see :ref:`Synchronizing with MathJax -` for details), you need to be sure that -your call to :meth:`MathJax.Hub.Typeset()` is synchronized with the -other actions that MathJax is taking. For example, it may already be -typesetting portions of the page, or it may be waiting for an output -jax to load, etc., and so you need to queue the typeset action to be -performed after MathJax has finished whatever else it may be doing. -That may be immediately, but it may not, and there is no way to tell. - -To queue the typeset action, use the command - -.. code-block:: javascript - - MathJax.Hub.Queue(["Typeset",MathJax.Hub]); - -This will cause MathJax to typeset the page when it is next able to do -so. It guarantees that the typesetting will synchronize properly -with the loading of jax, extensions, fonts, stylesheets, and other -asynchronous activity, and is the only truly safe way to ask MathJax -to process additional material. - -The :meth:`MathJax.Hub.Typeset()` command also accepts a parameter -that is a DOM element whose content is to be typeset. That could be -a paragraph, or a ``
`` element, or even a MathJax math -`` - - - - - - - - Type some TeX code: - -

- -

- You typed: ${}$ -
- - - - -There are a number of additional example pages at `test/examples.html -`_ that -illustrate how to call MathJax dynamically or perform other actions -with MathJax. diff --git a/docs/html/_sources/upgrade.txt b/docs/html/_sources/upgrade.txt deleted file mode 100644 index 3a1aa2006..000000000 --- a/docs/html/_sources/upgrade.txt +++ /dev/null @@ -1,259 +0,0 @@ -.. _upgrade: - -*********************************** -Migrating from MathJax v1.0 to v1.1 -*********************************** - -MathJax v1.1 fixes a number of bugs in v1.0, and improves support for -new versions of browsers and mobile devices. It includes changes to -increase its performance, and to make it more compliant with HTML5. It -has more flexible configuration options, and the ability to load -configuration files that combine multiple files into a single one to -increase loading speed when MathJax starts up. Finally, MathJax.org now -offers MathJax as a web service through a distributed "cloud" server. - -This document describes the changes you may need to make to your MathJax -configurations in order to take advantage of these improvements. - - -Configuration Changes -===================== - -The main changes that you will see as a page author are in the way that -MathJax can be loaded and configured. If you have been using in-line -configuration by putting a :meth:`MathJax.Hub.Config()` call in the body of -the `` - -would become - -.. code-block:: html - - - - -instead. This will make sure your pages pass HTML5 validation. Be sure -that you put the configuration block **before** the script that loads -MathJax. See :ref:`Loading and Configuring MathJax ` for more -details. - -If your page simply loads ``MathJax.js`` and relies on -``config/MathJax.js``, then you will need to modify your `` - -in the past, you should replace it with - -.. code-block:: html - - - -instead. If you don't do this, you will receive a warning message that -directs you to a page that explains how to update your script tags to use -the new configuration format. - - -Combined Configurations -======================= - -New with version 1.1 is the ability to combine several files into a single -configuration file, and to load that via the same script that loads -MathJax. This should make configuring MathJax easier, and also helps to -speed up the initial loading of MathJax's components, since only one file -needs to be downloaded. - -MathJax comes with four pre-built configurations, and our hope is that one -of these will suit your needs. They are described in more detail in the -:ref:`Using a Configuration File ` section. To load one, -add ``?config=filename`` (where ``filename`` is the name of the -configuration file without the ``.js``) to the URL that loads -``MathJax.js``. For example - -.. code-block:: html - - - -could be replaced by the single line - -.. code-block:: html - - - -In this way, you don't have to include the in-line configuration, and all -the needed files will be downloaded when MathJax starts up. For complete -details about the contents of the combined configuration files, see the -:ref:`Common Configurations ` section. - -If you want to use a pre-defined configuration file, but want to modify some -of the configuration parameters, you can use both a -``text/x-mathjax-config`` block and a ``config=filename`` parameter in -combination. For example, - -.. code-block:: html - - - - -would load the ``TeX-AMS_HTML`` configuration file, but would reconfigure -the inline math delimiters to include ``$...$`` in addition to -``\(...\)``, and would set the ``processEscapes`` parameter to ``true``. - - -Loading MathJax from the CDN -============================ - -The MathJax installation is fairly substantial (due to the large number of -images needed for the image fonts), and so you may not want to (or be able -to) store MathJax on your own server. Keeping MathJax up to date can also -be a maintenance problem, and you might prefer to let others handle that -for you. In either case, using the MathJax distributed network service may be -the best way for you to obtain MathJax. That way you can be sure you are -using an up-to-date version of MathJax, and that the server will be fast -and reliable. - -To use the MathJax CDN service, simply load MathJax as follows: - -.. code-block:: html - - - -and you want to use single-dollar delimiters for in-line math, then you -should replace this with - -.. code-block:: html - - - - -The same technique can be used in conjunction with a combined -configuration file. For example - -.. code-block:: html - - - - -will load the pre-defined ``TeX-AMS_HTML`` configuration, but will modify -the settings to allow ``$...$`` delimiters, and to process ``\$`` to -produce dollar signs within the text of the page. - - -New Distribution Location -========================= - -Version 1.0 of MathJax was distributed through `SourceForge`, but the -development of MathJax has switched to `GitHub -`_, which is now the primary location -for MathJax source code and distributions. The SourceForge repository will -no longer be actively maintained (and hasn't been since November 2010), and -so you will not be able to obtain updates through ``svn`` if you checked -out MathJax from there. - -You may be able to switch to using the MathJax CDN (see above) rather than -hosting your own copy of MathJax, and avoid the problem of updates all -together. If you must install your own copy, however, you should follow -the instructions at :ref:`Installing and Testing MathJax `, -using either ``git`` or ``svn`` as described to obtain your copy from -GitHub. This will allow you to keep your copy of MathJax up to date as -development continues. - -We apologize for the inconvenience of having to switch distributions, but -the git-to-svn bridge we tried to implement to keep both copies in synch -turned out to be unreliable, and so the SourceForge distribution was -retired in favor of the GitHub site. diff --git a/docs/html/_sources/whats-new-1.1.txt b/docs/html/_sources/whats-new-1.1.txt deleted file mode 100644 index 104d145f0..000000000 --- a/docs/html/_sources/whats-new-1.1.txt +++ /dev/null @@ -1,172 +0,0 @@ -.. _whats-new-1.1: - -************************** -What's New in MathJax v1.1 -************************** - -MathJax version 1.1 includes a number of important improvements and -enhancements over version 1.0. We have worked hard to fix bugs, improve -support for browsers and mobile devices, process TeX and MathML better, and -increase MathJax's performance. - -In addition to these changes, MathJax.org now offers MathJax as a network -service. Instead of having to install MathJax on your own server, you can -link to our content delivery network (CDN) to get fast access to -up-to-date and past versions of MathJax. See :ref:`Loading MathJax from -the CDN ` for more details. - -The following sections outline the changes in v1.1: - -Optimization -============ - -* Combined configuration files that load all the needed files in one piece - rather than loading them individually. This simplifies configuration - and speeds up typesetting of the mathematics on the page. - -* Improved responsiveness to mouse events during typesetting. - -* Parallel downloading of files needed by MathJax, for faster startup - times. - -* Shorter timeout for web fonts, so if they can't be downloaded, you don't - have to wait so long. - -* Rollover to image fonts if a web font fails to load (so you don't have - to wait for *every* font to fail. - -* The MathJax files are now packed only with `yuicompressor` rather than a - custom compressor. The CDN serves gzipped versions, which end up being - smaller than the gzipped custom-packed files. - -* Improved rendering speed in IE by removing ``position:relative`` from - the style for mathematics. - -* Improved rendering speed for most browsers by isolating the mathematics - from the page during typesetting (avoids full page reflows). - - -Enhancements -============ - -* Allow the input and output jax configuration blocks to specify extensions - to be loaded when the jax is loaded (this avoids needing to load them up - front, so they don't have to be loaded on pages that don't include - mathematics, for example). - -* Better handling of background color from style attributes. - -* Ability to pass configuration parameters via script URL. - -* Support HTML5 compliant configuration syntax. - -* Switch the Git repository from storing the fonts in `fonts.zip` to - storing the `fonts/` directory directly. - -* Improved About box. - -* Added a minimum scaling factor (so math won't get too small). - - -TeX Support -============ - -* Added support for ``\href``, ``\style``, ``\class``, ``\cssId``. -* Avoid recursive macro definitions and other resource consumption possibilities. -* Fix for ``\underline`` bug. -* Fix for bug with ``\fbox``. -* Fix height problem with ``\raise`` and ``\lower``. -* Fix problem with ``\over`` used inside array entries. -* Fix problem with nesting of math delimiters inside text-mode material. -* Fix single digit super- and subscripts followed by punctuation. -* Make sure `movablelimits` is off for ``\underline`` and related macros. -* Fix problem with dimensions given with ``pc`` units. - - -MathML Support -============== - -* Fix ``<`` and ``&`` being translated too early. -* Handle self-closing tags in HTML files better. -* Combine adjacent relational operators in ```` tags. -* Fix entity name problems. -* Better support for MathML namespaces. -* Properly handle comments within MathML in IE. -* Properly consider ```` and ```` as space-like. -* Improved support for ```` with embellished operators. - - -Other Bug Fixes -=============== - -* Fixed CSS bleed through with zoom and other situations. -* Fixed problems with ``showMathMenuMSIE`` when set to ``false``. -* Replaced illegal prefix characters in cookie name. -* Improved placement of surd for square roots and n-th roots. -* Fixed layer obscuring math from MathPlayer for screen readers. -* Newlines in CDATA comments are now handled properly. -* Resolved conflict between `jsMath2jax` and `tex2jax` both processing the - same equation. -* Fixed problem with ``class="tex2jax_ignore"`` affecting the processing of - sibling elements. - - -Browser Support -=============== - -**Android** - -* Added detection and configuration for Android browser. -* Allow use of OTF web fonts in Android 2.2. - - -**Blackberry** - -* MathJax now works with OS version 6. - - -**Chrome** - -* Use OTF web fonts rather than SVG fonts for version 4 and above. - - -**Firefox** - -* Added Firefox 4 detection and configuration. -* Fix for extra line-break bug when displayed equations are in - preformatted text. -* Updated fonts so that FF 3.6.13 and above can read them. - - -**Internet Explorer** - -* Changes for compatibility with IE9. -* Fix for IE8 incorrectly parsing MathML. -* Fix for IE8 namespace problem. -* Fix for null ``parentNode`` problem. -* Fix for ``outerHTML`` not quoting values of attributes. - -**iPhone/iPad** - -* Added support for OTF web fonts in iOS4.2. - -**Nokia** - -* MathJax now works with Symbian\ :sup:`3`\ . - -**Opera** - -* Prevent Opera from using STIX fonts unless explicitly requested via the - font menu (since Opera can't display many of the characters). -* Fixed bad em-size detection in 10.61. -* Fixed a problem with the About dialog in Opera 11. - - -**Safari** - -* Use OTF web fonts for Safari/PC. - - -**WebKit** - -* Better version detection. diff --git a/docs/html/_sources/whats-new-2.0.txt b/docs/html/_sources/whats-new-2.0.txt deleted file mode 100644 index 684cc8d68..000000000 --- a/docs/html/_sources/whats-new-2.0.txt +++ /dev/null @@ -1,718 +0,0 @@ -.. _whats-new-2.0: - -************************** -What's New in MathJax v2.0 -************************** - -MathJax version 2.0 includes many new and improved features, including -much better speeds in Internet Explorer, a new AsciiMath input -processor, a new :term:`SVG` output processor, support for additional -LaTeX commands, and many bug fixes, to name just a few of the changes. - - -Major speed improvement for HTML-CSS output, particularly in IE -=============================================================== - -The HTML-CSS output processing was redesigned to avoid the page -reflows that were the main source of the speed problem in Internet -Explorer 8 and 9. For test pages having between 20 and 50 typeset -expressions, we see an 80% reduction in output processing time for -IE8, a 50% reduction for IE9, and between 15% and 25% reduction for -most other browsers over the corresponding v1.1a times. Since the -processing time in v1.1a grows non-linearly in IE, you should see even -larger savings for pages with more equations when using v2.0. Forcing -IE7 emulation mode is no longer necessary (and indeed is no longer -recommended). - - -Reduced flickering during typsetting -==================================== - -In the past, each expression was displayed as soon as it was typeset, -which caused a lot of visual flickering as MathJax processed the page. -In v2.0, the output is processed in blocks so that typeset expressions -are revealed in groups. This reduces the visual distraction, and also -speeds up the processing. The number of equations in a block can be -controlled through the ``EqnChunk`` parameter in the HTML-CSS or SVG -block of your configuration. See the :ref:`configuration options for -HTML-CSS ` and :ref:`configuration options for SVG -` pages for details. - -If the page URL includes a hash reference (a link to a particular -location within the page), MathJax v2.0 will jump to that location -after the page has finished typsetting. (Since the size of the page -may have changed due to the mathematical typsetting, that location may -no longer be visible on screen, so MathJax moves there when it is done -with the initial typesetting.) You can control this behavior with the -``positionToHash`` parameter in the main section of your -configuration. See the :ref:`core configuration options -` page for details. - - -Automatic equation numbering of TeX formulas -============================================ - -The TeX input jax now can be configured to add equation numbers -(though the default is not to number equations so that existing pages -will not change their appearance). This is controlled through the -``equationNumbers`` section of the ``TeX`` block of your configuration -(see the :ref:`equation numbering ` section for -details). You can request that the numbering follow the AMS-style -numbering of environments, or you can request that every displayed -equation be numbered. There are now ``\label``, ``\ref``, and -``\eqref`` commands to make it easier to link to particular equations -within the document. - - -Automatic line breaking of long displayed equations -=================================================== - -MathJax now implements the MathML3 specification for automatic line -breaking of displayed equations in its HTML-CSS output. This is -disabled by default, but can be enabled via the ``linebreaks`` section -of the ``HTML-CSS`` or ``SVG`` block of your configuration (see the -:ref:`automatic line breaking ` section for -details). Note that automatic line breaking only applies to displayed -equations, not in-line equations, unless they are themselves longer -than a line. The algorithm uses the nesting depth, the type of -operator, the size of spaces, and other factors to decide on the -breakpoints, but it does not know the meaning of the mathematics, and -may not choose the optimal breakpoints. We will continue to work on -the algorithm as we gain information from its actual use in the field. - - -New AsciiMath input jax and SVG output jax -========================================== - -MathJax currently processes math in either :term:`TeX` and -:term:`LaTeX` format, or :term:`MathML` notation; version 2.0 augments -that to include :term:`AsciiMath` notation (see `the ASCIIMathML -home page `_ -for details on this format). This is a notation that is easier for -students to use than TeX, and has been requested by the user -community. See the :ref:`AsciiMath support ` page -for details. - -In addition to the HTML-CSS and Native MathML output available in -v1.1, MathJax v2.0 includes an :term:`SVG`-based output jax. This should -prove to be more reliable than the HTML-CSS output, as it avoids some -CSS, web-font, and printing issues that the HTML-CSS output suffers -from, and it currently has no browser-dependent code. The SVG mode -even works in some ebook readers (like Apple iBooks and Calibre). See -the :ref:`output formats ` documentation for details. - - -New combined configuration files -================================ - -Pre-defined configuration files that include the AsciiMath and SVG -processors are now available with MathJax v2.0. These include -``AM_HTMLorMML``, ``TeX-AMS-MML_SVG``, and ``TeX-MML-AM_HTMLorMML``. -See the :ref:`common configurations ` section for details. - - -MathJax contextual menu now available on mobile devices -======================================================= - -MathJax v2.0 provides access to its contextual menu in mobile devices -that are based on the WebKit (Safari) and Gecko (Firefox) engines. -For Mobile Firefox, the menu is accessed by a tap-and-hold on any -expression rendered by MathJax (this is Mobile Firefox's standard -method of triggering a contextual menu). In Mobile Safari, use a -double-tap-and-hold (you may need to zoom in a bit to be able to -accomplish this). This is the first step toward providing a better -interface for mobile devices. - - -Improved support for screen readers -=================================== - -Some issues surrounding the use of screen readers and their -interaction with MathPlayer have been resolved in MathJax v2.0. In -particular, there are additional menu items that allow the user finer -control over some aspects of MathJax's interface that were interfering -with some screen readers' ability to properly identify the -mathematics. Several stability issues with MathPlayer have also been -addressed. In Internet Explorer when MathPlayer is installed, there -is now a new contextual menu item to allow you to specify what events -are handled by MathJax and what should be handled by MathPlayer. This -gives you finer control over MathPlayer's interaction with some screen -readers. - - -Many new TeX additions and enhancements -======================================= - -* New `mhchem` chemistry extension (adds ``\ce``, ``\cf``, and ``\cee`` macros) - -* New `cancel` extension (adds ``\cancel``, ``\bcancel``, ``\xcancel``, and ``\cancelto`` macros) - -* New `extpfeil` extension (adds more stretchy arrows) - -* New `color` extension (makes ``\color`` work as a switch, as in LaTeX). - Adds ``\definecolor``, other color models, LaTeX named colors, - ``\colorbox``, ``\fcolorbox``, etc. - -* New `begingroup` extension to allow macro definitions to be - localized. Adds ``\begingroup`` and ``\endgroup`` for isolating macro - declarations, and defines ``\let``, ``\renewenvironment``, ``\global``, and - ``\gdef``. - -* New `enclose` extension to give TeX access to ```` elements. - Adds ``\enclose{type}[attributes]{math}`` macro. - -* New `action` extension to give TeX access to ```` elements. - Adds ``\mathtip{math}{tip}``, ``\texttip{math}{tip}``, and - ``\toggle{math1}{math2}...\endtoggle`` macros. - -* New ``\mmToken{type}[attributes]{text}`` macro for producing ````, - ````, ````, and other token MathML elements directly. - -* New ``\bbox[color;attributes]{math}`` macro to add background color, - padding, borders, etc. - -* New ``\middle`` macro for stretchy delimiters between ``\left`` and ``\right``. - -* New ``\label``, ``\ref``, and ``\eqref`` macros for numbered equations. - -* Better implementation of ``\not`` so it produces proper MathML when possible. - -* Better implementation of ``\dots`` that selects ``\ldots`` or ``\cdots`` - depending on the context. - -* Better implementation of ``\cases`` that automatically uses ``\text`` on - the second entry in each row. - -* Safer implementation of ``\require`` that only allows loading from - extensions directory. - -* Allow ``\newcomand`` to provide a default parameter. - -* Allow ``\\`` to take an optional argument that specifies additional - space between lines. - -* Allow ``\\`` to be used anywhere (to force a line break), not just in - arrays. - -* Allow optional alignment parameter for array, aligned, and gathered - environments. - -See the :ref:`TeX support ` page for details on these -extensions and macros. - - -Font enhancements -================= - -* Work around for the OS X Lion STIX font problem. - -* Support for STIX-1.1 fonts (detection of which version you have, - and use data appropriate for that). - -* New WOFF versions of the web fonts (smaller, so faster to - download). - -* Data for more stretchy characters in HTML-CSS output. - -* Add support for Unicode planes 1 through 10 (not just the Math - Alphabet block) in HTML-CSS output. - -* Increased timeout for web fonts (since it was switching to image - fonts too often, especially for mobile devices). - -* Only switch to image fonts if the first web font fails to load (if - we can access one, assume we can access them all). - -* Allow ```` elements to use the page font rather than MathJax - fonts (optionally). This is controlled by the ``mtextFontInerhit`` - configuration parameter for HTML-CSS and SVG output jax. - -* Provide better control over the font used for characters that are - not in the MathJax fonts. - -* Allow Firefox to use web-based fonts when a local URL uses MathJax - from the CDN (in the past it would force image fonts when that was - not necessary). - - -Interface improvements -====================== - -* The MathJax contextual menu has been reorganized to make it easier - to get the source view, and to control the parameters for - MathPlayer in IE. - -* The MathJax contextual menu is available in mobile devices (see - description above). - -* Warning messages are issued if you switch renderers to one that is - inappropriate for your browser. - -* MathJax now starts processing the page on the ``DOMContentLoaded`` - event rather than the page ``onload`` event (this allows the - mathematics to appear sooner). - -* Native MathML output is now scaled to better match the surrounding - font (like it is for HTML-CSS output). - -* Better CSS styling for NativeMML output in Firefox in order to - handle ``\cal`` and other fonts. - -* MathML output now (optionally) includes class names to help mark - special situations generated by the TeX input jax. (This lets the - MathML from the Show Source menu item better reproduce the original - TeX output.) - -* MathJax now loads the menu and zoom code (if they haven't been - loaded already) after the initial typesetting has occured so that - they will be available immediately when a user needs those - features, but do not delay the initial typesetting of the - mathematics. - -* For the `tex2jax` preprocessor, the ``processClass`` can now be - used to override the ``skipTags`` to force a tag that is usually - skipped to have its contents be processed. - -* The `noErrors` and `noUndefined` extensions can now be disabled via - a configuration option (since they are included in many of the - combined configuration files). See the `noErrors` and - `noUndefined` sections of the :ref:`TeX support - ` page for more information. - -* There is a new :meth:`MathJax.Hub.setRenderer()` function that can - be used to switch the current renderer. See the :ref:`MathJax Hub - API ` documentation for details. - -* A user-defined macros is no longer overridden if an extension is - loaded that redefines that macro. - -* Improved web-font detection reliability. - - -.. _important-changes-2.0: - -Important changes from previous versions -======================================== - -* The default renderer for Firefox has been changed from `NativeMML` to - `HTML-CSS` (in those configurations that choose between the two). - The only browser that defaults to `NativeMML` is now IE with - MathPlayer installed. You can configure this to your liking using - the :ref:`MMLorHTML configuration options `. - -* `NativeMML` output will now be selected in IE9 when MathPlayer is - present (since IE9 was released the same day as MathJax v1.1a, and - there had been problems with IE9 beta releases, we weren't sure if - MathPlayer would work with the official release, and so did not - select NativeMML by default.) - -* The performance improvements in IE8 and IE9 now make it unnecessary - to use a ```` tag to force IE7 emulation mode. In fact IE9 in - IE9 standards mode now runs faster than IE9 in IE7 standards mode, - and IE8 in IE8 standards mode is comparable to IE8 in IE7 standards - mode. We now recommend that you use - - .. code-block:: html - - - - to obtain the highest emulation mode available in IE, which - will be the fastest one for MathJax 2.0. - -* The `tex2jax` preprocessor now balances braces when looking for the - closing math delimiter. That allows expressions like - - .. code-block:: latex - - $y = x^2 \hbox{ when $x > 2$}$ - - to be properly parsed as a single math expression rather than two - separate ones with unbalanced braces. The old behavior can be - obtained by setting ``balanceBraces`` to false in the ``tex2jax`` - block of your configuration. (See the :ref:`tex2jax configuration - options ` for details.) - -* If you are hosting your own copy of MathJax on your server, and - that copy is being used from pages in a different domain, you will - have set up the access control paramters for the font directory to - allow Firefox to access the font files properly. Since MathJax 2.0 - includes fonts in WOFF format, you will need to include ``woff`` in - you access control declaration for the fonts. E.g., use - :: - - - - Header set Access-Control-Allow-Origin "*" - - - - in the ``.htaccess` file for the ``Mathjax/fonts`` directory if you - are using the Apache web server. See :ref:`Notes about shared - installations ` for details. - -* The ``\cases`` macro now properly places the second column in text - mode not math mode. In the past, one needed to use ``\text`` in - the second column to achieve the proper results; pages that did - this will still work properly in v2.0. Pages that took advantage - of the math mode in the second column will need to be adjusted. - -* The ``\dots`` macro now produces ``\ldots`` or ``\cdots`` depending - on the context (in the past, ``\dots`` always produced ``\ldots``). - -* A one pixel padding has been added above and below HTML-CSS and SVG - output so that math on successive lines of a paragraph won't bump - into each other. - -* There is a new `MathPlayer` submenu of the `Math Settings` menu in - the MathJax contextual menu that allows the user to control what - events are passed on to MathPlayer. This allows better control for - those using assistive devices like screen readers. When menu - events are being passed on to MathPlayer, the MathJax menu can be - obtained by ALT-clicking on a typeset expression (so the user can - still access MathJax's other features). - -* In order to improve stability with IE when MathPlayer is installed, - MathJax now adds the namespace and object bindings that are needed - for MathPlayer at the time that Mathjax is first loaded, rather - than waiting for the `NativeMML` output jax to be loaded. Since - this is before the configuration information has been obtained, - this will happen regardless of whether the `NativeMML` output jax - is requested. This means that IE may ask the user to allow - MathPlayer to be used, and may show the MathPlayer splash dialog - even when MathPlayer is not in the end used by MathJax. Note that - this setup can only be performed if MathJax is loaded explicitly as - part of the initial web page; if it is injected into the page later - by adding a `` - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Ajax Object

-

The MathJax.Ajax structure holds the data and functions for handling -loading of external modules. Modules are loaded only once, even if -called for in several places. The loading of files is asynchronous, -and so the code that requests an external module will continue to run -even when that module has not completed loading, so it is important to -be aware of the timing issues this may cause. Similarly, creating or -loading stylesheets is an asynchronous action. In particular, all -actions that rely on the file or stylesheet having been loaded must be -delayed until after the file has been downloaded completely. This is -the reason for the large number of routines that take callback -functions.

-

Any operation that could cause the loading of a file or stylesheet -must be synchronized with the rest of the code via such callbacks. -Since processing any mathematics might cause files to be loaded (e.g., -little-used markup might be implemented in an extension that is loaded -only when that markup is used), any code that dynamically typesets -mathematics will need to be structured to use callbacks to guarantee -that the mathematics has been completely processed before the code -tries to use it. See the Synchronizing with MathJax -documentation for details on how to do this properly.

-
-

Properties

-
-
-timeout
-

Number of milliseconds to wait for a file to load before -it is considered to have failed to load.

-

Default: 15 seconds

-
- -
-
-STATUS.OK
-

The value used to indicate that a file load has occurred -successfully.

-
- -
-
-STATUS.ERROR
-

The value used to indicate that a file load has caused an error or -a timeout to occur.

-
- -
-
-loaded
-

An object containing the names of the files that have been loaded (or -requested) so far. MathJax.Ajax.loaded["file"] will be -non-null when the file has been loaded, with the value being -the MathJax.Ajax.STATUS value of the load attempt.

-
- -
-
-loading
-

An object containing the files that are currently loading, the -callbacks that are to be run when they load or timeout, and -additional internal data.

-
- -
-
-loadHooks
-

An object containing the load hooks for the various files, set up by -the LoadHook() method, or by the -MathJax.Hub.Register.LoadHook() method.

-
- -
-
-

Methods

-
-
-Require(file[, callback])
-

Loads the given file if it hasn’t been already. The file must be a -JavaScript file or a CSS stylesheet; i.e., it must end in .js -or .css. Alternatively, it can be an object with a single -key:value pair where the key is one of js or css and -the value is the file of that type to be loaded (this makes it -possible to have the file be created by a CGI script, for example, -or to use a data:: URL). The file must be relative to the -MathJax home directory and can not contain ../ file path -components.

-

When the file is completely loaded and run, the callback, if -provided, will be executed passing it the status of the file load. -If there was an error while loading the file, or if the file fails -to load within the time limit given by MathJax.Ajax.timout, -the status will be MathJax.Ajax.STATUS.ERROR otherwise it -will be MathJax.Ajax.STATUS.OK. If the file is already -loaded, the callback will be called immediately and the file will -not be loaded again.

- --- - - - - - -
Parameters :
    -
  • file — name of the file to be loaded
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Load(file[, callback])
-

Used internally to load a given file without checking if it -already has been loaded, or where it is to be found.

- --- - - - - - -
Parameters :
    -
  • file — name of the file to be loaded
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-loadComplete(file)
-

Called from within the loaded files to inform MathJax that the -file has been completely loaded and initialized. The file -parameter is the name of the file that has been loaded. This -routine will cause any callback functions registered for the file -or included in the MathJax.Ajax.Require() calls to be -executed, passing them the status of the load -(MathJax.Ajax.STATUS.OK or MathJax.Ajax.STATUS.ERROR) as -their last parameter.

- --- - - - - - -
Parameters :
    -
  • file — name of the file that has been loaded
  • -
-
Returns :

null

-
-
- -
-
-loadTimeout(file)
-

Called when the timeout period is over and the file hasn’t loaded. -This indicates an error condition, and the -MathJax.Ajax.loadError() method will be executed, then the -file’s callback will be run with MathJax.Ajax.STATUS.ERROR as -its parameter.

- --- - - - - - -
Parameters :
    -
  • file — name of the file that timed out
  • -
-
Returns :

null

-
-
- -
-
-loadError(file)
-

The default error handler called when a file fails to load. It -puts a warning message into the MathJax message box on screen.

- --- - - - - - -
Parameters :
    -
  • file — the name of the file that failed to load
  • -
-
Returns :

null

-
-
- -
-
-LoadHook(file, callback)
-

Registers a callback to be executed when the given file is -loaded. The file load operation needs to be started when this -method is called, so it can be used to register a hook for a file -that may be loaded in the future.

- --- - - - - - -
Parameters :
    -
  • file — the name of the file to wait for
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Preloading(file1[, file2...])
-

Used with combined configuration files to indicate what files are -in the configuration file. Marks the files as loading (since there -will never be an explicit Load() or Require() call for -them), so that load-hooks and other load-related events can be -properly processed when the loadComplete() occurs.

- --- - - - - - -
Parameters :
    -
  • file1, file2, ... — the names of the files in the combined file
  • -
-
Returns :

null

-
-
- -
-
-Styles(styles[, callback])
-

Creates a stylesheet from the given style data. styles can -either be a string containing a stylesheet definition, or an -object containing a CSS Style Object. -For example:

-
MathJax.Ajax.Styles("body {font-family: serif; font-style: italic}");
-
-
-

and

-
MathJax.Ajax.Styles({
-  body: {
-    "font-family": "serif",
-    "font-style":  "italic"
-  }
-});
-
-
-

both set the body font family and style.

-

The callback routine is called when the stylesheet has been -created and is available for use.

- --- - - - - - -
Parameters :
    -
  • styles — CSS style object for the styles to set
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
-

Note

-

Internet Explorer has a limit of 32 dynamically created -stylesheets, so it is best to combine your styles into one -large group rather than making several smaller calls.

-
-
- -
-
-fileURL(file)
-

Returns a complete URL to a file (replacing [MathJax] with the -actual root URL location).

- --- - - - - - -
Parameters :
    -
  • file — the file name possibly including [MathJax]
  • -
-
Returns :

the full URL for the file

-
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Hub Object

-

Next topic

-

The MathJax.Message Object

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/callback.html b/docs/html/api/callback.html deleted file mode 100644 index 9c5531956..000000000 --- a/docs/html/api/callback.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - The MathJax.Callback Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Callback Class

-

The MathJax.Callback object is one of the key mechanisms used by -MathJax to synchronize its actions with those that occur -asynchronously, like loading files and stylesheets. A Callback -object is used to tie the execution of a function to the completion of -an asynchronous action. See Synchronizing with MathJax for more details, and Using Callbacks in particular for examples of how to specify and -use MathJax Callback objects.

-
-

Specifying a callback

-

When a method includes a callback as one of its arguments, that -callback can be specified in a number of different ways, depending on -the functionality that is required of the callback. The easiest case -is to simply provide a function to be called, but it is also possible -to include data to pass to the function when it is executed, and even -the object that will be used as the javascript this object when the -function is called.

-

Most functions that take callbacks as arguments accept a callback -specification rather than an actual callback object, though you can -use the MathJax.Callback() function to convert a callback -specification into a Callback object if needed.

-

A callback specification is any one of the following:

-
-
-
-fn
-

A function that is to be called when the callback is executed. -No additional data is passed to it (other than what it is -called with at the time the callback is executed), and this -will be the window object.

-
- -
-
-[fn]
-

An array containing a function to be called when the callback -is executed (as above).

-
- -
-
-[fn, data...]
-

An array containing a function together with data to be passed -to that function when the callback is executed; this is still -the window object. For example,

-
[function (x,y) {return x+y}, 2, 3]
-
-
-

would specify a callback that would pass 2 and 3 to -the given function, and it would return their sum, 5, when -the callback is executed.

-
- -
-
-[object, fn]
-

An array containing an object to use as this and a function to -call for the callback. For example,

-
[{x:'foo', y:'bar'}, function () {this.x}]
-
-
-

would produce a callback that returns the string "foo" -when it is called.

-
- -
-
-[object, fn, data...]
-

Similar to the previous case, but with data that is passed to -the function as well.

-
- -
-
-["method", object]
-

Here, object is an object that has a method called method, and -the callback will execute that method (with the object as -this) when it is called. For example,

-
["toString",[1,2,3,4]]
-
-
-

would call the toString method on the array [1,2,3,4] when -the callback is called, returning 1,2,3,4.

-
- -
-
-["method", object, data...]
-

Similar to the previous case, but with data that is passed to -the method. E.g.,

-
["slice",[1,2,3,4],1,3]
-
-
-

would perform the equivalent of [1,2,3,4].slice(1,3), -which returns the array [2,3] as a result.

-
- -
-
-{hook: fn, data: [...], object: this}
-

Here the data for the callback are given in an associative -array of key:value pairs. The value of hook is the -function to call, the value of data is an array of the -arguments to pass to the function, and the value of object -is the object to use as this in the function call. The -specification need not include all three key:value pairs; any -that are missing get default values (a function that does -nothing, an empty array, and the window object, respectively).

-
- -
-
-"string"
-

This specifies a callback where the string is executed via an -eval() statement. The code is run in the global context, -so any variables or functions created by the string become -part of the global namespace. The return value is the value of -the last statement executed in the string.

-
- -
-
-

Executing a Callback Object

-

The Callback object is itself a function, and calling that function -executes the callback. You can pass the callback additional -parameters, just as you can any function, and these will be added to -the callback function’s argument list following any data that was -supplied at the time the callback was created. For example

-
var f = function (x,y) {return x + " and " +y}
-var cb = MathJax.Callback([f, "foo"]);
-var result = cb("bar");  // sets result to "foo and bar"
-
-
-

Usually, the callback is not executed by the code that creates it (as -it is in the example above), but by some other code that runs at a -later time at the completion of some other activity (say the loading -of a file), or in response to a user action. For example:

-
function f(x) {alert("x contains "+x)};
-function DelayedX(time) {
-    var x = "hi";
-    setTimeout(MathJax.Callback([f, x], time));
-}
-
-
-

The DelayedX function arranges for the function f to be called at -a later time, passing it the value of a local variable, x. Normally, -this would require the use of a closure, but that is not needed when a -MathJax.Callback object is used.

-
-
-
-

Callback Object Properties

-
-
-hook
-

The function to be called when the callback is executed.

-
- -
-
-data
-

An array containing the arguments to pass to the callback -function when it is executed.

-
- -
-
-object
-

The object to use as this during the call to the callback -function.

-
- -
-
-called
-

Set to true after the callback has been called, and undefined -otherwise. A callback will not be executed a second time unless -the callback’s reset() method is called first, or its -autoReset property is set to true.

-
- -
-
-autoReset
-

Set this to true if you want to be able to call the callback -more than once. (This is the case for signal listeners, for example).

-
- -
-
-isCallback
-

Always set to true (used to detect if an object is a callback -or not).

-
- -
-
-

Callback Object Methods

-
-
-reset()
-

Clears the callback’s called property.

-
- -
-
-

MathJax.Callback Methods

-
-
-Delay(time[, callback])
-

Waits for the specified time (given in milliseconds) and then -performs the callback. It returns the Callback object (or a blank -one if none was supplied). The returned callback structure has a -timeout property set to the result of the setTimeout() call -that was used to perform the wait so that you can cancel the wait, -if needed. Thus MathJax.Callback.Delay() can be used to -start a timeout delay that executes the callback if an action -doesn’t occur within the given time (and if the action does occur, -the timeout can be canceled). Since -MathJax.Callback.Delay() returns a callback structure, it -can be used in a callback queue to insert a delay between queued -commands.

- --- - - - - - -
Parameters :
    -
  • time — the amount of time to wait
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Queue([callback, ...])
-

Creates a MathJax.CallBack.Queue object and pushes the given -callbacks into the queue. See Using Queues -for more details about MathJax queues.

- --- - - - - - -
Parameters :
    -
  • callback — one or more callback specifications
  • -
-
Returns :

the Queue object

-
-
- -
-
-Signal(name)
-

Looks for a named signal, creates it if it doesn’t already exist, -and returns the signal object. See -Using Signals for more details.

- --- - - - - - -
Parameters :
    -
  • name — name of the signal to get or create
  • -
-
Returns :

the Signal object

-
-
- -
-
-ExecuteHooks(hooks[, data[, reset]])
-

Calls each callback in the hooks array (or the single hook if it -is not an array), passing it the arguments stored in the data -array. If reset is true, then the callback’s -reset() method will be called before each hook is -executed. If any of the hooks returns a Callback object, then -it collects those callbacks and returns a new callback that will -execute when all the ones returned by the hooks have been -completed. Otherwise, MathJax.Callback.ExecuteHooks() -returns null.

- --- - - - - - -
Parameters :
    -
  • hooks — array of hooks to be called, or a hook
  • -
  • data — array of arguments to pass to each hook in turn
  • -
  • resettrue if the reset() method should be called
  • -
-
Returns :

callback that waits for all the hooks to complete, or null

-
-
- -
-
-Hooks(reset)
-

Creates a prioritized list of hooks that are called in order based -on their priority (low priority numbers are handled first). This -is meant to replace MathJax.Callback.ExecuteHooks() and is -used internally for signal callbacks, pre- and post-filters, and -other lists of callbacks.

- --- - - - - - -
Parameters :
    -
  • resettrue if callbacks can be called more than once
  • -
-
Returns :

the Hooks object

-
-

The list has the following methods:

-
-
-Add(hook[, priority])
-

Add a callback to the prioritized list. If priority is -not provided, the default is 10. The hook is a Callback -specification as described above.

- --- - - - - - -
Parameters :
    -
  • hook — callback specification to add to the list
  • -
  • priority — priority of the hook in the list (default: 10)
  • -
-
Returns :

the callback object being added

-
-
- -
-
-Remove(hook)
-

Remove a given hook (as returned from Add() above) -from the prioritized list.

- --- - - - - - -
Parameters :
    -
  • hook — the callback to be removed
  • -
-
Returns :

null

-
-
- -
-
-Execute()
-

Execute the list of callbacks, resetting them if requested. -If any of the hooks return callbacks, then Execute() -returns a callback that will be executed when they all have -completed.

- --- - - - -
Returns :a callback object or null
-
- -
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.HTML Object

-

Next topic

-

The MathJax.Callback.Queue Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/elementjax.html b/docs/html/api/elementjax.html deleted file mode 100644 index 381bf3003..000000000 --- a/docs/html/api/elementjax.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - - - - - The MathJax.ElementJax Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.ElementJax Class

-

The element jax is the bridge between the input and output jax, and -contains the data produced by the input jax needed by the output jax -to display the results. It is tied to the individual <script> tag -that produced it, and is the object used by JavaScript programs to -interact with the mathematics on the page.

-

An element jax is stored in the jax.js file in a subdirectory of -the jax/element directory, with the subdirectory name being the -name of the element jax. Currently, there is only one element jax -class, the mml element jax, and it is stored in jax/element/mml.

-

The MathJax.ElementJax class is a subclass of the MathJax Jax class, and inherits the properties and methods of that -class. Those listed below are the additional or overridden ones from -that class.

-
-

Class Properties

-
-
-id
-

The name of the jax.

-
- -
-
-version
-

The version number of the jax.

-
- -
-
-directory
-

The directory where the jax files are stored (e.g., "[MathJax]/jax/element/mml").

-
- -
-
-

Instance Properties

-
-
-inputJax
-

The name of the input jax that created the element.

-
- -
-
-outputJax
-

The name of the output jax that has processed this element.

-
- -
-
-inputID
-

The DOM id of the <script> tag that generated this element -(if it doesn’t have one initially, the MathJax hub will supply -one). Note that this is not a reference to the element itself; -that element will have a reference to this element jax, and if -inputID were a reference back, that would cause a reference -loop, which some browsers would not free properly during trash -collection, thus causing a memory leak.

-
- -
-
-originalText
-

A string indicating the original input text that was processed for -this element. (In the future, this may be managed by the input jax -rather than MathJax.Hub.)

-
- -
-
-mimeType
-

The MIME-type of the element jax (jax/mml in the case of an -mml element jax).

-
- -

Other data specific to the element jax subclass may also appear here.

-
-
-

Methods

-
-
-Text(text[, callback])
-

Sets the input text for this element to the given text and -reprocesses the mathematics. (I.e., updates the equation to the -new one given by text). When the processing is complete, the -callback, if any, is called.

- --- - - - - - -
Parameters :
    -
  • text — the new mathematics source string for the element
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Rerender([callback])
-

Removes the output and produces it again (for example, if CSS has -changed that would alter the spacing of the mathematics). Note -that the internal representation isn’t regenerated; only the -output is. The callback, if any, is called when the process -completes.

- --- - - - - - -
Parameters :
    -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Reprocess([callback])
-

Removes the output and then retranslates the input into the -internal form and reredners the output again. The callback, if -any, is called when the process completes.

- --- - - - - - -
Parameters :
    -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Remove()
-

Removes the output for this element from the web page (but does -not remove the original <script>). The <script> will be -considered unprocessed, and the next call to -MathJax.hub.Typeset() will re-display it.

- --- - - - -
Returns :null
-
- -
-
-SourceElement()
-

Returns a reference to the original <script> DOM element -associated to this element jax.

- --- - - - -
Returns :the <script> element
-
- -
-
-needsUpdate()
-

Indicates whether the mathematics has changed so that its output -needs to be updated.

- --- - - - -
Returns :true if the mathematics needs to be reprocessed, -false otherwise
-
- -

Output jax may add new methods to the base element jax class to -perform exporting to other formats. For example, a MathML output jax -could add toMathML(), or an accessibility output jax could add -toAudible(). These could be made available via the MathJax -contextual menu.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.OutputJax Class

-

Next topic

-

The Base Jax Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/html.html b/docs/html/api/html.html deleted file mode 100644 index a77f5b5ba..000000000 --- a/docs/html/api/html.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - - The MathJax.HTML Object — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.HTML Object

-

The MathJax.HTML object provides routines for creating HTML -elements and adding them to the page, and in particular, it contains -the code that processes MathJax’s HTML snippets -and turns them into actual DOM objects. It also implements the -methods used to manage the cookies used by MathJax.

-
-

Properties

-
-
-Cookie.prefix: "mjx"
-

The prefix used for names of cookies stored by MathJax.

-
- -
-
-Cookie.expires: 365
-

The expiration time (in days) for cookies created by MathJax.

-
- -
-
-

Methods

-
-
-Element(type[, attributes[, contents]])
-

Creates a DOM element of the given type. If attributes is -non-null, it is an object that contains key:value pairs of -attributes to set for the newly created element. If contents is -non-null, it is an HTML snippet that -describes the contents to create for the element. For example

-
var div = MathJax.HTML.Element(
-  "div",
-  {id: "MathDiv", style:{border:"1px solid", padding:"5px"}},
-  ["Here is math: \\(x+1\\)",["br"],"and a display $$x+1\\over x-1$$"]
-);
-
-
- --- - - - - - -
Parameters :
    -
  • type — node type to be created
  • -
  • attributes — object specifying attributes to set
  • -
  • contents — HTML snippet representing contents of node
  • -
-
Returns :

the DOM element created

-
-
- -
-
-addElement(parent, type[, attributes[, content]])
-

Creates a DOM element and appends it to the parent node -provided. It is equivalent to

-
parent.appendChild(MathJax.HTML.Element(type,attributes,content))
-
-
- --- - - - - - -
Parameters :
    -
  • parent — the node where the element will be added
  • -
  • attributes — object specifying attributes to set
  • -
  • contents — HTML snippet representing contents of node
  • -
-
Returns :

the DOM element created

-
-
- -
-
-TextNode(text)
-

Creates a DOM text node with the given text as its content.

- --- - - - - - -
Parameters :
    -
  • text — the text for the node
  • -
-
Returns :

the new text node

-
-
- -
-
-addText(parent, text)
-

Creates a DOM text node with the given text and appends it to the -parent node.

- --- - - - - - -
Parameters :
    -
  • parent — the node where the text will be added
  • -
  • text — the text for the new node
  • -
-
Returns :

the new text node

-
-
- -
-
-setScript(script, text)
-

Sets the contents of the script element to be the given -text, properly taking into account the browser limitations and -bugs.

- --- - - - - - -
Parameters :
    -
  • script — the script whose content is to be set
  • -
  • text — the text that is to be the script’s new content
  • -
-
Returns :

null

-
-
- -
-
-getScript(script)
-

Gets the contents of the script element, properly taking into -account the browser limitations and bugs.

- --- - - - - - -
Parameters :
    -
  • script — the script whose content is to be retrieved
  • -
-
Returns :

the text of the script

-
-
- -
-
-Cookie.Set(name,data)
-

Creates a MathJax cookie using the MathJax.HTML.Cookie.prefix -and the name as the cookie name, and the key:value pairs in -the data object as the data for the cookie. For example,

-
MathJax.HTML.Cookie.Set("test",{x:42, y:"It Works!"});
-
-
-

will create a cookie named “mjx.test” that stores the values of -x and y provided in the data object. This data can be -retrieved using the MathJax.HTML.Cookie.Get() method -discussed below.

- --- - - - - - -
Parameters :
    -
  • name — the name that identifies the cookie
  • -
  • data — object containing the data to store in the cookie
  • -
-
Returns :

null

-
-
- -
-
-Cookie.Get(name[,obj])
-

Looks up the data for the cookie named name and merges the data -into the given obj object, or returns a new object containing -the data. For instance, given the cookie stored by the example -above,

-
var data = MathJax.HTML.Cookie.Get("test");
-
-
-

would set data to {x:42, y:"It Works!"}, while

-
var data = {x:10, z:"Safe"};
-MathJax.HTML.Cookie.Get("test",data);
-
-
-

would leave data as {x:42, y:"It Works!", z:"Safe"}.

-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Message Object

-

Next topic

-

The MathJax.Callback Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/hub.html b/docs/html/api/hub.html deleted file mode 100644 index 90f03679d..000000000 --- a/docs/html/api/hub.html +++ /dev/null @@ -1,789 +0,0 @@ - - - - - - - - The MathJax.Hub Object — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Hub Object

-

The MathJax Hub, MathJax.Hub, is the main control structure for -MathJax. It is where input and output jax are tied together, -and it is what handles processing of the MathJax <script> tags. -Processing of the mathematics on the page may require external files -to be loaded (when the mathematics includes less common functionality, -for example, that is defined in an extension file), and since file -loading is asynchronous, a number of the methods below may return -before their actions are completed. For this reason, they include -callback functions that are called when the action completes. These -can be used to synchronize actions that require the mathematics to be -completed before those actions occur. See the Using Callbacks documentation for more details.

-
-

Properties

-
-
-config: { ... }
-

This holds the configuration parameters for MathJax. Set these -values using MathJax.Hub.Config() described below. The -options and their default values are given in the Core -Options reference page.

-
- -
-
-processUpdateTime: 250
-

The minimum time (in milliseconds) between updates of the -“Processing Math” message. After this amount of time has passed, -and after the next equation has finished being processed, -MathJax will stop processing momentarily so that the update -message can be displayed, and so that the browser can handle user -interaction.

-
- -
-
-processUpdateDelay: 10
-

The amount of time (in milliseconds) that MathJax pauses after -issuing its processing message before starting the processing again -(to give browsers time to handle user interaction).

-
- -
-
-signal
-

The hub processing signal (tied to the -MathJax.Hub.Register.MessageHook() method).

-
- -
-
-queue
-

MathJax’s main processing queue. Use MathJax.Hub.Queue() to push -callbacks onto this queue.

-
- -
-
-Browser
-

The name of the browser as determined by MathJax. It will be one -of Firefox, Safari, Chrome, Opera, MSIE, -Konqueror, or unkown. This is actually an object with -additional properties and methods concerning the browser:

-
-
-version
-

The browser version number, e.g., "4.0"

-
- -
-
-isMac and isPC
-

These are boolean values that indicate whether the browser is -running on a Macintosh computer or a Windows computer. They -will both be false for a Linux computer.

-
- -
-
-isMobile
-

This is true when MathJax is running a mobile version of a -WebKit or Gecko-based browser.

-
- -
-
-isFirefox, isSafari, isChrome, isOpera, isMSIE, isKonqueror
-

These are true when the browser is the indicated one, and -false otherwise.

-
- -
-
-versionAtLeast(version)
-

This tests whether the browser version is at least that given -in the version string. Note that you can not simply do a -numeric comparison, as version 4.10 should be considered later -than 4.9, for example. Similarly, 4.10 is different from 4.1, -for instance.

-
- -
-
-Select(choices)
-

This lets you perform browser-specific functions. Here, -choices is an object whose properties are the names of the -browsers and whose values are the functions to be performed. -Each function is passed one parameter, which is the -MathJax.Hub.Browser object. You do not need to include -every browser as one of your choices — only those for which you -need to do special processing. For example:

-
MathJax.Hub.Browser.Select(
-  MSIE: function (browser) {
-    if (browser.versionAtLeast("8.0")) {... do version 8 stuff ... }
-    ... do general MSIE stuff ...
-  },
-
-  Firefox: function (browser) {
-    if (browser.isMac) {... do Mac stuff ... }
-    ... do general Firefox stuff
-  }
-);
-
-
-
- -
- -
-
-inputJax
-

An object storing the MIME types associated with the various -registered input jax (these are the types of the <script> tags -that store the math to be processed by each input jax).

-
- -
-
-outputJax
-

An object storing the output jax associate with the various -element jax MIME types for the registered output jax.

-
- -
-
-

Methods

-
-
-Config(options)
-

Sets the configuration options (stored in MathJax.Hub.config) -to the values stored in the options object. See -Configuring MathJax for details on how this -is used and the options that you can set.

- --- - - - - - -
Parameters :
    -
  • options — object containing options to be set
  • -
-
Returns :

null

-
-
- -
-
-Configured()
-

When delayStartupUntil is specified in the configuration file or -in the script that loads MathJax.js, MathJax’s startup sequence is -delayed until this routine is called. See Configuring MathJax for details on how this is used.

- --- - - - -
Returns :null
-
- -
-
-Register.PreProcessor(callback)
-

Used by preprocessors to register themselves with MathJax so that -they will be called during the MathJax.Hub.PreProcess() -action.

- --- - - - - - -
Parameters :
    -
  • callback — the callback specification for the preprocessor
  • -
-
Returns :

null

-
-
- -
-
-Register.MessageHook(type,callback)
-

Registers a listener for a particular message being sent to the -hub processing signal (where PreProcessing, Processing, and -New Math messages are sent). When the message equals the -type, the callback will be called with the message as its -parameter.

- --- - - - - - -
Parameters :
    -
  • type — a string indicating the message to look for
  • -
  • callback — a callback specification
  • -
-
Returns :

null

-
-
- -
-
-Register.StartupHook(type,callback)
-

Registers a listener for a particular message being sent to the -startup signal (where initialization and component startup -messages are sent). When the message equals the type, the -callback will be called with the message as its parameter. -See the Using Signals documentation for -more details.

- --- - - - - - -
Parameters :
    -
  • type — a string indicating the message to look for
  • -
  • callback — a callback specification
  • -
-
Returns :

null

-
-
- -
-
-Register.LoadHook(file,callback)
-

Registers a callback to be called when a particular file is -completely loaded and processed. (The callback is called when the -file makes its MathJax.Ajax.loadComplete() call.) The -file should be the complete file name, e.g., -"[MathJax]/config/default.js".

- --- - - - - - -
Parameters :
    -
  • file — the name of the file to wait for
  • -
  • callback — a callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Queue(callback, ...)
-

Pushes the given callbacks onto the main MathJax command queue. -This synchronizes the commands with MathJax so that they will be -performed in the proper order even when some run asynchronously. -See Using Queues for more details about how -to use queues, and the MathJax queue in particular. You may -supply as many callback specifications in one call to the -Queue() method as you wish.

- --- - - - - - -
Parameters :
    -
  • callback — a callback specification
  • -
-
Returns :

the callback object for the last callback added to the queue

-
-
- -
-
-Typeset([element[, callback]])
-

Calls the preprocessors on the given element (or elements if it is an -array of elements), and then typesets any math elements within the -element. If no element is provided, the whole document is processed. -The element is either the DOM id of the element, a reference to -the DOM element itself, or an array of id’s or refereneces. The -callback is called when the process is complete. See the -Modifying Math section for details of how to use -this method properly.

- --- - - - - - -
Parameters :
    -
  • element — the element(s) whose math is to be typeset
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-PreProcess([element[, callback]])
-

Calls the loaded preprocessors on the entire document, or on the given -DOM element (or elements, if it is an array of elements). The -element is either the DOM id of the element, a reference to the -DOM element itself, or an array of id’s or references. The callback -is called when the processing is complete.

- --- - - - - - -
Parameters :
    -
  • element — the element to be preprocessed
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Process([element[, callback]])
-

Scans either the entire document or a given DOM element (or array of -elements) for MathJax <script> tags and processes the math those -tags contain. The element is either the DOM id of the element to -scan, a reference to the DOM element itself, or an array of id’s or -references. The callback is called when the processing is complete.

- --- - - - - - -
Parameters :
    -
  • element — the element(s) to be processed
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Update([element[, callback]])
-

Scans either the entire document or a given DOM element (or elements if -it is an array of elements) for mathematics that has changed since the -last time it was processed, or is new, and typesets the mathematics -they contain. The element is either the DOM id of the element to -scan, a reference to the DOM element itself, or an array of id’s or -references. The callback is called when the processing is complete.

- --- - - - - - -
Parameters :
    -
  • element — the element(s) to be updated
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Reprocess([element[, callback]])
-

Removes any typeset mathematics from the document or DOM element -(or elements if it is an array of elements), and then processes -the mathematics again, re-typesetting everything. This may be -necessary, for example, if the CSS styles have changed and those -changes would affect the mathematics. Reprocess calls both the -input and output jax to completely rebuild the data for -mathematics. The element is either the DOM id of the element -to scan, a reference to the DOM element itself, or an array of -id’s or references. The callback is called when the processing -is complete.

- --- - - - - - -
Parameters :
    -
  • element — the element(s) to be reprocessed
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-Rerender([element[, callback]])
-

Removes any typeset mathematics from the document or DOM element -(or elements if it is an array of elements), and then renders the -mathematics again, re-typesetting everything from the current -internal version (without calling the input jax again). The -element is either the DOM id of the element to scan, a -reference to the DOM element itself, or an array of id’s or -references. The callback is called when the processing is -complete.

- --- - - - - - -
Parameters :
    -
  • element — the element(s) to be reprocessed
  • -
  • callback — the callback specification
  • -
-
Returns :

the callback object

-
-
- -
-
-getAllJax([element])
-

Returns a list of all the element jax in the document or a -specific DOM element. The element is either the DOM id of the -element, or a reference to the DOM element itself.

- --- - - - - - -
Parameters :
    -
  • element — the element to be searched
  • -
-
Returns :

array of element jax objects

-
-
- -
-
-getJaxByType(type[, element])
-

Returns a list of all the element jax of a given MIME-type in the -document or a specific DOM element. The element is either the -DOM id of the element to search, or a reference to the DOM -element itself.

- --- - - - - - -
Parameters :
    -
  • type — MIME-type of element jax to find
  • -
  • element — the element to be searched
  • -
-
Returns :

array of element jax objects

-
-
- -
-
-getJaxByInputType(type[, element])
-

Returns a list of all the element jax associated with input -<script> tags with the given MIME-type within the given DOM -element or the whole document. The element is either the DOM -id of the element to search, or a reference to the DOM element -itself.

- --- - - - - - -
Parameters :
    -
  • type — MIME-type of input (e.g., "math/tex")
  • -
  • element — the element to be searched
  • -
-
Returns :

array of element jax objects

-
-
- -
-
-getJaxFor(element)
-

Returns the element jax associated with a given DOM -element. If the element does not have an associated element jax, -null is returned. The element is either the DOM id of the -element, or a reference to the DOM element itself.

- --- - - - - - -
Parameters :
    -
  • element — the element whose element jax is required
  • -
-
Returns :

element jax object or null

-
-
- -
-
-isJax(element)
-

Returns 0 if the element is not a <script> that can be -processed by MathJax or the result of an output jax, returns -1 -if the element is an unprocessed <script> tag that could be -handled by MathJax, and returns 1 if the element is a processed -<script> tag or an element that is the result of an output jax.

- --- - - - - - -
Parameters :
    -
  • element — the element to inspect
  • -
-
Returns :

integer (-1, 0, 1)

-
-
- -
-
-setRenderer(renderer[, type])
-

Sets the output jax for the given element jax type (or jax/mml -if none is specified) to be the one given by renderer, which -must be the name of a renderer, such as NativeMML or -HTML-CSS. Note that this does not cause the math on the page -to be rerendered; it just sets the renderer for output in the -future (call :meth:Rerender() above to replace the current -renderings by new ones).

- --- - - - - - -
Parameters :
    -
  • renderer — the name of the output jax to use for rendering
  • -
  • type — the element jax MIME type whose renderer to set
  • -
-
Returns :

null

-
-
- -
-
-Insert(dst, src)
-

Inserts data from the src object into the dst object. The -key:value pairs in src are (recursively) copied into dst, so -that if value is itself an object, its content is copied into -the corresponding object in dst. That is, objects within src -are merged into the corresponding objects in dst (they don’t -replace them).

- --- - - - - - -
Parameters :
    -
  • dst — the destination object
  • -
  • src — the source object
  • -
-
Returns :

the modified destination object

-
-
- -
-
-formatError(script, error)
-

This is called when an internal error occurs during the processing -of a math element (i.e., an error in the MathJax code itself). -The script is a reference to the <script> tag where the -error occurred, and error is the Error object for the error. -The default action is to insert an HTML snippet at the location of -the script, but this routine can be overriden during MathJax -configuration in order to perform some other action. -MathJax.Hub.lastError holds the error value of the last -error on the page.

- --- - - - - - -
Parameters :
    -
  • script — the <script> tag causing the error
  • -
  • error — the Error object for the error
  • -
-
Returns :

null

-
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax variable

-

Next topic

-

The MathJax.Ajax Object

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/index.html b/docs/html/api/index.html deleted file mode 100644 index ff28f7b7a..000000000 --- a/docs/html/api/index.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - The MathJax API — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax API

-

The following links document the various components that make up -MathJax. These are implemented as JavaScript objects contained within -the single global variable, MathJax. Although JavaScript includes -an object system with some inheritance capabilities, they do not -constitute a full object-oriented programming model, so MathJax -implements its own object library. This means there is an ambiguity -when we speak of an “object”, as it could be either a native -JavaScript object, or a MathJax object. When the distinction is -importat, we will use Object (capitalized) or MathJax.Object for -the latter; the javascript object will always be listed in lower -case.

-

You may also want to view the advanced topics -on the main MathJax documentation page.

- - - -
- - -
-
-
-
-
-

Previous topic

-

Modifying Math on the Page

-

Next topic

-

The MathJax variable

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/inputjax.html b/docs/html/api/inputjax.html deleted file mode 100644 index 490e43d4d..000000000 --- a/docs/html/api/inputjax.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - The MathJax.InputJax Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.InputJax Class

-

Input jax are the components of MathJax that translate -mathematics from its original format (like TeX or -MathML) to the MathJax internal format (an element jax).

-

An input jax is stored as a pair of files in a subdirectory of the -jax/input directory, with the subdirectory name being the name of -the input jax. For example, the TeX input jax is stored in -jax/input/TeX. The first file, config.js, is loaded when -MathJax is being loaded and configured, and is indicated by listing -the input jax directory in the jax array of the MathJax -configuration. The config.js file creates a subclass of the -MathJax.InputJax object for the new input jax and registers that -with MathJax, along with the MIME-type that will be used to indicate -the mathematics that is to be processed by the input jax.

-

The main body of the input jax is stored in the second file, -jax.js, which is loaded when the input jax is first called on to -translate some mathematics. This file augments the original input jax -subclass with the additional methods needed to do the translation. -MathJax calls the input jax’s Translate() method when it needs -the input jax to translate the contents of a math <script> tag.

-

The MathJax.InputJax class is a subclass of the MathJax Jax class, and inherits the properties and methods of that -class. Those listed below are the additional or overridden ones from -that class.

-
-

Properties

-
-
-id
-

The name of the jax.

-
- -
-
-version
-

The version number of the jax.

-
- -
-
-directory
-

The directory where the jax files are stored (e.g., "[MathJax]/jax/input/TeX").

-
- -
-
-elementJax
-

The name of the ElementJax class that this input jax will produce -(typically mml, as that is the only ElementJax at the moment).

-
- -
-
-

Methods

-
-
-Process(script, state)
-

This is the method that the MathJax.Hub calls when it needs -the input jax to process the given math <script>. Its default -action is to do the following:

-
    -
  1. Start loading any element jax specified in the elementJax array;
  2. -
  3. Start loading the jax’s jax.js file;
  4. -
  5. Start loading the required output jax (so it is ready when needed); and
  6. -
  7. Redefine itself to simply return the callback for the load operation -(so that further calls to it will cause the processing to wait for the -callback).
  8. -
-

Once the jax.js file has loaded, this method is replaced by -the jax’s Translate() method (see below), so that -subsequent calls to Process() will perform the appropriate -translation.

- --- - - - - - -
Parameters :
    -
  • -
    script — reference to the DOM <script> object for
    -

    the mathematics to be translated

    -
    -
    -
  • -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics -(internal use)

    -
    -
    -
  • -
-
Returns :

an ElementJax object, or null

-
-
- -
-
-Translate(script, state)
-

This is the main routine called by MathJax when a <script> of the -appropriate type is found. The default Translate() method -throws an error indicating that Translate() hasn’t been -defined, so when the jax.js file loads, it should override the -default Translate() with its own version that does the actual -translation.

-

The translation process should include the creation of an -Element Jax that stores the data needed -for this element.

- --- - - - - - -
Parameters :
    -
  • script — the <script> element to be translated

    -
  • -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics -(internal use)

    -
    -
    -
  • -
-
Returns :

the element jax resulting from the translation

-
-
- -
-
-Register(mimetype)
-

This registers the MIME-type associated with this input jax so -that MathJax knows to call this input jax when it sees a -<script> of that type. An input jax can register more than -one type, but it will be responsible for distinguishing elements -of the various types from one another.

- --- - - - - - -
Parameters :
    -
  • mimetype — the MIME-type of the input this jax processes
  • -
-
Returns :

null

-
-
- -
-
-needsUpdate(jax)
-

This implements the element jax’s needsUpdate() method, and -returns true if the jax needs to be rerendered (i.e., the -text has changed), and false otherwise.

- --- - - - - - -
Perameters :
    -
  • jax — the element jax to be checked
  • -
-
Returns :

true if the jax’s text has changed, false otherwise

-
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Callback.Signal Class

-

Next topic

-

The MathJax.OutputJax Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/jax.html b/docs/html/api/jax.html deleted file mode 100644 index e0d5ec007..000000000 --- a/docs/html/api/jax.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - The Base Jax Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The Base Jax Class

-

The MathJax.InputJax, MathJax.OutputJax and MathJax.ElementJax -classes are all subclasses of the base Jax class in MathJax. This -is a private class that implements the methods common to all three -other jax classes.

-

Unlike most MathJax.Object classes, calling the class object creates a -subclass of the class, rather than an instance of the class. E.g.,

-
MathJax.InputJax.MyInputJax = MathJax.InputJax({
-  id: "MyInputJax",
-  version: "1.0",
-  ...
-});
-
-
-

creates MathJax.InputJax.MyInputJax as a subclass of MathJax.InputJax.

-
-

Class Properties

-
-
-directory
-

The name of the jax directory (usually "[MathJax]/jax"). -Overridden in the subclass to be the specific directory for the -class, e.g. "[MathJax]/jax/input".

-
- -
-
-extensionDir
-

The name of the extensions directory (usually "[MathJax]/extensions").

-
- -
-
-

Instance Properties

-
-
-id
-

The name of the jax.

-
- -
-
-version
-

The version number of the jax.

-
- -
-
-directory
-

The directory for the jax (e.g., "[MathJax]/jax/input/TeX").

-
- -
-
-require: null
-

An array of files to load before the jax.js file calls the -MathJax.Ajax.loadComplete() method.

-
- -
-
-config: {}
-

An object that contains the default configuration options for the -jax. These can be modified by the author by including a -configuration subsection for the specific jax in question.

-
- -
-
-JAXFILE: "jax.js"
-

The name of the file that contains the main code for the jax.

-
- -
-
-

Methods

-
-
-Translate(script)
-

This is a stub for a routine that should be defined by the jax’s -jax.js file when it is loaded. It should perform the translation -action for the specific jax. For an input jax, it should return the -ElementJax object that it created. The Translate() method is -never called directly by MathJax; during the loadComplete() -call, this function is copied to the Process() method, and is -called via that name. The default Translate() method throws an -error indicating that the Translate() method was not -redefined. That way, if the jax.js file fails to load for some -reason, you will receive an error trying to process mathematics with -this jax.

- --- - - - - - -
Parameters :
    -
  • -
    script — reference to the DOM <script> object for
    -

    the mathematics to be translated

    -
    -
    -
  • -
-
Returns :

an ElementJax object, or null

-
-
- -
-
-Register(mimetype)
-

This method is overridden in the InputJax, OutputJax and -ElementJax subclasses to handle the registration of those -classes of jax.

- --- - - - - - -
Parameters :
    -
  • mimetype — the MIME-type to be associated with the jax
  • -
-
Returns :

null

-
-
- -
-
-Config()
-

Inserts the configuration block for this jax from the author’s -configuration specification into the jax’s config property. -If the configuration includes an Augment object, that is used -to augment the jax (that is, the configuration can override the -methods of the object, as well as the data). This is called -automatically during the loading of the jax.js file.

-
- -
-
-Startup()
-

This is a method that can be overridden in the subclasses to -perform initialization at startup time (after the configuration -has occurred).

-
- -
-
-loadComplete(file)
-

This is called by the config.js and jax.js files when they -are completely loaded and are ready to signal that fact to -MathJax. For config.js, this simply calls the -MathJax.Ajax.loadComplete() method for the config.js -file. For jax.js, the actions performed here are the -following:

-
-
    -
  1. Post the “[name] Jax Config” message to the startup signal.
  2. -
  3. Perform the jax’s Config() method.
  4. -
  5. Post the “[name] Jax Require” message to the startup signal.
  6. -
  7. Load the files from the jax’s require and -config.extensions arrays.
  8. -
  9. Post the “[name] Jax Startup” message to the startup signal.
  10. -
  11. Perform the jax’s Startup() method.
  12. -
  13. Post the “[name] Jax Ready” message to the startup signal.
  14. -
  15. Copy the preTranslate, Translate, and -postTranslate functions to preProcess, Process, -and postProcess.
  16. -
  17. Perform the MathJax.Ajax.loadComplete() call for the -jax.js file.
  18. -
-
-

Note that the configuration process (the Config() call) can -modify the require or config.extensions arrays to add more -files that need to be loaded, and that the Startup() method -isn’t called until those files are completely loaded.

-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.ElementJax Class

-

Next topic

-

The MathJax Object-Oriented Programming Model

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/message.html b/docs/html/api/message.html deleted file mode 100644 index a6e58b3a0..000000000 --- a/docs/html/api/message.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - - - The MathJax.Message Object — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Message Object

-

The MathJax.Message object contains the methods used to manage the -small message area that appears at the lower-left corner of the -window. MathJax uses this area to inform the user of time-consuming -actions, like loading files and fonts, or how far along in the -typesetting process it is.

-

The page author can customize the look of the message window by -setting styles for the #MathJax_Message selector (which can be -set via

-
MathJax.Hub.Config({
-  styles: {
-    "#MathJax_Message": {
-      ...
-    }
-  }
-});
-
-
-

Because of a bug in Internet Explorer, in order to change the side of -the screen where the message occurs, you must also set the side -for #MathJax_MSIE_Frame, as in

-
MathJax.Hub.Config({
-  styles: {
-    "#MathJax_Message": {left: "", right: 0},
-    "#MathJax_MSIE_Frame": {left: "", right: 0}
-  }
-});
-
-
-

It is possible that a message is already being displayed when another -message needs to be posted. For this reason, when a message is -displayed on screen, it gets an id number that is used when you want -to remove or change that message. That way, when a message is -removed, the previous message (if any) can be redisplayed if it hasn’t -been removed. This allows for intermittent messages (like file -loading messages) to obscure longer-term messages (like “Processing -Math” messages) temporarily.

-
-

Methods

-
-
-Set(message[, n[, delay]])
-

This sets the message being displayed to the given message -string. If n is not null, it represents a message id -number and the text is set for that message id, otherwise a new id -number is created for this message. If delay is provided, it is -the time (in milliseconds) to display the message before it is -cleared. If delay is not provided, the message will not be -removed automatically; you must call the -MathJax.Messsage.Clear() method by hand to remove it.

- --- - - - - - -
Parameters :
    -
  • message — the text to display in the message area
  • -
  • n — the message id number
  • -
  • delay — amout of time to display the message
  • -
-
Returns :

the message id number for this message.

-
-
- -
-
-Clear(n[, delay])
-

This causes the message with id n to be removed after the given -delay, in milliseconds. The default delay is 600 milliseconds.

- --- - - - - - -
Parameters :
    -
  • n — the message id number
  • -
  • delay — the delay before removing the message
  • -
-
Returns :

null

-
-
- -
-
-Remove()
-

This removes the message frame from the window (it will reappear when -future messages are set, however).

- --- - - - -
Returns :null
-
- -
-
-File(file)
-

This sets the message area to a “Loading file” message, where file -is the name of the file (with [MathJax] representing the root -directory).

- --- - - - - - -
Parameters :
    -
  • file — the name of the file being loaded
  • -
-
Returns :

the message id number for the message created

-
-
- -
-
-filterText(text, n)
-

This method is called on each message before it is displayed. It can -be used to modify (e.g., shorten) the various messages before they are -displayed. The default action is to check if the messageStyle -configuration parameter is simple, and if so, convert loading and -processing messages to a simpler form. This method can be overridden -to perform other sanitization of the message strings.

- --- - - - - - -
Parameters :
    -
  • text — the text of the message to be posted
  • -
  • n — the id number of the message to be posted
  • -
-
Returns :

the modified message text

-
-
- -
-
-Log()
-

Returns a string of all the messages issued so far, separated by -newlines. This is used in debugging MathJax operations.

- --- - - - -
Returns :string of all messages so far
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Ajax Object

-

Next topic

-

The MathJax.HTML Object

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/object.html b/docs/html/api/object.html deleted file mode 100644 index 5fda49fa5..000000000 --- a/docs/html/api/object.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - - - - The MathJax Object-Oriented Programming Model — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax Object-Oriented Programming Model

-

MathJax uses an object-oriented programming model for its main -components, such as the Input jax, Output jax, and Element jax. -The model is intended to be light-weight and is based on JavaScript’s -prototype inheritance mechanism. Object classes are created by making -subclasses of MathJax.Object or one of its subclasses, and are -instantiated by calling the object class as you would a function.

-

For example:

-
MathJax.Object.Foo = MathJax.Object.Subclass({
-  Init: function (x) {this.setX(x)},
-  getX: function () {return this.x},
-  setX: function (x) {this.x = x}
-});
-var foo = MathJax.Object.Foo("bar");
-foo.getX();                // returns "bar"
-foo.setX("foobar");
-foo.getX();                // returns "foobar"
-
-
-

Object classes can have static properties and methods, which are -accessed via the object class variable. E.g., -MathJax.Object.Foo.SUPER or MathJax.Object.Foo.Augment() for -the object in the example above. Static values are not inherited by -subclasses.

-
-

Static Properties

-
-
-SUPER
-

Pointer to the super class for this subclass. (It is a reference to -MathJax.Object in the example above.)

-
- -
-
-

Static Methods

-
-
-Subclass(def[, static])
-

Creates a subclass of the given class using the contents of the -def object to define new methods and properties of the object -class, and the contents of the optional static object to define -new static methods and properties.

- --- - - - - - -
Parameters :
    -
  • def — object that defines the properties and methods
  • -
  • static — object that defines static properties and methods
  • -
-
Returns :

the new object class

-
-
- -
-
-Augment(def[, static])
-

Adds new properties and methods to the class prototype. All -instances of the object already in existence will receive the new -properties and methods automatically.

- --- - - - - - -
Parameters :
    -
  • def — object that defines the properties and methods
  • -
  • static — object that defines static properties and methods
  • -
-
Returns :

the object class itself

-
-
- -
-
-

Properties

-
-
-constructor
-

Pointer to the constructor function for this class. E.g., -foo.constructor would be a reference to MathJax.Object.Foo -in the example above.

-
- -
-
-

Methods

-
-
-Init([data])
-

An optional function that is called when an instance of the class -is created. When called, the this variable is set to the newly -instantiated object, and the data is whatever was passed to the -object constructor. For instance, in the example above, the -variable foo is created by calling -MathJax.Object.Foo("bar"), which calls the -MathJax.Object.Foo object’s Init() method with data -equal to "bar". If desired, the Init() method can -create a different object, and return that, in which case this -becomes the return value for the object constructor.

- --- - - - - - -
Parameters :
    -
  • data — the data from the constructor call
  • -
-
Returns :

null or the object to be returned by the constructor

-
-
- -
-
-isa(class)
-

Returns true if the object is an instance of the given class, -or of a subclass of the given class, and false otherwise. So -using the foo value defined above,

-
foo.isa(MathJax.Object);      // returns true
-foo.isa(MathJax.Object.Foo);  // returns true
-foo.isa(MathJax.InputJax);    // returns false
-
-
-
- -
-
-can(method)
-

Checks if the object has the given method and returns true -if so, otherwise returns false. This allows you to test if an -object has a particular function available before trying to call -it (i.e., if an object implements a particular feature). For example:

-
foo.can("getX");  // returns true
-foo.can("bar");   // returns false
-
-
-
- -
-
-has(property)
-

Checks if the object has the given property and returns true -if so, otherwise returns false. This allows you to test if an -object has a particular property available before trying to use -it. For example:

-
foo.has("getX");  // returns true
-foo.has("x");     // returns true
-foo.has("bar");   // returns false
-
-
-
- -
-
-

Accessing the Super Class

-

If a subclass overrides a method of its parent class, it may want to -call the original function as part of its replacement method. The -semantics for this are a bit awkward, but work efficiently. Within a -method, the value arguments.callee.SUPER refers to the super -class, so you can access any method of the superclass using that. In -order to have this refer to the current object when you call the -super class, however, you need to use call() or -apply() to access the given method.

-

For example, arguments.callee.SUPER.method.call(this,data) would -call the superclass’ method and pass it data as its argument, -properly passing the current object as this. Alternatively, you can -use this.SUPER(arguments) in place of arguments.callee.SUPER. -It is also possible to refer to the super class explicitly rather than -through arguments.callee.SUPER, as in the following example:

-
MathJax.Class1 = MathJax.Object.Subclass({
-  Init: function(x) {this.x = x},
-  XandY: function(y) {return "Class1: x and y = " + this.x + " and " + y}
-});
-
-MathJax.Class2 = MathJax.Class1.Subclass({
-  XandY: function (y) {return "Class2: "+arguments.callee.SUPER.XandY.call(this,y)}
-});
-
-MathJax.Class3 = MathJax.Class2.Subclass({
-  XandY: function (y) {return "Class3: "+MathJax.Class2.prototype.XandY.call(this,y)}
-});
-
-MathJax.Class4 = MathJax.Class1.Subclass({
-  XandY: function (y) {return "Class4: "+this.SUPER(arguments).XandY.call(this,y)}
-});
-
-var foo = MathJax.Class2("foo");
-foo.XandY("bar");   // returns "Class2: Class1: x and y = foo and bar"
-var bar = MathJax.Class3("bar");
-bar.XandY("foo");   // returns "Class3: Class2: Class1: x and y = bar and foo"
-var moo = MathJax.Class4("moo");
-moo.XandY("cow");   // returns "Class4: Class1: x and y = moo and cow"
-
-
-

Since both of these mechanisms are rather awkward, MathJax provides an -alternative syntax that is easier on the programmer, but at the cost -of some inefficiency in creating the subclass and in calling methods -that access the super class.

-

Since most calls to the super class are to the overridden method, not -to some other method, the method name and the call() are -essentially redundant. You can get a more convenient syntax by -wrapping the def for the Subclass() call in a call to -MathJax.Object.SimpleSUPER(), as in the following example:

-
MathJax.Class1 = MathJax.Object.Subclass({
-  Init: function (x) {this.x = x},
-  XandY: function (y) {return "Class1: x and y = " + this.x + " and " + y}
-});
-
-MathJax.Class2 = MathJax.Class1.Subclass(
-  MathJax.Object.SimpleSUPER({
-    XandY: function (y) {return "Class2: "+this.SUPER(y)},
-    AnotherMethod: function () {return this.x}              // it's OK if a method doesn't use SUPER
-  })
-);
-
-var foo = MathJax.Class2("foo");
-foo.XandY("bar");     // returns "Class2: Class1: x and y = foo and bar"
-
-
-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The Base Jax Class

-

Next topic

-

Describing HTML snippets

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/outputjax.html b/docs/html/api/outputjax.html deleted file mode 100644 index 291e84e07..000000000 --- a/docs/html/api/outputjax.html +++ /dev/null @@ -1,448 +0,0 @@ - - - - - - - - The MathJax.OutputJax Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.OutputJax Class

-

Output jax are the components of MathJax that translate -mathematics from the MathJax internal format (an element jax) -to whatever output is required to represent the mathematics (e.g., -MathML elements, or HTML-with-CSS that formats the mathematics on screen).

-

An output jax is stored as a pair of files in a subdirectory of the -the jax/output directory, with the subdirectory name being the -name of the output jax. For example, the NativeMML output jax is -stored in jax/output/NativeMML. The first file, config.js, is -loaded when MathJax is being loaded and configured, and is indicated -by listing the input jax directory in the jax array of the MathJax -configuration. The config.js file creates a subclass of the -MathJax.OutputJax object for the new output jax and registers it -with MathJax, along with the MIME-type of the element jax that it can -process.

-

The main body of the output jax is stored in the second file, jax.js, -which is loaded when the output jax is first called on to translate -some mathematics. This file augments the original output jax -subclass with the additional methods needed to produce the output. -MathJax calls the input jax’s Translate() method when it needs -the output jax to translate an element jax to produce output.

-

The MathJax.OutputJax class is a subclass of the MathJax Jax class, and inherits the properties and methods of that -class. Those listed below are the additional or overridden ones from -that class.

-
-

Properties

-
-
-id
-

The name of the jax.

-
- -
-
-version
-

The version number of the jax.

-
- -
-
-directory
-

The directory where the jax files are stored (e.g., "[MathJax]/jax/output/HTML-CSS");

-
- -
-
-fontDir
-

The directory where the fonts are stored (e.g., "[MathJax]/fonts")

-
- -
-
-imageDir
-

The directory where MathJax images are found (e.g. "[MathJax]/images")

-
- -
-
-

Methods

-
-
-preProcess(state)
-

This is called by MathJax.Hub to ask the output processor to -prepare to process math scripts. Its default action is to start -loading the jax’s jax.js file, and redefine itself to simply -return the callback for the load operation (so that further calls -to it will cause the processing to wait for the callback).

-

Once the jax.js file has loaded, this method is replaced by -the jax’s preTranslate() method, so that subsequent calls -to preProcess() will perform the appropriate translation.

- --- - - - - - -
Parameters :
    -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics

    -
    -
    -
  • -
-
Returns :

null

-
-
- -
-
-preTranslate(state)
-

This routine replaces preProcess() above when the jax’s -jax.js file is loaded. It is called by MathJax.Hub to ask -the output processor to prepare to process math scripts. (For -example, the HTML-CSS output jax uses this to determine em-sizes -for all the mathematics at once, to minimize page reflows that -slow down Internet Explorer.)

-

The routine can use state.jax[this.id] to obtain the array of -element jax that are to be processed. The output jax can use the -state variable to maintain its own state information, but -any properties that it adds to the variable should have a prefix -that is the output jax’s ID. For example, the HTML-CSS output jax -might use state.HTMLCSSlast to keep track of the last equation -it processed, or could add state.HTMLCSS = {...} to create an -object of its own within the state variable.

- --- - - - - - -
Parameters :
    -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics

    -
    -
    -
  • -
-
Returns :

null

-
-
- -
-
-Translate(script, state)
-

This is the main routine called by MathJax when an element jax is -to be converted to output. The default Translate() -method throws an error indicating that Translate() hasn’t been -defined, so when the jax.js file loads, it should override the -default Translate() with its own version that does the actual -translation.

-

You should use MathJax.Hub.getJaxFor(script) to obtain the -element jax for the given script. The translation process may -modify the element jax (e.g., if it has data that needs to be -stored with the jax), and may insert DOM elements into the -document near the jax’s <script> tag. The output jax can use -the state variable to maintain information about its -processing state, but see preTranslate() above for naming -conventions for properties that are added.

- --- - - - - - -
Parameters :
    -
  • script — the <script> element to be translated

    -
  • -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics

    -
    -
    -
  • -
-
Returns :

the element jax resulting from the translation

-
-
- -
-
-postTranslate(state)
-

This routines is called by MathJax.Hub when the translation -of math elements is complete, and can be used by the output -processor to finalize any actions that it needs to complete. -(For example, making the mathematics visible, or forcing a reflow -of the page.)

-

The routine can use state.jax[this.id] to obtain the array of -element jax that were processed, or can use the state variable -to store its own state information (see preProcess() -above for caveats about naming properties).

- --- - - - - - -
Parameters :
    -
  • -
    state — a structure containing information about the
    -

    current proccessing state of the mathematics

    -
    -
    -
  • -
-
Returns :

null

-
-
- -
-
-Register(mimetype)
-

This registers the MIME-type for the element jax associated with -this output jax so that MathJax knows to call this jax when it -wants to display an element jax of that type. Several output jax -may register for the same input jax, in which case the first one -to register will be the default one for that type.

- --- - - - - - -
Parameters :
    -
  • mimetype — the MIME-type of the input this jax processes
  • -
-
Returns :

null

-
-
- -
-
-Remove(jax)
-

Removes the output associated with the given element jax. The -routine can use jax.SourceElement() to locate the <script> -tag associated with the element jax.

- --- - - - - - -
Parameters :
    -
  • jax — the element jax whose display should be removed
  • -
-
Returns :

null

-
-
- -

If an output jax wants its output to handle the contextual menu item -and zooming, then it needs to tie into the event-handling code -(MathEvents) and the zoom-handling code (MathZoom). That requires -the following methods.

-
-
-getJaxFromMath(math)
-

This is called by the event-handling code (MathEvents) to get -the element jax associated with the DOM element that caused an -event to occur. The output jax will have attached event handlers -to some DOM element that is part of its output, and the -MathEvents code uses this routine to map back to the jax -associated with that output.

- --- - - - - - -
Parameters :
    -
  • -
    math — a DOM element that triggered a DOM event
    -

    (e.g., a mouse click)

    -
    -
    -
  • -
-
Returns :

the ElementJax structure associated with the DOM element

-
-
- -
-
-Zoom(jax, span, math, Mw, Mh)
-

This routine is called by the zoom-handling code (MathZoom) -when an expression has received its zoom trigger event (e.g., a -double-click). The jax is the math that needs to be zoomed, -span is a <span> element in which the zoomed version of -the math should be placed, math is the DOM element that -received the zoom trigger event, and Mw and Mh are the -maximum width and height allowed for the zoom box (the span).

-

The return value is an object with the following properties:

-
    -
  • -
    Y — the vertical offset from the top of the span to
    -

    the baseline of the mathematics

    -
    -
    -
  • -
  • mW — the width of the original mathematics element

    -
  • -
  • mH — the height of the original mathematics element

    -
  • -
  • zW — the width of the zoomed math

    -
  • -
  • zH — the height of the zoomed math

    -
  • -
-

All of these values are in pixels.

- --- - - - - - -
Parameters :
    -
  • jax — the jax to be zoomed
  • -
  • span — the <span> in which to place the zoomed math
  • -
  • math — the DOM element generating the zoom event
  • -
  • Mw — the maximum width of the zoom box
  • -
  • Mh — the maximum height of the zoom box
  • -
-
Returns :

a structure as described above

-
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.InputJax Class

-

Next topic

-

The MathJax.ElementJax Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/queue.html b/docs/html/api/queue.html deleted file mode 100644 index 1fafb6e8b..000000000 --- a/docs/html/api/queue.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - The MathJax.Callback.Queue Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Callback.Queue Class

-

The MathJax.Callback.Queue object is one of the key mechanisms -used by MathJax to synchronize its actions with those that occur -asynchronously, like loading files and stylesheets. A Queue object -is used to coordinate a sequence of actions so that they are performed -one after another, even when one action has to wait for an -asynchronous process to complete. This guarantees that operations are -performed in the right order even when the code must wait for some -other action to occur. See Synchronizing with MathJax for more details, and Using Queues in particular for examples of how to specify and use -MathJax Queue objects.

-
-

Properties

-
-
-pending
-

This is non-zero when the queue is waiting for a command to -complete, i.e. a command being processed returns a Callback -object, indicating that the queue should wait for that action to -complete before processing additional commands.

-
- -
-
-running
-

This is non-zero when the queue is executing one of the commands in -the queue.

-
- -
-
-queue
-

An array containing the queued commands that are yet to be performed.

-
- -
-
-

Methods

-
-
-Push(callback, ...)
-

Adds commands to the queue and runs them (if the queue is not -pending or running another command). If one of the callbacks is -an actual Callback object rather than a callback specification, -then the command queued is an internal command to wait for the -given callback to complete. That is, that callback is not itself -queued to be executed, but a wait for that callback is queued. -The Push() method returns the last callback that was -added to the queue (so that it can be used for further -synchronization, say as an entry in some other queue).

- --- - - - - - -
Parameters :
    -
  • callback — the callback specifications to be added to the queue
  • -
-
Returns :

the last callback object added to the queue

-
-
- -
-
-Process()
-

Process the commands in the queue, provided the queue is not -waiting for another command to complete. This method is used -internally; you should not need to call it yourself.

-
- -
-
-Suspend()
-

Increments the running property, indicating that any commands that -are added to the queue should not be executed immediately, but should -be queued for later execution (when its Resume() is -called). This method is used internally; you should not need to -call it yourself.

-
- -
-
-Resume()
-

Decrements the running property, if it is positive. When it is -zero, commands can be processed, but that is not done -automatically — you would need to call Process() to make -that happen. This method is used internally; you should not need -to call it yourself.

-
- -
-
-wait(callback)
-

Used internally when an entry in the queue is a Callback object -rather than a callback specification. A callback to this function -(passing it the original callback) is queued instead, and it -simply returns the callback it was passed. Since the queue will -wait for a callback if it is the return value of one of the -commands it executes, this effectively makes the queue wait for the -original callback at that point in the command queue.

- --- - - - - - -
Parameters :
    -
  • callback — the function to complete before returning to the queue
  • -
-
Returns :

the passed callback function

-
-
- -
-
-call()
-

An internal function used to restart processing of the queue after -it has been waiting for a command to complete.

-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Callback Class

-

Next topic

-

The MathJax.Callback.Signal Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/signal.html b/docs/html/api/signal.html deleted file mode 100644 index 5dfae463a..000000000 --- a/docs/html/api/signal.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - - The MathJax.Callback.Signal Class — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax.Callback.Signal Class

-

The MathJax.Callback.Signal object is one of the key mechanisms -used by MathJax to synchronize its actions with those that occur -asynchronously, like loading files and stylesheets. A Signal object -is used to publicize the fact that MathJax has performed certain -actions, giving other code running the web page the chance to react to -those actions. See Synchronizing with MathJax for more details, and Using Signals in particular for examples of how to specify and use -MathJax Signal objects.

-

The Callback Signal object is a subclass of the Callback Queue object.

-
-

Properties

-
-
-name
-

The name of the signal. Each signal is named so that -various components can access it. The first one to request a -particular signal causes it to be created, and other requests for -the signal return references to the same object.

-
- -
-
-posted
-

Array used internally to store the post history so that when new -listeners express interests in this signal, they can be informed -of the signals that have been posted so far. This can be cleared -using the signal’s Clear() method.

-
- -
-
-listeners
-

Array of callbacks to the listeners who have expressed interest in -hearing about posts to this signal. When a post occurs, the -listeners are called, each in turn, passing them the message that -was posted.

-
- -
-
-

Methods

-
-
-Post(message[, callback])
-

Posts a message to all the listeners for the signal. The listener -callbacks are called in turn (with the message as an argument), -and if any return a Callback object, the posting will be -suspended until the callback is executed. In this way, the -Post() call can operate asynchronously, and so the -callback parameter is used to synchronize with its operation; -the callback will be called when all the listeners have responded -to the post.

-

If a Post() to this signal occurs while waiting for the -response from a listener (either because a listener returned a -Callback object and we are waiting for it to complete when the -Post() occurred, or because the listener itself called the -Post() method), the new message will be queued and will be -posted after the current message has been sent to all the -listeners, and they have all responded. This is another way in -which posting can be asynchronous; the only sure way to know that -a posting has occurred is through its callback. When the posting -is complete, the callback is called, passing it the signal object -that has just completed.

-

Returns the callback object (or a blank callback object if none -was provided).

- --- - - - - - -
Parameters :
    -
  • message — the message to send through the signal
  • -
  • callback — called after the message is posted
  • -
-
Returns :

the callback or a blank callback

-
-
- -
-
-Clear([callback])
-

This causes the history of past messages to be cleared so new -listeners will not receive them. Note that since the signal may -be operating asynchronously, the Clear() may be queued for -later. In this way, the Post() and Clear() -operations will be performed in the proper order even when they -are delayed. The callback is called when the Clear() -operation is completed.

-

Returns the callback (or a blank callback if none is provided).

- --- - - - - - -
Parameters :
    -
  • callback — called after the signal history is cleared
  • -
-
Returns :

the callback or a blank callback

-
-
- -
-
-Interest(callback[, ignorePast])
-

This method registers a new listener on the signal. It creates a -Callback object from the callback specification, attaches it to -the signal, and returns that Callback object. When new messages -are posted to the signal, it runs the callback, passing it the -message that was posted. If the callback itself returns a -Callback object, that indicates that the listener has started an -asynchronous operation and the poster should wait for that -callback to complete before allowing new posts on the signal.

-

If ignorePast is false or not present, then before -Interest() returns, the callback will be called with all -the past messages that have been sent to the signal.

- --- - - - - - -
Parameters :
    -
  • callback — called whenever a message is posted (past or present)
  • -
  • ignorePasttrue means ignore previous messages
  • -
-
Returns :

the callback object

-
-
- -
-
-NoInterest(callback)
-

This removes a listener from the signal so that no new messages -will be sent to it. The callback should be the one returned by -the original Interest() call that attached the listener to -the signal in the first place. Once removed, the listener will no -longer receive messages from the signal.

- --- - - - - - -
Parameters :
    -
  • callback — the listener to be removed from signal
  • -
-
Returns :

null

-
-
- -
-
-MessageHook(message, callback)
-

This creates a callback that is called whenever the signal posts -the given message. This is a little easier than having to write a -function that must check the message each time it is called. -Although the message here is a string, if a message posted to the -signal is an array, then only the first element of that array is -used to match against the message. That way, if a message contains an -identifier plus arguments, the hook will match the identifier and -still get called with the complete set of arguments.

-

Returns the Callback object that was produced.

- --- - - - - - -
Parameters :
    -
  • message — the message to look for from the signal
  • -
  • callback — called when the message is posted
  • -
-
Returns :

the callback object

-
-
- -
-
-ExecuteHook(message)
-

Used internally to call the listeners when a particular -message is posted to the signal.

- --- - - - - - -
Parameters :
    -
  • message — the posted message
  • -
-
Returns :

null

-
-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax.Callback.Queue Class

-

Next topic

-

The MathJax.InputJax Class

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/api/variable.html b/docs/html/api/variable.html deleted file mode 100644 index ed6e6f283..000000000 --- a/docs/html/api/variable.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - The MathJax variable — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax variable

-

MathJax has a single global variable, MathJax, in which all its -data, and the data for loaded components, are stored. The MathJax -variable is a nested structure, with its top-level properties being -objects themselves.

-
-

Main MathJax Components

-
-
-MathJax.Hub
-

Contains the MathJax hub code and variables, including the startup -code, the onload handler, the browser data, and so forth.

-
- -
-
-MathJax.Ajax
-

Contains the code for loading external modules and creating -stylesheets. Most of the code that causes MathJax to -operate asynchronously is handled here.

-
- -
-
-MathJax.Message
-

Contains the code to handle the intermittent message window that -periodically appears in the lower left-hand corner of the window.

-
- -
-
-MathJax.HTML
-

Contains support code for creating HTML elements dynamically from -descriptions stored in JavaScript objects.

-
- -
-
-MathJax.CallBack
-

Contains the code for managing MathJax callbacks, queues and -signals.

-
- -
-
-MathJax.Extension
-

Initially empty, this is where extensions can load their code. -For example, the tex2jax preprocessor creates -MathJax.Extension.tex2jax for its code and variables.

-
- -
-
-MathJax.Menu
-

Initially null, this is where the MathJax contextual menu is -stored, when extensions/MathMenu.js is loaded.

-
- -
-
-MathJax.Object
-

Contains the code for the MathJax object-oriented programming model.

-
- -
-
-MathJax.InputJax
-

The base class for all input jax objects. Subclasses for -specific input jax are created as sub-objects of -MathJax.InputJax. For example, the TeX input jax loads itself -as MathJax.InputJax.TeX.

-
- -
-
-MathJax.OutputJax
-

The base class for all output jax objects. Subclasses for -specific output jax are created as sub-objects of -MathJax.OutputJax. For example, the HTML-CSS output jax loads -itself as MathJax.OutputJax["HTML-CSS"].

-
- -
-
-MathJax.ElementJax
-

The base class for all element jax objects. Subclasses for -specific element jax are created as sub-objects of -MathJax.ElementJax. For example, the mml element jax loads -itself as MathJax.ElementJax.mml.

-
- -
-
-

Properties

-
-
-MathJax.version
-

The version number of the MathJax library as a whole.

-
- -
-
-MathJax.fileversion
-

The version number of the MathJax.js file specifically.

-
- -
-
-MathJax.isReady
-

This is set to true when MathJax is set up and ready to -perform typesetting actions (and is null otherwise).

-
- -
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The MathJax API

-

Next topic

-

The MathJax.Hub Object

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/asciimath.html b/docs/html/asciimath.html deleted file mode 100644 index 312891995..000000000 --- a/docs/html/asciimath.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - MathJax AsciiMath Support — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

MathJax AsciiMath Support

-

The support for AsciiMath in MathJax consists of two parts: -the asciimath2jax preprocessor, and the AsciiMath input processor. -The first of these looks for mathematics within your web page -(indicated by delimiters like `...`) and marks the mathematics for -later processing by MathJax. The AsciiMath input processor is what -converts the AsciiMath notation into MathJax’s internal format, where -one of MathJax’s output processors then displays it in the web page.

-

The AsciiMath input jax actually includes a copy of Peter Jipsen’s -ASCIIMathML.js file (see the AsciiMath home page for -details), and is included by permission of the author. This means -that the results of MathJax’s AsciiMath processing should be the same -as using the actual ASCIIMathML.js package (at least as far as the -MathML that it generates is concerned). Thanks go to David Lippman -for writing the initial version of the AsciiMath preprocessor and -input jax.

-

The asciimath2jax preprocessor can be configured to look for whatever -markers you want to use for your math delimiters. See the -asciimath2jax configuration options section for -details on how to customize the action of asciimath2jax.

-

The AsciiMath input processor handles conversion of your mathematical -notation into MathJax’s internal format (which is essentially MathML). -The AsciiMath input processor has few configuration options (see the -AsciiMath options section for details).

-

The AsciiMath input jax handles only the original ASCIIMathML notation -(from ASCIIMathML v1.4.7), not the extened LaTeXMathML notation added -in version 2.0 of ASCIIMathML, though the AsciiMath input jax does -expose the tables that define the symbols that AsciiMath processes, -and so it would be possible to extend them to include additional -symbols. In general, it is probably better to use MathJax’s TeX -input jax to handle LaTeX notation instead.

-
-

AsciiMath delimiters

-

By default, the asciimath2jax preprocessor defines the back-tick -(`) as the delimiters for mathematics in AsciiMath format. It -does not define $...$ as math delimiters. That is because -dollar signs appear too often in non-mathematical settings, which -could cause some text to be treated as mathematics unexpectedly. For -example, with single-dollar delimiters, ”... the cost is $2.50 for the -first one, and $2.00 for each additional one ...” would cause the -phrase “2.50 for the first one, and” to be treated as mathematics -since it falls between dollar signs. For this reason, if you want to -use single-dollars for AsciiMath notation, you must enable that -explicitly in your configuration:

-
MathJax.Hub.Config({
-  asciimath2jax: {
-    delimiters: [['$','$'], ['`','`']]
-  }
-});
-
-
-

Note that the dollar signs are frequently used as a delimiter for -mathematics in the TeX format, and you can not enable the -dollar-sign delimiter for both. It is probably best to leave dollar -signs for TeX notation.

-

See the config/default.js file, or the asiimath2jax -configuration options page, for additional -configuration parameters that you can specify for the asciimath2jax -preprocessor, which is the component of MathJax that identifies -AsciiMath notation within the page.

-
-
-

AsciiMath in HTML documents

-

The AsciiMath syntax is descibed in the ASCIIMathML syntax page.

-

Keep in mind that your mathematics is part of an HTML document, so you -need to be aware of the special characters used by HTML as part of its -markup. There cannot be HTML tags within the math delimiters (other -than <BR>) as AsciiMath-formatted math does not include HTML tags. -Also, since the mathematics is initially given as text on the page, -you need to be careful that your mathematics doesn’t look like HTML -tags to the browser (which parses the page before MathJax gets to see -it). In particular, that means that you have to be careful about -things like less-than and greater-than signs (< and >), and -ampersands (&), which have special meaning to the browsers. For -example,

-
... when `x<y` we have ...
-
-

will cause a problem, because the brower will think <y is the -beginning of a tag named y (even though there is no such tag in -HTML). When this happens, the browser will think the tag continues up -to the next > in the document (typically the end of the next -actual tag in the HTML file), and you may notice that you are missing -part of the text of the document. In the example above, the “we -have ...” will not be displayed because the browser thinks it is -part of the tag starting at <y. This is one indication you can -use to spot this problem; it is a common error and should be avoided.

-

Usually, it is sufficient to simply put spaces around these symbols to -cause the browser to avoid them, so

-
... when `x < y` we have ...
-
-

should work. Alternatively, you can use the HTML entities &lt;, -&gt; and &amp; to encode these characters so that the browser -will not interpret them, but MathJax will. E.g.,

-
... when `x &lt; y` we have ...
-
-
-

Keep in mind that the browser interprets your text before MathJax -does.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

MathJax MathML Support

-

Next topic

-

MathJax Output Formats

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/callbacks.html b/docs/html/callbacks.html deleted file mode 100644 index 9eb974d49..000000000 --- a/docs/html/callbacks.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - Using Callbacks — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Using Callbacks

-

A “callback” is a function that MathJax calls when it completes an -action that may occur asynchronously (like loading a file). Many of -MathJax’s functions operate asynchronously, and MathJax uses callbacks -to allow you to synchronize your code with the action of those -functions. The MathJax.Callback structure manages these callbacks. -Callbacks can include not only a function to call, but also data to be -passed to the function, and an object to act as the JavaScript this -value in the resulting call (i.e., the object on which the callback is -to execute).

-

Callbacks can be collected into Queues where the -callbacks will be processed in order, with later callbacks waiting -until previous ones have completed before they are called. They are -also used with Signals as the means of -receiving information about the signals as they occur.

-

A number of methods in MathJax.Hub and MathJax.Ajax accept -callback specifications as arguments and return callback structures. -These routines always will return a callback even when none was -specified in the arguments, and in that case, the callback is a “do -nothing” callback. The reason for this is so that the resulting -callback can be used in a MathJax.Callback.Queue for synchronization -purposes, so that the actions following it in the queue will not be -performed until after the callback has been fired.

-

For example, the MathJax.Ajax.Require() method can be used to -load external files, and it returns a callback that is called when the -file has been loaded and executed. If you want to load several files -and wait for them all to be loaded before performing some action, you -can create a Queue into which you push the results of the -MathJax.Ajax.Require() calls, and then push a callback for the -action. The final action will not be performed until all the -file-load callbacks (which precede it in the queue) have been called; -i.e., the action will not occur until all the files are loaded.

-
-

Specifying a Callback

-

Callbacks can be specified in a number of different ways, depending on -the functionality that is required of the callback. The easiest case -is to simply provide a function to be called, but it is also possible -to include data to pass to the function when it is called, and to -specify the object that will be used as this when the function is -called.

-

For example, the MathJax.Ajax.Require() method can accept a -callback as its second argument (it will be called when the file given -as the first argument is loaded and executed). So you can call

-
MathJax.Ajax.Require("[MathJax]/config/myConfig.js",function () {
-  alert("My configuration file is loaded");
-});
-
-
-

and an alert will appear when the file is loaded. An example of -passing arguments to the callback function includes the following:

-
function loadHook (x) {alert("loadHook: "+x)}
-MathJax.Ajax.Require("[MathJax]/config/myConfig.js",[loadHook,"myConfig"]);
-
-
-

Here, the loadHook() function accepts one argument and generates -an alert that includes the value passed to it. The callback in the -MathJax.Ajax.Require() call is [loadHook,"myConfig"], -which means that (the equivalent of) loadHook("myConfig") will be -performed when the file is loaded. The result should be an alert with -the text loadHook: myConfig.

-

The callback for the MathJax.Ajax.Require() method actually -gets called with a status value, in addition to any parameters already -included in the callback specification, that indicates whether the -file loaded successfully, or failed for some reason (perhaps the file -couldn’t be found, or it failed to compile and run). So you could use

-
MathJax.Ajax.Require("[MathJax]/config/myConfig.js",function (status) {
-  if (status === MathJax.Ajax.STATUS.OK) {
-    alert("My configuration file is loaded");
-  } else {
-    alert("My configuration file failed to load!");
-  }
-});
-
-
-

to check if the file loaded properly. With additional parameters, the -example might be

-
function loadHook (x,status) {alert("loadHook: "+x+" has status "+status)}
-MathJax.Ajax.Require("[MathJax]/config/myConfig.js",[loadHook,"myConfig"]);
-
-
-

Note that the parameters given in the callback specification are used -first, and then additional parameters from the call to the callback -come afterward.

-
-

Callbacks to Object Methods

-

When you use a method of a JavaScript object, a special variable -called this is defined that refers to the object whose method is -being called. It allows you to access other methods or properties of -the object without knowing explicitly where the object is stored.

-

For example,

-
var aPerson = {
-  firstname: "John",
-  lastname: "Smith",
-  showName: function () {alert(this.firstname+" "+this.lastname)}
-};
-
-
-

creates an object that contains three items, a firstname, and -lastname, and a method that shows the person’s full name in an -alert. So aPerson.showName() would cause an alert with the text -John Smith to appear. Note, however that this only works if the -method is called as aPerson.showName(); if instead you did

-
var f = aPerson.showName;  // assign f the function from aPerson
-f();                       // and call the function
-
-
-

the association of the function with the data in aPerson is lost, -and the alert will probably show undefined undefined. (In this -case, f will be called with this set to the window -variable, and so this.firstname and this.lastname will refer -to undefined values.)

-

Because of this, it is difficult to use an object’s method as a -callback if you refer to it as a function directly. For example,

-
var aFile = {
-  name: "[MathJax]/config/myConfig.js",
-  onload: function (status) {
-    alert(this.name+" is loaded with status "+status);
-  }
-};
-
-MathJax.Ajax.Require(aFile.name,aFile.onload);
-
-
-

would produce an alert indicating that “undefined” was loaded with a -particular status. That is because aFile.onload is a reference to -the onload method, which is just a function, and the association -with the aFile object is lost. One could do

-
MathJax.Ajax.Require(aFile.name,function (status) {aFile.onload(status)});
-
-
-

but that seems needlessly verbose, and it produces a closure when one -is not really needed. Instead, MathJax provides an alternative -specification for a callback that allows you to specify both the -method and the object it comes from:

-
MathJax.Ajax.Require(aFile.name,["onload",aFile]);
-
-
-

This requests that the callback should call aFile.onload as the -function, which will maintain the connection between aFile and its -method, thus preserving the correct value for this within the method.

-

As in the previous cases, you can pass parameters to the method as -well by including them in the array that specifies the callback:

-
MathJax.Ajax.Require("filename",["method",object,arg1,arg2,...]);
-
-
-

This approach is useful when you are pushing a callback for one of -MathJax’s Hub routines into the MathJax processing queue. For example,

-
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathDiv"]);
-
-
-

pushes the equivalent of MathJax.Hub.Typeset("MathDiv") into the -processing queue.

-

See the Callback Object reference pages for more -information about the valid methods of specifying a callback.

-
-
-

Creating a Callback Explicitly

-

When you call a method that accepts a callback, you usually pass it a -callback specification (like in the examples above), which describes -a callback (the method will create the actual Callback object, and -return that to you as its return value). You don’t usually create -Callback objects directly yourself.

-

There are times, however, when you may wish to create a callback -object for use with functions that don’t create callbacks for you. -For example, the setTimeout() function can take a function as its -argument, and you may want that function to be a method of an object, -and would run into the problem described in the previous section if -you simply passed the object’s method to setTimeout(). Or you -might want to pass an argument to the function called by -setTimeout(). (Altough the setTimeout() function can accept -additional arguements that are supposed to be passed on to the code -when it is called, some versions of Internet Explorer do not implement -that feature, so you can’t rely on it.) You can use a Callback -object to do this, and the MathJax.Callback() method will -create one for you. For example,

-
function f(x) {alert("x = "+x)}
-setTimeout(MathJax.Callback([f,"Hello World!"]),500);
-
-
-

would create a callback that calls f("Hello World!"), and -schedules it to be called in half a second.

-
-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Synchronizing your code with MathJax

-

Next topic

-

Using Queues

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/community.html b/docs/html/community.html deleted file mode 100644 index ca02626a3..000000000 --- a/docs/html/community.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - The MathJax Community — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax Community

-

If you are an active MathJax user, you may wish to become involved in -the wider community of MathJax users. The MathJax project maintains -forums where users can ask questions about how to use MathJax, make -suggestions about future features for MathJax, and present their own -solutions to problems that they have faced. There is also a -bug-tracking system where you can report errors that you have found -with MathJax in your environment.

-
-

Forums

-

If you need help using MathJax or you have solutions you want to share, please -use the MathJax Users Google Group. We try hard to answer -questions quickly, and users are welcome to help with that as well. Also, users -can post code snippets showing how they have used MathJax, so it may be a good -place to find the examples you are looking for.

-

If you want to discuss MathJax development, please use the MathJax Dev Google -Group. We made this group -to discuss anything beyond what an end-user might be interested in, so if you -have any suggestions or questions about MathJax performance, technology, or -design, feel free to submit it to the group.

-

The community is only as good as the users who participate, so if -you have something to offer, please take time to make a post on one of -our groups.

-
-
-

Issue tracking

-

Found a bug or want to suggest an improvement? Post it to our issue tracker. We monitor the tracker closely, -and work hard to respond to problems quickly.

-

Before you create a new issue, however, please search the issues to see if it -has already been reported. You could also be using an outdated version of -MathJax, so be sure to upgrade your copy to verify -that the problem persists in the latest version.

-
-
-

“Powered by MathJax”

-

If you are using MathJax and want to show your support, please consider using -our “Powered by MathJax” badge.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

MathJax Output Formats

-

Next topic

-

What’s New in MathJax v2.0

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/config-files.html b/docs/html/config-files.html deleted file mode 100644 index 4a3d2c1f2..000000000 --- a/docs/html/config-files.html +++ /dev/null @@ -1,404 +0,0 @@ - - - - - - - - Common Configurations — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Common Configurations

-

MathJax comes with a number of pre-defined configuration files in the -MathJax/config directory. The default.js file contains nearly all -the possible configuration options together with comments explaining them, -so you can use that file to customize MathJax to your needs. Simply load -it via

-
<script type="text/javascript" src="path-to-MathJax/MathJax.js?config=default"></script>
-
-
-

where path-to-MathJax is the URL to the MathJax directory on your -server or hard disk. If you are using MathJax from the CDN, you can -view the contents of default.js as a -reference, but you will not be able to edit the CDN copy. It is -possible to use the CDN copy of MathJax with your own configuration -file, however; see Using a Local Configuration File with the CDN for details.

-

The remaining files in the MathJax/config directory are -combined configuration files that include not just configuration -parameters but also the files that MathJax would need to load for -those configurations. This means MathJax will have to load fewer -files, and since each file access requires establishing connections -over the network, it can be faster to load one larger file than -several smaller ones. See Loading and Configuring MathJax for more details about how to load configurations, and how -to modify the parameters for a configuration file.

-

The following sections describe the contents of the combined configuration -files. Each comes in two flavors: a standard version and a “full” version. -The standard version simply defines the output processor(s) that are part -of the configuration, but doesn’t load the code that implements the output -processor. The full version loads the complete output processors, so -everything that MathJax needs for the page should be loaded up front, and -there will be no delay once the page is ready to be processed. To obtain -the “full” version, add -full to the end of the configuration file -name.

-
-

The TeX-MML-AM_HTMLorMML configuration file

-

This configuration file is the most general of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX, MathML, and AsciiMath preprocessors and input processors, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, both -the native MathML and HTML-with-CSS output processor definitions, and -the MathMenu and MathZoom extensions. It is equivalent to the -following configuration:

-
MathJax.Hub.Config({
-  config: ["MMLorHTML.js"],
-  jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML"],
-  extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathMenu.js","MathZoom.js"],
-  TeX: {
-    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
-  }
-});
-
-
-

In addition, it loads the mml Element Jax, the TeX, MathML, and -AsciiMath input jax main code (not just the definition files), as well -as the toMathML extension, which is used by the Show Source option -in the MathJax contextual menu. The -full version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -mtable extension, which is normally loaded on demand.

-

See the tex2jax configuration section for -other configuration options for the tex2jax preprocessor, and the -TeX input jax configuration section for options -that control the TeX input processor. -See the mml2jax configuration section for -other configuration options for the mml2jax preprocessor, and the -MathML input jax configuration section for -options that control the MathML input processor. -See the asciimath2jax configuration section for -other configuration options for the asciimath2jax preprocessor, and the -AsciiMath input jax configuration section for -options that control the AsciiMath input processor. -See MathJax Output Formats for more -information on the NativeMML and HTML-CSS output processors. See the -MMLorHTML configuration section for -details on the options that control the MMLorHTML configuration.

-
-
-

The TeX-AMS-MML_HTMLorMML configuration file

-

This configuration file is the most commonly used of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, both the native -MathML and HTML-with-CSS output processor definitions, and the -MathMenu and MathZoom extensions. It is equivalent to the following -configuration:

-
MathJax.Hub.Config({
-  config: ["MMLorHTML.js"],
-  jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"],
-  extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"],
-  TeX: {
-    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
-  }
-});
-
-
-

In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -toMathML extension, which is used by the Show Source option in the -MathJax contextual menu. The -full version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -mtable extension, which is normally loaded on demand.

-

See the tex2jax configuration section for -other configuration options for the tex2jax preprocessor, and the -TeX input jax configuration section for options -that control the TeX input processor. -See the mml2jax configuration section for -other configuration options for the mml2jax preprocessor, and the -MathML input jax configuration section for -options that control the MathML input processor. -See MathJax Output Formats for more -information on the NativeMML and HTML-CSS output processors. See the -MMLorHTML configuration section for -details on the options that control the MMLorHTML configuration.

-
-
-

The TeX-AMS_HTML configuration file

-

This configuration file is for sites that only use TeX format for their -mathematics, and that want the output to be as close to TeX output as -possible. This uses the HTML-CSS output jax (even when the user’s browser -understands MathML). The user can still use the MathJax contextual menu -to select the NativeMML output jax if they desire.

-

This file includes all the important MathJax components for TeX input and -output, including the tex2jax preprocessor and TeX input jax, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, the -HTML-with-CSS output processor definition, and the MathMenu and MathZoom -extensions. It is equivalent to the following configuration:

-
MathJax.Hub.Config({
-  jax: ["input/TeX","output/HTML-CSS"],
-  extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"],
-  TeX: {
-    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
-  }
-});
-
-
-

In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the toMathML extension, which -is used by the Show Source option in the MathJax contextual menu. The -full -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -mtable extension, which is normally loaded on demand.

-

See the tex2jax configuration section for -other configuration options for the tex2jax preprocessor, and the -TeX input jax configuration section for options -that control the TeX input processor. -See MathJax Output Formats for more -information on the HTML-CSS output processor.

-
-
-

The MML_HTMLorMML configuration file

-

This configuration file is for sites that only use MathML format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire.

-

This file includes all the important MathJax components for MathML input -and output, including the mml2jax preprocessor and MathML input jax, the -NativeMML and HTML-CSS output processor definition files, and the MathMenu -and MathZoom extensions. It is equivalent to the following configuration:

-
MathJax.Hub.Config({
-  config: ["MMLorHTML.js"],
-  jax: ["input/MathML","output/HTML-CSS","output/NativeMML"],
-  extensions: ["mml2jax.js","MathMenu.js","MathZoom.js"]
-});
-
-
-

In addition, it loads the mml Element Jax and the MathML input jax main -code (not just the definition file), as well as the toMathML extension, -which is used by the Show Source option in the MathJax contextual menu. -The -full version also loads both the HTML-CSS and NativeMML output jax main -code files, plus the HTML-CSS mtable extension, which is normally loaded -on demand.

-

See the mml2jax configuration section for -other configuration options for the mml2jax preprocessor, and the -MathML input jax configuration section for -options that control the MathML input processor. -See MathJax Output Formats for more -information on the NativeMML and HTML-CSS output processors. See the -MMLorHTML configuration section for -details on the options that control the MMLorHTML configuration.

-
-
-

The AM_HTMLorMML configuration file

-

This configuration file is for sites that only use AsciiMath format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire.

-

This file includes all the important MathJax components for AsciiMath -input and output, including the asciimath2jax preprocessor and -AsciiMath input jax, the NativeMML and HTML-CSS output processor -definition files, and the MathMenu and MathZoom extensions. It is -equivalent to the following configuration:

-
MathJax.Hub.Config({
-  config: ["MMLorHTML.js"],
-  jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML"],
-  extensions: ["asciimath2jax.js","MathMenu.js","MathZoom.js"]
-});
-
-
-

In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the toMathML extension, which -is used by the Show Source option in the MathJax contextual menu. The -full -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -mtable extension, which is normally loaded on demand.

-

See the asciimath2jax configuration -section for other configuration options for the asciimath2jax -preprocessor, and the AsciiMath input jax configuration section for options that control the AsciiMath -input processor. See MathJax Output Formats -for more information on the HTML-CSS and NativeMML output processors. -See the MMLorHTML configuration section -for details on the options that control the MMLorHTML -configuration.

-
-
-

The TeX-AMS-MML_SVG configuration file

-

This configuration file is the same as TeX-AMS-MML_HTMLorMML except -that it uses the SVG output renderer rather than the NativeMML or -HTML-CSS ones. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, the SVG output -processor definitions, and the MathMenu and MathZoom extensions. It -is equivalent to the following configuration:

-
MathJax.Hub.Config({
-  jax: ["input/TeX","input/MathML","output/SVG"],
-  extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"],
-  TeX: {
-    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
-  }
-});
-
-
-

In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -toMathML extension, which is used by the Show Source option in the -MathJax contextual menu. The -full version also loads both the -SVG output jax main code, plus the SVG mtable extension, which -is normally loaded on demand.

-

See the tex2jax configuration section for -other configuration options for the tex2jax preprocessor, and the -TeX input jax configuration section for options -that control the TeX input processor. -See the mml2jax configuration section for -other configuration options for the mml2jax preprocessor, and the -MathML input jax configuration section for -options that control the MathML input processor. -See MathJax Output Formats for more -information on the SVG output processor.

-
-
-

The Accessible configuration file

-

This configuration file is essentially the same as -TeX-AMS-MML_HTMLorMML except that it includes options that are -designed for assistive technology, particularly for those with visual -challenged. This file is deprecated since the controls that make -MathJax work with screen readers are now available in the MathJax -contextual menu, and so there is no need to set them in the -configuration file any longer. So you can use any of the other -pre-defined configurations and readers with special needs should be -able to change the MathJax settings themselves to be appropriate for -their software.

-

The Accessible configuration is equivalent to the following:

-
MathJax.Hub.Config({
-  config: ["MMLorHTML.js"],
-  jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"],
-  extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"],
-  TeX: {
-    extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"]
-  },
-  menuSettings: {
-    zoom: "Double-Click",
-    mpContext: true,
-    mpMouse: true
-  },
-  errorSettings: { message: ["[Math Error]"] }
-});
-
-
-

This turns off the MathJax contextual menu for IE when MathPlayer is -active, and passes mouse events on to MathPlayer to allow screen -readers full access to MathPlayer. It also sets the zoom trigger -to double-click, so that readers can see a larger version of the -mathematics but double-clicking on any equation.

-

In addition, it loads the mml Element Jax, the TeX and MathML input jax -main code (not just the definition files), as well as the toMathML -extension, which is used by the Show Source option in the MathJax -contextual menu. The -full version also loads both the HTML-CSS and -NativeMML output jax main code, plus the HTML-CSS mtable extension, which -is normally loaded on demand.

-
-
- - -
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/docs/html/configuration.html b/docs/html/configuration.html deleted file mode 100644 index ec36c1284..000000000 --- a/docs/html/configuration.html +++ /dev/null @@ -1,525 +0,0 @@ - - - - - - - - Loading and Configuring MathJax — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Loading and Configuring MathJax

-

You load MathJax into a web page by including its main JavaScript file -into the page. That is done via a <script> tag that links to the -MathJax.js file. To do that, place the following line in the <head> -section of your document:

-
<script type="text/javascript" src="path-to-MathJax/MathJax.js"></script>
-
-
-

where path-to-MathJax is replaced by the URL of the copy of MathJax -that you are loading. For example, if you are using the MathJax -distributed network service, the tag might be

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

If you have installed MathJax yourself, path-to-MathJax will be the -location of MathJax on your server, or (if you are using MathJax locally -rather than through a server) the location of that directory on your hard -disk. For example, if the MathJax directory is at the top level of your -web server’s directory hierarchy, you might use

-
<script type="text/javascript" src="/MathJax/MathJax.js"></script>
-
-
-

to load MathJax.

-

If you install MathJax on a server in a domain that is different from the -one containing the page that will load MathJax, then there are issues -involved in doing so that you need to take into consideration. See the -Notes About Shared Servers for more details.

-

When you load MathJax, it is common to request a specific -configuration file as discussed in the section on Using a -Configuration File below, and in more detail in the -Common Configurations section. A -typical invocation of MathJax would be

-
<script type="text/javascript"
-   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-
-
-

which loads MathJax with a configuration file that includes everything -you need in order to enter mathematics in either TeX, LaTeX, or MathML -notation, and produces output using MathML if the browser supports -that well enough, or HTML-with-CSS otherwise. If you don’t load -an explicit configuration file, you will need to include an in-line -configuration block in order to tell MathJax how to read and display -the mathematics on your pages. See the section below on Using -In-line Configuration Options for details.

-

It is best to load MathJax in the document’s <head> block, but it -is also possible to load MathJax into the <body> section, if -needed. If you do this, load it as early as possible, as -MathJax will begin to load its components as soon as it is included in -the page, and that will help speed up the processing of the -mathematics on your page. MathJax does expect there to be a -<head> section to the document, however, so be sure there is one -if you are loading MathJax in the <body>.

-

It is also possible to load MathJax dynamically after the page has -been prepared, for example, via a GreaseMonkey script, or using a specially prepared -bookmarklet. This is an -advanced topic, however; see Loading MathJax Dynamically for more details.

-
-

Loading MathJax from the CDN

-

MathJax is available as a web service from cdn.mathjax.org, so you -can obtain MathJax from there without needing to install it on your own -server. The CDN is part of a distributed “cloud” network, so it is -handled by servers around the world. That means that you should get access -to a server geographically near you, for a fast, reliable connection.

-

The CDN hosts the most current version of MathJax, as well as older -versions, so you can either link to a version that stays up-to-date as -MathJax is improved, or you can stay with one of the release versions so -that your pages always use the same version of MathJax.

-

The URL that you use to obtain MathJax determines the version that you -get. The CDN has the following directory structure:

-
mathjax/         # project-name
-   1.0-latest/
-   1.1-latest/   # the 1.1 release with any ciritical patches
-   2.0-beta/     # temporary
-   2.0-latest/   # the 2.0 release with any ciritical patches
-   ...
-   latest/       # the most current version (2.0-latest in this case)
-
-
-

Each directory corresponds to an official MathJax release; however, -hotfixes (urgent bug fixes) will be applied in each release branch as -necessary, even if new releases are not prepared. In other words, -1.1-latest will initially point to v1.1, but over time may be updated -with patches that would correspond to releases that might be numbers 1.1a, -1.1b, etc., even if such releases are not actually packaged for -separate distribution (they likely won’t be). -We may occasionally introduce directories for betas, as indicated above, -but they will be temporary, and will be removed after the official -release.

-

To load from a particular release, use the directory for that release. -For example,

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

will load the stable v1.1 version, even after we release v2.0 or other later -versions, while

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

will always be the most current stable release, so it will go from v1.1 to -v2.0 automatically when that is released. Note that all the versions -available on the CDN are stable versions; the development version is not -hosted on the CDN. (If you wish to use the development version of -MathJax, you will need to install your own copy; see Installing -and Testing MathJax for information on how to do that.)

-

The use of cdn.mathjax.org is governed by its terms of service, so be -sure to read that before linking to the MathJax CDN server.

-

If you wish to use the MathJax CDN but use your own configuration file -rather than one of the pre-defined ones, see the information at the -end of the Using a Local Configuration File section below.

-
-
-

Configuring MathJax

-

There are two ways to configure MathJax: via a configuration file, or by -including configuration commands within the web page itself. These can be -used independently, or in combination. For example, you can load a main -pre-defined configuration file, but include in-line commands to -adjust the configuration to your needs.

-

Note that you must use at least one of these two forms of configuration. -Unlike MathJax v1.0, version 1.1 and higher does not load a default -configuration file. If you have been using version 1.0’s -config/MathJax.js for your configuration, you will need to load that -configuration file explicitly via a config parameter, as described -below.

-
-
-

Using a configuration file

-

The first way to configure MathJax is to use a configuration file. -MathJax comes with a number of pre-defined configuration files, which are -stored in the MathJax/config directory. Among these are the following

-
-
-default.js
-

A file that contains nearly all the configuration options with comments -describing them, which you can edit to suit your needs.

-
- -
-
-TeX-AMS-MML_HTMLorMML.js
-

Allows math to be specified in TeX, LaTeX, or -MathML notation, with the AMSmath and AMSsymbols -packages included, producing output using MathML if the browser -supports it sufficiently, and HTML-with-CSS otherwise.

-
- -
-
-TeX-AMS_HTML.js
-

Allows math to be specified in TeX or LaTeX notation, with the -AMSmath and AMSsymbols packages included, and produces output -using the HTML-CSS output processor.

-
- -
-
-MML_HTMLorMML.js
-

Allows math to be specified using MathML notation, and produces MathML -output if the browser supports it sufficiently, or HTML-CSS output otherwise.

-
- -
-
-AM_HTMLorMML.js
-

Allows math to be specified using AsciiMath notation, -producing output in MathML if the browser supports it -sufficiently, or as HTML-with-CSS otherwise.

-
- -
-
-TeX-AMS-MML_SVG.js
-

Allows math to be specified in TeX, LaTeX, or -MathML notation, with the AMSmath and AMSsymbols -packages included, producing output using SVG.

-
- -
-
-TeX-MML-AM_HTMLorMML.js
-

Allows math to be specified in TeX, LaTeX, -MathML, or AsciiMath notation, with the AMSmath -and AMSsymbols packages included, producing output using MathML -if the browser supports it sufficiently, and HTML-with-CSS -otherwise.

-
- -

The first of these is a file that you can edit to suit your needs. It -contains nearly all the configuration options that MathJax allows, and has -comments explaining them. The others are what are called combined -configuration files, which not only configure MathJax, but also pre-load the -various files that the configuration requires. (The contents of these -files are explained in more detail in the Common Configurations section.)

-

Usually, MathJax loads its components only when they are needed, but each -component will require a separate file to be loaded, and that can cause -delays before the mathematics is displayed. The combined configuration -files load the majority of the needed files all as one large file, reducing -the number of network requests that are needed. That means you will -probably be getting the components that MathJax needs faster than you would -without the combined file, but you may be loading components that are never -actually used; that is the trade off.

-

Each of the combined configuration files comes in two flavors: the ones -listed above, which only configure the output processors but don’t include -the main code, and a “full” version, that also includes the complete -output processors. For example, with TeX-AMS_HTML.js and -TeX-AMS_HTML-full.js, the latter includes the complete HTML-CSS output -processor. The “full” configuration files are substantially larger (on -the order of 70KB more), so you need to decide whether it is worth loading the -full configuration for your pages.

-

If most of your pages include mathematics, then it is to your advantage to -load the full version, but if you are including MathJax in a theme file for -a blog or wiki that only includes mathematics occasionally, then perhaps it -is better to use the standard configuration instead, in which case the -output processors are only loaded when they are actually needed, saving the -loading of 70KB for pages that don’t. Of course, if your server is -configured to compress the files it sends, the difference between the two -is considerably reduced. Furthermore, most browsers will cache the -javascript they receive, so the download cost should only occur on the -first page a user views, so it may be best to use the “full” version after -all. Note, however, that mobile devices sometimes have limits on the size -of files that they cache, so they may be forced to download the -configuration on every page. You need to keep these issues in mind as you -decide on which configuration to use.

-

To load a configuration file, use config=filename (where filename -is one of the names above without the .js) as a parameter to the URL of -the MathJax.js file. For example

-
<script type="text/javascript"
-   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-
-
-

loads the config/TeX-AMS-MML_HTMLorMML.js configuration file from the -MathJax distributed network service.

-

You can include more than one configuration file by separating them with -commas. For example, if you have a locally defined configuration file -called MathJax/config/local/local.js that modifies the settings for the -TeX-AMS_HML configuration, defines some new TeX macros, and so on, you -can use

-
<script type="text/javascript"
-   src="path-to-MathJax/MathJax.js?config=TeX-AMS_HTML,local/local">
-</script>
-
-
-

to first load the main configuration, then the local modifications.

-
-
-

Using a local configuration file with the CDN

-

You can load MathJax from the MathJax CDN server but still use a -configuration from your own local server. For example, suppose you -have a configuration file called local.js on your own server, in a -directory called MathJax/config/local. Then you can load MathJax -from the CDN and still use your configuration file as follows:

-
<script type="text/javascript"
-   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://myserver.com/MathJax/config/local/local.js">
-</script>
-
-
-

Because the local.js file is not on the CDN server, you must give -the complete URL to the local configuration file. Note that you also -have to edit the loadComplete() call that is at the bottom of -the configuration file to change it from -[MathJax]/config/local/local.js to the complete URL as you give it -in the config parameter. In the example above, it would be

-
MathJax.Ajax.loadComplete("http://myserver.com/MathJax/config/local/local.js");
-
-
-

That is because the [MathJax] in the original URL refers to the -root directory where MathJax.js was loaded, which is on the CDN, -not your local server, and so you need to tell MathJax the actual -location of your configuration file.

-
-
-

Using in-line configuration options

-

The second way to configure MathJax is through in-line configuration, -which puts the configuration options within the web page itself. The use -of in-line configuration with MathJax requires two separate <script> -tags: one for specifying the configuration settings and one for loading of -MathJax. Because MathJax starts its configuration process as soon as it is -loaded, the configuration script must come before the script tag that -loads MathJax.js itself. You do this by including a <script> with -type="text/x-mathjax-config" whose content will be run when -MathJax performs its configuration. Generally, this script will -include a MathJax.Hub.Config() call to perform MathJax -configuration, but it can also include other MathJax commands, such as -registering signal actions, or any JavaScript commands that you want. -You can have as many such script tags as you need, and MathJax will -process them in the order in which they appear in the document.

-

For instance,

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    extensions: ["tex2jax.js"],
-    jax: ["input/TeX", "output/HTML-CSS"],
-    tex2jax: {
-      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
-      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
-      processEscapes: true
-    },
-    "HTML-CSS": { availableFonts: ["TeX"] }
-  });
-</script>
-<script type="text/javascript" src="path-to-MathJax/MathJax.js">
-
-
-

This example includes the tex2jax preprocessor and configures it to use -both the standard TeX and LaTeX math delimiters. It uses -the TeX input processor and the HTML-CSS output processor, and forces the -HTML-CSS processor to use the TeX fonts rather than other locally installed -fonts (e.g., STIX fonts). See the configuration options section (or the comments in the config/default.js -file) for more information about the configuration options that you can -include in the MathJax.Hub.Config() call. This -configuration does not load any pre-defined configuration file.

-

Note that you can combine in-line configuration with file-based -configuration; simply include text/x-mathjax-config scripts as above, -but also include config=filename when you load the MathJax.js -file. For example, the tex2jax preprocessor does not enable the TeX -single-dollar in-line math delimiters by default. You can load one of the -pre-defined configuration files that includes the TeX preprocessor, and use -an in-line configuration block to enable the single-dollar signs, as -in this example:

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    tex2jax: {
-      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
-      processEscapes: true
-    }
-  });
-</script>
-<script type="text/javascript" src="path-to-MathJax/MathJax.js?config=TeX-AMS_HTML">
-</script>
-
-
-
-
-

Configuring MathJax after it is loaded

-

Because MathJax begins its configuration process immediately after it is -loaded (so that it can start loading files as quickly as it can), the -configuration blocks for MathJax must come before MathJax.js is loaded, -so they will be available to MathJax when it starts up. There are -situations, however, when you might want to put off configuring MathJax -until later in the page.

-

One such situation is when you have a site that loads MathJax as part of a -theme or template, but want to be able to modify the configuration on -specific pages of the site. To accomplish this, you need to ask MathJax -to delay its startup configuration until some later time. MathJax uses -the delayStartupUntil parameter to control the timing of the startup -sequence. By default, it is set to none, meaning there is no delay -and MathJax starts configuration right away.

-

You can set delayStartupUntil=onload in order to prevent MathJax from -continuing its startup process until the page’s onLoad handler fires. This -allows MathJax to find the text/x-mathjax-config blocks that occur -anywhere on the page, not just the ones that appear above the <script> -that loads MathJax.js. It also means that MathJax will not begin -loading any of the files that it needs until then as well, which may delay -the displaying of your mathematics, since the onLoad handler doesn’t -execute until all the images and other media are available. (If you have -used a combined configuration file, however, it already includes all the -main files that MathJax needs, so there is not much loss in delaying the -startup.)

-

You can set delayStartupUntil=configured in order to delay the -startup configuration until the MathJax.Hub.Configured() -method is called. This allows you to delay startup until later on the -page, but then restart the MathJax configuration process as soon as -possible rather than waiting for the entire page to load. For -example, you could use

-
<script type="text/javascript"
-   src="path-to-MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML&delayStartupUntil=configured">
-</script>
-
-
-

in your theme’s header file, and

-
<script type="text/javascript">
-  MathJax.Hub.Configured()
-</script>
-
-
-

in its footer, so that MathJax will delay setting up until the footer -is reached, but will not have to wait until images and other files are -loaded. In this way, if you have text/x-mathjax-config script -tags within the main body of the document, MathJax will read and -process those before continuing its startup. In this way you can use -a default configuration that can be modified on a page-by-page basis.

-

Note that MathJax.Hub.Configured() is not called by MathJax; -you must make that call somewhere within the page yourself after the -configuration blocks are set up. If you do not execute this function, -MathJax will not process any of the math on the page.

-
-
-

Details of the MathJax configuration process

-

Since there are a number of different ways to configure MathJax, it is -important to know how they interact. The configuration actions are the -following:

-
    -
  1. Process any configuration file explicitly specified as a script parameter.
  2. -
  3. Process the in-line script body (deprecated), if present.
  4. -
  5. If delayed startup is requested, wait for the indicated signal.
  6. -
  7. Process text/x-mathjax-config config blocks.
  8. -
  9. Process any config files queued in the configuration’s config array -by earlier config code.
  10. -
-

Note that text/x-mathjax-config script blocks must either precede the -MathJax.js script element, or startup must be delayed. Otherwise, blocks -that follow the MathJax.js script element may or may not be available -when MathJax runs, and browser-dependent erratic behavior will result.

-
-
- - -
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/docs/html/dynamic.html b/docs/html/dynamic.html deleted file mode 100644 index 8bb698b2d..000000000 --- a/docs/html/dynamic.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - - Loading MathJax Dynamically — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Loading MathJax Dynamically

-

MathJax is designed to be included via a <script> tag in the -<head> section of your HTML document, and it does rely on being -part of the original document in that it uses an onload or -DOMContentLoaded event handler to synchronize its actions with the -loading of the page. If you wish to insert MathJax into a document -after it has been loaded, that will normally occur after the page’s -onload handler has fired, and prior to version 2.0, MathJax had to -be told not to wait for the page onload event by calling -MathJax.Hub.Startup.onload() by hand. That is no longer -necessary, as MathJax v2.0 detects whether the page is already -available and when it is, it processes it immediately rather than -waiting for an event that has already happened.

-

Here is an example of how to load and configure MathJax dynamically:

-
(function () {
-  var script = document.createElement("script");
-  script.type = "text/javascript";
-  script.src  = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
-  document.getElementsByTagName("head")[0].appendChild(script);
-})();
-
-
-

If you need to provide in-line configuration, you can do that using a -MathJax’s configuration script:

-
(function () {
-  var head = document.getElementsByTagName("head")[0], script;
-  script = document.createElement("script");
-  script.type = "text/x-mathjax-config";
-  script[(window.opera ? "innerHTML" : "text")] =
-    "MathJax.Hub.Config({\n" +
-    "  tex2jax: { inlineMath: [['$','$'], ['\\\\(','\\\\)']] }\n" +
-    "});"
-  head.appendChild(script);
-  script = document.createElement("script");
-  script.type = "text/javascript";
-  script.src  = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
-  head.appendChild(script);
-})();
-
-
-

You can adjust the configuration to your needs, but be careful to get -the commas right, as Internet Explorer 6 and 7 will not tolerate an -extra comma before a closing brace. The window.opera test is -because some versions of Opera don’t handle setting script.text -properly, while some versions of Internet Explorer don’t handle -setting script.innerHTML.

-

Note that the only reliable way to configure MathJax is to use an -in-line configuration block of the type discussed above. You should -not call MathJax.Hub.Config() directly in your code, as it will -not run at the correct time — it will either run too soon, in which case -MathJax may not be defined and the function will throw an error, or it -will run too late, after MathJax has already finished its configuration -process, so your changes will not have the desired effect.

-
-

MathJax and GreaseMonkey

-

You can use techniques like the ones discussed above to good effect in -GreaseMonkey scripts. There are GreaseMonkey work-alikes for all the -major browsers:

- -

Note, however, that most browsers don’t allow you to insert a script -that loads a file:// URL into a page that comes from the web (for -security reasons). That means that you can’t have your GreaseMonkey -script load a local copy of MathJax, so you have to refer to a -server-based copy. The MathJax CDN works nicely for this.

-
-

Here is a script that runs MathJax in any document that contains -MathML (whether it includes MathJax or not). That allows -browsers that don’t have native MathML support to view any web pages -with MathML, even if they say it only works in Firefox and -IE+MathPlayer.

-
// ==UserScript==
-// @name           MathJax MathML
-// @namespace      http://www.mathjax.org/
-// @description    Insert MathJax into pages containing MathML
-// @include        *
-// ==/UserScript==
-
-if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) {
-  if ((document.getElementsByTagName("math").length > 0) ||
-      (document.getElementsByTagNameNS == null ? false :
-      (document.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math").length > 0))) {
-    var script = document.createElement("script");
-    script.type = "text/javascript";
-    script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full";
-    document.getElementsByTagName("head")[0].appendChild(script);
-  }
-}
-
-
-

Source: mathjax_mathml.user.js

-
-

Here is a script that runs MathJax in Wikipedia pages after first -converting the math images to their original TeX code.

-
// ==UserScript==
-// @name           MathJax in Wikipedia
-// @namespace      http://www.mathjax.org/
-// @description    Insert MathJax into Wikipedia pages
-// @include        http://en.wikipedia.org/wiki/*
-// ==/UserScript==
-
-if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) {
-  //
-  //  Replace the images with MathJax scripts of type math/tex
-  //
-  var images = document.getElementsByTagName('img'), count = 0;
-  for (var i = images.length - 1; i >= 0; i--) {
-    var img = images[i];
-    if (img.className === "tex") {
-      var script = document.createElement("script"); script.type = "math/tex";
-      if (window.opera) {script.innerHTML = img.alt} else {script.text = img.alt}
-      img.parentNode.replaceChild(script,img); count++;
-    }
-  }
-  if (count) {
-    //
-    //  Load MathJax and have it process the page
-    //
-    var script = document.createElement("script");
-    script.type = "text/javascript";
-    script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full";
-    document.getElementsByTagName("head")[0].appendChild(script);
-  }
-}
-
-
-

Source: mathjax_wikipedia.user.js

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Using Signals

-

Next topic

-

Modifying Math on the Page

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/genindex.html b/docs/html/genindex.html deleted file mode 100644 index 0f9696663..000000000 --- a/docs/html/genindex.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - - Index — MathJax v2.0 documentation - - - - - - - - - - - - - -
-
-
-
- - -

Index

- -
- A | C | D | E | F | G | H | I | J | L | M | N | P | Q | R | S | T | U | W | Z -
-

A

- - - -
-
Add()
-
addElement()
-
addText()
-
-
AsciiMath
-
Augment()
-
- -

C

- - - -
-
call()
-
Callback
-
Callback Queue
-
Callback Signal
-
-
can()
-
Clear()
-
Config()
-
- -

D

- - -
-
Delay()
-
- -

E

- - - -
-
Element()
-
Execute()
-
-
ExecuteHook()
-
ExecuteHooks()
-
- -

F

- - - -
-
File()
-
fileURL()
-
-
filterText()
-
formatError()
-
- -

G

- - - -
-
getAllJax()
-
getJaxByInputType()
-
getJaxByType()
-
-
getJaxFor()
-
getJaxFromMath()
-
getScript()
-
- -

H

- - - -
-
has()
-
Hooks()
-
-
HTML-CSS
-
- -

I

- - - -
-
Init()
-
Insert()
-
Interest()
-
-
isa()
-
isJax()
-
- -

J

- - -
-
jax
-
- -

L

- - - -
-
LaTeX
-
Load()
-
loadComplete()
-
loadError()
-
-
LoadHook()
-
loadTimeout()
-
Log()
-
- -

M

- - - -
-
Markdown
-
MathML
-
-
MessageHook()
-
- -

N

- - - -
-
needsUpdate()
-
-
NoInterest()
-
- -

P

- - - -
-
Post()
-
postTranslate()
-
Preloading()
-
PreProcess()
-
-
preProcess()
-
preTranslate()
-
Process()
-
Push()
-
- -

Q

- - -
-
Queue()
-
- -

R

- - - -
-
Register()
-
Remove()
-
Reprocess()
-
Require()
-
-
Rerender()
-
reset()
-
Resume()
-
- -

S

- - - -
-
Set()
-
setRenderer()
-
setScript()
-
Signal()
-
SourceElement()
-
Startup()
-
-
STIX
-
Styles()
-
Subclass()
-
Suspend()
-
SVG
-
- -

T

- - - -
-
TeX
-
Text()
-
TextNode()
-
-
Translate()
-
Typeset()
-
- -

U

- - -
-
Update()
-
- -

W

- - -
-
wait()
-
- -

Z

- - -
-
Zoom()
-
- - - -
-
-
-
-
- - - - - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/glossary.html b/docs/html/glossary.html deleted file mode 100644 index 167b367c2..000000000 --- a/docs/html/glossary.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - Glossary — MathJax v2.0 documentation - - - - - - - - - - - - - - -
-
-
-
- -
-

Glossary

-
-
AsciiMath
-

A notation for mathematics that uses characters commonly -available on all computer keyboards to represent the math in -an algebra-like syntax that should be intuitive and easily -read.

-
-

See also

-

AsciiMath home page

-
-
-
Callback
-
A JavaScript function that is used to perform actions that -must wait for other actions to complete before they are -performed.
-
Callback Queue
-
MathJax uses Queues to synchronize its activity so that -actions that operate asynchronously (like loading files) will -be performed in the right order. Callback functions -are pushed onto the queue, and are performed in order, with -MathJax handling the synchronization if operations need to -wait for other actions to finish.
-
Callback Signal
-
A JavaScript object that acts as a mailbox for MathJax events. -Like an event handler, but it also keeps a history of -messages. Your code can register an “interest” in a signal, -or can register a callback to be called when a -particular message is sent along the signal channel.
-
HTML-CSS
-
MathJax output form that relys only on HTML and CSS 2.1, -allowing MathJax to remain compatible across all browsers.
-
jax
-
MathJax’s input and output processors are called “jax”, as is -its internal format manager. The code for the jax are in the -MathJax/jax directory.
-
LaTeX
-

LaTeX is a variant of TeX that is now the dominant TeX style.

-
-

See also

-

LaTeX Wikipedia entry

-
-
-
Markdown
-

A text format commonly used in blogs and wikis for creating -web pages without the need for complicated markup notation. -It is intended to be an easy-to-read and easy-to-write format -that still gives you the ability to specify a rich text result -(including things like bold, italics, bullet lists, and so -on).

-
-

See also

-

Markdown home page

-
-
-
MathML
-

An XML specification created to describe mathematical -notations and capture both its structure and content. MathML -is much more verbose than TeX, but is much more -machine-readable.

- -
-
STIX
-

The Scientific and Technical Information Exchange font -package. A comprehensive set of scientific glyphs.

-
-

See also

-

STIX project

-
-
-
SVG
-

Acronym for Scalable Vector Graphics. SVG is a graphics -format that allows images to be described as a collection of -graphics objects (like lines, rectangles, etc) rather than as -a bitmap of colored pixels. MathJax can use this format to -display mathematics as an alterantive to its HTML-CSS or -NativeMML output.

-
-

See also

-

SVG Wilipedia entry

-
-
-
TeX
-

A document markup language with robust math markup commands -developed by Donald Knuth in the late 1970’s, but still in -extensive use today. It became the industry standard for -typesetting of mathematics, and is one of the most common -formats for mathematical journals, articles, and books.

-
-

See also

-

TeX Wikipedia entry

-
-
-
-
- - -
-
-
-
-
-

Previous topic

-

CSS Style Objects

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/index.html b/docs/html/index.html index 7a4b870f7..1ba9b9fd4 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -1,193 +1,27 @@ + + + +MathJax Documentation + + - +

+The source files for the documentation are now kept in a separate +GitHub repository at +

+

+https://github.com/mathjax/mathjax-docs +

- - - - - MathJax Documentation — MathJax v2.0 documentation - - - - - - - - - - - - - - -
- -
-
-

Table Of Contents

- - -

Next topic

-

What is MathJax?

- - -
-
-
-
- - - - - \ No newline at end of file +

+The HTML versions are now available at +

+

+http://mathjax.readthedocs.org/en/latest/ +

+

+where it is possible for you to submit corrections and modifications +directly to the documentation on line. +

+ + diff --git a/docs/html/installation.html b/docs/html/installation.html deleted file mode 100644 index 857fea12f..000000000 --- a/docs/html/installation.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - Installing and Testing MathJax — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Installing and Testing MathJax

-

The easiest way to use MathJax is to link directly to the MathJax -distributed network service (see Using the MathJax CDN). In that case, there is no need to install MathJax -yourself, and you can begin using MathJax right away; skip this document on -installation and go directly to Configuring MathJax.

-

MathJax can be loaded from a public web server or privately from your -hard drive or other local media. To use MathJax in either way, you -will need to obtain a copy of MathJax. There are three ways to do -this: via git, svn, or via a pre-packaged archive. We -recommend git or svn, as it is easier to keep your -installation up to date with these tools.

-
-

Obtaining MathJax via Git

-

The easiest way to get MathJax and keep it up to date is to use the Git version control system to access our GitHub repository. Use the command

-
git clone git://github.com/mathjax/MathJax.git MathJax
-
-
-

to obtain and set up a copy of MathJax. (Note that there is no longer -a fonts.zip file, as there was in v1.0, and that the fonts -directory is now part of the repository itself.)

-

Whenever you want to update MathJax, you can now use

-
cd MathJax
-git remote show origin
-
-
-

to check if there are updates to MathJax (this will print several -lines of data, but the last line should tell you if your copy is up to -date or out of date). If MathJax needs updating, use

-
cd MathJax
-git pull origin
-
-
-

to update your copy of MathJax to the current release version. If you -keep MathJax updated in this way, you will be sure that you have the -latest bug fixes and new features as they become available.

-

This gets you the current development copy of MathJax, which is the version -that contains all the latest changes to MathJax. Although we try to make -sure this version is a stable and usable version of MathJax, it is under -active development, and at times it may be less stable than the “release” -version. If you prefer to use the most stable version (that may not -include all the latest patches and features), you will want to get one -of the tagged releases. Use

-
cd MathJax
-git tag -l
-
-
-

to see all tagged versions, and use

-
cd MathJax
-git checkout <tag_name>
-
-
-

to checkout the indicated version of MathJax, where <tag_name> is -the name of the tagged version you want to use. When you want to -upgrade to a new release, you will need to repeat this for the latest -release tag.

-

Each of the main releases also has a branch in which critical updates -are applied (we try hard not to patch the stable releases, but sometimes -there is a crucial change that needs to be made). If you want to use the -patched version of a release, then check out the branch rather than the -tag. Use

-
cd MathJax
-git branch
-
-
-

to get a list of the available branches. There are separate branches -for the main releases, but with -latest appended. These contain -all the patches for that particular release. You can check out one of -the branches just as you would a tagged copy. For example, the branch -for the v2.0 tagged release is v2.0-latest. To get this -release, use

-
cd MathJax
-git checkout v2.0-latest
-
-
-

and to update it when changes occur, use

-
cd MathJax
-git pull origin v2.0-latest
-
-
-
-
-

Obtaining MathJax via SVN

-

If you are more comfortable with the subversion source control system, you may want -to use GitHub’s svn service to obtain MathJax. If you want to get the -latest revision using svn, use the command

-
svn checkout http://github.com/mathjax/MathJax/trunk MathJax
-
-
-

to obtain and set up a copy of MathJax. (Note that there is no longer -a fonts.zip file as of v1.1, and that the fonts directory is -now part of the repository itself.)

-

Whenever you want to update MathJax, you can now use

-
cd MathJax
-svn status -u
-
-
-

to check if there are updates to MathJax. If MathJax needs updating, -use

-
cd MathJax
-svn update
-
-
-

to update your copy of MathJax to the current release version. If you -keep MathJax updated in this way, you will be sure that you have the -latest bug fixes and new features as they become available.

-

This gets you the current development copy of MathJax, which is the version -that contains all the latest changes to MathJax. Although we try to make -sure this version is a stable and usable version of MathJax, it is under -active development, and at times it may be less stable than the “release” -version. If you prefer to use one of the tagged releases instead, -then use

-
svn checkout http://github.com/mathjax/MathJax/branch/[name] MathJax
-
-
-

where [name] is replaced by the name of the branch you want to -check out; e.g., 2.0-latest. The branch names can be found on the -GitHub MathJax page under the -branches tab.

-
-
-

Obtaining MathJax via an archive

-

Release versions of MathJax are available in archive files from the -MathJax download page or the -MathJax GitHub page (via the -“zip” button, or the “downloads” tab), where you can download the archive -that you need.

-

You should download the v2.0 archive (which will get you a file with a -name like mathjax-MathJax-v2.0-X-XXXXXXXX.zip, where the X’s are -some sequence of random-looking letters and numbers), then simply unzip -it. Once the MathJax directory is unpacked, you should move it to the -desired location on your server (or your hard disk, if you are using -it locally rather then through a web server). One natural location is -to put it at the top level of your web server’s hierarchy. That would -let you refer to the main MathJax file as /MathJax/MathJax.js from -within any page on your server.

-

From the MathJax GitHub download link, you can also select -the Download .tar.gz or Download .zip buttons to get a copy of -the current development version of MathJax that contains all the -latest changes and bug-fixes.

-

If a packaged release receives any important updates, then those -updates will be part of the branch for that version. The link to -the .zip file in the download list will be the original release -version, not the patched version. To obtain the patched version, use -the Branches drop down menu (at the far left of the menus within the -page) to select the release branch that you want (for example -v2.0-latest), and then use the “zip” button just above it to get -the latest patched version of that release.

-
-
-

Testing your installation

-

Use the HTML files in the test directory to see if your -installation is working properly:

-
test/
-    index.html          # Tests default configuration
-    index-images.html   # Tests image-font fallback display
-    sample.html         # Sample page with lots of pretty equations
-    examples.html       # Page with links to all sample pages
-
-

Open these files in your browser to see that they appear to be working -properly. If you have installed MathJax on a server, use the web -address for those files rather than opening them locally. When you -view the index.html file, you should see (after a few moments) a -message that MathJax appears to be working. If not, you should check -that the files have been transferred to the server completely, and that -the permissions allow the server to access the files and folders that -are part of the MathJax directory (be sure to verify the MathJax -folder’s permissions as well). Checking the server logs may help -locate problems with the installation.

-
-
-

Notes about shared installations

-

Typically, you want to have MathJax installed on the same server as -your web pages that use MathJax. There are times, however, when that -may be impractical, or when you want to use a MathJax installation at -a different site. For example, a departmental server at -www.math.yourcollege.edu might like to use a college-wide -installation at www.yourcollege.edu rather than installing a -separate copy on the departmental machine. MathJax can certainly -be loaded from another server, but there is one important caveat — -Firefox’s and IE9’s same-origin security policy for cross-domain scripting.

-

Firefox’s interpretation of the same-origin policy is more strict than most -other browsers, and it affects how fonts are loaded with the @font-face -CSS directive. MathJax uses this directive to load web-based math fonts -into a page when the user doesn’t have them installed locally on their own -computer. Firefox’s security policy, however, only allows this when the -fonts come from the same server as the web page itself, so if you load -MathJax (and hence its web fonts) from a different server, Firefox won’t be -able to access those web fonts. In this case, MathJax will pause while -waiting for the font to download (which will never happen); it will time -out after about 5 seconds and switch to image fonts as a fallback. -Similarly, IE9 has a similar same-origin policy in its IE9 standards -mode, so it exhibits this same behavior.

-

There is a solution to this, however, if you manage the server where -MathJax is installed, and if that server is running the Apache web -server. In the remote server’s -MathJax/fonts/ folder, create a file called -.htaccess that contains the following lines:

-
<FilesMatch "\.(ttf|otf|eot|woff)$">
-<IfModule mod_headers.c>
-Header set Access-Control-Allow-Origin "*"
-</IfModule>
-</FilesMatch>
-
-

and make sure the permissions allow the server to read this file. (The -file’s name starts with a period, which causes it to be an “invisible” file -on unix-based operating systems. Some systems, particularly those with -graphical user interfaces, may not allow you to create such files, so you -might need to use the command-line interface to accomplish this.)

-

This file should make it possible for pages at other sites to load MathJax -from this server in such a way that Firefox and IE9 will be able to -download the web-based fonts. If you want to restrict the sites that can -access the web fonts, change the Access-Control-Allow-Origin line to -something like:

-
Header set Access-Control-Allow-Origin "http://www.math.yourcollege.edu"
-
-

so that only pages at www.math.yourcollege.edu will be able to -download the fonts from this site. See the open font library -discussion of web-font linking -for more details.

-
-
-

Firefox and local fonts

-

Firefox’s same-origin security policy affects its ability to load -web-based fonts, as described above. This has implications not only -to cross-domain loading of MathJax, but also to using MathJax locally -from your hard disk. Firefox’s interpretation of the same-origin -policy for local files is that the “same domain” for a page is the -directory where that page exists, or any of its subdirectories. So if -you use MathJax in a page with a file:// URL, and if MathJax is -loaded from a directory other than the one containing the original -page, then MathJax will not be able to access the web-based fonts in -Firefox. In that case, MathJax will fall back on image fonts to -display the mathematics.

-

In order for Firefox to be able to load the fonts properly for a local -file, your MathJax installation must be in a subdirectory of the one -containing the page that uses MathJax. This is an unfortunate -restriction, but it is a limitiation imposed by Firefox’s security -model that MathJax can not circumvent. Currently, this is not a -problem for other browsers.

-

One solution to this problem is to install the MathJax fonts locally, so -that Firefox will not have to use web-based fonts in the first place. To -do that, either install the STIX fonts, or copy -the fonts from MathJax/fonts/HTML-CSS/TeX/otf into your systems fonts -directory and restart your browser (see the MathJax fonts help page for details).

-
-
-

IE9 and remote fonts

-

IE9’s same-origin policy affects its ability to load web-based fonts, as -described above. This has implications not ony to cross-domain loading of -MathJax, but also to the case where you view a local page (with a -file:// URL) that accesses MathJax from a remote site such as the MathJax -CDN service. In this case, IE9 does not honor the -Access-Control-Allow-Origin setting of the remote server (as it would -if the web page came from an http:// URL), and so it never allows the -font to be accessed.

-

One solution to this problem is to install the MathJax fonts locally so -that MathJax doesn’t have to use web-based fonts in the first place. Your -best bet is to install the STIX fonts on your system (see the MathJax -fonts help page for details).

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Getting Started

-

Next topic

-

Loading and Configuring MathJax

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/jsMath.html b/docs/html/jsMath.html deleted file mode 100644 index b69e7a395..000000000 --- a/docs/html/jsMath.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - Converting to MathJax from jsMath — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Converting to MathJax from jsMath

-

MathJax is the successor to the popular jsMath package for rendering -mathematics in web pages. Like jsMath, MathJax works by locating and -processing the mathematics within the webpage once it has been loaded -in the browser by a user viewing your web pages. If you are using -jsMath with its tex2math preprocessor, then switching to MathJax -should be easy, and is simply a matter of configuring MathJax -appropriately. See the section on Loading and Configuring MathJax for details.

-

On the other hand, if you are using jsMath’s <span -class="math">...</span> and <div class="math">...</div> tags to -mark the mathematics in your document, then you should use MathJax’s -jsMath2jax preprocessor when you switch to MathJax. To do this, -include "jsMath2jax.js" in the extensions array of your -configuration, with the jax array set to include "input/TeX". For -example,

-
<script type="text/x-mathjax-config">
-   MathJax.Hub.Config({
-    extensions: ["jsMath2jax.js"]
-  });
-</script>
-<script
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
-</script>
-
-
-

would load the jsMath2jax preprocessor, along with a configuration -file that processes TeX input and produces HTML-with-CSS output.

-

There are a few configuration options for jsMath2jax, which you -can find in the config/default.js file, or in the jsMath -configuration options section.

-

If you are generating your jsMath documents programmatically, it would be -better to convert from generating the jsMath <span> and <div> tags -to producing the corresponding MathJax <script> tags. You would use -<script type="math/tex"> in place of <span class="math"> and -<script type="math/tex; mode=display"> in place of <div -class="math">. See the section on How mathematics is stored in the -page for more details.

-
- - -
-
-
-
-
-

Previous topic

-

Migrating from MathJax v1.0 to v1.1

-

Next topic

-

The MathJax Processing Model

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/mathjax.html b/docs/html/mathjax.html deleted file mode 100644 index 602e8f62d..000000000 --- a/docs/html/mathjax.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - What is MathJax? — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

What is MathJax?

-

MathJax is an open-source JavaScript display engine for LaTeX, MathML, -and AsciiMath notation that works in all modern browsers. It was -designed with the goal of consolidating the recent advances in web -technologies into a single, definitive, math-on-the-web platform -supporting the major browsers and operating systems, including those -on mobile devices. It requires no setup on the part of the user (no -plugins to download or software to install), so the page author can -write web documents that include mathematics and be confident that -users will be able to view it naturally and easily. One simply -includes MathJax and some mathematics in a web page, and MathJax does -the rest.

-

MathJax uses web-based fonts (in those browsers that support it) to -produce high-quality typesetting that scales and prints at full -resolution (unlike mathematics included as images). MathJax can be -used with screen readers, providing accessibility for the visually -impaired. With MathJax, mathematics is text-based rather than -image-based, and so it is available for search engines, meaning that -your equations can be searchable, just like the text of your pages. -MathJax allows page authors to write formulas using TeX and LaTeX -notation, MathML, a World Wide Web -Consortium standard for representing mathematics in XML format, or -AsciiMath -notation. MathJax will even convert TeX notation into MathML, so that -it can be rendered more quickly by those browsers that support MathML -natively, or so that you can copy and paste it into other programs.

-

MathJax is modular, so it loads components only when necessary, and -can be extended to include new capabilities as needed. MathJax is -highly configurable, allowing authors to customize it for the special -requirements of their web sites. Finally, MathJax has a rich -application programming interface (API) that can be used to make the -mathematics on your web pages interactive and dynamic.

-
- - -
-
-
-
-
-

Previous topic

-

MathJax Documentation

-

Next topic

-

Getting Started

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/mathml.html b/docs/html/mathml.html deleted file mode 100644 index 519d84693..000000000 --- a/docs/html/mathml.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - - MathJax MathML Support — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

MathJax MathML Support

-

The support for MathML in MathJax consists of three parts: the -mml2jax preprocessor, the MathML input processor, and the NativeMML -output processor. The first of these looks for <math> tags within -your document and marks them for later processing by MathJax. The -second converts the MathML to the internal format used by MathJax, and -the third turns the internal format into MathML within the page so -that it can be displayed by the browser’s native MathML support.

-

Because of MathJax’s modular design, you do not need to use all three -of these components. For example, you could use the tex2jax -preprocessor and the TeX input processor, but the NativeMML output -processor, so that your mathematics is entered in TeX format, but -displayed as MathML. Or you could use the mml2jax preprocessor and -MathML input processor with the HTML-CSS output processor to make -MathML available in browsers that don’t have native MathML support. -It is also possible to have MathJax select the output processor for -you so that MathML is used in those browsers that support it well -enough, while HTML-CSS is used for those that don’t. See the -common configurations section for -details and examples.

-

Of course it is also possible to use all three components together. -It may seem strange to go through an internal format just to return to -MathML in the end, but this is actually what makes it possible to view -MathML within an HTML page (rather than an XHTML page), without -the complications of handling special MIME-types for the document, or -any of the other setup issues that make using native MathML -difficult. MathJax handles the setup and properly marks the -mathematics so that the browser will render it as MathML. In -addition, MathJax provides its contextual menu for the MathML, which -lets the user zoom the mathematics for easier reading, get and copy -the source markup, and so on, so there is added value to using MathJax -even with a pure MathML workflow.

-
-

MathML in HTML pages

-

For MathML that is handled via the preprocessor, you should not use -named MathML entities, but rather use numeric entities like -&#x221A; or unicode characters embedded in the page itself. The -reason is that entities are replaced by the browser before MathJax -runs, and some browsers report errors for unknown entities. For -browsers that are not MathML-aware, that will cause errors to be -displayed for the MathML entities. While that might not occur in the -browser you are using to compose your pages, it can happen with other -browsers, so you should avoid the named entities whenever possible. -If you must use named entities, you may need to declare them in the -DOCTYPE declaration by hand.

-

When you use MathML in an HTML document rather than an XHTML one -(MathJax will work woth both), you should not use the “self-closing” -form for tags with no content, but should use separate open and close -tags. That is, use

-
<mspace width="thinmathspace"></mspace>
-
-
-

rather than <mspace width="thinmathspace />. This is because HTML -(prior to HTML5) does not have self-closing tags, and some browsers -will get the nesting of tags wrong if you attempt to use them. For -example, with <mspace width="1em" />, since there is no closing -tag, the rest of the mathematics will become the content of the -<mspace> tag; but since <mspace> should have no content, the -rest of the mathematics will not be displayed. This is a common error -that should be avoided. Modern browsers that support HTML5 should be -able to handle self-closing tags, but older browsers have problems -with them, so if you want your mathematics to be visible to the widest -audience, do not use the self-closing form in HTML documents.

-
-
-

Supported MathML commands

-

MathJax supports the MathML3.0 -presentation mathematics tags, with some limitations. The MathML -support is still under active development, so some tags are not yet -implemented, and some features are not fully developed, but are -coming.

-

The deficiencies include:

-
    -
  • No support for the elementary math tags: mstack, mlongdiv, -msgroup, msrow, mscarries, and mscarry.
  • -
  • No support for alignment groups in tables.
  • -
  • No support for right-to-left rendering.
  • -
  • Not all attributes are supported for tables. E.g., columnspan -and rowspan are not implemented yet.
  • -
-

See the results of the MathML3.0 test suite for details.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

MathJax TeX and LaTeX Support

-

Next topic

-

MathJax AsciiMath Support

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/model.html b/docs/html/model.html deleted file mode 100644 index 5ec2a77b5..000000000 --- a/docs/html/model.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - - The MathJax Processing Model — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax Processing Model

-

The purpose of MathJax is to bring the ability to include mathematics -easily in web pages to as wide a range of browsers as possible. -Authors can specify mathematics in a variety of formats (e.g., -MathML, LaTeX, or AsciiMath), and MathJax provides high-quality -mathematical typesetting even in those browsers that do not have -native MathML support. This all happens without the need for special -downloads or plugins, but rendering will be enhanced if high-quality -math fonts (e.g., STIX) are available to the browser.

-

MathJax is broken into several different kinds of components: page -preprocessors, input processors, output processors, and the MathJax -Hub that organizes and connects the others. The input and output -processors are called jax, and are described in more detail -below.

-

When MathJax runs, it looks through the page for special tags that -hold mathematics; for each such tag, it locates an appropriate input -jax which it uses to convert the mathematics into an internal form -(called an element jax), and then calls an output jax to transform the -internal format into HTML content that displays the mathematics within -the page. The page author configures MathJax by indicating which -input and output jax are to be used.

-

Often, and especially with pages that are authored by hand, the -mathematics is not stored (initially) within the special tags needed -by MathJax, as that would require more notation than the average page -author is willing to type. Instead, it is entered in a form that is -more natural to the page author, for example, using the standard TeX -math delimiters $...$ and $$...$$ to indicate what part of the -document is to be typeset as mathematics. In this case, MathJax can -run a preprocessor to locate the math delimiters and replace them by -the special tags that it uses to mark the formulas. There are -preprocessors for TeX notation, MathML -notation, AsciiMath notation and the jsMath notation that uses span and div tags.

-

For pages that are constructed programmatically, such as HTML -pages that result from running a processor on text in some other -format (e.g., pages produced from Markdown documents, or via programs -like tex4ht), it would be best to use MathJax’s special tags -directly, as described below, rather than having MathJax run -another preprocessor. This will speed up the final display of the -mathematics, since the extra preprocessing step would not be needed. -It also avoids the conflict between the use of the less-than sign, -<, in mathematics and as an HTML special character (that starts -an HTML tag), and several other issues involved in having the -mathematics directly in the text of the page (see the documentation on -the various input jax for more details on this).

-
-

How mathematics is stored in the page

-

In order to identify mathematics in the page, MathJax uses special -<script> tags to enclose the mathematics. This is done because -such tags can be located easily, and because their content is not -further processed by the browser; for example, less-than signs can be -used as they are in mathematics, without worrying about them being -mistaken for the beginnings of HTML tags. One may also consider the -math notation as a form of “script” for the mathematics, so a -<script> tag makes at least some sense for storing the math.

-

Each <script> tag has a type attribute that identifies the -kind of script that the tag contains. The usual (and default) value -is type="text/javascript", and when a script has this type, the -browser executes the script as a javascript program. MathJax, -however, uses the type math/tex to identify mathematics in the TeX -and LaTeX notation, math/mml for mathematics in MathML notation, and -math/asciimath for mathematics in AsciiMath notation. When the -tex2jax, mml2jax, or asciimath2jax preprocessors run, they -create <script> tags with these types so that MathJax can process -them when it runs its main typesetting pass.

-

For example,

-
<script type="math/tex">x+\sqrt{1-x^2}</script>
-
-

represents an in-line equation in TeX notation, and

-
<script type="math/tex; mode=display">
-  \sum_{n=1}^\infty {1\over n^2} = {\pi^2\over 6}
-</script>
-
-

is a displayed TeX equation.

-

Alternatively, using MathML notation, you could use

-
<script type="math/mml">
-  <math>
-    <mi>x</mi>
-    <mo>+</mo>
-    <msqrt>
-      <mn>1</mn>
-      <mo>&#x2212;<!-- − --></mo>
-      <msup>
-        <mi>x</mi>
-        <mn>2</mn>
-      </msup>
-    </msqrt>
-  </math>
-</script>
-
-

for in-line math, or

-
<script type="math/mml">
-  <math display="block">
-    <mrow>
-      <munderover>
-        <mo>&#x2211;<!-- ∑ --></mo>
-        <mrow>
-          <mi>n</mi>
-          <mo>=</mo>
-          <mn>1</mn>
-        </mrow>
-        <mi mathvariant="normal">&#x221E;<!-- ∞ --></mi>
-      </munderover>
-    </mrow>
-    <mrow>
-      <mfrac>
-        <mn>1</mn>
-        <msup>
-          <mi>n</mi>
-          <mn>2</mn>
-        </msup>
-      </mfrac>
-    </mrow>
-    <mo>=</mo>
-    <mrow>
-      <mfrac>
-        <msup>
-          <mi>&#x03C0;<!-- π --></mi>
-          <mn>2</mn>
-        </msup>
-        <mn>6</mn>
-      </mfrac>
-    </mrow>
-  </math>
-</script>
-
-

for displayed equations in MathML notation. -As other input jax are created, they will use other types to identify -the mathematics they can process.

-

Page authors can use one of MathJax’s preprocessors to convert from -math delimiters that are more natural for the author to type (e.g., -TeX math delimiters like $$...$$) to MathJax’s <script> -format. Blog and wiki software could extend from their own markup -languages to include math delimiters, which they could convert to -MathJax’s <script> format automatically.

-

Note, however, that Internet Explorer has a bug that causes it to -remove the space before a <script> tag if there is also a space -after it, which can cause serious spacing problems with in-line math -in Internet Explorer. There are three possible solutions to this in -MathJax. The recommended way is to use a math preview (an element -with class MathJax_Preview) that is non-empty and comes right -before the <script> tag. Its contents can be just the word -[math], so it does not have to be specific to the mathematics -script that follows; it just has to be non-empty (though it could have -its style set to display:none). See also the preJax and -postJax options in the Core Configuration Options document for another approach.

-
-
-

The components of MathJax

-

The main components of MathJax are its preprocessors, its input and -output jax, and the MathJax Hub, which coordinates the actions of the -other components.

-

Input jax are associated with the different script types (like -math/tex or math/mml) and the mapping of a -particular type to a particular jax is made when the various jax -register their abilities with the MathJax Hub at configuration time. -For example, the MathML input jax registers the math/mml -type, so MathJax will know to call the MathML input jax when it sees -math elements of that type. The role of the input jax is to convert -the math notation entered by the author into the internal format used -by MathJax (called an element jax). This internal format is -essentially MathML (represented as JavaScript objects), so an input -jax acts as a translator into MathML.

-

Output jax convert that internal element jax format into a -specific output format. For example, the NativeMML output jax inserts -MathML tags into the page to represent the mathematics, while the -HTML-CSS output jax uses HTML with CSS styling to lay out the -mathematics so that it can be displayed even in browsers that don’t -understand MathML. MathJax also has an SVG output jax that -will render the mathematics using scalable vector grtaphics. Output -jax could be produced that render the mathematics using HTML5 canvas -elements, for example, or that speak an equation for blind users. The -MathJax contextual menu can be used to switch between the output jax -that are available.

-

Each input and output jax has a small configuration file that is -loaded when that input jax is included in the jax array in the -MathJax configuration, and a larger file that implements the core -functionality of that particular jax. The latter file is loaded the -first time the jax is needed by MathJax to process some mathematics. -Most of the combined configuration files include only the small -configuration portion for the input and output jax, making the -configuraiton file smaller and faster to load for those pages that -don’t actually incldue mathematics; the combined configurations that -end in -full include both parts of the jax, so there is no delay -when the math is to be rendered, but at the expense of a larger -initial download.

-

The MathJax Hub keeps track of the internal representations of the -various mathematical equations on the page, and can be queried to -obtain information about those equations. For example, one can obtain -a list of all the math elements on the page, or look up a particular -one, or find all the elements with a given input format, and so on. -In a dynamically generated web page, an equation where the source -mathematics has changed can be asked to re-render itself, or if a new -paragraph is generated that might include mathematics, MathJax can be -asked to process the equations it contains.

-

The Hub also manages issues concerning mouse events and other user -interaction with the equation itself. Parts of equations can be made -active so that mouse clicks cause event handlers to run, or activate -hyperlinks to other pages, and so on, making the mathematics as -dynamic as the rest of the page.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Converting to MathJax from jsMath

-

Next topic

-

The MathJax Startup Sequence

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/AsciiMath.html b/docs/html/options/AsciiMath.html deleted file mode 100644 index df812bf93..000000000 --- a/docs/html/options/AsciiMath.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - The AsciiMath input processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The AsciiMath input processor

-

The options below control the operation of the AsciiMath input -processor that is run when you include "input/AsciiMath" in the -jax array of your configuration or load a combined configuration -file that includes the AsciiMath input jax. They are listed with -their default values. To set any of these options, include a -AsciiMath section in your MathJax.Hub.Config() call. For -example

-
MathJax.Hub.Config({
-  AsciiMath: {
-    displaystyle: false
-  }
-});
-
-
-

would set the displaystyle configuration option so that the limits -for operators like summation symbols will appear next to them rather -than above and below.

-
-
-displaystyle: true
-

Determines whether operators like summation symbols will have -their limits above and below the operators (true) or to their -right (false). The former is how they would appear in displayed -equations that appear on their own lines, while the latter is -better suited to in-line equations so that they don’t interfere -with the line spacing so much.

-
- -
-
-decimal: "."
-

This is the character to be used for decimal points in numbers. -if you change this to ",", then you need to be careful about -entering points or intervals. E.g., use (1, 2) rather than -(1,2) in that case.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The MathML input processor

-

Next topic

-

The HTML-CSS output processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/FontWarnings.html b/docs/html/options/FontWarnings.html deleted file mode 100644 index 48f3ab288..000000000 --- a/docs/html/options/FontWarnings.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - - - The FontWarnings extension — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The FontWarnings extension

-

The options below control the operation of the FontWarnings -extension that is run when you include "FontWarnings.js" in the -extensions array of your configuration. They are listed with their -default values. To set any of these options, include a -FontWarnings section in your MathJax.Hub.Config() call. -For example

-
MathJax.Hub.Config({
-  FontWarnings: {
-    fadeoutTime: 2*1000
-  }
-});
-
-
-

would set the fadeoutTime option to 2000 milliseconds (2 seconds).

-
-
-messageStyle: { ... }
-

This sets the CSS styles to be used for the font warning message -window. See the extensions/FontWarnings.js file for details of -what are set by default. See the CSS style objects for details about how to specify CSS styles -via javascript objects.

-
- -
-
-Message: { ... }
-

This block contains HTML snippets to be used for the various -messages that the FontWarning extension can produce. There are -three messages that you can redefine to suit your needs:

-
-
-webFont: [ ... ]
-

The message used for when MathJax uses web-based fonts (rather -than local fonts installed on the user’s system).

-
- -
-
-imageFonts: [ ... ]
-

The message used for when MathJax must use image fonts rather -than local or web-based fonts (for those browsers that don’t -handle the @font-face CSS directive).

-
- -
-
-noFonts: [ ... ]
-

The message used when MathJax is unable to find any font to use -(i.e., neither local nor web-based nor image-based fonts are -available).

-
- -

Any message that is set to null rather than an HTML snippet -array will not be presented to the user, so you can set, for -example, the webFont message to null in order to have the -imageFonts and noFonts messages, but no message if MathJax -uses web-based fonts.

-

See the description of HTML snippets for -details about how to describe the messages using HTML snippets. -Note that in addition to the usual rules for defining such -snippets, the FontWarnings snippets can include references to -pre-defined snippets (that represent elements common to all three -messages). These are defined below in the HTML block, and are -referenced using ["name"] within the snippet, where name is -the name of one of the snippets defined in the HTML -configuration block. For example

-
Message: {
-  noFonts: [
-    ["closeBox"],
-    "MathJax is unable to locate a font to use to display ",
-    "its mathematics, and image fonts are not available, so it ",
-    "is falling back on generic unicode characters in hopes that ",
-    "your browser will be able to display them.  Some characters ",
-    "may not show up properly, or possibly not at all.",
-    ["fonts"],
-    ["webfonts"]
-  ]
-}
-
-
-

refers to the closeBox, fonts and webfonts snippets -declared in the HTML section.

-
- -
-
-HTML: { ... }
-

This object defines HTML snippets that are common to more than one -message in the Message section above. They can be included in -other HTML snippets by by using ["name"] in an HTML snippet, -where name refers to the name of the snippet in the HTML -block. The pre-defined snippets are:

-
-
-closeBox
-

The HTML for the close box in the FontWarning message.

-
- -
-
-webfonts
-

The HTML for a paragraph suggesting an upgrade to a more -modern browser that supports web fonts.

-
- -
-
-fonts
-

HTML that includes links to the MathJax and STIX font download -pages.

-
- -
-
-STIXfonts
-

HTML that gives the download link for the STIX fonts only. -(Used in place of fonts when the HTML-CSS option for -availableFonts only includes the STIX fonts.)

-
- -
-
-TeXfonts
-

HTML that gives the download link for the MathJax TeX fonts -only. (Used in place of fonts when the HTML-CSS option -for availableFonts only includes the TeX fonts.)

-
- -

You can add your own pre-defined HTML snippets to this object, or -override the ones that are there with your own text.

-
- -
-
-removeAfter: 12*1000
-

This is the amount of time to show the FontWarning message, in -milliseconds. The default is 12 seconds. Setting this value -to zero means that the message will not fade out (the user must -close it manually).

-
- -
-
-fadeoutSteps: 10
-

This is the number of steps to take while fading out the -FontWarning message. More steps make for a smoother fade-out. -Set to zero to cause the message to be removed without fading.

-
- -
-
-fadeoutTime: 1.5*1000
-

This is the time used to perform the fade-out, in milliseconds. -The default is 1.5 seconds.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The MathEvents extension

-

Next topic

-

Using MathJax in popular web platforms

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/HTML-CSS.html b/docs/html/options/HTML-CSS.html deleted file mode 100644 index 65207049a..000000000 --- a/docs/html/options/HTML-CSS.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - - - - The HTML-CSS output processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The HTML-CSS output processor

-

The options below control the operation of the HTML-CSS output -processor that is run when you include "output/HTML-CSS" in the -jax array of your configuration or load a combined configuration -file that includes the HTML-CSS output jax. They are listed with -their default values. To set any of these options, include a -"HTML-CSS" section in your MathJax.Hub.Config() call. -Note that, because of the dash, you need to enclose the name in -quotes. For example

-
MathJax.Hub.Config({
-  "HTML-CSS": {
-    preferredFont: "STIX"
-  }
-});
-
-
-

would set the preferredFont option to the STIX fonts.

-
-
-scale: 100
-

The scaling factor (as a percentage) of math with respect to the -surrounding text. The HTML-CSS output processor tries to match -the ex-size of the mathematics with that of the text where it is -placed, but you may want to adjust the results using this scaling -factor. The user can also adjust this value using the contextual -menu item associated with the typeset mathematics.

-
- -
-
-minScaleAdjust: 50
-

This gives a minimum scale (as a percent) for the scaling used by -MathJax to match the equation to the surrounding text. This will -prevent MathJax from making the mathematics too small.

-
- -
-
-availableFonts: ["STIX","TeX"]
-

This is a list of the fonts to look for on a user’s computer in -preference to using MathJax’s web-based fonts. These must -correspond to directories available in the -jax/output/HTML-CSS/fonts directory, where MathJax stores data -about the characters available in the fonts. Set this to -["TeX"], for example, to prevent the use of the STIX -fonts, or set it to an empty list, [], if you want to force -MathJax to use web-based or image fonts.

-
- -
-
-preferredFont: "TeX"
-

Which font to prefer out of the availableFonts list, when more -than one is available on the user’s computer.

-
- -
-
-webFont: "TeX"
-

This is the web-based font to use when none of the fonts listed -above are available on the user’s computer. Note that currently -only the TeX font is available in a web-based form (they are -stored in the fonts/HTML-CSS folder in the MathJax directory). -Set this to null to disable web fonts.

-
- -
-
-imageFont: "TeX"
-

This is the font to use for image fallback mode (when none of the -fonts listed above are available and the browser doesn’t support -web-fonts via the @font-face CSS directive). Note that currently -only the TeX font is available as an image font (they are stored -in the fonts/HTML-CSS directory).

-

Set this to null if you want to prevent the use of image fonts -(e.g., you have deleted or not installed the image fonts on your -server). In this case, only browsers that support web-based fonts -will be able to view your pages without having the fonts installed -on the client computer. The browsers that support web-based fonts -include: IE6 and later, Chrome, Safari3.1 and above, Firefox3.5 -and later, and Opera10 and later. Note that Firefox3.0 is not -on this list.

-
- -
-
-undefinedFamily: "STIXGeneral, 'Arial Unicode MS', serif"
-

This is the font-family CSS value used for characters that are not -in the selected font (e.g., for web-based fonts, this is where to -look for characters not included in the MathJax web fonts). IE -will stop looking after the first font that exists on the system -(even if it doesn’t contain the needed character), so order these -carefully.

-
- -
-
-mtextFontInherit: false
-

This setting controls whether <mtext> elements will be typeset -using the math fonts or the font of the surrounding text. When -false, the font for mathvariant="normal" will be used; -when true, the font will be inherited from the surrounding -paragraph.

-
- -
-
-EqnChunk: 50
-
-EqnChunkFactor: 1.5
-
-EqnChunkDelay: 100
-

These values control how “chunky” the display of mathematical -expressions will be; that is, how often the equations will be -updated as they are processed.

-

EqnChunk is the number of equations that will be typeset before -they appear on screen. Larger values make for less visual flicker -as the equations are drawn, but also mean longer delays before the -reader sees anything.

-

EqChunkFactor is the factor by which the EqnChunk will -grow after each chunk is displayed.

-

EqChunkDelay is the time (in milliseconds) to delay between -chunks (to allow the browser to respond to other user -interaction).

-

Set EqnChunk to 1, EqnChunkFactor to 1, and -EqnChunkDelay to 10 to get the behavior from MathJax v1.1 and -below.

-
- -
-
-linebreaks: {}
-

This is an object that configures automatic linebreaking in the -HTML-CSS output. In order to be backward compatible with earlier -versions of MathJax, only explicit line breaks are performed by -default, so you must enable line breaks if you want automatic -ones. The object contains the following values:

-
-
-automatic: false
-

This controls the automatic breaking of expressions: when -false, only linebreak="newline" is processed; when -true, line breaks are inserted automatically in long -expressions.

-
- -
-
-width: "container"
-

This controls how wide the lines of mathematics can be.

-

Use an explicit width like "30em" for a fixed width. -Use "container" to compute the size from the containing -element. -Use "nn% container" for a portion of the container. -Use "nn%" for a portion of the window size.

-

The container-based widths may be slower, and may not produce -the expected results if the layout width changes due to the -removal of previews or inclusion of mathematics during -typesetting.

-
- -
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the HTML-CSS -output. See the definitions in jax/output/HTML-CSS/config.js -for some examples of what are defined by default. See CSS -Style Objects for details on how to specify -CSS style in a JavaScript object.

-
- -
-
-showMathMenu: true
-

This value has been moved to the core configuration block, since -it applies to all output jax, but it will still be honored (for -now) if it is set here. See the Core configuration options for more details.

-
- -
-
-tooltip: { ... }
-

This sets the configuration options for <maction> elements -with actiontype="tooltip". (See also the #MathJax_Tooltip -style setting in jax/output/HTML-CSS/config.js, which can be -overridden using the styles option above.)

-

The tooltip section can contain the following options:

-
-
-delayPost: 600
-

The delay (in milliseconds) before the tooltip is posted after -the mouse is moved over the maction element.

-
- -
-
-delayClear: 600
-

The delay (in milliseconds) before the tooltop is cleared -after the mouse moves out of the maction element.

-
- -
-
-offsetX: 10
-
-offsetY: 5
-

These are the offset from the mouse position (in pixels) -where the tooltip will be placed.

-
- -
- -
- - -
-
-
-
-
-

Previous topic

-

The AsciiMath input processor

-

Next topic

-

The NativeMML output processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/MMLorHTML.html b/docs/html/options/MMLorHTML.html deleted file mode 100644 index 2cc9b8076..000000000 --- a/docs/html/options/MMLorHTML.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - The MMLorHTML configuration options — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MMLorHTML configuration options

-

The options below control the operation of the MMLorHTML configuration -file that is run when you include "MMLorHTML.js" in the config -array of your configuration, or when you use one of the combined -configuration files that ends with _HTMLorMML. They are listed -with their default values. To set any of these options, include a -MMLorHTML section in your MathJax.Hub.Config() call. For -example

-
MathJax.Hub.Config({
-  MMLorHTML: {
-    prefer: {
-      Opera: "MML"
-    }
-  }
-});
-
-
-

would set the prefer option so that the Opera browser would prefer -MathML to HTML-CSS output (while leaving the settings for other -browsers unchanged).

-

Note that if you use the MMLorHTML.js configuration file, you should -not specify an output processor in the jax array of your -configuration; MMLorHTML will fill that in for you.

-
-
-prefer: {
-
-MSIE: "MML",
-
-Firefox: "HTML",
-
-Safari: "HTML",
-
-Chrome: "HTML",
-
-Opera: "HTML",
-
-other: "HTML"
-
-}
-

This lets you set the preferred renderer on a browser-by-browser -basis. You set the browser to either "MML" or "HTML" -depending on whether you want to use the NativeMML or HTML-CSS -output processor. Note that although Opera and Safari do process some MathML -natively, their support is not sufficient to handle the more -complicated output generated by MathJax, so their settings are -"HTML" by default. Although Firefox does support a large -subset of MathJax, it does not implement all the features needed by -MathJax, and so it is also set to "HTML" by default (this is -new in v2.0).

-

Note that users can still use the MathJax contextual menu to select -a different renderer after the default one has been chosen by -MMLorHTML.js.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The SVG output processor

-

Next topic

-

The MathMenu extension

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/MathEvents.html b/docs/html/options/MathEvents.html deleted file mode 100644 index f4f1b6bb2..000000000 --- a/docs/html/options/MathEvents.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - The MathEvents extension — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathEvents extension

-

The options below control the operation of the MathEvents component that -allows handles mouse and menu events attached to mathematics that is -typeset by MathJax. They are listed with their -default values. To set any of these options, include a MathEvents -section in your MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  MathEvents: {
-    hover: 400
-  }
-});
-
-
-

would set the required delay for hovering over a math element to -400 milliseconds.

-
-
-hover: 500
-

This value is the time (in milliseconds) that a user must hold the -mouse still over a math element before it is considered to be -hovering over the math.

-
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the zoomed -mathematics. See the definitions in extensions/MathEvents.js -for details of what are defined by default. See CSS Style -Objects for details on how to specify CSS -style in a JavaScript object.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The MathZoom extension

-

Next topic

-

The FontWarnings extension

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/MathML.html b/docs/html/options/MathML.html deleted file mode 100644 index 25fdc61f3..000000000 --- a/docs/html/options/MathML.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - The MathML input processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathML input processor

-

The options below control the operation of the MathML input processor -that is run when you include "input/MathML" in the jax array of -your configuration or load a combined configuration file that includes -the MathML input jax. They are listed with their default values. To -set any of these options, include a MathML section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  MathML: {
-    useMathMLspacing: true
-  }
-});
-
-
-

would set the useMathMLspacing option so that the MathML rules for -spacing would be used (rather than TeX spacing rules).

-
-
-useMathMLspacing: false
-

Specifies whether to use TeX spacing or MathML spacing when the -HTML-CSS output jax is used.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The TeX input processor

-

Next topic

-

The AsciiMath input processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/MathMenu.html b/docs/html/options/MathMenu.html deleted file mode 100644 index 7a9b3cf1f..000000000 --- a/docs/html/options/MathMenu.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - The MathMenu extension — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathMenu extension

-

The options below control the operation of the contextual menu that is -available on mathematics that is typeset by MathJax. -They are listed with their default values. To set any of these -options, include a MathMenu section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  MathMenu: {
-    delay: 600
-  }
-});
-
-
-

would set the delay option to 600 milliseconds.

-
-
-delay: 150
-

This is the hover delay for the display (in milliseconds) for -submenus in the contextual menu: when the mouse is over a submenu -label for this long, the menu will appear. (The submenu also will -appear if you click on its label.)

-
- -
-
-helpURL: "http://www.mathjax.org/help/user/"
-

This is the URL for the MathJax Help menu item. When the user -selects that item, the browser opens a new window with this URL.

-
- -
-
-showRenderer: true
-

This controls whether the “Math Renderer” item will be displayed -in the “Math Settings” submenu of the MathJax contextual menu. -It allows the user to change between the HTML-CSS, NativeMML, -and SVG output processors for the mathematics on the page. Set -to false to prevent this menu item from showing.

-
- -
-
-showFontMenu: false
-

This controls whether the “Font Preference” item will be displayed -in the “Math Settings” submenu of the MathJax contextual menu. -This submenu lets the user select what font to use in the -mathematics produced by the HTML-CSS output processor. Note that -changing the selection in the font menu will cause the page to -reload. Set to false to prevent this menu item from showing.

-
- -
-
-showMathPlayer: true
-

This controls whether the “MathPlayer” item will be displayed in -the “Math Settings” submenu of the MathJax contextual menu. This -submenu lets the user select what events should be passed on to -the MathPlayer plugin, when it is -present. Mouse events can be passed on (so that clicks will be -processed by MathPlayer rather than MathJax), and emnu events can -be passed on (to allow the user access to the MathPlayer menu). -Set to false to prevent this menu item from showing.

-
- -
-
-showContext: false
-

This controls whether the “Contextual Menu” item will be displayed -in the “Math Settings” submenu of the MathJax contextual menu. -It allows the user to decide whether the MathJax menu or the -browser’s default contextual menu will be shown when the context -menu click occurs over mathematics typeset by MathJax. Set to -false to prevent this menu item from showing.

-
- -
-
-windowSettings: { ... }
-

These are the settings for the window.open() call that -creates the Show Source window. The initial width and height -will be reset after the source is shown in an attempt to make the -window fit the output better.

-
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the menu -components. See the definitions in extensions/MathMenu.js for -details of what are defined by default. See CSS Style -Objects for details on how to specify CSS -style in a JavaScript object.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The MMLorHTML configuration options

-

Next topic

-

The MathZoom extension

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/MathZoom.html b/docs/html/options/MathZoom.html deleted file mode 100644 index d7ca14101..000000000 --- a/docs/html/options/MathZoom.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - The MathZoom extension — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathZoom extension

-

The options below control the operation of the Math-Zoom feature that -allows users to see an enlarged version of the mathematics when they -click or hover over typeset mathematics. They are listed with their -default values. To set any of these options, include a MathZoom -section in your MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  MathZoom: {
-    styles: {
-      "#MathJax_Zoom": {
-        "background-color": "#0000F0"
-      }
-    }
-  }
-});
-
-
-

would set the background color of the Zoom box to a very light blue.

-

Mathematics is zoomed when the user “triggers” the zoom by an action, -either clicking on the mathematics, double-clicking on it, or holding -the mouse still over it (i.e., “hovering”). Which trigger is used is -set by the user via the math contextual menu (or by the author using -the menuSettings configuration section of the core configuration -options <configure-hub>).

-
-
-delay: 500
-

This value is now stored as the hover parameter in the -MathEvents configuration options, and -will have no effect if given here.

-
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the zoomed -mathematics. See the definitions in extensions/MathZoom.js -for details of what are defined by default. See CSS Style -Objects for details on how to specify CSS -style in a JavaScript object.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The MathMenu extension

-

Next topic

-

The MathEvents extension

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/NativeMML.html b/docs/html/options/NativeMML.html deleted file mode 100644 index 6e8c3fe00..000000000 --- a/docs/html/options/NativeMML.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - The NativeMML output processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The NativeMML output processor

-

The options below control the operation of the NativeMML output -processor that is run when you include "output/NativeMML" in the -jax array of your configuration or load a combined configuration -file taht includes the NativeMML output jax. They are listed with -their default values. To set any of these options, include a -NativeMML section in your MathJax.Hub.Config() call. For -example

-
MathJax.Hub.Config({
-  NativeMML: {
-    scale: 105
-  }
-});
-
-
-

would set the scale option to 105 percent.

-
-
-scale: 100
-

The scaling factor (as a percentage) of math with respect to the -surrounding text. The NativeMML output processor tries to match -the ex-size of the mathematics with that of the text where it is -placed, but you may want to adjust the results using this scaling -factor. The user can also adjust this value using the contextual -menu item associated with the typeset mathematics.

-
- -
-
-minScaleAdjust: 50
-

This gives a minimum scale (as a percent) for the scaling used by -MathJax to match the equation to the surrounding text. This will -prevent MathJax from making the mathematics too small.

-
- -
-
-showMathMath: true
-
-showMathMenuMSIE: true
-

These values have been moved to the core configuration block, since -it applies to all output jax, but they will still be honored (for -now) if it is set here. See the Core configuration options for more details.

-
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the NativeMML -output. See the definitions in jax/output/NativeMML/config.js -for some examples of what are defined by default. See CSS -Style Objects for details on how to specify -CSS style in a JavaScript object.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The HTML-CSS output processor

-

Next topic

-

The SVG output processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/SVG.html b/docs/html/options/SVG.html deleted file mode 100644 index a1d73034f..000000000 --- a/docs/html/options/SVG.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - - - The SVG output processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The SVG output processor

-

The options below control the operation of the SVG output -processor that is run when you include "output/SVG" in the -jax array of your configuration or load a combined configuration -file that includes the SVG output jax. They are listed with their default -values. To set any of these options, include an SVG section -in your MathJax.Hub.Config() call. Note that, because of the -dash, you need to enclose the name in quotes. For example

-
MathJax.Hub.Config({
-  "SVG": {
-    scale: 120
-  }
-});
-
-
-

would set the scale option to 120%.

-
-
-scale: 100
-

The scaling factor (as a percentage) of math with respect to the -surrounding text. The SVG output processor tries to match -the ex-size of the mathematics with that of the text where it is -placed, but you may want to adjust the results using this scaling -factor. The user can also adjust this value using the contextual -menu item associated with the typeset mathematics.

-
- -
-
-minScaleAdjust: 50
-

This gives a minimum scale (as a percent) for the scaling used by -MathJax to match the equation to the surrounding text. This will -prevent MathJax from making the mathematics too small.

-
- -
-
-font: "TeX"
-

This is the font to use for rendering the mathematics. Note that -currently only the TeX font is available.

-
- -
-
-blacker: 10
-

This is the stroke width to use for all character paths (1em = -1000 units). This is a cheap way of getting slightly lighter or -darker characters, but remember that not all displays will act the -same, so a value that is good for you may not be good for everyone.

-
- -
-
-undefinedFamily: "STIXGeneral, 'Arial Unicode MS', serif"
-

This is the font-family CSS value used for characters that are not -in the selected font (e.g., this is where to look for characters -not included in the MathJax TeX fonts). IE will stop looking -after the first font that exists on the system (even if it doesn’t -contain the needed character), so order these carefully.

-
- -
-
-mtextFontInherit: false
-

This setting controls whether <mtext> elements will be typeset -using the math fonts or the font of the surrounding text. When -false, the font for mathvariant="normal" will be used; -when true, the font will be inherited from the surrounding -paragraph.

-
- -
-
-addMMLclasses: false
-

This controls whether the MathML structure is retained and CSS -classes are added to mark the original MathML elements (as in the -output from the HTML-CSS output jax). By default, the SVG -output jax removes unneeded nesting in order to produce a more -efficient markup, but if you want to use CSS to style the elements -as if they were MathML, you might need to set this to true.

-
- -
-
-EqnChunk: 50
-
-EqnChunkFactor: 1.5
-
-EqnChunkDelay: 100
-

These values control how “chunky” the display of mathematical -expressions will be; that is, how often the equations will be -updated as they are processed.

-

EqnChunk is the number of equations that will be typeset before -they appear on screen. Larger values make for less visual flicker -as the equations are drawn, but also mean longer delays before the -reader sees anything.

-

EqChunkFactor is the factor by which the EqnChunk will -grow after each chunk is displayed.

-

EqChunkDelay is the time (in milliseconds) to delay between -chunks (to allow the browser to respond to other user -interaction).

-

Set EqnChunk to 1, EqnChunkFactor to 1, and -EqnChunkDelay to 10 to get the behavior from MathJax v1.1 and -below.

-
- -
-
-linebreaks: {}
-

This is an object that configures automatic linebreaking in the -SVG output. In order to be backward compatible with earlier -versions of MathJax, only explicit line breaks are performed by -default, so you must enable line breaks if you want automatic -ones. The object contains the following values:

-
-
-automatic: false
-

This controls the automatic breaking of expressions: when -false, only linebreak="newline" is processed; when -true, line breaks are inserted automatically in long -expressions.

-
- -
-
-width: "container"
-

This controls how wide the lines of mathematics can be.

-

Use an explicit width like "30em" for a fixed width. -Use "container" to compute the size from the containing -element. -Use "nn% container" for a portion of the container. -Use "nn%" for a portion of the window size.

-

The container-based widths may be slower, and may not produce -the expected results if the layout width changes due to the -removal of previews or inclusion of mathematics during -typesetting.

-
- -
- -
-
-styles: {}
-

This is a list of CSS declarations for styling the SVG output. -See the definitions in jax/output/SVG/config.js for some -examples of what are defined by default. See CSS Style -Objects for details on how to specify CSS -style in a JavaScript object.

-
- -
-
-tooltip: { ... }
-

This sets the configuration options for <maction> elements -with actiontype="tooltip". (See also the #MathJax_Tooltip -style setting in jax/output/SVG/config.js, which can be -overridden using the styles option above.)

-

The tooltip section can contain the following options:

-
-
-delayPost: 600
-

The delay (in milliseconds) before the tooltip is posted after -the mouse is moved over the maction element.

-
- -
-
-delayClear: 600
-

The delay (in milliseconds) before the tooltop is cleared -after the mouse moves out of the maction element.

-
- -
-
-offsetX: 10
-
-offsetY: 5
-

These are the offset from the mouse position (in pixels) -where the tooltip will be placed.

-
- -
- -
- - -
-
-
-
-
-

Previous topic

-

The NativeMML output processor

-

Next topic

-

The MMLorHTML configuration options

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/TeX.html b/docs/html/options/TeX.html deleted file mode 100644 index e16c82f8b..000000000 --- a/docs/html/options/TeX.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - - The TeX input processor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The TeX input processor

-

The options below control the operation of the TeX input processor -that is run when you include "input/TeX" in the jax array of -your configuration or load a combined configuration file that includes -the TeX input jax. They are listed with their default values. To -set any of these options, include a TeX section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  TeX: {
-    Macros: {
-      RR: '{\\bf R}',
-      bold: ['{\\bf #1}', 1]
-    }
-  }
-});
-
-
-

would set the Macros configuration option to cause two new macros -to be defined within the TeX input processor.

-
-
-TagSide: "right"
-

This specifies the side on which \tag{} macros will place the -tags. Set it to "left" to place the tags on the left-hand side.

-
- -
-
-TagIndent: ".8em"
-

This is the amount of indentation (from the right or left) for the -tags produced by the \tag{} macro.

-
- -
-
-MultLineWidth: "85%"
-

The width to use for the multline environment that is part of -the AMSmath extension. This width gives room for tags at -either side of the equation, but if you are displaying mathematics -in a small area or a thin column of text, you might need to change -the value to leave sufficient margin for tags.

-
- -
-
-equationNumbers: {}
-

This object controls the automatic equation numbering and the -equation referencing. It contains the following values:

-
-
-autoNumber: "none"
-

This controls whether equations are numbered and how. By -default it is set to "none" to be compatible with earlier -versions of MathJax where auto-numbering was not performed (so -pages will not change their appearance). You can change -this to "AMS" for equations numbered as the AMSmath -package would do, or "all" to get an equation number for -every displayed equation.

-
- -
-
-formatNumber: function (n) {return n}
-

A function that tells MathJax what tag to use for equation -number n. This could be used to have the equations labeled -by a sequence of symbols rather than numbers, or to use section -and subsection numbers instead.

-
- -
-
-formatTag: function (n) {return '('+n+')'}
-

A function that tells MathJax how to format an equation number -for displaying as a tag for an equation. This is what appears -in the margin of a tagged or numbered equation.

-
- -
-
-formatID: function {return 'mjx-eqn-'+String(n).replace(/[:'"<>&]/g,"")}
-

A function that rells MathJax what ID to use as an anchor for -the equation (so that it can be used in URL references).

-
- -
-
-formatURL: function (id) {return '#'+escape(id)}
-

A function that takes an equation ID and returns the URL to -link to it.

-
- -
-
-useLabelIds: true
-

This controls whether element ID’s use the \label name or -the equation number. When true, use the label, when -false, use the equation number.

-
- -

See the MathJax examples page for -some examples of equation numbering.

-
- -
-
-Macros: {}
-

This lists macros to define before the TeX input processor begins. -These are name:value pairs where the name gives the name of -the TeX macro to be defined, and value gives the replacement -text for the macro. The value can be an array of the form -[value,n], where value is the replacement text and n is the -number of parameters for the macro. Note that since the value -is a javascript string, backslashes in the replacement text must -be doubled to prevent them from acting as javascript escape -characters.

-

For example,

-
Macros: {
-  RR: '{\\bf R}',
-  bold: ['{\\bf #1}', 1]
-}
-
-
-

would ask the TeX processor to define two new macros: \RR, -which produces a bold-face “R”, and \bold{...}, which takes one -parameter and sets it in the bold-face font.

-
- -
-
-MAXMACROS: 10000
-

Because a definition of the form \def\x{\x} \x would cause MathJax -to loop infinitely, the MAXMACROS constant will limit the number of -macro substitutions allowed in any expression processed by MathJax.

-
- -
-
-MAXBUFFER: 5*1024
-

Because a definition of the form \def\x{\x aaa} \x would loop -infinitely, and at the same time stack up lots of a’s in MathJax’s -equation buffer, the MAXBUFFER constant is used to limit the size of -the string being processed by MathJax. It is set to 5KB, which should -be sufficient for any reasonable equation.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The jsMath2jax Preprocessor

-

Next topic

-

The MathML input processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/asciimath2jax.html b/docs/html/options/asciimath2jax.html deleted file mode 100644 index dac7359fa..000000000 --- a/docs/html/options/asciimath2jax.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - The asciimath2jax Preprocessor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The asciimath2jax Preprocessor

-

The options below control the operation of the asciimath2jax preprocessor -that is run when you include "asciimath2jax.js" in the extensions array -of your configuration. They are listed with their default values. To -set any of these options, include a asciimath2jax section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  asciimath2jax: {
-    delimiters: [['`','`'], ['$','$']]
-  }
-});
-
-
-

would set the ASCIIMath delimiters for the asciimath2jax -preprocessor to include dollar signs as well as back-ticks.

-
-
-delimiters: [['`','`']]
-

Array of pairs of strings that are to be used as math -delimiters. The first in each pair is the initial delimiter and -the second is the terminal delimiter. You can have as many pairs -as you want. For example,

-
inlineMath: [ ['$','$'], ['`','`'] ]
-
-
-

would cause asciimath2jax to look for $...$ and `...` as -delimiters for inline mathematics. (Note that the single dollar -signs are not enabled by default because they are used too -frequently in normal text, so if you want to use them for math -delimiters, you must specify them explicitly.)

-

Note that the delimiters can’t look like HTML tags (i.e., can’t -include the less-than sign), as these would be turned into tags by -the browser before MathJax has the chance to run. You can only -include text, not tags, as your math delimiters.

-
- -
-
-preview: "AsciiMath"
-

This controls whether asciimath2jax inserts MathJax_Preview -spans to make a preview available, and what preview to use, when -it locates in-line or display mathematics in the page. The -default is "AsciiMath", which means use the ASCIIMath code as -the preview (which will be visible until it is processed by -MathJax). Set to "none" to prevent previews from being -inserted (the math will simply disappear until it is typeset). -Set to an array containing the description of an HTML snippet in -order to use the same preview for all equations on the page.

-

Examples:

-
preview: ["[math]"],     //  insert the text "[math]" as the preview
-
-
-
preview: [["img",{src: "/images/mypic.jpg"}]],  // insert an image as the preview
-
-
-

See the description of HTML snippets for -details on how to represent HTML code in this way.

-
- -
-
-skipTags: ["script","noscript","style","textarea","pre","code"]
-

This array lists the names of the tags whose contents should not -be processed by asciimath2jax (other than to look for -ignore/process classes as listed below). You can add to (or -remove from) this list to prevent MathJax from processing -mathematics in specific contexts.

-
- -
-
-ignoreClass: "asciimath2jax_ignore"
-

This is the class name used to mark elements whose contents should -not be processed by asciimath2jax (other than to look for the -processClass pattern below). Note that this is a regular -expression, and so you need to be sure to quote any regexp -special characters. The pattern is inserted into one that -requires your pattern to match a complete word, so setting -ignoreClass: "class2" would cause it to match an element with -class="class1 class2 class3" but not class="myclass2". -Note that you can assign several classes by separating them by the -vertical line character (|). For instance, with -ignoreClass: "class1|class2" any element assigned a class of -either class1 or class2 will be skipped.

-
- -
-
-processClass: "asciimath2jax_process"
-

This is the class name used to mark elements whose contents -should be processed by asciimath2jax. This is used to restart -processing within tags that have been marked as ignored via the -ignoreClass or to cause a tag that appears in the skipTags -list to be processed rather than skipped. Note that this is a -regular expression, and so you need to be sure to quote any -regexp special characters. The pattern is inserted into one -that requires your pattern to match a complete word, so setting -processClass: "class2" would cause it to match an element with -class="class1 class2 class3" but not class="myclass2". -Note that you can assign several classes by separating them by the -vertical line character (|). For instance, with -processClass: "class1|class2" any element assigned a class of -either class1 or class2 will have its contents processed.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The mml2jax Preprocessor

-

Next topic

-

The jsMath2jax Preprocessor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/hub.html b/docs/html/options/hub.html deleted file mode 100644 index 5ac6b6d7a..000000000 --- a/docs/html/options/hub.html +++ /dev/null @@ -1,419 +0,0 @@ - - - - - - - - The Core Configuration Options — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The Core Configuration Options

-

The options below control the MathJax Hub, and so determine the code -behavior of MathJax. They are given with their default values.

-
-
-jax: ["input/TeX","output/HTML-CSS"]
-

A comma-separated list of input and output jax to initialize at -startup. Their main code is loaded only when they are actually -used, so it is not inefficient to include jax that may not -actually be used on the page. These are found in the MathJax/jax -directory.

-
- -
-
-extensions: []
-

A comma-separated list of extensions to load at startup. The -default directory is MathJax/extensions. The tex2jax and -mml2jax preprocessors can be listed here, as well as a -FontWarnings extension that you can use to inform your user -that mathematics fonts are available that they can download to -improve their experience of your site.

-
- -
-
-config: []
-

A comma-separated list of configuration files to load when MathJax -starts up, e.g., to define local macros, etc., and there is a -sample config file named config/local/local.js. The default -directory is the MathJax/config directory. The MMLorHTML.js -configuration is one such configuration file, and there are a -number of other pre-defined configurations (see Using a -configuration file for more details).

-
- -
-
-styleSheets: []
-

A comma-separated list of CSS stylesheet files to be loaded when -MathJax starts up. The default directory is the MathJax/config -directory.

-
- -
-
-styles: {}
-

CSS styles to be defined dynamically at startup time. These are -in the form selector:rules (see CSS Style Objects for complete details).

-
- -
-
-preJax: null and postJax: null
-

Patterns to remove from before and after math script tags. If you -are not using one of the preprocessors, you need to insert -something extra into your HTML file in order to avoid a bug in -Internet Explorer. IE removes spaces from the DOM that it thinks -are redundant, and since a <script> tag usually doesn’t add -content to the page, if there is a space before and after a -MathJax <script> tag, IE will remove the first space. When -MathJax inserts the typeset mathematics, this means there will be -no space before it and the preceding text. In order to avoid -this, you should include some “guard characters” before or after -the math SCRIPT tag; define the patterns you want to use below. -Note that these are used as part of a regular expression, so you -will need to quote special characters. Furthermore, since they -are javascript strings, you must quote javascript special -characters as well. So to obtain a backslash, you must use \\ -(doubled for javascript). For example, "\\[" represents the -pattern \[ in the regular expression, or [ in the text of -the web page. That means that if you want an actual backslash in -your guard characters, you need to use "\\\\" in order to get -\\ in the regular expression, and \ in the actual text. -If both preJax and postJax are defined, both must be -present in order to be removed.

-

See also the preRemoveClass comments below.

-

Examples:

-
-

preJax: "\\\\\\\\\" makes a double backslash the preJax text

-

preJax: "\\[\\[", postJax: "\\]\\]" makes it so jax -scripts must be enclosed in double brackets.

-
-
- -
-
-preRemoveClass: "MathJax_Preview"
-

This is the CSS class name for math previews that will be removed -preceding a MathJax SCRIPT tag. If the tag just before the -MathJax <script> tag is of this class, its contents are -removed when MathJax processes the <script> tag. This allows -you to include a math preview in a form that will be displayed -prior to MathJax performing its typesetting. It also avoids the -Internet Explorer space-removal bug, and can be used in place of -preJax and postJax if that is more convenient.

-

For example

-
<span class="MathJax_Preview">[math]</span><script  type="math/tex">...</script>
-
-
-

would display “[math]” in place of the math until MathJax is able -to typeset it.

-

See also the preJax and postJax comments above.

-
- -
-
-showProcessingMessages: true
-

This value controls whether the Processing Math: nn% messages are -displayed in the lower left-hand corner. Set to false to -prevent those messages (though file loading and other messages -will still be shown).

-
- -
-
-messageStyle: "normal"
-

This value controls the verbosity of the messages in the lower -left-hand corner. Set it to "none" to eliminate all messages, -or set it to "simple" to show “Loading...” and “Processing...” -rather than showing the full file name or the percentage of the -mathematics processed.

-
- -
-
-displayAlign: "center" and displayIndent: "0em"
-

These two parameters control the alignment and shifting of -displayed equations. The first can be "left", "center", -or "right", and determines the alignment of displayed -equations. When the alignment is not "center", the second -determines an indentation from the left or right side for the -displayed equations.

-
- -
-
-delayStartupUntil: "none"
-

Normally MathJax will perform its startup commands (loading of -configuration, styles, jax, and so on) as soon as it can. If you -expect to be doing additional configuration on the page, however, -you may want to have it wait until the page’s onload handler is -called. If so, set this to "onload". You can also set this to -"configured", in which case, MathJax will delay its startup until -you explicitly call MathJax.Hub.Configured(). See -Configuring MathJax after it is loaded for more -details.

-
- -
-
-skipStartupTypeset: false
-

Normally MathJax will typeset the mathematics on the page as soon -as the page is loaded. If you want to delay that process, in -which case you will need to call MathJax.Hub.Typeset() -yourself by hand, set this value to true.

-
- -
-
-elements: []
-

This is a list of DOM element ID’s that are the ones to process for -mathematics when any of the Hub typesetting calls (Typeset(), Process(), -Update(), etc.) are called with no element specified, and during -MathJax’s initial typesetting run when it starts up. This lets you -restrict the processing to particular containers rather than scanning -the entire document for mathematics. If none are supplied, the complete -document is processed.

-
- -
-
-positionToHash: true
-

Since typesetting usually changes the vertical dimensions of the -page, if the URL contains an anchor position, then after the page -is typeset, you may no longer be positioned at the correct -position on the page. MathJax can reposition to that location -after it completes its initial typesetting of the page. This -value controls whether MathJax will reposition the browser to the -#hash location from the page URL after typesetting for the page.

-
- -
-
-showMathMenu: true
-
-showMathMenuMSIE: true
-

These control whether to attach the MathJax contextual menu to the -expressions typeset by MathJax. Since the code for handling -MathPlayer in Internet Explorer is somewhat delicate, it is -controlled separately via showMathMenuMSIE, but the latter is -now deprecated in favor of the MathJax contextual menu settings -for MathPlayer (see below).

-

If showMathMenu is true, then right-clicking (on Windows -or Linux) or control-clicking (on Mac OS X) will produce a MathJax -menu that allows you to get the source of the mathematics in -various formats, change the size of the mathematics relative to -the surrounding text, get information about MathJax, and configure -other MathJax settings.

-

Set this to false to disable the menu. When true, the -MathMenu configuration block determines the operation of the -menu. See the MathMenu options for -more details.

-

These values used to be listed in the separate output jax, but -have been moved to this more central location since they are -shared by all output jax. MathJax will still honor their values -from their original positions, if they are set there.

-
- -
-
-menuSettings: { ... }
-

This block contains settings for the mathematics contextual menu -that act as the defaults for the user’s settings in that menu. -The possible values are:

-
-
-zoom: "None"
-

This indicates when typeset mathematics should be zoomed. It -can be set to "None", "Hover", "Click", or -"Double-Click" to set the zoom trigger.

-
- -
-
-CTRL: false, ALT: false, CMD: false, Shift: false
-

These values indicate which keys must be pressed in order for -math zoom to be triggered. For example, if CTRL is set to -true and zoom is "Click", then math will be zoomed -only when the user control-clicks on mathematics (i.e., clicks -while holding down the CTRL key). If more than one is -true, then all the indicated keys must be pressed for the -zoom to occur.

-
- -
-
-zscale: "200%"
-

This is the zoom scaling factor, and it can be set to any of -the values available in the Zoom Factor menu of the -Settings submenu of the contextual menu.

-
- -
-
-context: "MathJax"
-

This controls what contextual menu will be presented when a -right click (on a PC) or CTRL-click (on the Mac) occurs over a -typeset equation. When set to "MathJax", the MathJax -contextual menu will appear; when set to "Browser", the -browser’s contextual menu will be used. For example, in -Internet Explorer with the MathPlayer plugin, if this is set -to "Browser", you will get the MathPlayer contextual menu -rather than the MathJax menu.

-
- -
-
-texHints: true
-

This controls whether the “Show Source” menu item includes -special class names that help MathJax to typeset the -mathematics that was produced by the TeX input jax. If these -are included, then you can take the output from “Show Source” -and put it into a page that uses MathJax’s MathML input jax -and expect to get the same results as the original TeX. -(Without this, there may be some spacing differences.)

-
- -

There are also settings for format, renderer, font, -mpContext, and mpMouse, but these are maintained by -MathJax and should not be set by the page author.

-
- -
-
-errorSettings: { ... }
-

This block contains settings that control how MathJax responds to -unexpected errors while processing mathematical equations. Rather -than simply crash, MathJax can report an error and go on. The -options you can set include:

-
-
-message: ["[Math Processing Error]"]
-

This is an HTML snippet that will be inserted at the location -of the mathematics for any formula that causes MathJax to -produce an internal error (i.e., an error in the MathJax code -itself). See the description of HTML snippets for details on how to represent HTML code in -this way.

-
- -
-
-style: {color:"#CC0000", "font-style":"italic"}
-

This is the CSS style description to use for the error -messages produced by internal MathJax errors. See the section -on CSS style objects for details on -how these are specified in JavaScript.

-
- -
- -
-
-v1.0-compatible: true
-

This controls whether MathJax issues the warning about not having an -explicit configuration in the event that the jax array is empty -after configuration is complete. If you really intend that array to -be empty, set this flag to false. Note that setting this to false -does not cause a default configuration file to be loaded.

-
- -
- - -
-
-
-
-
-

Previous topic

-

Configuration Objects

-

Next topic

-

The tex2jax Preprocessor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/index.html b/docs/html/options/index.html deleted file mode 100644 index b0b54569e..000000000 --- a/docs/html/options/index.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - - Configuration Objects — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Configuration Objects

-

The various components of MathJax, including its input and output -processors, its preprocessors, its extensions, and the MathJax core, -all can be configured through the config/default.js file, or via a -MathJax.Hub.Config() call (indeed, if you look closely, you -will see that config/default.js is itself one big call to -MathJax.Hub.Config()). Anything that is in -config/default.js can be included in-line to configure MathJax.

-

The structure that you pass to MathJax.Hub.Config() is a -JavaScript object that includes name:value pairs giving the names of -parameters and their values, with pairs separated by commas. Be -careful not to include a comma after the last value, however, as some -browsers (namely Internet Explorer) will fail to process the -configuration if you do.

-

The MathJax components, like the TeX input processor, have their own -sections in the configuration object labeled by the component name, -and using an object as its value. That object is itself -a configuration object made up of name:value pairs that give the -configuration options for the component.

-

For example,

-
MathJax.Hub.Config({
-  showProcessingMessages: false,
-  jax: ["input/TeX", "output/HTML-CSS"],
-  TeX: {
-    TagSide: "left",
-    Macros: {
-      RR: '{\\bf R}',
-      bold: ['{\\bf #1}',1]
-    }
-  }
-});
-
-
-

is a configuration that includes two settings for the MathJax Hub (one -for showProcessingMessages and one for the jax array), and a -configuration object for the TeX input processor. The latter includes -a setting for the TeX input processor’s TagSide option (to set tags -on the left rather than the right) and a setting for Macros, which -defines new TeX macros (in this case, two macros, one called \RR -that produces a bold “R”, and one called \bold that puts is -argument in bold face).

-

The config/default.js file is another example that shows nearly -all the configuration options for all of MathJax’s components.

- -
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Common Configurations

-

Next topic

-

The Core Configuration Options

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/jsMath2jax.html b/docs/html/options/jsMath2jax.html deleted file mode 100644 index f504ad799..000000000 --- a/docs/html/options/jsMath2jax.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - The jsMath2jax Preprocessor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The jsMath2jax Preprocessor

-

The options below control the operation of the jsMath2jax -preprocessor that is run when you include "jsMath2jax.js" in the -extensions array of your configuration. They are listed with their -default values. To set any of these options, include a jsMath2jax -section in your MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  jsMath2jax: {
-    preview: "none"
-  }
-});
-
-
-

would set the preview parameter to "none".

-
-
-preview: "TeX"
-

This controls whether jsMath2jax inserts MathJax_Preview spans -to make a preview available, and what preview to use, when it -locates in-line or display mathematics in the page. The default -is "TeX", which means use the TeX code as the preview (which -will be visible until it is processed by MathJax). Set to -"none" to prevent previews from being inserted (the math -will simply disappear until it is typeset). Set to an array -containing the description of an HTML snippet in order to use the -same preview for all equations on the page.

-

Examples:

-
preview: ["[math]"],     //  insert the text "[math]" as the preview
-
-
-
preview: [["img",{src: "/images/mypic.jpg"}]],  // insert an image as the preview
-
-
-

See the description of HTML snippets for -details on how to represent HTML code in this way.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The asciimath2jax Preprocessor

-

Next topic

-

The TeX input processor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/mml2jax.html b/docs/html/options/mml2jax.html deleted file mode 100644 index 39b16ab0a..000000000 --- a/docs/html/options/mml2jax.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - The mml2jax Preprocessor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The mml2jax Preprocessor

-

The options below control the operation of the mml2jax preprocessor -that is run when you include "mml2jax.js" in the extensions array -of your configuration. They are listed with their default values. To -set any of these options, include a mml2jax section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  mml2jax: {
-    preview: "none"
-  }
-});
-
-
-

would set the preview parameter to "none".

-
-
-preview: "alttext"
-

This controls whether mml2jax inserts MathJax_Preview spans -to make a preview available, and what preview to use, when it -locates mathematics on the page. The default is "alttext", -which means use the <math> tag’s alttext attribute as the -preview (visible until it is processed by MathJax), if the tag has -one. Set it to "none" to prevent the previews from being -inserted (the math will simply disappear until it is typeset). -Set it to an array containing the description of an HTML snippet -in order to use the same preview for all equations on the page.

-

Examples:

-
preview: ["[math]"],     //  insert the text "[math]" as the preview
-
-
-
preview: [["img",{src: "/images/mypic.jpg"}]],  // insert an image as the preview
-
-
-

See the description of HTML snippets for -details on how to represent HTML code in this way.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The tex2jax Preprocessor

-

Next topic

-

The asciimath2jax Preprocessor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/options/tex2jax.html b/docs/html/options/tex2jax.html deleted file mode 100644 index 2cca717cc..000000000 --- a/docs/html/options/tex2jax.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - The tex2jax Preprocessor — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

The tex2jax Preprocessor

-

The options below control the operation of the tex2jax preprocessor -that is run when you include "tex2jax.js" in the extensions array -of your configuration. They are listed with their default values. To -set any of these options, include a tex2jax section in your -MathJax.Hub.Config() call. For example

-
MathJax.Hub.Config({
-  tex2jax: {
-    inlineMath: [ ['$','$'], ['\\(','\\)'] ]
-  }
-});
-
-
-

would set the inlineMath delimiters for the tex2jax -preprocessor.

-
-
-inlineMath: [['\(','\)']]
-

Array of pairs of strings that are to be used as in-line math -delimiters. The first in each pair is the initial delimiter and -the second is the terminal delimiter. You can have as many pairs -as you want. For example,

-
inlineMath: [ ['$','$'], ['\\(','\\)'] ]
-
-
-

would cause tex2jax to look for $...$ and \(...\) as -delimiters for inline mathematics. (Note that the single dollar -signs are not enabled by default because they are used too -frequently in normal text, so if you want to use them for math -delimiters, you must specify them explicitly.)

-

Note that the delimiters can’t look like HTML tags (i.e., can’t -include the less-than sign), as these would be turned into tags by -the browser before MathJax has the chance to run. You can only -include text, not tags, as your math delimiters.

-
- -
-
-displayMath: [ ['$$','$$'], ['\[','\]'] ]
-

Array of pairs of strings that are to be used as delimiters for -displayed equations. The first in each pair is the initial -delimiter and the second is the terminal delimiter. You can have -as many pairs as you want.

-

Note that the delimiters can’t look like HTML tags (i.e., can’t -include the less-than sign), as these would be turned into tags by -the browser before MathJax has the chance to run. You can only -include text, not tags, as your math delimiters.

-
- -
-
-balanceBraces: true,
-

This value determines whether tex2jax requires braces to be -balanced within math delimiters (which allows for nested dollar -signs). Set to false to get pre-v2.0 compatibility. When -true,

-
$y = x^2 \hbox{ when $x > 2$}$.
-
-
-

will be properly handled as a single expression. When false, -it would be interpreted as two searpate expressions, each with -improperly balanced braces.

-
- -
-
-processEscapes: false
-

When set to true, you may use \$ to represent a literal -dollar sign, rather than using it as a math delimiter. When -false, \$ will not be altered, and the dollar sign may be -considered part of a math delimiter. Typically this is set to -true if you enable the $ ... $ in-line delimiters, so you -can type \$ and tex2jax will convert it to a regular dollar -sign in the rendered document.

-
- -
-
-processEnvironments: true
-

When true, tex2jax looks not only for the in-line and -display math delimiters, but also for LaTeX environments -(\begin{something}...\end{something}) and marks them for -processing by MathJax. When false, LaTeX environments will -not be processed outside of math mode.

-
- -
-
-preview: "TeX"
-

This controls whether tex2jax inserts MathJax_Preview spans -to make a preview available, and what preview to use, when it -locates in-line or display mathematics in the page. The default -is "TeX", which means use the TeX code as the preview (which -will be visible until it is processed by MathJax). Set to -"none" to prevent previews from being inserted (the math -will simply disappear until it is typeset). Set to an array -containing the description of an HTML snippet in order to use the -same preview for all equations on the page.

-

Examples:

-
preview: ["[math]"],     //  insert the text "[math]" as the preview
-
-
-
preview: [["img",{src: "/images/mypic.jpg"}]],  // insert an image as the preview
-
-
-

See the description of HTML snippets for -details on how to represent HTML code in this way.

-
- -
-
-skipTags: ["script","noscript","style","textarea","pre","code"]
-

This array lists the names of the tags whose contents should not -be processed by tex2jax (other than to look for ignore/process -classes as listed below). You can add to (or remove from) this -list to prevent MathJax from processing mathematics in specific -contexts.

-
- -
-
-ignoreClass: "tex2jax_ignore"
-

This is the class name used to mark elements whose contents should -not be processed by tex2jax (other than to look for the -processClass pattern below). Note that this is a regular -expression, and so you need to be sure to quote any regexp -special characters. The pattern is inserted into one that -requires your pattern to match a complete word, so setting -ignoreClass: "class2" would cause it to match an element with -class="class1 class2 class3" but not class="myclass2". -Note that you can assign several classes by separating them by the -vertical line character (|). For instance, with -ignoreClass: "class1|class2" any element assigned a class of -either class1 or class2 will be skipped.

-
- -
-
-processClass: "tex2jax_process"
-

This is the class name used to mark elements whose contents -should be processed by tex2jax. This is used to restart -processing within tags that have been marked as ignored via the -ignoreClass or to cause a tag that appears in the skipTags -list to be processed rather than skipped. Note that this is a -regular expression, and so you need to be sure to quote any -regexp special characters. The pattern is inserted into one -that requires your pattern to match a complete word, so setting -processClass: "class2" would cause it to match an element with -class="class1 class2 class3" but not class="myclass2". -Note that you can assign several classes by separating them by the -vertical line character (|). For instance, with -processClass: "class1|class2" any element assigned a class of -either class1 or class2 will have its contents processed.

-
- -
- - -
-
-
-
-
-

Previous topic

-

The Core Configuration Options

-

Next topic

-

The mml2jax Preprocessor

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/output.html b/docs/html/output.html deleted file mode 100644 index 8f611cfd0..000000000 --- a/docs/html/output.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - - - - MathJax Output Formats — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

MathJax Output Formats

-

Currently, MathJax can render math in three ways:

-
    -
  • Using HTML-with-CSS to lay out the mathematics,
  • -
  • Using SVG to lay out the mathematics, or
  • -
  • Using a browser’s native MathML support.
  • -
-

These are implemented by the HTML-CSS, SVG and NativeMML output -processors.

-

If you are using one of the combined configuration files, then this will -select one of these output processors for you. If the config file ends in -_HTML, then it is the HTML-CSS output processor, and if it ends in -_SVG then the SVG output processor will be used. If it ends in -_HTMLorMML, then the NativeMML output processor will be chosen if the -browser supports it well enough, otherwise HTML-CSS output will be used.

-

If you are performing your own in-line or file-based configuration, -you select which one you want to use by including either -"output/HTML-CSS", "output/SVG", or "output/NativeMML" in -the jax array of your MathJax configuration. For example

-
jax: ["input/TeX","output/HTML-CSS"]
-
-
-

would specify TeX input and HTML-with-CSS output for the mathematics -in your document.

-

The HTML-CSS output processor produces high-quality output in all -major browsers, with results that are consistent across browsers and -operating systems. This is MathJax’s primary output mode. Its major -advantage is its quality and consistency; its drawback is that it is -slower than the NativeMML mode at rendering the mathematics. -Historically, the performance in Internet Explorer (and IE8 in -particular) was quite poor, with the page getting slower and slower as -more math is processed. MathJax version 2.0 includes a number of -optimizations to improve the display performance in IE, and it is now -more comparable to other browsers. The HTML-CSS output uses web-based -fonts so that users don’t have to have math fonts installed on their -computers, which introduces some printing issues in certain browsers.

-

The SVG output processor is new in MathJax version 2.0, and it -uses Scalable Vector Graphics to render the mathematics on the page. -SVG is supported in all the major browsers and most mobile devices; -note, however, that Internet Explorer prior to IE9 does not support -SVG, and IE9 only does in “IE9 standards mode”, not its emulation -modes for earlier versions. The SVG output mode is high quality and -slightly faster than HTML-CSS, and it does not suffer from some of the -font-related issues that HTML-CSS does, so prints well in all -browsers. This format also works well in some ebook readers (e.g., -iBooks). The disadvantages of this mode are the following: first, -Internet Explorer only supports SVG in IE9 and later versions (and -then only in IE9 standards mode or above), and some versions of the -Android Internet browser don’t have SVG enabled. Second, it does not -take advantage of STIX fonts, and so only has access to the characters -in the web-based fonts, and third, its variable-width tables become -fixed size once they are typeset, and don’t rescale if the window size -changes (for example). Since equation numbers are handled through -variable-width tables, that means equation numbers may not stay at the -edge of the window if it is resized. For these reasons it is probably -best not to force the use of SVG output unless you have some control -over the browsers that are used to view your documents.

-

The NativeMML output processor uses the browser’s internal MathML -support (if any) to render the mathematics. Currently, Firefox has -native support for MathML, and IE has the MathPlayer plugin for rendering -MathML. Opera has some built-in support for MathML that works well -with simple equations, but fails with more complex formulas, so we -don’t recommend using the NativeMML output processor with Opera. -Safari has some support for MathML since version 5.1, but the quality -is not as high as either Firefox’s implementation or IE with MathPlayer. -Chrome, Konqueror, and most other browsers don’t support MathML -natively, but this may change in the future, since MathML is part of -the HTML5 specification.

-

The advantage of the NativeMML output Processor is its speed, since -native MathML support is much faster than using complicated HTML and -CSS to typeset mathematics, as the HTML-CSS output processor does. -The disadvantage is that you are dependent on the browser’s MathML -implementation for your rendering, and these vary in quality of output -and completeness of implementation. MathJax relies on features that -are not available in some renderers (for example, Firefox’s MathML -support does not implement the features needed for labeled equations). -The results using the NativeMML output processor may have spacing or -other rendering problems that are outside of MathJax’s control.

-
-

Automatic Selection of the Output Processor

-

Since not all browsers support MathML natively, it would be unwise to -choose the NativeMML output processor unless you are sure of your -audience’s browser capabilities. MathJax can help with that, however, -since a number of its combined configuration files will select -NativeMML output when the browser supports it well enough, and -HTML-CSS output otherwise. These are the configuration files that end -in _HTMLorMML.

-

If you are doing your own configuration, there is a special configuration -file that you can include that will choose between NativeMML and HTML-CSS -depending on the browser in use. To invoke it, add "MMLorHTML.js" to -your configuration’s config array, and do not include an output -processor in your jax array; MathJax will fill that in for you based on -the abilities of your user’s browser.

-
config: ["MMLorHTML.js"],
-jax: ["input/TeX"]
-
-
-

By default, MathJax will choose HTML-CSS in all browsers except for -one case: Internet Explorer when the MathPlayer plugin is present. -In the past, MathJax selected NativeMML output for Firefox as well, -but we have found that there are too many rendering issues with -Firefox’s native MathML implementation, and so MathJax now selects -HTML-CSS output for Firefox by default as well. Users can still use -the Mathjax contextual menu to select the NativeMML renderer if they -wish to choose greater speed at the expense of some quality.

-

You can customize which choice MathJax makes on a browser-by-browser -basis or a global basis. See the config/default.js file or the -Configuring MMLorHTML section for further -details. As an example, this configuration tells MathJax to use -native MathML support rather than HTML-CSS output for Firefox:

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    MMLorHTML: { prefer: { Firefox: "MML" } }
-  });
-</script>
-<script type="text/javascript"
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-
-
-

With this configuration, MathML output will be used for both Firefox -and IE with the MathPlayer plugin. Note, however, that a user can -employ the MathJax contextual menu to select the other renderer if he -or she wishes.

-

MathJax produces MathML that models the underlying mathematics as best -it can, rather than using complicated hacks to improve output for a -particular MathML implementation. When you make the choice to use the -NativeMML output processor, you are making a trade-off: gaining speed -at the expense of quality and reliability, a decision that should not -be taken lightly.

-
-
-

Automatic Line Breaking

-

The HTML-CSS and SVG output processors implement (most of) the MathML3 -automatic line-breaking specification. (The NativeMML output -processor relies on the browser’s native MathML support to handle line -breaking when it is used.) Since line-breaking takes extra processing -and so can slow down the mathematical output, it is off by default, -but you can enable it by adding

-
<script type="text/x-mathjax-config">
-MathJax.Hub.Config({
-  "HTML-CSS": { linebreaks: { automatic: true } },
-         SVG: { linebreaks: { automatic: true } }
-});
-</script>
-
-
-

to your page just before the <script> tag that loads -MathJax.js itself.

-

Note that line breaking only applies to displayed equations, not -in-line equations (unless the in-line euqation is itself longer than a -line), and that the line-breaks are only computed once when the -equation is initially typeset, and do not change if the user changes -the window size, or if the container changes size for some other -reason.

-

You can control what width is used to determine where the line breaks -shoud occur using the container parameter of the linebreaks -block. By default it is the width of the containing element, but you -can make it a fixed width, or make it a percentage of the container. -See the HTML-CSS configuration or -SVG configuration pages for more details.

-

The linbe-breaking algorithm uses the nesting depth, the type of -operator, the size of spaces, and other factors to decide on the -breakpoints, but it does not know the meaning of the mathematics, and -may not choose the optimal breakpoints. We will continue to work on -the algorithm as we gain information from its actual use in the field. -If you are using MathML as your input format, you can use the -linebreak="goodbreak" and linebreak="badbreak" attributes on -<mo> elements to help MathJax pick the best breakpoints for your -mathematics.

-
-
-

HTML-CSS with IE

-

The performance of MathJax in Internet Explorer 8 and 9 has been -substantially improved in version 2.0. The HTML-CSS output processing -was redesigned to avoid the page reflows that were the main source of -the speed problem in I8 and IE9. For test pages having between 20 and -50 typeset expressions, we see an 80% reduction in output processing -time for IE8, a 50% reduction for IE9, and between 15% and 25% -reduction for most other browsers over the v1.1a times. Since the -processing time in v1.1a grows non-linearly in IE, you should see even -larger savings for pages with more equations when using v2.0.

-

In the past, we recommended forcing IE8 and IE9 into IE7-emulation -mode in order to get better performance. That is no longer necessary. -Indeed, the fastest modes in IE8 and IE9 now are their IE8 standards -and IE9 standards modes, so it is best to force the highest mode -possible. That can be accomplished by adding

-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
-
-
-

at the top of the <head> section of your HTML documents. Note -that this line must come at the beginning of the <head>, before -any stylesheets, scripts, or other content are loaded.

-
-
-

HTML-CSS Extensions

-

The HTML-CSS output jax uses elements with width set to 100% when it -typesets displayed equations. If there are floating elements on the -left or right, this can mean that displayed mathematics isn’t properly -centered, and can cause equation numbers to overlap the floating -content. To avoid this, you can specify the handle-floats extension -in the extensions array of your HTML-CSS configuration block.

-
"HTML-CSS": {
-  extensions: ["handle-floats.js"]
-}
-
-
-

This will use CSS that puts the displayed equations into elements that -work like tabel cells, and won’t overlap the floaring content. -Because this is somewhat of a misuse of CSS, it is not used by -default, but it has proved successful in most situations, so you may -consider using it in pages that include material that floats to the -left or right of text containing displayed mathematics, especially -when equation numbers or tags are used.

-

See the HTML-CSS configuration options for -other options of the HTML-CSS output jax.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

MathJax AsciiMath Support

-

Next topic

-

The MathJax Community

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/platforms/index.html b/docs/html/platforms/index.html deleted file mode 100644 index e809a5368..000000000 --- a/docs/html/platforms/index.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - Using MathJax in popular web platforms — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- - - - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

The FontWarnings extension

-

Next topic

-

Installing MathJax in WordPress

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/platforms/movable-type.html b/docs/html/platforms/movable-type.html deleted file mode 100644 index 5f1a6740b..000000000 --- a/docs/html/platforms/movable-type.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - - Using MathJax in Movable Type — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Using MathJax in Movable Type

-
    -
  1. Open Moveable Type Admin interface for the site on which you want to enable -MathJax.

    -
  2. -
  3. In the dashboard menu on the left, open up the Design menu. This -should show you the templates you are currently using on the site.

    -
    -
    ../_images/mt_menu.png -
    -
  4. -
  5. Scroll down to the Template Modules section in the template list -and open the HTML Head template.

    -
    -
    ../_images/mt_templates.png -
    -
  6. -
  7. At the end of the file, insert

    -
    <script type="text/javascript"
    -  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    -</script>
    -
    -
    -

    to load MathJax from our distributed network service.

    -
    -
    ../_images/mt_head.png -
    -
  8. -
  9. Save the file. This will enable MathJax with both TeX and MathML -input, so you should be able to start adding mathematical content to -your pages. If you need to adjust the configuration, see -Configuring MathJax for more details.

    -
  10. -
-
- - -
-
-
-
-
-

Previous topic

-

Installing MathJax in WordPress

-

Next topic

-

MathJax TeX and LaTeX Support

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/platforms/wordpress.html b/docs/html/platforms/wordpress.html deleted file mode 100644 index 7d0a759d2..000000000 --- a/docs/html/platforms/wordpress.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - Installing MathJax in WordPress — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Installing MathJax in WordPress

-

Note that there is a WordPress plugin for MathJax, so that may be a -better choice than editing the theme directly.

-
    -
  1. Open the WordPress admin interface.

    -
  2. -
  3. In the administration menu on the left, open up the Appearance -menu and click on the Editor submenu option.

    -
    -
    ../_images/wp_menu.png -
    -

    When you click on the editor option, WordPress should open up the -first stylesheet in the current theme.

    -
  4. -
  5. In the template list on the right side of the page, click on the -header file (it should be header.php).

    -
    -
    ../_images/wp_templates.png -
    -

    This part depends slightly on how your current theme is written. -In the header.php file, look for the end-of-head tag, -</head>. If you find it, insert

    -
    <script type="text/javascript"
    -   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
    -</script>
    -
    -
    -

    just before that. Otherwise, insert the same code at the very -bottom of the file.

    -
  6. -
  7. Save the file. This will enable MathJax with both TeX and MathML -input, so you should be able to start adding mathematical content to -your pages. If you need to adjust the configuration, see -Configuring MathJax for more details.

    -
  8. -
-
- - -
-
-
-
-
-

Previous topic

-

Using MathJax in popular web platforms

-

Next topic

-

Using MathJax in Movable Type

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/queues.html b/docs/html/queues.html deleted file mode 100644 index 753fac82a..000000000 --- a/docs/html/queues.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - - Using Queues — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Using Queues

-

The callback queue is one of MathJax’s main tools for synchronizing -its actions, both internally, and with external programs, like -javascript code that you may write as part of dynamic web pages. -Because many actions in MathJax (like loading files) operate -asynchronously, MathJax needs a way to coordinate those actions so -that they occur in the right order. The -MathJax.Callback.Queue object provides that mechanism.

-

A callback queue is a list of commands that will be performed one at -a time, in order. If the return value of one of the commands is a -Callback object, processing is suspended until that callback is -called, and then processing of the commands is resumed. In this way, -if a command starts an asynchronous operation like loading a file, it -can return the callback for that file-load operation and the queue -will wait until the file has loaded before continuing. Thus a queue -can be used to guarantee that commands don’t get performed until other -ones are known to be finished, even if those commands usually operate -asynchronously.

-
-

Constructing Queues

-

A queue is created via the MathJax.Callback.Queue() command, -which returns a MathJax.Callback.Queue object. The queue -itself consists of a series of commands given as callback -specifications (see Using Callbacks for -details on callbacks), which allow you to provide functions (together -with their arguments) to be executed. You can provide the collection -of callback specifications when the queue is created by passing them -as arguments to MathJax.Callback.Queue(), or you can create an -empty queue to which commands are added later. Once a -MathJax.Callback.Queue object is created, you can push -additional callbacks on the end of the queue; if the queue is empty, -the command will be performed immediately, while if the queue is -waiting for another command to complete, the new command will be -queued for later processing.

-

For example,

-
function f(x) {alert(x)}
-var queue = MathJax.Callback.Queue([f, 15], [f, 10], [f, 5]);
-queue.Push([f, 0]);
-
-
-

would create a queue containing three commands, each calling the -function f with a different input, that are performed in order. A -fourth command is then added to the queue, to be performed after the -other three. In this case, the result will be four alerts, the first -with the number 15, the second with 10, the third with 5 and the -fourth with 0. Of course f is not a function that operates -asynchronously, so it would have been easier to just call f four -times directly. The power of the queue comes from calling commands -that could operate asynchronously. For example:

-
function f(x) {alert(x)}
-MathJax.Callback.Queue(
-  [f, 1],
-  ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"],
-  [f, 2]
-);
-
-
-

Here, the command MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js") -is queued between two calls to f. The first call to f(1) will -be made immediately, then the MathJax.Ajax.Require() statement -will be performed. Since the Require method loads a file, it -operates asynchronously, and its return value is a MathJax.Callback -object that will be called when the file is loaded. The call to -f(2) will not be made until that callback is performed, -effectively synchronizing the second call to f with the completion -of the file loading. This is equivalent to

-
f(1);
-MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js", [f, 2]);
-
-
-

since the Require() command allows you to specify a (single) -callback to be performed on the completion of the file load. Note, -however, that the queue could be used to synchronize several file -loads along with multiple function calls, so is more flexible.

-

For example,

-
MathJax.Callback.Queue(
-  ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"],
-  [f, 1],
-  ["Require", MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"],
-  [f, 2]
-);
-
-
-

would load the AMSmath extension, then call f(1) then load the -local AMSmath modifications, and then call f(2), with each action -waiting for the previous one to complete before being performed -itself.

-
-
-

Callbacks versus Callback Specifications

-

If one of the callback specifications is an actual callback object -itself, then the queue will wait for that action to be performed -before proceeding. For example,

-
 MathJax.Callback.Queue(
-     [f, 1],
-     MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"),
-     [f, 2],
-);
-
-
-

starts the loading of the AMSmath extension before the queue is -created, and then creates the queue containing the call to f, the -callback for the file load, and the second call to f. The queue -performs f(1), waits for the file load callback to be called, and -then calls f(2). The difference between this and the second -example above is that, in this example the file load is started before -the queue is even created, so the file is potentially loaded and -executed before the call to f(1), while in the example above, the -file load is guaranteed not to begin until after f(1) is executed.

-

As a further example, consider

-
MathJax.Callback.Queue(
-  MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"),
-  [f, 1],
-  MathJax.Ajax.Require("[MathJax]/config/local/AMSmathAdditions.js"),
-  [f, 2]
-);
-
-
-

in comparison to the example above that uses ["Require", -MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"] and ["Require", -MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"] instead. In that -example, AMSmath.js is loaded, then f(1) is called, then the -local additions are loaded, then f(2) is called.

-

Here, however, both file loads are started before the queue is -created, and are operating in parallel (rather than sequentially as in -the earlier example). It is possible for the loading of the local -additions to complete before the AMSmath extension is loaded in this -case, which was guaranteed not to happen in the other example. -Note, however, that f(1) is guaranteed not to be performed until -after the AMSmath extensions load, and f(2) will not occur until -after both files are loaded.

-

In this way, it is possible to start asynchronous loading of several -files simultaneously, and wait until all of them are loaded (in -whatever order) to perform some command. For instance,

-
MathJax.Callback.Queue(
-    MathJax.Ajax.Require("file1.js"),
-    MathJax.Ajax.Require("file2.js"),
-    MathJax.Ajax.Require("file3.js"),
-    MathJax.Ajax.Require("file4.js"),
-    [f, "all done"]
-);
-
-
-

starts four files loading all at once, and waits for all four to -complete before calling f("all done"). The order in which they -complete is immaterial, and they all are being requested -simultaneously.

-
-
-

The MathJax Processing Queue

-

MathJax uses a queue stored as MathJax.Hub.queue to regulate its -own actions so that they operate in the right order even when some -of them include asynchronous operations. You can take advantage of -that queue when you make calls to MathJax methods that need to be -synchronized with the other actions taken by MathJax. It may not -always be apparent, however, which methods fall into that category.

-

The main source of asynchronous actions in MathJax is the loading of -external files, so any action that may cause a file to be loaded may -act asynchronously. Many important actions do so, including some that -you might not expect; e.g., typesetting mathematics can cause files to -be loaded. This is because some TeX commands, for example, are rare -enough that they are not included in the core TeX input processor, but -instead are defined in extensions that are loaded automatically when -needed. The typesetting of an expression containing one of these TeX -commands can cause the typesetting process to be suspended while the -file is loaded, and then restarted when the extension has become -available.

-

As a result, any call to MathJax.Hub.Typeset() (or -MathJax.Hub.Process(), or MathJax.Hub.Update(), etc.) -could return long before the mathematics is actually typeset, and the -rest of your code may run before the mathematics is available. If you -have code that relies on the mathematics being visible on screen, you -will need to break that out into a separate operation that is -synchronized with the typesetting via the MathJax queue.

-

Furthermore, your own typesetting calls may need to wait for file loading -to occur that is already underway, so even if you don’t need to access -the mathematics after it is typeset, you may still need to queue the -typeset command in order to make sure it is properly synchronized with -previous typeset calls. For instance, if an earlier call -started loading an extension and you start another typeset call before -that extension is fully loaded, MathJax’s internal state may be in -flux, and it may not be prepared to handle another typeset operation -yet. This is even more important if you are using other libraries -that may call MathJax, in which case your code may not be aware of the -state that MathJax is in.

-

For these reasons, it is always best to perform typesetting operations -through the MathJax queue, and the same goes for any other action -that could cause files to load. A good rule of thumb is that, if a -MathJax function includes a callback argument, that function may operate -asynchronously; you should use the MathJax queue to perform it and -any actions that rely on its results.

-

To place an action in the MathJax queue, use the -MathJax.Hub.Queue() command. For example

-
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathDiv"]);
-
-
-

would queue the command MathJax.Hub.Typeset("MathDiv"), causing -the contents of the DOM element with id equal to MathDiv to be -typeset.

-

One of the uses of the MathJax queue is to allow you to synchronize an -action with the startup process for MathJax. If you want to have a -function performed after MathJax has become completely set up (and -performed its initial typesetting of the page), you can push it onto -the MathJax.Hub.queue so that it won’t be performed until MathJax -finishes everything it has queued when it was loaded. For example,

-
<script type="text/javascript" src="/MathJax/MathJax.js"></script>
-<script>
-  MathJax.Hub.Queue(function () {
-    // ... your startup commands here ...
-  });
-</script>
-
-
-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Using Callbacks

-

Next topic

-

Using Signals

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/search.html b/docs/html/search.html deleted file mode 100644 index ee51e9058..000000000 --- a/docs/html/search.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - Search — MathJax v2.0 documentation - - - - - - - - - - - - - - - - - -
-
-
-
- -

Search

-
- -

- Please activate JavaScript to enable the search - functionality. -

-
-

- From here you can search these documents. Enter your search - words into the box below and click "search". Note that the search - function will automatically search for all of the words. Pages - containing fewer words won't appear in the result list. -

-
- - - -
- -
- -
- -
-
-
-
-
-
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js deleted file mode 100644 index c20827ff4..000000000 --- a/docs/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({objects:{"":{reset:[14,0,1],Preloading:[0,0,1],Log:[19,0,1],ExecuteHooks:[14,0,1],setScript:[10,0,1],Subclass:[42,0,1],File:[19,0,1],Delay:[14,0,1],Add:[14,0,1],getAllJax:[31,0,1],getScript:[10,0,1],Interest:[44,0,1],preProcess:[26,0,1],Translate:[43,0,1],Config:[31,0,1],addElement:[10,0,1],Styles:[0,0,1],ExecuteHook:[44,0,1],loadTimeout:[0,0,1],Resume:[17,0,1],Update:[31,0,1],preTranslate:[26,0,1],formatError:[31,0,1],call:[17,0,1],postTranslate:[26,0,1],getJaxByInputType:[31,0,1],PreProcess:[31,0,1],Post:[44,0,1],has:[42,0,1],Text:[55,0,1],Clear:[19,0,1],Insert:[31,0,1],Execute:[14,0,1],Register:[43,0,1],TextNode:[10,0,1],Augment:[42,0,1],needsUpdate:[55,0,1],Signal:[14,0,1],addText:[10,0,1],Zoom:[26,0,1],Remove:[19,0,1],Element:[10,0,1],Queue:[14,0,1],NoInterest:[44,0,1],Rerender:[31,0,1],getJaxByType:[31,0,1],Push:[17,0,1],Typeset:[31,0,1],loadComplete:[0,0,1],wait:[17,0,1],Load:[0,0,1],loadError:[0,0,1],Set:[19,0,1],getJaxFromMath:[26,0,1],LoadHook:[0,0,1],fileURL:[0,0,1],Process:[31,0,1],Hooks:[14,0,1],Reprocess:[31,0,1],Startup:[43,0,1],Init:[42,0,1],Suspend:[17,0,1],SourceElement:[55,0,1],getJaxFor:[31,0,1],can:[42,0,1],setRenderer:[31,0,1],MessageHook:[44,0,1],isJax:[31,0,1],filterText:[19,0,1],isa:[42,0,1],Require:[0,0,1]}},terms:{linebreak:[56,12,39,28],lvertneqq:33,lspace:33,reprocess:[31,55,52],mathjax_msie_fram:19,yellow:33,four:[33,50,13],prefix:[10,21,26,18],asymp:33,blacktriangledown:33,webfont:[5,39,21],whose:[10,31,52,4,24,35,41,26],biggr:33,under:[33,36,46],preprocess:[32,52,43,57,31,26],asciimath2jax:[30,15,21,35,57,54],worth:41,digit:18,gimel:33,everi:[33,12,41,18,20,27,31],risk:21,mskip:33,arcco:33,govern:[13,41,21],dotplu:33,affect:[12,13,46,18,33,31,54],eqnarrai:33,cmd:23,bigodot:33,c6h5:33,ominu:33,fontweight:12,vector:[48,56,57],red:[33,21,49],categori:50,nparallel:33,showcontext:6,nsubseteqq:33,direct:[39,5,13,46],thinspac:33,second:[0,12,13,46,14,24,50,36,53,4,5,35,49,23,20,56,40,41,26,59],ngeq:33,even:[0,2,33,12,41,30,15,17,20,49,25,28,14,24,31,44,36,39,50,52,53,56,57],hide:52,prejax:[57,23],neg:[33,12],menclos:[33,12],"new":[32,3,33,41,10,11,12,13,18,19,20,21,27,25,55,54,14,40,31,42,44,46,26,50,6,52,53,56,57,58],net:21,mhtml:1,told:[33,53,2],limsup:33,elimin:23,abov:[2,33,5,41,10,12,13,30,18,21,23,26,28,14,34,39,31,42,46,24,50,52,56],lessapprox:33,never:[0,41,46,43],here:[10,44,45,39,14,24,50,2,33,20,21,22,23,38,31,55,43,52],updiagonalstrik:33,met:32,lneqq:33,formaturl:27,path:[15,0,41,28,21],noundefin:[15,21,12,33],interpret:[4,21,33,46,30],nrightarrow:33,embelish:12,forum:[21,3],mbox:33,rceil:33,backprim:33,uproot:33,lengthen:12,linearli:[56,12],circleddash:33,mathstrut:33,unix:46,org:[13,1,2,18,6,52,33,21,37,7,56,9,41],thinmathspac:36,unit:[33,12,18,28],highli:25,describ:[10,33,13,46,14,21,48,59,32,52,15,5,31,49,24,57,41,26],would:[4,5,6,8,10,12,13,30,15,17,21,49,23,24,55,27,28,29,14,31,33,34,35,37,38,39,41,42,22,46,47,50,51,52,56,57,58,59],bleed:18,vartriangl:33,ltime:33,varlambda:33,call:[0,1,2,4,5,6,8,12,13,17,19,20,21,27,23,24,26,28,29,14,44,31,33,34,35,38,39,40,41,42,43,22,46,47,48,55,50,51,52,53,54,57,58],typo:12,recommend:[21,12,46,57,56],vcenter:33,preview:[12,29,39,4,47,35,23,57,28],type:[0,1,2,15,41,7,9,10,12,13,20,21,43,23,55,33,37,40,31,4,36,26,50,52,53,56,57],until:[0,29,44,31,50,4,47,35,43,23,24,20,41],notin:33,displaymath:[4,41],relat:[0,18,56],notic:[33,30],warn:[0,12,13,23,5],mathev:[54,26,38,51],eqslantless:33,hold:[0,12,51,49,23,38,57,31],unpack:[21,46],must:[0,32,33,5,41,13,17,19,21,27,23,28,30,44,35,39,31,4,36,46,48,59,51,53,56],fbox:[33,18],join:[20,33],room:27,setup:[25,21,12,36],work:[10,11,12,13,46,15,30,24,18,33,2,3,52,20,21,36,37,53,25,56,42],cc0000:[59,23],tag_nam:46,root:[0,18,32,19,33,41],overrid:[12,26,33,5,43,40,42],mathmenu:[12,45,59,6,15,23,54],give:[44,12,31,39,21,48,49,33,20,5,22,54,59,41,27,28],cirit:41,indic:[0,31,46,30,44,17,33,32,20,21,43,23,24,55,40,41,26,57],impair:25,texhint:23,want:[3,4,13,30,16,19,20,21,22,23,26,28,14,33,24,35,39,9,41,42,15,36,46,50,52,56,58],david:30,setminu:33,end:[0,12,15,30,1,56,32,50,18,3,33,4,36,7,20,9,41,58,57],quot:[39,18,4,35,23,28],hom:33,heartsuit:33,how:[0,1,2,3,4,5,6,7,13,14,15,17,19,21,49,23,27,28,29,30,44,31,34,35,37,38,39,41,22,46,47,33,51,52,53,57],disappear:[4,47,12,29,35],answer:[3,52],verifi:[21,46,3],config:[1,2,4,5,6,7,8,9,12,13,15,19,20,21,27,23,24,26,28,29,30,31,32,33,34,35,37,38,40,41,43,22,39,47,50,51,52,54,56,58,59],varrho:33,updat:[12,13,46,1,50,18,52,33,31,23,39,41,55,28],showrender:6,recogn:[21,12],lai:[56,57],diagdown:33,after:[0,2,33,12,41,17,19,20,21,43,23,28,14,24,39,31,44,46,50,6,52,53,54,57,58],befor:[0,1,2,3,4,7,12,13,14,17,19,20,21,49,23,27,28,30,31,32,33,24,35,41,42,43,44,36,39,48,50,51,52,53,56,57],wrong:[33,12,36],startuphook:[20,33,12,31],parallel:[33,32,50,18],averag:57,alignedat:33,attempt:[0,12,36,6],third:[56,50,36],leftarrow:33,receiv:[44,13,46,24,42,33,20,21,43,53,41,26],greasekit:2,maintain:[12,13,53,3,20,24,23,26],environ:[33,12,3,4,21,27],enter:[36,34,52,33,21,57,41],textnod:10,order:[32,4,5,41,12,13,17,19,21,23,28,29,14,33,24,35,39,31,42,44,46,47,48,50,56,57],oper:[0,4,5,6,8,12,17,18,19,20,22,23,24,25,26,27,28,29,34,35,38,39,40,44,45,46,47,48,50,51,52,56,58],approxeq:33,over:[10,0,12,39,33,18,51,52,15,21,23,38,56,57,41,6,28],fall:[46,30,21,50,33,5],becaus:[20,13,39,30,44,50,36,2,33,19,4,21,35,49,24,56,57,41,52,27,28],boxtim:33,suspend:[20,17,50,44],textrm:33,appar:50,afil:24,flexibl:[49,50,13],vari:56,smallint:33,img:[29,59,2,4,47,35,49],fix:[12,13,46,18,56,39,41,28],preferredfont:39,better:[12,30,34,18,6,33,21,37,7,56,41],boxminu:33,drawback:56,upharpoonleft:33,persist:3,comprehens:48,hidden:33,easier:[44,12,13,46,50,33,36,42],moveleft:33,substack:33,them:[0,4,5,41,10,12,13,30,17,18,20,21,27,14,44,33,34,35,31,15,36,46,24,50,57,59],thei:[0,2,3,4,5,6,8,12,13,15,16,17,18,19,20,21,49,23,24,27,28,29,14,44,31,32,33,34,35,38,39,41,43,22,46,47,48,50,51,52,53,54,56,57,58,59],precapprox:33,safe:[10,21,52],rectangl:48,"break":[12,39,50,18,33,53,56,28],mtext:[12,39,18,33,21,28],wedg:33,widetild:[33,12],choic:[56,12,31,7],dbinom:33,leftharpoondown:33,accommod:12,timeout:[0,12,18,14],each:[20,12,31,46,14,30,44,50,32,33,19,4,21,35,15,53,39,57,41,52,28],debug:19,went:33,side:[12,19,33,21,27,23,7],mean:[1,4,32,33,5,12,13,15,16,20,23,25,28,29,30,2,47,35,41,44,39,24,52,53,56],leqq:33,createel:2,resum:[17,50],represetn:33,leqalignno:33,mathopen:33,looparrowleft:33,expres:33,network:[12,13,46,18,15,21,9,41],goe:[33,53,50],iint:33,newli:[10,20,42],crucial:46,predefin:33,content:[1,4,32,15,41,7,9,10,12,13,18,21,49,23,35,40,31,42,33,36,48,50,52,56,57],prefilt:12,reader:[33,12,39,18,15,25,56,28],forth:45,impract:46,multilin:33,written:[21,7],situat:[12,18,52,21,56,41],free:[55,3],standard:[15,12,46,48,33,20,21,25,56,57,41,59],autonumb:[33,27],reconfigur:13,lneq:33,angl:33,jsmath2jax:[29,18,37,54],filter:[12,14],isn:[12,52,20,43,56,55],mtabl:[15,12],isa:42,subtl:52,onto:[48,21,50,31,52],attribtu:21,mathbb:33,rang:[21,57],mathbf:33,render:[15,12,36,32,18,6,4,21,23,25,56,57,31,58,28,37],accent:12,independ:41,yourcolleg:46,restrict:[33,46,23],hook:[20,0,12,14,44],unlik:[25,33,41,43],alreadi:[0,12,14,33,32,50,2,3,19,20,24,52,53,41,42],subtleti:33,primari:[56,13],tooltop:[39,28],top:[12,45,46,33,21,56,41,26],sometim:[21,41,46],underlin:[33,18],master:53,too:[33,12,39,30,2,18,4,21,35,22,56,28],similarli:[0,31,46],newenviron:33,john:24,listen:[20,44,31,14],thickapprox:[33,12],namespac:[12,14,2,18,52,33,21],tool:[50,46],tagind:27,embellish:18,gtrless:33,compressor:18,somewhat:[53,23,56],technic:[48,12],past:[44,12,13,18,20,53,25,56],filesmatch:[12,46],provid:[0,1,2,33,10,12,17,19,20,21,49,25,14,24,31,42,44,36,50,52,53,57],eqalignno:33,tree:[21,49],iota:33,project:[48,41,3],matter:[20,37],mathtt:33,ldotp:33,modern:[25,5,36,21,11],mind:[33,21,41,30,1],increment:17,seem:[24,12,36],rightrightarrow:33,ldot:[33,12],ngeqq:33,latter:[33,16,20,34,49,23,57,41,54],domcontentload:[32,12,2],curvearrowleft:33,blue:38,though:[12,30,14,33,53,49,23,57],object:[0,32,33,5,6,10,11,12,16,17,19,20,49,23,26,27,28,14,24,38,40,31,42,43,44,45,39,48,55,50,51,52,53,54,22,57,59],mmtoken:12,gzip:18,regular:[4,21,35,23],letter:[21,46],breakpoint:[56,12],phase:12,grave:33,don:[33,12,13,34,18,50,2,52,20,5,31,36,24,56,57,41],dom:[10,12,55,50,52,20,53,43,23,40,31,26],doe:[33,12,31,46,14,30,58,55,2,52,20,21,36,23,25,56,40,41,26,57],declar:[12,36,39,59,51,33,5,22,6,38,28],place:[0,12,46,21,42,50,3,33,20,5,44,22,23,52,39,41,26,27,28,37],tfrac:33,unchang:[33,13,58,52],section:[2,4,5,6,41,8,12,13,18,22,23,24,27,28,29,30,34,35,37,38,9,31,15,36,39,47,33,51,54,56,58],came:46,delaystartupuntil:[31,41,32,23],random:[21,46],lnapprox:33,syntax:[48,42,33,18,30],mediawiki:1,isopera:31,outerhtml:18,shownam:24,asynchon:52,involv:[33,53,57,41,3],consolid:25,layout:[39,28],just:[44,12,31,46,14,1,24,50,33,20,21,36,23,15,7,25,56,57,41,59],mathchoic:[33,12],ismsi:[31,32],menu:[32,15,6,7,11,12,18,22,23,26,28,36,38,39,9,45,46,55,51,56,57,58],explain:[13,1,15,53,41,54],configur:[0,2,4,5,7,8,9,11,12,13,15,18,19,20,21,49,23,24,25,26,27,28,29,30,31,32,34,35,37,38,39,40,41,43,22,36,46,47,33,54,56,57,58],apach:[12,46],reflow:[26,12,18,56],theme:[41,1,7],rich:[25,48],folder:[39,21,46],"0000f0":38,stop:[33,31,39,28],infti:[33,57],amazon:21,mho:33,report:[36,23,3],circeq:33,nummber:[],subseteq:33,fadeouttim:5,bar:[33,12,42,14],patch:[41,46],reload:6,bad:18,replacechild:2,neq:33,unexpectedli:[33,21,30],underbrac:33,dashrightarrow:33,scriptscriptstyl:33,precneqq:33,result:[33,41,12,13,30,21,22,23,55,28,14,24,40,31,36,39,48,26,50,52,56,57],respons:[44,12,14,18,33,40],fail:[0,12,18,24,43,56,54],hash:[12,32,23],best:[0,13,46,30,50,56,57,41],awar:[33,0,50,36,30],subarrai:33,varinjlim:33,wikipedia:[48,2],circledcirc:33,gneqq:33,drawn:[39,28],awai:[33,41,46],approach:[24,57,1,52],attribut:[10,12,36,47,59,18,33,21,49,56,57],blacktriangleright:33,extend:[25,57,30],shoud:56,extens:[0,32,4,5,6,41,12,13,18,20,21,27,23,54,29,33,47,35,37,38,31,43,15,45,48,50,51,52,56,59],html5:[12,13,18,21,36,56,57],toler:2,intop:33,protect:33,accident:12,expos:30,cow:42,howev:[33,13,46,24,32,50,2,3,19,15,21,23,52,56,57,41,42,59,54],configuraiton:[33,57],against:44,indexof:12,browser:[2,15,5,41,10,11,12,13,18,21,23,25,55,28,30,32,35,45,37,39,31,4,36,46,48,33,6,53,54,56,57,58],com:[41,46],varpsi:33,preccurlyeq:33,foral:33,foobar:42,sai:[17,2,14],innerhtml:[2,52],height:[33,26,12,18,6],wider:3,summat:34,sqsupset:33,speak:[16,57],issol:33,chrome:[39,2,18,56,31,58],three:[36,46,14,21,50,33,5,49,24,53,56,57,43],been:[0,2,3,4,12,13,17,19,20,21,22,23,26,14,32,24,35,37,39,40,41,44,46,50,52,53,56,58],trigger:[15,12,26,23,38],interest:[44,48,33,3,20,53],basic:11,tini:33,quickli:[25,41,3],underrightarrow:33,rather:[0,2,4,5,8,12,13,17,18,20,21,27,23,25,55,54,14,32,33,34,35,41,42,43,15,36,46,48,50,6,52,53,56,57,59],regul:50,xxx:33,ani:[0,2,3,4,5,6,8,12,13,15,17,19,20,21,27,23,24,26,28,29,14,44,31,32,33,34,35,38,39,40,41,42,22,36,46,47,55,50,51,52,53,56,58],emploi:56,hskip:33,tanh:33,hat:33,servic:[13,46,18,21,9,41],properti:[10,0,45,42,14,44,17,24,43,55,40,31,26],diamondsuit:33,sourceforg:13,weren:[12,13],dashboard:9,suffici:[30,33,21,27,41,58],anchor:[27,23],"3px":[33,59],succeq:33,lightli:56,nexist:33,retransl:[55,52],tabl:[56,12,36,30],cong:[33,12],sever:[0,12,13,46,15,50,33,4,24,35,57,52,26],amout:19,incorrectli:[21,12,13,18],perform:[32,3,33,5,41,12,13,17,18,19,20,27,23,26,28,14,24,40,31,43,44,45,39,48,55,50,52,53,56],suggest:[5,3,21],make:[0,3,4,5,12,13,16,17,18,20,21,22,23,25,26,28,29,31,33,47,35,39,41,42,15,36,46,50,6,52,53,56,57,59],format:[11,12,13,30,48,55,33,57,15,21,49,23,25,56,40,36,26,27],complex:[56,49],split:33,synch:13,lrcorner:33,unsafewindow:2,complet:[0,32,15,41,4,13,17,20,21,43,23,26,14,33,24,35,31,44,46,48,55,50,52,53,56],longmapsto:33,hand:[12,45,2,19,27,23,57,36,37],fairli:[49,13],rais:[33,18],mkern:33,ignorepast:44,unlhd:33,techniqu:[13,2],redefin:[12,33,5,43,40,26],kept:20,thu:[13,14,50,20,24,55],inherit:[39,16,26,55,40,42,28],client:39,thi:[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],idotsint:33,programm:42,everyth:[31,15,50,41,33],settimeout:[24,14],left:[12,45,46,32,19,33,53,27,23,7,56,9,36,54],processclass:[4,12,35],identifi:[10,44,12,30,33,21,57],proccess:[40,26],yen:33,msam10:21,mathbin:33,human:21,coprod:33,yet:[36,17,50,52,20,53],languag:[48,21,33,57,53],noscript:[4,35],onload:[12,45,2,32,24,23,41],errorset:[15,23],easi:[48,33,37],interfer:[21,12,34],had:[20,21,12,13,2],myconfig:[20,24],step1:33,els:[33,24,2,52],save:[12,59,7,56,9,41],"0x21c0":33,jsmath:[11,57,37],sanit:19,applic:[25,21,32,1],loadtimeout:0,quirk:12,preserv:24,cho:33,bbox:[33,12],background:[33,12,18,59,38],sqsubset:33,specif:[0,12,45,14,1,44,31,17,50,52,4,24,35,43,48,56,57,41,55],arbitrari:33,manual:5,zoom:[11,12,36,32,18,51,15,23,38,26],nsubseteq:33,leftrightarrow:33,unnecessari:12,underli:56,www:[21,2,46,6],right:[12,36,46,48,17,50,2,19,33,34,27,23,7,56,57,41,54],old:[20,12],simbl:2,deal:21,autobold:[33,12],interv:34,surd:[33,18],percentag:[56,22,39,23,28],intern:[0,12,36,14,30,44,48,17,50,52,33,23,55,56,40,31,26,57],interf:12,successfulli:[0,24],interc:33,dddot:33,bottom:[12,41,7],subclass:[44,45,26,43,55,40,42],circ:33,tracker:[21,3],overcom:53,condit:[0,12,32],getjaxfor:[20,12,31,26],core:[12,39,50,32,33,22,23,38,57,31,54],plu:[15,44,32],bold:[48,33,49,27,54],insecur:21,mathrel:33,colleg:46,repositori:[46,13,18],post:[44,12,39,14,32,3,19,20,53,43,28],"super":[42,12,18],llless:33,obj:10,nwarrow:33,slightli:[33,56,28,7],surround:[12,39,21,22,23,28],unfortun:[21,46],current_theme_templ:1,joomla:1,span:[33,29,4,47,35,49,23,57,26,37],downharpoonright:33,produc:[33,5,12,13,20,21,27,23,25,55,54,14,24,37,40,41,44,39,26,6,52,28,56,57],stretchi:[33,12],"float":[56,12],encod:[33,30],floar:56,rightsquigarrow:33,down:[46,9,26,23,56],shortparallel:33,wrap:42,often:[12,39,30,59,33,21,57,28],nsupseteq:33,git:[21,13,18,46],wai:[1,2,33,4,13,19,20,21,43,23,28,29,14,24,35,41,44,46,47,50,52,56,57],support:[11,12,13,39,30,21,18,33,36,2,3,15,5,32,45,25,56,57,41,58],transform:57,ngtr:33,avail:[0,1,2,15,5,12,13,20,21,23,25,55,28,29,33,47,35,39,41,42,4,36,46,48,50,6,52,56,57],width:[12,36,39,6,33,21,27,56,26,28],reli:[0,13,48,50,2,52,24,56],"30em":[39,28],wordpress:[1,7],editor:7,rell:27,rightthreetim:33,head:[1,2,52,21,7,56,9,41],longdiv:33,eqeref:[],form:[36,39,48,19,33,21,27,23,57,41,55],offer:[13,18,3],forc:[39,12,41,26,56],epsilon:33,hear:[20,44],so4:33,ismobil:31,"true":[4,32,33,41,8,12,13,15,27,23,55,28,14,34,56,40,31,42,44,45,39,6,22],maxmacro:27,reset:[6,14],displayalign:23,maximum:26,tell:[46,52,21,27,56,41],absenc:1,retir:13,featur:[11,12,36,46,58,33,3,52,20,24,38,56,42],rfloor:33,exist:[12,46,14,33,21,39,42,28],ddot:33,backsim:33,triangleq:33,check:[0,13,46,44,19,33,21,24,40,42],when:[0,2,4,5,7,8,12,13,14,15,16,17,18,19,20,21,49,23,24,25,26,27,28,29,30,44,31,32,33,34,35,36,37,38,39,40,41,42,43,22,45,46,47,48,55,50,6,52,53,56,57,58],abovewithdelim:33,role:57,test:[10,11,12,13,46,53,32,2,52,20,21,31,36,56,41,42],tie:[32,26,14],smallsmil:33,node:10,mathel:1,intend:[48,42,23],munderov:[12,57],positiontohash:[12,23],gvertneqq:33,consid:[0,13,50,18,51,33,4,21,3,56,57,31,55],omega:33,outdat:3,faster:[12,18,15,56,57,41],bullet:[48,33],anywher:[12,41],pseudo:12,cancelto:[33,12],tex2jax_ignor:[4,18],ignor:[4,44,35,33],time:[0,2,3,33,5,10,12,41,18,19,20,27,23,28,14,24,39,31,43,44,46,50,51,52,56,57],push:[14,48,17,50,32,52,24,31],backward:[39,28],"5kb":27,mathrm:33,doteq:33,skip:[4,12,46,35],consum:19,known:[50,12],skin:1,displayind:23,millisecond:[0,39,14,51,19,5,6,31,28],decid:[56,12,41,6],middl:[33,21,12],depend:[12,14,32,52,24,7,56,41,58],decim:[33,34],readabl:48,nearrow:33,varpi:33,certainli:46,vee:33,decis:56,leftarrowtail:33,succnsim:33,sourc:[11,12,13,46,15,50,2,6,33,20,36,23,25,56,57,31,55],xlongequ:33,mprescript:12,curlyve:33,word:[4,35,41,57],centerdot:33,dim:33,foo:[42,14],administr:[1,7],level:[21,12,41,46,45],did:[24,12],item:[22,12,39,6,33,24,49,23,26,28],cooki:[10,32,18],div:[10,33,57,37,52],prevent:[33,12,29,39,47,18,6,4,21,35,22,23,41,27,28],outlin:18,slower:[56,39,28],hack:56,sign:[33,13,30,4,21,35,57,41],cost:[33,21,41,42,30],pmb:33,rightarrowtail:33,widehat:[33,12],xandi:42,dotsi:33,dotsm:33,appear:[20,12,45,46,30,34,33,6,19,4,21,35,27,52,23,24,7,39,41,55,28],dotso:33,repli:20,dotsc:33,dotsb:33,current:[0,12,31,46,1,44,42,56,21,7,39,40,41,26,9,28,55],backepsilon:33,ampersand:[33,30],inlinemath:[33,13,2,52,4,21,35,41],defici:36,amalg:33,mathsiz:33,gener:[33,12,31,30,21,58,55,32,15,5,37,24,57,41,26],mfrac:[21,57],explicitli:[33,12,13,30,24,18,4,21,35,23,41,42],modif:[50,41],address:[21,12,46,52],along:[33,48,50,19,20,37,40,26],wait:[0,12,31,46,14,44,48,17,50,18,2,52,20,24,32,23,53,40,41,26],box:[0,12,18,32,33,5,38,26],html_head:1,bracevert:33,shift:23,xtwoheadrightarrow:33,bot:33,queue:[44,45,14,53,16,17,50,32,52,24,48,31],overriden:31,digamma:33,varlimsup:33,commonli:[15,21,48],macintosh:31,semant:42,succsim:33,extra:[33,2,18,20,23,56,57],circumv:46,modul:[0,9,45],prefer:[12,13,39,6,21,56,46,58],iepro7:2,veebar:33,visibl:[33,12,29,50,52,4,47,35,36,26],marker:[33,30],myid:59,mobil:[12,13,18,31,25,56,41],arrowvert:33,memori:[53,55],bigr:33,visit:21,todai:48,subvers:[21,46],stylesheet:[0,45,14,44,17,32,52,53,23,7,56],handler:[0,45,48,2,32,52,53,23,57,41,26],xtofrom:33,current_skin:1,bigl:33,bigm:33,eqcirc:33,checkout:46,bigg:33,inputjax:[45,16,55,32,33,43,40,31,42],capit:16,peopl:21,bigtriangleup:33,enhanc:[12,18,57],minscaleadjust:[22,39,28],visual:[25,15,12,39,28],templat:[9,41,1,7],hphantom:33,easiest:[20,21,46,14,24],graphic:[48,56,46],prepar:[50,41,26],cap:33,uniqu:59,hline:33,pmatrix:33,whatev:[33,1,30,26,50,52,20,42],cal:[33,12],purpos:[24,12,57],getjaxbytyp:31,downharpoonleft:33,precsim:33,subseteqq:33,varprojlim:33,backslash:[33,27,23],topic:[16,11,41],stroke:28,phrase:[33,21,30],occur:[0,2,12,41,17,19,20,21,43,23,26,14,32,24,31,44,36,46,50,6,52,53,56],eqsim:33,pink:33,alwai:[12,14,16,50,33,24,41],multipl:[33,50,13,12],mpad:12,trianglelefteq:33,write:[44,30,48,50,52,21,25],fourth:50,mathsf:33,tild:33,xhtml:[21,36],map:[57,26],remap:12,max:33,clone:46,spot:[33,30],usabl:46,mac:[31,23],rowspan:36,mai:[0,1,2,3,4,5,41,7,12,13,16,20,21,22,23,26,28,30,33,24,39,31,42,44,36,46,55,50,52,53,56,57],underscor:[33,21],data:[10,0,12,45,46,14,24,42,20,21,43,55,39,40,31,26],grow:[56,12,39,28,1],goal:25,vartheta:33,baso4:33,explicit:[0,39,21,23,41,28],uparrow:33,geramond:33,inform:[0,12,15,1,44,48,33,32,19,20,24,23,56,40,41,26,57],"switch":[12,13,46,18,33,37,57],preced:[24,41,23],combin:[0,12,13,39,34,33,18,57,15,21,22,56,8,41,58,27,28],gamma:33,tall:12,lnsim:33,approx:33,showmathmath:22,addmmlclass:28,downarrow:33,lsh:33,tex2math:37,still:[44,12,15,39,14,1,48,50,36,51,20,22,23,38,56,41,58],pointer:[12,42],ttf:[12,46],dynam:[0,12,45,11,50,2,52,21,23,53,25,57,41],entiti:[33,36,18,30],snippet:[10,11,29,47,33,3,4,5,35,49,23,31],conjunct:13,group:[0,12,36,3],monitor:3,polici:46,mpcontext:[15,23],ignoreclass:[4,35],platform:[25,11,1,21],window:[12,45,39,14,24,2,6,19,5,23,52,56,31,28],"05em":33,main:[33,12,13,46,16,42,50,57,15,21,31,45,23,59,56,40,41,26,43],mathexampl:52,non:[10,0,12,30,17,33,21,56,57],jipsen:30,myinputjax:43,initi:[0,12,13,30,53,31,50,32,6,33,4,21,35,45,23,20,56,57,41,55,43],bound:33,safari:[12,2,18,56,31,58],half:24,now:[12,13,46,48,32,18,15,21,22,23,38,56,39],discuss:[10,46,41,2,3],nor:[5,49],term:[13,41,21,19],name:[0,32,4,5,10,12,13,30,15,18,19,20,21,49,23,26,27,28,14,31,2,24,35,39,40,41,42,43,44,36,46,55,33,54,59],opera:[18,31,2,58,56],boxdot:33,drop:46,separ:[20,12,13,46,33,50,19,4,21,35,36,23,41,59,54],messagestyl:[5,23,19],sideset:33,ntriangleleft:33,confid:25,varpropto:33,vec:33,varsupsetneqq:33,compil:[24,12],domain:[21,12,41,46],replac:[42,0,13,46,14,18,36,2,52,33,21,31,27,40,41,26,57],individu:[33,55,18,54,52],strikethrough:33,continu:[0,12,13,30,50,33,20,53,56,41],happen:[12,36,46,30,17,50,2,33,53,57],baselin:26,shown:[33,49,23,6,52],accomplish:[21,12,41,46,56],"3rd":21,space:[12,30,34,18,52,33,21,23,56,8,55,57],intermix:32,internet:[0,12,2,18,19,33,24,23,56,57,52,26,54],formula:[12,52,33,23,25,56,57],mathjax_zoom:38,correct:[24,12,13,2,23],integr:33,simeq:33,earlier:[12,39,50,32,21,27,56,41,28],migrat:[11,13],postfilt:12,bigstar:33,ajax:[0,45,16,50,32,33,20,24,31,43,41],mime:[36,55,21,43,40,31,26],underleftarrow:33,brower:[33,30],ord:[33,12],care:[30,34,2,33,21,54],ntrianglelefteq:33,couldn:24,x00b1:21,synchron:[0,14,11,48,17,50,2,52,20,24,32,53,31,44],mscarri:36,thing:[30,48,52,33,21,49],vdash:33,eqref:[33,12],mathop:[33,12],unwis:56,view:[12,36,46,16,2,15,21,37,56,25,39,41],think:[33,23,30,52],frequent:[4,20,35,30],first:[4,2,33,7,12,30,20,21,49,23,26,28,14,24,35,39,40,41,44,36,46,50,52,53,56,57],origin:[42,44,12,46,30,17,33,2,52,20,21,23,55,40,41,26,28],lfloor:33,oni:46,directli:[12,46,2,50,18,52,33,24,43,7,57],onc:[0,46,14,44,50,32,33,15,21,37,56,40,52,26],arrai:[32,4,5,8,12,31,17,18,20,27,23,24,26,28,29,14,34,35,37,56,40,41,43,44,39,47,49,33,54,22,57,58],yourself:[46,21,17,33,24,23,41],submit:3,formatnumb:27,open:[11,36,46,6,33,21,7,25,9],ios4:18,size:[12,39,59,18,52,33,22,23,56,41,26,27,28],given:[0,1,33,10,12,14,17,18,19,20,21,49,23,55,30,24,38,40,31,42,44,26,50,57,59],convent:26,ifmodul:[12,46],adjac:18,paramt:[33,12],leftrightharpoon:33,circl:33,white:59,conveni:[21,42,23],includ:[0,1,2,4,5,6,8,12,13,14,15,16,18,20,21,49,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,22,45,46,47,48,50,51,52,54,56,57,58,59],hub:[0,2,4,5,6,8,12,13,15,16,19,20,21,27,23,24,26,28,29,30,31,32,33,34,35,37,38,40,41,22,45,39,47,55,50,51,52,54,56,57,58],especi:[56,12,57],"public":[44,46],copi:[12,13,46,30,36,2,3,15,21,31,43,25,41],specifi:[32,4,5,6,8,10,12,13,14,17,18,20,21,27,23,28,30,44,31,33,24,35,38,40,41,22,39,48,49,50,51,53,56,57,58,59],forward:12,lhd:33,enclos:[12,39,59,33,23,57,28],quad:33,than:[0,2,4,5,7,8,12,13,30,15,17,18,20,21,27,23,25,55,54,14,31,32,33,34,35,39,40,41,42,43,44,36,46,48,50,6,52,53,56,57,59],serv:[21,18],wide:[25,39,57,46,28],undefinedfamili:[39,28],balanc:[4,12],were:[12,13,26,52,20,56,55,28],posit:[12,39,17,18,33,23,28],seri:[50,49],pre:[20,12,13,46,15,14,33,4,5,35,23,41],delic:23,lnot:33,doublecup:33,nleftrightarrow:33,argument:[44,12,14,50,33,24,42,54],dash:[59,39,28],properli:[10,0,12,13,46,21,18,50,2,52,4,5,36,24,55,56,31,42],engin:[25,11,12],squar:[33,49,18],greek:12,npreceq:33,consortium:25,note:[0,2,4,5,7,12,41,21,49,23,55,27,28,30,33,24,35,39,31,43,44,46,50,6,52,56,57,58,59],other:[0,1,32,4,5,12,13,14,15,17,18,19,20,21,43,23,25,55,28,30,31,33,24,35,37,39,41,42,44,36,46,48,50,52,53,56,57,58],x2260:21,take:[10,0,12,13,14,1,24,50,32,3,52,33,5,27,23,53,56,41],emnu:6,noth:[21,12,14,24],channel:[20,48],updownarrow:33,begin:[20,12,46,30,52,50,32,33,4,27,56,57,41],sure:[44,12,13,46,52,50,18,3,33,4,21,35,56,41],windowset:6,normal:[15,39,14,33,2,4,21,35,23,57,59,28],buffer:27,compress:41,beta:[33,12,41],pair:[10,0,14,33,4,59,35,49,20,40,31,26,27,54],fileurl:0,beth:33,hotfix:41,latex:[11,12,30,48,33,4,21,25,57,41],renam:13,textarea:[4,35],later:[44,12,31,39,30,14,17,50,33,24,36,56,41],drive:46,typeset:[0,32,4,6,12,18,19,20,22,23,25,55,28,29,47,35,38,31,45,39,24,48,50,51,52,53,56,57],badg:3,sigma:33,mathfrak:33,showmathmenu:[39,23],downdownarrow:33,show:[33,12,46,21,3,52,15,5,49,23,24,9,6,54],autoreset:14,cheap:28,parentnod:[18,2],newcomand:12,concurr:32,permiss:[21,46,30],htmlcss:26,isfirefox:31,corner:[45,23,19],xml:[25,48,12],onli:[0,1,2,3,4,5,41,12,13,18,21,49,23,25,55,28,30,44,24,35,39,40,31,15,46,48,33,52,56,57,59],slow:[56,12,26],activ:[12,13,46,14,48,3,52,15,53,36,57],enough:[12,36,50,21,49,56,41],inlinedelimit:33,otim:33,black:[33,12],offici:[12,41],geq:33,mypic:[4,47,35,49,29],nearli:[15,33,41,54],variou:[0,31,1,44,16,59,19,20,5,23,40,41,57,54],get:[2,4,10,11,12,30,18,19,21,27,23,26,28,14,32,33,24,39,41,42,44,36,46,50,52,56],soon:[12,41,2,23,52],cannot:[33,30],ncong:33,lighter:28,theta:33,requir:[0,12,13,15,14,24,31,50,2,51,33,4,21,35,43,20,25,40,41,26,57],truli:52,prime:[33,12],reveal:12,lceil:33,mathpunct:33,rerend:[40,31,55,52],enspac:33,hostil:21,intermitt:[45,19],shortmid:33,qquad:33,retypeset:52,where:[0,32,3,15,5,41,10,12,13,30,19,20,21,22,26,27,28,14,24,39,40,31,33,45,46,55,59,52,53,56,57],wiki:[1,48,2,33,21,57,41],latexmathml:30,keyboard:48,ismac:[31,32],concern:[57,31,30],infinit:[12,27],detect:[18,12,2,14],parent:[10,42],enumer:33,label:[12,6,33,27,56,54],behind:33,between:[33,12,31,39,14,30,24,50,18,6,20,21,56,57,41,55,28],maltes:33,"import":[0,12,46,15,50,18,20,53,41],across:[48,56],assumpt:33,moveright:33,longleftrightarrow:33,vdot:33,screen:[0,12,39,50,18,19,15,25,52,26,28],negmedspac:33,come:[33,13,46,50,2,15,24,36,56,57,41],leftleftarrow:33,fit:[20,6],timout:0,pertain:21,audienc:[56,36],inconsist:13,overbrac:33,mani:[33,12,31,53,50,18,4,24,35,56,41,59],among:41,endtoggl:[33,12],color:[12,48,59,18,33,49,23,38],operatornam:[33,12],period:[0,45,46],colorbox:[33,12],colon:[33,59],autmat:33,cancel:[33,12,14],typic:[33,46,30,4,21,40,41],"70kb":41,bigcirc:33,msrow:36,damag:21,needlessli:24,tabel:56,myserv:41,rebuild:31,mstyle:12,mark:[0,12,36,30,33,4,21,35,37,57,59,28],succapprox:33,mtextfontinerhit:12,fade:5,arcsin:33,xrightharpoonup:33,processenviron:4,breve:33,texfont:5,blacktriangl:33,former:34,those:[15,5,12,41,17,20,21,49,23,25,55,14,33,24,40,31,43,44,36,46,26,50,52,57,59],"case":[2,33,12,13,16,20,21,49,23,55,54,14,34,39,41,42,46,24,26,50,52,56,57,59],kappa:33,tostr:14,oldstyl:33,addtext:10,trick:33,invok:56,eqnchunk:[12,39,28],invoc:41,margin:[59,27],tbinom:33,advantag:[12,13,1,50,56,41],barwedg:33,leadsto:33,mlongdiv:36,worri:[20,57],destin:31,updatemath:52,bigwedg:33,myclass2:[4,35],develop:[13,46,48,3,36,41],author:[12,13,30,19,33,21,43,23,38,25,57],media:[59,41,46],postjax:[57,23],same:[4,15,7,12,13,18,20,21,27,23,26,28,29,30,33,47,35,41,44,46,50,53],html:[1,2,4,5,8,10,11,12,13,16,18,20,21,49,23,26,28,29,30,31,32,47,35,36,37,39,9,41,15,45,46,48,33,6,52,53,54,56,57,58,59],pad:[10,33,12,59],knuth:48,mathvari:[12,39,57,28],document:[0,2,33,41,11,12,13,16,21,23,25,26,30,37,31,4,36,46,48,52,56,57],finish:[12,48,50,2,52,53,31],vvdash:33,nest:[12,45,18,4,36,56,28],availablefont:[5,41,39],someon:33,longleftarrow:33,capabl:[16,25,56],formaterror:31,improv:[12,13,18,3,23,56,41],extern:[0,45,53,50,20,24,31],gnsim:33,submenu:[12,23,6,7],appropri:[15,12,33,20,37,40,26,57],macro:[12,18,33,21,27,23,41,54],mml_svg:[15,12,41],leftharpoonup:33,eqnchunkdelai:[39,28],overwithdelim:33,without:[0,12,13,39,24,48,33,20,5,31,36,23,57,41],model:[11,12,45,46,16,32,33,56,57,42],bigotim:33,stixfont:5,mml2jax:[12,36,47,15,21,23,57,54],loaderror:0,tip:[33,12],greasemonkei:[12,41,2],bitmap:48,aspect:12,flavor:[15,41],speed:[12,13,18,56,57,41],versu:50,strikeout:33,widest:[21,36],asciimathml:[12,30],nleqq:33,filevers:45,except:[15,21,56,53],littl:[0,44],blog:[1,48,33,21,57,41],rescal:56,treatment:33,yuicompressor:18,earli:[41,18],hover:[38,12,6,23,51],around:[33,12,41,30],read:[13,46,48,36,18,20,21,49,41],outermost:49,boldsymbol:[33,12],messsag:19,getjaxbyinputtyp:31,moo:42,world:[25,24,41],lasterror:31,mod:[33,12],sum_:57,blackberri:18,whitespac:12,cdot:[33,12],previewfilt:12,fontstyl:12,integ:[33,31],server:[33,12,13,46,2,18,15,21,39,41],either:[0,12,13,46,1,44,16,33,2,59,4,21,35,49,38,20,56,31,41,58,27],output:[32,15,41,8,11,12,13,18,20,21,22,23,26,28,30,45,37,40,31,42,33,36,39,48,55,59,6,52,54,56,57,58],rollov:18,manag:[10,45,46,1,24,48,32,19,33,21,57,55],lesssim:33,searrow:33,sqcup:33,constitut:16,pod:33,slice:14,definit:[0,12,39,33,18,51,15,59,22,6,38,25,27,28],iff:33,shoveright:33,inputid:55,inject:12,dashleftarrow:33,mathcal:33,complic:[48,56,49,36,58],refer:[42,11,12,31,46,15,21,32,33,2,53,52,20,5,27,24,55,40,41,44,43],arrow:[33,12],power:[50,3],inspect:31,broken:57,formatid:27,fulli:[21,50,36],regexp:[4,35],"throw":[26,40,43,2],trianglerighteq:33,comparison:[50,31],central:23,ibook:[56,12],firstnam:24,ddddot:33,stretch:33,act:[33,48,50,20,24,27,23,57,28],industri:48,needsupd:[40,55,52],processor:[32,33,8,12,21,22,26,27,54,30,34,41,15,36,39,48,50,6,28,56,57,58,59],hookrightarrow:33,nobreakspac:33,routin:[10,0,12,53,24,43,40,31,26],nsupseteqq:33,effici:[42,28,52],elementari:36,lessdot:33,triangledown:33,bbb:33,rightharpoondown:33,mathbackground:33,your:[0,1,2,3,4,5,6,7,8,11,12,13,15,18,21,49,23,24,25,27,28,29,30,31,33,34,35,37,38,39,9,41,22,36,46,47,48,50,51,52,53,56,58],sqsupseteq:33,log:[33,21,46,19],area:[12,27,19],aren:[33,12],fontwarn:[5,12,23,54],lor:33,strict:46,compliant:[13,18],interfac:[12,46,1,21,7,25,9],low:14,lot:[20,12,27,46],machin:[48,46],lambda:33,verbatim:33,cloudfront:21,buggi:33,categor:54,longer:[44,12,13,46,2,19,15,23,56,39,28],pull:46,mathml:[2,33,7,8,9,11,12,18,21,23,25,55,54,30,40,41,15,36,48,26,52,28,56,57,58],furthermor:[13,50,41,23],possibl:[0,12,36,46,14,30,21,50,18,33,19,15,5,23,24,56,57,41,42,59],"default":[0,32,4,5,6,8,12,13,14,15,19,21,27,23,26,28,29,30,31,34,35,37,38,39,40,41,43,22,46,47,33,51,54,56,57,58],processescap:[4,13,33,41],buildrel:33,notag:33,asiimath2jax:30,embed:36,expect:[39,50,52,33,23,41,28],taylor:21,creat:[0,32,3,33,10,19,20,43,55,14,24,40,42,44,45,46,48,26,50,6,53,57,59],certain:[20,44,56,53],leftrightsquigarrow:33,risingdotseq:33,varliminf:33,file:[0,1,2,15,5,7,8,9,12,13,14,17,18,19,20,21,49,23,26,27,28,30,44,32,33,34,31,37,39,40,41,43,22,45,46,24,48,55,50,53,54,56,57,58,59],momentarili:31,outputjax:[45,16,55,32,43,31,26],fill:[56,58],again:[33,0,31,55,52],iiiint:33,googl:3,pmod:[33,12],reduct:[56,12],field:[56,12],valid:[24,13],getscript:[10,12],you:[1,2,3,4,5,7,8,12,13,14,15,16,17,18,19,20,21,49,23,24,25,26,27,28,29,30,31,32,33,34,35,37,39,9,41,42,43,22,36,46,47,48,50,6,52,53,54,56,57,58,59],trash:55,poor:56,resolut:25,registri:12,sequenc:[11,12,31,46,17,33,32,20,53,27,41],symbol:[33,21,27,30,34],begingroup:[33,12],dashv:33,track:[57,26,3],menuset:[15,23,38],reduc:[33,12,41],mathcolor:33,lbrace:33,eqchunkdelai:[39,28],directori:[0,12,46,15,53,48,32,18,19,20,21,43,23,55,39,40,41,26],descript:[12,29,47,2,4,5,35,45,23],lbrack:33,scroll:9,calle:42,potenti:50,extpfeil:[33,12],escap:[33,27],dst:31,negthickspac:33,represent:[57,55,52],all:[0,1,2,4,5,11,12,13,15,18,19,20,21,27,23,25,26,28,29,14,44,31,32,33,47,35,36,39,41,42,43,22,45,46,24,48,50,53,54,56,57,58],consider:41,illustr:52,dollar:[33,13,30,4,21,35,41],improperli:4,code:[0,32,3,4,7,10,11,12,13,15,17,20,21,49,23,26,29,14,31,2,33,47,35,41,43,44,45,24,48,50,52,53,59],abil:[12,13,46,48,18,33,56,57],follow:[32,15,12,13,16,18,20,21,49,26,27,28,14,24,39,40,41,42,43,33,46,59,52,54,56,57],alt:[12,2,23],disk:[15,21,41,46],multlinewidth:27,scr:33,articl:48,init:42,program:[45,1,53,16,55,50,32,21,25,57,42],smile:33,introduc:[21,12,41,56],global:[12,45,14,16,52,33,56],multlin:[33,12,27],vert:33,far:[0,44,46,30,19],renewcommand:33,"1px":[10,33,12,59],verb:33,mechan:[44,14,17,50,32,33,20,53,42],loadcomplet:[33,0,31,41,43],veri:[38,7],strang:36,alterant:48,list:[1,32,4,5,6,7,8,9,12,31,16,20,21,27,23,26,28,29,14,33,34,35,38,39,40,41,22,46,47,48,55,50,51,52,57,58],"_html":56,emul:[56,12],adjust:[12,39,2,52,22,7,9,41,28],displaylin:33,small:[12,39,18,19,33,22,57,27,28],dimens:[33,12,18,23],getalljax:[31,52],difficulti:33,lll:33,tex:[1,2,4,5,7,8,9,11,12,13,18,20,21,27,23,25,28,29,30,33,31,36,37,39,40,41,43,15,45,46,48,50,52,54,56,57],zero:[5,17],design:[36,2,3,15,25,9],pass:[0,12,13,15,14,44,17,50,18,6,20,24,32,57,31,42,54],overlin:33,further:[17,50,56,57,26,40],what:[0,32,3,4,5,6,11,12,31,14,18,21,27,23,25,28,29,30,47,35,38,41,22,36,39,33,51,52,56,57],sub:45,sum:[33,14],ast:33,abl:[15,12,13,46,14,1,21,33,52,20,5,36,23,7,25,39,9,41],delet:[33,39],version:[2,3,15,41,11,12,13,18,21,27,26,28,30,32,24,38,39,40,31,43,33,45,46,55,52,56],sup:33,row:12,method:[10,0,12,13,42,14,44,17,50,53,19,20,24,31,43,52,55,40,41,26],hasn:[0,13,32,19,40,26],full:[0,12,24,16,18,2,52,15,21,23,25,57,41],themselv:[12,45,32,15,21,49,31],geqslant:33,modular:[25,12,36],ggg:33,trunk:46,ineffici:[42,23],modifi:[11,12,13,15,1,52,33,19,20,21,31,43,41,26],valu:[0,32,4,5,6,8,10,17,18,20,49,23,24,26,27,28,29,14,33,34,35,38,31,42,22,36,39,47,50,51,52,54,57,58,59],search:[25,11,31,3],sender:20,prior:[33,56,36,2,23],amount:[33,5,31,27,14],pick:56,action:[0,2,33,12,41,30,17,19,20,43,26,14,32,24,38,40,31,44,45,48,50,52,53,57],mathjax_wikipedia:2,mml_htmlormml:[13,1,2,15,21,7,56,9,41],llap:33,chunki:[39,28],via:[0,1,2,4,5,12,13,18,19,20,21,43,23,55,54,14,32,35,38,39,41,42,15,36,46,50,57],shorthand:52,equalrow:12,int_0:33,filenam:[13,12,41,24],href:[33,12,49,18],inappropri:[20,12],emptyset:33,famili:[33,0,39,28],decrement:17,establish:15,select:[12,36,46,6,15,56,39,31,58,28],hexadecim:33,proceed:[50,49],x41:33,distinct:16,ctrl:23,regist:[0,31,44,48,33,32,20,53,43,40,41,26,57],two:[20,12,15,30,53,50,33,4,21,49,23,59,41,27,54],splash:12,taken:[33,12,50,52,20,56],imath:33,basi:[56,41,58],toggl:[33,12],more:[15,5,41,7,9,12,13,17,18,21,49,23,25,28,14,33,24,37,56,39,40,31,42,43,44,46,48,50,52,53,22,57,58,59],flat:33,diamond:33,desir:[42,46,12,2,15],henc:46,ital:[0,12,48,33,21,23],unzoom:12,aleph:33,particular:[10,0,12,31,46,14,30,44,48,17,59,33,21,23,24,53,56,57,41,42],webkit:[12,31,18],upsilon:33,mathml3:[56,12,36],cach:[20,41],showmathmenumsi:[22,18,23],none:[44,29,39,14,24,31,4,47,35,27,23,57,41],eta:33,mmlorhtml:[12,15,23,56,58,54],det:33,dev:3,histori:[20,44,32,48],remain:[15,48],paragraph:[12,39,21,52,33,5,57,28],caveat:[21,26,46],def:[33,27,42],deg:33,mathtip:[33,12],scan:[12,31,23],myspan:49,challeng:15,registr:43,share:[12,46,3,21,23,41],accept:[24,14,52],succneqq:33,minimum:[39,31,22,18,28],unreli:13,explor:[0,12,2,18,19,33,24,23,56,57,52,26,54],sharp:33,mathinput:52,huge:33,cours:[13,50,41,36],newlin:[33,39,18,28,19],awkward:42,secur:[21,2,46],programmat:[57,37],anoth:[44,46,33,17,50,19,20,53,40,52,57,54],comfort:46,csc:33,amssymbol:[15,13,33,41,21],ddagger:33,stix:[12,39,48,18,33,5,56,46,57,41],reject:12,simpl:[56,49,23,19],css:[0,15,5,6,41,8,11,12,13,18,21,22,23,26,28,45,37,38,39,31,33,36,46,48,55,59,51,52,54,56,57,58],unabl:5,regener:[55,52],resourc:18,referenc:[5,27],algebra:48,iphon:18,variant:[48,12],searpat:4,reflect:[32,52],plane:12,mstack:36,blacker:28,impliedbi:33,associ:[57,12,39,14,55,52,33,24,22,40,31,26,43,28],curlywedg:33,stabil:12,circumst:12,github:[13,46],footer:41,confus:[21,12,13],ambigu:16,caus:[0,4,5,12,41,19,20,21,27,23,55,30,33,24,35,36,40,31,44,45,46,26,50,6,52,56,57],callback:[0,12,45,14,44,16,17,50,32,53,52,20,24,48,55,40,31,26],firefox3:39,alphabet:12,merror:[12,59],unrhd:33,help:[11,12,13,46,3,21,23,56,41,6],autoload:33,trade:[56,41],through:[44,12,13,46,50,18,33,20,53,36,56,57,41,42,54],hierarchi:[41,46],suffer:[56,12],paramet:[0,32,15,41,10,12,13,30,17,18,19,21,27,23,26,54,29,14,47,38,40,31,42,43,44,24,55,33,52,56],style:[0,32,33,5,51,10,11,12,18,19,21,49,23,28,35,38,31,4,39,48,59,6,22,57],arial:[33,39,28],x221a:36,processupdatetim:31,x221e:57,late:[48,12,2],isreadi:[45,32],pend:17,amsmathaddit:50,mathplay:[12,2,18,6,15,23,56],might:[0,12,13,46,24,50,36,3,20,21,27,57,41,26,28],alter:[4,55,52],finer:12,cee:[33,12],good:[50,2,28,3],"return":[10,0,36,42,14,44,17,50,53,19,20,24,27,52,55,40,31,26,43],textstyl:33,hslash:33,getelementbyid:52,wilipedia:48,rlap:33,detach:12,equationnumb:[33,12,27],xtwoheadleftarrow:33,redesign:[56,12],mathscr:33,instruct:[49,21,13,2,1],critic:46,bigcup:33,easili:[25,21,57,48],token:12,x2212:[21,57],found:[0,46,24,3,21,23,56,40,26],unicod:[12,36,39,33,5,28],x2211:57,subsystem:32,interleav:12,originaltext:55,weight:[12,49,42],setrender:[12,31],hard:[46,18,3,15,21,41],realli:[24,23],nless:33,connect:[12,24,15,21,57,41],math2:[33,12],math1:[33,12],beyond:[33,3],orient:[16,42,45,32],ismathjax:12,nleq:33,mhchem:[33,12],shortcom:53,skiptag:[4,12,35],print:[25,56,12,46,59],occurr:53,msie:[31,58],foreground:59,assist:[15,12],safari3:39,advanc:[16,11,41,25],offsetx:[39,28],symbian:18,mml:[12,41,58,15,21,45,56,40,31,55,57],reason:[0,36,30,24,50,2,19,33,21,27,56,31,43],base:[12,13,46,14,1,53,16,32,2,56,5,31,45,55,25,39,41,42,43,28],put:[0,12,13,46,30,53,33,21,23,56,41,54],mathr:33,processupdatedelai:31,offseti:[39,28],ispc:[31,32],succnapprox:33,stanard:33,texerror:12,drupal:1,msbm10:21,taht:22,showprocessingmessag:[23,54],perhap:[24,41],bumpeq:33,perman:33,elementjax:[12,45,16,55,32,43,40,26],stixgener:[33,39,28],getelementsbytagnam:2,assign:[4,24,35],major:[25,56,12,41,2],notifi:20,boxplu:33,upper:33,feel:3,exchang:48,lastnam:24,number:[0,1,32,15,5,41,12,13,18,19,21,49,23,26,27,28,14,34,39,40,31,43,33,45,46,24,55,50,52,56],grtaphic:57,fadeoutstep:5,done:[12,17,50,32,33,21,57,41],construct:[50,57],blank:[44,14],stabl:[21,41,46],miss:[33,12,14,30],differ:[33,12,31,46,14,24,58,50,52,20,21,23,53,57,41,42],euqat:56,script:[0,1,2,4,41,7,9,10,12,13,18,20,21,43,23,26,32,33,35,37,40,31,15,46,55,50,52,56,57],interact:[12,31,39,21,25,57,41,55,28],smoother:5,least:[31,41,57,30],statement:[50,14],natur:[25,21,33,46,57],illeg:[49,18],store:[10,44,12,13,39,14,55,50,18,52,24,31,45,37,38,40,41,26,57],xmln:[21,12],option:[4,5,6,7,8,11,12,13,15,21,49,23,27,28,29,30,31,34,35,37,38,41,42,43,22,39,47,33,51,54,56,57,58],nleftarrow:33,eqn:27,ntrianglerighteq:33,selector:[59,23,19],tex2jax_process:4,part:[4,2,15,7,12,30,20,21,27,23,25,26,14,41,42,33,36,46,50,53,56,57],pars:[33,12,18,30],mmltoken:33,binom:33,cosh:33,kind:57,aaa:27,prebuilt:21,whenev:[44,36,46],remot:46,remov:[44,12,31,39,14,52,55,33,18,19,4,5,35,23,57,41,26,28],dtd:21,bridg:[13,55],arrang:14,toward:12,markup:[0,36,30,48,33,21,57,28],ffff88:59,comput:[39,48,33,56,46,31,28],nleqslant:33,packag:[46,30,48,33,27,37,41],expir:10,"null":[10,0,45,42,14,44,2,18,19,5,43,23,52,55,39,40,31,26],built:[11,13,2,56],equival:[10,14,50,52,15,24,49],lim:33,self:[21,12,36,18],ell:33,also:[2,3,4,10,12,13,30,16,19,20,21,22,23,55,28,14,24,39,41,42,15,36,46,48,33,6,52,53,56,57,58],brack:33,build:21,brace:[4,33,12,2],triangleleft:33,distribut:[13,9,41,46,21],index:[21,46,1],addel:10,reach:41,took:12,react:44,most:[15,12,45,46,14,1,48,2,33,18,20,21,32,43,56,57,41,42,59],plan:21,rho:33,alpha:33,rhd:33,vardelta:33,renewenviron:[33,12],clear:[44,12,39,14,32,19,20,28],tpl:1,h2o:33,exp:33,usual:[12,14,30,24,50,33,5,43,23,57,41],leftroot:33,cdata:18,nshortparallel:33,carefulli:[49,39,28,52],cdn:[33,12,13,46,1,18,2,52,15,21,37,7,56,9,41],flicker:[12,39,28],finv:33,particularli:[15,12,46],rightleftarrow:33,font:[0,33,5,11,12,13,18,19,21,27,23,25,26,28,39,41,46,48,49,59,6,52,53,56,57],find:[12,31,3,52,33,5,37,7,57,41],preremoveclass:23,cell:56,execut:[0,14,44,17,50,32,33,20,24,57,41],pretti:46,solut:[21,57,46,3],delayedx:14,queu:[17,50,41,14,44],factor:[12,39,18,22,23,56,28],noerror:[15,21,12,33],jaxfil:43,tagsid:[12,27,54],precnsim:33,express:[20,12,39,44,50,33,4,21,35,27,23,56,52,26,28],strut:33,nativ:[12,36,16,2,15,25,56,57,58],mainten:13,rest:[0,36,50,52,33,21,25,57],donald:48,restart:[12,46,17,50,4,35,41],ie9:[46,12,18,56],ie8:[56,12,18],ie7:[56,12],acut:33,vmatrix:33,common:[11,12,13,30,1,21,48,33,36,15,5,31,49,41,43],set:[0,2,4,5,6,8,10,12,13,14,15,18,19,20,21,22,23,24,55,27,28,29,30,31,32,33,34,35,37,38,39,41,42,44,45,46,47,48,49,50,51,52,53,54,56,57,58,59],overrightarrow:33,startup:[11,12,45,31,2,50,18,52,20,32,43,23,41],see:[0,32,3,4,5,6,7,9,12,13,14,15,17,18,20,21,22,23,26,27,28,29,30,31,33,47,35,37,38,39,40,41,44,36,46,24,48,50,51,52,53,54,56,57,59],barb:33,sec:33,arg:33,ams_hml:41,close:[12,36,21,2,18,3,15,5,54],langl:33,inconveni:13,someth:[33,46,3,52,4,21,23],particip:3,won:[12,46,50,18,33,56,41],columnspan:36,subscript:[33,21,12,18],experi:23,altern:[0,30,33,24,57,42],numer:[33,31,36],complement:33,javascript:[0,1,2,15,5,6,7,11,13,16,20,21,27,23,25,55,28,14,33,24,38,9,41,42,22,45,39,48,49,50,51,52,53,54,56,57,59],isol:[33,12,18],mailbox:[20,48],bmatrix:33,consumpt:18,distinguish:40,longrightarrow:33,errat:41,classnam:2,popul:32,varsigma:33,unstar:33,last:[0,46,14,17,59,33,31,26,54],delimit:[33,12,13,30,18,4,21,35,57,41],hyperlink:57,mathzoom:[12,59,15,38,26,54],event:[0,12,15,48,2,18,51,52,20,53,32,23,57,26,6],nvdash:33,grei:[33,32],context:[12,14,6,4,35,23],overset:33,hbar:33,whole:[53,31,45,52],load:[0,1,2,15,8,9,11,12,13,17,18,19,20,21,27,23,25,26,28,14,44,32,33,34,31,37,39,40,41,43,22,45,46,24,48,50,52,53,56,57],markdown:[48,21,33,57],simpli:[15,13,46,14,30,24,31,17,33,52,4,47,35,29,23,25,40,41,26,43,37],point:[33,17,41,34,21],instanti:42,priorit:[12,14],usemathmlspac:8,fcolorbox:[33,12],header:[12,41,46,1,7],suppli:[31,55,23,14],bigve:33,mistak:49,zeta:33,throughout:33,vertic:[4,35,26,23],notaion:11,gneq:33,devic:[12,13,18,25,56,41],due:[12,13,39,28],empti:[12,45,39,14,50,32,23,57],sinc:[0,33,41,12,13,30,15,17,18,20,21,22,23,27,14,31,42,44,36,39,50,52,53,56,57,59],invis:[33,46],fire:[32,41,2,52,24],imag:[12,13,46,47,48,18,2,29,4,5,35,49,25,39,41,26],descib:30,coordin:[17,50,57],understand:[15,57],demand:15,urcorn:33,sqcap:33,blacksquar:33,look:[1,4,3,33,7,10,12,14,19,21,54,30,35,39,31,44,36,46,59,52,28,57],bcancel:[33,12],solid:[10,33,59],histor:56,pitchfork:33,lvert:33,"while":[10,0,13,46,21,58,50,2,34,33,20,5,36,23,53,57,41,44],blacktriangleleft:33,nprec:33,behavior:[12,13,46,23,39,41,28],circlearrowright:33,bookmarklet:41,everyon:[20,28],loop:[12,27,55],pack:18,subsect:[27,43],measuredangl:33,readi:[15,45,33,32,20,43,40],jpg:[4,47,35,49,29],biguplu:33,itself:[32,33,41,12,13,17,20,23,55,54,14,45,40,31,42,44,36,46,26,50,56,57,59],peramet:40,rightarrow:33,minim:26,xleftarrow:33,belong:12,shorten:19,shorter:18,am_htmlormml:[15,21,12,41],redisplai:19,htmlcsslast:26,conflict:[33,57,18],higher:41,upuparrow:33,optim:[56,12,18],wherea:33,domin:48,alert:[20,24,50,14],moment:[21,40,46],temporari:41,user:[32,3,15,5,6,11,12,41,19,20,21,22,23,25,28,14,2,37,38,39,31,33,36,46,51,52,56,57,58],robust:[20,48],stack:27,recent:[25,2],lower:[12,45,16,18,32,19,33,23],task:33,older:[41,36],entri:[12,48,17,59,18,33],searchabl:25,chemistri:12,person:24,textit:33,expens:[56,57],normals:33,scriptsiz:33,badbreak:56,fallingdotseq:33,explan:[33,21],rvert:33,obscur:[18,19],mathinn:33,amp:[33,18,30],regardless:[12,52],seriou:57,cup:33,setscript:10,blacklozeng:33,endgroup:[33,12],ffeeee:33,rgb:33,input:[32,15,41,7,8,40,12,13,18,20,21,27,23,26,54,30,34,36,37,9,31,42,43,33,45,48,55,50,52,56,57],subsequ:[33,40,26],oslash:33,asciimath:[11,12,30,34,48,15,21,35,25,57,41,54],konqueror:[56,31],big:[33,54],moodl:1,intuit:48,tomathml:[15,55],game:33,insert:[33,12,29,39,14,2,4,47,35,43,23,7,9,31,26,57,28],bit:[12,42],diagup:33,success:[56,12],semi:59,varkappa:33,signal:[44,12,45,14,53,16,32,20,24,31,43,48,41],asciimath2jax_process:35,resolv:[12,18],collect:[14,48,50,24,55,59],"boolean":31,popular:[21,37,1],swarrow:33,asciimath2jax_ignor:35,scrip:13,stackrel:33,simplifi:18,creation:[40,32],some:[1,2,33,5,41,12,13,14,16,17,20,21,22,23,25,26,27,28,30,24,39,40,31,42,43,36,46,55,50,52,54,56,57,58],back:[46,30,21,55,33,5,35,26],emph:33,urgent:41,sampl:[33,46,53,59,32,52,20,21,23],instal:[11,12,13,46,21,18,56,33,5,7,25,39,41],scale:[12,39,18,33,22,23,25,28],per:12,substitut:27,mathemat:[0,32,4,5,6,7,9,12,31,18,20,21,22,23,25,26,27,28,29,30,33,47,35,37,38,39,40,41,43,15,36,46,48,55,50,51,52,56,57],larg:[0,12,13,33,41,58],prod:33,reproduc:[12,52],tex2jax:[15,12,13,18,33,36,2,52,4,21,45,23,57,41,54],cgi:0,garamond:33,previou:[44,12,14,50,19,24],run:[0,2,4,5,8,12,31,17,20,21,22,23,24,27,28,29,14,32,34,35,39,41,44,36,46,47,50,52,53,57,58],doteqdot:33,odot:33,step:[12,1,21,32,5,57],hookleftarrow:33,varsubsetneq:33,carol:33,impos:46,ngeqslant:33,reappear:19,materi:[56,18,52],prove:[56,12],dialog:[12,18],rangl:33,succcurlyeq:33,block:[12,13,39,21,18,2,33,5,32,22,23,56,57,41,43],file3:50,file2:[0,50],file1:[0,50],file4:50,bmod:[33,12],within:[0,32,33,5,41,12,13,30,16,18,21,27,26,14,24,35,37,31,42,4,36,46,52,53,57],prec:33,notat:[12,30,48,33,21,25,57,41],isjax:[12,31],announc:53,inclus:[39,28],triangl:33,question:[21,43,3],fast:[13,41,18],custom:[33,30,18,19,15,21,25,56],referenec:31,perp:33,plane1:12,suit:[13,34,5,36,41,21],nativemml:[12,36,48,58,6,15,22,56,57,31,26,54],overleftrightarrow:33,ulcorn:[33,12],doctyp:[21,36],reorgan:12,poster:44,atop:33,loadhook:[0,12,31,24],serif:[0,39,28],link:[12,13,46,1,21,16,18,33,5,27,53,41],translat:[26,40,43,18,57],delta:33,line:[33,12,13,46,1,34,48,18,2,35,4,21,32,29,54,56,39,57,41,28],linb:56,consist:[36,30,50,33,49,56],rmoustach:33,apricot:33,divideontim:33,geqq:33,similar:[53,46,14],xmapsto:33,enlarg:38,constant:[20,27],parser:12,xlink:12,doesn:[15,46,14,30,55,33,20,23,39,41,42,28],repres:[10,33,29,21,48,59,19,4,5,35,49,23,25,47,26,57],"char":33,mathdiv:[10,24,50,52],opera10:39,guarante:[0,50,52,17],ebook:[56,12],gecko:[12,31],phantom:33,bigoplu:33,iiint:33,titl:[21,52],sequenti:[53,50,32],invalid:[33,49],llcorner:33,toaudibl:55,bracket:[33,49,23],shoveleft:33,xrightarrow:33,department:46,supseteq:33,nice:2,lozeng:33,delayclear:[39,28],msup:[21,57],eqnchunkfactor:[39,28],alttext:47,varsubsetneqq:33,eval:14,fisher:33,newcommand:33,svn:[21,13,46],rightharpoonup:33,land:33,algorithm:[56,12],mimetyp:[55,40,43,26],svg:[12,48,18,6,15,21,54,56,57,41,28],supseteqq:33,liminf:33,depth:[33,56,12],dot:[33,12],doublebarwedg:33,hello:24,prototyp:42,mathjax_displai:59,partial:33,edg:[56,12],queri:57,tiddlywiki:1,overlap:56,edu:46,privat:[53,43,46],elsewher:52,friendli:21,send:[20,44,41],becam:48,sens:57,sent:[20,44,31,48],actiontyp:[39,28],unzip:46,whichev:33,xxxxxxxx:[21,46],mous:[12,39,18,51,15,6,38,57,26,28],doublecap:33,untouch:33,skew:33,tri:[0,13,39,33,22,28],ischrom:31,mathit:33,button:46,geograph:41,fewer:15,"try":[12,46,3,20,21,43,42],xcancel:[33,12],userscript:2,maction:[33,39,12,18,28],pleas:[49,3],impli:33,smaller:[15,0,12,18,57],fortun:20,getjaxfrommath:26,exten:30,aperson:24,jump:[12,32],unpost:12,download:[0,12,13,46,21,18,5,23,25,57,41],hspace:33,click:[33,12,6,15,23,38,7,57,26],append:[10,46],compat:[33,12,39,48,18,4,27,23,56,28],appendchild:[10,2],turn:[10,44,12,13,15,14,33,4,35,36],compar:[56,12],access:[44,12,46,1,24,55,50,18,6,33,15,21,25,56,41,42],upharpoonright:33,mathjax:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],can:[0,2,3,4,5,10,12,13,14,15,17,18,19,20,21,22,23,25,26,27,28,30,31,32,33,24,35,36,37,39,40,41,42,43,44,45,46,48,50,6,52,53,54,56,57,58,59],vargamma:33,closur:[24,14,52],leq:33,intercept:21,let:[12,13,46,36,6,33,21,49,23,31,58],sinh:33,safer:12,becom:[12,13,46,14,50,3,20,36,56,42],altough:24,tex4ht:57,rtime:33,convert:[11,36,14,30,33,2,19,4,37,25,57,26],convers:[33,30],scriptlevel:12,larger:[12,39,15,21,56,57,41,28],technolog:[25,15,3],zscale:23,circledast:33,chang:[1,2,33,41,12,13,18,19,21,27,23,55,28,34,39,40,31,15,46,6,52,56,57],honor:[39,12,22,46,23],chanc:[4,20,35,44,21],calibr:12,firefox:[12,46,2,18,56,31,58],rgroup:33,tau:33,appli:[12,46,33,22,56,39,41,42],iskonqueror:31,lessgtr:33,api:[16,11,12,25,21],smallmatrix:33,oval:33,"221a":12,cloud:[13,41],from:[0,1,2,4,9,11,12,13,14,15,18,19,20,21,22,23,26,27,28,29,30,31,32,33,47,35,37,39,40,41,42,43,44,45,46,24,55,50,6,52,56,57],zip:[21,18,46],commun:[20,11,12,3,21],chi:33,doubl:[33,12,15,27,23,38,26],upgrad:[5,46,3,11],varphi:33,next:[30,53,52,33,34,31,55],implic:46,few:[12,46,30,33,21,37],msqrt:[21,57],postprocess:43,bowti:33,panel:33,subsetneq:33,failur:12,preformat:18,src:[15,13,1,47,31,50,2,29,33,4,21,35,49,37,52,7,56,9,41],appropr:12,lippman:30,aquamarin:33,projlim:33,"4ac":21,rare:50,applyfunct:12,versionatleast:31,account:10,alik:2,retriev:10,augment:[42,40,43,26,12],scalabl:[48,56,57],underwai:50,annot:12,halt:53,thin:[12,27],assum:[12,52],eqchunkfactor:[39,28],control:[4,15,5,51,8,12,41,21,22,23,27,28,29,34,35,38,39,31,33,46,47,59,6,56,58],bittersweet:33,tap:12,lesseqgtr:33,tar:46,process:[0,2,4,10,11,12,13,17,18,19,20,21,27,23,26,28,29,30,31,32,33,47,35,37,40,41,43,15,36,39,24,55,50,6,52,54,56,57,58],dfrac:33,newmath:52,divis:12,high:[25,56,57],tag:[1,2,4,41,7,12,13,18,20,21,49,23,26,27,54,30,32,47,35,37,40,31,33,36,46,55,52,56,57],tab:46,tan:33,delai:[0,12,31,39,15,14,44,51,19,20,23,38,57,41,6,28],fontwarns:59,gcd:33,pure:36,importat:16,lgroup:33,getelementsbytagnamen:2,subdirectori:[46,40,26,55],instead:[33,13,46,30,24,17,50,18,52,20,21,27,57,41],class4:42,class2:[4,35,42],sin:[33,12],sim:33,class1:[4,35,42],simplesup:[12,42],frac:[33,12],overridden:[12,39,26,19,43,55,40,42,28],mspace:[33,21,12,36,18],"_svg":56,anothermethod:42,frak:33,filtertext:19,redund:[12,42,23],essenti:[15,33,57,42,30],bind:12,correspond:[12,41,39,33,37,31],element:[32,4,5,10,12,41,15,18,20,21,49,23,26,27,28,33,35,40,31,42,44,45,39,55,50,51,52,53,56,57,59],reredn:55,newextarrow:33,allow:[1,2,4,6,12,13,15,18,19,20,21,49,23,25,26,27,28,33,24,38,39,41,42,44,46,48,50,51,59],fallback:[39,46],mjx:[10,27],fastest:[56,12],nonumb:33,scriptstyl:33,nsucc:33,comma:[59,2,33,23,41,54],dagger:33,mathjax_tooltip:[39,28],movabl:[9,1],chosen:[56,58],clickabl:33,coth:33,varxi:33,pretransl:[43,26],therefor:33,pixel:[48,39,12,26,28],multimap:33,crash:[12,23],sqsubseteq:33,handl:[0,2,33,5,41,12,13,30,18,20,43,23,26,14,45,31,4,36,48,50,51,53,56,58],auto:27,nokia:18,innermost:49,dai:[10,12],maxbuff:27,front:[15,18],successor:37,gggtr:33,somewher:41,anyth:[20,54,39,28,3],edit:[15,41,1,7],smallfrown:33,februari:11,mode:[33,12,46,18,4,21,37,56,39,57],varomega:33,"2em":33,circular:12,genfrac:[33,12],subset:[33,58],delaypost:[39,28],bump:12,chunk:[39,28],nointerest:44,meta:[56,12],"static":42,our:[13,46,18,3,21,9],meth:31,ie6:39,special:[15,12,31,30,24,33,4,21,35,36,23,53,25,56,57,41,59],out:[0,12,13,46,50,52,20,5,56,39,57,28],variabl:[45,14,16,42,32,52,33,24,56,26],lesseqqgtr:33,matrix:33,stub:43,suitabl:33,rel:[0,12,18,23],moveabl:[9,1],circlearrowleft:33,ref:[33,12],math:[2,4,6,10,11,12,13,18,19,20,21,22,23,25,26,28,29,30,31,32,47,35,37,38,39,40,41,15,36,46,48,33,51,52,53,56,57],negthinspac:33,nsucceq:33,insid:[18,1],workflow:36,manipul:52,eqslantgtr:33,dictionari:12,releas:[21,12,41,2,46],afterward:24,indent:[27,23],could:[0,12,13,30,24,16,55,50,36,3,33,20,21,31,27,52,57,41,26],ask:[12,3,52,21,27,57,41,26],succ:33,timer:32,keep:[13,46,1,30,48,52,33,21,57,41,26],gtreqqless:33,length:2,outsid:[4,56,12],"0em":[59,23],retain:[33,28],softwar:[25,21,57,15],rbrace:33,blogger:1,rbrack:33,qualiti:[25,56,57],spadesuit:33,date:[13,41,18,46,21],uplu:33,clubsuit:33,bigsqcup:33,suffic:21,prioriti:14,"long":[12,39,50,18,6,33,21,28],start:[0,32,33,41,7,9,11,12,13,30,20,21,49,23,26,14,40,31,44,46,50,53,57],unknown:[12,36],respond:[44,28,39,23,3],flag:[12,23],system:[46,1,21,16,32,3,33,5,56,25,39,28],messag:[0,12,13,46,48,15,21,16,33,32,19,20,5,45,23,53,31,44,43],attach:[44,33,51,20,53,23,26],attack:21,termin:[4,35],man:21,"final":[13,24,33,21,49,25,57,26],rsh:33,supset:33,"1em":[59,36,28],gtreqless:33,hdashlin:33,exactli:12,haven:12,blind:57,ipad:18,preceq:33,gtrdot:33,lion:12,structur:[0,45,14,24,48,52,20,21,31,54,40,41,26,28],charact:[33,12,36,39,30,34,48,59,18,4,5,35,27,23,56,57,28],htaccess:[12,46],light:[33,42,38],bet:46,reposit:23,exhibit:46,deliveri:[21,18],biggl:33,biggm:33,rrightarrow:33,deprec:[15,21,41,23],unkown:31,have:[0,1,32,3,4,5,12,13,14,15,18,20,21,22,23,26,27,54,30,31,2,33,34,35,38,39,41,42,44,36,46,24,55,50,52,53,56,57],disadvantag:56,need:[0,1,2,3,4,5,7,9,12,13,14,17,18,19,20,21,27,23,25,26,28,30,31,32,33,34,35,39,40,41,42,43,15,36,46,24,48,55,50,52,53,56,57,58,59],nsim:33,border:[10,33,12,59],gdef:[33,12],issu:[0,12,31,3,19,36,23,56,57,41],min:33,mid:33,fontdir:26,which:[1,2,4,9,12,13,14,15,18,19,20,21,49,23,26,27,28,29,30,31,32,33,47,35,36,37,38,39,40,41,42,44,45,46,24,55,50,52,54,56,57,59],hbox:[4,33,12],mit:33,singl:[0,12,13,14,30,52,16,50,18,33,4,21,35,45,53,25,41,59],declaremathoper:33,mathjax_preview:[12,29,4,47,35,23,57],x22d6:33,unless:[21,12,18,14,56],who:[20,44,3],leftthreetim:33,why:33,underset:33,placement:18,url:[0,12,13,46,18,33,2,6,15,21,32,27,23,41],gather:[33,12],request:[0,12,14,44,32,50,18,33,20,24,41],face:[39,3,33,5,27,46,54],inde:[56,12,54],movablelimit:[12,18],nmid:33,determin:[33,12,31,1,32,4,34,23,56,41,26],flux:50,mtextfontinherit:[39,28],occasion:41,fact:[44,12,13,43],atopwithdelim:33,backsimeq:33,mathjax_messag:19,text:[1,2,4,5,7,9,10,12,13,18,19,20,21,22,23,25,55,27,28,29,30,32,33,47,35,37,40,41,15,39,24,48,49,50,52,56,57,59],verbos:[48,24,23],bring:57,woth:36,curlyeqsucc:33,highest:[56,12],locat:[0,12,13,46,21,31,33,32,52,4,5,35,29,23,20,47,41,26,57,37],jax:[32,15,41,8,12,13,16,18,20,27,23,26,28,30,34,37,40,31,42,43,22,45,39,48,55,33,52,54,56,57,58,59],much:[12,53,48,20,34,56,41],vartriangleright:33,should:[2,4,41,7,40,12,13,30,15,17,21,49,23,26,27,14,33,24,35,37,9,31,43,44,36,46,48,50,6,52,56,58,59],imagefont:[5,12,39],vartriangleleft:33,suppos:[13,12,41,52,24],"5px":[10,33],triangleright:33,"5pt":21,local:[33,12,46,14,21,50,2,52,15,5,23,41],hope:[5,13],meant:14,move:[12,13,46,22,23,39,28],overleftarrow:33,woff:[12,46],looparrowright:33,increas:[12,13,18],lucki:33,leqslant:33,smash:33,unprocess:[31,55,52],enabl:[33,12,13,39,30,1,4,21,35,7,56,9,41,28],organ:57,frown:33,stuff:31,she:56,contain:[0,1,2,4,5,10,31,15,16,17,19,20,21,27,23,26,28,29,14,33,47,35,39,40,41,43,44,45,46,24,55,50,52,56,57,59],typset:12,conform:21,frame:19,apolog:13,temporarili:19,troubl:21,issafari:31,mathord:33,statu:[0,46,24],error:[0,12,13,30,33,36,2,3,15,21,43,23,40,31,26],jmath:33,pattern:[4,35,23],goodbreak:56,misus:56,thumb:50,gtrsim:33,favor:[13,23],state:[50,26,40],quickest:21,chemic:33,neither:[5,49],equiv:[33,56,12],omicron:33,nshortmid:33,"2pt":33,kei:[10,0,14,44,17,20,23,31],texttip:[33,12],"2px":33,entir:[31,41,23,52],closebox:5,ker:33,addit:[0,33,5,12,13,30,17,18,20,21,23,55,14,24,40,31,15,36,26,50,52,59],skipstartuptypeset:23,plugin:[1,6,33,23,7,25,56,57],admin:[9,7],nabla:33,equal:[33,50,31,42,12],gnapprox:33,etc:[12,48,50,52,33,23,41],instanc:[10,31,55,50,4,35,43,41,42],equat:[4,15,12,18,21,22,23,25,55,27,28,29,34,35,39,31,33,46,47,26,52,56,57],class3:[4,35,42],eth:33,darker:28,limiti:46,lmoustach:33,onchang:52,comment:[33,59,18,15,21,23,41],varnoth:33,arriv:[20,53],solv:[],harpoon:33,arguement:24,respect:[22,39,14,28],showmathplay:6,quit:[56,52],showfontmenu:6,"55em":33,quotat:59,anomali:12,compos:36,defint:33,compon:[0,32,15,6,41,13,16,20,21,25,26,54,30,45,40,31,42,44,36,33,51,53,57,59],treat:[33,21,12,30],immedi:[0,12,52,17,50,2,33,20,32,41],incldu:57,smallsetminu:33,both:[0,13,30,24,48,32,50,18,33,15,21,31,36,23,7,56,9,41,42,57],alignat:33,varsupsetneq:33,otf:[46,12,18],psi:33,x_2:33,togeth:[13,14,50,15,36,31],x_1:33,injlim:33,present:[44,12,36,3,5,23,56,41,6],cot:33,twoheadrightarrow:33,multi:[33,12],iscallback:14,plain:33,align:[12,36,59,33,21,23],contextu:[11,12,45,39,58,55,6,15,22,23,38,56,57,36,26,28],studentdisplai:52,defin:[32,15,5,6,41,12,13,20,21,22,23,26,27,28,30,2,24,38,40,31,42,43,33,39,50,51,54,59],glossari:[48,11],layer:[18,1],almost:33,curvearrowright:33,site:[33,13,46,1,15,21,23,25,9,41],archiv:[21,46],substanti:[13,41,56],revis:46,unneed:28,greater:[33,56,30],formattag:27,welcom:3,displaystyl:[33,34,52],parti:[20,21],cross:46,sqrt:[33,21,12,57],getx:42,extensiondir:43,oint:33,supsetneq:33,android:[56,18],cssid:[33,18],difficult:[24,36,53],phi:33,http:[12,13,46,1,2,6,52,33,21,37,7,56,9,41],d3eoax9i5htok0:21,lleftarrow:33,"8em":[33,27],effect:[17,50,2,38],mrow:[21,57],sooner:12,student:[12,52],canva:57,php:[1,7],executehook:[44,14],off:[33,18,15,53,56,41],center:[33,21,59,23,56],well:[15,36,46,14,24,33,3,52,20,21,35,43,23,53,56,41,59],exampl:[0,2,3,4,5,6,8,10,12,13,14,17,18,20,21,22,23,24,26,27,28,29,30,31,33,34,35,36,37,38,39,40,41,42,44,45,46,47,49,50,51,52,53,54,55,56,57,58,59],command:[12,31,46,14,48,17,50,32,52,33,36,23,41],achiev:12,choos:[33,21,12,56],undefin:[33,21,14,24],setx:42,subsetneqq:33,sibl:18,latest:[13,46,1,2,3,52,33,21,37,7,56,9,41],curlyeqprec:33,paus:[31,46],less:[33,46,30,4,21,35,39,57,31,28],obtain:[33,12,13,46,52,15,21,23,57,41,26],mistaken:57,mathclos:33,mathoutput:52,simultan:[50,32],web:[1,2,33,5,11,12,13,18,20,21,23,25,55,30,32,37,39,41,44,46,48,50,52,53,56,57],preprocessor:[15,12,13,30,47,31,33,36,32,45,4,21,35,29,23,52,57,41,54,37],current_them:1,detai:12,smith:24,textbf:33,cdotp:33,add:[42,15,12,13,14,1,17,33,4,5,35,43,23,55,56,26,59],cleanup:12,schedul:24,match:[44,12,39,4,35,22,28],rememb:28,webpag:37,piec:18,ntriangleright:33,punctuat:18,cpan:33,know:[44,12,24,33,20,21,56,40,41,26,57],cfrac:33,press:[23,52],sourceel:[20,55,26,52],tick:[33,21,35,30],recurs:[31,18],string:[0,14,44,33,19,4,59,35,49,23,20,31,55,27],loss:41,nofont:5,like:[2,4,12,30,17,18,19,20,21,25,28,14,33,34,35,37,39,40,41,44,36,46,24,48,50,52,53,54,56,57,59],lost:24,messagehook:[20,44,12,31],necessari:[12,31,2,21,25,56,41],resiz:56,page:[1,2,4,5,7,10,11,12,13,15,16,18,19,20,21,27,23,25,26,29,30,31,32,33,47,35,37,39,9,41,44,36,46,24,48,55,50,6,52,53,56,57],didn:33,captur:48,linux:[31,23],"export":55,superclass:42,proper:[33,44,12,31],home:[48,0,12,30],peter:30,librari:[16,50,45,46],glyph:[48,33,12],kern:33,rspace:33,leak:55,avoid:[12,13,30,18,33,49,23,56,57,36],thank:30,tooltip:[33,12,39,28],checkmark:33,leav:[10,30,52,33,27,58],overlai:12,uselabelid:27,supsetneqq:33,preload:[0,21],twoheadleftarrow:33,mpmous:[15,23],daleth:33,acronym:48,journal:48,usag:[33,11],host:[13,12,41],sphericalangl:33,although:[16,21,46,58,44],offset:[39,26,28],simpler:19,varepsilon:33,about:[3,33,5,41,12,13,30,15,18,20,21,23,26,14,34,39,40,31,44,46,24,52,53,57],ams_html:[33,13,52,15,37,41],actual:[10,0,12,31,14,30,52,17,50,33,20,24,36,23,56,40,41,26,57],column:[12,27],mathajx:13,mod_head:[12,46],mapsto:33,constructor:42,fals:[44,12,54,39,2,33,18,6,4,34,27,23,55,8,31,42,40,28],disabl:[33,12,13,39,23],eqalign:33,own:[33,12,13,46,21,16,50,18,3,15,5,34,53,56,40,41,26,57,54],amsmath:[33,12,13,50,15,21,27,41],circledr:33,automat:[12,39,17,50,19,33,21,27,56,57,41,42,43,28],bigtriangledown:33,guard:23,"_htmlormml":[56,58],vphantom:33,merg:[10,31],w3c:12,transfer:[21,46],appl:12,bigcap:33,inner:12,arg1:24,"var":[10,33,14,50,2,52,20,24,42],arg2:24,"function":[0,12,31,14,44,48,17,50,2,33,20,24,32,27,52,53,57,41,42,43],propto:33,unexpect:23,precnapprox:33,unbalanc:12,studentansw:52,bodi:[0,13,52,21,40,41,26],gain:[56,12],posttransl:[43,26],inlin:[4,21,35,13],bug:[10,12,13,46,18,3,19,21,23,57,41],count:[12,2],made:[46,50,3,33,53,57,55,54],bbbk:33,whether:[33,12,29,39,47,31,58,2,6,52,4,34,35,27,23,24,8,41,55,28],wish:[13,24,59,2,3,33,21,41,56,31],displai:[4,5,10,11,12,41,18,19,20,21,27,23,25,26,28,29,30,34,35,37,39,31,33,36,46,48,55,6,52,56,57],distract:12,underleftrightarrow:33,asynchron:[0,45,14,44,48,17,50,52,20,24,53,31],gtrapprox:33,below:[1,4,5,6,8,10,12,41,21,27,23,26,28,29,34,35,38,40,31,22,39,47,49,33,51,53,55,57,58],limit:[10,0,36,33,34,27,41],otherwis:[0,12,45,14,55,33,19,15,21,31,7,56,40,41,42],problem:[12,13,46,30,24,18,3,52,33,21,36,56,57],x03c0:57,"int":33,imagedir:26,dure:[12,39,14,32,18,20,43,23,31,55,28],novemb:13,implement:[10,0,12,13,15,16,58,33,20,24,43,56,40,36,42,57],nolimit:33,inf:33,rightleftharpoon:33,probabl:[1,30,20,24,56,41],oplu:33,helpurl:6,definecolor:[33,12],immateri:50,percent:[22,39,28],detail:[0,4,5,6,7,11,12,13,30,15,17,18,20,21,22,23,28,29,14,31,33,47,35,37,38,39,9,41,44,36,46,50,51,52,53,56,57],arctan:33,book:48,futur:[0,3,19,20,53,56,31,55],branch:[41,46],varieti:57,removeaft:5,repeat:[46,1],star:[33,12],liter:[4,33],varupsilon:33,"class":[42,44,12,45,14,16,17,33,18,4,35,43,23,55,40,26,57,28,37],thicksim:33,msgroup:36,stai:[56,41],sphinx:1,scientif:48,reliabl:[13,12,41,2,56],rule:[12,50,33,5,23,8],mathjax_mathml:2,portion:[57,39,28,52],eot:[12,46],balancebrac:[4,12]},objtypes:{"0":"py:method"},titles:["The MathJax.Ajax Object","Using MathJax in popular web platforms","Loading MathJax Dynamically","The MathJax Community","The tex2jax Preprocessor","The FontWarnings extension","The MathMenu extension","Installing MathJax in WordPress","The MathML input processor","Using MathJax in Movable Type","The MathJax.HTML Object","MathJax Documentation","What’s New in MathJax v2.0","Migrating from MathJax v1.0 to v1.1","The MathJax.Callback Class","Common Configurations","The MathJax API","The MathJax.Callback.Queue Class","What’s New in MathJax v1.1","The MathJax.Message Object","Using Signals","Getting Started","The NativeMML output processor","The Core Configuration Options","Using Callbacks","What is MathJax?","The MathJax.OutputJax Class","The TeX input processor","The SVG output processor","The jsMath2jax Preprocessor","MathJax AsciiMath Support","The MathJax.Hub Object","The MathJax Startup Sequence","MathJax TeX and LaTeX Support","The AsciiMath input processor","The asciimath2jax Preprocessor","MathJax MathML Support","Converting to MathJax from jsMath","The MathZoom extension","The HTML-CSS output processor","The MathJax.InputJax Class","Loading and Configuring MathJax","The MathJax Object-Oriented Programming Model","The Base Jax Class","The MathJax.Callback.Signal Class","The MathJax variable","Installing and Testing MathJax","The mml2jax Preprocessor","Glossary","Describing HTML snippets","Using Queues","The MathEvents extension","Modifying Math on the Page","Synchronizing your code with MathJax","Configuration Objects","The MathJax.ElementJax Class","MathJax Output Formats","The MathJax Processing Model","The MMLorHTML configuration options","CSS Style Objects"],objnames:{"0":"Python method"},filenames:["api/ajax","platforms/index","dynamic","community","options/tex2jax","options/FontWarnings","options/MathMenu","platforms/wordpress","options/MathML","platforms/movable-type","api/html","index","whats-new-2.0","upgrade","api/callback","config-files","api/index","api/queue","whats-new-1.1","api/message","signals","start","options/NativeMML","options/hub","callbacks","mathjax","api/outputjax","options/TeX","options/SVG","options/jsMath2jax","asciimath","api/hub","startup","tex","options/AsciiMath","options/asciimath2jax","mathml","jsMath","options/MathZoom","options/HTML-CSS","api/inputjax","configuration","api/object","api/jax","api/signal","api/variable","installation","options/mml2jax","glossary","HTML-snippets","queues","options/MathEvents","typeset","synchronize","options/index","api/elementjax","output","model","options/MMLorHTML","CSS-styles"]}) \ No newline at end of file diff --git a/docs/html/signals.html b/docs/html/signals.html deleted file mode 100644 index 1f7b2f7aa..000000000 --- a/docs/html/signals.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - - Using Signals — MathJax v2.0 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Using Signals

-

Because much of MathJax operates asynchronously, it is important for -MathJax to be able to indicate to other components operating on the -page that certain actions have been taken. For example, as MathJax is -starting up, it loads external files such as its configuration files -and the various input and output jax that are used on the -page. This means that MathJax may not be ready to run until well -after the <script> tag that loads MathJax.js has executed. If -another component on the page needs to call MathJax to process some -mathematics, it will need to know when MathJax is ready to do that. -Thus MathJax needs a way to signal other components that it is -initialized and ready to process mathematics. Other events that might -need to be signaled include the appearance of newly processed -mathematics on the web page, the loading of a new extension, and so -on.

-

The mechanism provided by MathJax for handling this type of -communication is the Callback Signal. The Callback Signal -object provides a standardized mechanism for sending and receiving -messages between MathJax and other code on the page. A signal acts -like a mailbox where MathJax places messages for others to read. -Those interested in seeing the messages can register an interest in -receiving a given signal, and when MathJax posts a message on that -signal, all the interested parties will be notified. No new posts to -the signal will be allowed until everyone who is listening to the -signal has had a chance to receive the first one. If a signal causes -a listener to begin an asynchronous operation (such as loading a -file), the listener can indicate that its reply to the signal is going -to be delayed, and MathJax will wait until the asynchronous action is -complete before allowing additional messages to be posted to this -signal. In this way, posting a signal may itself be an asynchronous -action.

-

The posts to a signal are cached so that if a new listener expresses -an interest in the signal, it will receive all the past posts as well -as any future ones. For example, if a component on the page needs to -know when MathJax is set up, it can express an interest in the startup -signal’s End message. If MathJax is not yet set up, the component -will be signaled when MathJax is ready to begin, but if MathJax is -already set up, the component will receive the End message -immediately, since that message was cached and is available to any new -listeners. In this way, signals can be used to pass messages without -worrying about the timing of when the signaler and listener are ready -to send or receive signals: a listener will receive messages even if -it starts listening after they were sent.

-

One way that MathJax makes use of this feature is in configuring its -various extensions. The extension may not be loaded when the user’s -configuration code runs, so the configuration code can’t modify the -extension because it isn’t there yet. Fortunately, most extensions -signal when they are loaded and initialized via an Extension [name] -Ready message, or just [name] Ready, so the configuration code -can implement a listener for that message, and have the listener -perform the configuration when the message arrives. But even if the -extension has already been loaded, this will still work, because the -listener will receive the ready signal even if it has already been -posted. In this way, listening for signals is a robust method of -synchronizing code components no matter when they are loaded and run.

-

In some cases, it may be inappropriate for a new listener to receive -past messages that were sent to a signal object. There are two ways to -handle this: first, a new listener can indicate that it doesn’t want -to hear old messages when it attaches itself to a signal object. The -sender can also indicate that past messages are not appropriate for -new listeners. It does this by clearing the message history so that -new listeners have no old posts to hear.

-

The actual message passed along by the signal can be anything, but is -frequently a string constant indicating the message value. It could -also be a JavaScript array containing data, or an object containing -key:value pairs. All the listeners receive the data as part of the -message, and can act on it in whatever ways they see fit.

-
-

Creating a Listener

-

MathJax maintains two separate pre-defined signal channels: the -startup signal and the processing signal (or the hub signal). -The startup signal is where the messages about different components -starting up and becoming ready appear. The processing signal is where -the messages are sent about processing mathematics, like the New -Math messages for when newly typeset mathematics appears on the -page. The latter is cleared when a new processing pass is started (so -messages from past processing runs are not kept).

-

The easiest way to create a listener is to use either -MathJax.Hub.Register.StartupHook() or -MathJax.Hub.Register.MessageHook(). The first sets a listener -on the startup signal, and the latter on the hub processing signal. -You specify the message you want to listen for, and a callback to be -called when it arrives. For example

-
MathJax.Hub.Register.StartupHook("TeX Jax Ready ",function () {
-  alert("The TeX input jax is loaded and ready!");
-});
-
-
-

See the MathJax Startup Sequence page for -details of the messages sent during startup. See also the -test/sample-signals.html -file (and its source) for examples of using signals. This example -lists all the signals that occur while MathJax is processing that -page, so it gives useful information about the details of the signals -produced by various components.

-

In this example, the listener starts loading an extra configuration -file (from the same directory as the web page). Since it returns -the callback from that request, the signal processing will wait until -that file is completely loaded before it continues; that is, the -configuration process is suspended until the extra configuration file -has loaded.

-
MathJax.Hub.Register.StartupHook("Begin Config",
-  function () {return MathJax.Ajax.Require("myConfig.js")}
-);
-
-
-

Here is an example that produces an alert each time new mathematics -is typeset on the page. The message includes the DOM id of the -element on the page that contains the newly typeset mathematics as its -second element, so this listener locates the <script> tag -for the math, and displays the original source mathematics for it.

-
MathJax.Hub.Register.MessageHook("New Math", function (message) {
-  var script = MathJax.Hub.getJaxFor(message[1]).SourceElement();
-  alert(message.join(" ")+": '"+script.text+"'");
-})
-
-
-
-
-

Listening for All Messages

-

If you want to process every message that passes through a signal -channel, you can do that by registering an interest in the signal -rather than registering a message hook. You do this by calling the -signal’s Interest() method, as in the following example.

-
MathJax.Hub.Startup.signal.Interest(
-  function (message) {alert("Startup: "+message)}
-);
-MathJax.Hub.signal.Interest(
-  function (message) {alert("Hub: "+message)}
-);
-
-
-

This will cause an alert for every signal that MathJax produces. You -probably don’t want to try this out, since it will produce a lot of -them; instead, use the test/sample-signals.html -file, which displays them in the web page.

-

See the Signal Object reference page for details on the -structure and methods of the signal object.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Using Queues

-

Next topic

-

Loading MathJax Dynamically

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/start.html b/docs/html/start.html deleted file mode 100644 index 6b5e5c077..000000000 --- a/docs/html/start.html +++ /dev/null @@ -1,543 +0,0 @@ - - - - - - - - Getting Started — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Getting Started

-

MathJax allows you to include mathematics in your web pages, either -using LaTeX, MathML, or AsciiMath notation, and the mathematics -will be processed using javascript to produce HTML, SVG or MathML -equations for viewing in any modern browser.

-

There are two ways to access MathJax: the easiest way is to use the -copy of MathJax available from our distributed network service at -cdn.mathjax.org, but you can also download and install a copy of -MathJax on your own server, or use it locally on your hard disk -(with no need for network access). All three of these are described -below, with links to more detailed explanations. This page gives the -quickest and easiest ways to get MathJax up and running on your web -site, but you may want to read the details in order to customize the -setup for your pages.

-
-

Using the MathJax Content Delivery Network (CDN)

-

To use MathJax from our server, you need to do two things:

-
    -
  1. Link MathJax into the web pages that are to include mathematics.
  2. -
  3. Put mathematics into your web pages so that MathJax can display -it.
  4. -
-

You accomplish the first step by putting

-
<script type="text/javascript"
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-
-
-

into the <head> block of your document. (It can also go in the -<body> if necessary, but the head is to be preferred.) This will -load the latest version of MathJax from the distributed server, and -configure it to recognize mathematics in both TeX and MathML notation, -and ask it to generate its output using MathML if the browser supports -that well enough, and otherwise use HTML-with-CSS to display the -mathematics. This is one of the most general configurations, and -should suffice for most people’s needs. Other configurations are -available, however, and you can also provide additional configuration -parameters to taylor one of the configurations to your needs. More -details can be found in the Loading and Configuring MathJax instructions.

-

The use of cdn.mathjax.org is governed by its terms of service, so be -sure to read that before linking to the MathJax CDN server.

-

To see how to enter mathematics in your web pages, see Putting -mathematics in a web page below.

-
-

Secure Access to the CDN

-

When the the MathJax CDN is accessed via the address -http://cdn.mathjax.org, data is downloaded over a regular, insecure -HTTP connection. This introduces a security risk, since it is -possible a hostile 3rd party could intercept the MathJax program data, -and replace it. This is sometimes called a -man-in-the-middle attack.

-

To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be done easily by using the -following <script> tag instead of the one listed above:

-
<script type="text/javascript"
-  src="https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-
-
-

Currently, the Amazon Cloudfront service used by the MathJax CDN does -not support the use of a human-friendly name like cdn.mathjax.org -for secure connections; however, the address given above is stable and -safe to use.

-
-
-
-

Installing Your Own Copy of MathJax

-

We recommend using the CDN service if you can, but you can also install -MathJax on your own server, or locally on your own hard disk. To do -so you will need to do the following things:

-

1. Obtain a copy of MathJax and make it available on your server or -hard disk.

-
    -
  1. Configure MathJax to suit the needs of your site.
  2. -
  3. Link MathJax into the web pages that are to include mathematics.
  4. -
  5. Put mathematics into your web pages so that MathJax can display -it.
  6. -
-
-

Obtaining and Installing MathJax

-

The easiest way to set up MathJax is to obtain the v2.0 archive from -the MathJax download page (you -should obtain a file named something like -mathjax-MathJax-v2.0-X-XXXXXXXX.zip where the X’s are random -looking numbers and letters). This archive includes both the MathJax -code and the MathJax webfonts, so it is the only file you need. Note -that this is different from v1.0 and earlier releases, which had the -fonts separate from the rest of the code.

-

Unpack the archive and place the resulting MathJax folder onto your -web server at a convenient location where you can include it into your -web pages. For example, making MathJax a top-level directory on -your server would be one natural way to do this. That would let you -refer to the main MathJax file via the URL /MathJax/MathJax.js -from within any page on your server.

-

Note: While this is the easiest way to set up MathJax initially, there -is a better way to do it if you want to be able to keep your copy of -MathJax up-to-date. That uses the Git version -control system, and is described in the Installing MathJax document. If you prefer using Subversion, you can also use that to get a copy -of MathJax (see Installing MathJax via SVN).

-

Once you have MathJax set up on your server, you can test it using the -files in the MathJax/test directory. If you are putting MathJax -on a server, load them in your browser using their web addresses -rather than opening them locally (i.e., use an http:// URL rather -than a file:// URL). When you view the index.html file, after -a few moments you should see a message indicating that MathJax appears -to be working. If not, check that the files have been transferred to -the server completely and that the permissions allow the server to -access the files and folders that are part of the MathJax directory. -(Be sure to verify the MathJax folder’s permissions as well.) Check -the server log files for any errors that pertain to the MathJax -installation; this may help locate problems in the permission or -locations of files.

-
-
-

Configuring your copy of MathJax

-

When you include MathJax into your web pages as described below, it -will load the file config/TeX-AMS-MML_HTMLorMML.js (i.e., the file -named TeX-AMS-MML_HTMLorMML.js in the config folder of the -main MathJax folder). This file preloads all the most -commonly-used components of MathJax, allowing it to process -mathematics that is in the TeX or LaTeX format, or in MathML notation. -It will produce output in MathML form if the user’s browser supports -that sufficiently, and will use HTML-with-CSS to render the -mathematics otherwise.

-

There are a number of other prebuilt configuration files that you can -choose from as well, or you could use the config/default.js file and -customize the settings yourself. The combined configuration files are -described more fully in Common Configurations, and the configuration options are described in -Configuration Options.

-

Note: The configuration process changed between MathJax v1.0 and v1.1, -so if you have existing pages that use MathJax v1.0, you may need to -modify the tag that loads MathJax so that it conforms with the new -configuration process. See Installing and Configuring MathJax for more details.

-
-
-

Linking your copy of MathJax into a web page

-

You can include MathJax in your web page by putting

-
<script type="text/javascript" src="path-to-MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-
-

in your document’s <head> block. Here, path-to-MathJax should -be replaced by the URL for the main MathJax directory, so if you have -put the MathJax directory at the top level of you server’s web -site, you could use

-
<script type="text/javascript" src="/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-
-

to load MathJax in your page. For example, your page could look like

-
<html>
-    <head>
-        ...
-        <script type="text/javascript" src="/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-    </head>
-    <body>
-        ...
-    </body>
-</html>
-
-
-

If you have installed MathJax on a server that is in a different -domain from the one serving the page that loads MathJax, be sure to -read the Notes About Shared Servers for -more details. In that case, you may wish to consider using the -MathJax CDN rather than installing your own copy -of MathJax.

-
-
-
-

Putting mathematics in a web page

-

To put mathematics in your web page, you can use TeX and -LaTeX notation, MathML notation, AsciiMath -notation, or a combination of all three within the same page; the -MathJax configuration tells MathJax which you want to use, and how you -plan to indicate the mathematics when you are using TeX notation. The -configuration file used in the examples above tells MathJax to look -for both TeX and MathML notation within your pages. Other -configuration files tell MathJax to use AsciiMath input. These three -formats are described in more detail below.

-
-

TeX and LaTeX input

-

Mathematics that is written in TeX or LaTeX format is -indicated using math delimiters that surround the mathematics, -telling MathJax what part of your page represents mathematics and what -is normal text. There are two types of equations: ones that occur -within a paragraph (in-line mathematics), and larger equations that -appear separated from the rest of the text on lines by themselves -(displayed mathematics).

-

The default math delimiters are $$...$$ and \[...\] for -displayed mathematics, and \(...\) for in-line mathematics. Note -in particular that the $...$ in-line delimiters are not used -by default. That is because dollar signs appear too often in -non-mathematical settings, which could cause some text to be treated -as mathematics unexpectedly. For example, with single-dollar -delimiters, ”... the cost is $2.50 for the first one, and $2.00 for -each additional one ...” would cause the phrase “2.50 for the first -one, and” to be treated as mathematics since it falls between dollar -signs. For this reason, if you want to use single-dollars for in-line -math mode, you must enable that explicitly in your configuration:

-
<script type="text/x-mathjax-config">
-MathJax.Hub.Config({
-  tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
-});
-</script>
-<script type="text/javascript" src="path-to-mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-
-

See the config/default.js file, or the tex2jax configuration -options page, for additional configuration -parameters that you can specify for the tex2jax preprocessor, -which is the component of MathJax that identifies TeX notation within -the page. See the TeX and LaTeX page for -more on MathJax’s support for TeX, and in particular how to deal with -single dollar signs in your text when you have enabled single -dollar-sign delimiters.

-

Here is a complete sample page containing TeX mathematics (also -available in the test/sample-tex.html -file):

-
<!DOCTYPE html>
-<html>
-<head>
-<title>MathJax TeX Test Page</title>
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
-</script>
-<script type="text/javascript"
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-</head>
-<body>
-When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
-$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
-</body>
-</html>
-
-
-

Since the TeX notation is part of the text of the page, there are some -caveats that you must keep in mind when you enter your mathematics. -In particular, you need to be careful about the use of less-than -signs, since those are what the browser uses to indicate the start of -a tag in HTML. Putting a space on both sides of the less-than sign -should be sufficient, but see TeX and LaTeX support for details.

-

If you are using MathJax within a blog, wiki, or other content -management system, the markup language used by that system may -interfere with the TeX notation used by MathJax. For example, if your -blog uses Markdown notation for authoring your pages, the -underscores used by TeX to indicate subscripts may be confused with -the use of underscores by Markdown to indicate italics, and the two -uses may prevent your mathematics from being displayed. See TeX -and LaTeX support for some suggestions about how to -deal with the problem.

-

There are a number of extensions for the TeX input processor that are -loaded by the TeX-AMS-MML_HTMLorMML configuration. These include:

-
    -
  • TeX/AMSmath.js, which defines the AMS math environments and -macros,
  • -
  • TeX/AMSsymbols.js, which defines the macros for the symbols in -the msam10 and msbm10 fonts,
  • -
  • TeX/noErrors.js, which shows the original TeX code rather than -an error message when there is a problem processing the TeX, and
  • -
  • TeX/noUndefined.js, which prevents undefined macros from -producing an error message, and instead shows the macro name in red.
  • -
-

Other extensions may be loaded automatically when needed. See -TeX and LaTeX support for details on the other -TeX extensions that are available.

-
-
-

MathML input

-

For mathematics written in MathML notation, you mark your -mathematics using standard <math> tags, where <math -display="block"> represents displayed mathematics and <math -display="inline"> or just <math> represents in-line mathematics.

-

Note that this will work in HTML files, not just XHTML files (MathJax -works with both), and that the web page need not be served with any -special MIME-type. Also note that, unless you are using XHTML rather -than HTML, you should not include a namespace prefix for your -<math> tags; for example, you should not use <m:math> except -in a file where you have tied the m namespace to the MathML DTD by -adding the xmlns:m="http://www.w3.org/1998/Math/MathML" attribtue -to your file’s <html> tag.

-

Although it is not required, it is recommended that you include the -xmlns="http://www.w3.org/1998/Math/MathML" attribute on all -<math> tags in your document (and this is preferred to the use of -a namespace prefix like m: above, since those are deprecated in -HTML5) in order to make your MathML work in the widest range of -situations.

-

Here is a complete sample page containing MathML mathematics (also -available in the test/sample-mml.html -file):

-
<!DOCTYPE html>
-<html>
-<head>
-<title>MathJax MathML Test Page</title>
-<script type="text/javascript"
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</script>
-</head>
-<body>
-
-<p>
-When
-<math xmlns="http://www.w3.org/1998/Math/MathML">
-  <mi>a</mi><mo>&#x2260;</mo><mn>0</mn>
-</math>,
-there are two solutions to
-<math xmlns="http://www.w3.org/1998/Math/MathML">
-  <mi>a</mi><msup><mi>x</mi><mn>2</mn></msup>
-  <mo>+</mo> <mi>b</mi><mi>x</mi>
-  <mo>+</mo> <mi>c</mi> <mo>=</mo> <mn>0</mn>
-</math>
-and they are
-<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
-  <mi>x</mi> <mo>=</mo>
-  <mrow>
-    <mfrac>
-      <mrow>
-        <mo>&#x2212;</mo>
-        <mi>b</mi>
-        <mo>&#x00B1;</mo>
-        <msqrt>
-          <msup><mi>b</mi><mn>2</mn></msup>
-          <mo>&#x2212;</mo>
-          <mn>4</mn><mi>a</mi><mi>c</mi>
-        </msqrt>
-      </mrow>
-      <mrow> <mn>2</mn><mi>a</mi> </mrow>
-    </mfrac>
-  </mrow>
-  <mtext>.</mtext>
-</math>
-</p>
-
-</body>
-</html>
-
-
-

When entering MathML notation in an HTML page (rather than an XHTML -page), you should not use self-closing tags, but should use explicit -open and close tags for all your math elements. For example, you -should use

-
<mspace width="5pt"></mspace>
-
-
-

rather than <mspace width="5pt" /> in an HTML document. If you -use the self-closing form, some browsers will not build the math tree -properly, and MathJax will receive a damaged math structure, which -will not be rendered as the original notation would have been. -Typically, this will cause parts of your expression to not be -displayed. Unfortunately, there is nothing MathJax can do about that, -since the browser has incorrectly interpreted the tags long before -MathJax has a chance to work with them.

-

The component of MathJax that recognizes MathML notation within the -page is called the mml2jax extension, and it has only a few -configuration options; see the config/default.js file or the -mml2jax configuration options page for more -details. See the MathML page for more on -MathJax’s MathML support.

-
-
-

AsciiMath input

-

MathJax v2.0 includes a new input format: AsciiMath notation. -For mathematics written in this form, you mark your mathematical -expressions by surrounding them in “back-ticks”, i.e., `...`.

-

Here is a complete sample page containing AsciiMath notation (also -available in the test/sample-asciimath.html -file):

-
<!DOCTYPE html>
-<html>
-<head>
-<title>MathJax AsciiMath Test Page</title>
-<script type="text/javascript"
-  src="../MathJax.js?config=AM_HTMLorMML-full"></script>
-</head>
-<body>
-
-<p>When `a != 0`, there are two solutions to `ax^2 + bx + c = 0` and
-they are</p>
-<p style="text-align:center">
-  `x = (-b +- sqrt(b^2-4ac))/(2a) .`
-</p>
-
-</body>
-</html>
-
-
-

The component of MathJax that recognizes asciimath notation within the -page is called the asciimath2jax extension, and it has only a few -configuration options; see the config/default.js file or the -asciimath2jax configuration options page for more -details. See the AsciiMath support page for more on -MathJax’s AsciiMath support.

-
-
-
-

Where to go from here?

-

If you have followed the instructions above, you should now have -MathJax installed and configured on your web server, and you should be -able to use it to write web pages that include mathematics. At this -point, you can start making pages that contain mathematical content!

-

You could also read more about the details of how to customize -MathJax.

-

If you are trying to use MathJax in blog or wiki software or in some -other content-management system, you might want to read about using -MathJax in popular platforms.

-

If you are working on dynamic pages that include mathematics, you -might want to read about the MathJax Application Programming -Interface (its API), so you know how to include -mathematics in your interactive pages.

-

If you are having trouble getting MathJax to work, you can read more -about installing MathJax, or loading and -configuring MathJax.

-

Finally, if you have questions or comments, or want to help support -MathJax, you could visit the MathJax community forums or the MathJax bug tracker.

-
-
- - -
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/docs/html/startup.html b/docs/html/startup.html deleted file mode 100644 index 127e34b05..000000000 --- a/docs/html/startup.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - - The MathJax Startup Sequence — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

The MathJax Startup Sequence

-

When you load MathJax.js into a web page, it configures itself and -immediately begins loading the components it needs. As MathJax starts -up, it uses its signaling mechanism -to indicate the actions that it is taking so that MathJax extensions -can tie into the initialization process, and so other applications -within the page can synchronize their actions with MathJax.

-

The startup process performs the following actions:

-
    -
  • It creates the MathJax variable, and defines the following -subsystems:
      -
    • MathJax.Object (object-oriented programming model)
    • -
    • MathJax.Callback (callbacks, signals, and queues)
    • -
    • MathJax.Ajax (file-loading and style-creation code)
    • -
    • MathJax.HTML (support code for creating HTML elements)
    • -
    • MathJax.Message (manages the menu line in the lower left)
    • -
    • MathJax.Hub (the core MathJax functions)
    • -
    -
  • -
-
    -
  • It then creates the base MathJax.InputJax, -MathJax.OutputJax, and MathJax.ElementJax objects.
  • -
-
    -
  • MathJax sets up the default configuration, and creates the -signal objects used for the startup and hub actions.
  • -
-
    -
  • MathJax locates the <script> tag that loaded the MathJax.js -file, and sets the MathJax.Hub.config.root value to reflect the -location of the MathJax root directory.
  • -
-
    -
  • MathJax determines the browser being used and its version. It sets -up the MathJax.Hub.Browser object, which includes the browser -name and version, plus isMac, isPC, isMSIE, and so on.
  • -
-
    -
  • MathJax set up the MathJax.Hub.queue command queue, and -populates it with the commands MathJax runs at startup. This -includes creating the MathJax.Hub.Startup.onload onload -handler that is used to synchronize MathJax’s action with the -loading of the page.
  • -
-

Once the MathJax.Hub.queue is created, the following actions are -pushed into the queue:

-
    -
  1. Post the Begin startup signal
  2. -
-
    -
  1. Perform the configuration actions:
      -
    • Post the Begin Config startup signal
    • -
    • Load any configuration files specified via config= as a script parameter
    • -
    • Execute the content of the <script> that loaded MathJax, if it is not empty
    • -
    • Wait for the delayStartupUntil condition to be met, if one was specified
    • -
    • Execute any text/x-mathjax-config script blocks
    • -
    • load the files listed in the MathJax.Hub.config.config array
    • -
    • Post the End Config startup signal
    • -
    -
  2. -
-
    -
  1. Load the cookie values:
      -
    • Post the Begin Cookie startup signal
    • -
    • Load the menu cookie values
    • -
    • Use the cookie to set the renderer, if it is set
    • -
    • Post the End Cookie startup signal
    • -
    -
  2. -
-
    -
  1. Define the MathJax styles:
      -
    • Post the Begin Styles startup signal
    • -
    • Load the stylesheet files from the MathJax.Hub.config.stylesheets array
    • -
    • Define the stylesheet described in MathJax.Hub.config.styles
    • -
    • Post the End Styles startup signal
    • -
    -
  2. -
-
    -
  1. Initialize the Message system (the grey information box in the -lower left)
  2. -
-
    -
  1. Load the jax configuration files:
      -
    • Post the Begin Jax startup signal
    • -
    • Load the jax config files from the MathJax.Hub.config.jax array
        -
      • The jax will register themselves when they are loaded
      • -
      -
    • -
    • Post the End Jax startup signal
    • -
    -
  2. -
-
    -
  1. Load the extension files:
      -
    • Post the Begin Extensions startup signal
    • -
    • Load the files from the MathJax.Hub.config.extensions array
        -
      • Most extensions will post a [name] Ready or Extension -[name] Ready startup message when they are loaded (where -[name] is the name of the extension)
      • -
      -
    • -
    • Post the End Extensions startup signal
    • -
    -
  2. -
-
    -
  1. Set the MathJax menu’s renderer value based on the jax that have been -loaded
  2. -
-
    -
  1. Wait for the onload handler to fire (in MathJax v2.0 this can -occur on the DOMContentLoaded event rather than the page’s -onload event, so processing of mathematics can start earlier)
  2. -
-
    -
  1. Set MathJax.isReady to true
  2. -
-
    -
  1. Perform the typesetting pass (preprocessors and processors)
      -
    • Post the Begin Typeset startup signal
    • -
    • Post the Begin PreProcess hub signal
    • -
    • Run the registered preprocessors
    • -
    • Post the End PreProcess hub signal
    • -
    • Clear the hub signal history
    • -
    • Post the Begin Process hub signal
    • -
    • Process the math script elements on the page
        -
      • There are a number of Hub signals generated during math -processing, including a signal that a Math action is -starting (with a parameter indicating what action that is), -Begin and End Math Input messages, and Begin and -End Math Output signals.
      • -
      • Each new math element generates a New Math hub signal -with the math element’s ID
      • -
      -
    • -
    • Post the End Process hub signal
    • -
    • Post the End Typeset startup signal
    • -
    -
  2. -
-
    -
  1. Jump to the location specified in the URL’s hash reference, if -any.
  2. -
-
    -
  1. Initiate timers to load the zoom and menu code, if it hasn’t -already been loading in the configuration (so it will be ready -when the user needs it).
  2. -
-
    -
  1. Post the End startup signal
  2. -
-

The loading of the jax and extensions in steps 5 and 6 are now done in -parallel, rather than sequentially. That is, all the jax and extensions -are requested simultaneously, so they load concurrently. That means they -can load in any order, and that the begin and end signals for the jax and -extensions can be intermixed. (In general, you will get Begin Jax -followed by Begin Extensions, but the order of End Jax and End -Extensions will depend on the files being loaded.) Both 5 and 6 must -complete, however, before 7 will be performed.

-

See the test/sample-signals.html file -to see the signals in action.

-
- - -
-
-
-
-
-

Previous topic

-

The MathJax Processing Model

-

Next topic

-

Synchronizing your code with MathJax

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/synchronize.html b/docs/html/synchronize.html deleted file mode 100644 index 3b4b50271..000000000 --- a/docs/html/synchronize.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - Synchronizing your code with MathJax — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Synchronizing your code with MathJax

-

MathJax performs much of its activity asynchronously, meaning that -the calls that you make to initiate these actions will return before -the actions are completed, and your code will continue to run even -though the actions have not been finished (and may not even be started -yet). Actions such as loading files, loading web-based fonts, and -creating stylesheets all happen asynchronously within the browser, and -since JavaScript has no method of halting a program while waiting for -an action to complete, synchronizing your code with these types of -actions is made much more difficult. MathJax uses three mechanisms to -overcome this language shortcoming: callbacks, queues, and signals.

-

Callbacks are functions that are called when an action is -completed, so that your code can continue where it left off when the -action was initiated. Rather than have a single routine that -initiates an action, waits for it to complete, and then goes on, you -break the function into two parts: a first part that sets up and -initiates the action, and a second that runs after the action is -finished. Callbacks are similar to event handlers that you attach to -DOM elements, and are called when a certain action occurs. See the -Callback Object reference page for details of -how to specify a callback.

-

Queues are MathJax’s means of synchronizing actions that must be -performed sequentially, even when they involve asynchronous events -like loading files or dynamically creating stylesheets. The actions -that you put in the queue are Callback objects that will be performed -in sequence, with MathJax handling the linking of one action to the -next. MathJax maintains a master queue that you can use to -synchronize with MathJax, but you can also create your own private -queues for actions that need to be synchronized with each other, but -not to MathJax as a whole. See the Queue Object -reference page for more details.

-

Signals are another means of synchronizing your own code with -MathJax. Many of the important actions that MathJax takes (like -typesetting new math on the page, or loading an external component) -are “announced” by posting a message to a special object called a -Signal. Your code can register an interest in receiving one or more -of these signals by providing a callback to be called when the signal -is posted. When the signal arrives, MathJax will call your code. -This works somewhat like an event handler, except that many different -types of events can go through the same signal, and the signals have a -“memory”, meaning that if you register an interest in a particular -type of signal and that signal has already occurred, you will be told -about the past occurrences as well as any future ones. See the -Signal Object reference page for more details. -See also the test/sample-signals.html -file in the MathJax test directory for a working example of using -signals.

-

Each of these is explained in more detail in the links below:

- -
- - -
-
-
-
-
-

Previous topic

-

The MathJax Startup Sequence

-

Next topic

-

Using Callbacks

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/tex.html b/docs/html/tex.html deleted file mode 100644 index 758578b7b..000000000 --- a/docs/html/tex.html +++ /dev/null @@ -1,1988 +0,0 @@ - - - - - - - - MathJax TeX and LaTeX Support — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

MathJax TeX and LaTeX Support

-

The support for TeX and LaTeX in MathJax consists of two -parts: the tex2jax preprocessor, and the TeX input processor. The -first of these looks for mathematics within your web page (indicated by -math delimiters like $$...$$) and marks the mathematics for later -processing by MathJax. The TeX input processor is what converts the TeX -notation into MathJax’s internal format, where one of MathJax’s output -processors then displays it in the web page.

-

The tex2jax preprocessor can be configured to look for whatever -markers you want to use for your math delimiters. See the -tex2jax configuration options section for -details on how to customize the action of tex2jax.

-

The TeX input processor handles conversion of your mathematical -notation into MathJax’s internal format (which is essentially MathML), -and so acts as a TeX to MathML converter. The TeX input processor has -few configuration options (see the TeX options section for details), but it can also be customized -through the use of extensions that define additional functionality -(see the TeX and LaTeX extensions below).

-

Note that the TeX input processor implements only the math-mode -macros of TeX and LaTeX, not the text-mode macros. MathJax expects -that you will use standard HTML tags to handle formatting the text of -your page; it only handles the mathematics. So, for example, MathJax -does not implement \emph or -\begin{enumerate}...\end{enumerate} or other text-mode macros or -environments. You must use HTML to handle such formatting tasks. If -you need a LaTeX-to-HTML converter, you should consider other options.

-
-

TeX and LaTeX math delimiters

-

By default, the tex2jax preprocessor defines the LaTeX math delimiters, -which are \(...\) for in-line math, and \[...\] for displayed -equations. It also defines the TeX delimiters $$...$$ for displayed -equations, but it does not define $...$ as in-line math -delimiters. That is because dollar signs appear too often in -non-mathematical settings, which could cause some text to be treated -as mathematics unexpectedly. For example, with single-dollar -delimiters, ”... the cost is $2.50 for the first one, and $2.00 for -each additional one ...” would cause the phrase “2.50 for the first -one, and” to be treated as mathematics since it falls between dollar -signs. For this reason, if you want to use single-dollars for in-line -math mode, you must enable that explicitly in your configuration:

-
MathJax.Hub.Config({
-  tex2jax: {
-    inlineMath: [['$','$'], ['\\(','\\)']],
-    processEscapes: true
-  }
-});
-
-
-

Note that if you do this, you may want to also set processEscapes to -true, as in the example above, so that you can use \$ to prevent a -dollar sign from being treated as a math delimiter within the text of your -web page. (Note that within TeX mathematics, \$ always has this -meaning; processEscapes only affects the treatment of the opening -math delimiter.)

-

See the config/default.js file, or the tex2jax configuration -options page, for additional configuration -parameters that you can specify for the tex2jax preprocessor, -which is the component of MathJax that identifies TeX notation within -the page.

-
-
-

TeX and LaTeX in HTML documents

-

Keep in mind that your mathematics is part of an HTML document, so you -need to be aware of the special characters used by HTML as part of its -markup. There cannot be HTML tags within the math delimiters (other -than <br>) as TeX-formatted math does not include HTML tags. -Also, since the mathematics is initially given as text on the page, -you need to be careful that your mathematics doesn’t look like HTML -tags to the browser (which parses the page before MathJax gets to see -it). In particular, that means that you have to be careful about -things like less-than and greater-than signs (< and >), and -ampersands (&), which have special meaning to the browsers. For -example,

-
... when $x<y$ we have ...
-
-
-

will cause a problem, because the brower will think <y is the -beginning of a tag named y (even though there is no such tag in -HTML). When this happens, the browser will think the tag continues up -to the next > in the document (typically the end of the next -actual tag in the HTML file), and you may notice that you are missing -part of the text of the document. In the example above, the “we -have ...” will not be displayed because the browser thinks it is -part of the tag starting at <y. This is one indication you can -use to spot this problem; it is a common error and should be avoided.

-

Usually, it is sufficient to simply put spaces around these symbols to -cause the browser to avoid them, so

-
... when $x < y$ we have ...
-
-
-

should work. Alternatively, you can use the HTML entities &lt;, -&gt; and &amp; to encode these characters so that the browser -will not interpret them, but MathJax will. E.g.,

-
... when $x &lt; y$ we have ...
-
-
-

Finally, there are \lt and \gt macros defined to make it -easier to enter < and > using TeX-like syntax:

-
... when $x \lt y$ we have ...
-
-
-

Keep in mind that the browser interprets your text before MathJax -does.

-

Another source of difficulty is when MathJax is used in content -management systems that have their own document processing commands -that are interpreted before the HTML page is created. For example, -many blogs and wikis use formats like Markdown to allow you to -create the content of you pages. In Markdown, the underscore is used -to indicate italics, and this usage will conflict with MathJax’s ise -of the underscore to indicate a subscript. Since Markdown is applied -to the page first, it will convert your subscripts markers into -italics (inserting <i> tags into your mathematics, which will -cause MathJax to ignore the math).

-

Such systems need to be told not to modify the mathematics that -appears between math delimiters. That usually involves modifying the -content-management system itself, which is beyond the means of most -page authors. If you are lucky, someone else will already have done -this for you, and you can find a MathJax plugin for your system on the -MathJax-In-Use page page.

-

If there is no plugin for your system, or if it doesn’t handle the -subtleties of issolating the mathematics from the other markup that it -supports, then you may have to “trick” it into leaving your -mathematics untouched. Most content-management systems provide some -means of indicating text that should not be modified (“verbatim” -text), often for giving code snippets for computer languages. -You may be use that to enclose your mathematics so that the system -leaves it unchanged and MathJax can process it. For example, in -Markdown, the back-tick (`) is used to mark verbatim text, so

-
... we have `\(x_1 = 132\)` and `\(x_2 = 370\)` and so ...
-
-
-

may be able to protect the underscores from being processed by -Markdown.

-

Some content-management systems use the backslash (\) as a special -character for “escaping” other characters, but TeX uses this character -to indicate a macro name. In such systems, you may have to double the -backslashes in order to obtain a single backslash in your HTML page. -For example, you may have to do

-
\\begin{array}{cc}
-  a & b \\\\
-  c & c
-\\end{array}
-
-
-

to get an array with the four entries a, b, c, and d. Note in -particular that if you want \\ you will have to double both -backslashes, giving \\\\.

-

Finally, if you have enabled single dollar-signs as math delimiters, -and you want to include a literal dollar sign in your web page (one -that doesn’t represent a math delimiter), you will need to prevent -MathJax from using it as a math delimiter. If you also enable the -processEscapes configuration parameter, then you can use \$ in -the text of your page to get a dollar sign (without the backslash) in -the end. Alternatively, you use something like -<span>$</span> to isolate the dollar sign so that -MathJax will not use it as a delimiter.

-
-
-

Defining TeX macros

-

You can use the \def, \newcommand, \renewcommand, -\newenvironment, \renewenvironment, and \let commands to -create your own macros and environments. Unlike actual TeX, however, -in order for MathJax to process these, they must be enclosed in math -delimiters (since MathJax only processes macros in math-mode). For -example

-
\(
-   \def\RR{\bf R}
-   \def\bold#1{\bf #1}
-\)
-
-
-

would define \RR to produce a bold-faced “R”, and \bold{...} -to put its argument into bold face. Both definitions would be -available throughout the rest of the page.

-

You can include macro definitions in the Macros section of the TeX -blocks of your configuration, but they must be represetned as -JavaScript objects. For example, the two macros above can be -pre-defined in the configuraiton by

-
MathJax.Hub.Config({
-  TeX: {
-    Macros: {
-      RR: "{\\bf R}",
-      bold: ["{\\bf #1}",1]
-    }
-  }
-});
-
-
-

Here you give the macro as a name:value pair, where the name -is the name of the control sequence (without the backslash) that you -are defining, and value is either the replacement string for the -macro (when there are no arguments) or an array consisting of the -replacement string followed by the number of arguments for the macro.

-

Note that the replacement string is given as a JavaScript string -literal, and the backslash has special meaning in JavaScript strings. -So to get an actual backslash in the string you must double it, as int -he examples above.

-

If you have many such definitions that you want to use on more than -one page, you could put them into a configuration file that you can -load along with the main configuration file. For example, you could -create a file in MathJax/config/local called local.js that -contains your macro definitions:

-
MathJax.Hub.Config({
-  TeX: {
-    Macros: {
-      RR: "{\\bf R}",
-      bold: ["{\\bf #1}",1]
-    }
-  }
-});
-
-MathJax.Ajax.loadComplete("[MathJax]/config/local/local.js");
-
-
-

and then load it along with your main configuration file on the script -that loads MathJax.js:

-
<script src="/MathJax/MathJax.js?config=TeX-AMS_HTML,local/local.js"></script>
-
-
-

If you are using the CDN, you can make a local configuration file on -your own server, and load MathJax itself from the CDN and your -configuration file from your server. See Using a Local -Configuration File with the CDN for details.

-
-
-

Autmatic Equation Numering

-

New in MathJax v2.0 is the ability to have equations be numbered -automatically. This functionality is turned off by default, so -that pages don’t change -when you update from v1.1 to v2.0, but it is easy to configure MathJax -to produce automatic equation numbers by adding:

-
<script type="text/x-mathjax-config">
-MathJax.Hub.Config({
-  TeX: { equationNumbers: { autoNumber: "AMS" } }
-});
-</script>
-
-
-

to your page just before the <script> tag that loads -MathJax.js itself.

-

Equations can be numbered in two ways: either number the AMSmath -environments as LaTeX would, or number all displayed equations (the -example above uses AMS-style numbering). Set autoNumber to -"all" if you want every displayed equation to be numbered. -You can use \notag or \nonumber to prevent -individual equations from being numbered, and \tag{} can be used -to override the usual equation number with your own symbol instead.

-

Note that the AMS environments come in two forms: starred and -unstarred. The unstarred versions produce equation numbers (when -autoNumber is set to "AMS") and the starred ones don’t. For -example

-
\begin{equation}
-   E = mc^2
-\end{equation}
-
-
-

will be numbered, while

-
\begin{equation*}
-   e^{\pi i} - 1 = 0
-\end{equation*}
-
-
-

won’t be numbered (when autoNumber is "AMS").

-

You can use \label to give an equation an identifier that you can -use to refer to it later, and then use \ref or \eqref within -your document to insert the actual equation number at that location, -as a reference. For example,

-
In equation \eqref{eq:sample}, we find the value of an
-interesting integral:
-
-\begin{equation}
-  \int_0^\infty \frac{x^3}{e^x-1}\,dx = \frac{\pi^4}{15}
-  \label{eq:sample}
-\end{equation}
-
-
-

includes a labeled equation and a reference to that equation. Note -that references can come before the corresponding formula as well as -after them. See the equation numbering links in the MathJax examples -page for -more examples.

-

You can configure the way that numbers are displayed and how the -references to them are made using paramters in the equationNumbers -block of your TeX configuration. See the TeX configuration -options page for more details.

-
-
-

TeX and LaTeX extensions

-

While MathJax includes nearly all of the Plain TeX math macros, and -many of the LaTeX macros and environments, not everything is -implemented in the core TeX input processor. Some less-used commands -are defined in extensions to the TeX processor. MathJax will load -some extensions automatically when you first use the commands they -implement (for example, the \def and \newcommand macros are -implemented in the newcommand.js extension, but MathJax loads -this extension itself when you use those macros). Not all extensions -are set up to load automatically, however, so you may need to request -some extensions explicitly yourself.

-

To enable any of the TeX extensions, simply add the appropriate string -(e.g., "AMSmath.js") to the extensions array in the TeX block -of your configuration. If you use one of the combined configuration files, -like TeX-AMS_HTML, this will already include several of the extensions -automatically, but you can include others using a mathjax configuration -script prior to loading MathJax. For example

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({ TeX: { extensions: ["autobold.js"] }});
-</script>
-<script type="text/javascript"
-    src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
-</script>
-
-
-

will load the autobold TeX extension in addition to those already -included in the TeX-AMS_HTML configuration file.

-

You can also load these extensions from within a math expresion using -the non-standard \require{extension} macro. For example

-
\(\require{color}\)
-
-
-

would load the color extension into the page. This way you you can -load extensions into pages that didn’t load them in their -configurations (and prevents you from having to load all the -extensions into all pages even if they aren’t used).

-

It is also possible to create a macro that will autoload an extension -when it is first used (under the assumption that the extension will -redefine it to perform its true function). For example

-
<script type="text/x-mathjax-config">
-MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
-  MathJax.Hub.Insert(MathJax.InputJax.TeX.Definitions.macros,{
-    cancel: ["Extension","cancel"],
-    bcancel: ["Extension","cancel"],
-    xcancel: ["Extension","cancel"],
-    cancelto: ["Extension","cancel"]
-  });
-});
-</script>
-
-
-

would declare the \cancel, \bcancel, \xcancel, and -\cancelto macros to load the cancel extension (where they are -actually defined). Whichever is used first will cause the extension -to be loaded, redefining all four to their proper values. Note that -this may be better than loading the extension explicitly, since it -avoids loading the extra file on pages where these macros are not -used. The sample autoloading macros -example page shows this in action. The autoload-all extension below -defines such macros for all the extensions so that if you include -it, MathJax will have access to all the macros it knows about.

-

The main extensions are described below.

-
-

Action

-

The action extension gives you access to the MathML <maction> -element. It defines three new non-standard macros:

-
-
-\mathtip{math}{tip}
-

Use tip (in math mode) as tooltip for math.

-
- -
-
-\texttip{math}{tip}
-

Use tip (in text mode) as tooltip for math.

-
- -
-
-\toggle{math1}{math2}...\endtoggle
-

Show math1, and when clicked, show math2, and so on. -When the last one is clicked, go back to math1.

-
- -

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["action.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

AMSmath and AMSsymbols

-

The AMSmath extension implements AMS math environments and macros, and -the AMSsymbols extension implements macros for accessing the AMS symbol -fonts. These are already included in the combined configuration files that -load the TeX input processor. To use these extensions in your own -configurations, add them to the extensions array in the TeX block.

-
TeX: {
-  extensions: ["AMSmath.js", "AMSsymbols.js", ...]
-}
-
-
-

See the list of control sequences at the end of this document for details -about what commands are implemented in these extensions.

-

If you are not using one of the combined configuration files, the AMSmath -extension will be loaded automatically when you first use one of the math -environments it defines, but you will have to load it explicitly if you -want to use the other macros that it defines. The AMSsymbols extension -is not loaded automatically, so you must include it explicitly if you want -to use the macros it defines.

-

Both extensions are included in all the combined configuration files -that load the TeX input processor.

-
-
-

Autobold

-

The autobold extension adds \boldsymbol{...} around mathematics that -appears in a section of an HTML page that is in bold.

-
TeX: {
-  extensions: ["autobold.js"]
-}
-
-
-

This extension is not loaded by the combined configuration files.

-
-
-

BBox

-

The bbox extension defines a new macro for adding background colors, -borders, and padding to your math expressions.

-
-
-\bbox[options]{math}
-

puts a bounding box around math using the provided options. -The options can be one of the following:

-
    -
  1. A color name used for the background color.
  2. -
  3. A dimension (e.g., 2px) to be used as a padding around the -mathematics (on all sides).
  4. -
  5. Style attributes to be applied to the mathematics (e.g., -border:1px solid red).
  6. -
  7. A combination of these separated by commas.
  8. -
-
- -

Here are some examples:

-
\bbox[red]{x+y}      % a red box behind x+y
-\bbox[2pt]{x+1}      % an invisible box around x+y with 2pt of extra space
-\bbox[red,2pt]{x+1}  % a red box around x+y with 2pt of extra space
-\bbox[5px,border:2px solid red]
-                     % a 2px red border around the math 5px away
-
-
-

This extension is not included in any of the combined configurations, -but it will be loaded automatically, so you do not need to include it -in your extensions array.

-
-
-

Begingroup

-

The begingroup extension implements commands that provide a -mechanism for localizing macro defintions so that they are not -permanent. This is useful if you have a blog site, for example, and -want to isolate changes that your readers make in their comments so -that they don’t affect later comments.

-

It defines two new non-standard macros, \begingroup and -\endgroup, that are used to start and stop a local namespace for -macros. Any macros that are defined between the \begingroup and -\endgroup will be removed after the \endgroup is executed. -For example, if you put \(\begingroup\) at the top of each reader’s -comments and \(\endgroup\) at the end, then any macros they define -within their response will be removed after it is processed.

-

In addition to these two macros, the begingroup extension defines -the standard \global and \gdef control sequences from TeX. -(The \let, \def, \newcommand, and \newenvironment -control sequences are already defined in the core TeX input jax.)

-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["begingroup.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

Cancel

-

The cancel extension defines the following macros:

-
-
-\cancel{math}
-

Strikeout math from lower left to upper right.

-
- -
-
-\bcancel{math}
-

Strikeout math from upper left to lower right.

-
- -
-
-\xcancel{math}
-

Strikeout math with an “X”.

-
- -
-
-\cancelto{value}{math}
-

Strikeout math with an arrow going to value.

-
- -

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["cancel.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

Color

-

The \color command in the core TeX input jax is not standard in -that it takes the mathematics to be colored as one of its parameters, -whereas the LaTeX \color command is a switch that changes the -color of everything that follows it.

-

The color extension changes the \color command to be compatible -with the LaTeX implementation, and also defines \colorbox, -\fcolorbox, and \DefineColor, as in the LaTeX color package. -It defines the standard set of colors (Apricot, Aquamarine, -Bittersweet, and so on), and provides the RGB and grey-scale color -spaces in addition to named colors.

-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["color.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands, -and have \color be compatible with LaTeX usage.

-
-
-

Enclose

-

The enclose extension gives you access to the MathML <menclose> -element for adding boxes, ovals, strikethroughs, and other marks over -your mathematics. It defines the following non-standard macro:

-
-
-\enclose{notation}[attributes]{math}
-

Where notation is a comma-separated list of MathML -<menclose> notations (e.g., circle, left, -updiagonalstrike, longdiv, etc.), attributes are -MathML attribute values allowed on the <menclose> element -(e.g., mathcolor="red", mathbackground="yellow"), and -math is the mathematics to be enclosed.

-
- -

For example

-
\enclose{circle}[mathcolor="red"]{x}
-\enclose{circle}[mathcolor="red"]{\color{black}{x}}
-\enclose{circle,box}{x}
-\enclose{circle}{\enclose{box}{x}}
-
-
-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["enclose.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

Extpfeil

-

The extpfeil extension adds more macros for producing extensible -arrows, including \xtwoheadrightarrow, \xtwoheadleftarrow, -\xmapsto, \xlongequal, \xtofrom, and a non-standard -\Newextarrow for creating your own extensible arrows. The latter -has the form

-
-
-\Newextarrow{\cs}{lspace,rspace}{unicode-char}
-

where \cs is the new control sequence name to be defined, -lspace and rspace are integers representing the amount of -space (in suitably small units) to use at the left and right of -text that is placed above or below the arrow, and unicode-char -is a number representing a unicode character position in either -decimal or hexadecimal notation.

-
- -

For example

-
\Newextarrow{\xrightharpoonup}{5,10}{0x21C0}
-
-
-

defines an extensible right harpoon with barb up. Note that MathJax -knows how to stretch only a limited number of characters, so you may -not actually get a stretchy character this way.

-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["extpfeil.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

HTML

-

The HTML extension gives you access to some HTML features like -styles, classes, element ID’s and clickable links. It defines the -following non-standard macros:

-
-
-\href{url}{math}
-

Makes math be a link to the page given by url.

-
- -
-
-\class{name}{math}
-

Attaches the CSS class name to the output associated with -math when it is included in the HTML page. This allows your -CSS to style the element.

-
- -
-
-\cssId{id}{math}
-

Attaches an id attribute with value id to the output -associated with math when it is included in the HTML page. -This allows your CSS to style the element, or your javascript to -locate it on the page.

-
- -
-
-\style{css}{math}
-

Adds the give css declarations to the element associated with -math.

-
- -

For example:

-
x \href{why-equal.html}{=} y^2 + 1
-
-(x+1)^2 = \class{hidden}{(x+1)(x+1)}
-
-(x+1)^2 = \cssId{step1}{\style{visibility:hidden}{(x+1)(x+1)}}
-
-
-

This extension is not included in any of the combined configurations, -but it will be loaded automatically when any of these macros is used, -so you do not need to include it explicitly in your configuration.

-
-
-

mhchem

-

The mhchem extensions implements the \ce, \cf, and \cee -chemical equation macros of the LaTeX mhchem package. See the -mhchem CPAN page for more -information and a link to the documentation for mhchem.

-

For example

-
\ce{C6H5-CHO}
-\ce{$A$ ->[\ce{+H2O}] $B$}
-\ce{SO4^2- + Ba^2+ -> BaSO4 v}
-
-
-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["mhchem.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-
-
-

noErrors

-

The noErrors extension prevents TeX error messages from being -displayed and shows the original TeX code instead. You can configure -whether the dollar signs are shown or not for in-line math, and -whether to put all the TeX on one line or use multiple lines (if the -original text contained line breaks).

-

This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the noErrors extension in -your own configuration, or to modify its parameters, add something like the -following to your MathJax.Hub.Config() call:

-
TeX: {
-  extensions: ["noErrors.js"],
-  noErrors: {
-    inlineDelimiters: ["",""],   // or ["$","$"] or ["\\(","\\)"]
-    multiLine: true,             // false for TeX on all one line
-    style: {
-      "font-size":   "90%",
-      "text-align":  "left",
-      "color":       "black",
-      "padding":     "1px 3px",
-      "border":      "1px solid"
-      // add any additional CSS styles that you want
-      //  (be sure there is no extra comma at the end of the last item)
-    }
-  }
-}
-
-
-

Display-style math is always shown in multi-line format, and without -delimiters, as it will already be set off in its own centered -paragraph, like standard display mathematics.

-

The default settings place the invalid TeX in a multi-line box with a -black border. If you want it to look as though the TeX is just part of -the paragraph, use

-
TeX: {
-  noErrors: {
-    inlineDelimiters: ["$","$"],   // or ["",""] or ["\\(","\\)"]
-    multiLine: false,
-    style: {
-      "font-size": "normal",
-      "border": ""
-    }
-  }
-}
-
-
-

You may also wish to set the font family or other CSS values here.

-

If you are using a combined configuration file that loads the TeX -input processor, it will also load the noErrors extension -automatically. If you want to disable the noErrors extension so -that you receive the normal TeX error messages, use the following -configuration:

-
TeX: { noErrors: { disabled: true } }
-
-
-

Any math that includes errors will be replaced by an error message -indicating what went wrong.

-
-
-

noUndefined

-

The noUndefined extension causes undefined control sequences to be -shown as their macro names rather than generating error messages. So -$X_{\xxx}$ would display as an “X” with a subscript consisting of the -text \xxx in red.

-

This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the noUndefined extension -in your own configuration, or to modify its parameters, add something like -the following to your MathJax.Hub.Config() call:

-
TeX: {
-  extensions: ["noUndefined.js"],
-  noUndefined: {
-    attributes: {
-      mathcolor: "red",
-      mathbackground: "#FFEEEE",
-      mathsize: "90%"
-    }
-  }
-}
-
-
-

The attributes setting specifies attributes to apply to the -mtext element that encodes the name of the undefined macro. The -default values set mathcolor to "red", but do not set any -other attributes. This example sets the background to a light pink, -and reduces the font size slightly.

-

If you are using a combined configuration file that loads the TeX -input processor, it will also load the noUndefined extension -automatically. If you want to disable the noUndefined extension so -that you receive the normal TeX error messages for undefined macros, -use the following configuration:

-
TeX: { noUndefined: { disabled: true } }
-
-
-

Any math that includes an undefined control sequence name will be -replaced by an error message indicating what name was undefined.

-
-
-

Unicode support

-

The unicode extension implements a \unicode{} extension to TeX -that allows arbitrary unicode code points to be entered in your -mathematics. You can specify the height and depth of the character -(the width is determined by the browser), and the default font from -which to take the character.

-

Examples:

-
\unicode{65}                        % the character 'A'
-\unicode{x41}                       % the character 'A'
-\unicode[.55,0.05]{x22D6}           % less-than with dot, with height .55em and depth 0.05em
-\unicode[.55,0.05][Geramond]{x22D6} % same taken from Geramond font
-\unicode[Garamond]{x22D6}           % same, but with default height, depth of .8em,.2em
-
-
-

Once a size and font are provided for a given unicode point, they need -not be specified again in subsequent \unicode{} calls for that -character.

-

The result of \unicode{...} will have TeX class ORD (i.e., it -will act like a variable). Use \mathbin{...}, \mathrel{...}, -etc., to specify a different class.

-

Note that a font list can be given in the \unicode{} macro, but -Internet Explorer has a buggy implementation of the font-family -CSS attribute where it only looks in the first font in the list that -is actually installed on the system, and if the required glyph is not -in that font, it does not look at later fonts, but goes directly to -the default font as set in the Internet-Options/Font panel. For -this reason, the default font list for the \unicode{} macro is -STIXGeneral, 'Arial Unicode MS', so if the user has STIX -fonts, the symbol will be taken from that (almost all the symbols are -in STIXGeneral), otherwise MathJax tries Arial Unicode MS.

-

The unicode extension is loaded automatically when you first use the -\unicode{} macro, so you do not need to add it to the extensions -array. You can configure the extension as follows:

-
TeX: {
-  unicode: {
-    fonts: "STIXGeneral, 'Arial Unicode MS'"
-  }
-}
-
-
-
-
-

Autoload-all

-

The autoload-all extension predefines all the macros from the -extensions above so that they autoload the extensions when first -used. A number of macros already do this, e.g., \unicode, but -this extension defines the others to do the same. That way MathJax -will have access to all the macros that it knows about.

-

To use this extension in your own configurations, add it to the -extensions array in the TeX block.

-
TeX: {
-  extensions: ["autoload-all.js"]
-}
-
-
-

This extension is not included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands.

-

Note that autoload-all redefines \color to be the one from the -color extension (the LaTeX-compatible one rather than the -non-standard MathJax version). This is because \colorbox and -\fcolorbox autoload the color extension, which will cause -\color to be redefined, and so for consistency, \color is -redefined immediately.

-

If you wish to retain the original definition of \color, then use -the following

-
<script type="text/x-mathjax-config">
-MathJax.Hub.Config({
-  TeX: { extensions: ["autoload-all.js"] }
-});
-MathJax.Hub.Register.StartupHook("TeX autoload-all Ready", function () {
-  var MACROS = MathJax.InputJax.TeX.Definitions.macros;
-  MACROS.color = "Color";
-  delete MACROS.colorbox;
-  delete MACROS.fcolorbox;
-});
-</script>
-
-
-
-
-
-

Supported LaTeX commands

-

This is a long list of the TeX macros supported by MathJax. If the -macro is defined in an extension, the name of the extension follows -the macro name. If the extension is in brackets, the extension will -be loaded automatically when the macro or environment is first used.

-

More complete details about how to use these macros, with examples and -explanations, is available at Carol Fisher’s TeX Commands Available -in MathJax page.

-
-

Symbols

-
#
-%
-&
-^
-_
-{
-}
-~
-'
-
-\   (backslash-space)
-\!
-\#
-\$
-\%
-\&
-\,
-\:
-\;
-\>
-\\
-\_
-\{
-\|
-\}
-
-
-
-
-

A

-
\above
-\abovewithdelims
-\acute
-\aleph
-\alpha
-\amalg
-\And
-\angle
-\approx
-\approxeq               AMSsymbols
-\arccos
-\arcsin
-\arctan
-\arg
-\array
-\Arrowvert
-\arrowvert
-\ast
-\asymp
-\atop
-\atopwithdelims
-
-
-
-
-

B

-
\backepsilon            AMSsymbols
-\backprime              AMSsymbols
-\backsim                AMSsymbols
-\backsimeq              AMSsymbols
-\backslash
-\backslash
-\bar
-\barwedge               AMSsymbols
-\Bbb
-\Bbbk                   AMSsymbols
-\bbox                  [bbox]
-\bcancel                cancel
-\because                AMSsymbols
-\begin
-\begingroup             begingroup      non-standard
-\beta
-\beth                   AMSsymbols
-\between                AMSsymbols
-\bf
-\Big
-\big
-\bigcap
-\bigcirc
-\bigcup
-\Bigg
-\bigg
-\Biggl
-\biggl
-\Biggm
-\biggm
-\Biggr
-\biggr
-\Bigl
-\bigl
-\Bigm
-\bigm
-\bigodot
-\bigoplus
-\bigotimes
-\Bigr
-\bigr
-\bigsqcup
-\bigstar                AMSsymbols
-\bigtriangledown
-\bigtriangleup
-\biguplus
-\bigvee
-\bigwedge
-\binom                  AMSmath
-\blacklozenge           AMSsymbols
-\blacksquare            AMSsymbols
-\blacktriangle          AMSsymbols
-\blacktriangledown      AMSsymbols
-\blacktriangleleft      AMSsymbols
-\blacktriangleright     AMSsymbols
-\bmod
-\boldsymbol            [boldsymbol]
-\bot
-\bowtie
-\Box                    AMSsymbols
-\boxdot                 AMSsymbols
-\boxed                  AMSmath
-\boxminus               AMSsymbols
-\boxplus                AMSsymbols
-\boxtimes               AMSsymbols
-\brace
-\bracevert
-\brack
-\breve
-\buildrel
-\bullet
-\Bumpeq                 AMSsymbols
-\bumpeq                 AMSsymbols
-
-
-
-
-

C

-
\cal
-\cancel                 cancel
-\cancelto               cancel
-\cap
-\Cap                    AMSsymbols
-\cases
-\cdot
-\cdotp
-\cdots
-\ce                     mhchem
-\cee                    mhchem
-\centerdot              AMSsymbols
-\cf                     mhchem
-\cfrac                  AMSmath
-\check
-\checkmark              AMSsymbols
-\chi
-\choose
-\circ
-\circeq                 AMSsymbols
-\circlearrowleft        AMSsymbols
-\circlearrowright       AMSsymbols
-\circledast             AMSsymbols
-\circledcirc            AMSsymbols
-\circleddash            AMSsymbols
-\circledR               AMSsymbols
-\circledS               AMSsymbols
-\class                 [HTML]           non-standard
-\clubsuit
-\colon
-\color                  color
-\colorbox               color
-\complement             AMSsymbols
-\cong
-\coprod
-\cos
-\cosh
-\cot
-\coth
-\cr
-\csc
-\cssId                 [HTML]           non-standard
-\cup
-\Cup                    AMSsymbols
-\curlyeqprec            AMSsymbols
-\curlyeqsucc            AMSsymbols
-\curlyvee               AMSsymbols
-\curlywedge             AMSsymbols
-\curvearrowleft         AMSsymbols
-\curvearrowright        AMSsymbols
-
-
-
-
-

D

-
\dagger
-\daleth                 AMSsymbols
-\dashleftarrow          AMSsymbols
-\dashrightarrow         AMSsymbols
-\dashv
-\dbinom                 AMSmath
-\ddagger
-\ddddot                 AMSmath
-\dddot                  AMSmath
-\ddot
-\ddots
-\DeclareMathOperator    AMSmath
-\DefineColor            color
-\def                   [newcommand]
-\deg
-\Delta
-\delta
-\det
-\dfrac                  AMSmath
-\diagdown               AMSsymbols
-\diagup                 AMSsymbols
-\diamond
-\Diamond                AMSsymbols
-\diamondsuit
-\digamma                AMSsymbols
-\dim
-\displaylines
-\displaystyle
-\div
-\divideontimes          AMSsymbols
-\dot
-\doteq
-\Doteq                  AMSsymbols
-\doteqdot               AMSsymbols
-\dotplus                AMSsymbols
-\dots
-\dotsb
-\dotsc
-\dotsi
-\dotsm
-\dotso
-\doublebarwedge         AMSsymbols
-\doublecap              AMSsymbols
-\doublecup              AMSsymbols
-\Downarrow
-\downarrow
-\downdownarrows         AMSsymbols
-\downharpoonleft        AMSsymbols
-\downharpoonright       AMSsymbols
-
-
-
-
-

E

-
\ell
-\emptyset
-\enclose                enclose         non-standard
-\end
-\endgroup               begingroup      non-standard
-\enspace
-\epsilon
-\eqalign
-\eqalignno
-\eqcirc                 AMSsymbols
-\eqref                 [AMSmath]
-\eqsim                  AMSsymbols
-\eqslantgtr             AMSsymbols
-\eqslantless            AMSsymbols
-\equiv
-\eta
-\eth                    AMSsymbols
-\exists
-\exp
-
-
-
-
-

F

-
\fallingdotseq          AMSsymbols
-\fbox
-\fcolorbox              color
-\Finv                   AMSsymbols
-\flat
-\forall
-\frac
-\frac                   AMSmath
-\frak
-\frown
-
-
-
-
-

G

-
\Game                   AMSsymbols
-\Gamma
-\gamma
-\gcd
-\gdef                   begingroup
-\ge
-\genfrac                AMSmath
-\geq
-\geqq                   AMSsymbols
-\geqslant               AMSsymbols
-\gets
-\gg
-\ggg                    AMSsymbols
-\gggtr                  AMSsymbols
-\gimel                  AMSsymbols
-\global                 begingroup
-\gnapprox               AMSsymbols
-\gneq                   AMSsymbols
-\gneqq                  AMSsymbols
-\gnsim                  AMSsymbols
-\grave
-\gt
-\gt
-\gtrapprox              AMSsymbols
-\gtrdot                 AMSsymbols
-\gtreqless              AMSsymbols
-\gtreqqless             AMSsymbols
-\gtrless                AMSsymbols
-\gtrsim                 AMSsymbols
-\gvertneqq              AMSsymbols
-
-
-
-
-

H

-
\hat
-\hbar
-\hbox
-\hdashline
-\heartsuit
-\hline
-\hom
-\hookleftarrow
-\hookrightarrow
-\hphantom
-\href                  [HTML]
-\hskip
-\hslash                 AMSsymbols
-\hspace
-\Huge
-\huge
-\idotsint               AMSmath
-
-
-
-
-

I

-
\iff
-\iiiint                 AMSmath
-\iiint
-\iint
-\Im
-\imath
-\impliedby              AMSsymbols
-\implies                AMSsymbols
-\in
-\inf
-\infty
-\injlim                 AMSmath
-\int
-\intercal               AMSsymbols
-\intop
-\iota
-\it
-
-
-
-
-

J

-
\jmath
-\Join                   AMSsymbols
-
-
-
-
-

K

-
\kappa
-\ker
-\kern
-
-
-
-
-

L

-
\label                 [AMSmath]
-\Lambda
-\lambda
-\land
-\langle
-\LARGE
-\Large
-\large
-\LaTeX
-\lbrace
-\lbrack
-\lceil
-\ldotp
-\ldots
-\le
-\leadsto                AMSsymbols
-\left
-\Leftarrow
-\leftarrow
-\leftarrowtail          AMSsymbols
-\leftharpoondown
-\leftharpoonup
-\leftleftarrows         AMSsymbols
-\Leftrightarrow
-\leftrightarrow
-\leftrightarrows        AMSsymbols
-\leftrightharpoons      AMSsymbols
-\leftrightsquigarrow    AMSsymbols
-\leftroot
-\leftthreetimes         AMSsymbols
-\leq
-\leqalignno
-\leqq                   AMSsymbols
-\leqslant               AMSsymbols
-\lessapprox             AMSsymbols
-\lessdot                AMSsymbols
-\lesseqgtr              AMSsymbols
-\lesseqqgtr             AMSsymbols
-\lessgtr                AMSsymbols
-\lesssim                AMSsymbols
-\let                   [newcommand]
-\lfloor
-\lg
-\lgroup
-\lhd                    AMSsymbols
-\lim
-\liminf
-\limits
-\limsup
-\ll
-\llap
-\llcorner               AMSsymbols
-\Lleftarrow             AMSsymbols
-\lll                    AMSsymbols
-\llless                 AMSsymbols
-\lmoustache
-\ln
-\lnapprox               AMSsymbols
-\lneq                   AMSsymbols
-\lneqq                  AMSsymbols
-\lnot
-\lnsim                  AMSsymbols
-\log
-\Longleftarrow
-\longleftarrow
-\Longleftrightarrow
-\longleftrightarrow
-\longmapsto
-\Longrightarrow
-\longrightarrow
-\looparrowleft          AMSsymbols
-\looparrowright         AMSsymbols
-\lor
-\lower
-\lozenge                AMSsymbols
-\lrcorner               AMSsymbols
-\Lsh                    AMSsymbols
-\lt
-\lt
-\ltimes                 AMSsymbols
-\lVert                  AMSmath
-\lvert                  AMSmath
-\lvertneqq              AMSsymbols
-
-
-
-
-

M

-
\maltese                AMSsymbols
-\mapsto
-\mathbb
-\mathbf
-\mathbin
-\mathcal
-\mathchoice            [mathchoice]
-\mathclose
-\mathfrak
-\mathinner
-\mathit
-\mathop
-\mathopen
-\mathord
-\mathpunct
-\mathrel
-\mathring               AMSmath
-\mathrm
-\mathscr
-\mathsf
-\mathstrut
-\mathtip                action          non-standard
-\mathtt
-\matrix
-\max
-\mbox
-\measuredangle          AMSsymbols
-\mho                    AMSsymbols
-\mid
-\middle
-\min
-\mit
-\mkern
-\mmlToken                               non-standard
-\mod
-\models
-\moveleft
-\moveright
-\mp
-\mskip
-\mspace
-\mu
-\multimap               AMSsymbols
-
-
-
-
-

N

-
\nabla
-\natural
-\ncong                  AMSsymbols
-\ne
-\nearrow
-\neg
-\negmedspace            AMSmath
-\negthickspace          AMSmath
-\negthinspace
-\neq
-\newcommand            [newcommand]
-\newenvironment        [newcommand]
-\Newextarrow            extpfeil
-\newline
-\nexists                AMSsymbols
-\ngeq                   AMSsymbols
-\ngeqq                  AMSsymbols
-\ngeqslant              AMSsymbols
-\ngtr                   AMSsymbols
-\ni
-\nLeftarrow             AMSsymbols
-\nleftarrow             AMSsymbols
-\nLeftrightarrow        AMSsymbols
-\nleftrightarrow        AMSsymbols
-\nleq                   AMSsymbols
-\nleqq                  AMSsymbols
-\nleqslant              AMSsymbols
-\nless                  AMSsymbols
-\nmid                   AMSsymbols
-\nobreakspace           AMSmath
-\nolimits
-\normalsize
-\not
-\notag                 [AMSmath]
-\notin
-\nparallel              AMSsymbols
-\nprec                  AMSsymbols
-\npreceq                AMSsymbols
-\nRightarrow            AMSsymbols
-\nrightarrow            AMSsymbols
-\nshortmid              AMSsymbols
-\nshortparallel         AMSsymbols
-\nsim                   AMSsymbols
-\nsubseteq              AMSsymbols
-\nsubseteqq             AMSsymbols
-\nsucc                  AMSsymbols
-\nsucceq                AMSsymbols
-\nsupseteq              AMSsymbols
-\nsupseteqq             AMSsymbols
-\ntriangleleft          AMSsymbols
-\ntrianglelefteq        AMSsymbols
-\ntriangleright         AMSsymbols
-\ntrianglerighteq       AMSsymbols
-\nu
-\nVDash                 AMSsymbols
-\nVdash                 AMSsymbols
-\nvDash                 AMSsymbols
-\nvdash                 AMSsymbols
-\nwarrow
-
-
-
-
-

O

-
\odot
-\oint
-\oldstyle
-\Omega
-\omega
-\omicron
-\ominus
-\operatorname           AMSmath
-\oplus
-\oslash
-\otimes
-\over
-\overbrace
-\overleftarrow
-\overleftrightarrow
-\overline
-\overrightarrow
-\overset
-\overwithdelims
-\owns
-
-
-
-
-

P

-
\parallel
-\partial
-\perp
-\phantom
-\Phi
-\phi
-\Pi
-\pi
-\pitchfork              AMSsymbols
-\pm
-\pmatrix
-\pmb
-\pmod
-\pod
-\Pr
-\prec
-\precapprox             AMSsymbols
-\preccurlyeq            AMSsymbols
-\preceq
-\precnapprox            AMSsymbols
-\precneqq               AMSsymbols
-\precnsim               AMSsymbols
-\precsim                AMSsymbols
-\prime
-\prod
-\projlim                AMSmath
-\propto
-\Psi
-\psi
-
-
-
-
-

Q

-
\qquad
-\quad
-
-
-
-
-

R

-
\raise
-\rangle
-\rbrace
-\rbrack
-\rceil
-\Re
-\ref                   [AMSmath]
-\renewcommand          [newcommand]
-\renewenvironment      [newcommand]
-\require                               non-standard
-\restriction            AMSsymbols
-\rfloor
-\rgroup
-\rhd                    AMSsymbols
-\rho
-\right
-\Rightarrow
-\rightarrow
-\rightarrowtail         AMSsymbols
-\rightharpoondown
-\rightharpoonup
-\rightleftarrows        AMSsymbols
-\rightleftharpoons
-\rightleftharpoons      AMSsymbols
-\rightrightarrows       AMSsymbols
-\rightsquigarrow        AMSsymbols
-\rightthreetimes        AMSsymbols
-\risingdotseq           AMSsymbols
-\rlap
-\rm
-\rmoustache
-\root
-\Rrightarrow            AMSsymbols
-\Rsh                    AMSsymbols
-\rtimes                 AMSsymbols
-\Rule                                  non-standard
-\rVert                  AMSmath
-\rvert                  AMSmath
-
-
-
-
-

S

-
\S
-\scr
-\scriptscriptstyle
-\scriptsize
-\scriptstyle
-\searrow
-\sec
-\setminus
-\sf
-\sharp
-\shortmid               AMSsymbols
-\shortparallel          AMSsymbols
-\shoveleft              AMSmath
-\shoveright             AMSmath
-\sideset                AMSmath
-\Sigma
-\sigma
-\sim
-\simeq
-\sin
-\sinh
-\skew
-\small
-\smallfrown             AMSsymbols
-\smallint
-\smallsetminus          AMSsymbols
-\smallsmile             AMSsymbols
-\smash
-\smile
-\Space
-\space
-\spadesuit
-\sphericalangle         AMSsymbols
-\sqcap
-\sqcup
-\sqrt
-\sqsubset               AMSsymbols
-\sqsubseteq
-\sqsupset               AMSsymbols
-\sqsupseteq
-\square                 AMSsymbols
-\stackrel
-\star
-\strut
-\style                 [HTML]          non-stanard
-\subset
-\Subset                 AMSsymbols
-\subseteq
-\subseteqq              AMSsymbols
-\subsetneq              AMSsymbols
-\subsetneqq             AMSsymbols
-\substack               AMSmath
-\succ
-\succapprox             AMSsymbols
-\succcurlyeq            AMSsymbols
-\succeq
-\succnapprox            AMSsymbols
-\succneqq               AMSsymbols
-\succnsim               AMSsymbols
-\succsim                AMSsymbols
-\sum
-\sup
-\supset
-\Supset                 AMSsymbols
-\supseteq
-\supseteqq              AMSsymbols
-\supsetneq              AMSsymbols
-\supsetneqq             AMSsymbols
-\surd
-\swarrow
-
-
-
-
-

T

-
\tag                   [AMSmath]
-\tan
-\tanh
-\tau
-\tbinom                 AMSmath
-\TeX
-\text
-\textbf
-\textit
-\textrm
-\textstyle
-\texttip                action         non-standard
-\tfrac                  AMSmath
-\therefore              AMSsymbols
-\Theta
-\theta
-\thickapprox            AMSsymbols
-\thicksim               AMSsymbols
-\thinspace
-\tilde
-\times
-\tiny
-\Tiny                                  non-standard
-\to
-\toggle                 action         non-standard
-\top
-\triangle
-\triangledown           AMSsymbols
-\triangleleft
-\trianglelefteq         AMSsymbols
-\triangleq              AMSsymbols
-\triangleright
-\trianglerighteq        AMSsymbols
-\tt
-\twoheadleftarrow       AMSsymbols
-\twoheadrightarrow      AMSsymbols
-
-
-
-
-

U

-
\ulcorner               AMSsymbols
-\underbrace
-\underleftarrow
-\underleftrightarrow
-\underline
-\underrightarrow
-\underset
-\unicode               [unicode]       non-standard
-\unlhd                  AMSsymbols
-\unrhd                  AMSsymbols
-\Uparrow
-\uparrow
-\Updownarrow
-\updownarrow
-\upharpoonleft          AMSsymbols
-\upharpoonright         AMSsymbols
-\uplus
-\uproot
-\Upsilon
-\upsilon
-\upuparrows             AMSsymbols
-\urcorner               AMSsymbols
-
-
-
-
-

V

-
\varDelta               AMSsymbols
-\varepsilon
-\varGamma               AMSsymbols
-\varinjlim              AMSmath
-\varkappa               AMSsymbols
-\varLambda              AMSsymbols
-\varliminf              AMSmath
-\varlimsup              AMSmath
-\varnothing             AMSsymbols
-\varOmega               AMSsymbols
-\varphi
-\varPhi                 AMSsymbols
-\varpi
-\varPi                  AMSsymbols
-\varprojlim             AMSmath
-\varpropto              AMSsymbols
-\varPsi                 AMSsymbols
-\varrho
-\varsigma
-\varSigma               AMSsymbols
-\varsubsetneq           AMSsymbols
-\varsubsetneqq          AMSsymbols
-\varsupsetneq           AMSsymbols
-\varsupsetneqq          AMSsymbols
-\vartheta
-\varTheta               AMSsymbols
-\vartriangle            AMSsymbols
-\vartriangleleft        AMSsymbols
-\vartriangleright       AMSsymbols
-\varUpsilon             AMSsymbols
-\varXi                  AMSsymbols
-\vcenter
-\vdash
-\Vdash                  AMSsymbols
-\vDash                  AMSsymbols
-\vdots
-\vec
-\vee
-\veebar                 AMSsymbols
-\verb                  [verb]
-\Vert
-\vert
-\vphantom
-\Vvdash                 AMSsymbols
-
-
-
-
-

W

-
\wedge
-\widehat
-\widetilde
-\wp
-\wr
-
-
-
-
-

X

-
\Xi
-\xi
-\xcancel                cancel
-\xleftarrow             AMSmath
-\xlongequal             extpfeil
-\xmapsto                extpfeil
-\xrightarrow            AMSmath
-\xtofrom                extpfeil
-\xtwoheadleftarrow      extpfeil
-\xtwoheadrightarrow     extpfeil
-
-
-
-
-

Y

-
\yen                    AMSsymbols
-
-
-
-
-

Z

-
\zeta
-
-
-
-
-

Environments

-

LaTeX environments of the form \begin{XXX} ... \end{XXX} are -provided where XXX is one of the following:

-
align                  [AMSmath]
-align*                 [AMSmath]
-alignat                [AMSmath]
-alignat*               [AMSmath]
-aligned                [AMSmath]
-alignedat              [AMSmath]
-array
-
-Bmatrix
-bmatrix
-
-cases
-
-eqnarray
-eqnarray*
-equation
-equation*
-
-gather                 [AMSmath]
-gather*                [AMSmath]
-gathered               [AMSmath]
-
-matrix
-multline               [AMSmath]
-multline*              [AMSmath]
-
-pmatrix
-
-smallmatrix             AMSmath
-split                  [AMSmath]
-subarray                AMSmath
-
-Vmatrix
-vmatrix
-
-
-
-
-
- - -
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/docs/html/typeset.html b/docs/html/typeset.html deleted file mode 100644 index 52b266789..000000000 --- a/docs/html/typeset.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - Modifying Math on the Page — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Modifying Math on the Page

-

If you are writing a dynamic web page where content containing -mathematics may appear after MathJax has already typeset the rest of -the page, then you will need to tell MathJax to look for mathematics -in the page again when that new content is produced. To do that, you -need to use the MathJax.Hub.Typeset() method. This will cause -the preprocessors (if any were loaded) to run over the page again, and -then MathJax will look for unprocessed mathematics on the page and -typeset it, leaving unchanged any math that has already been typeset.

-

You should not simply call this method directly, however. Because -MathJax operates asynchonously (see Synchronizing with MathJax for details), you need to be sure that -your call to MathJax.Hub.Typeset() is synchronized with the -other actions that MathJax is taking. For example, it may already be -typesetting portions of the page, or it may be waiting for an output -jax to load, etc., and so you need to queue the typeset action to be -performed after MathJax has finished whatever else it may be doing. -That may be immediately, but it may not, and there is no way to tell.

-

To queue the typeset action, use the command

-
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
-
-
-

This will cause MathJax to typeset the page when it is next able to do -so. It guarantees that the typesetting will synchronize properly -with the loading of jax, extensions, fonts, stylesheets, and other -asynchronous activity, and is the only truly safe way to ask MathJax -to process additional material.

-

The MathJax.Hub.Typeset() command also accepts a parameter -that is a DOM element whose content is to be typeset. That could be -a paragraph, or a <div> element, or even a MathJax math -<script> tag. It could also be the DOM id of such an object, in -which case, MathJax will look up the DOM element for you. So

-
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathExample"]);
-
-
-

would typeset the mathematics contained in the element whose id is -MathExample. This is equivalent to

-
var math = document.getElementById("MathExample");
-MathJax.Hub.Queue(["Typeset",MathJax.Hub,math]);
-
-
-

If no element or element id is provided, the whole document is -typeset.

-

Note that the MathJax.Hub.Queue() method will return -immediately, regardless of whether the typesetting has taken place or -not, so you can not assume that the mathematics is visible after you -make this call. That means that things like the size of the container -for the mathematics may not yet reflect the size of the typeset -mathematics. If you need to perform actions that depend on the -mathematics being typeset, you should push those actions onto the -MathJax.Hub.queue as well.

-

This can be quite subtle, so you have to think carefully about the -structure of your code that works with the typeset mathematics. Also, -the things you push onto the queue should be Callback objects that -perform the actions you want when they are called, not the results -of calling the functions that do what you want.

-
-

Manipulating Individual Math Elements

-

If you are not changing a complete DOM structure, but simply want to -update the contents of a single mathematical equation, you do not need -to use innerHTML and MathJax.Hub.Typeset() to preprocess -and process an element’s new content. Instead, you can ask MathJax to -find the element jax for the math element on the page, and use its -methods to modify and update the mathematics that it displays.

-

For example, suppose you have the following HTML in your document

-
<div id="MathDiv">
-  The answer you provided is: \({}\).
-</div>
-
-
-

and MathJax has already preprocessed and typeset the mathematics -within the div. A student has typed something elsewhere on the page, -and you want to typeset their answer in the location of the -mathematics that is already there. You could replace the entire -contents of the MathDiv element and call -MathJax.Hub.Typeset() as described above, but there is a more -efficient approach, which is to ask MathJax for the element jax for -the mathematics, and call its method for replacing the formula shown -by that element. For example:

-
var math = MathJax.Hub.getAllJax("MathDiv")[0];
-MathJax.Hub.Queue(["Text",math,"x+1"]);
-
-
-

This looks up the list of math elements in the MathDiv element -(there is only one) and takes the first one (element 0) and stores it -in math. This is an element jax object (see the Element -Jax specification for details), which has a -Text() method that can be used to set the input text of the -math element, and retypeset it.

-

Again, since the typesetting should be synchronized with other actions -of MathJax, the call should be pushed onto the MathJax processing -queue using MathJax.Hub.Queue(), as shown above, rather than -called directly. The example above performs the equivalent of -math.Text("x+1") as soon as MathJax is able to do so. Any -additional actions that rely on the expression x+1 actually -showing on screen should also be pushed onto the queue so that they -will not occur before the math is typeset.

-

The actions you can perform on an element jax include:

-
-
-
-Text(newmath)
-

to set the math text of the element to newmath and typeset.

-
- -
-
-Rerender()
-

to remove the output and reproduce it again (for example, if -CSS has changed that would alter the spacing of the -mathematics). Note that the internal representation isn’t -regenerated; only the output is.

-
- -
-
-Reprocess()
-

to remove the output and then retranslate the input into the -internal MathML and rerender the output.

-
- -
-
-Remove()
-

to remove the output for this math element (but not -the original <script> tag).

-
- -
-
-needsUpdate()
-

to find out if the mathematics has changed so that its output -needs to be updated.

-
- -
-
-SourceElement()
-

to obtain a reference to the original -<script> object that is associated with this element jax.

-
- -
-

Note that once you have located an element jax, you can keep using it -and don’t have to look it up again. So for the example above, if the -student is going to be able to type several different answers that you -will want to typeset, you can look up the element jax once at the -beginning after MathJax has processed the page the first time, and -then use that result each time you adjust the mathematics to be -displayed.

-

To get the element jax the first time, you need to be sure that you -ask MathJax for it after MathJax has processed the page the first -time. This is another situation where you want to use the MathJax -queue. If your startup code performs the commands

-
var studentDisplay = null;
-MathJax.Hub.Queue(function () {
-  studentDisplay = MathJax.Hub.getAllJax("MathDiv")[0];
-});
-
-
-

then you can use

-
MathJax.Hub.Queue(["Text",studentDisplay,studentAnswer])
-
-
-

to change the student’s answer to be the typeset version of whatever -is in the studentAnswer variable.

-

Here is a complete example that illustrates this approach. Note, -however, that Internet Explorer does not fire the onchange event -when you press RETURN, so this example does not work as expected in -IE. A more full-featured version that addresses this problem is -available in test/sample-dynamic.html.

-
<html>
-<head>
-<title>MathJax Dynamic Math Test Page</title>
-
-<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    tex2jax: {
-      inlineMath: [["$","$"],["\\(","\\)"]]
-    }
-  });
-</script>
-<script type="text/javascript"
-  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full">
-</script>
-
-</head>
-<body>
-
-<script>
-  //
-  //  Use a closure to hide the local variables from the
-  //  global namespace
-  //
-  (function () {
-    var QUEUE = MathJax.Hub.queue;  // shorthand for the queue
-    var math = null;                // the element jax for the math output.
-
-    //
-    //  Get the element jax when MathJax has produced it.
-    //
-    QUEUE.Push(function () {
-      math = MathJax.Hub.getAllJax("MathOutput")[0];
-    });
-
-    //
-    //  The onchange event handler that typesets the
-    //  math entered by the user
-    //
-    window.UpdateMath = function (TeX) {
-      QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]);
-    }
-  })();
-</script>
-
-Type some TeX code:
-<input id="MathInput" size="50" onchange="UpdateMath(this.value)" />
-<p>
-
-<div id="MathOutput">
-You typed: ${}$
-</div>
-
-</body>
-</html>
-
-
-

There are a number of additional example pages at test/examples.html that -illustrate how to call MathJax dynamically or perform other actions -with MathJax.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

Loading MathJax Dynamically

-

Next topic

-

The MathJax API

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/upgrade.html b/docs/html/upgrade.html deleted file mode 100644 index 95157c87b..000000000 --- a/docs/html/upgrade.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - - Migrating from MathJax v1.0 to v1.1 — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Migrating from MathJax v1.0 to v1.1

-

MathJax v1.1 fixes a number of bugs in v1.0, and improves support for -new versions of browsers and mobile devices. It includes changes to -increase its performance, and to make it more compliant with HTML5. It -has more flexible configuration options, and the ability to load -configuration files that combine multiple files into a single one to -increase loading speed when MathJax starts up. Finally, MathJax.org now -offers MathJax as a web service through a distributed “cloud” server.

-

This document describes the changes you may need to make to your MathJax -configurations in order to take advantage of these improvements.

-
-

Configuration Changes

-

The main changes that you will see as a page author are in the way that -MathJax can be loaded and configured. If you have been using in-line -configuration by putting a MathJax.Hub.Config() call in the body of -the <script> tag that loads MathJax, then your site should work -unchanged with version 1.1 of MathJax. You may wish to consider moving to -the new HTML5-compliant method of configuring MathJax, however, which uses -a separate <script> tag to specify the configuration. That tag should -come before the one that loads Mathjax.js, and should have -type="text/x-mathjax-config" rather than type="text/javascript". -For example,

-
<script type="text/javascript" src="/MathJax/MathJax.js">
-  MathJax.Hub.Config({
-    jax: ["input/TeX","output/HTML-CSS"],
-    extensions: ["tex2jax.js"]
-  });
-</script>
-
-
-

would become

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    jax: ["input/TeX","output/HTML-CSS"],
-    extensions: ["tex2jax.js"]
-  });
-</script>
-<script type="text/javascript" src="/MathJax/MathJax.js"></script>
-
-
-

instead. This will make sure your pages pass HTML5 validation. Be sure -that you put the configuration block before the script that loads -MathJax. See Loading and Configuring MathJax for more -details.

-

If your page simply loads MathJax.js and relies on -config/MathJax.js, then you will need to modify your <script> tag -in order to use MathJax v1.1. This is because MathJax no longer loads a -default configuration file; you are required to explicitly specify the -configuration file if you use one. Furthermore, the name of the -config/MathJax.js file was a source of confusion, so it has been -renamed config/default.js instead. Thus, if you used

-
<script type="text/javascript" src="/MathJax/MathJax.js"></script>
-
-
-

in the past, you should replace it with

-
<script type="text/javascript" src="/MathJax/MathJax.js?config=default"></script>
-
-
-

instead. If you don’t do this, you will receive a warning message that -directs you to a page that explains how to update your script tags to use -the new configuration format.

-
-
-

Combined Configurations

-

New with version 1.1 is the ability to combine several files into a single -configuration file, and to load that via the same script that loads -MathJax. This should make configuring MathJax easier, and also helps to -speed up the initial loading of MathJax’s components, since only one file -needs to be downloaded.

-

MathJax comes with four pre-built configurations, and our hope is that one -of these will suit your needs. They are described in more detail in the -Using a Configuration File section. To load one, -add ?config=filename (where filename is the name of the -configuration file without the .js) to the URL that loads -MathJax.js. For example

-
<script type="text/javascript" src="/MathJax/MathJax.js">
-  MathJax.Hub.Config({
-    jax: ["input/TeX","output/HTML-CSS"],
-    extensions: ["tex2jax.js","AMSmath.js","AMSsymbols.js"]
-  });
-</script>
-
-
-

could be replaced by the single line

-
<script type="text/javascript" src="/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
-
-
-

In this way, you don’t have to include the in-line configuration, and all -the needed files will be downloaded when MathJax starts up. For complete -details about the contents of the combined configuration files, see the -Common Configurations section.

-

If you want to use a pre-defined configuration file, but want to modify some -of the configuration parameters, you can use both a -text/x-mathjax-config block and a config=filename parameter in -combination. For example,

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    tex2jax: {
-      inlineMath: [ ['$','$'], ['\\(','\\)'] ],
-      processEscapes: true
-    }
-  });
-</script>
-<script type="text/javascript" src="/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
-
-
-

would load the TeX-AMS_HTML configuration file, but would reconfigure -the inline math delimiters to include $...$ in addition to -\(...\), and would set the processEscapes parameter to true.

-
-
-

Loading MathJax from the CDN

-

The MathJax installation is fairly substantial (due to the large number of -images needed for the image fonts), and so you may not want to (or be able -to) store MathJax on your own server. Keeping MathJax up to date can also -be a maintenance problem, and you might prefer to let others handle that -for you. In either case, using the MathJax distributed network service may be -the best way for you to obtain MathJax. That way you can be sure you are -using an up-to-date version of MathJax, and that the server will be fast -and reliable.

-

To use the MathJax CDN service, simply load MathJax as follows:

-
<script type="text/javascript"
-   src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
-</scrip>
-
-
-

Of course, you can load any configuration file that you wish, or use a -text/x=mathajx-config block to configure MathJax in-line. -More details are available, if you need them.

-

The use of cdn.mathjax.org is governed by its terms of service, so be -sure to read that before linking to the MathJax CDN server.

-
-
-

Change in default TeX delimiters

-

In addition to the fact that MathJax v1.1 no longer loads a default -configuration file, there is a second configuration change that could -affect your pages. The config/MathJax.js file properly configured the -tex2jax preprocessor to use only \(...\) and not $...$ for in-line -math delimiters, but the tex2jax preprocessor itself incorrectly -defaulted to including $...$ as in-line math delimiters. The result -was that if you used in-line configuration to specify the tex2jax -preprocessor, single-dollar delimiters were enabled by default, while if -you used file-based configuration, they weren’t.

-

This inconsistency was an error, and the correct behavior was supposed to -have the single-dollar delimiters disabled in both cases. This is now -true in v1.1 of MathJax. This means that if you used in-line -configuration to specify the tex2jax preprocessor, you will need to -change your configuration to explicitly enable the single-dollar -delimiters if you want to use them.

-

For example, if you had

-
<script type="text/javascript" src="/MathJax/MathJax.js">
-  MathJax.Hub.Config({
-    jax: ["input/TeX","output/HTML-CSS"],
-    extensions: ["tex2jax.js"]
-  });
-</script>
-
-
-

and you want to use single-dollar delimiters for in-line math, then you -should replace this with

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    jax: ["input/TeX","output/HTML-CSS"],
-    extensions: ["tex2jax.js"],
-    tex2jax: {
-      inlineMath: [ ['$','$'], ['\\(','\\)'] ],
-      processEscapes: true
-    }
-  });
-</script>
-<script type="text/javascript" src="/MathJax/MathJax.js"></script>
-
-
-

The same technique can be used in conjunction with a combined -configuration file. For example

-
<script type="text/x-mathjax-config">
-  MathJax.Hub.Config({
-    tex2jax: {
-      inlineMath: [ ['$','$'], ['\\(','\\)'] ],
-      processEscapes: true
-    }
-  });
-</script>
-<script type="text/javascript" src="/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
-
-
-

will load the pre-defined TeX-AMS_HTML configuration, but will modify -the settings to allow $...$ delimiters, and to process \$ to -produce dollar signs within the text of the page.

-
-
-

New Distribution Location

-

Version 1.0 of MathJax was distributed through SourceForge, but the -development of MathJax has switched to GitHub, which is now the primary location -for MathJax source code and distributions. The SourceForge repository will -no longer be actively maintained (and hasn’t been since November 2010), and -so you will not be able to obtain updates through svn if you checked -out MathJax from there.

-

You may be able to switch to using the MathJax CDN (see above) rather than -hosting your own copy of MathJax, and avoid the problem of updates all -together. If you must install your own copy, however, you should follow -the instructions at Installing and Testing MathJax, -using either git or svn as described to obtain your copy from -GitHub. This will allow you to keep your copy of MathJax up to date as -development continues.

-

We apologize for the inconvenience of having to switch distributions, but -the git-to-svn bridge we tried to implement to keep both copies in synch -turned out to be unreliable, and so the SourceForge distribution was -retired in favor of the GitHub site.

-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

What’s New in MathJax v1.1

-

Next topic

-

Converting to MathJax from jsMath

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/whats-new-1.1.html b/docs/html/whats-new-1.1.html deleted file mode 100644 index 1d366f8e7..000000000 --- a/docs/html/whats-new-1.1.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - What’s New in MathJax v1.1 — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

What’s New in MathJax v1.1

-

MathJax version 1.1 includes a number of important improvements and -enhancements over version 1.0. We have worked hard to fix bugs, improve -support for browsers and mobile devices, process TeX and MathML better, and -increase MathJax’s performance.

-

In addition to these changes, MathJax.org now offers MathJax as a network -service. Instead of having to install MathJax on your own server, you can -link to our content delivery network (CDN) to get fast access to -up-to-date and past versions of MathJax. See Loading MathJax from -the CDN for more details.

-

The following sections outline the changes in v1.1:

-
-

Optimization

-
    -
  • Combined configuration files that load all the needed files in one piece -rather than loading them individually. This simplifies configuration -and speeds up typesetting of the mathematics on the page.
  • -
  • Improved responsiveness to mouse events during typesetting.
  • -
  • Parallel downloading of files needed by MathJax, for faster startup -times.
  • -
  • Shorter timeout for web fonts, so if they can’t be downloaded, you don’t -have to wait so long.
  • -
  • Rollover to image fonts if a web font fails to load (so you don’t have -to wait for every font to fail.
  • -
  • The MathJax files are now packed only with yuicompressor rather than a -custom compressor. The CDN serves gzipped versions, which end up being -smaller than the gzipped custom-packed files.
  • -
  • Improved rendering speed in IE by removing position:relative from -the style for mathematics.
  • -
  • Improved rendering speed for most browsers by isolating the mathematics -from the page during typesetting (avoids full page reflows).
  • -
-
-
-

Enhancements

-
    -
  • Allow the input and output jax configuration blocks to specify extensions -to be loaded when the jax is loaded (this avoids needing to load them up -front, so they don’t have to be loaded on pages that don’t include -mathematics, for example).
  • -
  • Better handling of background color from style attributes.
  • -
  • Ability to pass configuration parameters via script URL.
  • -
  • Support HTML5 compliant configuration syntax.
  • -
  • Switch the Git repository from storing the fonts in fonts.zip to -storing the fonts/ directory directly.
  • -
  • Improved About box.
  • -
  • Added a minimum scaling factor (so math won’t get too small).
  • -
-
-
-

TeX Support

-
    -
  • Added support for \href, \style, \class, \cssId.
  • -
  • Avoid recursive macro definitions and other resource consumption possibilities.
  • -
  • Fix for \underline bug.
  • -
  • Fix for bug with \fbox.
  • -
  • Fix height problem with \raise and \lower.
  • -
  • Fix problem with \over used inside array entries.
  • -
  • Fix problem with nesting of math delimiters inside text-mode material.
  • -
  • Fix single digit super- and subscripts followed by punctuation.
  • -
  • Make sure movablelimits is off for \underline and related macros.
  • -
  • Fix problem with dimensions given with pc units.
  • -
-
-
-

MathML Support

-
    -
  • Fix &lt; and &amp; being translated too early.
  • -
  • Handle self-closing tags in HTML files better.
  • -
  • Combine adjacent relational operators in <mo> tags.
  • -
  • Fix entity name problems.
  • -
  • Better support for MathML namespaces.
  • -
  • Properly handle comments within MathML in IE.
  • -
  • Properly consider <mspace> and <mtext> as space-like.
  • -
  • Improved support for <maction> with embellished operators.
  • -
-
-
-

Other Bug Fixes

-
    -
  • Fixed CSS bleed through with zoom and other situations.
  • -
  • Fixed problems with showMathMenuMSIE when set to false.
  • -
  • Replaced illegal prefix characters in cookie name.
  • -
  • Improved placement of surd for square roots and n-th roots.
  • -
  • Fixed layer obscuring math from MathPlayer for screen readers.
  • -
  • Newlines in CDATA comments are now handled properly.
  • -
  • Resolved conflict between jsMath2jax and tex2jax both processing the -same equation.
  • -
  • Fixed problem with class="tex2jax_ignore" affecting the processing of -sibling elements.
  • -
-
-
-

Browser Support

-

Android

-
    -
  • Added detection and configuration for Android browser.
  • -
  • Allow use of OTF web fonts in Android 2.2.
  • -
-

Blackberry

-
    -
  • MathJax now works with OS version 6.
  • -
-

Chrome

-
    -
  • Use OTF web fonts rather than SVG fonts for version 4 and above.
  • -
-

Firefox

-
    -
  • Added Firefox 4 detection and configuration.
  • -
  • Fix for extra line-break bug when displayed equations are in -preformatted text.
  • -
  • Updated fonts so that FF 3.6.13 and above can read them.
  • -
-

Internet Explorer

-
    -
  • Changes for compatibility with IE9.
  • -
  • Fix for IE8 incorrectly parsing MathML.
  • -
  • Fix for IE8 namespace problem.
  • -
  • Fix for null parentNode problem.
  • -
  • Fix for outerHTML not quoting values of attributes.
  • -
-

iPhone/iPad

-
    -
  • Added support for OTF web fonts in iOS4.2.
  • -
-

Nokia

-
    -
  • MathJax now works with Symbian3.
  • -
-

Opera

-
    -
  • Prevent Opera from using STIX fonts unless explicitly requested via the -font menu (since Opera can’t display many of the characters).
  • -
  • Fixed bad em-size detection in 10.61.
  • -
  • Fixed a problem with the About dialog in Opera 11.
  • -
-

Safari

-
    -
  • Use OTF web fonts for Safari/PC.
  • -
-

WebKit

-
    -
  • Better version detection.
  • -
-
-
- - -
-
-
-
-
-

Table Of Contents

- - -

Previous topic

-

What’s New in MathJax v2.0

-

Next topic

-

Migrating from MathJax v1.0 to v1.1

- - -
-
-
-
- - - - - \ No newline at end of file diff --git a/docs/html/whats-new-2.0.html b/docs/html/whats-new-2.0.html deleted file mode 100644 index 7efd2dfc1..000000000 --- a/docs/html/whats-new-2.0.html +++ /dev/null @@ -1,670 +0,0 @@ - - - - - - - - What’s New in MathJax v2.0 — MathJax v2.0 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

What’s New in MathJax v2.0

-

MathJax version 2.0 includes many new and improved features, including -much better speeds in Internet Explorer, a new AsciiMath input -processor, a new SVG output processor, support for additional -LaTeX commands, and many bug fixes, to name just a few of the changes.

-
-

Major speed improvement for HTML-CSS output, particularly in IE

-

The HTML-CSS output processing was redesigned to avoid the page -reflows that were the main source of the speed problem in Internet -Explorer 8 and 9. For test pages having between 20 and 50 typeset -expressions, we see an 80% reduction in output processing time for -IE8, a 50% reduction for IE9, and between 15% and 25% reduction for -most other browsers over the corresponding v1.1a times. Since the -processing time in v1.1a grows non-linearly in IE, you should see even -larger savings for pages with more equations when using v2.0. Forcing -IE7 emulation mode is no longer necessary (and indeed is no longer -recommended).

-
-
-

Reduced flickering during typsetting

-

In the past, each expression was displayed as soon as it was typeset, -which caused a lot of visual flickering as MathJax processed the page. -In v2.0, the output is processed in blocks so that typeset expressions -are revealed in groups. This reduces the visual distraction, and also -speeds up the processing. The number of equations in a block can be -controlled through the EqnChunk parameter in the HTML-CSS or SVG -block of your configuration. See the configuration options for -HTML-CSS and configuration options for SVG pages for details.

-

If the page URL includes a hash reference (a link to a particular -location within the page), MathJax v2.0 will jump to that location -after the page has finished typsetting. (Since the size of the page -may have changed due to the mathematical typsetting, that location may -no longer be visible on screen, so MathJax moves there when it is done -with the initial typesetting.) You can control this behavior with the -positionToHash parameter in the main section of your -configuration. See the core configuration options page for details.

-
-
-

Automatic equation numbering of TeX formulas

-

The TeX input jax now can be configured to add equation numbers -(though the default is not to number equations so that existing pages -will not change their appearance). This is controlled through the -equationNumbers section of the TeX block of your configuration -(see the equation numbering section for -details). You can request that the numbering follow the AMS-style -numbering of environments, or you can request that every displayed -equation be numbered. There are now \label, \ref, and -\eqref commands to make it easier to link to particular equations -within the document.

-
-
-

Automatic line breaking of long displayed equations

-

MathJax now implements the MathML3 specification for automatic line -breaking of displayed equations in its HTML-CSS output. This is -disabled by default, but can be enabled via the linebreaks section -of the HTML-CSS or SVG block of your configuration (see the -automatic line breaking section for -details). Note that automatic line breaking only applies to displayed -equations, not in-line equations, unless they are themselves longer -than a line. The algorithm uses the nesting depth, the type of -operator, the size of spaces, and other factors to decide on the -breakpoints, but it does not know the meaning of the mathematics, and -may not choose the optimal breakpoints. We will continue to work on -the algorithm as we gain information from its actual use in the field.

-
-
-

New AsciiMath input jax and SVG output jax

-

MathJax currently processes math in either TeX and -LaTeX format, or MathML notation; version 2.0 augments -that to include AsciiMath notation (see the ASCIIMathML -home page -for details on this format). This is a notation that is easier for -students to use than TeX, and has been requested by the user -community. See the AsciiMath support page -for details.

-

In addition to the HTML-CSS and Native MathML output available in -v1.1, MathJax v2.0 includes an SVG-based output jax. This should -prove to be more reliable than the HTML-CSS output, as it avoids some -CSS, web-font, and printing issues that the HTML-CSS output suffers -from, and it currently has no browser-dependent code. The SVG mode -even works in some ebook readers (like Apple iBooks and Calibre). See -the output formats documentation for details.

-
-
-

New combined configuration files

-

Pre-defined configuration files that include the AsciiMath and SVG -processors are now available with MathJax v2.0. These include -AM_HTMLorMML, TeX-AMS-MML_SVG, and TeX-MML-AM_HTMLorMML. -See the common configurations section for details.

-
-
-

MathJax contextual menu now available on mobile devices

-

MathJax v2.0 provides access to its contextual menu in mobile devices -that are based on the WebKit (Safari) and Gecko (Firefox) engines. -For Mobile Firefox, the menu is accessed by a tap-and-hold on any -expression rendered by MathJax (this is Mobile Firefox’s standard -method of triggering a contextual menu). In Mobile Safari, use a -double-tap-and-hold (you may need to zoom in a bit to be able to -accomplish this). This is the first step toward providing a better -interface for mobile devices.

-
-
-

Improved support for screen readers

-

Some issues surrounding the use of screen readers and their -interaction with MathPlayer have been resolved in MathJax v2.0. In -particular, there are additional menu items that allow the user finer -control over some aspects of MathJax’s interface that were interfering -with some screen readers’ ability to properly identify the -mathematics. Several stability issues with MathPlayer have also been -addressed. In Internet Explorer when MathPlayer is installed, there -is now a new contextual menu item to allow you to specify what events -are handled by MathJax and what should be handled by MathPlayer. This -gives you finer control over MathPlayer’s interaction with some screen -readers.

-
-
-

Many new TeX additions and enhancements

-
    -
  • New mhchem chemistry extension (adds \ce, \cf, and \cee macros)
  • -
  • New cancel extension (adds \cancel, \bcancel, \xcancel, and \cancelto macros)
  • -
  • New extpfeil extension (adds more stretchy arrows)
  • -
  • New color extension (makes \color work as a switch, as in LaTeX). -Adds \definecolor, other color models, LaTeX named colors, -\colorbox, \fcolorbox, etc.
  • -
  • New begingroup extension to allow macro definitions to be -localized. Adds \begingroup and \endgroup for isolating macro -declarations, and defines \let, \renewenvironment, \global, and -\gdef.
  • -
  • New enclose extension to give TeX access to <menclose> elements. -Adds \enclose{type}[attributes]{math} macro.
  • -
  • New action extension to give TeX access to <maction> elements. -Adds \mathtip{math}{tip}, \texttip{math}{tip}, and -\toggle{math1}{math2}...\endtoggle macros.
  • -
  • New \mmToken{type}[attributes]{text} macro for producing <mo>, -<mi>, <mtext>, and other token MathML elements directly.
  • -
  • New \bbox[color;attributes]{math} macro to add background color, -padding, borders, etc.
  • -
  • New \middle macro for stretchy delimiters between \left and \right.
  • -
  • New \label, \ref, and \eqref macros for numbered equations.
  • -
  • Better implementation of \not so it produces proper MathML when possible.
  • -
  • Better implementation of \dots that selects \ldots or \cdots -depending on the context.
  • -
  • Better implementation of \cases that automatically uses \text on -the second entry in each row.
  • -
  • Safer implementation of \require that only allows loading from -extensions directory.
  • -
  • Allow \newcomand to provide a default parameter.
  • -
  • Allow \\ to take an optional argument that specifies additional -space between lines.
  • -
  • Allow \\ to be used anywhere (to force a line break), not just in -arrays.
  • -
  • Allow optional alignment parameter for array, aligned, and gathered -environments.
  • -
-

See the TeX support page for details on these -extensions and macros.

-
-
-

Font enhancements

-
    -
  • Work around for the OS X Lion STIX font problem.
  • -
  • Support for STIX-1.1 fonts (detection of which version you have, -and use data appropriate for that).
  • -
  • New WOFF versions of the web fonts (smaller, so faster to -download).
  • -
  • Data for more stretchy characters in HTML-CSS output.
  • -
  • Add support for Unicode planes 1 through 10 (not just the Math -Alphabet block) in HTML-CSS output.
  • -
  • Increased timeout for web fonts (since it was switching to image -fonts too often, especially for mobile devices).
  • -
  • Only switch to image fonts if the first web font fails to load (if -we can access one, assume we can access them all).
  • -
  • Allow <mtext> elements to use the page font rather than MathJax -fonts (optionally). This is controlled by the mtextFontInerhit -configuration parameter for HTML-CSS and SVG output jax.
  • -
  • Provide better control over the font used for characters that are -not in the MathJax fonts.
  • -
  • Allow Firefox to use web-based fonts when a local URL uses MathJax -from the CDN (in the past it would force image fonts when that was -not necessary).
  • -
-
-
-

Interface improvements

-
    -
  • The MathJax contextual menu has been reorganized to make it easier -to get the source view, and to control the parameters for -MathPlayer in IE.
  • -
  • The MathJax contextual menu is available in mobile devices (see -description above).
  • -
  • Warning messages are issued if you switch renderers to one that is -inappropriate for your browser.
  • -
  • MathJax now starts processing the page on the DOMContentLoaded -event rather than the page onload event (this allows the -mathematics to appear sooner).
  • -
  • Native MathML output is now scaled to better match the surrounding -font (like it is for HTML-CSS output).
  • -
  • Better CSS styling for NativeMML output in Firefox in order to -handle \cal and other fonts.
  • -
  • MathML output now (optionally) includes class names to help mark -special situations generated by the TeX input jax. (This lets the -MathML from the Show Source menu item better reproduce the original -TeX output.)
  • -
  • MathJax now loads the menu and zoom code (if they haven’t been -loaded already) after the initial typesetting has occured so that -they will be available immediately when a user needs those -features, but do not delay the initial typesetting of the -mathematics.
  • -
  • For the tex2jax preprocessor, the processClass can now be -used to override the skipTags to force a tag that is usually -skipped to have its contents be processed.
  • -
  • The noErrors and noUndefined extensions can now be disabled via -a configuration option (since they are included in many of the -combined configuration files). See the noErrors and -noUndefined sections of the TeX support page for more information.
  • -
  • There is a new MathJax.Hub.setRenderer() function that can -be used to switch the current renderer. See the MathJax Hub -API documentation for details.
  • -
  • A user-defined macros is no longer overridden if an extension is -loaded that redefines that macro.
  • -
  • Improved web-font detection reliability.
  • -
-
-
-

Important changes from previous versions

-
    -
  • The default renderer for Firefox has been changed from NativeMML to -HTML-CSS (in those configurations that choose between the two). -The only browser that defaults to NativeMML is now IE with -MathPlayer installed. You can configure this to your liking using -the MMLorHTML configuration options.

    -
  • -
  • NativeMML output will now be selected in IE9 when MathPlayer is -present (since IE9 was released the same day as MathJax v1.1a, and -there had been problems with IE9 beta releases, we weren’t sure if -MathPlayer would work with the official release, and so did not -select NativeMML by default.)

    -
  • -
  • The performance improvements in IE8 and IE9 now make it unnecessary -to use a <meta> tag to force IE7 emulation mode. In fact IE9 in -IE9 standards mode now runs faster than IE9 in IE7 standards mode, -and IE8 in IE8 standards mode is comparable to IE8 in IE7 standards -mode. We now recommend that you use

    -
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    -
    -
    -

    to obtain the highest emulation mode available in IE, which -will be the fastest one for MathJax 2.0.

    -
  • -
  • The tex2jax preprocessor now balances braces when looking for the -closing math delimiter. That allows expressions like

    -
    $y = x^2 \hbox{ when $x > 2$}$
    -
    -
    -

    to be properly parsed as a single math expression rather than two -separate ones with unbalanced braces. The old behavior can be -obtained by setting balanceBraces to false in the tex2jax -block of your configuration. (See the tex2jax configuration -options for details.)

    -
  • -
  • If you are hosting your own copy of MathJax on your server, and -that copy is being used from pages in a different domain, you will -have set up the access control paramters for the font directory to -allow Firefox to access the font files properly. Since MathJax 2.0 -includes fonts in WOFF format, you will need to include woff in -you access control declaration for the fonts. E.g., use

    -
    <FilesMatch "\.(ttf|otf|eot|woff)$">
    -<IfModule mod_headers.c>
    -Header set Access-Control-Allow-Origin "*"
    -</IfModule>
    -</FilesMatch>
    -
    -

    in the .htaccess` file for the ``Mathjax/fonts directory if you -are using the Apache web server. See Notes about shared -installations for details.

    -
  • -
  • The \cases macro now properly places the second column in text -mode not math mode. In the past, one needed to use \text in -the second column to achieve the proper results; pages that did -this will still work properly in v2.0. Pages that took advantage -of the math mode in the second column will need to be adjusted.

    -
  • -
  • The \dots macro now produces \ldots or \cdots depending -on the context (in the past, \dots always produced \ldots).

    -
  • -
  • A one pixel padding has been added above and below HTML-CSS and SVG -output so that math on successive lines of a paragraph won’t bump -into each other.

    -
  • -
  • There is a new MathPlayer submenu of the Math Settings menu in -the MathJax contextual menu that allows the user to control what -events are passed on to MathPlayer. This allows better control for -those using assistive devices like screen readers. When menu -events are being passed on to MathPlayer, the MathJax menu can be -obtained by ALT-clicking on a typeset expression (so the user can -still access MathJax’s other features).

    -
  • -
  • In order to improve stability with IE when MathPlayer is installed, -MathJax now adds the namespace and object bindings that are needed -for MathPlayer at the time that Mathjax is first loaded, rather -than waiting for the NativeMML output jax to be loaded. Since -this is before the configuration information has been obtained, -this will happen regardless of whether the NativeMML output jax -is requested. This means that IE may ask the user to allow -MathPlayer to be used, and may show the MathPlayer splash dialog -even when MathPlayer is not in the end used by MathJax. Note that -this setup can only be performed if MathJax is loaded explicitly as -part of the initial web page; if it is injected into the page later -by adding a <script> tag to the page dynamically, then -MathPlayer will be set up when the NativeMML jax is loaded as in -the past, and some stability issues may occur if events are passed -to MathPlayer.

    -
  • -
  • The MathJax typesetting is now started on DOMContentLoaded -rather than at the page onload event, when possible, so that -means MathJax may start typesetting the page earlier than in the -past. This should speed up typesetting one pages with lots of -images or side-bar content, for example.

    -
  • -
  • MathJax now attempts to determine whether the page’s onload -event had already occurred, and if it has, it does not try to wait -for the DOMContentLoaded or onload event before doing its -initial typeset pass. This means that it is no longer necessary to -call MathJax.Hub.Startup.onload() by hand if you insert MathJax -into the page dynamically (e.g., from a GreaseMonkey script).

    -
  • -
  • If the page URL includes a hash reference (a link to a particular -location within the page), MathJax v2.0 will jump to that location -after the page has finished typsetting. Since the size of the page -may have changed due to the mathematical typsetting, that location -may no longer be visible on screen, so MathJax moves there when it -is done with the initial typesetting. You can control this -behavior with the positionToHash parameter in the main section -of your configuration (see core configuration options).

    -
  • -
  • In the event that MathJax is not able to load the configuration file -you have specified in the script tag that loads MathJax.js via -config=filename, it will no longer issue the warning message -about a missing configuration. The configuration process changed -in v1.1, and that message was to help page maintainers update their -configurations, but it turns out that for users with slow network -connections, MathJax could time out waiting for the configuration -file and would issue the warning message in that case, even though -the page included the proper configuration. That should no longer -occur in MathJax v2.0.

    -
  • -
-
-
-

Other enhancements

-
    -
  • Use prioritized lists of callbacks for StartupHooks, MessageHooks, -LoadHooks, PreProcessors, and pre- and post-filters on the input jax.
  • -
  • Updated operator dictionary to correspond to current W3C version.
  • -
  • Improved browser detection for Gecko and WebKit browsers.
  • -
  • Make prefilters and postfilters for all input jax, and make them into -hook lists rather than a single hook.
  • -
  • Use <mi> rather than <mo> for \sin, \cos, and other -such functions, for \mathop{\rm...} and \operatorname.
  • -
  • Add &ApplyFunction; after \mathop{} and other macros that are -functions (e.g., \sin).
  • -
  • The MathJax_Preview style has been moved from HTML-CSS/jax.js to -MathJax.js, since it is common to all output.
  • -
  • The autobold extension now uses \boldsymbol rather than -\bf so that it will affect more characters.
  • -
  • Make units of mu‘s be relative to the scriptlevel (as they -are supposed to be).
  • -
  • Reorganized the event-handling code to make it more modular and reduce -redundancy in the different output jax.
  • -
  • Modified CSS in NativeMML output for Firefox to use local copies of -the web fonts, if they are available.
  • -
  • Error messages now have the MathJax contextual menu.
  • -
  • Better handling of some characters not in the web fonts (remap to -locations where they exist, when possible).
  • -
  • Better choice of accent characters in some cases.
  • -
  • Better handling of pseudo-scripts (like primes).
  • -
  • Better sizing of characters introduced by \unicode{}, or -otherwise outside of the fonts known to MathJax.
  • -
  • Provide a new extension to handle tagged equations better in -HTML-CSS output when there are floating elements that might -reduce the area available to displayed equations. (See the -HTML-CSS extensions section of the output formats documentation for detais.)
  • -
  • Use a text font for \it rather than the math italics, so -spacing is better.
  • -
  • Handle italic correction better in HTML-CSS output
  • -
  • Handle href attributes better, especially when on <math> -elements.
  • -
  • Allow \sqrt\frac{}{} without producing an error.
  • -
-
-
-

Other bug fixes

-
    -
  • MathPlayer setup changed to prevent crashes.
  • -
  • Moved remapping of <mo> contents to the output jax so that the -original contents aren’t changed.
  • -
  • Don’t combine mathvariant with fontstyle or fontweight -(as per the MathML specification).
  • -
  • Isolate non-standard attributes on MathML elements so that they don’t -interfere with the inner workings of MathJax.
  • -
  • Properly handle width of border and padding in merrors in HTML-CSS -output.
  • -
  • Properly handle lower-case Greek better.
  • -
  • Process weight and style of unknown characters properly.
  • -
  • Fixed spacing problems with \cong in MathJax web fonts .
  • -
  • Choose better sizes for \widehat and \widetilde
  • -
  • Fixed problem with detecting em/ex sizes when uses in mobile devices -with small screen widths.
  • -
  • Fixed MathML output when dimensions of mu‘s are used in TeX input.
  • -
  • Better handling of table borders from TeX.
  • -
  • Fixed some problems with table widths and heights, and spacing.
  • -
  • Better handling of colored backgrounds in HTML-CSS output.
  • -
  • Handle border and padding CSS styles better in HTML-CSS output.
  • -
  • Fixed multline environment to put tags on bottom row when -TagSide is set to right.
  • -
  • Force reflow after equations are typeset so that some rendering -problems in tables are corrected in Firefox and WebKit browsers.
  • -
  • Fixed a number of bugs with the size of zoom boxes and the size of their -content.
  • -
  • Have equations with tags zoom into a full-width zoom box to -accommodate the tag.
  • -
  • Fixed positioning problem with zoom boxes in NativeMML mode.
  • -
  • Don’t allow mouse events on zoomed math.
  • -
  • Fixed MathJax.Hub.getJaxFor() and MathJax.Hub.isJax() to -properly handle elements that are part of an output jax’s output -(in particular, you can find the element jax from any DOM element -in the output).
  • -
  • Fixed a number of font anomalies (problems in the data files).
  • -
  • Fixed problem where <mspace> with a background color would not -always overlay previous items.
  • -
  • Fixed a problem with colored <mspace> elements being too tall in -IE/quirks mode.
  • -
  • Fixed problem where <mtable> with equalrows="true" would -not produce equal height rows.
  • -
  • Allow <mpadded> background color to be specified exactly (i.e., -without the 1px padding) when one of its dimensions is given -explicitly (or there is no content).
  • -
  • Avoiding flicker problem with hover zoom trigger in Firefox.
  • -
  • Fix \unicode bug with font names that include spaces.
  • -
  • Remove internal multiple spaces in token elements as per the MathML -specification.
  • -
  • Work around HTML5 removing namespaces, so that xmlns:xlink -becomes xlink with no namespace, which confuses the XML parsers.
  • -
  • Fix MathJax.Message.Set() and MathJax.Message.Clear() so -that a delay of 0 is properly handled.
  • -
  • Produce better MathML for \bmod, \mod, and \pmod.
  • -
  • Don’t allow Safari/Windows to use STIX fonts since it can’t access -characters in Plane1 (the mathematical alphabets).
  • -
  • Fix \thickapprox to use the correct glyph in HTML-CSS output -with MathJax web fonts.
  • -
  • Make style attributes work on <mstyle> elements.
  • -
  • Better handling of border and padding on MathML elements in -HTML-CSS output.
  • -
  • Fixed error with size of \: space.
  • -
  • Allow delimiter of . on \genfrac (it was accidentally rejected).
  • -
  • Handle AMSmath control sequences with stars better (\cs{*} no longer -counts as \cs*).
  • -
  • Fixed wrong character number in stretchy data for U+221A.
  • -
  • Fixed <annotation-xml> to use the proper scaling in HTML-CSS -output.
  • -
  • Fixed a problem with combining characters when they are used as -accents.
  • -
  • Fixed a problem in Firefox with \mathchoice when the contents have -negative width.
  • -
  • TeX input jax no longer incorrectly combines <mo> elements that have -different variants, styles, classes, or id’s.
  • -
  • Fixed the scriptlevel when <munderover> has base with -movablelimits="true" in non-display mode.
  • -
  • Fixed typo in implementation of SimpleSUPER.
  • -
  • Fixed typo in self-closing flag for <mprescript> tag.
  • -
  • Prevent infinite loop if one of the jax fails to load (due to failure -to compile or timeout waiting for it to load).
  • -
  • Fixed a whitespace issue in token elements with IE/quirks mode in -the MathML input jax.
  • -
  • Make sure height is above depth when making spaces and rules in -HTML-CSS and SVG output.
  • -
  • Fixed HTML-CSS tooltip to be work properly when a restart occurs -within the tooltip.
  • -
  • Fixed problem with size of colored backgrounds on <mo> in some -circumstances in HTML-CSS output.
  • -
  • Make \ulcorner, etc. use more approprate unicode positions, and remap -those positions to the locations in the MathJax web fonts.
  • -
-
-
-

Some technical changes

-
    -
  • Break the processing phase into two separate phases to do input -processing separately from output processing (they used to be -interleaved). This makes it easier to implement forward references -for the \ref macro.
  • -
  • Make Font Preference menu honor the imageFont setting.
  • -
  • Changed the name of the preview filter commands to previewFilter -in all preprocessors.
  • -
  • Make ^ and _ be stretchy even though that isn’t in the W3C -dictionary.
  • -
  • Fixed HTML-CSS output problem when a multi-character token element has -characters taken from multiple fonts.
  • -
  • Force message text to be black in FontWarnings and configuration -warnings.
  • -
  • Added Find() and IndexOf() commands to menus to locate menu items.
  • -
  • Added menu signals for post/unpost and activation of menu items.
  • -
  • Added signals for typesetting of unknown characters.
  • -
  • Added signals for zoom/unzoom.
  • -
  • Added More signals for error conditions.
  • -
  • Allow preferences to select MathML output for Safari with late enough -version.
  • -
  • Improved About MathJax box.
  • -
  • Have tex2jax handle empty delimiter arrays and don’t scan page if -there is nothing to look for.
  • -
  • Make delay following a processing message configurable and lengthen -it to make browser more responsive during typesetting.
  • -
  • Make thin rules be in pixels to try to improve results in IE -(disappearing division lines).
  • -
  • Mark all output elements as isMathJax, so it can be used to identify -what elements are part of mathematical output.
  • -
  • Force MathZoom and MathMenu to wait for the Begin Styles message -before inserting their styles so when they are included in the -combined files, the author can still configure them.
  • -
  • Add default id’s to the jax base object classes.
  • -
  • Mark top-level math element as having a texError when it is one (to -make it easier to recognize).
  • -
  • Have Update() method ask ElementJax to determine if it needs updating -(which in turn asks the associated input jax).
  • -
  • Make Remove() work for just clearing output (without detaching) if -desired.
  • -
  • Have ElementJax store input and output jax ID’s rather than pointers -(to help avoid circular references for cleanup purposes).
  • -
  • Move input/output jax and preprocessor registries from Hub.config to -Hub itself (they are not user configurable through Hub.Config, and so -even though they are configurations, they don’t belong there).
  • -
  • Make sure embelished large ops are type OP not ORD to get spacing -right.
  • -
  • Added MathJax.HTML.getScript() to get the contents of a script (needed -since it works differently in different browsers).
  • -
  • Move code that prevents numbers from being treated as a unit for -super- and subscripts to the super- and subscript routine in the -TeX input jax (prevents making changes to \text{}, -\hbox{}, \href{}, etc.).
  • -
  • Make mml2jax work better with IE namespaces (IE9 no longer seems to -list the xmlns entries on the <html> element).
  • -
-
-
- - -
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/docs/source/CSS-styles.rst b/docs/source/CSS-styles.rst deleted file mode 100644 index b7b8b0bbb..000000000 --- a/docs/source/CSS-styles.rst +++ /dev/null @@ -1,81 +0,0 @@ -.. _css-style-objects: - -***************** -CSS Style Objects -***************** - -Many MathJax components allow you to specify CSS styles that control -the look of the elements they create. These are described using `CSS -style objects`, which are JavaScript objects that represent standard -CSS declarations. The main CSS style object is a collection of -`name:value` pairs where the `name` is the CSS selector that is being -defined, and the `value` is an object that gives the style for that -selector. Most often, the selector will need to be enclosed in -quotation marks, as it will contain special characters, so you would -need to use ``"#myID"`` rather than just ``#myID`` and ``"ul li"`` -rather than just ``ul li``. - -The value used to define the CSS style can either be a string -containing the CSS definition, or a javascript object that is itself a -collection of `name:value` pairs, where the `name` is the attribute -being defined and `value` is the value that attribute should be given. -Note that, since this is a JavaScript object, the pairs are separated -by commas (not semi-colons) and the values are enclosed in quotation -marks. If the name contains dashes, it should be enclosed in -quotation marks as well. - -For example, ``jax/output/HTML-CSS/config.js`` includes the following -declaration: - -.. code-block:: javascript - - styles: { - - ".MathJax_Display": { - "text-align": "center", - margin: "1em 0em" - }, - - ".MathJax .merror": { - "background-color": "#FFFF88", - color: "#CC0000", - border: "1px solid #CC0000", - padding: "1px 3px", - "font-style": "normal", - "font-size": "90%" - } - - } - -This defines two CSS styles, one for the selector -``.MathJax_Display``, which specifies its text alignment and margin -settings, and a second for ``.MathJax .merror``, which specifies a -background color, foreground color, border, and so on. - -You can add as many such definitions to a ``styles`` object as you -wish. Note, however, that since this is a JavaScript object, the -selectors must be unique (e.g., you can't use two definitions for -``"img"``, for example, as only the last one would be saved). If you -need to use more than one entry for a single selector, you can add -comments like ``/* 1 */`` and ``/* 2 */`` to the selector to make them -unique. - -It is possible to include selectors like ``"@media print"``, in which -case the value is a CSS style object. For example: - -.. code-block:: javascript - - styles: { - "@media print": { - ".MathJax .merror": { - "background-color": "white", - border: 0 - } - } - } - -The various extensions and output processors include more examples of -CSS style objects, so see the code for those files for additional -samples. In particular, the ``extensions/MathMenu.js``, -``extensions/MathZoom.js``, ``extensions/FontWarnsing.js``, and -``jax/output/HTML-CSS/jax.js`` files include such definitions. diff --git a/docs/source/HTML-snippets.rst b/docs/source/HTML-snippets.rst deleted file mode 100644 index 5f8b9b07c..000000000 --- a/docs/source/HTML-snippets.rst +++ /dev/null @@ -1,83 +0,0 @@ -.. _html-snippets: - -************************ -Describing HTML snippets -************************ - -A number of MathJax configuration options allow you to specify an HTML -snippet using a JavaScript object. This lets you include HTML in your -configuration files even though they are not HTML files themselves. -The format is fairly simple, but flexible enough to let you represent -complicated HTML trees. - -An HTML snippet is an array consisting of a series of elements that format -the HTML tree. Those elements are one of two things: either a string, -which represents text to be included in the snippet, or an array, -which represents an HTML tag to be included. In the latter case, the -array consists of three items: a string that is the tag name (e.g., -"img"), an optional object that gives attributes for the tag (as -described below), and an optional HTML snippet array that gives the -contents of the tag. - -When attributes are provided, they are given as `name:value` pairs, -with the `name` giving the attribute name, and `value` giving its -value. For example - -.. code-block:: javascript - - [["img",{src:"/images/mypic.jpg"}]] - -represents an HTML snippet that includes one element: an ```` tag -with ``src`` set to ``/images/mypic.jpg``. That is, this is -equivalent to - -.. code-block:: html - - - -Note that the snippet has two sets of square brackets. The outermost -one is for the array that holds the snippet, and the innermost set is -because the first (and only) element in the snippet is a tag, not -text. Note that the code ``["img",{src:"/images/mypic.jpg"}]`` -is invalid as an HTML snippet. It would represent a snippet that -starts with "img" as text in the snippet (not a tag), but the second -item is neither a string nor an array, and so is illegal. This is a -common mistake that should be avoided. - -A more complex example is the following: - -.. code-block:: javascript - - [ - "Please read the ", - ["a",{href:"instructions.html"},["instructions"]], - " carefully before proceeding" - ] - -which is equivalent to - -.. code-block:: html - - please read the instructions carefully - before proceeding. - -A final example shows how to set style attributes on an object: - -.. code-block:: javascript - - [["span", - { - id:"mySpan", - style: {color:"red", "font-weight":"bold"} - }, - [" This is bold text shown in red "] - ]] - -which is equivalent to - -.. code-block:: html - - - This is bold text shown in red - - diff --git a/docs/source/README.txt b/docs/source/README.txt new file mode 100644 index 000000000..80f199ab9 --- /dev/null +++ b/docs/source/README.txt @@ -0,0 +1,11 @@ +The source files for the documentation are now kept in a separate +GitHub repository at + + https://github.com/mathjax/mathjax-docs + +The HTML versions are now available at + + http://mathjax.readthedocs.org/en/latest/ + +where it is possible for you to submit corrections and modifications +directly to the documentation on line. diff --git a/docs/source/_static/mathjax_mathml.user.js b/docs/source/_static/mathjax_mathml.user.js deleted file mode 100644 index 274db3f07..000000000 --- a/docs/source/_static/mathjax_mathml.user.js +++ /dev/null @@ -1,18 +0,0 @@ -// ==UserScript== -// @name MathJax MathML -// @namespace http://www.mathjax.org/ -// @description Insert MathJax into pages containing MathML -// @include * -// ==/UserScript== - -if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { - if ((document.getElementsByTagName("math").length > 0) || - (document.getElementsByTagNameNS == null ? false : - (document.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math").length > 0))) { - var script = document.createElement("script"); - script.type = "text/javascript"; - script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full"; - var config = 'MathJax.Hub.Startup.onload()'; - document.getElementsByTagName("head")[0].appendChild(script); - } -} diff --git a/docs/source/_static/mathjax_wikipedia.user.js b/docs/source/_static/mathjax_wikipedia.user.js deleted file mode 100644 index e23c4ae45..000000000 --- a/docs/source/_static/mathjax_wikipedia.user.js +++ /dev/null @@ -1,30 +0,0 @@ -// ==UserScript== -// @name MathJax in Wikipedia -// @namespace http://www.mathjax.org/ -// @description Insert MathJax into Wikipedia pages -// @include http://en.wikipedia.org/wiki/* -// ==/UserScript== - -if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { - // - // Replace the images with MathJax scripts of type math/tex - // - var images = document.getElementsByTagName('img'), count = 0; - for (var i = images.length - 1; i >= 0; i--) { - var img = images[i]; - if (img.className === "tex") { - var script = document.createElement("script"); script.type = "math/tex"; - if (window.opera) {script.innerHTML = img.alt} else {script.text = img.alt} - img.parentNode.replaceChild(script,img); count++; - } - } - if (count) { - // - // Load MathJax and have it process the page - // - var script = document.createElement("script"); - script.type = "text/javascript"; - script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full"; - document.getElementsByTagName("head")[0].appendChild(script); - } -} diff --git a/docs/source/api/ajax.rst b/docs/source/api/ajax.rst deleted file mode 100644 index 02cd883d4..000000000 --- a/docs/source/api/ajax.rst +++ /dev/null @@ -1,214 +0,0 @@ -.. _api-ajax: - -*********************** -The MathJax.Ajax Object -*********************** - -The `MathJax.Ajax` structure holds the data and functions for handling -loading of external modules. Modules are loaded only once, even if -called for in several places. The loading of files is asynchronous, -and so the code that requests an external module will continue to run -even when that module has not completed loading, so it is important to -be aware of the timing issues this may cause. Similarly, creating or -loading stylesheets is an asynchronous action. In particular, all -actions that rely on the file or stylesheet having been loaded must be -delayed until after the file has been downloaded completely. This is -the reason for the large number of routines that take callback -functions. - -Any operation that could cause the loading of a file or stylesheet -must be synchronized with the rest of the code via such callbacks. -Since processing any mathematics might cause files to be loaded (e.g., -little-used markup might be implemented in an extension that is loaded -only when that markup is used), any code that dynamically typesets -mathematics will need to be structured to use callbacks to guarantee -that the mathematics has been completely processed before the code -tries to use it. See the :ref:`Synchronizing with MathJax ` -documentation for details on how to do this properly. - - -Properties -========== - -.. describe:: timeout - - Number of milliseconds to wait for a file to load before - it is considered to have failed to load. - - *Default:* 15 seconds - -.. describe:: STATUS.OK - - The value used to indicate that a file load has occurred - successfully. - -.. describe:: STATUS.ERROR - - The value used to indicate that a file load has caused an error or - a timeout to occur. - -.. describe:: loaded - - An object containing the names of the files that have been loaded (or - requested) so far. ``MathJax.Ajax.loaded["file"]`` will be - non-``null`` when the file has been loaded, with the value being - the ``MathJax.Ajax.STATUS`` value of the load attempt. - -.. describe:: loading - - An object containing the files that are currently loading, the - callbacks that are to be run when they load or timeout, and - additional internal data. - -.. describe:: loadHooks - - An object containing the load hooks for the various files, set up by - the :meth:`LoadHook()` method, or by the - :meth:`MathJax.Hub.Register.LoadHook()` method. - - -Methods -======= - -.. method:: Require(file[,callback]) - - Loads the given file if it hasn't been already. The file must be a - JavaScript file or a CSS stylesheet; i.e., it must end in ``.js`` - or ``.css``. Alternatively, it can be an object with a single - `key:value` pair where the `key` is one of ``js`` or ``css`` and - the `value` is the file of that type to be loaded (this makes it - possible to have the file be created by a CGI script, for example, - or to use a ``data::`` URL). The file must be relative to the - MathJax home directory and can not contain ``../`` file path - components. - - When the file is completely loaded and run, the `callback`, if - provided, will be executed passing it the status of the file load. - If there was an error while loading the file, or if the file fails - to load within the time limit given by ``MathJax.Ajax.timout``, - the status will be ``MathJax.Ajax.STATUS.ERROR`` otherwise it - will be ``MathJax.Ajax.STATUS.OK``. If the file is already - loaded, the callback will be called immediately and the file will - not be loaded again. - - :Parameters: - - **file** --- name of the file to be loaded - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Load(file[,callback]) - - Used internally to load a given file without checking if it - already has been loaded, or where it is to be found. - - :Parameters: - - **file** --- name of the file to be loaded - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: loadComplete(file) - - Called from within the loaded files to inform MathJax that the - file has been completely loaded and initialized. The `file` - parameter is the name of the file that has been loaded. This - routine will cause any callback functions registered for the file - or included in the :meth:`MathJax.Ajax.Require()` calls to be - executed, passing them the status of the load - (``MathJax.Ajax.STATUS.OK`` or ``MathJax.Ajax.STATUS.ERROR``) as - their last parameter. - - :Parameters: - - **file** --- name of the file that has been loaded - :Returns: ``null`` - -.. method:: loadTimeout(file) - - Called when the timeout period is over and the file hasn't loaded. - This indicates an error condition, and the - :meth:`MathJax.Ajax.loadError()` method will be executed, then the - file's callback will be run with ``MathJax.Ajax.STATUS.ERROR`` as - its parameter. - - :Parameters: - - **file** --- name of the file that timed out - :Returns: ``null`` - -.. method:: loadError(file) - - The default error handler called when a file fails to load. It - puts a warning message into the MathJax message box on screen. - - :Parameters: - - **file** --- the name of the file that failed to load - :Returns: ``null`` - -.. method:: LoadHook(file,callback) - - Registers a callback to be executed when the given file is - loaded. The file load operation needs to be started when this - method is called, so it can be used to register a hook for a file - that may be loaded in the future. - - :Parameters: - - **file** --- the name of the file to wait for - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Preloading(file1[,file2...]) - - Used with combined configuration files to indicate what files are - in the configuration file. Marks the files as loading (since there - will never be an explicit :meth:`Load()` or :meth:`Require()` call for - them), so that load-hooks and other load-related events can be - properly processed when the :meth:`loadComplete()` occurs. - - :Parameters: - - **file1, file2, ...** --- the names of the files in the combined file - :Returns: ``null`` - -.. method:: Styles(styles[,callback]) - - Creates a stylesheet from the given style data. `styles` can - either be a string containing a stylesheet definition, or an - object containing a :ref:`CSS Style Object `. - For example: - - .. code-block:: javascript - - MathJax.Ajax.Styles("body {font-family: serif; font-style: italic}"); - - and - - .. code-block:: javascript - - MathJax.Ajax.Styles({ - body: { - "font-family": "serif", - "font-style": "italic" - } - }); - - both set the body font family and style. - - The callback routine is called when the stylesheet has been - created and is available for use. - - :Parameters: - - **styles** --- CSS style object for the styles to set - - **callback** --- the callback specification - :Returns: the callback object - - .. note:: - - Internet Explorer has a limit of 32 dynamically created - stylesheets, so it is best to combine your styles into one - large group rather than making several smaller calls. - -.. method:: fileURL(file) - - Returns a complete URL to a file (replacing ``[MathJax]`` with the - actual root URL location). - - :Parameters: - - **file** --- the file name possibly including ``[MathJax]`` - :Returns: the full URL for the file diff --git a/docs/source/api/callback.rst b/docs/source/api/callback.rst deleted file mode 100644 index 89681b9a3..000000000 --- a/docs/source/api/callback.rst +++ /dev/null @@ -1,304 +0,0 @@ -.. _api-callback: - -************************** -The MathJax.Callback Class -************************** - -The ``MathJax.Callback`` object is one of the key mechanisms used by -MathJax to synchronize its actions with those that occur -asynchronously, like loading files and stylesheets. A `Callback` -object is used to tie the execution of a function to the completion of -an asynchronous action. See :ref:`Synchronizing with MathJax -` for more details, and :ref:`Using Callbacks -` in particular for examples of how to specify and -use MathJax `Callback` objects. - - -Specifying a callback ---------------------- - -When a method includes a callback as one of its arguments, that -callback can be specified in a number of different ways, depending on -the functionality that is required of the callback. The easiest case -is to simply provide a function to be called, but it is also possible -to include data to pass to the function when it is executed, and even -the object that will be used as the javascript `this` object when the -function is called. - -Most functions that take callbacks as arguments accept a `callback -specification` rather than an actual callback object, though you can -use the :meth:`MathJax.Callback` function to convert a callback -specification into a Callback object if needed. - -A callback specification is any one of the following: - - .. describe:: fn - - A function that is to be called when the callback is executed. - No additional data is passed to it (other than what it is - called with at the time the callback is executed), and `this` - will be the window object. - - .. describe:: [fn] - - An array containing a function to be called when the callback - is executed (as above). - - .. describe:: [fn, data...] - - An array containing a function together with data to be passed - to that function when the callback is executed; `this` is still - the window object. For example, - - .. code-block:: javascript - - [function (x,y) {return x+y}, 2, 3] - - would specify a callback that would pass ``2`` and ``3`` to - the given function, and it would return their sum, ``5``, when - the callback is executed. - - .. describe:: [object, fn] - - An array containing an object to use as `this` and a function to - call for the callback. For example, - - .. code-block:: javascript - - [{x:'foo', y:'bar'}, function () {this.x}] - - would produce a callback that returns the string ``"foo"`` - when it is called. - - .. describe:: [object, fn, data...] - - Similar to the previous case, but with data that is passed to - the function as well. - - .. describe:: ["method", object] - - Here, `object` is an object that has a method called `method`, and - the callback will execute that method (with the object as - `this`) when it is called. For example, - - .. code-block:: javascript - - ["toString",[1,2,3,4]] - - would call the `toString` method on the array ``[1,2,3,4]`` when - the callback is called, returning ``1,2,3,4``. - - .. describe:: ["method", object, data...] - - Similar to the previous case, but with data that is passed to - the method. E.g., - - .. code-block:: javascript - - ["slice",[1,2,3,4],1,3] - - would perform the equivalent of ``[1,2,3,4].slice(1,3)``, - which returns the array ``[2,3]`` as a result. - - .. describe:: {hook: fn, data: [...], object: this} - - Here the data for the callback are given in an associative - array of `key:value` pairs. The value of `hook` is the - function to call, the value of `data` is an array of the - arguments to pass to the function, and the value of `object` - is the object to use as `this` in the function call. The - specification need not include all three `key:value` pairs; any - that are missing get default values (a function that does - nothing, an empty array, and the window object, respectively). - - .. describe:: "string" - - This specifies a callback where the string is executed via an - ``eval()`` statement. The code is run in the global context, - so any variables or functions created by the string become - part of the global namespace. The return value is the value of - the last statement executed in the string. - - -Executing a Callback Object -=========================== - -The `Callback` object is itself a function, and calling that function -executes the callback. You can pass the callback additional -parameters, just as you can any function, and these will be added to -the callback function's argument list following any data that was -supplied at the time the callback was created. For example - -.. code-block:: javascript - - var f = function (x,y) {return x + " and " +y} - var cb = MathJax.Callback([f, "foo"]); - var result = cb("bar"); // sets result to "foo and bar" - -Usually, the callback is not executed by the code that creates it (as -it is in the example above), but by some other code that runs at a -later time at the completion of some other activity (say the loading -of a file), or in response to a user action. For example: - -.. code-block:: javascript - - function f(x) {alert("x contains "+x)}; - function DelayedX(time) { - var x = "hi"; - setTimeout(MathJax.Callback([f, x], time)); - } - -The ``DelayedX`` function arranges for the function ``f`` to be called at -a later time, passing it the value of a local variable, ``x``. Normally, -this would require the use of a closure, but that is not needed when a -`MathJax.Callback` object is used. - - -Callback Object Properties --------------------------- - -.. describe:: hook - - The function to be called when the callback is executed. - -.. describe:: data - - An array containing the arguments to pass to the callback - function when it is executed. - -.. describe:: object - - The object to use as `this` during the call to the callback - function. - -.. describe:: called - - Set to ``true`` after the callback has been called, and undefined - otherwise. A callback will not be executed a second time unless - the callback's :meth:`reset()` method is called first, or its - ``autoReset`` property is set to ``true``. - -.. describe:: autoReset - - Set this to ``true`` if you want to be able to call the callback - more than once. (This is the case for signal listeners, for example). - -.. describe:: isCallback - - Always set to ``true`` (used to detect if an object is a callback - or not). - - -Callback Object Methods ------------------------ - -.. method:: reset() - - Clears the callback's `called` property. - - -MathJax.Callback Methods ------------------------- - -.. method:: Delay(time[, callback]) - - Waits for the specified time (given in milliseconds) and then - performs the callback. It returns the Callback object (or a blank - one if none was supplied). The returned callback structure has a - `timeout` property set to the result of the ``setTimeout()`` call - that was used to perform the wait so that you can cancel the wait, - if needed. Thus :meth:`MathJax.Callback.Delay()` can be used to - start a timeout delay that executes the callback if an action - doesn't occur within the given time (and if the action does occur, - the timeout can be canceled). Since - :meth:`MathJax.Callback.Delay()` returns a callback structure, it - can be used in a callback queue to insert a delay between queued - commands. - - :Parameters: - - **time** --- the amount of time to wait - - **callback** --- the callback specification - :Returns: the callback object - -.. method:: Queue([callback,...]) - - Creates a `MathJax.CallBack.Queue` object and pushes the given - callbacks into the queue. See :ref:`Using Queues ` - for more details about MathJax queues. - - :Parameters: - - **callback** --- one or more callback specifications - :Returns: the `Queue` object - -.. method:: Signal(name) - - Looks for a named signal, creates it if it doesn't already exist, - and returns the signal object. See - :ref:`Using Signals ` for more details. - - :Parameters: - - **name** --- name of the signal to get or create - :Returns: the `Signal` object - -.. method:: ExecuteHooks(hooks[, data[,reset]]) - - Calls each callback in the `hooks` array (or the single hook if it - is not an array), passing it the arguments stored in the data - array. If `reset` is ``true``, then the callback's - :meth:`reset()` method will be called before each hook is - executed. If any of the hooks returns a `Callback` object, then - it collects those callbacks and returns a new callback that will - execute when all the ones returned by the hooks have been - completed. Otherwise, :meth:`MathJax.Callback.ExecuteHooks()` - returns ``null``. - - :Parameters: - - **hooks** --- array of hooks to be called, or a hook - - **data** --- array of arguments to pass to each hook in turn - - **reset** --- ``true`` if the :meth:`reset()` method should be called - :Returns: callback that waits for all the hooks to complete, or ``null`` - -.. method:: Hooks(reset) - - Creates a prioritized list of hooks that are called in order based - on their priority (low priority numbers are handled first). This - is meant to replace :meth:`MathJax.Callback.ExecuteHooks()` and is - used internally for signal callbacks, pre- and post-filters, and - other lists of callbacks. - - :Parameters: - - **reset** --- ``true`` if callbacks can be called more than once - :Returns: the `Hooks` object - - The list has the following methods: - - .. method:: Add(hook[,priority]) - - Add a callback to the prioritized list. If ``priority`` is - not provided, the default is 10. The ``hook`` is a `Callback` - specification as described above. - - :Parameters: - - **hook** --- callback specification to add to the list - - **priority** --- priority of the hook in the list (default: 10) - :Returns: the callback object being added - - .. method:: Remove(hook) - :noindex: - - Remove a given hook (as returned from :meth:`Add()` above) - from the prioritized list. - - :Parameters: - - **hook** --- the callback to be removed - :Returns: ``null`` - - .. method:: Execute() - - Execute the list of callbacks, resetting them if requested. - If any of the hooks return callbacks, then ``Execute()`` - returns a callback that will be executed when they all have - completed. - - :Returns: a callback object or ``null`` - diff --git a/docs/source/api/elementjax.rst b/docs/source/api/elementjax.rst deleted file mode 100644 index a3a4159f7..000000000 --- a/docs/source/api/elementjax.rst +++ /dev/null @@ -1,145 +0,0 @@ -.. _api-element-jax: - -**************************** -The MathJax.ElementJax Class -**************************** - -The element jax is the bridge between the input and output jax, and -contains the data produced by the input jax needed by the output jax -to display the results. It is tied to the individual `` - -where ``path-to-MathJax`` is the URL to the MathJax directory on your -server or hard disk. If you are using MathJax from the CDN, you can -view the contents of `default.js -`_ as a -reference, but you will not be able to edit the CDN copy. It is -possible to use the CDN copy of MathJax with your own configuration -file, however; see :ref:`Using a Local Configuration File with the CDN -` for details. - -The remaining files in the `MathJax/config -`_ directory are -combined configuration files that include not just configuration -parameters but also the files that MathJax would need to load for -those configurations. This means MathJax will have to load fewer -files, and since each file access requires establishing connections -over the network, it can be faster to load one larger file than -several smaller ones. See :ref:`Loading and Configuring MathJax -` for more details about how to load configurations, and how -to modify the parameters for a configuration file. - -The following sections describe the contents of the combined configuration -files. Each comes in two flavors: a standard version and a "full" version. -The standard version simply defines the output processor(s) that are part -of the configuration, but doesn't load the code that implements the output -processor. The full version loads the complete output processors, so -everything that MathJax needs for the page should be loaded up front, and -there will be no delay once the page is ready to be processed. To obtain -the "full" version, add ``-full`` to the end of the configuration file -name. - - -The ``TeX-MML-AM_HTMLorMML`` configuration file -================================================ - -This configuration file is the most general of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX, MathML, and AsciiMath preprocessors and input processors, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, both -the native MathML and HTML-with-CSS output processor definitions, and -the MathMenu and MathZoom extensions. It is equivalent to the -following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX, MathML, and -AsciiMath input jax main code (not just the definition files), as well -as the `toMathML` extension, which is used by the Show Source option -in the MathJax contextual menu. The `-full` version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See the :ref:`asciimath2jax configuration ` section for -other configuration options for the ``asciimath2jax`` preprocessor, and the -:ref:`AsciiMath input jax configuration ` section for -options that control the AsciiMath input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``TeX-AMS-MML_HTMLorMML`` configuration file -================================================ - -This configuration file is the most commonly used of the pre-defined -configurations. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, both the native -MathML and HTML-with-CSS output processor definitions, and the -MathMenu and MathZoom extensions. It is equivalent to the following -configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -`toMathML` extension, which is used by the Show Source option in the -MathJax contextual menu. The ``-full`` version also loads both the -HTML-CSS and NativeMML output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``TeX-AMS_HTML`` configuration file -================================================ - -This configuration file is for sites that only use TeX format for their -mathematics, and that want the output to be as close to TeX output as -possible. This uses the HTML-CSS output jax (even when the user's browser -understands MathML). The user can still use the MathJax contextual menu -to select the NativeMML output jax if they desire. - -This file includes all the important MathJax components for TeX input and -output, including the `tex2jax` preprocessor and TeX input jax, the -AMSmath, AMSsymbols, noErrors, and noUndefined TeX extensions, the -HTML-with-CSS output processor definition, and the MathMenu and MathZoom -extensions. It is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - jax: ["input/TeX","output/HTML-CSS"], - extensions: ["tex2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the `toMathML` extension, which -is used by the Show Source option in the MathJax contextual menu. The ``-full`` -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See :ref:`MathJax Output Formats ` for more -information on the HTML-CSS output processor. - - -The ``MML_HTMLorMML`` configuration file -================================================ - -This configuration file is for sites that only use MathML format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire. - -This file includes all the important MathJax components for MathML input -and output, including the `mml2jax` preprocessor and MathML input jax, the -NativeMML and HTML-CSS output processor definition files, and the MathMenu -and MathZoom extensions. It is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["mml2jax.js","MathMenu.js","MathZoom.js"] - }); - -In addition, it loads the mml Element Jax and the MathML input jax main -code (not just the definition file), as well as the `toMathML` extension, -which is used by the Show Source option in the MathJax contextual menu. -The ``-full`` version also loads both the HTML-CSS and NativeMML output jax main -code files, plus the HTML-CSS `mtable` extension, which is normally loaded -on demand. - -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the NativeMML and HTML-CSS output processors. See the -:ref:`MMLorHTML configuration ` section for -details on the options that control the ``MMLorHTML`` configuration. - - -The ``AM_HTMLorMML`` configuration file -================================================ - -This configuration file is for sites that only use AsciiMath format for their -mathematics. It will use MathML output in browsers where that is -supported well, and HTML-CSS output otherwise. The user can still use the -MathJax contextual menu to select the other output format if they desire. - -This file includes all the important MathJax components for AsciiMath -input and output, including the `asciimath2jax` preprocessor and -AsciiMath input jax, the NativeMML and HTML-CSS output processor -definition files, and the MathMenu and MathZoom extensions. It is -equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML"], - extensions: ["asciimath2jax.js","MathMenu.js","MathZoom.js"] - }); - -In addition, it loads the mml Element Jax and the TeX input jax main code -(not just the definition file), as well as the `toMathML` extension, which -is used by the Show Source option in the MathJax contextual menu. The ``-full`` -version also loads the HTML-CSS output jax main code, plus the HTML-CSS -`mtable` extension, which is normally loaded on demand. - -See the :ref:`asciimath2jax configuration ` -section for other configuration options for the ``asciimath2jax`` -preprocessor, and the :ref:`AsciiMath input jax configuration -` section for options that control the AsciiMath -input processor. See :ref:`MathJax Output Formats ` -for more information on the HTML-CSS and NativeMML output processors. -See the :ref:`MMLorHTML configuration ` section -for details on the options that control the ``MMLorHTML`` -configuration. - - -The ``TeX-AMS-MML_SVG`` configuration file -================================================ - -This configuration file is the same as `TeX-AMS-MML_HTMLorMML` except -that it uses the SVG output renderer rather than the NativeMML or -HTML-CSS ones. It loads all the main MathJax components, including -the TeX and MathML preprocessors and input processors, the AMSmath, -AMSsymbols, noErrors, and noUndefined TeX extensions, the SVG output -processor definitions, and the MathMenu and MathZoom extensions. It -is equivalent to the following configuration: - -.. code-block:: javascript - - MathJax.Hub.Config({ - jax: ["input/TeX","input/MathML","output/SVG"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - } - }); - -In addition, it loads the mml Element Jax, the TeX and MathML input -jax main code (not just the definition files), as well as the -`toMathML` extension, which is used by the Show Source option in the -MathJax contextual menu. The ``-full`` version also loads both the -SVG output jax main code, plus the SVG `mtable` extension, which -is normally loaded on demand. - -See the :ref:`tex2jax configuration ` section for -other configuration options for the ``tex2jax`` preprocessor, and the -:ref:`TeX input jax configuration ` section for options -that control the TeX input processor. -See the :ref:`mml2jax configuration ` section for -other configuration options for the ``mml2jax`` preprocessor, and the -:ref:`MathML input jax configuration ` section for -options that control the MathML input processor. -See :ref:`MathJax Output Formats ` for more -information on the SVG output processor. - - -The ``Accessible`` configuration file -================================================ - -This configuration file is essentially the same as -``TeX-AMS-MML_HTMLorMML`` except that it includes options that are -designed for assistive technology, particularly for those with visual -challenged. *This file is deprecated* since the controls that make -MathJax work with screen readers are now available in the MathJax -contextual menu, and so there is no need to set them in the -configuration file any longer. So you can use any of the other -pre-defined configurations and readers with special needs should be -able to change the MathJax settings themselves to be appropriate for -their software. - -The Accessible configuration is equivalent to the following: - -.. code-block:: javascript - - MathJax.Hub.Config({ - config: ["MMLorHTML.js"], - jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML"], - extensions: ["tex2jax.js","mml2jax.js","MathMenu.js","MathZoom.js"], - TeX: { - extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] - }, - menuSettings: { - zoom: "Double-Click", - mpContext: true, - mpMouse: true - }, - errorSettings: { message: ["[Math Error]"] } - }); - -This turns off the MathJax contextual menu for IE when MathPlayer is -active, and passes mouse events on to MathPlayer to allow screen -readers full access to MathPlayer. It also sets the zoom trigger -to double-click, so that readers can see a larger version of the -mathematics but double-clicking on any equation. - -In addition, it loads the mml Element Jax, the TeX and MathML input jax -main code (not just the definition files), as well as the `toMathML` -extension, which is used by the Show Source option in the MathJax -contextual menu. The ``-full`` version also loads both the HTML-CSS and -NativeMML output jax main code, plus the HTML-CSS `mtable` extension, which -is normally loaded on demand. - diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst deleted file mode 100644 index 841c33aa6..000000000 --- a/docs/source/configuration.rst +++ /dev/null @@ -1,479 +0,0 @@ -.. _loading: - -******************************* -Loading and Configuring MathJax -******************************* - -You load MathJax into a web page by including its main JavaScript file -into the page. That is done via a `` - -where ``path-to-MathJax`` is replaced by the URL of the copy of MathJax -that you are loading. For example, if you are using the MathJax -distributed network service, the tag might be - -.. code-block:: html - - - -If you have installed MathJax yourself, ``path-to-MathJax`` will be the -location of MathJax on your server, or (if you are using MathJax locally -rather than through a server) the location of that directory on your hard -disk. For example, if the MathJax directory is at the top level of your -web server's directory hierarchy, you might use - -.. code-block:: html - - - -to load MathJax. - -If you install MathJax on a server in a domain that is different from the -one containing the page that will load MathJax, then there are issues -involved in doing so that you need to take into consideration. See the -:ref:`Notes About Shared Servers ` for more details. - -When you load MathJax, it is common to request a specific -configuration file as discussed in the section on :ref:`Using a -Configuration File ` below, and in more detail in the -:ref:`Common Configurations ` section. A -typical invocation of MathJax would be - -.. code-block:: html - - - -which loads MathJax with a configuration file that includes everything -you need in order to enter mathematics in either TeX, LaTeX, or MathML -notation, and produces output using MathML if the browser supports -that well enough, or HTML-with-CSS otherwise. If you **don't** load -an explicit configuration file, you will need to include an in-line -configuration block in order to tell MathJax how to read and display -the mathematics on your pages. See the section below on :ref:`Using -In-line Configuration Options ` for details. - -It is best to load MathJax in the document's ```` block, but it -is also possible to load MathJax into the ```` section, if -needed. If you do this, load it as early as possible, as -MathJax will begin to load its components as soon as it is included in -the page, and that will help speed up the processing of the -mathematics on your page. MathJax does expect there to be a -```` section to the document, however, so be sure there is one -if you are loading MathJax in the ````. - -It is also possible to load MathJax dynamically after the page has -been prepared, for example, via a `GreaseMonkey -`_ script, or using a specially prepared -`bookmarklet `_. This is an -advanced topic, however; see :ref:`Loading MathJax Dynamically -` for more details. - -.. _loading-CDN: - -Loading MathJax from the CDN -============================ - -MathJax is available as a web service from ``cdn.mathjax.org``, so you -can obtain MathJax from there without needing to install it on your own -server. The CDN is part of a distributed "cloud" network, so it is -handled by servers around the world. That means that you should get access -to a server geographically near you, for a fast, reliable connection. - -The CDN hosts the most current version of MathJax, as well as older -versions, so you can either link to a version that stays up-to-date as -MathJax is improved, or you can stay with one of the release versions so -that your pages always use the same version of MathJax. - -The URL that you use to obtain MathJax determines the version that you -get. The CDN has the following directory structure: - -.. code-block:: sh - - mathjax/ # project-name - 1.0-latest/ - 1.1-latest/ # the 1.1 release with any ciritical patches - 2.0-beta/ # temporary - 2.0-latest/ # the 2.0 release with any ciritical patches - ... - latest/ # the most current version (2.0-latest in this case) - -Each directory corresponds to an official MathJax release; however, -hotfixes (urgent bug fixes) will be applied in each release branch as -necessary, even if new releases are not prepared. In other words, -``1.1-latest`` will initially point to v1.1, but over time may be updated -with patches that would correspond to releases that might be numbers 1.1a, -1.1b, etc., even if such releases are not actually packaged for -separate distribution (they likely won't be). -We may occasionally introduce directories for betas, as indicated above, -but they will be temporary, and will be removed after the official -release. - -To load from a particular release, use the directory for that release. -For example, - -.. code-block:: html - - - -will load the stable v1.1 version, even after we release v2.0 or other later -versions, while - -.. code-block:: html - - - -will always be the most current stable release, so it will go from v1.1 to -v2.0 automatically when that is released. Note that all the versions -available on the CDN are stable versions; the development version is not -hosted on the CDN. (If you wish to use the development version of -MathJax, you will need to install your own copy; see :ref:`Installing -and Testing MathJax ` for information on how to do that.) - -The use of ``cdn.mathjax.org`` is governed by its `terms of service -`_, so be -sure to read that before linking to the MathJax CDN server. - -If you wish to use the MathJax CDN but use your own configuration file -rather than one of the pre-defined ones, see the information at the -end of the :ref:`Using a Local Configuration File -` section below. - - -Configuring MathJax -=================== - -There are two ways to configure MathJax: via a configuration file, or by -including configuration commands within the web page itself. These can be -used independently, or in combination. For example, you can load a main -pre-defined configuration file, but include in-line commands to -adjust the configuration to your needs. - -Note that you must use at least one of these two forms of configuration. -Unlike MathJax v1.0, version 1.1 and higher does not load a default -configuration file. If you have been using version 1.0's -``config/MathJax.js`` for your configuration, you will need to load that -configuration file explicitly via a ``config`` parameter, as described -below. - - -.. _config-files: - -Using a configuration file -========================== - -The first way to configure MathJax is to use a configuration file. -MathJax comes with a number of pre-defined configuration files, which are -stored in the ``MathJax/config`` directory. Among these are the following - -.. describe:: default.js - - A file that contains nearly all the configuration options with comments - describing them, which you can edit to suit your needs. - -.. describe:: TeX-AMS-MML_HTMLorMML.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, or - :term:`MathML` notation, with the `AMSmath` and `AMSsymbols` - packages included, producing output using MathML if the browser - supports it sufficiently, and HTML-with-CSS otherwise. - -.. describe:: TeX-AMS_HTML.js - - Allows math to be specified in :term:`TeX` or :term:`LaTeX` notation, with the - `AMSmath` and `AMSsymbols` packages included, and produces output - using the HTML-CSS output processor. - -.. describe:: MML_HTMLorMML.js - - Allows math to be specified using :term:`MathML` notation, and produces MathML - output if the browser supports it sufficiently, or HTML-CSS output otherwise. - -.. describe:: AM_HTMLorMML.js - - Allows math to be specified using :term:`AsciiMath` notation, - producing output in MathML if the browser supports it - sufficiently, or as HTML-with-CSS otherwise. - -.. describe:: TeX-AMS-MML_SVG.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, or - :term:`MathML` notation, with the `AMSmath` and `AMSsymbols` - packages included, producing output using SVG. - -.. describe:: TeX-MML-AM_HTMLorMML.js - - Allows math to be specified in :term:`TeX`, :term:`LaTeX`, - :term:`MathML`, or :term:`AsciiMath` notation, with the `AMSmath` - and `AMSsymbols` packages included, producing output using MathML - if the browser supports it sufficiently, and HTML-with-CSS - otherwise. - -The first of these is a file that you can edit to suit your needs. It -contains nearly all the configuration options that MathJax allows, and has -comments explaining them. The others are what are called `combined -configuration files`, which not only configure MathJax, but also pre-load the -various files that the configuration requires. (The contents of these -files are explained in more detail in the `Common Configurations -`_ section.) - -Usually, MathJax loads its components only when they are needed, but each -component will require a separate file to be loaded, and that can cause -delays before the mathematics is displayed. The combined configuration -files load the majority of the needed files all as one large file, reducing -the number of network requests that are needed. That means you will -probably be getting the components that MathJax needs faster than you would -without the combined file, but you may be loading components that are never -actually used; that is the trade off. - -Each of the combined configuration files comes in two flavors: the ones -listed above, which only configure the output processors but don't include -the main code, and a "full" version, that also includes the complete -output processors. For example, with ``TeX-AMS_HTML.js`` and -``TeX-AMS_HTML-full.js``, the latter includes the complete HTML-CSS output -processor. The "full" configuration files are substantially larger (on -the order of 70KB more), so you need to decide whether it is worth loading the -full configuration for your pages. - -If most of your pages include mathematics, then it is to your advantage to -load the full version, but if you are including MathJax in a theme file for -a blog or wiki that only includes mathematics occasionally, then perhaps it -is better to use the standard configuration instead, in which case the -output processors are only loaded when they are actually needed, saving the -loading of 70KB for pages that don't. Of course, if your server is -configured to compress the files it sends, the difference between the two -is considerably reduced. Furthermore, most browsers will cache the -javascript they receive, so the download cost should only occur on the -first page a user views, so it may be best to use the "full" version after -all. Note, however, that mobile devices sometimes have limits on the size -of files that they cache, so they may be forced to download the -configuration on every page. You need to keep these issues in mind as you -decide on which configuration to use. - -To load a configuration file, use ``config=filename`` (where ``filename`` -is one of the names above without the ``.js``) as a parameter to the URL of -the ``MathJax.js`` file. For example - -.. code-block:: html - - - -loads the ``config/TeX-AMS-MML_HTMLorMML.js`` configuration file from the -MathJax distributed network service. - -You can include more than one configuration file by separating them with -commas. For example, if you have a locally defined configuration file -called ``MathJax/config/local/local.js`` that modifies the settings for the -``TeX-AMS_HML`` configuration, defines some new TeX macros, and so on, you -can use - -.. code-block:: html - - - -to first load the main configuration, then the local modifications. - - -.. _local-config-files: - -Using a local configuration file with the CDN -============================================= - -You can load MathJax from the MathJax CDN server but still use a -configuration from your own local server. For example, suppose you -have a configuration file called ``local.js`` on your own server, in a -directory called ``MathJax/config/local``. Then you can load MathJax -from the CDN and still use your configuration file as follows: - -.. code-block:: html - - - -Because the ``local.js`` file is not on the CDN server, you must give -the complete URL to the local configuration file. Note that you also -have to edit the :meth:`loadComplete()` call that is at the bottom of -the configuration file to change it from -``[MathJax]/config/local/local.js`` to the complete URL as you give it -in the ``config`` parameter. In the example above, it would be - -.. code-block:: javascript - - MathJax.Ajax.loadComplete("http://myserver.com/MathJax/config/local/local.js"); - -That is because the ``[MathJax]`` in the original URL refers to the -root directory where ``MathJax.js`` was loaded, which is on the CDN, -not your local server, and so you need to tell MathJax the actual -location of your configuration file. - - -.. _inline-config: - -Using in-line configuration options -=================================== - -The second way to configure MathJax is through `in-line configuration`, -which puts the configuration options within the web page itself. The use -of in-line configuration with MathJax requires two separate `` - - - - -.. _delayStartupUntil: - -Configuring MathJax after it is loaded -====================================== - -Because MathJax begins its configuration process immediately after it is -loaded (so that it can start loading files as quickly as it can), the -configuration blocks for MathJax must come before ``MathJax.js`` is loaded, -so they will be available to MathJax when it starts up. There are -situations, however, when you might want to put off configuring MathJax -until later in the page. - -One such situation is when you have a site that loads MathJax as part of a -theme or template, but want to be able to modify the configuration on -specific pages of the site. To accomplish this, you need to ask MathJax -to delay its startup configuration until some later time. MathJax uses -the ``delayStartupUntil`` parameter to control the timing of the startup -sequence. By default, it is set to ``none``, meaning there is no delay -and MathJax starts configuration right away. - -You can set ``delayStartupUntil=onload`` in order to prevent MathJax from -continuing its startup process until the page's onLoad handler fires. This -allows MathJax to find the ``text/x-mathjax-config`` blocks that occur -anywhere on the page, not just the ones that appear above the `` - -in your theme's header file, and - -.. code-block:: html - - - -in its footer, so that MathJax will delay setting up until the footer -is reached, but will not have to wait until images and other files are -loaded. In this way, if you have ``text/x-mathjax-config`` script -tags within the main body of the document, MathJax will read and -process those before continuing its startup. In this way you can use -a default configuration that can be modified on a page-by-page basis. - -Note that :meth:`MathJax.Hub.Configured()` is not called by MathJax; -you must make that call somewhere within the page yourself after the -configuration blocks are set up. If you do not execute this function, -MathJax will not process any of the math on the page. - - -Details of the MathJax configuration process -============================================ - -Since there are a number of different ways to configure MathJax, it is -important to know how they interact. The configuration actions are the -following: - -1. Process any configuration file explicitly specified as a script parameter. -2. Process the in-line script body (deprecated), if present. -3. If delayed startup is requested, wait for the indicated signal. -4. Process ``text/x-mathjax-config`` config blocks. -5. Process any config files queued in the configuration's `config` array - by earlier config code. - -Note that ``text/x-mathjax-config`` script blocks must either precede the -``MathJax.js`` script element, or startup must be delayed. Otherwise, blocks -that follow the ``MathJax.js`` script element may or may not be available -when MathJax runs, and browser-dependent erratic behavior will result. - - diff --git a/docs/source/dynamic.rst b/docs/source/dynamic.rst deleted file mode 100644 index ed528cbb0..000000000 --- a/docs/source/dynamic.rst +++ /dev/null @@ -1,154 +0,0 @@ -.. _ajax-mathjax: - -*************************** -Loading MathJax Dynamically -*************************** - -MathJax is designed to be included via a `` - - -would load the ``jsMath2jax`` preprocessor, along with a configuration -file that processes TeX input and produces HTML-with-CSS output. - -There are a few configuration options for ``jsMath2jax``, which you -can find in the ``config/default.js`` file, or in the :ref:`jsMath -configuration options ` section. - -If you are generating your jsMath documents programmatically, it would be -better to convert from generating the jsMath ```` and ``
`` tags -to producing the corresponding MathJax `` - {%- for scriptfile in script_files %} - - {%- endfor %} - - {%- if use_opensearch %} - - {%- endif %} - {%- if favicon %} - - {%- endif %} - {%- endif %} -{%- block linktags %} - {%- if hasdoc('about') %} - - {%- endif %} - {%- if hasdoc('genindex') %} - - {%- endif %} - {%- if hasdoc('search') %} - - {%- endif %} - {%- if hasdoc('copyright') %} - - {%- endif %} - - {%- if parents %} - - {%- endif %} - {%- if next %} - - {%- endif %} - {%- if prev %} - - {%- endif %} -{%- endblock %} -{%- block extrahead %} {% endblock %} - - - {% if for_site %} -
- -
- - {% endif %} -{%- block header %}{% endblock %} - -{%- block relbar1 %}{{ relbar() }}{% endblock %} - -{%- block content %} - {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %} - -
- {%- block document %} -
- {%- if render_sidebar %} -
- {%- endif %} -
- {% block body %} {% endblock %} -
- {%- if render_sidebar %} -
- {%- endif %} -
- {%- endblock %} - - {%- block sidebar2 %}{{ sidebar() }}{% endblock %} -
-
-{%- endblock %} - -{%- block relbar2 %}{{ relbar() }}{% endblock %} - -{%- block footer %} - -{%- endblock %} - {% if for_site %} -
- {% endif %} - - diff --git a/docs/source/mjtheme/static/mj.css_t b/docs/source/mjtheme/static/mj.css_t deleted file mode 100644 index f67ebff2b..000000000 --- a/docs/source/mjtheme/static/mj.css_t +++ /dev/null @@ -1,648 +0,0 @@ -/** - * Sphinx stylesheet -- default theme - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - */ - -@import url("basic.css"); - -{% if for_site %} - -/****************************************** - * CSS configuration from www.mathjax.org - ******************************************/ - -/* - * Culled from twentyten style.css - */ - * -#access .menu-header, -#branding, -#wrapper { - margin: 0 auto; - width: 940px; -} -#wrapper { - margin-top: 20px; - background: #fff; - padding: 0 20px; -} - -#site-info { - float: left; - width: 700px; - font-weight: bold; - font-size: 14px; -} -body { - background: #D2D3D3 ! important; -} - - -#header { - padding: 30px 0 0 0; -} -#site-title { - float: left; - margin: 0 0 18px 0; - width: 700px; - font-size: 30px; - line-height: 36px; -} -#site-title a { - color: #000; - font-weight: bold; - text-decoration: none; -} -#site-description { - clear: right; - float: right; - font-style: italic; - margin: 14px 0 18px 0; - width: 220px; -} - -#branding img { - clear: both; - border-top: 4px solid #000; - display: block; - border-bottom: 1px solid #000; -} - - -#access { - background: #000; - margin: 0 auto; - width: 940px; - display:block; - float:left; -} -#access .menu-header { - font-size: 13px; - margin-left: 12px; -} -#access .menu-header ul { - list-style: none; - margin: 0; -} -#access .menu-header li { - float:left; - position: relative; -} -#access a { - display:block; - text-decoration:none; - color:#aaa; - padding:0 10px; - line-height:38px; -} -#access ul ul { - display:none; - position:absolute; - top:38px; - left:0; - float:left; - box-shadow: 0px 3px 3px rgba(0,0,0,0.2); - -moz-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); - -webkit-box-shadow: 0px 3px 3px rgba(0,0,0,0.2); - width: 180px; - z-index: 99999; -} -#access ul ul li { - min-width: 180px; -} -#access ul ul ul { - left:100%; - top:0; -} -#access ul ul a { - background:#333; - height:auto; - line-height:1em; - padding:10px; - width: 160px; -} -#access li:hover > a, -#access ul ul :hover > a { - color:#fff; - background:#333; -} -#access ul li:hover > ul { - display:block; -} -#access ul li.current_page_item > a, -#access ul li.current-menu-ancestor > a, -#access ul li.current-menu-item > a, -#access ul li.current-menu-parent > a { - color: #fff; -} - -* html #access ul li.current_page_item a, -* html #access ul li.current-menu-ancestor a, -* html #access ul li.current-menu-item a, -* html #access ul li.current-menu-parent a, -* html #access ul li a:hover { - color:#fff; -} - -.navigation { - font-size: 12px; - line-height: 18px; - overflow: hidden; - color: #888; -} -.navigation a:link, -.navigation a:visited { - color: #888; - text-decoration: none; -} -.navigation a:active, -.navigation a:hover { - color: #FF4B33; -} - -.widget_search #s { /* This keeps the search inputs in line */ - width: 60%; -} -.widget_search label { - display:none; -} -.widget-container { - margin: 0 0 18px 0; -} - -#site-info { - font-weight: bold; -} -#site-info a { - color: #000; - text-decoration: none; -} - -#access, -.navigation { - -webkit-text-size-adjust: 120%; -} -#site-description { - -webkit-text-size-adjust: none; -} - - -@media print { - body { - background:none !important; - } - #wrapper { - float: none !important; - clear: both !important; - display: block !important; - position: relative !important; - } - #header { - border-bottom: 2pt solid #000; - padding-bottom: 18pt; - } - #site-title, - #site-description { - float: none; - margin: 0; - padding:0; - line-height: 1.4em; - } - #access, - #branding img, - #respond, - .navigation { - display: none !important; - } - #header { - width: 100%; - margin: 0; - } - #site-info { - float: none; - width: auto; - } -} - -/* - * from mathjax style.css - */ - -.clear { - clear: both; -} - -/* HEADER */ -#header { - padding: 20px 0 0; -} -#site-title { - margin: 0; - width: 300px; -} - -#branding img { - border: 0; -} - -#site-description { - margin: 36px 0 0; - font-size: 18px; - float: left; - width: auto; - font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif; - font-style: normal; - font-weight: bold; - letter-spacing: -1px; - color: #a5a5a5; -} - -#header-box-right { - margin: 10px 0 0; - float: right; -} -.icon-list { - display: block; - margin: 0 0 0 93px; - list-style: none; -} -.icon-list li { - float: left; - display: inline; - margin: 0 8px 5px 0; -} -.icon-list img { border: 0; } -.widget_search { - clear: both; - margin: 0; -} -.widget_search #s { - width: 150px; - height: 16px; - float: left; -} -input[type="text"], textarea { - border: 2px solid #b5bfb8; - background-color: #eaeaea; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; -} -input[type="text"]:focus, textarea:focus{ - outline-width: 0; - border-color: #169538; -} -.search-button { - float: left; - display: inline; - margin: 2px 0 0 5px; -} - -/* NAVIGATION */ - -#access { - margin: 20px 0 10px; -} -#access li { min-width: 20px; } -#access a { color: #dddddd; font-weight: bold; } -#access a:hover, #access ul li.current_page_item > a, #access ul li.current-menu-ancestor > a, -#access ul li.current-menu-item > a, #access ul li.current-menu-parent > a { - color: #ffffff; - font-weight: bold; -} -#access li:hover > a, #access ul ul :hover > a { - color:#fff; - background:#444; -} -#access ul ul a { - background:#444; -} - -#menu-item-1167 { - margin-right: 12px; - float: right !important; - background: #E18B16 !important; -} -#menu-item-1167:hover > a { - background: #ef9d32 !important; -} -#menu-item-1167 a, #menu-item-1167 a:visited { - color: #ffffff !important; -} - - - -/* - * Adjustementst to www.mathjax.org settings to work with - * to match the global settings from www.mathjax.org - */ - -#access { - margin-bottom: 1px; -} - -fieldset { - border: 0; - padding: 0; - margin: 0; -} - -#header { - font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif; - line-height:18px; -} - -#header-box-right { - line-height: 18px; - font-size: 12px; - border: 0; - padding: 0; -} -#header-box-right ul, #header-box-right form { - margin: 0; - padding: 0; - border: 0; -} -#header-box-right .icon-list { - margin-left: 93px -} - -#header input { - font-family: Georgia, "Bitstream Charter", serif; -} -#header input[type="text"] { - padding: 2px; - background-color: #eaeaea; - border: 2px solid #b5bfb8; - box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); - -moz-box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); - -webkit-box-shadow: inset 1px 1px 1px rgba(0,0,0,0.1); - -moz-border-radius: 4px; - -webkit-border-radius: 4px; -} -#header input[type="text"]:focus { - outline-width: 0; - border-color: #169538; -} - -.menu-header ul, .menu-header li { - margin: 0; - padding: 0; - border: 0; -} - -/*************************************** - * End of site-specific configuration - ***************************************/ - -{% endif %} - - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: {{ theme_bodyfont }}; - font-size: 100%; - background-color: {{ theme_footerbgcolor }}; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: {{ theme_sidebarbgcolor }}; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: {{ theme_bgcolor }}; - color: {{ theme_textcolor }}; - padding: 0 20px 30px 20px; -} - -{%- if theme_rightsidebar|tobool %} -div.bodywrapper { - margin: 0 230px 0 0; -} -{%- endif %} - -div.footer { - color: {{ theme_footertextcolor }}; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: {{ theme_footertextcolor }}; - text-decoration: underline; -} - -div.related { - background-color: {{ theme_relbarbgcolor }}; - line-height: 30px; - color: {{ theme_relbartextcolor }}; -} - -div.related a { - color: {{ theme_relbarlinkcolor }}; -} - -div.sphinxsidebar { - {%- if theme_stickysidebar|tobool %} - top: 30px; - margin: 0; - position: fixed; - overflow: auto; - height: 100%; - {%- endif %} - {%- if theme_rightsidebar|tobool %} - float: right; - {%- if theme_stickysidebar|tobool %} - right: 0; - {%- endif %} - {%- endif %} -} - -{%- if theme_stickysidebar|tobool %} -/* this is nice, but it it leads to hidden headings when jumping - to an anchor */ -/* -div.related { - position: fixed; -} - -div.documentwrapper { - margin-top: 30px; -} -*/ -{%- endif %} - -div.sphinxsidebar h3 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar h4 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar ul li { - margin-top: .2em; -} - -div.sphinxsidebar a { - color: {{ theme_sidebarlinkcolor }}; -} - -div.sphinxsidebar input { - border: 1px solid {{ theme_sidebarlinkcolor }}; - font-family: sans-serif; - font-size: 1em; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: {{ theme_linkcolor }}; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: {{ theme_headfont }}; - background-color: {{ theme_headbgcolor }}; - font-weight: normal; - color: {{ theme_headtextcolor }}; - border-top: 2px solid {{ theme_headbordercolor }}; - border-bottom: 1px solid {{ theme_headbordercolor }}; - margin: 30px -20px 20px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; padding-left: 20px; } -div.body h4 { font-size: 120%; padding-left: 20px; } -div.body h5 { font-size: 110%; padding-left: 20px; } -div.body h6 { font-size: 100%; padding-left: 20px; } - -a.headerlink { - color: {{ theme_headlinkcolor }}; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: {{ theme_headlinkcolor }}; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: {{ theme_codebgcolor }}; - color: {{ theme_codetextcolor }}; - line-height: 130%; - border: 2px solid {{ theme_codebordercolor }}; - border-left: none; - border-right: none; -} - -tt { - background-color: #ecf0f3; - padding: 0 1px 0 1px; -/* font-size: 0.95em;*/ -} - -.warning tt { - background: #efc2c2; -} - -.note tt { - background: #d6d6d6; -} diff --git a/docs/source/mjtheme/theme.conf b/docs/source/mjtheme/theme.conf deleted file mode 100644 index a61e9d33c..000000000 --- a/docs/source/mjtheme/theme.conf +++ /dev/null @@ -1,30 +0,0 @@ -[theme] -inherit = basic -stylesheet = mj.css -pygments_style = sphinx - -[options] -rightsidebar = false -stickysidebar = false - -footerbgcolor = #11303d -footertextcolor = #ffffff -sidebarbgcolor = #d4e9f7 -sidebartextcolor = #3a3a3a -sidebarlinkcolor = #3a8942 -relbarbgcolor = #191a19 -relbartextcolor = #ffffff -relbarlinkcolor = #ffffff -bgcolor = #ffffff -textcolor = #222222 -headbgcolor = #f2f2f2 -headtextcolor = #20435c -headlinkcolor = #c60f0f -headbordercolor = #cccccc -linkcolor = #355f7c -codebgcolor = #f1f8ff -codetextcolor = #333333 -codebordercolor = #6799b3 - -bodyfont = sans-serif -headfont = 'Trebuchet MS', sans-serif diff --git a/docs/source/model.rst b/docs/source/model.rst deleted file mode 100644 index 091375e10..000000000 --- a/docs/source/model.rst +++ /dev/null @@ -1,238 +0,0 @@ -**************************** -The MathJax Processing Model -**************************** - -The purpose of MathJax is to bring the ability to include mathematics -easily in web pages to as wide a range of browsers as possible. -Authors can specify mathematics in a variety of formats (e.g., -:term:`MathML`, :term:`LaTeX`, or :term:`AsciiMath`), and MathJax provides high-quality -mathematical typesetting even in those browsers that do not have -native MathML support. This all happens without the need for special -downloads or plugins, but rendering will be enhanced if high-quality -math fonts (e.g., :term:`STIX`) are available to the browser. - -MathJax is broken into several different kinds of components: page -preprocessors, input processors, output processors, and the MathJax -Hub that organizes and connects the others. The input and output -processors are called :term:`jax`, and are described in more detail -below. - -When MathJax runs, it looks through the page for special tags that -hold mathematics; for each such tag, it locates an appropriate input -jax which it uses to convert the mathematics into an internal form -(called an element jax), and then calls an output jax to transform the -internal format into HTML content that displays the mathematics within -the page. The page author configures MathJax by indicating which -input and output jax are to be used. - -Often, and especially with pages that are authored by hand, the -mathematics is not stored (initially) within the special tags needed -by MathJax, as that would require more notation than the average page -author is willing to type. Instead, it is entered in a form that is -more natural to the page author, for example, using the standard TeX -math delimiters ``$...$`` and ``$$...$$`` to indicate what part of the -document is to be typeset as mathematics. In this case, MathJax can -run a preprocessor to locate the math delimiters and replace them by -the special tags that it uses to mark the formulas. There are -preprocessors for :ref:`TeX notation `, :ref:`MathML -notation `, :ref:`AsciiMath notation -` and the :ref:`jsMath notation -` that uses `span` and `div` tags. - -For pages that are constructed programmatically, such as HTML -pages that result from running a processor on text in some other -format (e.g., pages produced from Markdown documents, or via programs -like `tex4ht`), it would be best to use MathJax's special tags -directly, as described below, rather than having MathJax run -another preprocessor. This will speed up the final display of the -mathematics, since the extra preprocessing step would not be needed. -It also avoids the conflict between the use of the less-than sign, -``<``, in mathematics and as an HTML special character (that starts -an HTML tag), and several other issues involved in having the -mathematics directly in the text of the page (see the documentation on -the various input jax for more details on this). - - -.. _mathjax-script-tags: - -How mathematics is stored in the page -===================================== - -In order to identify mathematics in the page, MathJax uses special -`` - -represents an in-line equation in TeX notation, and - -.. code-block:: html - - - -is a displayed TeX equation. - -Alternatively, using MathML notation, you could use - -.. code-block:: html - - - -for in-line math, or - -.. code-block:: html - - - -for displayed equations in MathML notation. -As other input jax are created, they will use other types to identify -the mathematics they can process. - -Page authors can use one of MathJax's preprocessors to convert from -math delimiters that are more natural for the author to type (e.g., -TeX math delimiters like ``$$...$$``) to MathJax's `` - - would display "[math]" in place of the math until MathJax is able - to typeset it. - - See also the ``preJax`` and ``postJax`` comments above. - -.. describe:: showProcessingMessages: true - - This value controls whether the `Processing Math: nn%` messages are - displayed in the lower left-hand corner. Set to ``false`` to - prevent those messages (though file loading and other messages - will still be shown). - -.. describe:: messageStyle: "normal" - - This value controls the verbosity of the messages in the lower - left-hand corner. Set it to ``"none"`` to eliminate all messages, - or set it to ``"simple"`` to show "Loading..." and "Processing..." - rather than showing the full file name or the percentage of the - mathematics processed. - -.. describe:: displayAlign: "center" and displayIndent: "0em" - - These two parameters control the alignment and shifting of - displayed equations. The first can be ``"left"``, ``"center"``, - or ``"right"``, and determines the alignment of displayed - equations. When the alignment is not ``"center"``, the second - determines an indentation from the left or right side for the - displayed equations. - - -.. describe:: delayStartupUntil: "none" - - Normally MathJax will perform its startup commands (loading of - configuration, styles, jax, and so on) as soon as it can. If you - expect to be doing additional configuration on the page, however, - you may want to have it wait until the page's onload handler is - called. If so, set this to ``"onload"``. You can also set this to - ``"configured"``, in which case, MathJax will delay its startup until - you explicitly call :meth:`MathJax.Hub.Configured()`. See - :ref:`Configuring MathJax after it is loaded ` for more - details. - -.. describe:: skipStartupTypeset: false - - Normally MathJax will typeset the mathematics on the page as soon - as the page is loaded. If you want to delay that process, in - which case you will need to call :meth:`MathJax.Hub.Typeset()` - yourself by hand, set this value to ``true``. - -.. describe:: elements: [] - - This is a list of DOM element ID's that are the ones to process for - mathematics when any of the Hub typesetting calls (``Typeset()``, ``Process()``, - ``Update()``, etc.) are called with no element specified, and during - MathJax's initial typesetting run when it starts up. This lets you - restrict the processing to particular containers rather than scanning - the entire document for mathematics. If none are supplied, the complete - document is processed. - -.. describe:: positionToHash: true - - Since typesetting usually changes the vertical dimensions of the - page, if the URL contains an anchor position, then after the page - is typeset, you may no longer be positioned at the correct - position on the page. MathJax can reposition to that location - after it completes its initial typesetting of the page. This - value controls whether MathJax will reposition the browser to the - ``#hash`` location from the page URL after typesetting for the page. - - -.. describe:: showMathMenu: true - showMathMenuMSIE: true - - These control whether to attach the MathJax contextual menu to the - expressions typeset by MathJax. Since the code for handling - MathPlayer in Internet Explorer is somewhat delicate, it is - controlled separately via ``showMathMenuMSIE``, but the latter is - now deprecated in favor of the MathJax contextual menu settings - for MathPlayer (see below). - - If ``showMathMenu`` is ``true``, then right-clicking (on Windows - or Linux) or control-clicking (on Mac OS X) will produce a MathJax - menu that allows you to get the source of the mathematics in - various formats, change the size of the mathematics relative to - the surrounding text, get information about MathJax, and configure - other MathJax settings. - - Set this to ``false`` to disable the menu. When ``true``, the - ``MathMenu`` configuration block determines the operation of the - menu. See :ref:`the MathMenu options ` for - more details. - - These values used to be listed in the separate output jax, but - have been moved to this more central location since they are - shared by all output jax. MathJax will still honor their values - from their original positions, if they are set there. - -.. describe:: menuSettings: { ... } - - This block contains settings for the mathematics contextual menu - that act as the defaults for the user's settings in that menu. - The possible values are: - - .. describe:: zoom: "None" - - This indicates when typeset mathematics should be zoomed. It - can be set to ``"None"``, ``"Hover"``, ``"Click"``, or - ``"Double-Click"`` to set the zoom trigger. - - .. describe:: CTRL: false, ALT: false, CMD: false, Shift: false - - These values indicate which keys must be pressed in order for - math zoom to be triggered. For example, if ``CTRL`` is set to - ``true`` and ``zoom`` is ``"Click"``, then math will be zoomed - only when the user control-clicks on mathematics (i.e., clicks - while holding down the `CTRL` key). If more than one is - ``true``, then all the indicated keys must be pressed for the - zoom to occur. - - .. describe:: zscale: "200%" - - This is the zoom scaling factor, and it can be set to any of - the values available in the `Zoom Factor` menu of the - `Settings` submenu of the contextual menu. - - .. describe:: context: "MathJax" - - This controls what contextual menu will be presented when a - right click (on a PC) or CTRL-click (on the Mac) occurs over a - typeset equation. When set to ``"MathJax"``, the MathJax - contextual menu will appear; when set to ``"Browser"``, the - browser's contextual menu will be used. For example, in - Internet Explorer with the MathPlayer plugin, if this is set - to ``"Browser"``, you will get the MathPlayer contextual menu - rather than the MathJax menu. - - .. describe:: texHints: true - - This controls whether the "Show Source" menu item includes - special class names that help MathJax to typeset the - mathematics that was produced by the TeX input jax. If these - are included, then you can take the output from "Show Source" - and put it into a page that uses MathJax's MathML input jax - and expect to get the same results as the original TeX. - (Without this, there may be some spacing differences.) - - There are also settings for ``format``, ``renderer``, ``font``, - ``mpContext``, and ``mpMouse``, but these are maintained by - MathJax and should not be set by the page author. - -.. describe:: errorSettings: { ... } - - This block contains settings that control how MathJax responds to - unexpected errors while processing mathematical equations. Rather - than simply crash, MathJax can report an error and go on. The - options you can set include: - - .. describe:: message: ["[Math Processing Error]"] - - This is an HTML snippet that will be inserted at the location - of the mathematics for any formula that causes MathJax to - produce an internal error (i.e., an error in the MathJax code - itself). See the :ref:`description of HTML snippets - ` for details on how to represent HTML code in - this way. - - .. describe:: style: {color:"#CC0000", "font-style":"italic"} - - This is the CSS style description to use for the error - messages produced by internal MathJax errors. See the section - on :ref:`CSS style objects ` for details on - how these are specified in JavaScript. - -.. describe:: v1.0-compatible: true - - This controls whether MathJax issues the warning about not having an - explicit configuration in the event that the `jax` array is empty - after configuration is complete. If you really intend that array to - be empty, set this flag to ``false``. Note that setting this to false - does **not** cause a default configuration file to be loaded. diff --git a/docs/source/options/index.rst b/docs/source/options/index.rst deleted file mode 100644 index 3a7d42c76..000000000 --- a/docs/source/options/index.rst +++ /dev/null @@ -1,95 +0,0 @@ -.. _configuration: - -********************* -Configuration Objects -********************* - -The various components of MathJax, including its input and output -processors, its preprocessors, its extensions, and the MathJax core, -all can be configured through the ``config/default.js`` file, or via a -:meth:`MathJax.Hub.Config()` call (indeed, if you look closely, you -will see that ``config/default.js`` is itself one big call to -:meth:`MathJax.Hub.Config()`). Anything that is in -``config/default.js`` can be included in-line to configure MathJax. - -The structure that you pass to :meth:`MathJax.Hub.Config()` is a -JavaScript object that includes `name:value` pairs giving the names of -parameters and their values, with pairs separated by commas. Be -careful not to include a comma after the last value, however, as some -browsers (namely Internet Explorer) will fail to process the -configuration if you do. - -The MathJax components, like the TeX input processor, have their own -sections in the configuration object labeled by the component name, -and using an object as its value. That object is itself -a configuration object made up of `name:value` pairs that give the -configuration options for the component. - -For example, - -.. code-block:: javascript - - MathJax.Hub.Config({ - showProcessingMessages: false, - jax: ["input/TeX", "output/HTML-CSS"], - TeX: { - TagSide: "left", - Macros: { - RR: '{\\bf R}', - bold: ['{\\bf #1}',1] - } - } - }); - -is a configuration that includes two settings for the MathJax Hub (one -for `showProcessingMessages` and one for the `jax` array), and a -configuration object for the TeX input processor. The latter includes -a setting for the TeX input processor's `TagSide` option (to set tags -on the left rather than the right) and a setting for `Macros`, which -defines new TeX macros (in this case, two macros, one called ``\RR`` -that produces a bold "R", and one called ``\bold`` that puts is -argument in bold face). - -The ``config/default.js`` file is another example that shows nearly -all the configuration options for all of MathJax's components. - - -Configuration Options by Component -================================== - -The individual options are explained in the following sections, which -are categorized by the component they affect. - -.. toctree:: - :maxdepth: 1 - - The core options - -.. toctree:: - :maxdepth: 1 - - The tex2jax preprocessor options - The mml2jax preprocessor options - The asciimath2jax preprocessor options - The jsMath2jax preprocessor options - -.. toctree:: - :maxdepth: 1 - - The TeX input processor options - The MathML input processor options - The AsciiMath input processor options - The HTML-CSS output processor options - The NativeMML output processor options - The SVG output processor options - The MMLorHTML configuration options - -.. toctree:: - :maxdepth: 1 - - The MathMenu options - The MathZoom options - The MathEvents options - The FontWarnings options - - diff --git a/docs/source/options/jsMath2jax.rst b/docs/source/options/jsMath2jax.rst deleted file mode 100644 index daf04ce29..000000000 --- a/docs/source/options/jsMath2jax.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. _configure-jsMath2jax: - -*************************** -The jsMath2jax Preprocessor -*************************** - -The options below control the operation of the `jsMath2jax` -preprocessor that is run when you include ``"jsMath2jax.js"`` in the -`extensions` array of your configuration. They are listed with their -default values. To set any of these options, include a ``jsMath2jax`` -section in your :meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - jsMath2jax: { - preview: "none" - } - }); - -would set the ``preview`` parameter to ``"none"``. - -.. describe:: preview: "TeX" - - This controls whether `jsMath2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates in-line or display mathematics in the page. The default - is ``"TeX"``, which means use the TeX code as the preview (which - will be visible until it is processed by MathJax). Set to - ``"none"`` to prevent previews from being inserted (the math - will simply disappear until it is typeset). Set to an array - containing the description of an HTML snippet in order to use the - same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - diff --git a/docs/source/options/mml2jax.rst b/docs/source/options/mml2jax.rst deleted file mode 100644 index eff414341..000000000 --- a/docs/source/options/mml2jax.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. _configure-mml2jax: - -************************ -The mml2jax Preprocessor -************************ - -The options below control the operation of the `mml2jax` preprocessor -that is run when you include ``"mml2jax.js"`` in the `extensions` array -of your configuration. They are listed with their default values. To -set any of these options, include a ``mml2jax`` section in your -:meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - mml2jax: { - preview: "none" - } - }); - -would set the ``preview`` parameter to ``"none"``. - -.. describe:: preview: "alttext" - - This controls whether `mml2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates mathematics on the page. The default is ``"alttext"``, - which means use the ```` tag's ``alttext`` attribute as the - preview (visible until it is processed by MathJax), if the tag has - one. Set it to ``"none"`` to prevent the previews from being - inserted (the math will simply disappear until it is typeset). - Set it to an array containing the description of an HTML snippet - in order to use the same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - - diff --git a/docs/source/options/tex2jax.rst b/docs/source/options/tex2jax.rst deleted file mode 100644 index 4354f2e9b..000000000 --- a/docs/source/options/tex2jax.rst +++ /dev/null @@ -1,155 +0,0 @@ -.. _configure-tex2jax: - -************************ -The tex2jax Preprocessor -************************ - -The options below control the operation of the `tex2jax` preprocessor -that is run when you include ``"tex2jax.js"`` in the `extensions` array -of your configuration. They are listed with their default values. To -set any of these options, include a ``tex2jax`` section in your -:meth:`MathJax.Hub.Config()` call. For example - -.. code-block:: javascript - - MathJax.Hub.Config({ - tex2jax: { - inlineMath: [ ['$','$'], ['\\(','\\)'] ] - } - }); - -would set the ``inlineMath`` delimiters for the `tex2jax` -preprocessor. - - -.. describe:: inlineMath: [['\\\(','\\\)']] - - Array of pairs of strings that are to be used as in-line math - delimiters. The first in each pair is the initial delimiter and - the second is the terminal delimiter. You can have as many pairs - as you want. For example, - - .. code-block:: javascript - - inlineMath: [ ['$','$'], ['\\(','\\)'] ] - - would cause `tex2jax` to look for ``$...$`` and ``\(...\)`` as - delimiters for inline mathematics. (Note that the single dollar - signs are not enabled by default because they are used too - frequently in normal text, so if you want to use them for math - delimiters, you must specify them explicitly.) - - Note that the delimiters can't look like HTML tags (i.e., can't - include the less-than sign), as these would be turned into tags by - the browser before MathJax has the chance to run. You can only - include text, not tags, as your math delimiters. - -.. describe:: displayMath: [ ['$$','$$'], ['\\\[','\\\]'] ] - - Array of pairs of strings that are to be used as delimiters for - displayed equations. The first in each pair is the initial - delimiter and the second is the terminal delimiter. You can have - as many pairs as you want. - - Note that the delimiters can't look like HTML tags (i.e., can't - include the less-than sign), as these would be turned into tags by - the browser before MathJax has the chance to run. You can only - include text, not tags, as your math delimiters. - -.. describe:: balanceBraces: true, - - This value determines whether `tex2jax` requires braces to be - balanced within math delimiters (which allows for nested dollar - signs). Set to ``false`` to get pre-v2.0 compatibility. When - ``true``, - - .. code-block:: latex - - $y = x^2 \hbox{ when $x > 2$}$. - - will be properly handled as a single expression. When ``false``, - it would be interpreted as two searpate expressions, each with - improperly balanced braces. - -.. describe:: processEscapes: false - - When set to ``true``, you may use ``\$`` to represent a literal - dollar sign, rather than using it as a math delimiter. When - ``false``, ``\$`` will not be altered, and the dollar sign may be - considered part of a math delimiter. Typically this is set to - ``true`` if you enable the ``$ ... $`` in-line delimiters, so you - can type ``\$`` and `tex2jax` will convert it to a regular dollar - sign in the rendered document. - -.. describe:: processEnvironments: true - - When ``true``, `tex2jax` looks not only for the in-line and - display math delimiters, but also for LaTeX environments - (``\begin{something}...\end{something}``) and marks them for - processing by MathJax. When ``false``, LaTeX environments will - not be processed outside of math mode. - -.. describe:: preview: "TeX" - - This controls whether `tex2jax` inserts ``MathJax_Preview`` spans - to make a preview available, and what preview to use, when it - locates in-line or display mathematics in the page. The default - is ``"TeX"``, which means use the TeX code as the preview (which - will be visible until it is processed by MathJax). Set to - ``"none"`` to prevent previews from being inserted (the math - will simply disappear until it is typeset). Set to an array - containing the description of an HTML snippet in order to use the - same preview for all equations on the page. - - Examples: - - .. code-block:: javascript - - preview: ["[math]"], // insert the text "[math]" as the preview - - .. code-block:: javascript - - preview: [["img",{src: "/images/mypic.jpg"}]], // insert an image as the preview - - See the :ref:`description of HTML snippets ` for - details on how to represent HTML code in this way. - -.. describe:: skipTags: ["script","noscript","style","textarea","pre","code"] - - This array lists the names of the tags whose contents should not - be processed by `tex2jax` (other than to look for ignore/process - classes as listed below). You can add to (or remove from) this - list to prevent MathJax from processing mathematics in specific - contexts. - -.. describe:: ignoreClass: "tex2jax_ignore" - - This is the class name used to mark elements whose contents should - not be processed by tex2jax (other than to look for the - ``processClass`` pattern below). Note that this is a regular - expression, and so you need to be sure to quote any `regexp` - special characters. The pattern is inserted into one that - requires your pattern to match a complete word, so setting - ``ignoreClass: "class2"`` would cause it to match an element with - ``class="class1 class2 class3"`` but not ``class="myclass2"``. - Note that you can assign several classes by separating them by the - vertical line character (``|``). For instance, with - ``ignoreClass: "class1|class2"`` any element assigned a class of - either ``class1`` or ``class2`` will be skipped. - -.. describe:: processClass: "tex2jax_process" - - This is the class name used to mark elements whose contents - *should* be processed by `tex2jax`. This is used to restart - processing within tags that have been marked as ignored via the - ``ignoreClass`` or to cause a tag that appears in the ``skipTags`` - list to be processed rather than skipped. Note that this is a - regular expression, and so you need to be sure to quote any - `regexp` special characters. The pattern is inserted into one - that requires your pattern to match a complete word, so setting - ``processClass: "class2"`` would cause it to match an element with - ``class="class1 class2 class3"`` but not ``class="myclass2"``. - Note that you can assign several classes by separating them by the - vertical line character (``|``). For instance, with - ``processClass: "class1|class2"`` any element assigned a class of - either ``class1`` or ``class2`` will have its contents processed. diff --git a/docs/source/output.rst b/docs/source/output.rst deleted file mode 100644 index ae503481a..000000000 --- a/docs/source/output.rst +++ /dev/null @@ -1,262 +0,0 @@ -.. _output-formats: - -********************** -MathJax Output Formats -********************** - -Currently, MathJax can render math in three ways: - -- Using HTML-with-CSS to lay out the mathematics, -- Using :term:`SVG` to lay out the mathematics, or -- Using a browser's native MathML support. - -These are implemented by the `HTML-CSS`, `SVG` and `NativeMML` output -processors. - -If you are using one of the combined configuration files, then this will -select one of these output processors for you. If the config file ends in -``_HTML``, then it is the HTML-CSS output processor, and if it ends in -``_SVG`` then the SVG output processor will be used. If it ends in -``_HTMLorMML``, then the NativeMML output processor will be chosen if the -browser supports it well enough, otherwise HTML-CSS output will be used. - -If you are performing your own in-line or file-based configuration, -you select which one you want to use by including either -``"output/HTML-CSS"``, ``"output/SVG"``, or ``"output/NativeMML"`` in -the `jax` array of your MathJax configuration. For example - -.. code-block:: javascript - - jax: ["input/TeX","output/HTML-CSS"] - -would specify TeX input and HTML-with-CSS output for the mathematics -in your document. - -The **HTML-CSS output processor** produces high-quality output in all -major browsers, with results that are consistent across browsers and -operating systems. This is MathJax's primary output mode. Its major -advantage is its quality and consistency; its drawback is that it is -slower than the NativeMML mode at rendering the mathematics. -Historically, the performance in Internet Explorer (and IE8 in -particular) was quite poor, with the page getting slower and slower as -more math is processed. MathJax version 2.0 includes a number of -optimizations to improve the display performance in IE, and it is now -more comparable to other browsers. The HTML-CSS output uses web-based -fonts so that users don't have to have math fonts installed on their -computers, which introduces some printing issues in certain browsers. - -The **SVG output processor** is new in MathJax version 2.0, and it -uses `Scalable Vector Graphics` to render the mathematics on the page. -SVG is supported in all the major browsers and most mobile devices; -note, however, that Internet Explorer prior to IE9 does not support -SVG, and IE9 only does in "IE9 standards mode", not its emulation -modes for earlier versions. The SVG output mode is high quality and -slightly faster than HTML-CSS, and it does not suffer from some of the -font-related issues that HTML-CSS does, so prints well in all -browsers. This format also works well in some ebook readers (e.g., -iBooks). The disadvantages of this mode are the following: first, -Internet Explorer only supports SVG in IE9 and later versions (and -then only in IE9 standards mode or above), and some versions of the -Android Internet browser don't have SVG enabled. Second, it does not -take advantage of STIX fonts, and so only has access to the characters -in the web-based fonts, and third, its variable-width tables become -fixed size once they are typeset, and don't rescale if the window size -changes (for example). Since equation numbers are handled through -variable-width tables, that means equation numbers may not stay at the -edge of the window if it is resized. For these reasons it is probably -best not to force the use of SVG output unless you have some control -over the browsers that are used to view your documents. - -The **NativeMML output processor** uses the browser's internal MathML -support (if any) to render the mathematics. Currently, Firefox has -native support for MathML, and IE has the `MathPlayer plugin -`_ for rendering -MathML. Opera has some built-in support for MathML that works well -with simple equations, but fails with more complex formulas, so we -don't recommend using the NativeMML output processor with Opera. -Safari has some support for MathML since version 5.1, but the quality -is not as high as either Firefox's implementation or IE with MathPlayer. -Chrome, Konqueror, and most other browsers don't support MathML -natively, but this may change in the future, since MathML is part of -the HTML5 specification. - -The advantage of the NativeMML output Processor is its speed, since -native MathML support is much faster than using complicated HTML and -CSS to typeset mathematics, as the HTML-CSS output processor does. -The disadvantage is that you are dependent on the browser's MathML -implementation for your rendering, and these vary in quality of output -and completeness of implementation. MathJax relies on features that -are not available in some renderers (for example, Firefox's MathML -support does not implement the features needed for labeled equations). -The results using the NativeMML output processor may have spacing or -other rendering problems that are outside of MathJax's control. - - -Automatic Selection of the Output Processor -=========================================== - -Since not all browsers support MathML natively, it would be unwise to -choose the NativeMML output processor unless you are sure of your -audience's browser capabilities. MathJax can help with that, however, -since a number of its combined configuration files will select -NativeMML output when the browser supports it well enough, and -HTML-CSS output otherwise. These are the configuration files that end -in ``_HTMLorMML``. - -If you are doing your own configuration, there is a special configuration -file that you can include that will choose between NativeMML and HTML-CSS -depending on the browser in use. To invoke it, add ``"MMLorHTML.js"`` to -your configuration's `config` array, and **do not** include an output -processor in your `jax` array; MathJax will fill that in for you based on -the abilities of your user's browser. - -.. code-block:: javascript - - config: ["MMLorHTML.js"], - jax: ["input/TeX"] - - -By default, MathJax will choose HTML-CSS in all browsers except for -one case: Internet Explorer when the MathPlayer plugin is present. -In the past, MathJax selected NativeMML output for Firefox as well, -but we have found that there are too many rendering issues with -Firefox's native MathML implementation, and so MathJax now selects -HTML-CSS output for Firefox by default as well. Users can still use -the Mathjax contextual menu to select the NativeMML renderer if they -wish to choose greater speed at the expense of some quality. - -You can customize which choice MathJax makes on a browser-by-browser -basis or a global basis. See the ``config/default.js`` file or the -:ref:`Configuring MMLorHTML ` section for further -details. As an example, this configuration tells MathJax to use -native MathML support rather than HTML-CSS output for Firefox: - -.. code-block:: html - - - - -With this configuration, MathML output will be used for both Firefox -and IE with the MathPlayer plugin. Note, however, that a user can -employ the MathJax contextual menu to select the other renderer if he -or she wishes. - -MathJax produces MathML that models the underlying mathematics as best -it can, rather than using complicated hacks to improve output for a -particular MathML implementation. When you make the choice to use the -NativeMML output processor, you are making a trade-off: gaining speed -at the expense of quality and reliability, a decision that should not -be taken lightly. - -.. _automatic-linebreaking: - -Automatic Line Breaking -======================= - -The HTML-CSS and SVG output processors implement (most of) the MathML3 -automatic line-breaking specification. (The NativeMML output -processor relies on the browser's native MathML support to handle line -breaking when it is used.) Since line-breaking takes extra processing -and so can slow down the mathematical output, it is off by default, -but you can enable it by adding - -.. code-block:: html - - - -to your page just before the `` - -at the top of the ```` section of your HTML documents. Note -that this line must come at the beginning of the ````, before -any stylesheets, scripts, or other content are loaded. - -.. _html-css-extensions: - -HTML-CSS Extensions -=================== - -The HTML-CSS output jax uses elements with width set to 100% when it -typesets displayed equations. If there are floating elements on the -left or right, this can mean that displayed mathematics isn't properly -centered, and can cause equation numbers to overlap the floating -content. To avoid this, you can specify the `handle-floats` extension -in the `extensions` array of your `HTML-CSS` configuration block. - -.. code-block:: javascript - - "HTML-CSS": { - extensions: ["handle-floats.js"] - } - -This will use CSS that puts the displayed equations into elements that -work like tabel cells, and won't overlap the floaring content. -Because this is somewhat of a misuse of CSS, it is not used by -default, but it has proved successful in most situations, so you may -consider using it in pages that include material that floats to the -left or right of text containing displayed mathematics, especially -when equation numbers or tags are used. - -See the :ref:`HTML-CSS configuration options ` for -other options of the HTML-CSS output jax. diff --git a/docs/source/platforms/index.rst b/docs/source/platforms/index.rst deleted file mode 100644 index 0f0b3b23f..000000000 --- a/docs/source/platforms/index.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. _platforms: - -====================================== -Using MathJax in popular web platforms -====================================== - -MathJax plugins are available for a growing number of wikis, blogs, -and other content-management systems. These include WordPress, -Blogger, Sphinx, TiddlyWiki, and MathEL-Wiki. A list of these is -available in the `web applications -`_ list of the -`MathJax web site `_. - -If the program you are using is not one of these, you may still be able to -use MathJax by modifying the theme or template for your wiki or blog, -as explained below. - - -Using MathJax in a Theme File -============================= - -Most web-based content-management systems include a theme or template -layer that determines how the pages look, and that loads information -common to all pages. Such theme files provide one popular way to -include MathJax in your web templates in the absence of -MathJax-specific plugins for the system you are using. To take -advantage of this approach, you will need access to your theme files, -which probably means you need to be an administrator for the site; if -you are not, you may need to have an administrator do these steps for -you. - -To enable MathJax in your web platform, add the line:: - - - -either just before the ```` tag in your theme file, or at the end of -the file if it contains no ````. - -The theme files for various popular platforms are: - - `WordPress `_ - ``wp-content/themes/[current_theme]/header.php`` - - `Movable Type `_ - ``[current_theme_templates]/html_head.mhtml`` - - `Drupal `_ - ``themes/[current_theme]/page.tpl.php`` - - `Joomla `_ - ``templates/[current_theme]/index.php`` - - `MediaWiki `_ - ``skins/[current_skin].php`` - - `TiddlyWiki `_ - ``*.php`` (Whatever you call your TiddlyWiki php file) - - `Moodle `_ - ``theme/[current_theme]/header.html`` - -Keep in mind that this will enable MathJax for your current -theme/template only. If you change themes or update your theme, you -will have to repeat these steps. - - -Instructions for Specific Platforms -=================================== - -Some programs, such as WordPress and Moveable Type, allow you to edit -template files from inside their administrator interfaces. Specific -instructions for these are given via the links below. - -.. toctree:: - :maxdepth: 1 - - Wordpress - Movable Type diff --git a/docs/source/platforms/movable-type.rst b/docs/source/platforms/movable-type.rst deleted file mode 100644 index 65182fc01..000000000 --- a/docs/source/platforms/movable-type.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. _platform-movable-type: - -============================= -Using MathJax in Movable Type -============================= - -1. Open Moveable Type Admin interface for the site on which you want to enable - MathJax. - -2. In the dashboard menu on the left, open up the Design menu. This - should show you the templates you are currently using on the site. - - .. image:: ../images/mt_menu.png - - -3. Scroll down to the Template Modules section in the template list - and open the `HTML Head` template. - - .. image:: ../images/mt_templates.png - -4. At the end of the file, insert - - .. code-block:: html - - - - to load MathJax from our distributed network service. - - .. image:: ../images/mt_head.png - -5. Save the file. This will enable MathJax with both TeX and MathML - input, so you should be able to start adding mathematical content to - your pages. If you need to adjust the configuration, see - :ref:`Configuring MathJax ` for more details. - - diff --git a/docs/source/platforms/wordpress.rst b/docs/source/platforms/wordpress.rst deleted file mode 100644 index 25b380f2e..000000000 --- a/docs/source/platforms/wordpress.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. _platform-wordpress: - -=============================== -Installing MathJax in WordPress -=============================== - -Note that there is a `WordPress plugin for MathJax -`_, so that may be a -better choice than editing the theme directly. - -1. Open the WordPress admin interface. - -2. In the administration menu on the left, open up the `Appearance` - menu and click on the `Editor` submenu option. - - .. image:: ../images/wp_menu.png - - When you click on the editor option, WordPress should open up the - first stylesheet in the current theme. - -3. In the template list on the right side of the page, click on the - header file (it should be ``header.php``). - - .. image:: ../images/wp_templates.png - - This part depends slightly on how your current theme is written. - In the ``header.php`` file, look for the end-of-head tag, - ````. If you find it, insert - - .. code-block:: html - - - - just before that. Otherwise, insert the same code at the very - bottom of the file. - -4. Save the file. This will enable MathJax with both TeX and MathML - input, so you should be able to start adding mathematical content to - your pages. If you need to adjust the configuration, see - :ref:`Configuring MathJax ` for more details. diff --git a/docs/source/queues.rst b/docs/source/queues.rst deleted file mode 100644 index 289118049..000000000 --- a/docs/source/queues.rst +++ /dev/null @@ -1,254 +0,0 @@ -.. _using-queues: - -************ -Using Queues -************ - -The `callback queue` is one of MathJax's main tools for synchronizing -its actions, both internally, and with external programs, like -javascript code that you may write as part of dynamic web pages. -Because many actions in MathJax (like loading files) operate -asynchronously, MathJax needs a way to coordinate those actions so -that they occur in the right order. The -`MathJax.Callback.Queue` object provides that mechanism. - -A `callback queue` is a list of commands that will be performed one at -a time, in order. If the return value of one of the commands is a -`Callback` object, processing is suspended until that callback is -called, and then processing of the commands is resumed. In this way, -if a command starts an asynchronous operation like loading a file, it -can return the callback for that file-load operation and the queue -will wait until the file has loaded before continuing. Thus a queue -can be used to guarantee that commands don't get performed until other -ones are known to be finished, even if those commands usually operate -asynchronously. - - -Constructing Queues -=================== - -A queue is created via the :meth:`MathJax.Callback.Queue()` command, -which returns a `MathJax.Callback.Queue` object. The queue -itself consists of a series of commands given as callback -specifications (see :ref:`Using Callbacks ` for -details on callbacks), which allow you to provide functions (together -with their arguments) to be executed. You can provide the collection -of callback specifications when the queue is created by passing them -as arguments to :meth:`MathJax.Callback.Queue()`, or you can create an -empty queue to which commands are added later. Once a -`MathJax.Callback.Queue` object is created, you can push -additional callbacks on the end of the queue; if the queue is empty, -the command will be performed immediately, while if the queue is -waiting for another command to complete, the new command will be -queued for later processing. - -For example, - -.. code-block:: javascript - - function f(x) {alert(x)} - var queue = MathJax.Callback.Queue([f, 15], [f, 10], [f, 5]); - queue.Push([f, 0]); - -would create a queue containing three commands, each calling the -function ``f`` with a different input, that are performed in order. A -fourth command is then added to the queue, to be performed after the -other three. In this case, the result will be four alerts, the first -with the number 15, the second with 10, the third with 5 and the -fourth with 0. Of course ``f`` is not a function that operates -asynchronously, so it would have been easier to just call ``f`` four -times directly. The power of the queue comes from calling commands -that could operate asynchronously. For example: - -.. code-block:: javascript - - function f(x) {alert(x)} - MathJax.Callback.Queue( - [f, 1], - ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"], - [f, 2] - ); - -Here, the command ``MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js")`` -is queued between two calls to ``f``. The first call to ``f(1)`` will -be made immediately, then the :meth:`MathJax.Ajax.Require` statement -will be performed. Since the ``Require`` method loads a file, it -operates asynchronously, and its return value is a `MathJax.Callback` -object that will be called when the file is loaded. The call to -``f(2)`` will not be made until that callback is performed, -effectively synchronizing the second call to ``f`` with the completion -of the file loading. This is equivalent to - -.. code-block:: javascript - - f(1); - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js", [f, 2]); - -since the ``Require()`` command allows you to specify a (single) -callback to be performed on the completion of the file load. Note, -however, that the queue could be used to synchronize several file -loads along with multiple function calls, so is more flexible. - -For example, - -.. code-block:: javascript - - MathJax.Callback.Queue( - ["Require", MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"], - [f, 1], - ["Require", MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"], - [f, 2] - ); - -would load the AMSmath extension, then call ``f(1)`` then load the -local AMSmath modifications, and then call ``f(2)``, with each action -waiting for the previous one to complete before being performed -itself. - - -Callbacks versus Callback Specifications -======================================== - -If one of the callback specifications is an actual callback object -itself, then the queue will wait for that action to be performed -before proceeding. For example, - -.. code-block:: javascript - - MathJax.Callback.Queue( - [f, 1], - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"), - [f, 2], - ); - -starts the loading of the AMSmath extension before the queue is -created, and then creates the queue containing the call to ``f``, the -callback for the file load, and the second call to ``f``. The queue -performs ``f(1)``, waits for the file load callback to be called, and -then calls ``f(2)``. The difference between this and the second -example above is that, in this example the file load is started before -the queue is even created, so the file is potentially loaded and -executed before the call to ``f(1)``, while in the example above, the -file load is guaranteed not to begin until after ``f(1)`` is executed. - -As a further example, consider - -.. code-block:: javascript - - MathJax.Callback.Queue( - MathJax.Ajax.Require("[MathJax]/extensions/AMSmath.js"), - [f, 1], - MathJax.Ajax.Require("[MathJax]/config/local/AMSmathAdditions.js"), - [f, 2] - ); - -in comparison to the example above that uses ``["Require", -MathJax.Ajax, "[MathJax]/extensions/AMSmath.js"]`` and ``["Require", -MathJax.Ajax, "[MathJax]/config/local/AMSmathAdditions.js"]`` instead. In that -example, ``AMSmath.js`` is loaded, then ``f(1)`` is called, then the -local additions are loaded, then ``f(2)`` is called. - -Here, however, both file loads are started before the queue is -created, and are operating in parallel (rather than sequentially as in -the earlier example). It is possible for the loading of the local -additions to complete before the AMSmath extension is loaded in this -case, which was guaranteed **not** to happen in the other example. -Note, however, that ``f(1)`` is guaranteed not to be performed until -after the AMSmath extensions load, and ``f(2)`` will not occur until -after both files are loaded. - -In this way, it is possible to start asynchronous loading of several -files simultaneously, and wait until all of them are loaded (in -whatever order) to perform some command. For instance, - -.. code-block:: javascript - - MathJax.Callback.Queue( - MathJax.Ajax.Require("file1.js"), - MathJax.Ajax.Require("file2.js"), - MathJax.Ajax.Require("file3.js"), - MathJax.Ajax.Require("file4.js"), - [f, "all done"] - ); - -starts four files loading all at once, and waits for all four to -complete before calling ``f("all done")``. The order in which they -complete is immaterial, and they all are being requested -simultaneously. - - -The MathJax Processing Queue -============================ - -MathJax uses a queue stored as ``MathJax.Hub.queue`` to regulate its -own actions so that they operate in the right order even when some -of them include asynchronous operations. You can take advantage of -that queue when you make calls to MathJax methods that need to be -synchronized with the other actions taken by MathJax. It may not -always be apparent, however, which methods fall into that category. - -The main source of asynchronous actions in MathJax is the loading of -external files, so any action that may cause a file to be loaded may -act asynchronously. Many important actions do so, including some that -you might not expect; e.g., typesetting mathematics can cause files to -be loaded. This is because some TeX commands, for example, are rare -enough that they are not included in the core TeX input processor, but -instead are defined in extensions that are loaded automatically when -needed. The typesetting of an expression containing one of these TeX -commands can cause the typesetting process to be suspended while the -file is loaded, and then restarted when the extension has become -available. - -As a result, any call to :meth:`MathJax.Hub.Typeset()` (or -:meth:`MathJax.Hub.Process()`, or :meth:`MathJax.Hub.Update()`, etc.) -could return long before the mathematics is actually typeset, and the -rest of your code may run before the mathematics is available. If you -have code that relies on the mathematics being visible on screen, you -will need to break that out into a separate operation that is -synchronized with the typesetting via the MathJax queue. - -Furthermore, your own typesetting calls may need to wait for file loading -to occur that is already underway, so even if you don't need to access -the mathematics after it is typeset, you may still need to queue the -typeset command in order to make sure it is properly synchronized with -*previous* typeset calls. For instance, if an earlier call -started loading an extension and you start another typeset call before -that extension is fully loaded, MathJax's internal state may be in -flux, and it may not be prepared to handle another typeset operation -yet. This is even more important if you are using other libraries -that may call MathJax, in which case your code may not be aware of the -state that MathJax is in. - -For these reasons, it is always best to perform typesetting operations -through the MathJax queue, and the same goes for any other action -that could cause files to load. A good rule of thumb is that, if a -MathJax function includes a callback argument, that function may operate -asynchronously; you should use the MathJax queue to perform it and -any actions that rely on its results. - -To place an action in the MathJax queue, use the -:meth:`MathJax.Hub.Queue()` command. For example - -.. code-block:: javascript - - MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathDiv"]); - -would queue the command ``MathJax.Hub.Typeset("MathDiv")``, causing -the contents of the DOM element with `id` equal to ``MathDiv`` to be -typeset. - -One of the uses of the MathJax queue is to allow you to synchronize an -action with the startup process for MathJax. If you want to have a -function performed after MathJax has become completely set up (and -performed its initial typesetting of the page), you can push it onto -the ``MathJax.Hub.queue`` so that it won't be performed until MathJax -finishes everything it has queued when it was loaded. For example, - -.. code-block:: html - - - diff --git a/docs/source/signals.rst b/docs/source/signals.rst deleted file mode 100644 index a5d7d6cd1..000000000 --- a/docs/source/signals.rst +++ /dev/null @@ -1,164 +0,0 @@ -.. _using-signals: - -************* -Using Signals -************* - -Because much of MathJax operates asynchronously, it is important for -MathJax to be able to indicate to other components operating on the -page that certain actions have been taken. For example, as MathJax is -starting up, it loads external files such as its configuration files -and the various input and output :term:`jax` that are used on the -page. This means that MathJax may not be ready to run until well -after the `` - -into the ```` block of your document. (It can also go in the -```` if necessary, but the head is to be preferred.) This will -load the latest version of MathJax from the distributed server, and -configure it to recognize mathematics in both TeX and MathML notation, -and ask it to generate its output using MathML if the browser supports -that well enough, and otherwise use HTML-with-CSS to display the -mathematics. This is one of the most general configurations, and -should suffice for most people's needs. Other configurations are -available, however, and you can also provide additional configuration -parameters to taylor one of the configurations to your needs. More -details can be found in the :ref:`Loading and Configuring MathJax -` instructions. - -The use of ``cdn.mathjax.org`` is governed by its `terms of service -`_, so be -sure to read that before linking to the MathJax CDN server. - -To see how to enter mathematics in your web pages, see `Putting -mathematics in a web page`_ below. - -Secure Access to the CDN ------------------------- - -When the the MathJax CDN is accessed via the address -``http://cdn.mathjax.org``, data is downloaded over a regular, insecure -HTTP connection. This introduces a security risk, since it is -possible a hostile 3rd party could intercept the MathJax program data, -and replace it. This is sometimes called a -`man-in-the-middle `_ attack. - -To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be done easily by using the -following `` - -Currently, the Amazon Cloudfront service used by the MathJax CDN does -not support the use of a human-friendly name like ``cdn.mathjax.org`` -for secure connections; however, the address given above is stable and -safe to use. - - -Installing Your Own Copy of MathJax -=================================== - -We recommend using the CDN service if you can, but you can also install -MathJax on your own server, or locally on your own hard disk. To do -so you will need to do the following things: - -1. Obtain a copy of MathJax and make it available on your server or -hard disk. - -2. Configure MathJax to suit the needs of your site. - -3. Link MathJax into the web pages that are to include mathematics. - -4. Put mathematics into your web pages so that MathJax can display - it. - - -Obtaining and Installing MathJax --------------------------------- - -The easiest way to set up MathJax is to obtain the v2.0 archive from -the `MathJax download page `_ (you -should obtain a file named something like -``mathjax-MathJax-v2.0-X-XXXXXXXX.zip`` where the X's are random -looking numbers and letters). This archive includes both the MathJax -code and the MathJax webfonts, so it is the only file you need. Note -that this is different from v1.0 and earlier releases, which had the -fonts separate from the rest of the code. - -Unpack the archive and place the resulting MathJax folder onto your -web server at a convenient location where you can include it into your -web pages. For example, making ``MathJax`` a top-level directory on -your server would be one natural way to do this. That would let you -refer to the main MathJax file via the URL ``/MathJax/MathJax.js`` -from within any page on your server. - -**Note:** While this is the easiest way to set up MathJax initially, there -is a better way to do it if you want to be able to keep your copy of -MathJax up-to-date. That uses the `Git `_ version -control system, and is described in the :ref:`Installing MathJax -` document. If you prefer using `Subversion -`_, you can also use that to get a copy -of MathJax (see :ref:`Installing MathJax via SVN -`). - -Once you have MathJax set up on your server, you can test it using the -files in the ``MathJax/test`` directory. If you are putting MathJax -on a server, load them in your browser using their web addresses -rather than opening them locally (i.e., use an ``http://`` URL rather -than a ``file://`` URL). When you view the ``index.html`` file, after -a few moments you should see a message indicating that MathJax appears -to be working. If not, check that the files have been transferred to -the server completely and that the permissions allow the server to -access the files and folders that are part of the MathJax directory. -(Be sure to verify the MathJax folder's permissions as well.) Check -the server log files for any errors that pertain to the MathJax -installation; this may help locate problems in the permission or -locations of files. - - -Configuring your copy of MathJax --------------------------------- - -When you include MathJax into your web pages as described below, it -will load the file ``config/TeX-AMS-MML_HTMLorMML.js`` (i.e., the file -named ``TeX-AMS-MML_HTMLorMML.js`` in the ``config`` folder of the -main ``MathJax`` folder). This file preloads all the most -commonly-used components of MathJax, allowing it to process -mathematics that is in the TeX or LaTeX format, or in MathML notation. -It will produce output in MathML form if the user's browser supports -that sufficiently, and will use HTML-with-CSS to render the -mathematics otherwise. - -There are a number of other prebuilt configuration files that you can -choose from as well, or you could use the ``config/default.js`` file and -customize the settings yourself. The combined configuration files are -described more fully in :ref:`Common Configurations -`, and the configuration options are described in -:ref:`Configuration Options `. - -Note: The configuration process changed between MathJax v1.0 and v1.1, -so if you have existing pages that use MathJax v1.0, you may need to -modify the tag that loads MathJax so that it conforms with the new -configuration process. See :ref:`Installing and Configuring MathJax -` for more details. - - -Linking your copy of MathJax into a web page --------------------------------------------- - -You can include MathJax in your web page by putting - -.. code-block:: html - - - -in your document's ```` block. Here, ``path-to-MathJax`` should -be replaced by the URL for the main MathJax directory, so if you have -put the ``MathJax`` directory at the top level of you server's web -site, you could use - -.. code-block:: html - - - -to load MathJax in your page. For example, your page could look like - -.. code-block:: html - - - - ... - - - - ... - - - -If you have installed MathJax on a server that is in a different -domain from the one serving the page that loads MathJax, be sure to -read the :ref:`Notes About Shared Servers ` for -more details. In that case, you may wish to consider using the -:ref:`MathJax CDN ` rather than installing your own copy -of MathJax. - - -Putting mathematics in a web page -================================= - -To put mathematics in your web page, you can use :term:`TeX` and -:term:`LaTeX` notation, :term:`MathML` notation, :term:`AsciiMath` -notation, or a combination of all three within the same page; the -MathJax configuration tells MathJax which you want to use, and how you -plan to indicate the mathematics when you are using TeX notation. The -configuration file used in the examples above tells MathJax to look -for both TeX and MathML notation within your pages. Other -configuration files tell MathJax to use AsciiMath input. These three -formats are described in more detail below. - - -.. _tex-and-latex-input: - -TeX and LaTeX input -------------------- - -Mathematics that is written in :term:`TeX` or :term:`LaTeX` format is -indicated using *math delimiters* that surround the mathematics, -telling MathJax what part of your page represents mathematics and what -is normal text. There are two types of equations: ones that occur -within a paragraph (in-line mathematics), and larger equations that -appear separated from the rest of the text on lines by themselves -(displayed mathematics). - -The default math delimiters are ``$$...$$`` and ``\[...\]`` for -displayed mathematics, and ``\(...\)`` for in-line mathematics. Note -in particular that the ``$...$`` in-line delimiters are **not** used -by default. That is because dollar signs appear too often in -non-mathematical settings, which could cause some text to be treated -as mathematics unexpectedly. For example, with single-dollar -delimiters, "... the cost is $2.50 for the first one, and $2.00 for -each additional one ..." would cause the phrase "2.50 for the first -one, and" to be treated as mathematics since it falls between dollar -signs. For this reason, if you want to use single-dollars for in-line -math mode, you must enable that explicitly in your configuration: - -.. code-block:: html - - - - -See the ``config/default.js`` file, or the :ref:`tex2jax configuration -options ` page, for additional configuration -parameters that you can specify for the `tex2jax` preprocessor, -which is the component of MathJax that identifies TeX notation within -the page. See the :ref:`TeX and LaTeX ` page for -more on MathJax's support for TeX, and in particular how to deal with -single dollar signs in your text when you have enabled single -dollar-sign delimiters. - -Here is a complete sample page containing TeX mathematics (also -available in the `test/sample-tex.html -`_ -file): - -.. code-block:: html - - - - - MathJax TeX Test Page - - - - - When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are - $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$ - - - -Since the TeX notation is part of the text of the page, there are some -caveats that you must keep in mind when you enter your mathematics. -In particular, you need to be careful about the use of less-than -signs, since those are what the browser uses to indicate the start of -a tag in HTML. Putting a space on both sides of the less-than sign -should be sufficient, but see :ref:`TeX and LaTeX support -` for details. - -If you are using MathJax within a blog, wiki, or other content -management system, the markup language used by that system may -interfere with the TeX notation used by MathJax. For example, if your -blog uses :term:`Markdown` notation for authoring your pages, the -underscores used by TeX to indicate subscripts may be confused with -the use of underscores by Markdown to indicate italics, and the two -uses may prevent your mathematics from being displayed. See :ref:`TeX -and LaTeX support ` for some suggestions about how to -deal with the problem. - -There are a number of extensions for the TeX input processor that are -loaded by the ``TeX-AMS-MML_HTMLorMML`` configuration. These include: - -- `TeX/AMSmath.js`, which defines the AMS math environments and - macros, - -- `TeX/AMSsymbols.js`, which defines the macros for the symbols in - the `msam10` and `msbm10` fonts, - -- `TeX/noErrors.js`, which shows the original TeX code rather than - an error message when there is a problem processing the TeX, and - -- `TeX/noUndefined.js`, which prevents undefined macros from - producing an error message, and instead shows the macro name in red. - -Other extensions may be loaded automatically when needed. See -:ref:`TeX and LaTeX support ` for details on the other -TeX extensions that are available. - - -.. _mathml-input: - -MathML input ------------- - -For mathematics written in :term:`MathML` notation, you mark your -mathematics using standard ```` tags, where ```` represents displayed mathematics and ```` or just ```` represents in-line mathematics. - -Note that this will work in HTML files, not just XHTML files (MathJax -works with both), and that the web page need not be served with any -special MIME-type. Also note that, unless you are using XHTML rather -than HTML, you should not include a namespace prefix for your -```` tags; for example, you should not use ```` except -in a file where you have tied the ``m`` namespace to the MathML DTD by -adding the ``xmlns:m="http://www.w3.org/1998/Math/MathML"`` attribtue -to your file's ```` tag. - -Although it is not required, it is recommended that you include the -``xmlns="http://www.w3.org/1998/Math/MathML"`` attribute on all -```` tags in your document (and this is preferred to the use of -a namespace prefix like ``m:`` above, since those are deprecated in -HTML5) in order to make your MathML work in the widest range of -situations. - -Here is a complete sample page containing MathML mathematics (also -available in the `test/sample-mml.html -`_ -file): - -.. code-block:: html - - - - - MathJax MathML Test Page - - - - -

- When - - a0 - , - there are two solutions to - - ax2 - + bx - + c = 0 - - and they are - - x = - - - - - b - ± - - b2 - - 4ac - - - 2a - - - . - -

- - - - -When entering MathML notation in an HTML page (rather than an XHTML -page), you should **not** use self-closing tags, but should use explicit -open and close tags for all your math elements. For example, you -should use - -.. code-block:: html - - - -rather than ```` in an HTML document. If you -use the self-closing form, some browsers will not build the math tree -properly, and MathJax will receive a damaged math structure, which -will not be rendered as the original notation would have been. -Typically, this will cause parts of your expression to not be -displayed. Unfortunately, there is nothing MathJax can do about that, -since the browser has incorrectly interpreted the tags long before -MathJax has a chance to work with them. - -The component of MathJax that recognizes MathML notation within the -page is called the `mml2jax` extension, and it has only a few -configuration options; see the ``config/default.js`` file or the -:ref:`mml2jax configuration options ` page for more -details. See the :ref:`MathML ` page for more on -MathJax's MathML support. - - -.. _asciimath-input: - -AsciiMath input ---------------- - -MathJax v2.0 includes a new input format: :term:`AsciiMath` notation. -For mathematics written in this form, you mark your mathematical -expressions by surrounding them in "back-ticks", i.e., ```...```. - -Here is a complete sample page containing AsciiMath notation (also -available in the `test/sample-asciimath.html -`_ -file): - -.. code-block:: html - - - - - MathJax AsciiMath Test Page - - - - -

When `a != 0`, there are two solutions to `ax^2 + bx + c = 0` and - they are

-

- `x = (-b +- sqrt(b^2-4ac))/(2a) .` -

- - - - -The component of MathJax that recognizes asciimath notation within the -page is called the `asciimath2jax` extension, and it has only a few -configuration options; see the ``config/default.js`` file or the -:ref:`asciimath2jax configuration options ` page for more -details. See the :ref:`AsciiMath support ` page for more on -MathJax's AsciiMath support. - - - -Where to go from here? -====================== - -If you have followed the instructions above, you should now have -MathJax installed and configured on your web server, and you should be -able to use it to write web pages that include mathematics. At this -point, you can start making pages that contain mathematical content! - -You could also read more about the details of how to :ref:`customize -MathJax `. - -If you are trying to use MathJax in blog or wiki software or in some -other content-management system, you might want to read about :ref:`using -MathJax in popular platforms `. - -If you are working on dynamic pages that include mathematics, you -might want to read about the :ref:`MathJax Application Programming -Interface ` (its API), so you know how to include -mathematics in your interactive pages. - -If you are having trouble getting MathJax to work, you can read more -about :ref:`installing MathJax `, or :ref:`loading and -configuring MathJax `. - -Finally, if you have questions or comments, or want to help support -MathJax, you could visit the :ref:`MathJax community forums -` or the :ref:`MathJax bug tracker -`. diff --git a/docs/source/startup.rst b/docs/source/startup.rst deleted file mode 100644 index 3258f6e59..000000000 --- a/docs/source/startup.rst +++ /dev/null @@ -1,186 +0,0 @@ -.. _startup-sequence: - -**************************** -The MathJax Startup Sequence -**************************** - -When you load ``MathJax.js`` into a web page, it configures itself and -immediately begins loading the components it needs. As MathJax starts -up, it uses its :ref:`signaling mechanism ` -to indicate the actions that it is taking so that MathJax extensions -can tie into the initialization process, and so other applications -within the page can synchronize their actions with MathJax. - -The startup process performs the following actions: - -- It creates the ``MathJax`` variable, and defines the following - subsystems: - - - ``MathJax.Object`` (object-oriented programming model) - - ``MathJax.Callback`` (callbacks, signals, and queues) - - ``MathJax.Ajax`` (file-loading and style-creation code) - - ``MathJax.HTML`` (support code for creating HTML elements) - - ``MathJax.Message`` (manages the menu line in the lower left) - - ``MathJax.Hub`` (the core MathJax functions) - -.. - -- It then creates the base ``MathJax.InputJax``, - ``MathJax.OutputJax``, and ``MathJax.ElementJax`` objects. - -.. - -- MathJax sets up the default configuration, and creates the - signal objects used for the startup and hub actions. - -.. - -- MathJax locates the `` - -If you are using the CDN, you can make a local configuration file on -your own server, and load MathJax itself from the CDN and your -configuration file from your server. See :ref:`Using a Local -Configuration File with the CDN ` for details. - - -.. _tex-eq-numbers: - -Autmatic Equation Numering -========================== - -New in MathJax v2.0 is the ability to have equations be numbered -automatically. This functionality is turned off by default, so -that pages don't change -when you update from v1.1 to v2.0, but it is easy to configure MathJax -to produce automatic equation numbers by adding: - -.. code-block:: html - - - -to your page just before the `` - - -will load the `autobold` TeX extension in addition to those already -included in the ``TeX-AMS_HTML`` configuration file. - -You can also load these extensions from within a math expresion using -the non-standard ``\require{extension}`` macro. For example - -.. code-block:: latex - - \(\require{color}\) - -would load the `color` extension into the page. This way you you can -load extensions into pages that didn't load them in their -configurations (and prevents you from having to load all the -extensions into all pages even if they aren't used). - -It is also possible to create a macro that will autoload an extension -when it is first used (under the assumption that the extension will -redefine it to perform its true function). For example - -.. code-block:: html - - - -would declare the ``\cancel``, ``\bcancel``, ``\xcancel``, and -``\cancelto`` macros to load the `cancel` extension (where they are -actually defined). Whichever is used first will cause the extension -to be loaded, redefining all four to their proper values. Note that -this may be better than loading the extension explicitly, since it -avoids loading the extra file on pages where these macros are *not* -used. The `sample autoloading macros -`_ -example page shows this in action. The `autoload-all` extension below -defines such macros for *all* the extensions so that if you include -it, MathJax will have access to all the macros it knows about. - -The main extensions are described below. - - -Action ------- - -The `action` extension gives you access to the MathML ```` -element. It defines three new non-standard macros: - -.. describe:: \\mathtip{math}{tip} - - Use ``tip`` (in math mode) as tooltip for ``math``. - -.. describe:: \\texttip{math}{tip} - - Use ``tip`` (in text mode) as tooltip for ``math``. - -.. describe:: \\toggle{math1}{math2}...\\endtoggle - - Show ``math1``, and when clicked, show ``math2``, and so on. - When the last one is clicked, go back to math1. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["action.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -AMSmath and AMSsymbols ----------------------- - -The `AMSmath` extension implements AMS math environments and macros, and -the `AMSsymbols` extension implements macros for accessing the AMS symbol -fonts. These are already included in the combined configuration files that -load the TeX input processor. To use these extensions in your own -configurations, add them to the `extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["AMSmath.js", "AMSsymbols.js", ...] - } - -See the list of control sequences at the end of this document for details -about what commands are implemented in these extensions. - -If you are not using one of the combined configuration files, the `AMSmath` -extension will be loaded automatically when you first use one of the math -environments it defines, but you will have to load it explicitly if you -want to use the other macros that it defines. The `AMSsymbols` extension -is not loaded automatically, so you must include it explicitly if you want -to use the macros it defines. - -Both extensions are included in all the combined configuration files -that load the TeX input processor. - - -Autobold --------- - -The `autobold` extension adds ``\boldsymbol{...}`` around mathematics that -appears in a section of an HTML page that is in bold. - -.. code-block:: javascript - - TeX: { - extensions: ["autobold.js"] - } - -This extension is **not** loaded by the combined configuration files. - - -BBox ----- - -The `bbox` extension defines a new macro for adding background colors, -borders, and padding to your math expressions. - -.. describe:: \\bbox[options]{math} - - puts a bounding box around ``math`` using the provided ``options``. - The options can be one of the following: - - 1. A color name used for the background color. - 2. A dimension (e.g., ``2px``) to be used as a padding around the - mathematics (on all sides). - 3. Style attributes to be applied to the mathematics (e.g., - ``border:1px solid red``). - 4. A combination of these separated by commas. - -Here are some examples: - -.. code-block:: latex - - \bbox[red]{x+y} % a red box behind x+y - \bbox[2pt]{x+1} % an invisible box around x+y with 2pt of extra space - \bbox[red,2pt]{x+1} % a red box around x+y with 2pt of extra space - \bbox[5px,border:2px solid red] - % a 2px red border around the math 5px away - -This extension is **not** included in any of the combined configurations, -but it will be loaded automatically, so you do not need to include it -in your `extensions` array. - - -Begingroup ----------- - -The `begingroup` extension implements commands that provide a -mechanism for localizing macro defintions so that they are not -permanent. This is useful if you have a blog site, for example, and -want to isolate changes that your readers make in their comments so -that they don't affect later comments. - -It defines two new non-standard macros, ``\begingroup`` and -``\endgroup``, that are used to start and stop a local namespace for -macros. Any macros that are defined between the ``\begingroup`` and -``\endgroup`` will be removed after the ``\endgroup`` is executed. -For example, if you put ``\(\begingroup\)`` at the top of each reader's -comments and ``\(\endgroup\)`` at the end, then any macros they define -within their response will be removed after it is processed. - -In addition to these two macros, the `begingroup` extension defines -the standard ``\global`` and ``\gdef`` control sequences from TeX. -(The ``\let``, ``\def``, ``\newcommand``, and ``\newenvironment`` -control sequences are already defined in the core TeX input jax.) - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["begingroup.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Cancel ------- - -The `cancel` extension defines the following macros: - -.. describe:: \\cancel{math} - - Strikeout ``math`` from lower left to upper right. - -.. describe:: \\bcancel{math} - - Strikeout ``math`` from upper left to lower right. - -.. describe:: \\xcancel{math} - - Strikeout ``math`` with an "X". - -.. describe:: \\cancelto{value}{math} - - Strikeout ``math`` with an arrow going to ``value``. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["cancel.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Color ------ - -The ``\color`` command in the core TeX input jax is not standard in -that it takes the mathematics to be colored as one of its parameters, -whereas the LaTeX ``\color`` command is a switch that changes the -color of everything that follows it. - -The `color` extension changes the ``\color`` command to be compatible -with the LaTeX implementation, and also defines ``\colorbox``, -``\fcolorbox``, and ``\DefineColor``, as in the LaTeX color package. -It defines the standard set of colors (Apricot, Aquamarine, -Bittersweet, and so on), and provides the RGB and grey-scale color -spaces in addition to named colors. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["color.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands, -and have ``\color`` be compatible with LaTeX usage. - - -Enclose -------- - -The `enclose` extension gives you access to the MathML ```` -element for adding boxes, ovals, strikethroughs, and other marks over -your mathematics. It defines the following non-standard macro: - -.. describe:: \\enclose{notation}[attributes]{math} - - Where ``notation`` is a comma-separated list of MathML - ```` notations (e.g., ``circle``, ``left``, - ``updiagonalstrike``, ``longdiv``, etc.), ``attributes`` are - MathML attribute values allowed on the ```` element - (e.g., ``mathcolor="red"``, ``mathbackground="yellow"``), and - ``math`` is the mathematics to be enclosed. - -For example - -.. code-block:: latex - - \enclose{circle}[mathcolor="red"]{x} - \enclose{circle}[mathcolor="red"]{\color{black}{x}} - \enclose{circle,box}{x} - \enclose{circle}{\enclose{box}{x}} - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["enclose.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -Extpfeil --------- - -The `extpfeil` extension adds more macros for producing extensible -arrows, including ``\xtwoheadrightarrow``, ``\xtwoheadleftarrow``, -``\xmapsto``, ``\xlongequal``, ``\xtofrom``, and a non-standard -``\Newextarrow`` for creating your own extensible arrows. The latter -has the form - -.. describe:: \\Newextarrow{\\cs}{lspace,rspace}{unicode-char} - - where ``\cs`` is the new control sequence name to be defined, - ``lspace`` and ``rspace`` are integers representing the amount of - space (in suitably small units) to use at the left and right of - text that is placed above or below the arrow, and ``unicode-char`` - is a number representing a unicode character position in either - decimal or hexadecimal notation. - -For example - -.. code-block:: latex - - \Newextarrow{\xrightharpoonup}{5,10}{0x21C0} - -defines an extensible right harpoon with barb up. Note that MathJax -knows how to stretch only a limited number of characters, so you may -not actually get a stretchy character this way. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["extpfeil.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -HTML ----- - -The `HTML` extension gives you access to some HTML features like -styles, classes, element ID's and clickable links. It defines the -following non-standard macros: - -.. describe:: \\href{url}{math} - - Makes ``math`` be a link to the page given by ``url``. - -.. describe:: \\class{name}{math} - - Attaches the CSS class ``name`` to the output associated with - ``math`` when it is included in the HTML page. This allows your - CSS to style the element. - -.. describe:: \\cssId{id}{math} - - Attaches an id attribute with value ``id`` to the output - associated with ``math`` when it is included in the HTML page. - This allows your CSS to style the element, or your javascript to - locate it on the page. - -.. describe:: \\style{css}{math} - - Adds the give ``css`` declarations to the element associated with - ``math``. - -For example: - -.. code-block:: latex - - x \href{why-equal.html}{=} y^2 + 1 - - (x+1)^2 = \class{hidden}{(x+1)(x+1)} - - (x+1)^2 = \cssId{step1}{\style{visibility:hidden}{(x+1)(x+1)}} - -This extension is **not** included in any of the combined configurations, -but it will be loaded automatically when any of these macros is used, -so you do not need to include it explicitly in your configuration. - - -mhchem ------- - -The `mhchem` extensions implements the ``\ce``, ``\cf``, and ``\cee`` -chemical equation macros of the LaTeX `mhchem` package. See the -`mhchem CPAN page `_ for more -information and a link to the documentation for `mhchem`. - -For example - -.. code-block:: latex - - \ce{C6H5-CHO} - \ce{$A$ ->[\ce{+H2O}] $B$} - \ce{SO4^2- + Ba^2+ -> BaSO4 v} - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["mhchem.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - - -noErrors --------- - -The `noErrors` extension prevents TeX error messages from being -displayed and shows the original TeX code instead. You can configure -whether the dollar signs are shown or not for in-line math, and -whether to put all the TeX on one line or use multiple lines (if the -original text contained line breaks). - -This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the `noErrors` extension in -your own configuration, or to modify its parameters, add something like the -following to your :meth:`MathJax.Hub.Config()` call: - -.. code-block:: javascript - - TeX: { - extensions: ["noErrors.js"], - noErrors: { - inlineDelimiters: ["",""], // or ["$","$"] or ["\\(","\\)"] - multiLine: true, // false for TeX on all one line - style: { - "font-size": "90%", - "text-align": "left", - "color": "black", - "padding": "1px 3px", - "border": "1px solid" - // add any additional CSS styles that you want - // (be sure there is no extra comma at the end of the last item) - } - } - } - -Display-style math is always shown in multi-line format, and without -delimiters, as it will already be set off in its own centered -paragraph, like standard display mathematics. - -The default settings place the invalid TeX in a multi-line box with a -black border. If you want it to look as though the TeX is just part of -the paragraph, use - -.. code-block:: javascript - - TeX: { - noErrors: { - inlineDelimiters: ["$","$"], // or ["",""] or ["\\(","\\)"] - multiLine: false, - style: { - "font-size": "normal", - "border": "" - } - } - } - -You may also wish to set the font family or other CSS values here. - -If you are using a combined configuration file that loads the TeX -input processor, it will also load the `noErrors` extension -automatically. If you want to disable the `noErrors` extension so -that you receive the normal TeX error messages, use the following -configuration: - -.. code-block:: javascript - - TeX: { noErrors: { disabled: true } } - -Any math that includes errors will be replaced by an error message -indicating what went wrong. - - -noUndefined ------------ - -The `noUndefined` extension causes undefined control sequences to be -shown as their macro names rather than generating error messages. So -``$X_{\xxx}$`` would display as an "X" with a subscript consisting of the -text ``\xxx`` in red. - -This extension is loaded by all the combined configuration files that -include the TeX input processor. To enable the `noUndefined` extension -in your own configuration, or to modify its parameters, add something like -the following to your :meth:`MathJax.Hub.Config()` call: - -.. code-block:: javascript - - TeX: { - extensions: ["noUndefined.js"], - noUndefined: { - attributes: { - mathcolor: "red", - mathbackground: "#FFEEEE", - mathsize: "90%" - } - } - } - -The ``attributes`` setting specifies attributes to apply to the -``mtext`` element that encodes the name of the undefined macro. The -default values set ``mathcolor`` to ``"red"``, but do not set any -other attributes. This example sets the background to a light pink, -and reduces the font size slightly. - -If you are using a combined configuration file that loads the TeX -input processor, it will also load the `noUndefined` extension -automatically. If you want to disable the `noUndefined` extension so -that you receive the normal TeX error messages for undefined macros, -use the following configuration: - -.. code-block:: javascript - - TeX: { noUndefined: { disabled: true } } - -Any math that includes an undefined control sequence name will be -replaced by an error message indicating what name was undefined. - - -Unicode support ---------------- - -The `unicode` extension implements a ``\unicode{}`` extension to TeX -that allows arbitrary unicode code points to be entered in your -mathematics. You can specify the height and depth of the character -(the width is determined by the browser), and the default font from -which to take the character. - -Examples: - -.. code-block:: latex - - \unicode{65} % the character 'A' - \unicode{x41} % the character 'A' - \unicode[.55,0.05]{x22D6} % less-than with dot, with height .55em and depth 0.05em - \unicode[.55,0.05][Geramond]{x22D6} % same taken from Geramond font - \unicode[Garamond]{x22D6} % same, but with default height, depth of .8em,.2em - -Once a size and font are provided for a given unicode point, they need -not be specified again in subsequent ``\unicode{}`` calls for that -character. - -The result of ``\unicode{...}`` will have TeX class `ORD` (i.e., it -will act like a variable). Use ``\mathbin{...}``, ``\mathrel{...}``, -etc., to specify a different class. - -Note that a font list can be given in the ``\unicode{}`` macro, but -Internet Explorer has a buggy implementation of the ``font-family`` -CSS attribute where it only looks in the first font in the list that -is actually installed on the system, and if the required glyph is not -in that font, it does not look at later fonts, but goes directly to -the default font as set in the `Internet-Options/Font` panel. For -this reason, the default font list for the ``\unicode{}`` macro is -``STIXGeneral, 'Arial Unicode MS'``, so if the user has :term:`STIX` -fonts, the symbol will be taken from that (almost all the symbols are -in `STIXGeneral`), otherwise MathJax tries `Arial Unicode MS`. - -The `unicode` extension is loaded automatically when you first use the -``\unicode{}`` macro, so you do not need to add it to the `extensions` -array. You can configure the extension as follows: - -.. code-block:: javascript - - TeX: { - unicode: { - fonts: "STIXGeneral, 'Arial Unicode MS'" - } - } - - -Autoload-all ------------- - -The `autoload-all` extension predefines all the macros from the -extensions above so that they autoload the extensions when first -used. A number of macros already do this, e.g., ``\unicode``, but -this extension defines the others to do the same. That way MathJax -will have access to all the macros that it knows about. - -To use this extension in your own configurations, add it to the -`extensions` array in the TeX block. - -.. code-block:: javascript - - TeX: { - extensions: ["autoload-all.js"] - } - -This extension is **not** included in any of the combined configurations, -and will not be loaded automatically, so you must include it -explicitly in your configuration if you wish to use these commands. - -Note that `autoload-all` redefines ``\color`` to be the one from the -`color` extension (the LaTeX-compatible one rather than the -non-standard MathJax version). This is because ``\colorbox`` and -``\fcolorbox`` autoload the `color` extension, which will cause -``\color`` to be redefined, and so for consistency, ``\color`` is -redefined immediately. - -If you wish to retain the original definition of ``\color``, then use -the following - -.. code-block:: html - - - - -.. _tex-commands: - -Supported LaTeX commands -======================== - -This is a long list of the TeX macros supported by MathJax. If the -macro is defined in an extension, the name of the extension follows -the macro name. If the extension is in brackets, the extension will -be loaded automatically when the macro or environment is first used. - -More complete details about how to use these macros, with examples and -explanations, is available at Carol Fisher's `TeX Commands Available -in MathJax -`_ page. - -Symbols -------- - -.. code-block:: latex - - # - % - & - ^ - _ - { - } - ~ - ' - - \ (backslash-space) - \! - \# - \$ - \% - \& - \, - \: - \; - \> - \\ - \_ - \{ - \| - \} - -A -- - -.. code-block:: latex - - \above - \abovewithdelims - \acute - \aleph - \alpha - \amalg - \And - \angle - \approx - \approxeq AMSsymbols - \arccos - \arcsin - \arctan - \arg - \array - \Arrowvert - \arrowvert - \ast - \asymp - \atop - \atopwithdelims - -B -- - -.. code-block:: latex - - \backepsilon AMSsymbols - \backprime AMSsymbols - \backsim AMSsymbols - \backsimeq AMSsymbols - \backslash - \backslash - \bar - \barwedge AMSsymbols - \Bbb - \Bbbk AMSsymbols - \bbox [bbox] - \bcancel cancel - \because AMSsymbols - \begin - \begingroup begingroup non-standard - \beta - \beth AMSsymbols - \between AMSsymbols - \bf - \Big - \big - \bigcap - \bigcirc - \bigcup - \Bigg - \bigg - \Biggl - \biggl - \Biggm - \biggm - \Biggr - \biggr - \Bigl - \bigl - \Bigm - \bigm - \bigodot - \bigoplus - \bigotimes - \Bigr - \bigr - \bigsqcup - \bigstar AMSsymbols - \bigtriangledown - \bigtriangleup - \biguplus - \bigvee - \bigwedge - \binom AMSmath - \blacklozenge AMSsymbols - \blacksquare AMSsymbols - \blacktriangle AMSsymbols - \blacktriangledown AMSsymbols - \blacktriangleleft AMSsymbols - \blacktriangleright AMSsymbols - \bmod - \boldsymbol [boldsymbol] - \bot - \bowtie - \Box AMSsymbols - \boxdot AMSsymbols - \boxed AMSmath - \boxminus AMSsymbols - \boxplus AMSsymbols - \boxtimes AMSsymbols - \brace - \bracevert - \brack - \breve - \buildrel - \bullet - \Bumpeq AMSsymbols - \bumpeq AMSsymbols - -C -- - -.. code-block:: latex - - \cal - \cancel cancel - \cancelto cancel - \cap - \Cap AMSsymbols - \cases - \cdot - \cdotp - \cdots - \ce mhchem - \cee mhchem - \centerdot AMSsymbols - \cf mhchem - \cfrac AMSmath - \check - \checkmark AMSsymbols - \chi - \choose - \circ - \circeq AMSsymbols - \circlearrowleft AMSsymbols - \circlearrowright AMSsymbols - \circledast AMSsymbols - \circledcirc AMSsymbols - \circleddash AMSsymbols - \circledR AMSsymbols - \circledS AMSsymbols - \class [HTML] non-standard - \clubsuit - \colon - \color color - \colorbox color - \complement AMSsymbols - \cong - \coprod - \cos - \cosh - \cot - \coth - \cr - \csc - \cssId [HTML] non-standard - \cup - \Cup AMSsymbols - \curlyeqprec AMSsymbols - \curlyeqsucc AMSsymbols - \curlyvee AMSsymbols - \curlywedge AMSsymbols - \curvearrowleft AMSsymbols - \curvearrowright AMSsymbols - -D -- - -.. code-block:: latex - - \dagger - \daleth AMSsymbols - \dashleftarrow AMSsymbols - \dashrightarrow AMSsymbols - \dashv - \dbinom AMSmath - \ddagger - \ddddot AMSmath - \dddot AMSmath - \ddot - \ddots - \DeclareMathOperator AMSmath - \DefineColor color - \def [newcommand] - \deg - \Delta - \delta - \det - \dfrac AMSmath - \diagdown AMSsymbols - \diagup AMSsymbols - \diamond - \Diamond AMSsymbols - \diamondsuit - \digamma AMSsymbols - \dim - \displaylines - \displaystyle - \div - \divideontimes AMSsymbols - \dot - \doteq - \Doteq AMSsymbols - \doteqdot AMSsymbols - \dotplus AMSsymbols - \dots - \dotsb - \dotsc - \dotsi - \dotsm - \dotso - \doublebarwedge AMSsymbols - \doublecap AMSsymbols - \doublecup AMSsymbols - \Downarrow - \downarrow - \downdownarrows AMSsymbols - \downharpoonleft AMSsymbols - \downharpoonright AMSsymbols - -E -- - -.. code-block:: latex - - \ell - \emptyset - \enclose enclose non-standard - \end - \endgroup begingroup non-standard - \enspace - \epsilon - \eqalign - \eqalignno - \eqcirc AMSsymbols - \eqref [AMSmath] - \eqsim AMSsymbols - \eqslantgtr AMSsymbols - \eqslantless AMSsymbols - \equiv - \eta - \eth AMSsymbols - \exists - \exp - -F -- - -.. code-block:: latex - - \fallingdotseq AMSsymbols - \fbox - \fcolorbox color - \Finv AMSsymbols - \flat - \forall - \frac - \frac AMSmath - \frak - \frown - -G -- - -.. code-block:: latex - - \Game AMSsymbols - \Gamma - \gamma - \gcd - \gdef begingroup - \ge - \genfrac AMSmath - \geq - \geqq AMSsymbols - \geqslant AMSsymbols - \gets - \gg - \ggg AMSsymbols - \gggtr AMSsymbols - \gimel AMSsymbols - \global begingroup - \gnapprox AMSsymbols - \gneq AMSsymbols - \gneqq AMSsymbols - \gnsim AMSsymbols - \grave - \gt - \gt - \gtrapprox AMSsymbols - \gtrdot AMSsymbols - \gtreqless AMSsymbols - \gtreqqless AMSsymbols - \gtrless AMSsymbols - \gtrsim AMSsymbols - \gvertneqq AMSsymbols - -H -- - -.. code-block:: latex - - \hat - \hbar - \hbox - \hdashline - \heartsuit - \hline - \hom - \hookleftarrow - \hookrightarrow - \hphantom - \href [HTML] - \hskip - \hslash AMSsymbols - \hspace - \Huge - \huge - \idotsint AMSmath - -I -- - -.. code-block:: latex - - \iff - \iiiint AMSmath - \iiint - \iint - \Im - \imath - \impliedby AMSsymbols - \implies AMSsymbols - \in - \inf - \infty - \injlim AMSmath - \int - \intercal AMSsymbols - \intop - \iota - \it - -J -- - -.. code-block:: latex - - \jmath - \Join AMSsymbols - -K -- - -.. code-block:: latex - - \kappa - \ker - \kern - -L -- - -.. code-block:: latex - - \label [AMSmath] - \Lambda - \lambda - \land - \langle - \LARGE - \Large - \large - \LaTeX - \lbrace - \lbrack - \lceil - \ldotp - \ldots - \le - \leadsto AMSsymbols - \left - \Leftarrow - \leftarrow - \leftarrowtail AMSsymbols - \leftharpoondown - \leftharpoonup - \leftleftarrows AMSsymbols - \Leftrightarrow - \leftrightarrow - \leftrightarrows AMSsymbols - \leftrightharpoons AMSsymbols - \leftrightsquigarrow AMSsymbols - \leftroot - \leftthreetimes AMSsymbols - \leq - \leqalignno - \leqq AMSsymbols - \leqslant AMSsymbols - \lessapprox AMSsymbols - \lessdot AMSsymbols - \lesseqgtr AMSsymbols - \lesseqqgtr AMSsymbols - \lessgtr AMSsymbols - \lesssim AMSsymbols - \let [newcommand] - \lfloor - \lg - \lgroup - \lhd AMSsymbols - \lim - \liminf - \limits - \limsup - \ll - \llap - \llcorner AMSsymbols - \Lleftarrow AMSsymbols - \lll AMSsymbols - \llless AMSsymbols - \lmoustache - \ln - \lnapprox AMSsymbols - \lneq AMSsymbols - \lneqq AMSsymbols - \lnot - \lnsim AMSsymbols - \log - \Longleftarrow - \longleftarrow - \Longleftrightarrow - \longleftrightarrow - \longmapsto - \Longrightarrow - \longrightarrow - \looparrowleft AMSsymbols - \looparrowright AMSsymbols - \lor - \lower - \lozenge AMSsymbols - \lrcorner AMSsymbols - \Lsh AMSsymbols - \lt - \lt - \ltimes AMSsymbols - \lVert AMSmath - \lvert AMSmath - \lvertneqq AMSsymbols - -M -- - -.. code-block:: latex - - \maltese AMSsymbols - \mapsto - \mathbb - \mathbf - \mathbin - \mathcal - \mathchoice [mathchoice] - \mathclose - \mathfrak - \mathinner - \mathit - \mathop - \mathopen - \mathord - \mathpunct - \mathrel - \mathring AMSmath - \mathrm - \mathscr - \mathsf - \mathstrut - \mathtip action non-standard - \mathtt - \matrix - \max - \mbox - \measuredangle AMSsymbols - \mho AMSsymbols - \mid - \middle - \min - \mit - \mkern - \mmlToken non-standard - \mod - \models - \moveleft - \moveright - \mp - \mskip - \mspace - \mu - \multimap AMSsymbols - -N -- - -.. code-block:: latex - - \nabla - \natural - \ncong AMSsymbols - \ne - \nearrow - \neg - \negmedspace AMSmath - \negthickspace AMSmath - \negthinspace - \neq - \newcommand [newcommand] - \newenvironment [newcommand] - \Newextarrow extpfeil - \newline - \nexists AMSsymbols - \ngeq AMSsymbols - \ngeqq AMSsymbols - \ngeqslant AMSsymbols - \ngtr AMSsymbols - \ni - \nLeftarrow AMSsymbols - \nleftarrow AMSsymbols - \nLeftrightarrow AMSsymbols - \nleftrightarrow AMSsymbols - \nleq AMSsymbols - \nleqq AMSsymbols - \nleqslant AMSsymbols - \nless AMSsymbols - \nmid AMSsymbols - \nobreakspace AMSmath - \nolimits - \normalsize - \not - \notag [AMSmath] - \notin - \nparallel AMSsymbols - \nprec AMSsymbols - \npreceq AMSsymbols - \nRightarrow AMSsymbols - \nrightarrow AMSsymbols - \nshortmid AMSsymbols - \nshortparallel AMSsymbols - \nsim AMSsymbols - \nsubseteq AMSsymbols - \nsubseteqq AMSsymbols - \nsucc AMSsymbols - \nsucceq AMSsymbols - \nsupseteq AMSsymbols - \nsupseteqq AMSsymbols - \ntriangleleft AMSsymbols - \ntrianglelefteq AMSsymbols - \ntriangleright AMSsymbols - \ntrianglerighteq AMSsymbols - \nu - \nVDash AMSsymbols - \nVdash AMSsymbols - \nvDash AMSsymbols - \nvdash AMSsymbols - \nwarrow - -O -- - -.. code-block:: latex - - \odot - \oint - \oldstyle - \Omega - \omega - \omicron - \ominus - \operatorname AMSmath - \oplus - \oslash - \otimes - \over - \overbrace - \overleftarrow - \overleftrightarrow - \overline - \overrightarrow - \overset - \overwithdelims - \owns - -P -- - -.. code-block:: latex - - \parallel - \partial - \perp - \phantom - \Phi - \phi - \Pi - \pi - \pitchfork AMSsymbols - \pm - \pmatrix - \pmb - \pmod - \pod - \Pr - \prec - \precapprox AMSsymbols - \preccurlyeq AMSsymbols - \preceq - \precnapprox AMSsymbols - \precneqq AMSsymbols - \precnsim AMSsymbols - \precsim AMSsymbols - \prime - \prod - \projlim AMSmath - \propto - \Psi - \psi - -Q -- - -.. code-block:: latex - - \qquad - \quad - -R -- - -.. code-block:: latex - - \raise - \rangle - \rbrace - \rbrack - \rceil - \Re - \ref [AMSmath] - \renewcommand [newcommand] - \renewenvironment [newcommand] - \require non-standard - \restriction AMSsymbols - \rfloor - \rgroup - \rhd AMSsymbols - \rho - \right - \Rightarrow - \rightarrow - \rightarrowtail AMSsymbols - \rightharpoondown - \rightharpoonup - \rightleftarrows AMSsymbols - \rightleftharpoons - \rightleftharpoons AMSsymbols - \rightrightarrows AMSsymbols - \rightsquigarrow AMSsymbols - \rightthreetimes AMSsymbols - \risingdotseq AMSsymbols - \rlap - \rm - \rmoustache - \root - \Rrightarrow AMSsymbols - \Rsh AMSsymbols - \rtimes AMSsymbols - \Rule non-standard - \rVert AMSmath - \rvert AMSmath - -S -- - -.. code-block:: latex - - \S - \scr - \scriptscriptstyle - \scriptsize - \scriptstyle - \searrow - \sec - \setminus - \sf - \sharp - \shortmid AMSsymbols - \shortparallel AMSsymbols - \shoveleft AMSmath - \shoveright AMSmath - \sideset AMSmath - \Sigma - \sigma - \sim - \simeq - \sin - \sinh - \skew - \small - \smallfrown AMSsymbols - \smallint - \smallsetminus AMSsymbols - \smallsmile AMSsymbols - \smash - \smile - \Space - \space - \spadesuit - \sphericalangle AMSsymbols - \sqcap - \sqcup - \sqrt - \sqsubset AMSsymbols - \sqsubseteq - \sqsupset AMSsymbols - \sqsupseteq - \square AMSsymbols - \stackrel - \star - \strut - \style [HTML] non-stanard - \subset - \Subset AMSsymbols - \subseteq - \subseteqq AMSsymbols - \subsetneq AMSsymbols - \subsetneqq AMSsymbols - \substack AMSmath - \succ - \succapprox AMSsymbols - \succcurlyeq AMSsymbols - \succeq - \succnapprox AMSsymbols - \succneqq AMSsymbols - \succnsim AMSsymbols - \succsim AMSsymbols - \sum - \sup - \supset - \Supset AMSsymbols - \supseteq - \supseteqq AMSsymbols - \supsetneq AMSsymbols - \supsetneqq AMSsymbols - \surd - \swarrow - -T -- - -.. code-block:: latex - - \tag [AMSmath] - \tan - \tanh - \tau - \tbinom AMSmath - \TeX - \text - \textbf - \textit - \textrm - \textstyle - \texttip action non-standard - \tfrac AMSmath - \therefore AMSsymbols - \Theta - \theta - \thickapprox AMSsymbols - \thicksim AMSsymbols - \thinspace - \tilde - \times - \tiny - \Tiny non-standard - \to - \toggle action non-standard - \top - \triangle - \triangledown AMSsymbols - \triangleleft - \trianglelefteq AMSsymbols - \triangleq AMSsymbols - \triangleright - \trianglerighteq AMSsymbols - \tt - \twoheadleftarrow AMSsymbols - \twoheadrightarrow AMSsymbols - -U -- - -.. code-block:: latex - - \ulcorner AMSsymbols - \underbrace - \underleftarrow - \underleftrightarrow - \underline - \underrightarrow - \underset - \unicode [unicode] non-standard - \unlhd AMSsymbols - \unrhd AMSsymbols - \Uparrow - \uparrow - \Updownarrow - \updownarrow - \upharpoonleft AMSsymbols - \upharpoonright AMSsymbols - \uplus - \uproot - \Upsilon - \upsilon - \upuparrows AMSsymbols - \urcorner AMSsymbols - -V -- - -.. code-block:: latex - - \varDelta AMSsymbols - \varepsilon - \varGamma AMSsymbols - \varinjlim AMSmath - \varkappa AMSsymbols - \varLambda AMSsymbols - \varliminf AMSmath - \varlimsup AMSmath - \varnothing AMSsymbols - \varOmega AMSsymbols - \varphi - \varPhi AMSsymbols - \varpi - \varPi AMSsymbols - \varprojlim AMSmath - \varpropto AMSsymbols - \varPsi AMSsymbols - \varrho - \varsigma - \varSigma AMSsymbols - \varsubsetneq AMSsymbols - \varsubsetneqq AMSsymbols - \varsupsetneq AMSsymbols - \varsupsetneqq AMSsymbols - \vartheta - \varTheta AMSsymbols - \vartriangle AMSsymbols - \vartriangleleft AMSsymbols - \vartriangleright AMSsymbols - \varUpsilon AMSsymbols - \varXi AMSsymbols - \vcenter - \vdash - \Vdash AMSsymbols - \vDash AMSsymbols - \vdots - \vec - \vee - \veebar AMSsymbols - \verb [verb] - \Vert - \vert - \vphantom - \Vvdash AMSsymbols - -W -- - -.. code-block:: latex - - \wedge - \widehat - \widetilde - \wp - \wr - -X -- - -.. code-block:: latex - - \Xi - \xi - \xcancel cancel - \xleftarrow AMSmath - \xlongequal extpfeil - \xmapsto extpfeil - \xrightarrow AMSmath - \xtofrom extpfeil - \xtwoheadleftarrow extpfeil - \xtwoheadrightarrow extpfeil - -Y -- - -.. code-block:: latex - - \yen AMSsymbols - -Z -- - -.. code-block:: latex - - \zeta - - -Environments ------------- - -LaTeX environments of the form ``\begin{XXX} ... \end{XXX}`` are -provided where ``XXX`` is one of the following: - -.. code-block:: latex - - align [AMSmath] - align* [AMSmath] - alignat [AMSmath] - alignat* [AMSmath] - aligned [AMSmath] - alignedat [AMSmath] - array - - Bmatrix - bmatrix - - cases - - eqnarray - eqnarray* - equation - equation* - - gather [AMSmath] - gather* [AMSmath] - gathered [AMSmath] - - matrix - multline [AMSmath] - multline* [AMSmath] - - pmatrix - - smallmatrix AMSmath - split [AMSmath] - subarray AMSmath - - Vmatrix - vmatrix diff --git a/docs/source/typeset.rst b/docs/source/typeset.rst deleted file mode 100644 index 681d811ef..000000000 --- a/docs/source/typeset.rst +++ /dev/null @@ -1,254 +0,0 @@ -.. _typeset-math: - -************************** -Modifying Math on the Page -************************** - -If you are writing a dynamic web page where content containing -mathematics may appear after MathJax has already typeset the rest of -the page, then you will need to tell MathJax to look for mathematics -in the page again when that new content is produced. To do that, you -need to use the :meth:`MathJax.Hub.Typeset()` method. This will cause -the preprocessors (if any were loaded) to run over the page again, and -then MathJax will look for unprocessed mathematics on the page and -typeset it, leaving unchanged any math that has already been typeset. - -You should not simply call this method directly, however. Because -MathJax operates asynchonously (see :ref:`Synchronizing with MathJax -` for details), you need to be sure that -your call to :meth:`MathJax.Hub.Typeset()` is synchronized with the -other actions that MathJax is taking. For example, it may already be -typesetting portions of the page, or it may be waiting for an output -jax to load, etc., and so you need to queue the typeset action to be -performed after MathJax has finished whatever else it may be doing. -That may be immediately, but it may not, and there is no way to tell. - -To queue the typeset action, use the command - -.. code-block:: javascript - - MathJax.Hub.Queue(["Typeset",MathJax.Hub]); - -This will cause MathJax to typeset the page when it is next able to do -so. It guarantees that the typesetting will synchronize properly -with the loading of jax, extensions, fonts, stylesheets, and other -asynchronous activity, and is the only truly safe way to ask MathJax -to process additional material. - -The :meth:`MathJax.Hub.Typeset()` command also accepts a parameter -that is a DOM element whose content is to be typeset. That could be -a paragraph, or a ``
`` element, or even a MathJax math -`` - - - - - - - - Type some TeX code: - -

- -

- You typed: ${}$ -
- - - - -There are a number of additional example pages at `test/examples.html -`_ that -illustrate how to call MathJax dynamically or perform other actions -with MathJax. diff --git a/docs/source/upgrade.rst b/docs/source/upgrade.rst deleted file mode 100644 index 3a1aa2006..000000000 --- a/docs/source/upgrade.rst +++ /dev/null @@ -1,259 +0,0 @@ -.. _upgrade: - -*********************************** -Migrating from MathJax v1.0 to v1.1 -*********************************** - -MathJax v1.1 fixes a number of bugs in v1.0, and improves support for -new versions of browsers and mobile devices. It includes changes to -increase its performance, and to make it more compliant with HTML5. It -has more flexible configuration options, and the ability to load -configuration files that combine multiple files into a single one to -increase loading speed when MathJax starts up. Finally, MathJax.org now -offers MathJax as a web service through a distributed "cloud" server. - -This document describes the changes you may need to make to your MathJax -configurations in order to take advantage of these improvements. - - -Configuration Changes -===================== - -The main changes that you will see as a page author are in the way that -MathJax can be loaded and configured. If you have been using in-line -configuration by putting a :meth:`MathJax.Hub.Config()` call in the body of -the `` - -would become - -.. code-block:: html - - - - -instead. This will make sure your pages pass HTML5 validation. Be sure -that you put the configuration block **before** the script that loads -MathJax. See :ref:`Loading and Configuring MathJax ` for more -details. - -If your page simply loads ``MathJax.js`` and relies on -``config/MathJax.js``, then you will need to modify your `` - -in the past, you should replace it with - -.. code-block:: html - - - -instead. If you don't do this, you will receive a warning message that -directs you to a page that explains how to update your script tags to use -the new configuration format. - - -Combined Configurations -======================= - -New with version 1.1 is the ability to combine several files into a single -configuration file, and to load that via the same script that loads -MathJax. This should make configuring MathJax easier, and also helps to -speed up the initial loading of MathJax's components, since only one file -needs to be downloaded. - -MathJax comes with four pre-built configurations, and our hope is that one -of these will suit your needs. They are described in more detail in the -:ref:`Using a Configuration File ` section. To load one, -add ``?config=filename`` (where ``filename`` is the name of the -configuration file without the ``.js``) to the URL that loads -``MathJax.js``. For example - -.. code-block:: html - - - -could be replaced by the single line - -.. code-block:: html - - - -In this way, you don't have to include the in-line configuration, and all -the needed files will be downloaded when MathJax starts up. For complete -details about the contents of the combined configuration files, see the -:ref:`Common Configurations ` section. - -If you want to use a pre-defined configuration file, but want to modify some -of the configuration parameters, you can use both a -``text/x-mathjax-config`` block and a ``config=filename`` parameter in -combination. For example, - -.. code-block:: html - - - - -would load the ``TeX-AMS_HTML`` configuration file, but would reconfigure -the inline math delimiters to include ``$...$`` in addition to -``\(...\)``, and would set the ``processEscapes`` parameter to ``true``. - - -Loading MathJax from the CDN -============================ - -The MathJax installation is fairly substantial (due to the large number of -images needed for the image fonts), and so you may not want to (or be able -to) store MathJax on your own server. Keeping MathJax up to date can also -be a maintenance problem, and you might prefer to let others handle that -for you. In either case, using the MathJax distributed network service may be -the best way for you to obtain MathJax. That way you can be sure you are -using an up-to-date version of MathJax, and that the server will be fast -and reliable. - -To use the MathJax CDN service, simply load MathJax as follows: - -.. code-block:: html - - - -and you want to use single-dollar delimiters for in-line math, then you -should replace this with - -.. code-block:: html - - - - -The same technique can be used in conjunction with a combined -configuration file. For example - -.. code-block:: html - - - - -will load the pre-defined ``TeX-AMS_HTML`` configuration, but will modify -the settings to allow ``$...$`` delimiters, and to process ``\$`` to -produce dollar signs within the text of the page. - - -New Distribution Location -========================= - -Version 1.0 of MathJax was distributed through `SourceForge`, but the -development of MathJax has switched to `GitHub -`_, which is now the primary location -for MathJax source code and distributions. The SourceForge repository will -no longer be actively maintained (and hasn't been since November 2010), and -so you will not be able to obtain updates through ``svn`` if you checked -out MathJax from there. - -You may be able to switch to using the MathJax CDN (see above) rather than -hosting your own copy of MathJax, and avoid the problem of updates all -together. If you must install your own copy, however, you should follow -the instructions at :ref:`Installing and Testing MathJax `, -using either ``git`` or ``svn`` as described to obtain your copy from -GitHub. This will allow you to keep your copy of MathJax up to date as -development continues. - -We apologize for the inconvenience of having to switch distributions, but -the git-to-svn bridge we tried to implement to keep both copies in synch -turned out to be unreliable, and so the SourceForge distribution was -retired in favor of the GitHub site. diff --git a/docs/source/whats-new-1.1.rst b/docs/source/whats-new-1.1.rst deleted file mode 100644 index 104d145f0..000000000 --- a/docs/source/whats-new-1.1.rst +++ /dev/null @@ -1,172 +0,0 @@ -.. _whats-new-1.1: - -************************** -What's New in MathJax v1.1 -************************** - -MathJax version 1.1 includes a number of important improvements and -enhancements over version 1.0. We have worked hard to fix bugs, improve -support for browsers and mobile devices, process TeX and MathML better, and -increase MathJax's performance. - -In addition to these changes, MathJax.org now offers MathJax as a network -service. Instead of having to install MathJax on your own server, you can -link to our content delivery network (CDN) to get fast access to -up-to-date and past versions of MathJax. See :ref:`Loading MathJax from -the CDN ` for more details. - -The following sections outline the changes in v1.1: - -Optimization -============ - -* Combined configuration files that load all the needed files in one piece - rather than loading them individually. This simplifies configuration - and speeds up typesetting of the mathematics on the page. - -* Improved responsiveness to mouse events during typesetting. - -* Parallel downloading of files needed by MathJax, for faster startup - times. - -* Shorter timeout for web fonts, so if they can't be downloaded, you don't - have to wait so long. - -* Rollover to image fonts if a web font fails to load (so you don't have - to wait for *every* font to fail. - -* The MathJax files are now packed only with `yuicompressor` rather than a - custom compressor. The CDN serves gzipped versions, which end up being - smaller than the gzipped custom-packed files. - -* Improved rendering speed in IE by removing ``position:relative`` from - the style for mathematics. - -* Improved rendering speed for most browsers by isolating the mathematics - from the page during typesetting (avoids full page reflows). - - -Enhancements -============ - -* Allow the input and output jax configuration blocks to specify extensions - to be loaded when the jax is loaded (this avoids needing to load them up - front, so they don't have to be loaded on pages that don't include - mathematics, for example). - -* Better handling of background color from style attributes. - -* Ability to pass configuration parameters via script URL. - -* Support HTML5 compliant configuration syntax. - -* Switch the Git repository from storing the fonts in `fonts.zip` to - storing the `fonts/` directory directly. - -* Improved About box. - -* Added a minimum scaling factor (so math won't get too small). - - -TeX Support -============ - -* Added support for ``\href``, ``\style``, ``\class``, ``\cssId``. -* Avoid recursive macro definitions and other resource consumption possibilities. -* Fix for ``\underline`` bug. -* Fix for bug with ``\fbox``. -* Fix height problem with ``\raise`` and ``\lower``. -* Fix problem with ``\over`` used inside array entries. -* Fix problem with nesting of math delimiters inside text-mode material. -* Fix single digit super- and subscripts followed by punctuation. -* Make sure `movablelimits` is off for ``\underline`` and related macros. -* Fix problem with dimensions given with ``pc`` units. - - -MathML Support -============== - -* Fix ``<`` and ``&`` being translated too early. -* Handle self-closing tags in HTML files better. -* Combine adjacent relational operators in ```` tags. -* Fix entity name problems. -* Better support for MathML namespaces. -* Properly handle comments within MathML in IE. -* Properly consider ```` and ```` as space-like. -* Improved support for ```` with embellished operators. - - -Other Bug Fixes -=============== - -* Fixed CSS bleed through with zoom and other situations. -* Fixed problems with ``showMathMenuMSIE`` when set to ``false``. -* Replaced illegal prefix characters in cookie name. -* Improved placement of surd for square roots and n-th roots. -* Fixed layer obscuring math from MathPlayer for screen readers. -* Newlines in CDATA comments are now handled properly. -* Resolved conflict between `jsMath2jax` and `tex2jax` both processing the - same equation. -* Fixed problem with ``class="tex2jax_ignore"`` affecting the processing of - sibling elements. - - -Browser Support -=============== - -**Android** - -* Added detection and configuration for Android browser. -* Allow use of OTF web fonts in Android 2.2. - - -**Blackberry** - -* MathJax now works with OS version 6. - - -**Chrome** - -* Use OTF web fonts rather than SVG fonts for version 4 and above. - - -**Firefox** - -* Added Firefox 4 detection and configuration. -* Fix for extra line-break bug when displayed equations are in - preformatted text. -* Updated fonts so that FF 3.6.13 and above can read them. - - -**Internet Explorer** - -* Changes for compatibility with IE9. -* Fix for IE8 incorrectly parsing MathML. -* Fix for IE8 namespace problem. -* Fix for null ``parentNode`` problem. -* Fix for ``outerHTML`` not quoting values of attributes. - -**iPhone/iPad** - -* Added support for OTF web fonts in iOS4.2. - -**Nokia** - -* MathJax now works with Symbian\ :sup:`3`\ . - -**Opera** - -* Prevent Opera from using STIX fonts unless explicitly requested via the - font menu (since Opera can't display many of the characters). -* Fixed bad em-size detection in 10.61. -* Fixed a problem with the About dialog in Opera 11. - - -**Safari** - -* Use OTF web fonts for Safari/PC. - - -**WebKit** - -* Better version detection. diff --git a/docs/source/whats-new-2.0.rst b/docs/source/whats-new-2.0.rst deleted file mode 100644 index 684cc8d68..000000000 --- a/docs/source/whats-new-2.0.rst +++ /dev/null @@ -1,718 +0,0 @@ -.. _whats-new-2.0: - -************************** -What's New in MathJax v2.0 -************************** - -MathJax version 2.0 includes many new and improved features, including -much better speeds in Internet Explorer, a new AsciiMath input -processor, a new :term:`SVG` output processor, support for additional -LaTeX commands, and many bug fixes, to name just a few of the changes. - - -Major speed improvement for HTML-CSS output, particularly in IE -=============================================================== - -The HTML-CSS output processing was redesigned to avoid the page -reflows that were the main source of the speed problem in Internet -Explorer 8 and 9. For test pages having between 20 and 50 typeset -expressions, we see an 80% reduction in output processing time for -IE8, a 50% reduction for IE9, and between 15% and 25% reduction for -most other browsers over the corresponding v1.1a times. Since the -processing time in v1.1a grows non-linearly in IE, you should see even -larger savings for pages with more equations when using v2.0. Forcing -IE7 emulation mode is no longer necessary (and indeed is no longer -recommended). - - -Reduced flickering during typsetting -==================================== - -In the past, each expression was displayed as soon as it was typeset, -which caused a lot of visual flickering as MathJax processed the page. -In v2.0, the output is processed in blocks so that typeset expressions -are revealed in groups. This reduces the visual distraction, and also -speeds up the processing. The number of equations in a block can be -controlled through the ``EqnChunk`` parameter in the HTML-CSS or SVG -block of your configuration. See the :ref:`configuration options for -HTML-CSS ` and :ref:`configuration options for SVG -` pages for details. - -If the page URL includes a hash reference (a link to a particular -location within the page), MathJax v2.0 will jump to that location -after the page has finished typsetting. (Since the size of the page -may have changed due to the mathematical typsetting, that location may -no longer be visible on screen, so MathJax moves there when it is done -with the initial typesetting.) You can control this behavior with the -``positionToHash`` parameter in the main section of your -configuration. See the :ref:`core configuration options -` page for details. - - -Automatic equation numbering of TeX formulas -============================================ - -The TeX input jax now can be configured to add equation numbers -(though the default is not to number equations so that existing pages -will not change their appearance). This is controlled through the -``equationNumbers`` section of the ``TeX`` block of your configuration -(see the :ref:`equation numbering ` section for -details). You can request that the numbering follow the AMS-style -numbering of environments, or you can request that every displayed -equation be numbered. There are now ``\label``, ``\ref``, and -``\eqref`` commands to make it easier to link to particular equations -within the document. - - -Automatic line breaking of long displayed equations -=================================================== - -MathJax now implements the MathML3 specification for automatic line -breaking of displayed equations in its HTML-CSS output. This is -disabled by default, but can be enabled via the ``linebreaks`` section -of the ``HTML-CSS`` or ``SVG`` block of your configuration (see the -:ref:`automatic line breaking ` section for -details). Note that automatic line breaking only applies to displayed -equations, not in-line equations, unless they are themselves longer -than a line. The algorithm uses the nesting depth, the type of -operator, the size of spaces, and other factors to decide on the -breakpoints, but it does not know the meaning of the mathematics, and -may not choose the optimal breakpoints. We will continue to work on -the algorithm as we gain information from its actual use in the field. - - -New AsciiMath input jax and SVG output jax -========================================== - -MathJax currently processes math in either :term:`TeX` and -:term:`LaTeX` format, or :term:`MathML` notation; version 2.0 augments -that to include :term:`AsciiMath` notation (see `the ASCIIMathML -home page `_ -for details on this format). This is a notation that is easier for -students to use than TeX, and has been requested by the user -community. See the :ref:`AsciiMath support ` page -for details. - -In addition to the HTML-CSS and Native MathML output available in -v1.1, MathJax v2.0 includes an :term:`SVG`-based output jax. This should -prove to be more reliable than the HTML-CSS output, as it avoids some -CSS, web-font, and printing issues that the HTML-CSS output suffers -from, and it currently has no browser-dependent code. The SVG mode -even works in some ebook readers (like Apple iBooks and Calibre). See -the :ref:`output formats ` documentation for details. - - -New combined configuration files -================================ - -Pre-defined configuration files that include the AsciiMath and SVG -processors are now available with MathJax v2.0. These include -``AM_HTMLorMML``, ``TeX-AMS-MML_SVG``, and ``TeX-MML-AM_HTMLorMML``. -See the :ref:`common configurations ` section for details. - - -MathJax contextual menu now available on mobile devices -======================================================= - -MathJax v2.0 provides access to its contextual menu in mobile devices -that are based on the WebKit (Safari) and Gecko (Firefox) engines. -For Mobile Firefox, the menu is accessed by a tap-and-hold on any -expression rendered by MathJax (this is Mobile Firefox's standard -method of triggering a contextual menu). In Mobile Safari, use a -double-tap-and-hold (you may need to zoom in a bit to be able to -accomplish this). This is the first step toward providing a better -interface for mobile devices. - - -Improved support for screen readers -=================================== - -Some issues surrounding the use of screen readers and their -interaction with MathPlayer have been resolved in MathJax v2.0. In -particular, there are additional menu items that allow the user finer -control over some aspects of MathJax's interface that were interfering -with some screen readers' ability to properly identify the -mathematics. Several stability issues with MathPlayer have also been -addressed. In Internet Explorer when MathPlayer is installed, there -is now a new contextual menu item to allow you to specify what events -are handled by MathJax and what should be handled by MathPlayer. This -gives you finer control over MathPlayer's interaction with some screen -readers. - - -Many new TeX additions and enhancements -======================================= - -* New `mhchem` chemistry extension (adds ``\ce``, ``\cf``, and ``\cee`` macros) - -* New `cancel` extension (adds ``\cancel``, ``\bcancel``, ``\xcancel``, and ``\cancelto`` macros) - -* New `extpfeil` extension (adds more stretchy arrows) - -* New `color` extension (makes ``\color`` work as a switch, as in LaTeX). - Adds ``\definecolor``, other color models, LaTeX named colors, - ``\colorbox``, ``\fcolorbox``, etc. - -* New `begingroup` extension to allow macro definitions to be - localized. Adds ``\begingroup`` and ``\endgroup`` for isolating macro - declarations, and defines ``\let``, ``\renewenvironment``, ``\global``, and - ``\gdef``. - -* New `enclose` extension to give TeX access to ```` elements. - Adds ``\enclose{type}[attributes]{math}`` macro. - -* New `action` extension to give TeX access to ```` elements. - Adds ``\mathtip{math}{tip}``, ``\texttip{math}{tip}``, and - ``\toggle{math1}{math2}...\endtoggle`` macros. - -* New ``\mmToken{type}[attributes]{text}`` macro for producing ````, - ````, ````, and other token MathML elements directly. - -* New ``\bbox[color;attributes]{math}`` macro to add background color, - padding, borders, etc. - -* New ``\middle`` macro for stretchy delimiters between ``\left`` and ``\right``. - -* New ``\label``, ``\ref``, and ``\eqref`` macros for numbered equations. - -* Better implementation of ``\not`` so it produces proper MathML when possible. - -* Better implementation of ``\dots`` that selects ``\ldots`` or ``\cdots`` - depending on the context. - -* Better implementation of ``\cases`` that automatically uses ``\text`` on - the second entry in each row. - -* Safer implementation of ``\require`` that only allows loading from - extensions directory. - -* Allow ``\newcomand`` to provide a default parameter. - -* Allow ``\\`` to take an optional argument that specifies additional - space between lines. - -* Allow ``\\`` to be used anywhere (to force a line break), not just in - arrays. - -* Allow optional alignment parameter for array, aligned, and gathered - environments. - -See the :ref:`TeX support ` page for details on these -extensions and macros. - - -Font enhancements -================= - -* Work around for the OS X Lion STIX font problem. - -* Support for STIX-1.1 fonts (detection of which version you have, - and use data appropriate for that). - -* New WOFF versions of the web fonts (smaller, so faster to - download). - -* Data for more stretchy characters in HTML-CSS output. - -* Add support for Unicode planes 1 through 10 (not just the Math - Alphabet block) in HTML-CSS output. - -* Increased timeout for web fonts (since it was switching to image - fonts too often, especially for mobile devices). - -* Only switch to image fonts if the first web font fails to load (if - we can access one, assume we can access them all). - -* Allow ```` elements to use the page font rather than MathJax - fonts (optionally). This is controlled by the ``mtextFontInerhit`` - configuration parameter for HTML-CSS and SVG output jax. - -* Provide better control over the font used for characters that are - not in the MathJax fonts. - -* Allow Firefox to use web-based fonts when a local URL uses MathJax - from the CDN (in the past it would force image fonts when that was - not necessary). - - -Interface improvements -====================== - -* The MathJax contextual menu has been reorganized to make it easier - to get the source view, and to control the parameters for - MathPlayer in IE. - -* The MathJax contextual menu is available in mobile devices (see - description above). - -* Warning messages are issued if you switch renderers to one that is - inappropriate for your browser. - -* MathJax now starts processing the page on the ``DOMContentLoaded`` - event rather than the page ``onload`` event (this allows the - mathematics to appear sooner). - -* Native MathML output is now scaled to better match the surrounding - font (like it is for HTML-CSS output). - -* Better CSS styling for NativeMML output in Firefox in order to - handle ``\cal`` and other fonts. - -* MathML output now (optionally) includes class names to help mark - special situations generated by the TeX input jax. (This lets the - MathML from the Show Source menu item better reproduce the original - TeX output.) - -* MathJax now loads the menu and zoom code (if they haven't been - loaded already) after the initial typesetting has occured so that - they will be available immediately when a user needs those - features, but do not delay the initial typesetting of the - mathematics. - -* For the `tex2jax` preprocessor, the ``processClass`` can now be - used to override the ``skipTags`` to force a tag that is usually - skipped to have its contents be processed. - -* The `noErrors` and `noUndefined` extensions can now be disabled via - a configuration option (since they are included in many of the - combined configuration files). See the `noErrors` and - `noUndefined` sections of the :ref:`TeX support - ` page for more information. - -* There is a new :meth:`MathJax.Hub.setRenderer()` function that can - be used to switch the current renderer. See the :ref:`MathJax Hub - API ` documentation for details. - -* A user-defined macros is no longer overridden if an extension is - loaded that redefines that macro. - -* Improved web-font detection reliability. - - -.. _important-changes-2.0: - -Important changes from previous versions -======================================== - -* The default renderer for Firefox has been changed from `NativeMML` to - `HTML-CSS` (in those configurations that choose between the two). - The only browser that defaults to `NativeMML` is now IE with - MathPlayer installed. You can configure this to your liking using - the :ref:`MMLorHTML configuration options `. - -* `NativeMML` output will now be selected in IE9 when MathPlayer is - present (since IE9 was released the same day as MathJax v1.1a, and - there had been problems with IE9 beta releases, we weren't sure if - MathPlayer would work with the official release, and so did not - select NativeMML by default.) - -* The performance improvements in IE8 and IE9 now make it unnecessary - to use a ```` tag to force IE7 emulation mode. In fact IE9 in - IE9 standards mode now runs faster than IE9 in IE7 standards mode, - and IE8 in IE8 standards mode is comparable to IE8 in IE7 standards - mode. We now recommend that you use - - .. code-block:: html - - - - to obtain the highest emulation mode available in IE, which - will be the fastest one for MathJax 2.0. - -* The `tex2jax` preprocessor now balances braces when looking for the - closing math delimiter. That allows expressions like - - .. code-block:: latex - - $y = x^2 \hbox{ when $x > 2$}$ - - to be properly parsed as a single math expression rather than two - separate ones with unbalanced braces. The old behavior can be - obtained by setting ``balanceBraces`` to false in the ``tex2jax`` - block of your configuration. (See the :ref:`tex2jax configuration - options ` for details.) - -* If you are hosting your own copy of MathJax on your server, and - that copy is being used from pages in a different domain, you will - have set up the access control paramters for the font directory to - allow Firefox to access the font files properly. Since MathJax 2.0 - includes fonts in WOFF format, you will need to include ``woff`` in - you access control declaration for the fonts. E.g., use - :: - - - - Header set Access-Control-Allow-Origin "*" - - - - in the ``.htaccess` file for the ``Mathjax/fonts`` directory if you - are using the Apache web server. See :ref:`Notes about shared - installations ` for details. - -* The ``\cases`` macro now properly places the second column in text - mode not math mode. In the past, one needed to use ``\text`` in - the second column to achieve the proper results; pages that did - this will still work properly in v2.0. Pages that took advantage - of the math mode in the second column will need to be adjusted. - -* The ``\dots`` macro now produces ``\ldots`` or ``\cdots`` depending - on the context (in the past, ``\dots`` always produced ``\ldots``). - -* A one pixel padding has been added above and below HTML-CSS and SVG - output so that math on successive lines of a paragraph won't bump - into each other. - -* There is a new `MathPlayer` submenu of the `Math Settings` menu in - the MathJax contextual menu that allows the user to control what - events are passed on to MathPlayer. This allows better control for - those using assistive devices like screen readers. When menu - events are being passed on to MathPlayer, the MathJax menu can be - obtained by ALT-clicking on a typeset expression (so the user can - still access MathJax's other features). - -* In order to improve stability with IE when MathPlayer is installed, - MathJax now adds the namespace and object bindings that are needed - for MathPlayer at the time that Mathjax is first loaded, rather - than waiting for the `NativeMML` output jax to be loaded. Since - this is before the configuration information has been obtained, - this will happen regardless of whether the `NativeMML` output jax - is requested. This means that IE may ask the user to allow - MathPlayer to be used, and may show the MathPlayer splash dialog - even when MathPlayer is not in the end used by MathJax. Note that - this setup can only be performed if MathJax is loaded explicitly as - part of the initial web page; if it is injected into the page later - by adding a ``