www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 50d1f45668bc77f982f66f80eb5ae2c2eb713490
parent ab487a051c4224e1edd8b38ab861bb4f1f7a7c11
Author: Davide P. Cervone <dpvc@union.edu>
Date:   Fri, 24 Feb 2012 10:08:06 -0500

Merge branch 'doc-update' into v2.0-candidate

Diffstat:
Mdocs/html/CSS-styles.html | 34++++++++++++++++++----------------
Mdocs/html/HTML-snippets.html | 12++++++------
Mdocs/html/_sources/CSS-styles.txt | 22++++++++++++----------
Mdocs/html/_sources/api/callback.txt | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Mdocs/html/_sources/api/elementjax.txt | 36++++++++++++++++++++++++++++--------
Mdocs/html/_sources/api/html.txt | 9+++++++++
Mdocs/html/_sources/api/hub.txt | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mdocs/html/_sources/api/inputjax.txt | 45+++++++++++++++++++++++++++++++++++++++++++--
Mdocs/html/_sources/api/jax.txt | 27++++++++-------------------
Mdocs/html/_sources/api/outputjax.txt | 127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mdocs/html/_sources/api/variable.txt | 13+++++++++++--
Adocs/html/_sources/asciimath.txt | 127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/callbacks.txt | 8++++----
Mdocs/html/_sources/config-files.txt | 207+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mdocs/html/_sources/configuration.txt | 146++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Mdocs/html/_sources/dynamic.txt | 79+++++++++++++++++++++++++++++++++----------------------------------------------
Mdocs/html/_sources/glossary.txt | 34++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/index.txt | 8+++++---
Mdocs/html/_sources/installation.txt | 67+++++++++++++++++++++++++++++++++----------------------------------
Mdocs/html/_sources/mathjax.txt | 32+++++++++++++++++---------------
Mdocs/html/_sources/mathml.txt | 34+++++++++++++++++++---------------
Mdocs/html/_sources/model.txt | 40++++++++++++++++++++++++++--------------
Adocs/html/_sources/options/AsciiMath.txt | 41+++++++++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/options/FontWarnings.txt | 5++++-
Mdocs/html/_sources/options/HTML-CSS.txt | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
Mdocs/html/_sources/options/MMLorHTML.txt | 32++++++++++++++++++++++++--------
Adocs/html/_sources/options/MathEvents.txt | 37+++++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/options/MathML.txt | 3++-
Mdocs/html/_sources/options/MathMenu.txt | 46+++++++++++++++++++++++++++-------------------
Mdocs/html/_sources/options/MathZoom.txt | 19++++++++++++-------
Mdocs/html/_sources/options/NativeMML.txt | 53+++++++++++++++++++++++------------------------------
Adocs/html/_sources/options/SVG.txt | 162+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/options/TeX.txt | 104++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
Adocs/html/_sources/options/asciimath2jax.txt | 110+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/_sources/options/hub.txt | 95++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
Mdocs/html/_sources/options/index.txt | 12++++++++----
Mdocs/html/_sources/options/tex2jax.txt | 49++++++++++++++++++++++++++++++++++++-------------
Mdocs/html/_sources/output.txt | 255+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mdocs/html/_sources/platforms/index.txt | 13+++++++------
Mdocs/html/_sources/signals.txt | 47+++++++++++++++++++++++++----------------------
Mdocs/html/_sources/start.txt | 229+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mdocs/html/_sources/startup.txt | 42++++++++++++++++++++++++++++++++++--------
Mdocs/html/_sources/synchronize.txt | 33++++++++++++++++++---------------
Mdocs/html/_sources/tex.txt | 713++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mdocs/html/_sources/typeset.txt | 32++++++++++++++++++++++++++------
Adocs/html/_sources/whats-new-1.1.txt | 172+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/html/_sources/whats-new-2.0.txt | 718+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ddocs/html/_sources/whats-new.txt | 172-------------------------------------------------------------------------------
Mdocs/html/_static/mathjax_mathml.user.js | 2+-
Mdocs/html/_static/mathjax_wikipedia.user.js | 3+--
Mdocs/html/api/ajax.html | 12++++++------
Mdocs/html/api/callback.html | 142++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------
Mdocs/html/api/elementjax.html | 65+++++++++++++++++++++++++++++++++++++++++++++++++++--------------
Mdocs/html/api/html.html | 33+++++++++++++++++++++++++++------
Mdocs/html/api/hub.html | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
Mdocs/html/api/index.html | 12++++++------
Mdocs/html/api/inputjax.html | 96++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
Mdocs/html/api/jax.html | 55++++++++++++++++---------------------------------------
Mdocs/html/api/message.html | 12++++++------
Mdocs/html/api/object.html | 12++++++------
Mdocs/html/api/outputjax.html | 229+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
Mdocs/html/api/queue.html | 12++++++------
Mdocs/html/api/signal.html | 12++++++------
Mdocs/html/api/variable.html | 29+++++++++++++++++++++--------
Adocs/html/asciimath.html | 214+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/callbacks.html | 20++++++++++----------
Mdocs/html/community.html | 22+++++++++++-----------
Mdocs/html/config-files.html | 198+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
Mdocs/html/configuration.html | 159+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Mdocs/html/dynamic.html | 88++++++++++++++++++++++++++++++++++---------------------------------------------
Mdocs/html/genindex.html | 43+++++++++++++++++++++++++++++++++----------
Mdocs/html/glossary.html | 46++++++++++++++++++++++++++++++++++++++++------
Mdocs/html/index.html | 22++++++++++++----------
Mdocs/html/installation.html | 81+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mdocs/html/jsMath.html | 12++++++------
Mdocs/html/mathjax.html | 44+++++++++++++++++++++++---------------------
Mdocs/html/mathml.html | 54+++++++++++++++++++++++++++++-------------------------
Mdocs/html/model.html | 51+++++++++++++++++++++++++++++++--------------------
Adocs/html/options/AsciiMath.html | 147+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/options/FontWarnings.html | 29++++++++++++++++-------------
Mdocs/html/options/HTML-CSS.html | 120++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
Mdocs/html/options/MMLorHTML.html | 60+++++++++++++++++++++++++++++++++++++++++-------------------
Adocs/html/options/MathEvents.html | 142++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/options/MathML.html | 25+++++++++++++------------
Mdocs/html/options/MathMenu.html | 62++++++++++++++++++++++++++++++++++++--------------------------
Mdocs/html/options/MathZoom.html | 41+++++++++++++++++++++++------------------
Mdocs/html/options/NativeMML.html | 68+++++++++++++++++++++++++++++++-------------------------------------
Adocs/html/options/SVG.html | 292+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/options/TeX.html | 90++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
Adocs/html/options/asciimath2jax.html | 214+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/html/options/hub.html | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Mdocs/html/options/index.html | 24++++++++++++++----------
Mdocs/html/options/jsMath2jax.html | 22+++++++++++-----------
Mdocs/html/options/mml2jax.html | 22+++++++++++-----------
Mdocs/html/options/tex2jax.html | 61++++++++++++++++++++++++++++++++++++++++++-------------------
Mdocs/html/output.html | 254+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mdocs/html/platforms/index.html | 23++++++++++++-----------
Mdocs/html/platforms/movable-type.html | 12++++++------
Mdocs/html/platforms/wordpress.html | 12++++++------
Mdocs/html/queues.html | 12++++++------
Mdocs/html/search.html | 12++++++------
Mdocs/html/searchindex.js | 4++--
Mdocs/html/signals.html | 57+++++++++++++++++++++++++++++----------------------------
Mdocs/html/start.html | 223+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Mdocs/html/startup.html | 49+++++++++++++++++++++++++++++++++++--------------
Mdocs/html/synchronize.html | 44+++++++++++++++++++++++---------------------
Mdocs/html/tex.html | 643+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mdocs/html/typeset.html | 45+++++++++++++++++++++++++++++++++------------
Mdocs/html/upgrade.html | 20++++++++++----------
Adocs/html/whats-new-1.1.html | 265+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/html/whats-new-2.0.html | 671+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ddocs/html/whats-new.html | 265-------------------------------------------------------------------------------
Mdocs/source/CSS-styles.rst | 22++++++++++++----------
Mdocs/source/_static/mathjax_mathml.user.js | 2+-
Mdocs/source/_static/mathjax_wikipedia.user.js | 3+--
Mdocs/source/api/callback.rst | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Mdocs/source/api/elementjax.rst | 36++++++++++++++++++++++++++++--------
Mdocs/source/api/html.rst | 9+++++++++
Mdocs/source/api/hub.rst | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
Mdocs/source/api/inputjax.rst | 45+++++++++++++++++++++++++++++++++++++++++++--
Mdocs/source/api/jax.rst | 27++++++++-------------------
Mdocs/source/api/outputjax.rst | 127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mdocs/source/api/variable.rst | 13+++++++++++--
Adocs/source/asciimath.rst | 127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/source/callbacks.rst | 8++++----
Mdocs/source/conf.py | 6+++---
Mdocs/source/config-files.rst | 207+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mdocs/source/configuration.rst | 146++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Mdocs/source/dynamic.rst | 79+++++++++++++++++++++++++++++++++----------------------------------------------
Mdocs/source/glossary.rst | 34++++++++++++++++++++++++++++++++++
Mdocs/source/index.rst | 8+++++---
Mdocs/source/installation.rst | 67+++++++++++++++++++++++++++++++++----------------------------------
Mdocs/source/mathjax.rst | 32+++++++++++++++++---------------
Mdocs/source/mathml.rst | 34+++++++++++++++++++---------------
Mdocs/source/model.rst | 40++++++++++++++++++++++++++--------------
Adocs/source/options/AsciiMath.rst | 41+++++++++++++++++++++++++++++++++++++++++
Mdocs/source/options/FontWarnings.rst | 5++++-
Mdocs/source/options/HTML-CSS.rst | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
Mdocs/source/options/MMLorHTML.rst | 32++++++++++++++++++++++++--------
Adocs/source/options/MathEvents.rst | 37+++++++++++++++++++++++++++++++++++++
Mdocs/source/options/MathML.rst | 3++-
Mdocs/source/options/MathMenu.rst | 46+++++++++++++++++++++++++++-------------------
Mdocs/source/options/MathZoom.rst | 19++++++++++++-------
Mdocs/source/options/NativeMML.rst | 53+++++++++++++++++++++++------------------------------
Adocs/source/options/SVG.rst | 162+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/source/options/TeX.rst | 104++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
Adocs/source/options/asciimath2jax.rst | 110+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mdocs/source/options/hub.rst | 95++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
Mdocs/source/options/index.rst | 12++++++++----
Mdocs/source/options/tex2jax.rst | 49++++++++++++++++++++++++++++++++++++-------------
Mdocs/source/output.rst | 255+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mdocs/source/platforms/index.rst | 13+++++++------
Mdocs/source/signals.rst | 47+++++++++++++++++++++++++----------------------
Mdocs/source/start.rst | 229+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mdocs/source/startup.rst | 42++++++++++++++++++++++++++++++++++--------
Mdocs/source/synchronize.rst | 33++++++++++++++++++---------------
Mdocs/source/tex.rst | 713++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mdocs/source/typeset.rst | 32++++++++++++++++++++++++++------
Adocs/source/whats-new-1.1.rst | 172+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/source/whats-new-2.0.rst | 718+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Ddocs/source/whats-new.rst | 172-------------------------------------------------------------------------------
Atest/examples.html | 43+++++++++++++++++++++++++++++++++++++++++++
Mtest/index-images.html | 4++--
Mtest/index.html | 4++--
Atest/sample-all-at-once.html | 136+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-asciimath.html | 22++++++++++++++++++++++
Atest/sample-autoload.html | 48++++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-dynamic-2.html | 117+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtest/sample-dynamic-steps.html | 4++--
Mtest/sample-dynamic.html | 17++++++-----------
Atest/sample-eqnum.html | 138+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-eqrefs.html | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-loader-config.html | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-loader.html | 47+++++++++++++++++++++++++++++++++++++++++++++++
Atest/sample-macros.html | 64++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mtest/sample-mml.html | 16++++++++++------
Mtest/sample-signals.html | 4++--
Mtest/sample-tex.html | 4++--
Mtest/sample.html | 4++--
179 files changed, 12931 insertions(+), 2984 deletions(-)

diff --git a/docs/html/CSS-styles.html b/docs/html/CSS-styles.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>CSS Style Objects &mdash; MathJax v1.1 documentation</title> + <title>CSS Style Objects &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Glossary" href="glossary.html" /> <link rel="prev" title="Describing HTML snippets" href="HTML-snippets.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="HTML-snippets.html" title="Describing HTML snippets" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -52,8 +52,8 @@ <div class="section" id="css-style-objects"> <span id="id1"></span><h1>CSS Style Objects<a class="headerlink" href="#css-style-objects" title="Permalink to this headline">ΒΆ</a></h1> <p>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 +the look of the elements they create. These are described using <cite>CSS +style objects</cite>, which are JavaScript objects that represent standard CSS declarations. The main CSS style object is a collection of <cite>name:value</cite> pairs where the <cite>name</cite> is the CSS selector that is being defined, and the <cite>value</cite> is an object that gives the style for that @@ -73,25 +73,27 @@ quotation marks as well.</p> declaration:</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">styles</span><span class="o">:</span> <span class="p">{</span> + <span class="s2">&quot;.MathJax_Display&quot;</span><span class="o">:</span> <span class="p">{</span> + <span class="s2">&quot;text-align&quot;</span><span class="o">:</span> <span class="s2">&quot;center&quot;</span><span class="p">,</span> + <span class="nx">margin</span><span class="o">:</span> <span class="s2">&quot;1em 0em&quot;</span> + <span class="p">},</span> + <span class="s2">&quot;.MathJax .merror&quot;</span><span class="o">:</span> <span class="p">{</span> <span class="s2">&quot;background-color&quot;</span><span class="o">:</span> <span class="s2">&quot;#FFFF88&quot;</span><span class="p">,</span> <span class="nx">color</span><span class="o">:</span> <span class="s2">&quot;#CC0000&quot;</span><span class="p">,</span> <span class="nx">border</span><span class="o">:</span> <span class="s2">&quot;1px solid #CC0000&quot;</span><span class="p">,</span> <span class="nx">padding</span><span class="o">:</span> <span class="s2">&quot;1px 3px&quot;</span><span class="p">,</span> - <span class="s2">&quot;font-family&quot;</span><span class="o">:</span> <span class="s2">&quot;serif&quot;</span><span class="p">,</span> <span class="s2">&quot;font-style&quot;</span><span class="o">:</span> <span class="s2">&quot;normal&quot;</span><span class="p">,</span> <span class="s2">&quot;font-size&quot;</span><span class="o">:</span> <span class="s2">&quot;90%&quot;</span> - <span class="p">},</span> - - <span class="s2">&quot;.MathJax_Preview&quot;</span><span class="o">:</span> <span class="p">{</span><span class="nx">color</span><span class="o">:</span> <span class="s2">&quot;#888888&quot;</span><span class="p">},</span> + <span class="p">}</span> <span class="p">}</span> </pre></div> </div> -<p>This defines two CSS styles, one for the selector <tt class="docutils literal"><span class="pre">.MathJax</span> -<span class="pre">.merror</span></tt>, which specifies a background color, foreground color, -border, and so on, and a second for <tt class="docutils literal"><span class="pre">.MathJax_Preview</span></tt> that sets its -color.</p> +<p>This defines two CSS styles, one for the selector +<tt class="docutils literal"><span class="pre">.MathJax_Display</span></tt>, which specifies its text alignment and margin +settings, and a second for <tt class="docutils literal"><span class="pre">.MathJax</span> <span class="pre">.merror</span></tt>, which specifies a +background color, foreground color, border, and so on.</p> <p>You can add as many such definitions to a <tt class="docutils literal"><span class="pre">styles</span></tt> object as you wish. Note, however, that since this is a JavaScript object, the selectors must be unique (e.g., you can&#8217;t use two definitions for @@ -159,11 +161,11 @@ samples. In particular, the <tt class="docutils literal"><span class="pre">exte <li class="right" > <a href="HTML-snippets.html" title="Describing HTML snippets" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/HTML-snippets.html b/docs/html/HTML-snippets.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Describing HTML snippets &mdash; MathJax v1.1 documentation</title> + <title>Describing HTML snippets &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="CSS Style Objects" href="CSS-styles.html" /> <link rel="prev" title="The MathJax Object-Oriented Programming Model" href="api/object.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="api/object.html" title="The MathJax Object-Oriented Programming Model" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -156,11 +156,11 @@ This is bold text shown in red <li class="right" > <a href="api/object.html" title="The MathJax Object-Oriented Programming Model" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/_sources/CSS-styles.txt b/docs/html/_sources/CSS-styles.txt @@ -5,8 +5,8 @@ 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 +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 @@ -31,24 +31,26 @@ 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-family": "serif", "font-style": "normal", "font-size": "90%" - }, - - ".MathJax_Preview": {color: "#888888"}, + } } -This defines two CSS styles, one for the selector ``.MathJax -.merror``, which specifies a background color, foreground color, -border, and so on, and a second for ``.MathJax_Preview`` that sets its -color. +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 diff --git a/docs/html/_sources/api/callback.txt b/docs/html/_sources/api/callback.txt @@ -58,7 +58,7 @@ A callback specification is any one of the following: the given function, and it would return their sum, ``5``, when the callback is executed. - .. describe:: [object, fn] + .. describe:: [object, fn] An array containing an object to use as `this` and a function to call for the callback. For example, @@ -75,7 +75,7 @@ A callback specification is any one of the following: Similar to the previous case, but with data that is passed to the function as well. - ..describe:: ["method", object] + .. 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 @@ -220,6 +220,26 @@ MathJax.Callback Methods - **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 <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 <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 @@ -231,29 +251,54 @@ MathJax.Callback Methods 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:: Queue([callback,...]) +.. method:: Hooks(reset) - Creates a `MathJax.CallBack.Queue` object and pushes the given - callbacks into the queue. See :ref:`Using Queues <using-queues>` - for more details about MathJax queues. + 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: - - **callback** --- one or more callback specifications - :Returns: the `Queue` object + - **reset** --- ``true`` if callbacks can be called more than once + :Returns: the `Hooks` 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 <using-signals>` for more details. - - :Parameters: - - **name** --- name of the signal to get or create - :Returns: the `Signal` 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 @@ -42,13 +42,11 @@ Instance Properties .. describe:: inputJax - A reference to the input jax that created the element. (In the - future, this will be changed to the name of the input jax.) + The name of the input jax that created the element. .. describe:: outputJax - A reference to the output jax that has processed this element. (In - the future, this will be changed to the name of the output jax.) + The name of the output jax that has processed this element. .. describe:: inputID @@ -89,13 +87,25 @@ Methods - **callback** --- the callback specification :Returns: the callback object +.. Method:: Rerender([callback]) + :noindex: + + 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 + .. Method:: Reprocess([callback]) :noindex: - Removes the output and produces it again. This may be necessary if - there are changes to the CSS styles that would affect the layout - of the mathematics, for example. The `callback`, if any, is - called when the process completes. + 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 @@ -118,6 +128,16 @@ Methods :Returns: the ``<script>`` element +.. Method:: 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 diff --git a/docs/html/_sources/api/html.txt b/docs/html/_sources/api/html.txt @@ -92,6 +92,15 @@ Methods - **text** --- the text that is to be the script's new content :Returns: ``null`` +.. method:: 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`` + .. describe:: Cookie.Set(name,data) Creates a MathJax cookie using the ``MathJax.HTML.Cookie.prefix`` diff --git a/docs/html/_sources/api/hub.txt b/docs/html/_sources/api/hub.txt @@ -31,7 +31,17 @@ Properties .. describe:: processUpdateTime: 250 The minimum time (in milliseconds) between updates of the - "Processing Math" message. + "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. + +.. describe:: 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). .. describe:: signal @@ -60,6 +70,11 @@ Properties running on a Macintosh computer or a Windows computer. They will both be ``false`` for a Linux computer. + .. describe:: isMobile + + This is ``true`` when MathJax is running a mobile version of a + WebKit or Gecko-based browser. + .. describe:: isFirefox, isSafari, isChrome, isOpera, isMSIE, isKonqueror These are ``true`` when the browser is the indicated one, and @@ -97,6 +112,18 @@ Properties } ); +.. describe:: 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). + +.. describe:: outputJax + + An object storing the output jax associate with the various + element jax MIME types for the registered output jax. + + Methods ======= @@ -243,13 +270,31 @@ Methods .. method:: 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. 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 + 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 + +.. method:: 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: @@ -315,6 +360,21 @@ Methods - **element** --- the element to inspect :Returns: integer (-1, 0, 1) +.. Method:: 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`` + .. Method:: Insert(dst,src) Inserts data from the `src` object into the `dst` object. The diff --git a/docs/html/_sources/api/inputjax.txt b/docs/html/_sources/api/inputjax.txt @@ -56,13 +56,40 @@ Properties Methods ======= -.. Method:: Translate(script) +.. Method:: Process(script,state) + :noindex: + + 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. Start loading the jax's ``jax.js`` file; + 3. Start loading the required output jax (so it is ready when needed); and + 4. 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 ``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`` + +.. Method:: Translate(script,state) :noindex: This is the main routine called by MathJax when a ``<script>`` of the appropriate type is found. The default :meth:`Translate()` method throws an error indicating that :meth:`Translate()` hasn't been - redefined, so when the ``jax.js`` file loads, it should override the + defined, so when the ``jax.js`` file loads, it should override the default :meth:`Translate()` with its own version that does the actual translation. @@ -72,6 +99,9 @@ Methods :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 .. Method:: Register(mimetype) @@ -87,3 +117,14 @@ Methods - **mimetype** --- the MIME-type of the input this jax processes :Returns: ``null`` +.. Method:: needsUpdate(jax) + :noindex: + + 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 + diff --git a/docs/html/_sources/api/jax.txt b/docs/html/_sources/api/jax.txt @@ -63,34 +63,20 @@ Instance Properties jax. These can be modified by the author by including a configuration subsection for the specific jax in question. +.. describe:: JAXFILE: "jax.js" + + The name of the file that contains the main code for the jax. Methods ======= -.. Method:: Process(script) - :noindex: - - This is the method that the ``MathJax.Hub`` calls when it needs the - input or output jax to process the given math ``<script>``. 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 :meth:`Translate()` method, so that subsequent calls - to :meth:`Process()` will perform the appropriate translation. - - :Parameters: - - **script** --- reference to the DOM ``<script>`` object for - the mathematics to be translated - :Returns: an `ElementJax` object, or ``null`` - .. Method:: 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 :meth:`Translate()` method is - never called directly by MathJax; during the :meth:`loadComplete()` + never called directly by MathJax; during the ``loadComplete()`` call, this function is copied to the :meth:`Process()` method, and is called via that name. The default :meth:`Translate()` method throws an error indicating that the :meth:`Translate()` method was not @@ -147,7 +133,10 @@ Methods 5. Post the "[name] Jax Startup" message to the startup signal. 6. Perform the jax's :meth:`Startup()` method. 7. Post the "[name] Jax Ready" message to the startup signal. - 8. Perform the :meth:`MathJax.Ajax.loadComplete()` call for the + 8. Copy the ``preTranslate``, ``Translate``, and + ``postTranslate`` functions to ``preProcess``, ``Process``, + and ``postProcess``. + 9. Perform the :meth:`MathJax.Ajax.loadComplete()` call for the ``jax.js`` file. Note that the configuration process (the :meth:`Config()` call) can diff --git a/docs/html/_sources/api/outputjax.txt b/docs/html/_sources/api/outputjax.txt @@ -48,17 +48,65 @@ Properties The directory where the jax files are stored (e.g., ``"[MathJax]/jax/output/HTML-CSS"``); +.. describe:: fontDir + + The directory where the fonts are stored (e.g., ``"[MathJax]/fonts"``) + +.. describe:: imageDir + + The directory where MathJax images are found (e.g. ``"[MathJax]/images"``) + Methods ======= -.. Method:: Translate(script) +.. Method:: 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 :meth:`preTranslate()` method, so that subsequent calls + to :meth:`preProcess()` will perform the appropriate translation. + + :Parameters: + - **state** --- a structure containing information about the + current proccessing state of the mathematics + :Returns: ``null`` + +.. Method:: preTranslate(state) + + This routine replaces :meth:`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`` + +.. Method:: Translate(script,state) :noindex: This is the main routine called by MathJax when an element jax is to be converted to output. The default :meth:`Translate()` method throws an error indicating that :meth:`Translate()` hasn't been - redefined, so when the ``jax.js`` file loads, it should override the + defined, so when the ``jax.js`` file loads, it should override the default :meth:`Translate()` with its own version that does the actual translation. @@ -66,12 +114,35 @@ Methods 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. + document near the jax's ``<script>`` tag. The output jax can use + the ``state`` variable to maintain information about its + processing state, but see :meth:`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 +.. Method:: 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 :meth:`preProcess()` + above for caveats about naming properties). + + :Parameters: + - **state** --- a structure containing information about the + current proccessing state of the mathematics + :Returns: ``null`` + .. Method:: Register(mimetype) :noindex: @@ -95,3 +166,53 @@ Methods :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. + +.. Method:: 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 + +.. Method:: 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 + diff --git a/docs/html/_sources/api/variable.txt b/docs/html/_sources/api/variable.txt @@ -19,7 +19,7 @@ Main MathJax Components .. describe:: MathJax.Ajax Contains the code for loading external modules and creating - stylesheets. Most of the code that causes most of MathJax to + stylesheets. Most of the code that causes MathJax to operate asynchronously is handled here. .. describe:: MathJax.Message @@ -43,6 +43,11 @@ Main MathJax Components For example, the `tex2jax` preprocessor creates ``MathJax.Extension.tex2jax`` for its code and variables. +.. describe:: MathJax.Menu + + Initially null, this is where the MathJax contextual menu is + stored, when ``extensions/MathMenu.js`` is loaded. + .. describe:: MathJax.Object Contains the code for the MathJax object-oriented programming model. @@ -75,7 +80,11 @@ Properties .. describe:: MathJax.version - The version number of the MathJax library. + The version number of the MathJax library as a whole. + +.. describe:: MathJax.fileversion + + The version number of the ``MathJax.js`` file specifically. .. describe:: MathJax.isReady diff --git a/docs/html/_sources/asciimath.txt b/docs/html/_sources/asciimath.txt @@ -0,0 +1,127 @@ +.. _AsciiMath-support: + +************************* +MathJax AsciiMath Support +************************* + +The support for :term:`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 +<http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ 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 +:ref:`asciimath2jax configuration options <configure-asciimath2jax>` 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 +:ref:`AsciiMath options <configure-AsciiMath>` 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 :ref:`TeX +input jax <TeX-support>` 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: + +.. code-block:: javascript + + MathJax.Hub.Config({ + asciimath2jax: { + delimiters: [['$','$'], ['`','`']] + } + }); + +Note that the dollar signs are frequently used as a delimiter for +mathematics in the :term:`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 :ref:`asiimath2jax +configuration options <configure-asciimath2jax>` 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 +<http://www1.chapman.edu/~jipsen/mathml/asciimathsyntax.html>`_. + +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, + +.. code-block:: html + + ... 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 + +.. code-block:: html + + ... 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., + +.. code-block:: html + + ... when `x &lt; y` we have ... + +Keep in mind that the browser interprets your text before MathJax +does. diff --git a/docs/html/_sources/callbacks.txt b/docs/html/_sources/callbacks.txt @@ -214,10 +214,10 @@ 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, Internet Explorer does not implement that feature, -so you can't rely on it.) You can use a `Callback` object to -do this, and the :meth:`MathJax.Callback()` method will create one for -you. For example, +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 :meth:`MathJax.Callback()` method will +create one for you. For example, .. code-block:: javascript diff --git a/docs/html/_sources/config-files.txt b/docs/html/_sources/config-files.txt @@ -15,37 +15,93 @@ 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. - -The remaining files 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 better to load one larger file than several smaller -ones. See :ref:`Loading and Configuring MathJax <loading>` for more -details about how to load configurations, and how to modify the parameters -for a configuration file. +server or hard disk. If you are using MathJax from the CDN, you can +view the contents of `default.js +<http://cdn.mathjax.org/mathjax/latest/config/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 +<local-config-files>` for details. + +The remaining files in the `MathJax/config +<http://cdn.mathjax.org/mathjax/latest/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 +<loading>` 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 +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-AMS-MML_HTMLorMML`` configuration file +The ``TeX-MML-AM_HTMLorMML`` configuration file ================================================ This configuration file is the most general of the pre-defined -configurations. It loads all the important MathJax components, including +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 <configure-tex2jax>` section for +other configuration options for the ``tex2jax`` preprocessor, and the +:ref:`TeX input jax configuration <configure-TeX>` section for options +that control the TeX input processor. +See the :ref:`mml2jax configuration <configure-mml2jax>` section for +other configuration options for the ``mml2jax`` preprocessor, and the +:ref:`MathML input jax configuration <configure-MathML>` section for +options that control the MathML input processor. +See the :ref:`asciimath2jax configuration <configure-asciimath2jax>` section for +other configuration options for the ``asciimath2jax`` preprocessor, and the +:ref:`AsciiMath input jax configuration <configure-AsciiMath>` section for +options that control the AsciiMath input processor. +See :ref:`MathJax Output Formats <output-formats>` for more +information on the NativeMML and HTML-CSS output processors. See the +:ref:`MMLorHTML configuration <configure-MMLorHTML>` 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: +MathML and HTML-with-CSS output processor definitions, and the +MathMenu and MathZoom extensions. It is equivalent to the following +configuration: .. code-block:: javascript @@ -58,12 +114,12 @@ MathZoom extensions. It is equivalent to the following configuration: } }); -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. +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 <configure-tex2jax>` section for other configuration options for the ``tex2jax`` preprocessor, and the @@ -106,7 +162,7 @@ extensions. It is equivalent to the following configuration: 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 +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. @@ -123,7 +179,7 @@ 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, and HTML-CSS output otherwise. The user can still use the +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 @@ -142,7 +198,7 @@ and MathZoom extensions. It is equivalent to the following configuration: 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 +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. @@ -156,13 +212,100 @@ information on the NativeMML and HTML-CSS output processors. See the 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 <configure-asciimath2jax>` +section for other configuration options for the ``asciimath2jax`` +preprocessor, and the :ref:`AsciiMath input jax configuration +<configure-AsciiMath>` section for options that control the AsciiMath +input processor. See :ref:`MathJax Output Formats <output-formats>` +for more information on the HTML-CSS and NativeMML output processors. +See the :ref:`MMLorHTML configuration <configure-MMLorHTML>` 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 <configure-tex2jax>` section for +other configuration options for the ``tex2jax`` preprocessor, and the +:ref:`TeX input jax configuration <configure-TeX>` section for options +that control the TeX input processor. +See the :ref:`mml2jax configuration <configure-mml2jax>` section for +other configuration options for the ``mml2jax`` preprocessor, and the +:ref:`MathML input jax configuration <configure-MathML>` section for +options that control the MathML input processor. +See :ref:`MathJax Output Formats <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 -challenges. It is equivalent to the following configuration: +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 @@ -173,20 +316,24 @@ challenges. It is equivalent to the following configuration: TeX: { extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] }, - NativeMML: { showMathMenuMSIE: false }, - menuSettings: { zoom: "Double-Click" }, + menuSettings: { + zoom: "Double-Click", + mpContext: true, + mpMouse: true + }, errorSettings: { message: ["[Math Error]"] } }); -This turns off the MathJax contextual menu for Internet Explorer, since -it can interfere with some screen readers. It also sets the zoom trigger +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 +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 @@ -52,14 +52,14 @@ typical invocation of MathJax would be 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, -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 <inline-config>` for details. +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 <inline-config>` 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 @@ -82,7 +82,7 @@ advanced topic, however; see :ref:`Loading MathJax Dynamically Loading MathJax from the CDN ============================ -MathJax is now available as a web service from ``cdn.mathjax.org``, so you +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 @@ -100,19 +100,19 @@ get. The CDN has the following directory structure: mathjax/ # project-name 1.0-latest/ - 1.1-beta/ # temporary 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 (1.1-latest in this case) + 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 prepared for -distribution (they likely won't be). - +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. @@ -124,7 +124,7 @@ 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 if we release v1.2 or other later +will load the stable v1.1 version, even after we release v2.0 or other later versions, while .. code-block:: html @@ -132,7 +132,7 @@ 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 -v1.2 automatically when that is released. Note that all the versions +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 @@ -143,8 +143,9 @@ The use of ``cdn.mathjax.org`` is governed by its `terms of service 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 configuration file <config-files>` section below. +rather than one of the pre-defined ones, see the information at the +end of the :ref:`Using a Local Configuration File +<local-config-files>` section below. Configuring MathJax @@ -157,7 +158,7 @@ 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 earlier versions of MathJax, version 1.1 does not load a default +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 @@ -180,28 +181,41 @@ stored in the ``MathJax/config`` directory. Among these are the following .. describe:: 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, and HTML-with-CSS otherwise. + 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 TeX or LaTeX notation, with the + 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 MathML notation, and produces MathML - output if the browser supports it, or HTML-CSS output otherwise. + 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:: Accessible.js +.. describe:: TeX-MML-AM_HTMLorMML.js - Essentially the same as ``TeX-AMS-MML_HTMLorMML``, but with some - settings specified to make MathJax work better with assistive - technology (for the visually impaired). This includes setting the - zoom trigger to be a double-click, and removing the MathMenu in - Internet Explorer (which can interfere with some screen readers). + 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 @@ -226,7 +240,7 @@ 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), so you need to decide whether it is worth loading the +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 @@ -271,8 +285,17 @@ can use to first load the main configuration, then the local modifications. -You can also load MathJax from the MathJax CDN server but use a configuration from -your own local server: + +.. _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 @@ -285,7 +308,7 @@ 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 ``config`` parameter. In the example above, it would be .. code-block:: javascript @@ -303,23 +326,24 @@ Using in-line configuration options =================================== The second way to configure MathJax is through `in-line configuration`, -that puts the configuration options within the web page itself. This -process has changed in version 1.1 to make it compatible with HTML5. +which puts the configuration options within the web page itself. This +process was changed in version 1.1 to make it compatible with HTML5. Earlier versions of MathJax had in-line configuration included within the content of the ``<script>`` tag that loads ``MathJax.js``, but HTML5 makes it illegal to have content for a script with a ``src`` attribute. -MathJax solves this problem by using separate ``<script>`` tags to perform -configuration for 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 :meth:`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 want, and MathJax will -process them in order as they appear in the document. +MathJax solves this problem by using separate ``<script>`` tags to +perform the configuration for and 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 :meth:`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, @@ -346,7 +370,7 @@ HTML-CSS processor to use the TeX fonts rather than other locally installed fonts (e.g., :term:`STIX` fonts). See the :ref:`configuration options <configuration>` section (or the comments in the ``config/default.js`` file) for more information about the configuration options that you can -include in the :meth:`MathJax.Hub.Config()` call. Note that this +include in the :meth:`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 @@ -354,8 +378,9 @@ 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 include the TeX preprocessor, and use -an in-line configuration block to enable the single-dollar signs: +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: .. code-block:: html @@ -424,19 +449,24 @@ in your theme's header file, and 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. 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. +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 process is the +important to know how they interact. The configuration actions are the following: 1. Process any configuration file explicitly specified as a script parameter. diff --git a/docs/html/_sources/dynamic.txt b/docs/html/_sources/dynamic.txt @@ -6,21 +6,16 @@ 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`` 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 so MathJax will not be able to tell if it is -safe for it to process the contents of the page. Indeed, it will wait -forever for its ``onload`` handler to fire, and so will never process -the page. - -To solve this problem, you will need to call MathJax's ``onload`` -handler yourself, to let it know that it is OK to typeset the -mathematics on the page. You accomplish this by calling the -:meth:`MathJax.Hub.Startup.onload()` method as part of your MathJax -startup script. To do this, you will need to give MathJax an in-line -configuration. +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 +:meth:`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: @@ -29,43 +24,37 @@ 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"; - - var config = 'MathJax.Hub.Config({' + - 'extensions: ["tex2jax.js"],' + - 'jax: ["input/TeX","output/HTML-CSS"]' + - '});' + - 'MathJax.Hub.Startup.onload();'; - - if (window.opera) {script.innerHTML = config} - else {script.text = config} - + script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"; document.getElementsByTagName("head")[0].appendChild(script); })(); -You can adjust the ``config`` variable to your needs, but be careful to get -the commas right. The ``window.opera`` test is because some versions of -Opera don't handle setting ``script.text`` properly, while Internet -Explorer doesn't handle setting the ``innerHTML`` of a script tag. - -Here is a version that uses the ``config=filename`` method to -configure MathJax: +If you need to provide in-line configuration, you can do that using a +MathJax's configuration script: .. code-block:: javascript (function () { - var script = document.createElement("script"); + 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-full"; - - var config = 'MathJax.Hub.Startup.onload();'; - - if (window.opera) {script.innerHTML = config} - else {script.text = config} - - document.getElementsByTagName("head")[0].appendChild(script); + 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 :meth:`MathJax.Hub.Config()` directly in your code, as it will @@ -116,9 +105,8 @@ IE+MathPlayer. (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()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } @@ -157,9 +145,8 @@ converting the math images to their original TeX code. // 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"; - var config = 'MathJax.Hub.Startup.onload()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/html/_sources/glossary.txt b/docs/html/_sources/glossary.txt @@ -8,6 +8,16 @@ Glossary .. 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. + + .. seealso:: + + `AsciiMath home page <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ + Callback A JavaScript function that is used to perform actions that must wait for other actions to complete before they are @@ -44,6 +54,18 @@ Glossary `LaTeX Wikipedia entry <http://en.wikipedia.org/wiki/LaTeX>`_ + 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). + + .. seealso:: + + `Markdown home page <http://daringfireball.net/projects/markdown/>`_ + MathML An XML specification created to describe mathematical notations and capture both its structure and content. MathML @@ -62,6 +84,18 @@ Glossary `STIX project <http://stixfonts.org/>`_ + 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. + + .. seealso:: + + `SVG Wilipedia entry <http://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ + TeX A document markup language with robust math markup commands developed by Donald Knuth in the late 1970's, but still in diff --git a/docs/html/_sources/index.txt b/docs/html/_sources/index.txt @@ -2,8 +2,8 @@ MathJax Documentation ##################### -MathJax is an open-source JavaScript display engine for LaTeX and -MathML that works in all modern browsers. +MathJax is an open-source JavaScript display engine for LaTeX, +MathML, and AsciiMath notaion that works in all modern browsers. Basic Usage =========== @@ -24,6 +24,7 @@ Basic Usage MathJax TeX and LaTeX Support <tex> MathJax MathML Support <mathml> + MathJax AsciiMath Support <asciimath> MathJax Output Formats <output> .. toctree:: @@ -40,7 +41,8 @@ Upgrading MathJax .. toctree:: :maxdepth: 1 - What's New in MathJax v1.1 <whats-new> + What's New in MathJax v2.0 <whats-new-2.0> + What's New in MathJax v1.1 <whats-new-1.1> Migrating from MathJax v1.0 to v1.1 <upgrade> Converting to MathJax from jsMath <jsMath> diff --git a/docs/html/_sources/installation.txt b/docs/html/_sources/installation.txt @@ -10,11 +10,12 @@ distributed network service (see :ref:`Using the MathJax CDN yourself, and you can begin using MathJax right away; skip this document on installation and go directly to :ref:`Configuring MathJax <loading>`. -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 and its font package. 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. +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. .. _getting-mathjax-git: @@ -30,9 +31,9 @@ The easiest way to get MathJax and keep it up to date is to use the `Git 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, and that the ``fonts`` directory is now part of -the repository itself. +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 @@ -123,11 +124,11 @@ latest revision using ``svn``, use the command .. code-block:: sh - svn checkout http://svn.github.com/mathjax/MathJax.git MathJax + 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, and that the ``fonts`` directory is now part of -the repository itself. +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 @@ -152,18 +153,17 @@ 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 -either use ``git`` as described above, or one of the archive files as -described below. You can use +version. If you prefer to use one of the tagged releases instead, +then use .. code-block:: sh - svn checkout http://svn.github.com/mathjax/MathJax.git@nnn mathjax + svn checkout http://github.com/mathjax/MathJax/branch/[name] MathJax -to check out revision number `nnn`, but it is not easy to tell what -svn revision number is associated with a particular release. GitHub's -``svn`` service doesn't appear to allow you to specify a particular -tagged version. +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 <http://github.com/mathjax/MathJax/>`_ under the +`branches <https://github.com/mathjax/MathJax/branches>`_ tab. .. _getting-mathjax-zip: @@ -173,12 +173,12 @@ Obtaining MathJax via an archive Release versions of MathJax are available in archive files from the `MathJax download page <http://www.mathjax.org/download/>`_ or the -`GitHub downloads <http://github.com/mathjax/mathjax/>`_ (click the -big download button on the right), where you can download the archive +`MathJax GitHub page <http://github.com/mathjax/mathjax/>`_ (via the +"zip" button, or the "downloads" tab), where you can download the archive that you need. -You should download the v1.1 archive (which will get you a file with a -name like ``mathjax-MathJax-v1.1-X-XXXXXXXX.zip``, where the X's are +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 @@ -188,11 +188,10 @@ 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 -<http://github.com/mathjax/mathjax/>`_ (the download button at the -right), 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. You can -also get older tagged versions (if there are any). +<http://github.com/mathjax/mathjax/downloads>`_, 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 @@ -200,9 +199,8 @@ 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 -``v1.1-latest``), and then use the download button and the ``Download -.tar.gz`` or ``Download .zip`` button to get the latest patched -version of that release. +``v2.0-latest``), and then use the "zip" button just above it to get +the latest patched version of that release. Testing your installation @@ -215,6 +213,7 @@ installation is working properly:: 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 @@ -263,7 +262,7 @@ server <http://www.apache.org/>`_. In the remote server's ``.htaccess`` that contains the following lines: :: - <FilesMatch "\.(ttf|otf|eot)$"> + <FilesMatch "\.(ttf|otf|eot|woff)$"> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule> @@ -328,7 +327,7 @@ 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, like the MathJax +``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 diff --git a/docs/html/_sources/mathjax.txt b/docs/html/_sources/mathjax.txt @@ -2,16 +2,17 @@ What is MathJax? **************** -MathJax is an open-source JavaScript display engine for LaTeX and -MathML 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. It requires no setup on the part of -the user (no plugins to downlaod 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 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 @@ -21,11 +22,12 @@ 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, or `MathML <http://www.w3.org/TR/MathML3>`_, a World Wide -Web Consortium standard for representing mathematics in XML format. -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. +notation, `MathML <http://www.w3.org/TR/MathML3>`_, a World Wide Web +Consortium standard for representing mathematics in XML format, or +`AsciiMath <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ +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 diff --git a/docs/html/_sources/mathml.txt b/docs/html/_sources/mathml.txt @@ -20,10 +20,10 @@ 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, while -HTML-CSS is used for those that don't. See the :ref:`common -configurations <common-configurations>` section for details and -examples. +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 +:ref:`common configurations <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 @@ -43,7 +43,7 @@ MathML in HTML pages ==================== For MathML that is handled via the preprocessor, you should not use -the named MathML entities, but rather use the numeric entities like +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 @@ -64,12 +64,16 @@ tags. That is, use <mspace width="thinmathspace"></mspace> rather than ``<mspace width="thinmathspace />``. This is because HTML -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. +(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 @@ -86,12 +90,12 @@ The deficiencies include: - No support for the elementary math tags: ``mstack``, ``mlongdiv``, ``msgroup``, ``msrow``, ``mscarries``, and ``mscarry``. -- Limited support for line breaking (they are only allowed in direct - children of ``mrow`` or implied ``mrow`` elements). - -- No support for alignment groups in table. +- 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 <http://www.w3.org/Math/testsuite/results/tests.html>`_ for details. diff --git a/docs/html/_sources/model.txt b/docs/html/_sources/model.txt @@ -5,7 +5,7 @@ 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` or :term:`LaTeX`), and MathJax provides high-quality +: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 @@ -35,7 +35,8 @@ 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 <TeX-support>`, :ref:`MathML -notation <MathML-support>`, and the :ref:`jsMath notation +notation <MathML-support>`, :ref:`AsciiMath notation +<AsciiMath-support>` and the :ref:`jsMath notation <jsMath-support>` that uses `span` and `div` tags. For pages that are constructed programmatically, such as HTML @@ -44,10 +45,12 @@ 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, -and it also avoids the conflict between the use of the less-than sign, +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). +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: @@ -69,8 +72,9 @@ 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, and `math/mml` for mathematics in MathML -notation. When the `tex2jax` or `mml2jax` preprocessors run, they +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. @@ -197,17 +201,25 @@ 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. Output jax could be produced that render the -mathematics using SVG, 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. +understand MathML. MathJax also has an :term:`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. +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 diff --git a/docs/html/_sources/options/AsciiMath.txt b/docs/html/_sources/options/AsciiMath.txt @@ -0,0 +1,41 @@ +.. _configure-AsciiMath: + +***************************** +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 :meth:`MathJax.Hub.Config()` call. For +example + +.. code-block:: javascript + + 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. + +.. describe:: 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. + +.. describe:: 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. diff --git a/docs/html/_sources/options/FontWarnings.txt b/docs/html/_sources/options/FontWarnings.txt @@ -126,12 +126,15 @@ would set the ``fadeoutTime`` option to 2000 milliseconds (2 seconds). .. describe:: removeAfter: 12*1000 This is the amount of time to show the FontWarning message, in - milliseconds. The default is 12 seconds. + 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). .. describe:: 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. .. describe:: fadeoutTime: 1.5*1000 diff --git a/docs/html/_sources/options/HTML-CSS.txt b/docs/html/_sources/options/HTML-CSS.txt @@ -6,10 +6,12 @@ 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. They are listed with their default -values. To set any of these options, include a ``"HTML-CSS"`` section -in your :meth:`MathJax.Hub.Config()` call. Note that, because of the -dash, you need to enclose the name in quotes. For example +`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 :meth:`MathJax.Hub.Config()` call. +Note that, because of the dash, you need to enclose the name in +quotes. For example .. code-block:: javascript @@ -25,7 +27,7 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. The scaling factor (as a percentage) of math with respect to the surrounding text. The `HTML-CSS` output processor tries to match - the en-size of the mathematics with that of the text where it is + 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. @@ -86,6 +88,68 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. (even if it doesn't contain the needed character), so order these carefully. +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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: + + .. describe:: 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. + + .. describe:: 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. + .. describe:: styles: {} This is a list of CSS declarations for styling the HTML-CSS @@ -96,18 +160,10 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. .. describe:: showMathMenu: true - This controls whether the MathJax contextual menu will be - available on the mathematics in the page. If true, then - right-clicking (on the PC) or control-clicking (on the Mac) 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 <configure-MathMenu>` for - more details. + 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 :ref:`Core configuration options + <configure-hub>` for more details. .. describe:: tooltip: { ... } @@ -128,7 +184,8 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. The delay (in milliseconds) before the tooltop is cleared after the mouse moves out of the ``maction`` element. - .. describe:: offsetX: 10 and offsetY: 5 + .. describe:: offsetX: 10 + offsetY: 5 These are the offset from the mouse position (in pixels) where the tooltip will be placed. diff --git a/docs/html/_sources/options/MMLorHTML.txt b/docs/html/_sources/options/MMLorHTML.txt @@ -6,9 +6,11 @@ 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. They are listed with their default -values. To set any of these options, include a ``MMLorHTML`` section -in your :meth:`MathJax.Hub.Config()` call. For example +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 :meth:`MathJax.Hub.Config()` call. For +example .. code-block:: javascript @@ -28,15 +30,29 @@ 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. -.. describe:: prefer: { MSIE: "MML", Firefox: "MML", Opera: "HTML", other: "HTML" } +.. describe:: 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 does process some MathML - natively, its support is not sufficient to handle the more - complicated output generated by MathJax, so its setting is - ``"HTML"`` by default. + 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``. diff --git a/docs/html/_sources/options/MathEvents.txt b/docs/html/_sources/options/MathEvents.txt @@ -0,0 +1,37 @@ +.. _configure-MathEvents: + +************************ +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 :meth:`MathJax.Hub.Config()` call. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + MathEvents: { + hover: 400 + } + }); + +would set the required delay for hovering over a math element to +400 milliseconds. + +.. describe:: 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. + +.. describe:: 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 :ref:`CSS Style + Objects <css-style-objects>` for details on how to specify CSS + style in a JavaScript object. + diff --git a/docs/html/_sources/options/MathML.txt b/docs/html/_sources/options/MathML.txt @@ -6,7 +6,8 @@ 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. They are listed with their default values. To +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 :meth:`MathJax.Hub.Config()` call. For example diff --git a/docs/html/_sources/options/MathMenu.txt b/docs/html/_sources/options/MathMenu.txt @@ -34,33 +34,41 @@ would set the ``delay`` option to 600 milliseconds. .. describe:: showRenderer: true - This controls whether the "Math Renderer" item will be displayed in - the "Settings" submenu of the mathematics contextual menu. It - allows the user to change between the `HTML-CSS` and `NativeMML` - output processors for the mathematics on the page. Set to - ``false`` to prevent this menu item from showing. - -.. describe:: showContext: false - - This controls whether the "Contextual Menu" item will be displayed - in the "Settings" submenu of the mathematics 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. (The main - reason to allow pass-through to the browser's menu is to gain - access to the MathPlayer contextual menu when the NativeMML output - processor is used in Internet Explorer with the `MathPlayer plugin - <http://www.dessci.com/en/products/mathplayer/>`_.) Set to - ``false`` to prevent this menu item from showing. + 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. .. describe:: showFontMenu: false This controls whether the "Font Preference" item will be displayed - in the "Settings" submenu of the mathematics contextual menu. + 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. + +.. describe:: 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 + <http://www.dessci.com/en/products/mathplayer/>`_, 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. + +.. describe:: 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. .. describe:: windowSettings: { ... } diff --git a/docs/html/_sources/options/MathZoom.txt b/docs/html/_sources/options/MathZoom.txt @@ -14,23 +14,28 @@ section in your :meth:`MathJax.Hub.Config()` call. For example MathJax.Hub.Config({ MathZoom: { - delay: 600 + styles: { + "#MathJax_Zoom": { + "background-color": "#0000F0" + } + } } }); -would set the ``delay`` option to 600 milliseconds. +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). +the ``menuSettings`` configuration section of the `core configuration +options <configure-hub>`). -.. describe:: delay: 400 +.. describe:: delay: 500 - This the time (in milliseconds) that the mouse must be still over a - typeset mathematical formula before the zoomed version is displayed - (when the zoom trigger is set to `Hover`). + This value is now stored as the ``hover`` parameter in the + :ref:`MathEvents <configure-MathEvents>` configuration options, and + will have no effect if given here. .. describe:: styles: {} diff --git a/docs/html/_sources/options/NativeMML.txt b/docs/html/_sources/options/NativeMML.txt @@ -6,9 +6,11 @@ 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. They are listed with their default -values. To set any of these options, include a ``NativeMML`` section -in your :meth:`MathJax.Hub.Config()` call. For example +`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 :meth:`MathJax.Hub.Config()` call. For +example .. code-block:: javascript @@ -23,38 +25,29 @@ would set the ``scale`` option to 105 percent. .. describe:: scale: 100 The scaling factor (as a percentage) of math with respect to the - surrounding text. Since the `NativeMML` output relies on the - browser's native MathML support, MathJax does not control the - font size used in the mathematics. You may need to set this value - to compensate for the size selected by the browser. The user can - also adjust this value using the contextual menu item associated - with the typeset mathematics. + 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. + +.. describe:: 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. .. describe:: 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 :ref:`Core configuration options + <configure-hub>` for more details. - This controls whether the MathJax contextual menu will be - available on the mathematics in the page. If true, then - right-clicking (on the PC) or control-clicking (on the Mac) 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 <configure-MathMenu>` for - more details. - -.. describe:: showMathMenuMSIE: true - - There is a separate menu setting for MSIE since the code to handle - that is a bit delicate; if it turns out to have unexpected - consequences, you can turn it off without turning off the - menu support in other browsers. - .. describe:: styles: {} - This is a list of CSS declarations for styling the HTML-CSS + 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 :ref:`CSS Style Objects <css-style-objects>` for details on how to specify diff --git a/docs/html/_sources/options/SVG.txt b/docs/html/_sources/options/SVG.txt @@ -0,0 +1,162 @@ +.. _configure-SVG: + +************************ +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 :meth:`MathJax.Hub.Config()` call. Note that, because of the +dash, you need to enclose the name in quotes. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + "SVG": { + scale: 120 + } + }); + +would set the ``scale`` option to 120%. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: font: "TeX" + + This is the font to use for rendering the mathematics. Note that + currently only the `TeX` font is available. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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: + + .. describe:: 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. + + .. describe:: 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. + +.. describe:: 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 :ref:`CSS Style + Objects <css-style-objects>` for details on how to specify CSS + style in a JavaScript object. + +.. describe:: 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: + + .. describe:: delayPost: 600 + + The delay (in milliseconds) before the tooltip is posted after + the mouse is moved over the ``maction`` element. + + .. describe:: delayClear: 600 + + The delay (in milliseconds) before the tooltop is cleared + after the mouse moves out of the ``maction`` element. + + .. describe:: offsetX: 10 + offsetY: 5 + + These are the offset from the mouse position (in pixels) + where the tooltip will be placed. diff --git a/docs/html/_sources/options/TeX.txt b/docs/html/_sources/options/TeX.txt @@ -6,7 +6,8 @@ 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. They are listed with their default values. To +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 :meth:`MathJax.Hub.Config()` call. For example @@ -41,41 +42,90 @@ to be defined within the TeX input processor. 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. + +.. describe:: equationNumbers: {} + + This object controls the automatic equation numbering and the + equation referencing. It contains the following values: + + .. describe:: 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. + + .. describe:: 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. + + .. describe:: 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. + + .. describe:: 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). + + .. describe:: formatURL: function (id) {return '#'+escape(id)} + + A function that takes an equation ID and returns the URL to + link to it. + + .. describe:: 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 + <http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ for + some examples of equation numbering. .. describe:: 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, + 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. - .. code-block:: javascript + For example, - Macros: { - RR: '{\\bf R}', - bold: ['{\\bf #1}', 1] - } + .. code-block:: javascript + + 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. + 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. .. describe:: 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. + 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. .. describe:: 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. + 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. diff --git a/docs/html/_sources/options/asciimath2jax.txt b/docs/html/_sources/options/asciimath2jax.txt @@ -0,0 +1,110 @@ +.. _configure-asciimath2jax: + +****************************** +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 +:meth:`MathJax.Hub.Config()` call. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + asciimath2jax: { + delimiters: [['`','`'], ['$','$']] + } + }); + +would set the ASCIIMath delimiters for the `asciimath2jax` +preprocessor to include dollar signs as well as back-ticks. + + +.. describe:: 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, + + .. code-block:: javascript + + 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. + +.. describe:: 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: + + .. 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 <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 `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. + +.. describe:: 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. + +.. describe:: 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. diff --git a/docs/html/_sources/options/hub.txt b/docs/html/_sources/options/hub.txt @@ -19,10 +19,7 @@ behavior of MathJax. They are given with their default values. 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 number - of TeX-specific extensions (see the :ref:`TeX and LaTeX input - <tex-and-latex-input>` section of the :ref:`Getting Started - <getting-started>` document for more details). There is also a + ``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. @@ -33,7 +30,9 @@ behavior of MathJax. They are given with their default values. 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 the only other predefined configuration file. + configuration is one such configuration file, and there are a + number of other pre-defined configurations (see :ref:`Using a + configuration file <config-files>` for more details). .. describe:: styleSheets: [] @@ -43,8 +42,9 @@ behavior of MathJax. They are given with their default values. .. describe:: styles: {} - CSS `selector: rules;` styles to be defined dynamically at startup - time. + CSS styles to be defined dynamically at startup time. These are + in the form `selector:rules` (see :ref:`CSS Style Objects + <css-style-objects>` for complete details). .. describe:: preJax: null and postJax: null @@ -59,22 +59,23 @@ behavior of MathJax. They are given with their default values. 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 regular expressions, 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. 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. + 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: "\\\\\\\\\"`` makes a double backslash the ``preJax`` text ``preJax: "\\[\\[", postJax: "\\]\\]"`` makes it so jax scripts must be enclosed in double brackets. @@ -148,13 +149,51 @@ behavior of MathJax. They are given with their default values. .. 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 + 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 <configure-MathMenu>` 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 @@ -194,9 +233,19 @@ behavior of MathJax. They are given with their default values. to ``"Browser"``, you will get the MathPlayer contextual menu rather than the MathJax menu. - There are also settings for ``format``, ``renderer``, and ``font``, - but these are maintained by MathJax and should not be set by the - page author. + .. 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: { ... } diff --git a/docs/html/_sources/options/index.txt b/docs/html/_sources/options/index.txt @@ -13,16 +13,16 @@ will see that ``config/default.js`` is itself one big call to ``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 +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 a configuration object as its value. The object is itself -a configuration object made up of name-value pairs that give the +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, @@ -70,6 +70,7 @@ are categorized by the component they affect. The tex2jax preprocessor options <tex2jax> The mml2jax preprocessor options <mml2jax> + The asciimath2jax preprocessor options <asciimath2jax> The jsMath2jax preprocessor options <jsMath2jax> .. toctree:: @@ -77,8 +78,10 @@ are categorized by the component they affect. The TeX input processor options <TeX> The MathML input processor options <MathML> + The AsciiMath input processor options <AsciiMath> The HTML-CSS output processor options <HTML-CSS> The NativeMML output processor options <NativeMML> + The SVG output processor options <SVG> The MMLorHTML configuration options <MMLorHTML> .. toctree:: @@ -86,6 +89,7 @@ are categorized by the component they affect. The MathMenu options <MathMenu> The MathZoom options <MathZoom> + The MathEvents options <MathEvents> The FontWarnings options <FontWarnings> diff --git a/docs/html/_sources/options/tex2jax.txt b/docs/html/_sources/options/tex2jax.txt @@ -56,6 +56,21 @@ preprocessor. 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 @@ -113,20 +128,28 @@ preprocessor. 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 automatically preceeded by - ``'(^| )('`` and followed by ``')( |$)'``, so your pattern will - have to match full words in the class name. Assigning an element - this class name will prevent `tex2jax` from processing its - contents. + 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 turn on - processing within tags that have been marked as ignored or skipped - above. Note that this is a regular expression, and so you need to - be sure to quote any `regexp` special characters. The pattern is - automatically preceeded by ``'(^| )('`` and followed by ``')( - |$)'``, so your pattern will have to match full words in the class - name. Use this to restart processing within an element that has - been marked as ignored above. + *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 @@ -4,24 +4,26 @@ MathJax Output Formats ********************** -Currently, MathJax can render math in two ways: +Currently, MathJax can render math in three ways: -- Using HTML-with-CSS to lay out the mathematics, or +- 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` and `NativeMML` output +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 +``_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, otherwise HTML-CSS output will be used. +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"`` -or ``"output/NativeMML"`` in the `jax` array of your MathJax configuration. -For example +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 @@ -30,39 +32,61 @@ For example 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 +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. (The -HTML-CSS processor has not yet been optimized for speed, so you can -expect some improvement in the future. Note that IE8 in "IE8 -standards mode" is an order of magnitude slower than any other browser -when processing math through the HTML-CSS output processor; see -:ref:`HTML-CSS with IE8 <html-css-with-ie8>` below for some strategies -to deal with this.) - -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 +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; but this does introduce some printing issues in some +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 disadvantage of this mode is that it does not take +advantage of STIX fonts, and so only has access to the characters in +the web-based fonts, and it 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. + +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 <http://www.dessci.com/en/products/mathplayer/>`_ 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, +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 may in the future, since MathML is part of the HTML5 +natively, but may 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 lay -out 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 may rely on features that are not available in -some renderers (for example, Firefox's MathML support does not implement -some of the named widths, such as ``negativethinmathspace``). The results -using the NativeMML output processor may have spacing or other rendering -problems that are outside of MathJax's control. +The advantage of the NativeMML output Processor is its speed, since +native MathML support is much faster than using complicated HTML and +CSS to lay out 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 =========================================== @@ -70,9 +94,10 @@ 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, and HTML-CSS output otherwise. These -are the configuration files that end in ``_HTMLorMML``. +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 @@ -86,28 +111,37 @@ the abilities of your user's browser. config: ["MMLorHTML.js"], jax: ["input/TeX"] -You can customize which choice to make on a browser-by-browser basis -or a global basis. See the ``config/default.js`` file or the + +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 <configure-MMLorHTML>` section for further -details. As an example, this configuration tells MathJax to use HTML-CSS -output rather than native MathML support for Firefox: +details. As an example, this configuration tells MathJax to use +native MathML support rather than HTML-CSS output for Firefox: .. code-block:: html <script type="text/x-mathjax-config"> MathJax.Hub.Config({ - MMLorHTML: { prefer: { Firefox: "HTML" } } + 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 only for IE with the -MathPlayer plugin (Firefox is the only other browser to have native MathML -support that is sufficient for use with MathJax). Note, however, that a -user can employ the MathJax contextual menu to select the other renderer if -he or she wishes. +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 @@ -116,44 +150,109 @@ 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 + + <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 :ref:`HTML-CSS configuration <configure-HTML-CSS>` or +:ref:`SVG configuration <configure-SVG>` 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 :term:`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-ie8: -HTML-CSS with IE8 -================= - -Internet Explorer 8 has at least eight different rendering modes in which -it can operate, and that are triggered by the `DOCTYPE` of the document -being viewed. Its "quirks" mode is its fastest mode, and its "IE8 -standards" mode is its slowest. This is the mode triggered by strict HTML -document types, and since most modern content management systems now -include a `DOCTYPE` that activates "standards" mode, IE8 will operate in -its slowest manner. This is particularly apparent when MathJax is used, -since IE8 in standards mode runs 20 to 30 times slower than it does in its -IE7 emulation mode, and 60 times slower than in quirks mode, on the sample -equations page in ``test/sample.html``. - -Most users find this speed reduction unacceptable when there is much -mathematics on the page. To overcome this problem, you may wish to -tell IE8 to use its IE7 emulation mode rather than its IE8 standards -mode. You can accomplish this by including the line +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 .. code-block:: html - <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> + <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: + +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 -at the top of the ``<head>`` section of your HTML documents. This -lets you keep the strict `DOCTYPE` for validation purposes, while -still managing to get reasonable performance from Internet Explorer -8. Note that this line must come at the beginning of the ``<head>``, -before any stylesheets or other content are loaded. + "HTML-CSS": { + extensions: ["handle-floats.js"] + } -Alternatively, you can use the `MMLorHTML` configuration file -described above to select NativeMML output when possible, and request -that your users install the `MathPlayer plugin -<http://www.dessci.com/en/products/mathplayer/>`_, which will render -the mathematics much more quickly. +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. -It appears that IE9 in IE9 standards mode may perform better than IE8, but -since IE9 is still in beta testing as of this writing, we have yet to see -exactly what the performance of MathJax in IE9 will be like. +See the :ref:`HTML-CSS configuration options <configure-HTML-CSS>` 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 @@ -4,15 +4,16 @@ 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 and integrations -<http://www.mathjax.org/community/mathjax-in-use/#web-apps>`_ list of the +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 +<http://www.mathjax.org/community/mathjax-in-use>`_ list of the `MathJax web site <http://www.mathjax.org>`_. 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. +use MathJax by modifying the theme or template for your wiki or blog, +as explained below. Using MathJax in a Theme File diff --git a/docs/html/_sources/signals.txt b/docs/html/_sources/signals.txt @@ -53,14 +53,14 @@ 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, -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. +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 @@ -79,14 +79,14 @@ message, and can act on it in whatever ways they see fit. Creating a Listener =================== -MathJax maintains two separate 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). +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 :meth:`MathJax.Hub.Register.StartupHook()` or @@ -103,10 +103,12 @@ called when it arrives. For example See the :ref:`MathJax Startup Sequence <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. +`test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/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 @@ -154,8 +156,9 @@ signal's :meth:`Interest()` method, as in the following example. 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. +them; instead, use the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html>`_ +file, which displays them in the web page. See the :ref:`Signal Object <api-signal>` reference page for details on the structure and methods of the signal object. diff --git a/docs/html/_sources/start.txt b/docs/html/_sources/start.txt @@ -5,15 +5,15 @@ Getting Started *************** MathJax allows you to include mathematics in your web pages, either -using TeX and LaTeX notation, or as MathML, and you can even use both -in the same document. +using TeX and LaTeX notation, MathML, or AsciiMath notation, and you +can even use all three in the same document. 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 for use locally on your own hard disk -(with no need for network access). Both of these are described below, -with links to more detailed explanations. This page gives the +MathJax on your own server, or use it locally on your own 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. @@ -43,12 +43,13 @@ into the ``<head>`` block of your document. (It can also go in the 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, and otherwise use HTML-with-CSS to display the mathematics. -This is the most general configuration, 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 <loading>` instructions. +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 +<loading>` instructions. The use of ``cdn.mathjax.org`` is governed by its `terms of service <http://www.mathjax.org/download/mathjax-cdn-terms-of-service/>`_, so be @@ -68,7 +69,7 @@ and replace it. This is sometimes called a `man-in-the-middle <http://en.wikipedia.org/wiki/Man-in-the-middle_attack>`_ attack. To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be easily done by using the +over a secure HTTPS connection. This can be done easily by using the following ``<script>`` tag instead of the one listed above: .. code-block:: html @@ -78,8 +79,9 @@ following ``<script>`` tag instead of the one listed above: </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, this address is stable and safe to use. +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 @@ -89,7 +91,8 @@ 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. +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. @@ -108,8 +111,8 @@ should obtain a file named something like ``mathjax-MathJax-v1.1-X-XXXXXXXX.zip``, where the X's are random-looking letters and numbers). 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 earlier releases, which had -the fonts separate from the rest of the code. +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 @@ -118,7 +121,7 @@ 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 +**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 <http://git-scm.com/>`_ version control system, and is described in the :ref:`Installing MathJax @@ -128,17 +131,18 @@ of MathJax (see :ref:`Installing MathJax via SVN <getting-mathjax-svn>`). Once you have MathJax set up on your server, you can test it using the -files in the ``MathJax/test`` directory. Load them in your browser -using its web address 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. +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 @@ -147,11 +151,12 @@ 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, and will use -HTML-with-CSS to render the mathematics otherwise. +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 @@ -160,11 +165,11 @@ described more fully in :ref:`Common Configurations <common-configurations>`, and the configuration options are described in :ref:`Configuration Options <configuration>`. -Note: The configuration process has changed in MathJax v1.1, so if you have -existing pages that use MathJax, 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 <installation>` for more -details. +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 +<installation>` for more details. Linking your copy of MathJax into a web page @@ -210,13 +215,15 @@ of MathJax. Putting mathematics in a web page ================================= -To put mathematics in your web page, you can use either :term:`TeX` -and :term:`LaTeX` notation or :term:`MathML` notation or both 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. These two formats are described in more detail below. +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: @@ -258,10 +265,14 @@ options <configure-tex2jax>` 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 <TeX-support>` page for -more on MathJax's support for TeX. +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): +Here is a complete sample page containing TeX mathematics (also +available in the `test/sample-tex.html +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-tex.html>`_ +file): .. code-block:: html @@ -290,6 +301,16 @@ 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 <TeX-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 <TeX-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: @@ -305,8 +326,12 @@ loaded by the ``TeX-AMS-MML_HTMLorMML`` configuration. These include: - `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. +Other extensions may be loaded automatically when needed. See +:ref:`TeX and LaTeX support <TeX-support>` for details on the other +TeX extensions that are available. + +.. _mathml-input: MathML input ------------ @@ -321,10 +346,21 @@ 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. - -Here is a complete sample page containing MathML mathematics (also -available in the ``test/sample-mml.html`` file): +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 +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-mml.html>`_ +file): .. code-block:: html @@ -338,13 +374,19 @@ available in the ``test/sample-mml.html`` file): </head> <body> - When <math><mi>a</mi><mo>&#x2260;</mo><mn>0</mn></math>, - there are two solutions to <math> + <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 mode="display"> + </math> + and they are + <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <mi>x</mi> <mo>=</mo> <mrow> <mfrac> @@ -363,6 +405,7 @@ available in the ``test/sample-mml.html`` file): </mrow> <mtext>.</mtext> </math> + </p> </body> </html> @@ -374,20 +417,66 @@ should use .. code-block:: html - <mspace width="thinmathspace"></mspace> + <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 +:ref:`mml2jax configuration options <configure-mml2jax>` page for more +details. See the :ref:`MathML <MathML-support>` 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 +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-asciimath.html>`_ +file): + +.. code-block:: html + + <!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> -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. 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 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 <configure-asciimath2jax>` page for more +details. See the :ref:`AsciiMath support <AsciiMath-support>` page for more on +MathJax's AsciiMath support. -The component of MathJax that recognizes MathML notation 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 -<configure-mml2jax>` page for more details. See the :ref:`MathML -<MathML-support>` page for more on MathJax's MathML support. Where to go from here? diff --git a/docs/html/_sources/startup.txt b/docs/html/_sources/startup.txt @@ -90,7 +90,12 @@ pushed into the queue: .. -5. Load the jax configuration files: +5. Initialize the Message system (the grey information box in the + lower left) + +.. + +6. Load the jax configuration files: - Post the ``Begin Jax`` startup signal - Load the jax config files from the ``MathJax.Hub.config.jax`` array @@ -101,7 +106,7 @@ pushed into the queue: .. -6. Load the extension files: +7. Load the extension files: - Post the ``Begin Extensions`` startup signal - Load the files from the ``MathJax.Hub.config.extensions`` array @@ -114,20 +119,22 @@ pushed into the queue: .. -7. Set the MathJax menu's renderer value based on the jax that have been +8. Set the MathJax menu's renderer value based on the jax that have been loaded .. -8. Wait for the onload handler to fire +9. 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) .. -9. Set ``MathJax.isReady`` to ``true`` +10. Set ``MathJax.isReady`` to ``true`` .. -10. Perform the typesetting pass (preprocessors and processors) +11. Perform the typesetting pass (preprocessors and processors) - Post the ``Begin Typeset`` startup signal - Post the ``Begin PreProcess`` hub signal @@ -137,6 +144,12 @@ pushed into the queue: - 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 @@ -145,7 +158,18 @@ pushed into the queue: .. -11. Post the ``End`` startup signal +12. Jump to the location specified in the URL's hash reference, if + any. + +.. + +13. 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). + +.. + +14. Post the ``End`` startup signal The loading of the jax and extensions in steps 5 and 6 are now done in @@ -157,4 +181,6 @@ 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. +See the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html>`_ file +to see the signals in action. diff --git a/docs/html/_sources/synchronize.txt b/docs/html/_sources/synchronize.txt @@ -12,7 +12,7 @@ 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 used three mechanisms to +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 @@ -37,20 +37,23 @@ queues for actions that need to be synchronized with each other, but not to MathJax as a whole. See the :ref:`Queue Object <api-queue>` 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 -:ref:`Signal Object <api-signal>` 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. +**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 +:ref:`Signal Object <api-signal>` reference page for more details. +See also the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/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: diff --git a/docs/html/_sources/tex.txt b/docs/html/_sources/tex.txt @@ -81,7 +81,7 @@ 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. +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 @@ -129,6 +129,228 @@ easier to enter ``<`` and ``>`` using TeX-like syntax: 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 :term:`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 +<http://www.mathjax.org/community/mathjax-in-use/>`_ 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 + +.. code-block:: latex + + ... 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 + +.. code-block:: latex + + \\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. + + +.. _tex-macros: + +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 + +.. code-block:: latex + + \( + \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 + +.. code-block:: javascript + + 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: + +.. code-block:: javascript + + 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``: + +.. code-block:: html + + <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 :ref:`Using a Local +Configuration File with the CDN <local-config-files>` for details. + + +.. _tex-eq-numbers: + +Autmatic Equation Numering +========================== + +New in MathJax v2.0 is the ability to have equations be numbered +automatically. This is 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 + + <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 + +.. code-block:: latex + + \begin{equation} + E = mc^2 + \end{equation} + +will be numbered, while + +.. code-block:: latex + + \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, + +.. code-block:: latex + + 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 <http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ 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 :ref:`TeX configuration +options <configure-TeX>` page for more details. + .. _tex-extensions: @@ -165,7 +387,82 @@ script prior to loading MathJax. For example will load the `autobold` TeX extension in addition to those already included in the ``TeX-AMS_HTML`` configuration file. -The main extensions are described below. +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 + + <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 +<http://cdn.mathjax.org/mathjax/latest/test/sample-autoload.html>`_ +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: + +.. 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 ---------------------- @@ -192,6 +489,9 @@ 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 -------- @@ -208,6 +508,295 @@ appears in a section of an HTML page that is in bold. 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 ``<menclose>`` +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 + ``<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 + +.. 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 <http://www.ctan.org/pkg/mhchem>`_ 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 -------- @@ -230,10 +819,11 @@ following to your :meth:`MathJax.Hub.Config()` call: inlineDelimiters: ["",""], // or ["$","$"] or ["\\(","\\)"] multiLine: true, // false for TeX on all one line style: { - "font-family": "serif", - "font-size": "80%", + "font-size": "90%", + "text-align": "left", "color": "black", - "border": "1px solid" + "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) } @@ -261,7 +851,20 @@ the paragraph, use } } -You may also wish to set the font family, as the default is "serif". +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 @@ -296,6 +899,19 @@ 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 --------------- @@ -348,6 +964,53 @@ array. You can configure the extension as follows: } +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 + + <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> + + .. _tex-commands: Supported LaTeX commands @@ -358,6 +1021,11 @@ 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 +<http://www.onemathematicalcat.org/MathJaxDocumentation/TeXSyntax.htm>`_ page. + Symbols ------- @@ -431,8 +1099,11 @@ B \barwedge AMSsymbols \Bbb \Bbbk AMSsymbols + \bbox [bbox] + \bcancel cancel \because AMSsymbols \begin + \begingroup begingroup non-standard \beta \beth AMSsymbols \between AMSsymbols @@ -498,13 +1169,18 @@ 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 @@ -522,7 +1198,8 @@ C \class [HTML] non-standard \clubsuit \colon - \color + \color color + \colorbox color \complement AMSsymbols \cong \coprod @@ -603,12 +1280,15 @@ 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 @@ -625,6 +1305,7 @@ F \fallingdotseq AMSsymbols \fbox + \fcolorbox color \Finv AMSsymbols \flat \forall @@ -642,6 +1323,7 @@ G \Gamma \gamma \gcd + \gdef begingroup \ge \genfrac AMSmath \geq @@ -652,6 +1334,7 @@ G \ggg AMSsymbols \gggtr AMSsymbols \gimel AMSsymbols + \global begingroup \gnapprox AMSsymbols \gneq AMSsymbols \gneqq AMSsymbols @@ -735,6 +1418,7 @@ L .. code-block:: latex + \label [AMSmath] \Lambda \lambda \land @@ -774,6 +1458,7 @@ L \lesseqqgtr AMSsymbols \lessgtr AMSsymbols \lesssim AMSsymbols + \let [newcommand] \lfloor \lg \lgroup @@ -843,6 +1528,7 @@ M \mathscr \mathsf \mathstrut + \mathtip action non-standard \mathtt \matrix \max @@ -850,9 +1536,11 @@ M \measuredangle AMSsymbols \mho AMSsymbols \mid + \middle \min \mit \mkern + \mmlToken non-standard \mod \models \moveleft @@ -880,6 +1568,7 @@ N \neq \newcommand [newcommand] \newenvironment [newcommand] + \Newextarrow extpfeil \newline \nexists AMSsymbols \ngeq AMSsymbols @@ -1007,7 +1696,9 @@ R \rbrack \rceil \Re + \ref [AMSmath] \renewcommand [newcommand] + \renewenvironment [newcommand] \require non-standard \restriction AMSsymbols \rfloor @@ -1130,6 +1821,7 @@ T \textit \textrm \textstyle + \texttip action non-standard \tfrac AMSmath \therefore AMSsymbols \Theta @@ -1142,6 +1834,7 @@ T \tiny \Tiny non-standard \to + \toggle action non-standard \top \triangle \triangledown AMSsymbols @@ -1250,8 +1943,14 @@ X \Xi \xi + \xcancel cancel \xleftarrow AMSmath + \xlongequal extpfeil + \xmapsto extpfeil \xrightarrow AMSmath + \xtofrom extpfeil + \xtwoheadleftarrow extpfeil + \xtwoheadrightarrow extpfeil Y - diff --git a/docs/html/_sources/typeset.txt b/docs/html/_sources/typeset.txt @@ -127,17 +127,28 @@ The actions you can perform on an element jax include: to set the math text of the element to `newmath` and typeset. + .. describe:: 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. + .. describe:: Reprocess() - to remove the output and reproduce it again (for - example, if CSS has changed that would alter the spacing of the - mathematics). + to remove the output and then retranslate the input into the + internal MathML and rerender the output. .. describe:: Remove() to remove the output for this math element (but not the original ``<script>`` tag). + .. describe:: needsUpdate() + + to find out if the mathematics has changed so that its output + needs to be updated. + .. describe:: SourceElement() to obtain a reference to the original @@ -161,7 +172,7 @@ queue. If your startup code performs the commands var studentDisplay = null; MathJax.Hub.Queue(function () { - studentDisplay = MathJax.Hub.getAllJax("MathDiv"); + studentDisplay = MathJax.Hub.getAllJax("MathDiv")[0]; }); then you can use @@ -173,8 +184,12 @@ then you can use 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 (available in a -more full-featured version as ``test/sample-dynamic.html``): +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 +<http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html>`_. .. code-block:: html @@ -232,3 +247,8 @@ more full-featured version as ``test/sample-dynamic.html``): </body> </html> + +There are a number of additional example pages at `test/examples.html +<http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ that +illustrate how to call MathJax dynamically or perform other actions +with MathJax. diff --git a/docs/html/_sources/whats-new-1.1.txt b/docs/html/_sources/whats-new-1.1.txt @@ -0,0 +1,172 @@ +.. _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 <loading-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 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 @@ -0,0 +1,718 @@ +.. _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 <configure-HTML-CSS>` and :ref:`configuration options for SVG +<configure-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 +<configure-hub>` 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 <tex-eq-numbers>` 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 <automatic-linebreaking>` 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 <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ +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 <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 <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 <config-files>` 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 :ref:`TeX support <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 :ref:`TeX support + <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 <api-hub>` 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 <configure-MMLorHTML>`. + +* `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 + + .. code-block:: html + + <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 + + .. 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 <configure-tex2jax>` 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 :ref:`Notes about shared + installations <cross-domain-linking>` 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 :ref:`core configuration options + <configure-hub>`). + +* 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 :ref:`output formats + <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). diff --git a/docs/html/_sources/whats-new.txt b/docs/html/_sources/whats-new.txt @@ -1,172 +0,0 @@ -.. _whats-new: - -************************** -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 <loading-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 downlaoded, 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 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/_static/mathjax_mathml.user.js b/docs/html/_static/mathjax_mathml.user.js @@ -10,9 +10,9 @@ if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { (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()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/html/_static/mathjax_wikipedia.user.js b/docs/html/_static/mathjax_wikipedia.user.js @@ -23,9 +23,8 @@ if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { // 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"; - var config = 'MathJax.Hub.Startup.onload()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/html/api/ajax.html b/docs/html/api/ajax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Ajax Object &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Ajax Object &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Message Object" href="message.html" /> <link rel="prev" title="The MathJax.Hub Object" href="hub.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="hub.html" title="The MathJax.Hub Object" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -423,12 +423,12 @@ actual root URL location).</p> <li class="right" > <a href="hub.html" title="The MathJax.Hub Object" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/callback.html b/docs/html/api/callback.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Callback Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Callback Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Callback.Queue Class" href="queue.html" /> <link rel="prev" title="The MathJax.HTML Object" href="html.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="html.html" title="The MathJax.HTML Object" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -102,12 +102,12 @@ the window object. For example,</p> <p>would specify a callback that would pass <tt class="docutils literal"><span class="pre">2</span></tt> and <tt class="docutils literal"><span class="pre">3</span></tt> to the given function, and it would return their sum, <tt class="docutils literal"><span class="pre">5</span></tt>, when the callback is executed.</p> +</dd></dl> + <dl class="describe"> <dt> <tt class="descname">[object, fn]</tt></dt> -<dd></dd></dl> - -<p>An array containing an object to use as <cite>this</cite> and a function to +<dd><p>An array containing an object to use as <cite>this</cite> and a function to call for the callback. For example,</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="p">[{</span><span class="nx">x</span><span class="o">:</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="nx">y</span><span class="o">:</span><span class="s1">&#39;bar&#39;</span><span class="p">},</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span><span class="k">this</span><span class="p">.</span><span class="nx">x</span><span class="p">}]</span> </pre></div> @@ -123,9 +123,10 @@ when it is called.</p> the function as well.</p> </dd></dl> -<p>..describe:: [&#8220;method&#8221;, object]</p> -<blockquote> -<div><p>Here, <cite>object</cite> is an object that has a method called <cite>method</cite>, and +<dl class="describe"> +<dt> +<tt class="descname">[&quot;method&quot;, object]</tt></dt> +<dd><p>Here, <cite>object</cite> is an object that has a method called <cite>method</cite>, and the callback will execute that method (with the object as <cite>this</cite>) when it is called. For example,</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="p">[</span><span class="s2">&quot;toString&quot;</span><span class="p">,[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">]]</span> @@ -133,7 +134,8 @@ the callback will execute that method (with the object as </div> <p>would call the <cite>toString</cite> method on the array <tt class="docutils literal"><span class="pre">[1,2,3,4]</span></tt> when the callback is called, returning <tt class="docutils literal"><span class="pre">1,2,3,4</span></tt>.</p> -</div></blockquote> +</dd></dl> + <dl class="describe"> <dt> <tt class="descname">[&quot;method&quot;, object, data...]</tt></dt> @@ -289,6 +291,50 @@ commands.</p> </dd></dl> <dl class="method"> +<dt id="Queue"> +<tt class="descname">Queue</tt><big>(</big><span class="optional">[</span><em>callback</em>, <em>...</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Queue" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Creates a <cite>MathJax.CallBack.Queue</cite> object and pushes the given +callbacks into the queue. See <a class="reference internal" href="../queues.html#using-queues"><em>Using Queues</em></a> +for more details about MathJax queues.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>callback</strong> &#8212; one or more callback specifications</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>Queue</cite> object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="Signal"> +<tt class="descname">Signal</tt><big>(</big><em>name</em><big>)</big><a class="headerlink" href="#Signal" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Looks for a named signal, creates it if it doesn&#8217;t already exist, +and returns the signal object. See +<a class="reference internal" href="../signals.html#using-signals"><em>Using Signals</em></a> for more details.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>name</strong> &#8212; name of the signal to get or create</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>Signal</cite> object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> <dt id="ExecuteHooks"> <tt class="descname">ExecuteHooks</tt><big>(</big><em>hooks</em><span class="optional">[</span>, <em>data</em><span class="optional">[</span>, <em>reset</em><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#ExecuteHooks" title="Permalink to this definition">ΒΆ</a></dt> <dd><p>Calls each callback in the <cite>hooks</cite> array (or the single hook if it @@ -319,21 +365,45 @@ returns <tt class="docutils literal"><span class="pre">null</span></tt>.</p> </dd></dl> <dl class="method"> -<dt id="Queue"> -<tt class="descname">Queue</tt><big>(</big><span class="optional">[</span><em>callback</em>, <em>...</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Queue" title="Permalink to this definition">ΒΆ</a></dt> -<dd><p>Creates a <cite>MathJax.CallBack.Queue</cite> object and pushes the given -callbacks into the queue. See <a class="reference internal" href="../queues.html#using-queues"><em>Using Queues</em></a> -for more details about MathJax queues.</p> +<dt id="Hooks"> +<tt class="descname">Hooks</tt><big>(</big><em>reset</em><big>)</big><a class="headerlink" href="#Hooks" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>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 <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback.ExecuteHooks()</span></tt> and is +used internally for signal callbacks, pre- and post-filters, and +other lists of callbacks.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> -<li><strong>callback</strong> &#8212; one or more callback specifications</li> +<li><strong>reset</strong> &#8212; <tt class="docutils literal"><span class="pre">true</span></tt> if callbacks can be called more than once</li> </ul> </td> </tr> -<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>Queue</cite> object</p> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>Hooks</cite> object</p> +</td> +</tr> +</tbody> +</table> +<p>The list has the following methods:</p> +<dl class="method"> +<dt id="Add"> +<tt class="descname">Add</tt><big>(</big><em>hook</em><span class="optional">[</span>, <em>priority</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Add" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Add a callback to the prioritized list. If <tt class="docutils literal"><span class="pre">priority</span></tt> is +not provided, the default is 10. The <tt class="docutils literal"><span class="pre">hook</span></tt> is a <cite>Callback</cite> +specification as described above.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>hook</strong> &#8212; callback specification to add to the list</li> +<li><strong>priority</strong> &#8212; priority of the hook in the list (default: 10)</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the callback object being added</p> </td> </tr> </tbody> @@ -341,27 +411,45 @@ for more details about MathJax queues.</p> </dd></dl> <dl class="method"> -<dt id="Signal"> -<tt class="descname">Signal</tt><big>(</big><em>name</em><big>)</big><a class="headerlink" href="#Signal" title="Permalink to this definition">ΒΆ</a></dt> -<dd><p>Looks for a named signal, creates it if it doesn&#8217;t already exist, -and returns the signal object. See -<a class="reference internal" href="../signals.html#using-signals"><em>Using Signals</em></a> for more details.</p> +<dt> +<tt class="descname">Remove</tt><big>(</big><em>hook</em><big>)</big></dt> +<dd><p>Remove a given hook (as returned from <a class="reference internal" href="#Add" title="Add"><tt class="xref py py-meth docutils literal"><span class="pre">Add()</span></tt></a> above) +from the prioritized list.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> -<li><strong>name</strong> &#8212; name of the signal to get or create</li> +<li><strong>hook</strong> &#8212; the callback to be removed</li> </ul> </td> </tr> -<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>Signal</cite> object</p> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">null</span></tt></p> </td> </tr> </tbody> </table> </dd></dl> +<dl class="method"> +<dt id="Execute"> +<tt class="descname">Execute</tt><big>(</big><big>)</big><a class="headerlink" href="#Execute" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Execute the list of callbacks, resetting them if requested. +If any of the hooks return callbacks, then <tt class="docutils literal"><span class="pre">Execute()</span></tt> +returns a callback that will be executed when they all have +completed.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body">a callback object or <tt class="docutils literal"><span class="pre">null</span></tt></td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + </div> </div> @@ -420,12 +508,12 @@ and returns the signal object. See <li class="right" > <a href="html.html" title="The MathJax.HTML Object" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/elementjax.html b/docs/html/api/elementjax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.ElementJax Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.ElementJax Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The Base Jax Class" href="jax.html" /> <link rel="prev" title="The MathJax.OutputJax Class" href="outputjax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="outputjax.html" title="The MathJax.OutputJax Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -91,15 +91,13 @@ that class.</p> <dl class="describe"> <dt> <tt class="descname">inputJax</tt></dt> -<dd><p>A reference to the input jax that created the element. (In the -future, this will be changed to the name of the input jax.)</p> +<dd><p>The name of the input jax that created the element.</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">outputJax</tt></dt> -<dd><p>A reference to the output jax that has processed this element. (In -the future, this will be changed to the name of the output jax.)</p> +<dd><p>The name of the output jax that has processed this element.</p> </dd></dl> <dl class="describe"> @@ -159,11 +157,34 @@ new one given by <cite>text</cite>). When the processing is complete, the <dl class="method"> <dt> +<tt class="descname">Rerender</tt><big>(</big><span class="optional">[</span><em>callback</em><span class="optional">]</span><big>)</big></dt> +<dd><p>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&#8217;t regenerated; only the +output is. The <cite>callback</cite>, if any, is called when the process +completes.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>callback</strong> &#8212; the callback specification</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the callback object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt> <tt class="descname">Reprocess</tt><big>(</big><span class="optional">[</span><em>callback</em><span class="optional">]</span><big>)</big></dt> -<dd><p>Removes the output and produces it again. This may be necessary if -there are changes to the CSS styles that would affect the layout -of the mathematics, for example. The <cite>callback</cite>, if any, is -called when the process completes.</p> +<dd><p>Removes the output and then retranslates the input into the +internal form and reredners the output again. The <cite>callback</cite>, if +any, is called when the process completes.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> @@ -212,6 +233,22 @@ associated to this element jax.</p> </table> </dd></dl> +<dl class="method"> +<dt id="needsUpdate"> +<tt class="descname">needsUpdate</tt><big>(</big><big>)</big><a class="headerlink" href="#needsUpdate" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Indicates whether the mathematics has changed so that its output +needs to be updated.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><tt class="docutils literal"><span class="pre">true</span></tt> if the mathematics needs to be reprocessed, +<tt class="docutils literal"><span class="pre">false</span></tt> otherwise</td> +</tr> +</tbody> +</table> +</dd></dl> + <p>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 <tt class="docutils literal"><span class="pre">toMathML()</span></tt>, or an accessibility output jax could add @@ -271,12 +308,12 @@ contextual menu.</p> <li class="right" > <a href="outputjax.html" title="The MathJax.OutputJax Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/html.html b/docs/html/api/html.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.HTML Object &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.HTML Object &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Callback Class" href="callback.html" /> <link rel="prev" title="The MathJax.Message Object" href="message.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="message.html" title="The MathJax.Message Object" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -199,6 +199,27 @@ bugs.</p> </table> </dd></dl> +<dl class="method"> +<dt id="getScript"> +<tt class="descname">getScript</tt><big>(</big><em>script</em><big>)</big><a class="headerlink" href="#getScript" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Gets the contents of the <tt class="docutils literal"><span class="pre">script</span></tt> element, properly taking into +account the browser limitations and bugs.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>script</strong> &#8212; the script whose content is to be retrieved</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the text of the <tt class="docutils literal"><span class="pre">script</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + <dl class="describe"> <dt> <tt class="descname">Cookie.Set(name,data)</tt></dt> @@ -300,12 +321,12 @@ above,</p> <li class="right" > <a href="message.html" title="The MathJax.Message Object" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/hub.html b/docs/html/api/hub.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Hub Object &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Hub Object &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Ajax Object" href="ajax.html" /> <link rel="prev" title="The MathJax variable" href="variable.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="variable.html" title="The MathJax variable" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -79,7 +79,19 @@ Options</em></a> reference page.</p> <dt> <tt class="descname">processUpdateTime: 250</tt></dt> <dd><p>The minimum time (in milliseconds) between updates of the -&#8220;Processing Math&#8221; message.</p> +&#8220;Processing Math&#8221; 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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">processUpdateDelay: 10</tt></dt> +<dd><p>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).</p> </dd></dl> <dl class="describe"> @@ -119,6 +131,13 @@ will both be <tt class="docutils literal"><span class="pre">false</span></tt> fo <dl class="describe"> <dt> +<tt class="descname">isMobile</tt></dt> +<dd><p>This is <tt class="docutils literal"><span class="pre">true</span></tt> when MathJax is running a mobile version of a +WebKit or Gecko-based browser.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">isFirefox, isSafari, isChrome, isOpera, isMSIE, isKonqueror</tt></dt> <dd><p>These are <tt class="docutils literal"><span class="pre">true</span></tt> when the browser is the indicated one, and <tt class="docutils literal"><span class="pre">false</span></tt> otherwise.</p> @@ -161,6 +180,21 @@ need to do special processing. For example:</p> </dd></dl> +<dl class="describe"> +<dt> +<tt class="descname">inputJax</tt></dt> +<dd><p>An object storing the MIME types associated with the various +registered input jax (these are the types of the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tags +that store the math to be processed by each input jax).</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">outputJax</tt></dt> +<dd><p>An object storing the output jax associate with the various +element jax MIME types for the registered output jax.</p> +</dd></dl> + </div> <div class="section" id="methods"> <h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">ΒΆ</a></h2> @@ -434,13 +468,43 @@ references. The <cite>callback</cite> is called when the processing is complete <dl class="method"> <dt id="Reprocess"> <tt class="descname">Reprocess</tt><big>(</big><span class="optional">[</span><em>element</em><span class="optional">[</span>, <em>callback</em><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#Reprocess" title="Permalink to this definition">ΒΆ</a></dt> -<dd><p>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. The <cite>element</cite> is either the DOM <cite>id</cite> of the -element to scan, a reference to the DOM element itself, or an array of -id&#8217;s or references. The <cite>callback</cite> is called when the processing is +<dd><p>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 <cite>element</cite> is either the DOM <cite>id</cite> of the element +to scan, a reference to the DOM element itself, or an array of +id&#8217;s or references. The <cite>callback</cite> is called when the processing +is complete.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>element</strong> &#8212; the element(s) to be reprocessed</li> +<li><strong>callback</strong> &#8212; the callback specification</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the callback object</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="Rerender"> +<tt class="descname">Rerender</tt><big>(</big><span class="optional">[</span><em>element</em><span class="optional">[</span>, <em>callback</em><span class="optional">]</span><span class="optional">]</span><big>)</big><a class="headerlink" href="#Rerender" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>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 +<cite>element</cite> is either the DOM <cite>id</cite> of the element to scan, a +reference to the DOM element itself, or an array of id&#8217;s or +references. The <cite>callback</cite> is called when the processing is complete.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -578,6 +642,33 @@ handled by MathJax, and returns <tt class="docutils literal"><span class="pre">1 </dd></dl> <dl class="method"> +<dt id="setRenderer"> +<tt class="descname">setRenderer</tt><big>(</big><em>renderer</em><span class="optional">[</span>, <em>type</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#setRenderer" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>Sets the output jax for the given element jax <tt class="docutils literal"><span class="pre">type</span></tt> (or <tt class="docutils literal"><span class="pre">jax/mml</span></tt> +if none is specified) to be the one given by <tt class="docutils literal"><span class="pre">renderer</span></tt>, which +must be the name of a renderer, such as <tt class="docutils literal"><span class="pre">NativeMML</span></tt> or +<tt class="docutils literal"><span class="pre">HTML-CSS</span></tt>. 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:<tt class="docutils literal"><span class="pre">Rerender()</span></tt> above to replace the current +renderings by new ones).</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>renderer</strong> &#8212; the name of the output jax to use for rendering</li> +<li><strong>type</strong> &#8212; the element jax MIME type whose renderer to set</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">null</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> <dt id="Insert"> <tt class="descname">Insert</tt><big>(</big><em>dst</em>, <em>src</em><big>)</big><a class="headerlink" href="#Insert" title="Permalink to this definition">ΒΆ</a></dt> <dd><p>Inserts data from the <cite>src</cite> object into the <cite>dst</cite> object. The @@ -685,12 +776,12 @@ error on the page.</p> <li class="right" > <a href="variable.html" title="The MathJax variable" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/index.html b/docs/html/api/index.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax API &mdash; MathJax v1.1 documentation</title> + <title>The MathJax API &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="next" title="The MathJax variable" href="variable.html" /> <link rel="prev" title="Modifying Math on the Page" href="../typeset.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="../typeset.html" title="Modifying Math on the Page" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -132,11 +132,11 @@ on the main MathJax documentation page.</p> <li class="right" > <a href="../typeset.html" title="Modifying Math on the Page" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/inputjax.html b/docs/html/api/inputjax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.InputJax Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.InputJax Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.OutputJax Class" href="outputjax.html" /> <link rel="prev" title="The MathJax.Callback.Signal Class" href="signal.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="signal.html" title="The MathJax.Callback.Signal Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -107,11 +107,57 @@ that class.</p> <h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">ΒΆ</a></h2> <dl class="method"> <dt> -<tt class="descname">Translate</tt><big>(</big><em>script</em><big>)</big></dt> +<tt class="descname">Process</tt><big>(</big><em>script</em>, <em>state</em><big>)</big></dt> +<dd><p>This is the method that the <tt class="docutils literal"><span class="pre">MathJax.Hub</span></tt> calls when it needs +the input jax to process the given math <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt>. Its default +action is to do the following:</p> +<ol class="arabic simple"> +<li>Start loading any element jax specified in the <tt class="docutils literal"><span class="pre">elementJax</span></tt> array;</li> +<li>Start loading the jax&#8217;s <tt class="docutils literal"><span class="pre">jax.js</span></tt> file;</li> +<li>Start loading the required output jax (so it is ready when needed); and</li> +<li>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).</li> +</ol> +<p>Once the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file has loaded, this method is replaced by +the jax&#8217;s <tt class="docutils literal"><span class="pre">Translate()</span></tt> method (see below), so that +subsequent calls to <tt class="docutils literal"><span class="pre">Process()</span></tt> will perform the appropriate +translation.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><dl class="first docutils"> +<dt><strong>script</strong> &#8212; reference to the DOM <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> object for</dt> +<dd><p class="first last">the mathematics to be translated</p> +</dd> +</dl> +</li> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics +(internal use)</p> +</dd> +</dl> +</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">an <cite>ElementJax</cite> object, or <tt class="docutils literal"><span class="pre">null</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt> +<tt class="descname">Translate</tt><big>(</big><em>script</em>, <em>state</em><big>)</big></dt> <dd><p>This is the main routine called by MathJax when a <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> of the appropriate type is found. The default <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method throws an error indicating that <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> hasn&#8217;t been -redefined, so when the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file loads, it should override the +defined, so when the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file loads, it should override the default <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> with its own version that does the actual translation.</p> <p>The translation process should include the creation of an @@ -121,8 +167,16 @@ for this element.</p> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> -<li><strong>script</strong> &#8212; the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> element to be translated</li> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><p class="first"><strong>script</strong> &#8212; the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> element to be translated</p> +</li> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics +(internal use)</p> +</dd> +</dl> +</li> </ul> </td> </tr> @@ -157,6 +211,28 @@ of the various types from one another.</p> </table> </dd></dl> +<dl class="method"> +<dt> +<tt class="descname">needsUpdate</tt><big>(</big><em>jax</em><big>)</big></dt> +<dd><p>This implements the element jax&#8217;s <tt class="docutils literal"><span class="pre">needsUpdate()</span></tt> method, and +returns <tt class="docutils literal"><span class="pre">true</span></tt> if the <tt class="docutils literal"><span class="pre">jax</span></tt> needs to be rerendered (i.e., the +text has changed), and <tt class="docutils literal"><span class="pre">false</span></tt> otherwise.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Perameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>jax</strong> &#8212; the element jax to be checked</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">true</span></tt> if the jax&#8217;s text has changed, <tt class="docutils literal"><span class="pre">false</span></tt> otherwise</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + </div> </div> @@ -210,12 +286,12 @@ of the various types from one another.</p> <li class="right" > <a href="signal.html" title="The MathJax.Callback.Signal Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/jax.html b/docs/html/api/jax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The Base Jax Class &mdash; MathJax v1.1 documentation</title> + <title>The Base Jax Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax Object-Oriented Programming Model" href="object.html" /> <link rel="prev" title="The MathJax.ElementJax Class" href="elementjax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="elementjax.html" title="The MathJax.ElementJax Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -119,41 +119,15 @@ jax. These can be modified by the author by including a configuration subsection for the specific jax in question.</p> </dd></dl> -</div> -<div class="section" id="methods"> -<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">ΒΆ</a></h2> -<dl class="method"> +<dl class="describe"> <dt> -<tt class="descname">Process</tt><big>(</big><em>script</em><big>)</big></dt> -<dd><p>This is the method that the <tt class="docutils literal"><span class="pre">MathJax.Hub</span></tt> calls when it needs the -input or output jax to process the given math <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt>. Its -default action is to start loading the jax&#8217;s <tt class="docutils literal"><span class="pre">jax.js</span></tt> 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 <tt class="docutils literal"><span class="pre">jax.js</span></tt> file has loaded, this method is -replaced by the jax&#8217;s <a class="reference internal" href="#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method, so that subsequent calls -to <a class="reference internal" href="hub.html#Process" title="Process"><tt class="xref py py-meth docutils literal"><span class="pre">Process()</span></tt></a> will perform the appropriate translation.</p> -<table class="docutils field-list" frame="void" rules="none"> -<col class="field-name" /> -<col class="field-body" /> -<tbody valign="top"> -<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> -<li><dl class="first docutils"> -<dt><strong>script</strong> &#8212; reference to the DOM <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> object for</dt> -<dd><p class="first last">the mathematics to be translated</p> -</dd> -</dl> -</li> -</ul> -</td> -</tr> -<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">an <cite>ElementJax</cite> object, or <tt class="docutils literal"><span class="pre">null</span></tt></p> -</td> -</tr> -</tbody> -</table> +<tt class="descname">JAXFILE: &quot;jax.js&quot;</tt></dt> +<dd><p>The name of the file that contains the main code for the jax.</p> </dd></dl> +</div> +<div class="section" id="methods"> +<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">ΒΆ</a></h2> <dl class="method"> <dt id="Translate"> <tt class="descname">Translate</tt><big>(</big><em>script</em><big>)</big><a class="headerlink" href="#Translate" title="Permalink to this definition">ΒΆ</a></dt> @@ -161,7 +135,7 @@ to <a class="reference internal" href="hub.html#Process" title="Process"><tt cla <tt class="docutils literal"><span class="pre">jax.js</span></tt> file when it is loaded. It should perform the translation action for the specific jax. For an input jax, it should return the <cite>ElementJax</cite> object that it created. The <a class="reference internal" href="#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method is -never called directly by MathJax; during the <a class="reference internal" href="ajax.html#loadComplete" title="loadComplete"><tt class="xref py py-meth docutils literal"><span class="pre">loadComplete()</span></tt></a> +never called directly by MathJax; during the <tt class="docutils literal"><span class="pre">loadComplete()</span></tt> call, this function is copied to the <a class="reference internal" href="hub.html#Process" title="Process"><tt class="xref py py-meth docutils literal"><span class="pre">Process()</span></tt></a> method, and is called via that name. The default <a class="reference internal" href="#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method throws an error indicating that the <a class="reference internal" href="#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method was not @@ -249,6 +223,9 @@ following:</p> <li>Post the &#8220;[name] Jax Startup&#8221; message to the startup signal.</li> <li>Perform the jax&#8217;s <a class="reference internal" href="#Startup" title="Startup"><tt class="xref py py-meth docutils literal"><span class="pre">Startup()</span></tt></a> method.</li> <li>Post the &#8220;[name] Jax Ready&#8221; message to the startup signal.</li> +<li>Copy the <tt class="docutils literal"><span class="pre">preTranslate</span></tt>, <tt class="docutils literal"><span class="pre">Translate</span></tt>, and +<tt class="docutils literal"><span class="pre">postTranslate</span></tt> functions to <tt class="docutils literal"><span class="pre">preProcess</span></tt>, <tt class="docutils literal"><span class="pre">Process</span></tt>, +and <tt class="docutils literal"><span class="pre">postProcess</span></tt>.</li> <li>Perform the <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Ajax.loadComplete()</span></tt> call for the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file.</li> </ol> @@ -313,12 +290,12 @@ isn&#8217;t called until those files are completely loaded.</p> <li class="right" > <a href="elementjax.html" title="The MathJax.ElementJax Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/message.html b/docs/html/api/message.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Message Object &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Message Object &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.HTML Object" href="html.html" /> <link rel="prev" title="The MathJax.Ajax Object" href="ajax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="ajax.html" title="The MathJax.Ajax Object" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -272,12 +272,12 @@ newlines. This is used in debugging MathJax operations.</p> <li class="right" > <a href="ajax.html" title="The MathJax.Ajax Object" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/object.html b/docs/html/api/object.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax Object-Oriented Programming Model &mdash; MathJax v1.1 documentation</title> + <title>The MathJax Object-Oriented Programming Model &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="Describing HTML snippets" href="../HTML-snippets.html" /> <link rel="prev" title="The Base Jax Class" href="jax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="jax.html" title="The Base Jax Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -341,12 +341,12 @@ wrapping the <cite>def</cite> for the <a class="reference internal" href="#Subcl <li class="right" > <a href="jax.html" title="The Base Jax Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/outputjax.html b/docs/html/api/outputjax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.OutputJax Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.OutputJax Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.ElementJax Class" href="elementjax.html" /> <link rel="prev" title="The MathJax.InputJax Class" href="inputjax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="inputjax.html" title="The MathJax.InputJax Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -96,29 +96,121 @@ that class.</p> <dd><p>The directory where the jax files are stored (e.g., <tt class="docutils literal"><span class="pre">&quot;[MathJax]/jax/output/HTML-CSS&quot;</span></tt>);</p> </dd></dl> +<dl class="describe"> +<dt> +<tt class="descname">fontDir</tt></dt> +<dd><p>The directory where the fonts are stored (e.g., <tt class="docutils literal"><span class="pre">&quot;[MathJax]/fonts&quot;</span></tt>)</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">imageDir</tt></dt> +<dd><p>The directory where MathJax images are found (e.g. <tt class="docutils literal"><span class="pre">&quot;[MathJax]/images&quot;</span></tt>)</p> +</dd></dl> + </div> <div class="section" id="methods"> <h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">ΒΆ</a></h2> <dl class="method"> +<dt id="preProcess"> +<tt class="descname">preProcess</tt><big>(</big><em>state</em><big>)</big><a class="headerlink" href="#preProcess" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>This is called by <tt class="docutils literal"><span class="pre">MathJax.Hub</span></tt> to ask the output processor to +prepare to process math scripts. Its default action is to start +loading the jax&#8217;s <tt class="docutils literal"><span class="pre">jax.js</span></tt> 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).</p> +<p>Once the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file has loaded, this method is replaced by +the jax&#8217;s <a class="reference internal" href="#preTranslate" title="preTranslate"><tt class="xref py py-meth docutils literal"><span class="pre">preTranslate()</span></tt></a> method, so that subsequent calls +to <a class="reference internal" href="#preProcess" title="preProcess"><tt class="xref py py-meth docutils literal"><span class="pre">preProcess()</span></tt></a> will perform the appropriate translation.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics</p> +</dd> +</dl> +</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">null</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="preTranslate"> +<tt class="descname">preTranslate</tt><big>(</big><em>state</em><big>)</big><a class="headerlink" href="#preTranslate" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>This routine replaces <a class="reference internal" href="#preProcess" title="preProcess"><tt class="xref py py-meth docutils literal"><span class="pre">preProcess()</span></tt></a> above when the jax&#8217;s +<tt class="docutils literal"><span class="pre">jax.js</span></tt> file is loaded. It is called by <tt class="docutils literal"><span class="pre">MathJax.Hub</span></tt> 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.)</p> +<p>The routine can use <tt class="docutils literal"><span class="pre">state.jax[this.id]</span></tt> to obtain the array of +element jax that are to be processed. The output jax can use the +<tt class="docutils literal"><span class="pre">state</span></tt> 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&#8217;s ID. For example, the HTML-CSS output jax +might use <tt class="docutils literal"><span class="pre">state.HTMLCSSlast</span></tt> to keep track of the last equation +it processed, or could add <tt class="docutils literal"><span class="pre">state.HTMLCSS</span> <span class="pre">=</span> <span class="pre">{...}</span></tt> to create an +object of its own within the state variable.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics</p> +</dd> +</dl> +</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">null</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> <dt> -<tt class="descname">Translate</tt><big>(</big><em>script</em><big>)</big></dt> +<tt class="descname">Translate</tt><big>(</big><em>script</em>, <em>state</em><big>)</big></dt> <dd><p>This is the main routine called by MathJax when an element jax is to be converted to output. The default <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> method throws an error indicating that <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> hasn&#8217;t been -redefined, so when the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file loads, it should override the +defined, so when the <tt class="docutils literal"><span class="pre">jax.js</span></tt> file loads, it should override the default <a class="reference internal" href="jax.html#Translate" title="Translate"><tt class="xref py py-meth docutils literal"><span class="pre">Translate()</span></tt></a> with its own version that does the actual translation.</p> <p>You should use <tt class="docutils literal"><span class="pre">MathJax.Hub.getJaxFor(script)</span></tt> 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&#8217;s <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag.</p> +document near the jax&#8217;s <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag. The output jax can use +the <tt class="docutils literal"><span class="pre">state</span></tt> variable to maintain information about its +processing state, but see <a class="reference internal" href="#preTranslate" title="preTranslate"><tt class="xref py py-meth docutils literal"><span class="pre">preTranslate()</span></tt></a> above for naming +conventions for properties that are added.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> -<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> -<li><strong>script</strong> &#8212; the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> element to be translated</li> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><p class="first"><strong>script</strong> &#8212; the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> element to be translated</p> +</li> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics</p> +</dd> +</dl> +</li> </ul> </td> </tr> @@ -130,6 +222,39 @@ document near the jax&#8217;s <tt class="docutils literal"><span class="pre">&lt </dd></dl> <dl class="method"> +<dt id="postTranslate"> +<tt class="descname">postTranslate</tt><big>(</big><em>state</em><big>)</big><a class="headerlink" href="#postTranslate" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>This routines is called by <tt class="docutils literal"><span class="pre">MathJax.Hub</span></tt> 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.)</p> +<p>The routine can use <tt class="docutils literal"><span class="pre">state.jax[this.id]</span></tt> to obtain the array of +element jax that were processed, or can use the <tt class="docutils literal"><span class="pre">state</span></tt> variable +to store its own state information (see <a class="reference internal" href="#preProcess" title="preProcess"><tt class="xref py py-meth docutils literal"><span class="pre">preProcess()</span></tt></a> +above for caveats about naming properties).</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><dl class="first docutils"> +<dt><strong>state</strong> &#8212; a structure containing information about the</dt> +<dd><p class="first last">current proccessing state of the mathematics</p> +</dd> +</dl> +</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last"><tt class="docutils literal"><span class="pre">null</span></tt></p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> <dt> <tt class="descname">Register</tt><big>(</big><em>mimetype</em><big>)</big></dt> <dd><p>This registers the MIME-type for the element jax associated with @@ -175,6 +300,88 @@ tag associated with the element jax.</p> </table> </dd></dl> +<p>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 +(<cite>MathEvents</cite>) and the zoom-handling code (<cite>MathZoom</cite>). That requires +the following methods.</p> +<dl class="method"> +<dt id="getJaxFromMath"> +<tt class="descname">getJaxFromMath</tt><big>(</big><em>math</em><big>)</big><a class="headerlink" href="#getJaxFromMath" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>This is called by the event-handling code (<cite>MathEvents</cite>) 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 +<cite>MathEvents</cite> code uses this routine to map back to the jax +associated with that output.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first"> +<li><dl class="first docutils"> +<dt><strong>math</strong> &#8212; a DOM element that triggered a DOM event</dt> +<dd><p class="first last">(e.g., a mouse click)</p> +</dd> +</dl> +</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">the <cite>ElementJax</cite> structure associated with the DOM element</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="Zoom"> +<tt class="descname">Zoom</tt><big>(</big><em>jax</em>, <em>span</em>, <em>math</em>, <em>Mw</em>, <em>Mh</em><big>)</big><a class="headerlink" href="#Zoom" title="Permalink to this definition">ΒΆ</a></dt> +<dd><p>This routine is called by the zoom-handling code (<cite>MathZoom</cite>) +when an expression has received its zoom trigger event (e.g., a +double-click). The <tt class="docutils literal"><span class="pre">jax</span></tt> is the math that needs to be zoomed, +<tt class="docutils literal"><span class="pre">span</span></tt> is a <tt class="docutils literal"><span class="pre">&lt;span&gt;</span></tt> element in which the zoomed version of +the math should be placed, <tt class="docutils literal"><span class="pre">math</span></tt> is the DOM element that +received the zoom trigger event, and <tt class="docutils literal"><span class="pre">Mw</span></tt> and <tt class="docutils literal"><span class="pre">Mh</span></tt> are the +maximum width and height allowed for the zoom box (the <tt class="docutils literal"><span class="pre">span</span></tt>).</p> +<p>The return value is an object with the following properties:</p> +<ul> +<li><dl class="first docutils"> +<dt><tt class="docutils literal"><span class="pre">Y</span></tt> &#8212; the vertical offset from the top of the <tt class="docutils literal"><span class="pre">span</span></tt> to</dt> +<dd><p class="first last">the baseline of the mathematics</p> +</dd> +</dl> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">mW</span></tt> &#8212; the width of the original mathematics element</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">mH</span></tt> &#8212; the height of the original mathematics element</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">zW</span></tt> &#8212; the width of the zoomed math</p> +</li> +<li><p class="first"><tt class="docutils literal"><span class="pre">zH</span></tt> &#8212; the height of the zoomed math</p> +</li> +</ul> +<p>All of these values are in pixels.</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">Parameters :</th><td class="field-body"><ul class="first simple"> +<li><strong>jax</strong> &#8212; the jax to be zoomed</li> +<li><strong>span</strong> &#8212; the <tt class="docutils literal"><span class="pre">&lt;span&gt;</span></tt> in which to place the zoomed math</li> +<li><strong>math</strong> &#8212; the DOM element generating the zoom event</li> +<li><strong>Mw</strong> &#8212; the maximum width of the zoom box</li> +<li><strong>Mh</strong> &#8212; the maximum height of the zoom box</li> +</ul> +</td> +</tr> +<tr class="field"><th class="field-name">Returns :</th><td class="field-body"><p class="first last">a structure as described above</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + </div> </div> @@ -228,12 +435,12 @@ tag associated with the element jax.</p> <li class="right" > <a href="inputjax.html" title="The MathJax.InputJax Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/queue.html b/docs/html/api/queue.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Callback.Queue Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Callback.Queue Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Callback.Signal Class" href="signal.html" /> <link rel="prev" title="The MathJax.Callback Class" href="callback.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="callback.html" title="The MathJax.Callback Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -231,12 +231,12 @@ it has been waiting for a command to complete.</p> <li class="right" > <a href="callback.html" title="The MathJax.Callback Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/signal.html b/docs/html/api/signal.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax.Callback.Signal Class &mdash; MathJax v1.1 documentation</title> + <title>The MathJax.Callback.Signal Class &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.InputJax Class" href="inputjax.html" /> <link rel="prev" title="The MathJax.Callback.Queue Class" href="queue.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="queue.html" title="The MathJax.Callback.Queue Class" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -319,12 +319,12 @@ message is posted to the signal.</p> <li class="right" > <a href="queue.html" title="The MathJax.Callback.Queue Class" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/api/variable.html b/docs/html/api/variable.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax variable &mdash; MathJax v1.1 documentation</title> + <title>The MathJax variable &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="The MathJax API" href="index.html" /> <link rel="next" title="The MathJax.Hub Object" href="hub.html" /> <link rel="prev" title="The MathJax API" href="index.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="index.html" title="The MathJax API" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">The MathJax API</a> &raquo;</li> </ul> </div> @@ -70,7 +70,7 @@ code, the onload handler, the browser data, and so forth.</p> <dt> <tt class="descname">MathJax.Ajax</tt></dt> <dd><p>Contains the code for loading external modules and creating -stylesheets. Most of the code that causes most of MathJax to +stylesheets. Most of the code that causes MathJax to operate asynchronously is handled here.</p> </dd></dl> @@ -105,6 +105,13 @@ For example, the <cite>tex2jax</cite> preprocessor creates <dl class="describe"> <dt> +<tt class="descname">MathJax.Menu</tt></dt> +<dd><p>Initially null, this is where the MathJax contextual menu is +stored, when <tt class="docutils literal"><span class="pre">extensions/MathMenu.js</span></tt> is loaded.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">MathJax.Object</tt></dt> <dd><p>Contains the code for the MathJax object-oriented programming model.</p> </dd></dl> @@ -142,7 +149,13 @@ itself as <tt class="docutils literal"><span class="pre">MathJax.ElementJax.mml< <dl class="describe"> <dt> <tt class="descname">MathJax.version</tt></dt> -<dd><p>The version number of the MathJax library.</p> +<dd><p>The version number of the MathJax library as a whole.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">MathJax.fileversion</tt></dt> +<dd><p>The version number of the <tt class="docutils literal"><span class="pre">MathJax.js</span></tt> file specifically.</p> </dd></dl> <dl class="describe"> @@ -205,12 +218,12 @@ perform typesetting actions (and is <tt class="docutils literal"><span class="pr <li class="right" > <a href="index.html" title="The MathJax API" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >The MathJax API</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/asciimath.html b/docs/html/asciimath.html @@ -0,0 +1,213 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>MathJax AsciiMath Support &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> + <link rel="next" title="MathJax Output Formats" href="output.html" /> + <link rel="prev" title="MathJax MathML Support" href="mathml.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="output.html" title="MathJax Output Formats" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="mathml.html" title="MathJax MathML Support" + accesskey="P">previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="mathjax-asciimath-support"> +<span id="asciimath-support"></span><h1>MathJax AsciiMath Support<a class="headerlink" href="#mathjax-asciimath-support" title="Permalink to this headline">ΒΆ</a></h1> +<p>The support for <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> in MathJax consists of two parts: +the <cite>asciimath2jax</cite> preprocessor, and the <cite>AsciiMath</cite> input processor. +The first of these looks for mathematics within your web page +(indicated by delimiters like <tt class="docutils literal"><span class="pre">`...`</span></tt>) and marks the mathematics for +later processing by MathJax. The AsciiMath input processor is what +converts the AsciiMath notation into MathJax&#8217;s internal format, where +one of MathJax&#8217;s output processors then displays it in the web page.</p> +<p>The AsciiMath input jax actually includes a copy of Peter Jipsen&#8217;s +<tt class="docutils literal"><span class="pre">ASCIIMathML.js</span></tt> file (see the <a class="reference external" href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">AsciiMath home page</a> for +details), and is included by permission of the author. This means +that the results of MathJax&#8217;s AsciiMath processing should be the same +as using the actual <tt class="docutils literal"><span class="pre">ASCIIMathML.js</span></tt> 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.</p> +<p>The <cite>asciimath2jax</cite> preprocessor can be configured to look for whatever +markers you want to use for your math delimiters. See the +<a class="reference internal" href="options/asciimath2jax.html#configure-asciimath2jax"><em>asciimath2jax configuration options</em></a> section for +details on how to customize the action of <cite>asciimath2jax</cite>.</p> +<p>The AsciiMath input processor handles conversion of your mathematical +notation into MathJax&#8217;s internal format (which is essentially MathML). +The AsciiMath input processor has few configuration options (see the +<a class="reference internal" href="options/AsciiMath.html#configure-asciimath"><em>AsciiMath options</em></a> section for details).</p> +<p>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&#8217;s <a class="reference internal" href="tex.html#tex-support"><em>TeX +input jax</em></a> to handle LaTeX notation instead.</p> +<div class="section" id="asciimath-delimiters"> +<h2>AsciiMath delimiters<a class="headerlink" href="#asciimath-delimiters" title="Permalink to this headline">ΒΆ</a></h2> +<p>By default, the <cite>asciimath2jax</cite> preprocessor defines the back-tick +(<tt class="docutils literal"><span class="pre">`</span></tt>) as the delimiters for mathematics in AsciiMath format. It +does <strong>not</strong> define <tt class="docutils literal"><span class="pre">$...$</span></tt> 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, &#8221;... the cost is $2.50 for the +first one, and $2.00 for each additional one ...&#8221; would cause the +phrase &#8220;2.50 for the first one, and&#8221; 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:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">asciimath2jax</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">delimiters</span><span class="o">:</span> <span class="p">[[</span><span class="s1">&#39;$&#39;</span><span class="p">,</span><span class="s1">&#39;$&#39;</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;`&#39;</span><span class="p">,</span><span class="s1">&#39;`&#39;</span><span class="p">]]</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>Note that the dollar signs are frequently used as a delimiter for +mathematics in the <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> format, and you can not enable the +dollar-sign delimiter for both. It is probably best to leave dollar +signs for TeX notation.</p> +<p>See the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file, or the <a class="reference internal" href="options/asciimath2jax.html#configure-asciimath2jax"><em>asiimath2jax +configuration options</em></a> page, for additional +configuration parameters that you can specify for the <cite>asciimath2jax</cite> +preprocessor, which is the component of MathJax that identifies +AsciiMath notation within the page.</p> +</div> +<div class="section" id="asciimath-in-html-documents"> +<h2>AsciiMath in HTML documents<a class="headerlink" href="#asciimath-in-html-documents" title="Permalink to this headline">ΒΆ</a></h2> +<p>The AsciiMath syntax is descibed in the <a class="reference external" href="http://www1.chapman.edu/~jipsen/mathml/asciimathsyntax.html">ASCIIMathML syntax page</a>.</p> +<p>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 <tt class="docutils literal"><span class="pre">&lt;BR&gt;</span></tt>) 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&#8217;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 (<tt class="docutils literal"><span class="pre">&lt;</span></tt> and <tt class="docutils literal"><span class="pre">&gt;</span></tt>), and +ampersands (<tt class="docutils literal"><span class="pre">&amp;</span></tt>), which have special meaning to the browsers. For +example,</p> +<div class="highlight-html"><pre>... when `x&lt;y` we have ...</pre> +</div> +<p>will cause a problem, because the brower will think <tt class="docutils literal"><span class="pre">&lt;y</span></tt> is the +beginning of a tag named <tt class="docutils literal"><span class="pre">y</span></tt> (even though there is no such tag in +HTML). When this happens, the browser will think the tag continues up +to the next <tt class="docutils literal"><span class="pre">&gt;</span></tt> 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 &#8220;<tt class="docutils literal"><span class="pre">we</span> +<span class="pre">have</span> <span class="pre">...</span></tt>&#8221; will not be displayed because the browser thinks it is +part of the tag starting at <tt class="docutils literal"><span class="pre">&lt;y</span></tt>. This is one indication you can +use to spot this problem; it is a common error and should be avoided.</p> +<p>Usually, it is sufficient to simply put spaces around these symbols to +cause the browser to avoid them, so</p> +<div class="highlight-html"><pre>... when `x &lt; y` we have ...</pre> +</div> +<p>should work. Alternatively, you can use the HTML entities <tt class="docutils literal"><span class="pre">&amp;lt;</span></tt>, +<tt class="docutils literal"><span class="pre">&amp;gt;</span></tt> and <tt class="docutils literal"><span class="pre">&amp;amp;</span></tt> to encode these characters so that the browser +will not interpret them, but MathJax will. E.g.,</p> +<div class="highlight-html"><div class="highlight"><pre>... when `x <span class="ni">&amp;lt;</span> y` we have ... +</pre></div> +</div> +<p>Keep in mind that the browser interprets your text before MathJax +does.</p> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">MathJax AsciiMath Support</a><ul> +<li><a class="reference internal" href="#asciimath-delimiters">AsciiMath delimiters</a></li> +<li><a class="reference internal" href="#asciimath-in-html-documents">AsciiMath in HTML documents</a></li> +</ul> +</li> +</ul> + + <h4>Previous topic</h4> + <p class="topless"><a href="mathml.html" + title="previous chapter">MathJax MathML Support</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="output.html" + title="next chapter">MathJax Output Formats</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="output.html" title="MathJax Output Formats" + >next</a> |</li> + <li class="right" > + <a href="mathml.html" title="MathJax MathML Support" + >previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/callbacks.html b/docs/html/callbacks.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Using Callbacks &mdash; MathJax v1.1 documentation</title> + <title>Using Callbacks &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="up" title="Synchronizing your code with MathJax" href="synchronize.html" /> <link rel="next" title="Using Queues" href="queues.html" /> <link rel="prev" title="Synchronizing your code with MathJax" href="synchronize.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="synchronize.html" title="Synchronizing your code with MathJax" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" accesskey="U">Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> @@ -223,10 +223,10 @@ you simply passed the object&#8217;s method to <tt class="docutils literal"><spa might want to pass an argument to the function called by <tt class="docutils literal"><span class="pre">setTimeout()</span></tt>. (Altough the <tt class="docutils literal"><span class="pre">setTimeout()</span></tt> function can accept additional arguements that are supposed to be passed on to the code -when it is called, Internet Explorer does not implement that feature, -so you can&#8217;t rely on it.) You can use a <cite>Callback</cite> object to -do this, and the <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback()</span></tt> method will create one for -you. For example,</p> +when it is called, some versions of Internet Explorer do not implement +that feature, so you can&#8217;t rely on it.) You can use a <cite>Callback</cite> +object to do this, and the <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Callback()</span></tt> method will +create one for you. For example,</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="kd">function</span> <span class="nx">f</span><span class="p">(</span><span class="nx">x</span><span class="p">)</span> <span class="p">{</span><span class="nx">alert</span><span class="p">(</span><span class="s2">&quot;x = &quot;</span><span class="o">+</span><span class="nx">x</span><span class="p">)}</span> <span class="nx">setTimeout</span><span class="p">(</span><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Callback</span><span class="p">([</span><span class="nx">f</span><span class="p">,</span><span class="s2">&quot;Hello World!&quot;</span><span class="p">]),</span><span class="mi">500</span><span class="p">);</span> </pre></div> @@ -290,12 +290,12 @@ schedules it to be called in half a second.</p> <li class="right" > <a href="synchronize.html" title="Synchronizing your code with MathJax" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" >Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/community.html b/docs/html/community.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax Community &mdash; MathJax v1.1 documentation</title> + <title>The MathJax Community &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,8 +22,8 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> - <link rel="next" title="What’s New in MathJax v1.1" href="whats-new.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> + <link rel="next" title="What’s New in MathJax v2.0" href="whats-new-2.0.html" /> <link rel="prev" title="MathJax Output Formats" href="output.html" /> </head> <body> @@ -35,12 +35,12 @@ <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="whats-new.html" title="What’s New in MathJax v1.1" + <a href="whats-new-2.0.html" title="What’s New in MathJax v2.0" accesskey="N">next</a> |</li> <li class="right" > <a href="output.html" title="MathJax Output Formats" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -110,8 +110,8 @@ our <a class="reference external" href="http://www.mathjax.org/community/mathjax <p class="topless"><a href="output.html" title="previous chapter">MathJax Output Formats</a></p> <h4>Next topic</h4> - <p class="topless"><a href="whats-new.html" - title="next chapter">What&#8217;s New in MathJax v1.1</a></p> + <p class="topless"><a href="whats-new-2.0.html" + title="next chapter">What&#8217;s New in MathJax v2.0</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="search.html" method="get"> @@ -136,16 +136,16 @@ our <a class="reference external" href="http://www.mathjax.org/community/mathjax <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="whats-new.html" title="What’s New in MathJax v1.1" + <a href="whats-new-2.0.html" title="What’s New in MathJax v2.0" >next</a> |</li> <li class="right" > <a href="output.html" title="MathJax Output Formats" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/config-files.html b/docs/html/config-files.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Common Configurations &mdash; MathJax v1.1 documentation</title> + <title>Common Configurations &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Configuration Objects" href="options/index.html" /> <link rel="prev" title="Loading and Configuring MathJax" href="configuration.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="configuration.html" title="Loading and Configuring MathJax" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -60,32 +60,79 @@ it via</p> </pre></div> </div> <p>where <tt class="docutils literal"><span class="pre">path-to-MathJax</span></tt> is the URL to the MathJax directory on your -server or hard disk.</p> -<p>The remaining files 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 better to load one larger file than several smaller -ones. See <a class="reference internal" href="configuration.html#loading"><em>Loading and Configuring MathJax</em></a> for more -details about how to load configurations, and how to modify the parameters -for a configuration file.</p> +server or hard disk. If you are using MathJax from the CDN, you can +view the contents of <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/config/default.js">default.js</a> 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 <a class="reference internal" href="configuration.html#local-config-files"><em>Using a Local Configuration File with the CDN</em></a> for details.</p> +<p>The remaining files in the <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/config/">MathJax/config</a> 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 <a class="reference internal" href="configuration.html#loading"><em>Loading and Configuring MathJax</em></a> for more details about how to load configurations, and how +to modify the parameters for a configuration file.</p> <p>The following sections describe the contents of the combined configuration files. Each comes in two flavors: a standard version and a &#8220;full&#8221; version. The standard version simply defines the output processor(s) that are part of the configuration, but doesn&#8217;t load the code that implements the output -processor; the full version loads the complete output processors, so +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 &#8220;full&#8221; version, add <tt class="docutils literal"><span class="pre">-full</span></tt> to the end of the configuration file name.</p> +<div class="section" id="the-tex-mml-am-htmlormml-configuration-file"> +<h2>The <tt class="docutils literal"><span class="pre">TeX-MML-AM_HTMLorMML</span></tt> configuration file<a class="headerlink" href="#the-tex-mml-am-htmlormml-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> +<p>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:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">config</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;MMLorHTML.js&quot;</span><span class="p">],</span> + <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">,</span><span class="s2">&quot;input/MathML&quot;</span><span class="p">,</span><span class="s2">&quot;input/AsciiMath&quot;</span><span class="p">,</span><span class="s2">&quot;output/HTML-CSS&quot;</span><span class="p">,</span><span class="s2">&quot;output/NativeMML&quot;</span><span class="p">],</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;tex2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;mml2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;asciimath2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathMenu.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathZoom.js&quot;</span><span class="p">],</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;AMSmath.js&quot;</span><span class="p">,</span><span class="s2">&quot;AMSsymbols.js&quot;</span><span class="p">,</span><span class="s2">&quot;noErrors.js&quot;</span><span class="p">,</span><span class="s2">&quot;noUndefined.js&quot;</span><span class="p">]</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>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 <cite>toMathML</cite> extension, which is used by the Show Source option +in the MathJax contextual menu. The <cite>-full</cite> version also loads both the +HTML-CSS and NativeMML output jax main code, plus the HTML-CSS +<cite>mtable</cite> extension, which is normally loaded on demand.</p> +<p>See the <a class="reference internal" href="options/tex2jax.html#configure-tex2jax"><em>tex2jax configuration</em></a> section for +other configuration options for the <tt class="docutils literal"><span class="pre">tex2jax</span></tt> preprocessor, and the +<a class="reference internal" href="options/TeX.html#configure-tex"><em>TeX input jax configuration</em></a> section for options +that control the TeX input processor. +See the <a class="reference internal" href="options/mml2jax.html#configure-mml2jax"><em>mml2jax configuration</em></a> section for +other configuration options for the <tt class="docutils literal"><span class="pre">mml2jax</span></tt> preprocessor, and the +<a class="reference internal" href="options/MathML.html#configure-mathml"><em>MathML input jax configuration</em></a> section for +options that control the MathML input processor. +See the <a class="reference internal" href="options/asciimath2jax.html#configure-asciimath2jax"><em>asciimath2jax configuration</em></a> section for +other configuration options for the <tt class="docutils literal"><span class="pre">asciimath2jax</span></tt> preprocessor, and the +<a class="reference internal" href="options/AsciiMath.html#configure-asciimath"><em>AsciiMath input jax configuration</em></a> section for +options that control the AsciiMath input processor. +See <a class="reference internal" href="output.html#output-formats"><em>MathJax Output Formats</em></a> for more +information on the NativeMML and HTML-CSS output processors. See the +<a class="reference internal" href="options/MMLorHTML.html#configure-mmlorhtml"><em>MMLorHTML configuration</em></a> section for +details on the options that control the <tt class="docutils literal"><span class="pre">MMLorHTML</span></tt> configuration.</p> +</div> <div class="section" id="the-tex-ams-mml-htmlormml-configuration-file"> <h2>The <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML</span></tt> configuration file<a class="headerlink" href="#the-tex-ams-mml-htmlormml-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> -<p>This configuration file is the most general of the pre-defined -configurations. It loads all the important MathJax components, including +<p>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:</p> +MathML and HTML-with-CSS output processor definitions, and the +MathMenu and MathZoom extensions. It is equivalent to the following +configuration:</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">config</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;MMLorHTML.js&quot;</span><span class="p">],</span> <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">,</span><span class="s2">&quot;input/MathML&quot;</span><span class="p">,</span><span class="s2">&quot;output/HTML-CSS&quot;</span><span class="p">,</span><span class="s2">&quot;output/NativeMML&quot;</span><span class="p">],</span> @@ -96,12 +143,12 @@ MathZoom extensions. It is equivalent to the following configuration:</p> <span class="p">});</span> </pre></div> </div> -<p>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 <cite>toMathML</cite> -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 <cite>mtable</cite> extension, which -is normally loaded on demand.</p> +<p>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 +<cite>toMathML</cite> extension, which is used by the Show Source option in the +MathJax contextual menu. The <tt class="docutils literal"><span class="pre">-full</span></tt> version also loads both the +HTML-CSS and NativeMML output jax main code, plus the HTML-CSS +<cite>mtable</cite> extension, which is normally loaded on demand.</p> <p>See the <a class="reference internal" href="options/tex2jax.html#configure-tex2jax"><em>tex2jax configuration</em></a> section for other configuration options for the <tt class="docutils literal"><span class="pre">tex2jax</span></tt> preprocessor, and the <a class="reference internal" href="options/TeX.html#configure-tex"><em>TeX input jax configuration</em></a> section for options @@ -138,7 +185,7 @@ extensions. It is equivalent to the following configuration:</p> </div> <p>In addition, it loads the mml Element Jax and the TeX input jax main code (not just the definition file), as well as the <cite>toMathML</cite> extension, which -is used by the Show Source option in the MathJax contextual menu. The full +is used by the Show Source option in the MathJax contextual menu. The <tt class="docutils literal"><span class="pre">-full</span></tt> version also loads the HTML-CSS output jax main code, plus the HTML-CSS <cite>mtable</cite> extension, which is normally loaded on demand.</p> <p>See the <a class="reference internal" href="options/tex2jax.html#configure-tex2jax"><em>tex2jax configuration</em></a> section for @@ -152,7 +199,7 @@ information on the HTML-CSS output processor.</p> <h2>The <tt class="docutils literal"><span class="pre">MML_HTMLorMML</span></tt> configuration file<a class="headerlink" href="#the-mml-htmlormml-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> <p>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, and HTML-CSS output otherwise. The user can still use the +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.</p> <p>This file includes all the important MathJax components for MathML input and output, including the <cite>mml2jax</cite> preprocessor and MathML input jax, the @@ -168,7 +215,7 @@ and MathZoom extensions. It is equivalent to the following configuration:</p> <p>In addition, it loads the mml Element Jax and the MathML input jax main code (not just the definition file), as well as the <cite>toMathML</cite> 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 +The <tt class="docutils literal"><span class="pre">-full</span></tt> version also loads both the HTML-CSS and NativeMML output jax main code files, plus the HTML-CSS <cite>mtable</cite> extension, which is normally loaded on demand.</p> <p>See the <a class="reference internal" href="options/mml2jax.html#configure-mml2jax"><em>mml2jax configuration</em></a> section for @@ -180,12 +227,86 @@ information on the NativeMML and HTML-CSS output processors. See the <a class="reference internal" href="options/MMLorHTML.html#configure-mmlorhtml"><em>MMLorHTML configuration</em></a> section for details on the options that control the <tt class="docutils literal"><span class="pre">MMLorHTML</span></tt> configuration.</p> </div> +<div class="section" id="the-am-htmlormml-configuration-file"> +<h2>The <tt class="docutils literal"><span class="pre">AM_HTMLorMML</span></tt> configuration file<a class="headerlink" href="#the-am-htmlormml-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> +<p>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.</p> +<p>This file includes all the important MathJax components for AsciiMath +input and output, including the <cite>asciimath2jax</cite> 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:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">config</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;MMLorHTML.js&quot;</span><span class="p">],</span> + <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/AsciiMath&quot;</span><span class="p">,</span><span class="s2">&quot;output/HTML-CSS&quot;</span><span class="p">,</span><span class="s2">&quot;output/NativeMML&quot;</span><span class="p">],</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;asciimath2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathMenu.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathZoom.js&quot;</span><span class="p">]</span> +<span class="p">});</span> +</pre></div> +</div> +<p>In addition, it loads the mml Element Jax and the TeX input jax main code +(not just the definition file), as well as the <cite>toMathML</cite> extension, which +is used by the Show Source option in the MathJax contextual menu. The <tt class="docutils literal"><span class="pre">-full</span></tt> +version also loads the HTML-CSS output jax main code, plus the HTML-CSS +<cite>mtable</cite> extension, which is normally loaded on demand.</p> +<p>See the <a class="reference internal" href="options/asciimath2jax.html#configure-asciimath2jax"><em>asciimath2jax configuration</em></a> +section for other configuration options for the <tt class="docutils literal"><span class="pre">asciimath2jax</span></tt> +preprocessor, and the <a class="reference internal" href="options/AsciiMath.html#configure-asciimath"><em>AsciiMath input jax configuration</em></a> section for options that control the AsciiMath +input processor. See <a class="reference internal" href="output.html#output-formats"><em>MathJax Output Formats</em></a> +for more information on the HTML-CSS and NativeMML output processors. +See the <a class="reference internal" href="options/MMLorHTML.html#configure-mmlorhtml"><em>MMLorHTML configuration</em></a> section +for details on the options that control the <tt class="docutils literal"><span class="pre">MMLorHTML</span></tt> +configuration.</p> +</div> +<div class="section" id="the-tex-ams-mml-svg-configuration-file"> +<h2>The <tt class="docutils literal"><span class="pre">TeX-AMS-MML_SVG</span></tt> configuration file<a class="headerlink" href="#the-tex-ams-mml-svg-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> +<p>This configuration file is the same as <cite>TeX-AMS-MML_HTMLorMML</cite> 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:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">,</span><span class="s2">&quot;input/MathML&quot;</span><span class="p">,</span><span class="s2">&quot;output/SVG&quot;</span><span class="p">],</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;tex2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;mml2jax.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathMenu.js&quot;</span><span class="p">,</span><span class="s2">&quot;MathZoom.js&quot;</span><span class="p">],</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;AMSmath.js&quot;</span><span class="p">,</span><span class="s2">&quot;AMSsymbols.js&quot;</span><span class="p">,</span><span class="s2">&quot;noErrors.js&quot;</span><span class="p">,</span><span class="s2">&quot;noUndefined.js&quot;</span><span class="p">]</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>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 +<cite>toMathML</cite> extension, which is used by the Show Source option in the +MathJax contextual menu. The <tt class="docutils literal"><span class="pre">-full</span></tt> version also loads both the +SVG output jax main code, plus the SVG <cite>mtable</cite> extension, which +is normally loaded on demand.</p> +<p>See the <a class="reference internal" href="options/tex2jax.html#configure-tex2jax"><em>tex2jax configuration</em></a> section for +other configuration options for the <tt class="docutils literal"><span class="pre">tex2jax</span></tt> preprocessor, and the +<a class="reference internal" href="options/TeX.html#configure-tex"><em>TeX input jax configuration</em></a> section for options +that control the TeX input processor. +See the <a class="reference internal" href="options/mml2jax.html#configure-mml2jax"><em>mml2jax configuration</em></a> section for +other configuration options for the <tt class="docutils literal"><span class="pre">mml2jax</span></tt> preprocessor, and the +<a class="reference internal" href="options/MathML.html#configure-mathml"><em>MathML input jax configuration</em></a> section for +options that control the MathML input processor. +See <a class="reference internal" href="output.html#output-formats"><em>MathJax Output Formats</em></a> for more +information on the SVG output processor.</p> +</div> <div class="section" id="the-accessible-configuration-file"> <h2>The <tt class="docutils literal"><span class="pre">Accessible</span></tt> configuration file<a class="headerlink" href="#the-accessible-configuration-file" title="Permalink to this headline">ΒΆ</a></h2> <p>This configuration file is essentially the same as <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML</span></tt> except that it includes options that are designed for assistive technology, particularly for those with visual -challenges. It is equivalent to the following configuration:</p> +challenged. <em>This file is deprecated</em> 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.</p> +<p>The Accessible configuration is equivalent to the following:</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">config</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;MMLorHTML.js&quot;</span><span class="p">],</span> <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">,</span><span class="s2">&quot;input/MathML&quot;</span><span class="p">,</span><span class="s2">&quot;output/HTML-CSS&quot;</span><span class="p">,</span><span class="s2">&quot;output/NativeMML&quot;</span><span class="p">],</span> @@ -193,20 +314,24 @@ challenges. It is equivalent to the following configuration:</p> <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;AMSmath.js&quot;</span><span class="p">,</span><span class="s2">&quot;AMSsymbols.js&quot;</span><span class="p">,</span><span class="s2">&quot;noErrors.js&quot;</span><span class="p">,</span><span class="s2">&quot;noUndefined.js&quot;</span><span class="p">]</span> <span class="p">},</span> - <span class="nx">NativeMML</span><span class="o">:</span> <span class="p">{</span> <span class="nx">showMathMenuMSIE</span><span class="o">:</span> <span class="kc">false</span> <span class="p">},</span> - <span class="nx">menuSettings</span><span class="o">:</span> <span class="p">{</span> <span class="nx">zoom</span><span class="o">:</span> <span class="s2">&quot;Double-Click&quot;</span> <span class="p">},</span> + <span class="nx">menuSettings</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">zoom</span><span class="o">:</span> <span class="s2">&quot;Double-Click&quot;</span><span class="p">,</span> + <span class="nx">mpContext</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> + <span class="nx">mpMouse</span><span class="o">:</span> <span class="kc">true</span> + <span class="p">},</span> <span class="nx">errorSettings</span><span class="o">:</span> <span class="p">{</span> <span class="nx">message</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;[Math Error]&quot;</span><span class="p">]</span> <span class="p">}</span> <span class="p">});</span> </pre></div> </div> -<p>This turns off the MathJax contextual menu for Internet Explorer, since -it can interfere with some screen readers. It also sets the zoom trigger +<p>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.</p> <p>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 <cite>toMathML</cite> extension, which is used by the Show Source option in the MathJax -contextual menu. The full version also loads both the HTML-CSS and +contextual menu. The <tt class="docutils literal"><span class="pre">-full</span></tt> version also loads both the HTML-CSS and NativeMML output jax main code, plus the HTML-CSS <cite>mtable</cite> extension, which is normally loaded on demand.</p> </div> @@ -221,9 +346,12 @@ is normally loaded on demand.</p> <h3><a href="index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Common Configurations</a><ul> +<li><a class="reference internal" href="#the-tex-mml-am-htmlormml-configuration-file">The <tt class="docutils literal"><span class="pre">TeX-MML-AM_HTMLorMML</span></tt> configuration file</a></li> <li><a class="reference internal" href="#the-tex-ams-mml-htmlormml-configuration-file">The <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML</span></tt> configuration file</a></li> <li><a class="reference internal" href="#the-tex-ams-html-configuration-file">The <tt class="docutils literal"><span class="pre">TeX-AMS_HTML</span></tt> configuration file</a></li> <li><a class="reference internal" href="#the-mml-htmlormml-configuration-file">The <tt class="docutils literal"><span class="pre">MML_HTMLorMML</span></tt> configuration file</a></li> +<li><a class="reference internal" href="#the-am-htmlormml-configuration-file">The <tt class="docutils literal"><span class="pre">AM_HTMLorMML</span></tt> configuration file</a></li> +<li><a class="reference internal" href="#the-tex-ams-mml-svg-configuration-file">The <tt class="docutils literal"><span class="pre">TeX-AMS-MML_SVG</span></tt> configuration file</a></li> <li><a class="reference internal" href="#the-accessible-configuration-file">The <tt class="docutils literal"><span class="pre">Accessible</span></tt> configuration file</a></li> </ul> </li> @@ -264,11 +392,11 @@ is normally loaded on demand.</p> <li class="right" > <a href="configuration.html" title="Loading and Configuring MathJax" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/configuration.html b/docs/html/configuration.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Loading and Configuring MathJax &mdash; MathJax v1.1 documentation</title> + <title>Loading and Configuring MathJax &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Common Configurations" href="config-files.html" /> <link rel="prev" title="Installing and Testing MathJax" href="installation.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="installation.html" title="Installing and Testing MathJax" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -89,14 +89,14 @@ typical invocation of MathJax would be</p> <span class="nt">&lt;/script&gt;</span> </pre></div> </div> -<p>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, -or HTML-with-CSS otherwise. If you <strong>don&#8217;t</strong> 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 <a class="reference internal" href="#inline-config"><em>Using In-line Configuration -Options</em></a> for details.</p> +<p>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 <strong>don&#8217;t</strong> 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 <a class="reference internal" href="#inline-config"><em>Using +In-line Configuration Options</em></a> for details.</p> <p>It is best to load MathJax in the document&#8217;s <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt> block, but it is also possible to load MathJax into the <tt class="docutils literal"><span class="pre">&lt;body&gt;</span></tt> section, if needed. If you do this, load it as early as possible, as @@ -111,7 +111,7 @@ been prepared, for example, via a <a class="reference external" href="http://www advanced topic, however; see <a class="reference internal" href="dynamic.html#ajax-mathjax"><em>Loading MathJax Dynamically</em></a> for more details.</p> <div class="section" id="loading-mathjax-from-the-cdn"> <span id="loading-cdn"></span><h2>Loading MathJax from the CDN<a class="headerlink" href="#loading-mathjax-from-the-cdn" title="Permalink to this headline">ΒΆ</a></h2> -<p>MathJax is now available as a web service from <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt>, so you +<p>MathJax is available as a web service from <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt>, so you can obtain MathJax from there without needing to install it on your own server. The CDN is part of a distributed &#8220;cloud&#8221; network, so it is handled by servers around the world. That means that you should get access @@ -124,10 +124,11 @@ that your pages always use the same version of MathJax.</p> get. The CDN has the following directory structure:</p> <div class="highlight-sh"><div class="highlight"><pre>mathjax/ <span class="c"># project-name</span> 1.0-latest/ - 1.1-beta/ <span class="c"># temporary</span> 1.1-latest/ <span class="c"># the 1.1 release with any ciritical patches</span> + 2.0-beta/ <span class="c"># temporary</span> + 2.0-latest/ <span class="c"># the 2.0 release with any ciritical patches</span> ... - latest/ <span class="c"># the most current version (1.1-latest in this case)</span> + latest/ <span class="c"># the most current version (2.0-latest in this case)</span> </pre></div> </div> <p>Each directory corresponds to an official MathJax release; however, @@ -135,9 +136,9 @@ hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, <tt class="docutils literal"><span class="pre">1.1-latest</span></tt> 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 prepared for -distribution (they likely won&#8217;t be).</p> -<p>We may occasionally introduce directories for betas, as indicated above, +1.1b, etc., even if such releases are not actually packaged for +separate distribution (they likely won&#8217;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.</p> <p>To load from a particular release, use the directory for that release. @@ -145,13 +146,13 @@ For example,</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> <span class="na">src=</span><span class="s">&quot;http://cdn.mathjax.org/mathjax/1.1-latest/MathJax.js&quot;</span><span class="nt">&gt;&lt;/script&gt;</span> </pre></div> </div> -<p>will load the stable v1.1 version, even if we release v1.2 or other later +<p>will load the stable v1.1 version, even after we release v2.0 or other later versions, while</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> <span class="na">src=</span><span class="s">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js&quot;</span><span class="nt">&gt;&lt;/script&gt;</span> </pre></div> </div> <p>will always be the most current stable release, so it will go from v1.1 to -v1.2 automatically when that is released. Note that all the versions +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 <a class="reference internal" href="installation.html#installation"><em>Installing @@ -159,8 +160,8 @@ and Testing MathJax</em></a> for information on how to do that.)</p> <p>The use of <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt> is governed by its <a class="reference external" href="http://www.mathjax.org/download/mathjax-cdn-terms-of-service/">terms of service</a>, so be sure to read that before linking to the MathJax CDN server.</p> <p>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 <a class="reference internal" href="#config-files"><em>Using a configuration file</em></a> section below.</p> +rather than one of the pre-defined ones, see the information at the +end of the <a class="reference internal" href="#local-config-files"><em>Using a Local Configuration File</em></a> section below.</p> </div> <div class="section" id="configuring-mathjax"> <h2>Configuring MathJax<a class="headerlink" href="#configuring-mathjax" title="Permalink to this headline">ΒΆ</a></h2> @@ -170,7 +171,7 @@ 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.</p> <p>Note that you must use at least one of these two forms of configuration. -Unlike earlier versions of MathJax, version 1.1 does not load a default +Unlike MathJax v1.0, version 1.1 and higher does not load a default configuration file. If you have been using version 1.0&#8217;s <tt class="docutils literal"><span class="pre">config/MathJax.js</span></tt> for your configuration, you will need to load that configuration file explicitly via a <tt class="docutils literal"><span class="pre">config</span></tt> parameter, as described @@ -191,15 +192,16 @@ describing them, which you can edit to suit your needs.</p> <dl class="describe"> <dt> <tt class="descname">TeX-AMS-MML_HTMLorMML.js</tt></dt> -<dd><p>Allows math to be specified in TeX, LaTeX, or MathML notation, with the -<cite>AMSmath</cite> and <cite>AMSsymbols</cite> packages included, producing output using -MathML if the browser supports it, and HTML-with-CSS otherwise.</p> +<dd><p>Allows math to be specified in <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a>, <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a>, or +<a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation, with the <cite>AMSmath</cite> and <cite>AMSsymbols</cite> +packages included, producing output using MathML if the browser +supports it sufficiently, and HTML-with-CSS otherwise.</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">TeX-AMS_HTML.js</tt></dt> -<dd><p>Allows math to be specified in TeX or LaTeX notation, with the +<dd><p>Allows math to be specified in <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> or <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a> notation, with the <cite>AMSmath</cite> and <cite>AMSsymbols</cite> packages included, and produces output using the HTML-CSS output processor.</p> </dd></dl> @@ -207,18 +209,34 @@ using the HTML-CSS output processor.</p> <dl class="describe"> <dt> <tt class="descname">MML_HTMLorMML.js</tt></dt> -<dd><p>Allows math to be specified using MathML notation, and produces MathML -output if the browser supports it, or HTML-CSS output otherwise.</p> +<dd><p>Allows math to be specified using <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation, and produces MathML +output if the browser supports it sufficiently, or HTML-CSS output otherwise.</p> </dd></dl> <dl class="describe"> <dt> -<tt class="descname">Accessible.js</tt></dt> -<dd><p>Essentially the same as <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML</span></tt>, but with some -settings specified to make MathJax work better with assistive -technology (for the visually impaired). This includes setting the -zoom trigger to be a double-click, and removing the MathMenu in -Internet Explorer (which can interfere with some screen readers).</p> +<tt class="descname">AM_HTMLorMML.js</tt></dt> +<dd><p>Allows math to be specified using <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> notation, +producing output in MathML if the browser supports it +sufficiently, or as HTML-with-CSS otherwise.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">TeX-AMS-MML_SVG.js</tt></dt> +<dd><p>Allows math to be specified in <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a>, <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a>, or +<a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation, with the <cite>AMSmath</cite> and <cite>AMSsymbols</cite> +packages included, producing output using SVG.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">TeX-MML-AM_HTMLorMML.js</tt></dt> +<dd><p>Allows math to be specified in <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a>, <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a>, +<a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a>, or <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> notation, with the <cite>AMSmath</cite> +and <cite>AMSsymbols</cite> packages included, producing output using MathML +if the browser supports it sufficiently, and HTML-with-CSS +otherwise.</p> </dd></dl> <p>The first of these is a file that you can edit to suit your needs. It @@ -241,7 +259,7 @@ the main code, and a &#8220;full&#8221; version, that also includes the complete output processors. For example, with <tt class="docutils literal"><span class="pre">TeX-AMS_HTML.js</span></tt> and <tt class="docutils literal"><span class="pre">TeX-AMS_HTML-full.js</span></tt>, the latter includes the complete HTML-CSS output processor. The &#8220;full&#8221; configuration files are substantially larger (on -the order of 70KB), so you need to decide whether it is worth loading the +the order of 70KB more), so you need to decide whether it is worth loading the full configuration for your pages.</p> <p>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 @@ -278,8 +296,14 @@ can use</p> </pre></div> </div> <p>to first load the main configuration, then the local modifications.</p> -<p>You can also load MathJax from the MathJax CDN server but use a configuration from -your own local server:</p> +</div> +<div class="section" id="using-a-local-configuration-file-with-the-cdn"> +<span id="local-config-files"></span><h2>Using a local configuration file with the CDN<a class="headerlink" href="#using-a-local-configuration-file-with-the-cdn" title="Permalink to this headline">ΒΆ</a></h2> +<p>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 <tt class="docutils literal"><span class="pre">local.js</span></tt> on your own server, in a +directory called <tt class="docutils literal"><span class="pre">MathJax/config/local</span></tt>. Then you can load MathJax +from the CDN and still use your configuration file as follows:</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> <span class="na">src=</span><span class="s">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://myserver.com/MathJax/config/local/local.js&quot;</span><span class="nt">&gt;</span> <span class="nt">&lt;/script&gt;</span> @@ -290,7 +314,7 @@ the complete URL to the local configuration file. Note that you also have to edit the <a class="reference internal" href="api/ajax.html#loadComplete" title="loadComplete"><tt class="xref py py-meth docutils literal"><span class="pre">loadComplete()</span></tt></a> call that is at the bottom of the configuration file to change it from <tt class="docutils literal"><span class="pre">[MathJax]/config/local/local.js</span></tt> to the complete URL as you give it -in the <tt class="docutils literal"><span class="pre">config</span></tt> parameter:</p> +in the <tt class="docutils literal"><span class="pre">config</span></tt> parameter. In the example above, it would be</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Ajax</span><span class="p">.</span><span class="nx">loadComplete</span><span class="p">(</span><span class="s2">&quot;http://myserver.com/MathJax/config/local/local.js&quot;</span><span class="p">);</span> </pre></div> </div> @@ -302,22 +326,23 @@ location of your configuration file.</p> <div class="section" id="using-in-line-configuration-options"> <span id="inline-config"></span><h2>Using in-line configuration options<a class="headerlink" href="#using-in-line-configuration-options" title="Permalink to this headline">ΒΆ</a></h2> <p>The second way to configure MathJax is through <cite>in-line configuration</cite>, -that puts the configuration options within the web page itself. This -process has changed in version 1.1 to make it compatible with HTML5. +which puts the configuration options within the web page itself. This +process was changed in version 1.1 to make it compatible with HTML5. Earlier versions of MathJax had in-line configuration included within the content of the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag that loads <tt class="docutils literal"><span class="pre">MathJax.js</span></tt>, but HTML5 makes it illegal to have content for a script with a <tt class="docutils literal"><span class="pre">src</span></tt> attribute.</p> -<p>MathJax solves this problem by using separate <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tags to perform -configuration for MathJax. Because MathJax starts its configuration -process as soon as it is loaded, the configuration script must come -<strong>before</strong> the script tag that loads <tt class="docutils literal"><span class="pre">MathJax.js</span></tt> itself. You do this -by including a <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> with <tt class="docutils literal"><span class="pre">type=&quot;text/x-mathjax-config&quot;</span></tt>, whose -content will be run when MathJax performs its configuration. Generally, -this script will include a <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> 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 want, and MathJax will -process them in order as they appear in the document.</p> +<p>MathJax solves this problem by using separate <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tags to +perform the configuration for and loading of MathJax. Because MathJax +starts its configuration process as soon as it is loaded, the +configuration script must come <strong>before</strong> the script tag that loads +<tt class="docutils literal"><span class="pre">MathJax.js</span></tt> itself. You do this by including a <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> with +<tt class="docutils literal"><span class="pre">type=&quot;text/x-mathjax-config&quot;</span></tt> whose content will be run when +MathJax performs its configuration. Generally, this script will +include a <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> 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.</p> <p>For instance,</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> @@ -340,15 +365,16 @@ the <cite>TeX</cite> input processor and the <cite>HTML-CSS</cite> output proces HTML-CSS processor to use the TeX fonts rather than other locally installed fonts (e.g., <a class="reference internal" href="glossary.html#term-stix"><em class="xref std std-term">STIX</em></a> fonts). See the <a class="reference internal" href="options/index.html#configuration"><em>configuration options</em></a> section (or the comments in the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file) for more information about the configuration options that you can -include in the <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. Note that this +include in the <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. This configuration does <strong>not</strong> load any pre-defined configuration file.</p> <p>Note that you can combine in-line configuration with file-based configuration; simply include <tt class="docutils literal"><span class="pre">text/x-mathjax-config</span></tt> scripts as above, but also include <tt class="docutils literal"><span class="pre">config=filename</span></tt> when you load the <tt class="docutils literal"><span class="pre">MathJax.js</span></tt> file. For example, the <cite>tex2jax</cite> preprocessor does <strong>not</strong> enable the TeX single-dollar in-line math delimiters by default. You can load one of the -pre-defined configuration files that include the TeX preprocessor, and use -an in-line configuration block to enable the single-dollar signs:</p> +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:</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">tex2jax</span><span class="o">:</span> <span class="p">{</span> @@ -405,17 +431,21 @@ example, you could use</p> <span class="nt">&lt;/script&gt;</span> </pre></div> </div> -<p>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. If you have <tt class="docutils literal"><span class="pre">text/x-mathjax-config</span></tt> 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.</p> +<p>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 <tt class="docutils literal"><span class="pre">text/x-mathjax-config</span></tt> 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.</p> +<p>Note that <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Configured()</span></tt> 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.</p> </div> <div class="section" id="details-of-the-mathjax-configuration-process"> <h2>Details of the MathJax configuration process<a class="headerlink" href="#details-of-the-mathjax-configuration-process" title="Permalink to this headline">ΒΆ</a></h2> <p>Since there are a number of different ways to configure MathJax, it is -important to know how they interact. The configuration process is the +important to know how they interact. The configuration actions are the following:</p> <ol class="arabic simple"> <li>Process any configuration file explicitly specified as a script parameter.</li> @@ -444,6 +474,7 @@ when MathJax runs, and browser-dependent erratic behavior will result.</p> <li><a class="reference internal" href="#loading-mathjax-from-the-cdn">Loading MathJax from the CDN</a></li> <li><a class="reference internal" href="#configuring-mathjax">Configuring MathJax</a></li> <li><a class="reference internal" href="#using-a-configuration-file">Using a configuration file</a></li> +<li><a class="reference internal" href="#using-a-local-configuration-file-with-the-cdn">Using a local configuration file with the CDN</a></li> <li><a class="reference internal" href="#using-in-line-configuration-options">Using in-line configuration options</a></li> <li><a class="reference internal" href="#configuring-mathjax-after-it-is-loaded">Configuring MathJax after it is loaded</a></li> <li><a class="reference internal" href="#details-of-the-mathjax-configuration-process">Details of the MathJax configuration process</a></li> @@ -486,11 +517,11 @@ when MathJax runs, and browser-dependent erratic behavior will result.</p> <li class="right" > <a href="installation.html" title="Installing and Testing MathJax" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/dynamic.html b/docs/html/dynamic.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Loading MathJax Dynamically &mdash; MathJax v1.1 documentation</title> + <title>Loading MathJax Dynamically &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Modifying Math on the Page" href="typeset.html" /> <link rel="prev" title="Using Signals" href="signals.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="signals.html" title="Using Signals" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -53,59 +53,49 @@ <span id="ajax-mathjax"></span><h1>Loading MathJax Dynamically<a class="headerlink" href="#loading-mathjax-dynamically" title="Permalink to this headline">ΒΆ</a></h1> <p>MathJax is designed to be included via a <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag in the <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt> section of your HTML document, and it does rely on being -part of the original document in that it uses an <tt class="docutils literal"><span class="pre">onload</span></tt> 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 <em>after</em> the page&#8217;s <tt class="docutils literal"><span class="pre">onload</span></tt> -handler has fired, and so MathJax will not be able to tell if it is -safe for it to process the contents of the page. Indeed, it will wait -forever for its <tt class="docutils literal"><span class="pre">onload</span></tt> handler to fire, and so will never process -the page.</p> -<p>To solve this problem, you will need to call MathJax&#8217;s <tt class="docutils literal"><span class="pre">onload</span></tt> -handler yourself, to let it know that it is OK to typeset the -mathematics on the page. You accomplish this by calling the -<tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Startup.onload()</span></tt> method as part of your MathJax -startup script. To do this, you will need to give MathJax an in-line -configuration.</p> +part of the original document in that it uses an <tt class="docutils literal"><span class="pre">onload</span></tt> or +<tt class="docutils literal"><span class="pre">DOMContentLoaded</span></tt> 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 <em>after</em> the page&#8217;s +<tt class="docutils literal"><span class="pre">onload</span></tt> handler has fired, and prior to version 2.0, MathJax had to +be told not to wait for the page <tt class="docutils literal"><span class="pre">onload</span></tt> event by calling +<tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Startup.onload()</span></tt> 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.</p> <p>Here is an example of how to load and configure MathJax dynamically:</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> <span class="nx">script</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;text/javascript&quot;</span><span class="p">;</span> - <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js&quot;</span><span class="p">;</span> - - <span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="s1">&#39;MathJax.Hub.Config({&#39;</span> <span class="o">+</span> - <span class="s1">&#39;extensions: [&quot;tex2jax.js&quot;],&#39;</span> <span class="o">+</span> - <span class="s1">&#39;jax: [&quot;input/TeX&quot;,&quot;output/HTML-CSS&quot;]&#39;</span> <span class="o">+</span> - <span class="s1">&#39;});&#39;</span> <span class="o">+</span> - <span class="s1">&#39;MathJax.Hub.Startup.onload();&#39;</span><span class="p">;</span> - - <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> - <span class="k">else</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">text</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> - + <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;</span><span class="p">;</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;head&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> <span class="p">})();</span> </pre></div> </div> -<p>You can adjust the <tt class="docutils literal"><span class="pre">config</span></tt> variable to your needs, but be careful to get -the commas right. The <tt class="docutils literal"><span class="pre">window.opera</span></tt> test is because some versions of -Opera don&#8217;t handle setting <tt class="docutils literal"><span class="pre">script.text</span></tt> properly, while Internet -Explorer doesn&#8217;t handle setting the <tt class="docutils literal"><span class="pre">innerHTML</span></tt> of a script tag.</p> -<p>Here is a version that uses the <tt class="docutils literal"><span class="pre">config=filename</span></tt> method to -configure MathJax:</p> +<p>If you need to provide in-line configuration, you can do that using a +MathJax&#8217;s configuration script:</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> - <span class="kd">var</span> <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> + <span class="kd">var</span> <span class="nx">head</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;head&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="nx">script</span><span class="p">;</span> + <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> + <span class="nx">script</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;text/x-mathjax-config&quot;</span><span class="p">;</span> + <span class="nx">script</span><span class="p">[(</span><span class="nb">window</span><span class="p">.</span><span class="nx">opera</span> <span class="o">?</span> <span class="s2">&quot;innerHTML&quot;</span> <span class="o">:</span> <span class="s2">&quot;text&quot;</span><span class="p">)]</span> <span class="o">=</span> + <span class="s2">&quot;MathJax.Hub.Config({\n&quot;</span> <span class="o">+</span> + <span class="s2">&quot; tex2jax: { inlineMath: [[&#39;$&#39;,&#39;$&#39;], [&#39;\\\\(&#39;,&#39;\\\\)&#39;]] }\n&quot;</span> <span class="o">+</span> + <span class="s2">&quot;});&quot;</span> + <span class="nx">head</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> + <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> <span class="nx">script</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;text/javascript&quot;</span><span class="p">;</span> - <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full&quot;</span><span class="p">;</span> - - <span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="s1">&#39;MathJax.Hub.Startup.onload();&#39;</span><span class="p">;</span> - - <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> - <span class="k">else</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">text</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> - - <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;head&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> + <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;</span><span class="p">;</span> + <span class="nx">head</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> <span class="p">})();</span> </pre></div> </div> +<p>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 <tt class="docutils literal"><span class="pre">window.opera</span></tt> test is +because some versions of Opera don&#8217;t handle setting <tt class="docutils literal"><span class="pre">script.text</span></tt> +properly, while some versions of Internet Explorer don&#8217;t handle +setting <tt class="docutils literal"><span class="pre">script.innerHTML</span></tt>.</p> <p>Note that the <strong>only</strong> reliable way to configure MathJax is to use an in-line configuration block of the type discussed above. You should <strong>not</strong> call <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> directly in your code, as it will @@ -148,9 +138,8 @@ IE+MathPlayer.</p> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagNameNS</span> <span class="o">==</span> <span class="kc">null</span> <span class="o">?</span> <span class="kc">false</span> <span class="o">:</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagNameNS</span><span class="p">(</span><span class="s2">&quot;http://www.w3.org/1998/Math/MathML&quot;</span><span class="p">,</span><span class="s2">&quot;math&quot;</span><span class="p">).</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)))</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> + <span class="nx">script</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;text/javascript&quot;</span><span class="p">;</span> <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full&quot;</span><span class="p">;</span> - <span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="s1">&#39;MathJax.Hub.Startup.onload()&#39;</span><span class="p">;</span> - <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> <span class="k">else</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">text</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;head&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> @@ -185,9 +174,8 @@ converting the math images to their original TeX code.</p> <span class="c1">// Load MathJax and have it process the page</span> <span class="c1">//</span> <span class="kd">var</span> <span class="nx">script</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;script&quot;</span><span class="p">);</span> + <span class="nx">script</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s2">&quot;text/javascript&quot;</span><span class="p">;</span> <span class="nx">script</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s2">&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full&quot;</span><span class="p">;</span> - <span class="kd">var</span> <span class="nx">config</span> <span class="o">=</span> <span class="s1">&#39;MathJax.Hub.Startup.onload()&#39;</span><span class="p">;</span> - <span class="k">if</span> <span class="p">(</span><span class="nb">window</span><span class="p">.</span><span class="nx">opera</span><span class="p">)</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> <span class="k">else</span> <span class="p">{</span><span class="nx">script</span><span class="p">.</span><span class="nx">text</span> <span class="o">=</span> <span class="nx">config</span><span class="p">}</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s2">&quot;head&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">script</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> @@ -246,11 +234,11 @@ converting the math images to their original TeX code.</p> <li class="right" > <a href="signals.html" title="Using Signals" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/genindex.html b/docs/html/genindex.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Index &mdash; MathJax v1.1 documentation</title> + <title>Index &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> </head> <body> @@ -32,7 +32,7 @@ <li class="right" style="margin-right: 10px"> <a href="#" title="General Index" accesskey="I">index</a></li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -45,15 +45,17 @@ <h1 id="index">Index</h1> <div class="genindex-jumpbox"> - <a href="#A"><strong>A</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#F"><strong>F</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#H"><strong>H</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#N"><strong>N</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#Q"><strong>Q</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> | <a href="#U"><strong>U</strong></a> | <a href="#W"><strong>W</strong></a> + <a href="#A"><strong>A</strong></a> | <a href="#C"><strong>C</strong></a> | <a href="#D"><strong>D</strong></a> | <a href="#E"><strong>E</strong></a> | <a href="#F"><strong>F</strong></a> | <a href="#G"><strong>G</strong></a> | <a href="#H"><strong>H</strong></a> | <a href="#I"><strong>I</strong></a> | <a href="#J"><strong>J</strong></a> | <a href="#L"><strong>L</strong></a> | <a href="#M"><strong>M</strong></a> | <a href="#N"><strong>N</strong></a> | <a href="#P"><strong>P</strong></a> | <a href="#Q"><strong>Q</strong></a> | <a href="#R"><strong>R</strong></a> | <a href="#S"><strong>S</strong></a> | <a href="#T"><strong>T</strong></a> | <a href="#U"><strong>U</strong></a> | <a href="#W"><strong>W</strong></a> | <a href="#Z"><strong>Z</strong></a> </div> <h2 id="A">A</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> + <dt><a href="api/callback.html#Add">Add()</a></dt> <dt><a href="api/html.html#addElement">addElement()</a></dt> <dt><a href="api/html.html#addText">addText()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> + <dt><a href="glossary.html#term-asciimath">AsciiMath</a></dt> <dt><a href="api/object.html#Augment">Augment()</a></dt> </dl></td> </tr></table> @@ -84,9 +86,10 @@ <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> <dt><a href="api/html.html#Element">Element()</a></dt> - <dt><a href="api/signal.html#ExecuteHook">ExecuteHook()</a></dt> + <dt><a href="api/callback.html#Execute">Execute()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> + <dt><a href="api/signal.html#ExecuteHook">ExecuteHook()</a></dt> <dt><a href="api/callback.html#ExecuteHooks">ExecuteHooks()</a></dt> </dl></td> </tr></table> @@ -108,10 +111,12 @@ <td style="width: 33%" valign="top"><dl> <dt><a href="api/hub.html#getAllJax">getAllJax()</a></dt> <dt><a href="api/hub.html#getJaxByInputType">getJaxByInputType()</a></dt> + <dt><a href="api/hub.html#getJaxByType">getJaxByType()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> - <dt><a href="api/hub.html#getJaxByType">getJaxByType()</a></dt> <dt><a href="api/hub.html#getJaxFor">getJaxFor()</a></dt> + <dt><a href="api/outputjax.html#getJaxFromMath">getJaxFromMath()</a></dt> + <dt><a href="api/html.html#getScript">getScript()</a></dt> </dl></td> </tr></table> @@ -119,6 +124,7 @@ <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> <dt><a href="api/object.html#has">has()</a></dt> + <dt><a href="api/callback.html#Hooks">Hooks()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> <dt><a href="glossary.html#term-html-css">HTML-CSS</a></dt> @@ -163,6 +169,7 @@ <h2 id="M">M</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> + <dt><a href="glossary.html#term-markdown">Markdown</a></dt> <dt><a href="glossary.html#term-mathml">MathML</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> @@ -173,6 +180,9 @@ <h2 id="N">N</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> + <dt><a href="api/elementjax.html#needsUpdate">needsUpdate()</a></dt> +</dl></td> + <td style="width: 33%" valign="top"><dl> <dt><a href="api/signal.html#NoInterest">NoInterest()</a></dt> </dl></td> </tr></table> @@ -181,10 +191,13 @@ <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> <dt><a href="api/signal.html#Post">Post()</a></dt> + <dt><a href="api/outputjax.html#postTranslate">postTranslate()</a></dt> <dt><a href="api/ajax.html#Preloading">Preloading()</a></dt> <dt><a href="api/hub.html#PreProcess">PreProcess()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> + <dt><a href="api/outputjax.html#preProcess">preProcess()</a></dt> + <dt><a href="api/outputjax.html#preTranslate">preTranslate()</a></dt> <dt><a href="api/hub.html#Process">Process()</a></dt> <dt><a href="api/queue.html#Push">Push()</a></dt> </dl></td> @@ -203,9 +216,10 @@ <dt><a href="api/jax.html#Register">Register()</a></dt> <dt><a href="api/message.html#Remove">Remove()</a></dt> <dt><a href="api/hub.html#Reprocess">Reprocess()</a></dt> + <dt><a href="api/ajax.html#Require">Require()</a></dt> </dl></td> <td style="width: 33%" valign="top"><dl> - <dt><a href="api/ajax.html#Require">Require()</a></dt> + <dt><a href="api/hub.html#Rerender">Rerender()</a></dt> <dt><a href="api/callback.html#reset">reset()</a></dt> <dt><a href="api/queue.html#Resume">Resume()</a></dt> </dl></td> @@ -215,6 +229,7 @@ <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%" valign="top"><dl> <dt><a href="api/message.html#Set">Set()</a></dt> + <dt><a href="api/hub.html#setRenderer">setRenderer()</a></dt> <dt><a href="api/html.html#setScript">setScript()</a></dt> <dt><a href="api/callback.html#Signal">Signal()</a></dt> <dt><a href="api/elementjax.html#SourceElement">SourceElement()</a></dt> @@ -225,6 +240,7 @@ <dt><a href="api/ajax.html#Styles">Styles()</a></dt> <dt><a href="api/object.html#Subclass">Subclass()</a></dt> <dt><a href="api/queue.html#Suspend">Suspend()</a></dt> + <dt><a href="glossary.html#term-svg">SVG</a></dt> </dl></td> </tr></table> @@ -255,6 +271,13 @@ </dl></td> </tr></table> +<h2 id="Z">Z</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%" valign="top"><dl> + <dt><a href="api/outputjax.html#Zoom">Zoom()</a></dt> +</dl></td> +</tr></table> + </div> @@ -288,11 +311,11 @@ <li class="right" style="margin-right: 10px"> <a href="#" title="General Index" >index</a></li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/glossary.html b/docs/html/glossary.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Glossary &mdash; MathJax v1.1 documentation</title> + <title>Glossary &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="prev" title="CSS Style Objects" href="CSS-styles.html" /> </head> <body> @@ -36,7 +36,7 @@ <li class="right" > <a href="CSS-styles.html" title="CSS Style Objects" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -48,6 +48,16 @@ <div class="section" id="glossary"> <span id="id1"></span><h1>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">ΒΆ</a></h1> <dl class="glossary docutils"> +<dt id="term-asciimath">AsciiMath</dt> +<dd><p class="first">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.</p> +<div class="admonition-see-also last admonition seealso"> +<p class="first admonition-title">See also</p> +<p class="last"><a class="reference external" href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">AsciiMath home page</a></p> +</div> +</dd> <dt id="term-callback">Callback</dt> <dd>A JavaScript function that is used to perform actions that must wait for other actions to complete before they are @@ -79,6 +89,18 @@ its internal format manager. The code for the jax are in the <p class="last"><a class="reference external" href="http://en.wikipedia.org/wiki/LaTeX">LaTeX Wikipedia entry</a></p> </div> </dd> +<dt id="term-markdown">Markdown</dt> +<dd><p class="first">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).</p> +<div class="admonition-see-also last admonition seealso"> +<p class="first admonition-title">See also</p> +<p class="last"><a class="reference external" href="http://daringfireball.net/projects/markdown/">Markdown home page</a></p> +</div> +</dd> <dt id="term-mathml">MathML</dt> <dd><p class="first">An XML specification created to describe mathematical notations and capture both its structure and content. MathML @@ -97,6 +119,18 @@ package. A comprehensive set of scientific glyphs.</p> <p class="last"><a class="reference external" href="http://stixfonts.org/">STIX project</a></p> </div> </dd> +<dt id="term-svg">SVG</dt> +<dd><p class="first">Acronym for <cite>Scalable Vector Graphics</cite>. 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.</p> +<div class="admonition-see-also last admonition seealso"> +<p class="first admonition-title">See also</p> +<p class="last"><a class="reference external" href="http://en.wikipedia.org/wiki/Scalable_Vector_Graphics">SVG Wilipedia entry</a></p> +</div> +</dd> <dt id="term-tex">TeX</dt> <dd><p class="first">A document markup language with robust math markup commands developed by Donald Knuth in the late 1970&#8217;s, but still in @@ -146,11 +180,11 @@ formats for mathematical journals, articles, and books.</p> <li class="right" > <a href="CSS-styles.html" title="CSS Style Objects" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/index.html b/docs/html/index.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>MathJax Documentation &mdash; MathJax v1.1 documentation</title> + <title>MathJax Documentation &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="#" /> + <link rel="top" title="MathJax v2.0 documentation" href="#" /> <link rel="next" title="What is MathJax?" href="mathjax.html" /> </head> <body> @@ -36,7 +36,7 @@ <li class="right" > <a href="mathjax.html" title="What is MathJax?" accesskey="N">next</a> |</li> - <li><a href="#">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="#">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -47,8 +47,8 @@ <div class="section" id="mathjax-documentation"> <h1>MathJax Documentation<a class="headerlink" href="#mathjax-documentation" title="Permalink to this headline">ΒΆ</a></h1> -<p>MathJax is an open-source JavaScript display engine for LaTeX and -MathML that works in all modern browsers.</p> +<p>MathJax is an open-source JavaScript display engine for LaTeX, +MathML, and AsciiMath notaion that works in all modern browsers.</p> <div class="section" id="basic-usage"> <h2>Basic Usage<a class="headerlink" href="#basic-usage" title="Permalink to this headline">ΒΆ</a></h2> <div class="toctree-wrapper compound"> @@ -66,6 +66,7 @@ MathML that works in all modern browsers.</p> <ul> <li class="toctree-l1"><a class="reference internal" href="tex.html">MathJax TeX and LaTeX Support</a></li> <li class="toctree-l1"><a class="reference internal" href="mathml.html">MathJax MathML Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="asciimath.html">MathJax AsciiMath Support</a></li> <li class="toctree-l1"><a class="reference internal" href="output.html">MathJax Output Formats</a></li> </ul> </div> @@ -79,7 +80,8 @@ MathML that works in all modern browsers.</p> <span id="id1"></span><h2>Upgrading MathJax<a class="headerlink" href="#upgrading-mathjax" title="Permalink to this headline">ΒΆ</a></h2> <div class="toctree-wrapper compound"> <ul> -<li class="toctree-l1"><a class="reference internal" href="whats-new.html">What&#8217;s New in MathJax v1.1</a></li> +<li class="toctree-l1"><a class="reference internal" href="whats-new-2.0.html">What&#8217;s New in MathJax v2.0</a></li> +<li class="toctree-l1"><a class="reference internal" href="whats-new-1.1.html">What&#8217;s New in MathJax v1.1</a></li> <li class="toctree-l1"><a class="reference internal" href="upgrade.html">Migrating from MathJax v1.0 to v1.1</a></li> <li class="toctree-l1"><a class="reference internal" href="jsMath.html">Converting to MathJax from jsMath</a></li> </ul> @@ -121,7 +123,7 @@ MathML that works in all modern browsers.</p> </li> </ul> <hr class="docutils" /> -<p>This version of the documentation was built July 20, 2011.</p> +<p>This version of the documentation was built February 23, 2012.</p> </div> </div> @@ -179,11 +181,11 @@ MathML that works in all modern browsers.</p> <li class="right" > <a href="mathjax.html" title="What is MathJax?" >next</a> |</li> - <li><a href="#">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="#">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/installation.html b/docs/html/installation.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Installing and Testing MathJax &mdash; MathJax v1.1 documentation</title> + <title>Installing and Testing MathJax &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Loading and Configuring MathJax" href="configuration.html" /> <link rel="prev" title="Getting Started" href="start.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="start.html" title="Getting Started" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -55,20 +55,21 @@ distributed network service (see <a class="reference internal" href="start.html#mathjax-cdn"><em>Using the MathJax CDN</em></a>). 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 <a class="reference internal" href="configuration.html#loading"><em>Configuring MathJax</em></a>.</p> -<p>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 and its font package. There are three ways to do this: via -<tt class="docutils literal"><span class="pre">git</span></tt>, <tt class="docutils literal"><span class="pre">svn</span></tt>, 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.</p> +<p>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 <tt class="docutils literal"><span class="pre">git</span></tt>, <tt class="docutils literal"><span class="pre">svn</span></tt>, or via a pre-packaged archive. We +recommend <tt class="docutils literal"><span class="pre">git</span></tt> or <tt class="docutils literal"><span class="pre">svn</span></tt>, as it is easier to keep your +installation up to date with these tools.</p> <div class="section" id="obtaining-mathjax-via-git"> <span id="getting-mathjax-git"></span><h2>Obtaining MathJax via Git<a class="headerlink" href="#obtaining-mathjax-via-git" title="Permalink to this headline">ΒΆ</a></h2> <p>The easiest way to get MathJax and keep it up to date is to use the <a class="reference external" href="http://git-scm.com/">Git</a> version control system to access our <a class="reference external" href="http://github.com/mathjax/MathJax">GitHub repository</a>. Use the command</p> <div class="highlight-sh"><div class="highlight"><pre>git clone git://github.com/mathjax/MathJax.git MathJax </pre></div> </div> -<p>to obtain and set up a copy of MathJax. Note that there is no longer -a <tt class="docutils literal"><span class="pre">fonts.zip</span></tt> file, and that the <tt class="docutils literal"><span class="pre">fonts</span></tt> directory is now part of -the repository itself.</p> +<p>to obtain and set up a copy of MathJax. (Note that there is no longer +a <tt class="docutils literal"><span class="pre">fonts.zip</span></tt> file, as there was in v1.0, and that the <tt class="docutils literal"><span class="pre">fonts</span></tt> +directory is now part of the repository itself.)</p> <p>Whenever you want to update MathJax, you can now use</p> <div class="highlight-sh"><div class="highlight"><pre><span class="nb">cd </span>MathJax git remote show origin @@ -134,12 +135,12 @@ git pull origin v1.1-latest <p>If you are more comfortable with the <a class="reference external" href="http://subversion.apache.org/">subversion</a> source control system, you may want to use GitHub&#8217;s <tt class="docutils literal"><span class="pre">svn</span></tt> service to obtain MathJax. If you want to get the latest revision using <tt class="docutils literal"><span class="pre">svn</span></tt>, use the command</p> -<div class="highlight-sh"><div class="highlight"><pre>svn checkout http://svn.github.com/mathjax/MathJax.git MathJax +<div class="highlight-sh"><div class="highlight"><pre>svn checkout http://github.com/mathjax/MathJax/trunk MathJax </pre></div> </div> -<p>to obtain and set up a copy of MathJax. Note that there is no longer -a <tt class="docutils literal"><span class="pre">fonts.zip</span></tt> file, and that the <tt class="docutils literal"><span class="pre">fonts</span></tt> directory is now part of -the repository itself.</p> +<p>to obtain and set up a copy of MathJax. (Note that there is no longer +a <tt class="docutils literal"><span class="pre">fonts.zip</span></tt> file as of v1.1, and that the <tt class="docutils literal"><span class="pre">fonts</span></tt> directory is +now part of the repository itself.)</p> <p>Whenever you want to update MathJax, you can now use</p> <div class="highlight-sh"><div class="highlight"><pre><span class="nb">cd </span>MathJax svn status -u @@ -158,26 +159,25 @@ latest bug fixes and new features as they become available.</p> 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 &#8220;release&#8221; -version. If you prefer to use one of the tagged releases instead, then -either use <tt class="docutils literal"><span class="pre">git</span></tt> as described above, or one of the archive files as -described below. You can use</p> -<div class="highlight-sh"><div class="highlight"><pre>svn checkout http://svn.github.com/mathjax/MathJax.git@nnn mathjax +version. If you prefer to use one of the tagged releases instead, +then use</p> +<div class="highlight-sh"><div class="highlight"><pre>svn checkout http://github.com/mathjax/MathJax/branch/<span class="o">[</span>name<span class="o">]</span> MathJax </pre></div> </div> -<p>to check out revision number <cite>nnn</cite>, but it is not easy to tell what -svn revision number is associated with a particular release. GitHub&#8217;s -<tt class="docutils literal"><span class="pre">svn</span></tt> service doesn&#8217;t appear to allow you to specify a particular -tagged version.</p> +<p>where <tt class="docutils literal"><span class="pre">[name]</span></tt> is replaced by the name of the branch you want to +check out; e.g., <tt class="docutils literal"><span class="pre">2.0-latest</span></tt>. The branch names can be found on the +<a class="reference external" href="http://github.com/mathjax/MathJax/">GitHub MathJax page</a> under the +<a class="reference external" href="https://github.com/mathjax/MathJax/branches">branches</a> tab.</p> </div> <div class="section" id="obtaining-mathjax-via-an-archive"> <span id="getting-mathjax-zip"></span><h2>Obtaining MathJax via an archive<a class="headerlink" href="#obtaining-mathjax-via-an-archive" title="Permalink to this headline">ΒΆ</a></h2> <p>Release versions of MathJax are available in archive files from the <a class="reference external" href="http://www.mathjax.org/download/">MathJax download page</a> or the -<a class="reference external" href="http://github.com/mathjax/mathjax/">GitHub downloads</a> (click the -big download button on the right), where you can download the archive +<a class="reference external" href="http://github.com/mathjax/mathjax/">MathJax GitHub page</a> (via the +&#8220;zip&#8221; button, or the &#8220;downloads&#8221; tab), where you can download the archive that you need.</p> -<p>You should download the v1.1 archive (which will get you a file with a -name like <tt class="docutils literal"><span class="pre">mathjax-MathJax-v1.1-X-XXXXXXXX.zip</span></tt>, where the X&#8217;s are +<p>You should download the v2.0 archive (which will get you a file with a +name like <tt class="docutils literal"><span class="pre">mathjax-MathJax-v2.0-X-XXXXXXXX.zip</span></tt>, where the X&#8217;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 @@ -185,20 +185,18 @@ it locally rather then through a web server). One natural location is to put it at the top level of your web server&#8217;s hierarchy. That would let you refer to the main MathJax file as <tt class="docutils literal"><span class="pre">/MathJax/MathJax.js</span></tt> from within any page on your server.</p> -<p>From the <a class="reference external" href="http://github.com/mathjax/mathjax/">MathJax GitHub download link</a> (the download button at the -right), you can also select the <tt class="docutils literal"><span class="pre">Download</span> <span class="pre">.tar.gz</span></tt> or <tt class="docutils literal"><span class="pre">Download</span> -<span class="pre">.zip</span></tt> buttons to get a copy of the current development version of -MathJax that contains all the latest changes and bug-fixes. You can -also get older tagged versions (if there are any).</p> +<p>From the <a class="reference external" href="http://github.com/mathjax/mathjax/downloads">MathJax GitHub download link</a>, you can also select +the <tt class="docutils literal"><span class="pre">Download</span> <span class="pre">.tar.gz</span></tt> or <tt class="docutils literal"><span class="pre">Download</span> <span class="pre">.zip</span></tt> buttons to get a copy of +the current development version of MathJax that contains all the +latest changes and bug-fixes.</p> <p>If a packaged release receives any important updates, then those updates will be part of the <cite>branch</cite> for that version. The link to the <tt class="docutils literal"><span class="pre">.zip</span></tt> file in the download list will be the original release version, not the patched version. To obtain the patched version, use the <cite>Branches</cite> drop down menu (at the far left of the menus within the page) to select the release branch that you want (for example -<tt class="docutils literal"><span class="pre">v1.1-latest</span></tt>), and then use the download button and the <tt class="docutils literal"><span class="pre">Download</span> -<span class="pre">.tar.gz</span></tt> or <tt class="docutils literal"><span class="pre">Download</span> <span class="pre">.zip</span></tt> button to get the latest patched -version of that release.</p> +<tt class="docutils literal"><span class="pre">v2.0-latest</span></tt>), and then use the &#8220;zip&#8221; button just above it to get +the latest patched version of that release.</p> </div> <div class="section" id="testing-your-installation"> <h2>Testing your installation<a class="headerlink" href="#testing-your-installation" title="Permalink to this headline">ΒΆ</a></h2> @@ -207,7 +205,8 @@ installation is working properly:</p> <div class="highlight-python"><pre>test/ index.html # Tests default configuration index-images.html # Tests image-font fallback display - sample.html # Sample page with lots of pretty equations</pre> + sample.html # Sample page with lots of pretty equations + examples.html # Page with links to all sample pages</pre> </div> <p>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 @@ -248,7 +247,7 @@ MathJax is installed, and if that server is running the <a class="reference exte server</a>. In the remote server&#8217;s <tt class="docutils literal"><span class="pre">MathJax/fonts/</span></tt> folder, create a file called <tt class="docutils literal"><span class="pre">.htaccess</span></tt> that contains the following lines:</p> -<div class="highlight-python"><pre>&lt;FilesMatch "\.(ttf|otf|eot)$"&gt; +<div class="highlight-python"><pre>&lt;FilesMatch "\.(ttf|otf|eot|woff)$"&gt; &lt;IfModule mod_headers.c&gt; Header set Access-Control-Allow-Origin "*" &lt;/IfModule&gt; @@ -301,7 +300,7 @@ directory and restart your browser (see the <a class="reference external" href=" <p>IE9&#8217;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 -<tt class="docutils literal"><span class="pre">file://</span></tt> URL) that accesses MathJax from a remote site, like the MathJax +<tt class="docutils literal"><span class="pre">file://</span></tt> URL) that accesses MathJax from a remote site such as the MathJax CDN service. In this case, IE9 does <strong>not</strong> honor the <tt class="docutils literal"><span class="pre">Access-Control-Allow-Origin</span></tt> setting of the remote server (as it would if the web page came from an <tt class="docutils literal"><span class="pre">http://</span></tt> URL), and so it <strong>never</strong> allows the @@ -368,11 +367,11 @@ fonts help page</a> for details).</p> <li class="right" > <a href="start.html" title="Getting Started" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/jsMath.html b/docs/html/jsMath.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Converting to MathJax from jsMath &mdash; MathJax v1.1 documentation</title> + <title>Converting to MathJax from jsMath &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="The MathJax Processing Model" href="model.html" /> <link rel="prev" title="Migrating from MathJax v1.0 to v1.1" href="upgrade.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -130,11 +130,11 @@ page</em></a> for more details.</p> <li class="right" > <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/mathjax.html b/docs/html/mathjax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>What is MathJax? &mdash; MathJax v1.1 documentation</title> + <title>What is MathJax? &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Getting Started" href="start.html" /> <link rel="prev" title="MathJax Documentation" href="index.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="index.html" title="MathJax Documentation" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -51,16 +51,17 @@ <div class="section" id="what-is-mathjax"> <h1>What is MathJax?<a class="headerlink" href="#what-is-mathjax" title="Permalink to this headline">ΒΆ</a></h1> -<p>MathJax is an open-source JavaScript display engine for LaTeX and -MathML 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. It requires no setup on the part of -the user (no plugins to downlaod 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.</p> +<p>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.</p> <p>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 @@ -69,11 +70,12 @@ 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, or <a class="reference external" href="http://www.w3.org/TR/MathML3">MathML</a>, a World Wide -Web Consortium standard for representing mathematics in XML format. -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.</p> +notation, <a class="reference external" href="http://www.w3.org/TR/MathML3">MathML</a>, a World Wide Web +Consortium standard for representing mathematics in XML format, or +<a class="reference external" href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">AsciiMath</a> +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.</p> <p>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 @@ -123,11 +125,11 @@ mathematics on your web pages interactive and dynamic.</p> <li class="right" > <a href="index.html" title="MathJax Documentation" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/mathml.html b/docs/html/mathml.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>MathJax MathML Support &mdash; MathJax v1.1 documentation</title> + <title>MathJax MathML Support &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,8 +22,8 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> - <link rel="next" title="MathJax Output Formats" href="output.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> + <link rel="next" title="MathJax AsciiMath Support" href="asciimath.html" /> <link rel="prev" title="MathJax TeX and LaTeX Support" href="tex.html" /> </head> <body> @@ -35,12 +35,12 @@ <a href="genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="output.html" title="MathJax Output Formats" + <a href="asciimath.html" title="MathJax AsciiMath Support" accesskey="N">next</a> |</li> <li class="right" > <a href="tex.html" title="MathJax TeX and LaTeX Support" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -66,10 +66,10 @@ displayed as MathML. Or you could use the <cite>mml2jax</cite> preprocessor and MathML input processor with the HTML-CSS output processor to make MathML available in browsers that don&#8217;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, while -HTML-CSS is used for those that don&#8217;t. See the <a class="reference internal" href="config-files.html#common-configurations"><em>common -configurations</em></a> section for details and -examples.</p> +you so that MathML is used in those browsers that support it well +enough, while HTML-CSS is used for those that don&#8217;t. See the +<a class="reference internal" href="config-files.html#common-configurations"><em>common configurations</em></a> section for +details and examples.</p> <p>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 @@ -85,7 +85,7 @@ even with a pure MathML workflow.</p> <div class="section" id="mathml-in-html-pages"> <h2>MathML in HTML pages<a class="headerlink" href="#mathml-in-html-pages" title="Permalink to this headline">ΒΆ</a></h2> <p>For MathML that is handled via the preprocessor, you should not use -the named MathML entities, but rather use the numeric entities like +named MathML entities, but rather use numeric entities like <tt class="docutils literal"><span class="pre">&amp;#x221A;</span></tt> 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 @@ -103,12 +103,16 @@ tags. That is, use</p> </pre></div> </div> <p>rather than <tt class="docutils literal"><span class="pre">&lt;mspace</span> <span class="pre">width=&quot;thinmathspace</span> <span class="pre">/&gt;</span></tt>. This is because HTML -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 -<tt class="docutils literal"><span class="pre">&lt;mspace</span> <span class="pre">width=&quot;1em&quot;</span> <span class="pre">/&gt;</span></tt>, since there is no closing tag, the rest of -the mathematics will become the content of the <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> tag; but -since <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> should have no content, the rest of the mathematics -will not be displayed. This is a common error that should be avoided.</p> +(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 <tt class="docutils literal"><span class="pre">&lt;mspace</span> <span class="pre">width=&quot;1em&quot;</span> <span class="pre">/&gt;</span></tt>, since there is no closing +tag, the rest of the mathematics will become the content of the +<tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> tag; but since <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> 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.</p> </div> <div class="section" id="supported-mathml-commands"> <h2>Supported MathML commands<a class="headerlink" href="#supported-mathml-commands" title="Permalink to this headline">ΒΆ</a></h2> @@ -121,10 +125,10 @@ coming.</p> <ul class="simple"> <li>No support for the elementary math tags: <tt class="docutils literal"><span class="pre">mstack</span></tt>, <tt class="docutils literal"><span class="pre">mlongdiv</span></tt>, <tt class="docutils literal"><span class="pre">msgroup</span></tt>, <tt class="docutils literal"><span class="pre">msrow</span></tt>, <tt class="docutils literal"><span class="pre">mscarries</span></tt>, and <tt class="docutils literal"><span class="pre">mscarry</span></tt>.</li> -<li>Limited support for line breaking (they are only allowed in direct -children of <tt class="docutils literal"><span class="pre">mrow</span></tt> or implied <tt class="docutils literal"><span class="pre">mrow</span></tt> elements).</li> -<li>No support for alignment groups in table.</li> +<li>No support for alignment groups in tables.</li> <li>No support for right-to-left rendering.</li> +<li>Not all attributes are supported for tables. E.g., <tt class="docutils literal"><span class="pre">columnspan</span></tt> +and <tt class="docutils literal"><span class="pre">rowspan</span></tt> are not implemented yet.</li> </ul> <p>See the <a class="reference external" href="http://www.w3.org/Math/testsuite/results/tests.html">results of the MathML3.0 test suite</a> for details.</p> </div> @@ -149,8 +153,8 @@ children of <tt class="docutils literal"><span class="pre">mrow</span></tt> or i <p class="topless"><a href="tex.html" title="previous chapter">MathJax TeX and LaTeX Support</a></p> <h4>Next topic</h4> - <p class="topless"><a href="output.html" - title="next chapter">MathJax Output Formats</a></p> + <p class="topless"><a href="asciimath.html" + title="next chapter">MathJax AsciiMath Support</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="search.html" method="get"> @@ -175,16 +179,16 @@ children of <tt class="docutils literal"><span class="pre">mrow</span></tt> or i <a href="genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="output.html" title="MathJax Output Formats" + <a href="asciimath.html" title="MathJax AsciiMath Support" >next</a> |</li> <li class="right" > <a href="tex.html" title="MathJax TeX and LaTeX Support" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/model.html b/docs/html/model.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax Processing Model &mdash; MathJax v1.1 documentation</title> + <title>The MathJax Processing Model &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="The MathJax Startup Sequence" href="startup.html" /> <link rel="prev" title="Converting to MathJax from jsMath" href="jsMath.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="jsMath.html" title="Converting to MathJax from jsMath" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -54,7 +54,7 @@ <p>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., -<a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> or <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a>), and MathJax provides high-quality +<a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a>, <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a>, or <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a>), 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 @@ -81,17 +81,19 @@ 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 <a class="reference internal" href="tex.html#tex-support"><em>TeX notation</em></a>, <a class="reference internal" href="mathml.html#mathml-support"><em>MathML -notation</em></a>, and the <a class="reference internal" href="jsMath.html#jsmath-support"><em>jsMath notation</em></a> that uses <cite>span</cite> and <cite>div</cite> tags.</p> +notation</em></a>, <a class="reference internal" href="asciimath.html#asciimath-support"><em>AsciiMath notation</em></a> and the <a class="reference internal" href="jsMath.html#jsmath-support"><em>jsMath notation</em></a> that uses <cite>span</cite> and <cite>div</cite> tags.</p> <p>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 <cite>tex4ht</cite>), it would be best to use MathJax&#8217;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, -and it also avoids the conflict between the use of the less-than sign, +mathematics, since the extra preprocessing step would not be needed. +It also avoids the conflict between the use of the less-than sign, <tt class="docutils literal"><span class="pre">&lt;</span></tt>, in mathematics and as an HTML special character (that starts -an HTML tag).</p> +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).</p> <div class="section" id="how-mathematics-is-stored-in-the-page"> <span id="mathjax-script-tags"></span><h2>How mathematics is stored in the page<a class="headerlink" href="#how-mathematics-is-stored-in-the-page" title="Permalink to this headline">ΒΆ</a></h2> <p>In order to identify mathematics in the page, MathJax uses special @@ -107,8 +109,9 @@ kind of script that the tag contains. The usual (and default) value is <tt class="docutils literal"><span class="pre">type=&quot;text/javascript&quot;</span></tt>, and when a script has this type, the browser executes the script as a javascript program. MathJax, however, uses the type <cite>math/tex</cite> to identify mathematics in the TeX -and LaTeX notation, and <cite>math/mml</cite> for mathematics in MathML -notation. When the <cite>tex2jax</cite> or <cite>mml2jax</cite> preprocessors run, they +and LaTeX notation, <cite>math/mml</cite> for mathematics in MathML notation, and +<cite>math/asciimath</cite> for mathematics in AsciiMath notation. When the +<cite>tex2jax</cite>, <cite>mml2jax</cite>, or <cite>asciimath2jax</cite> preprocessors run, they create <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tags with these types so that MathJax can process them when it runs its main typesetting pass.</p> <p>For example,</p> @@ -214,16 +217,24 @@ 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&#8217;t -understand MathML. Output jax could be produced that render the -mathematics using SVG, 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.</p> +understand MathML. MathJax also has an <a class="reference internal" href="glossary.html#term-svg"><em class="xref std std-term">SVG</em></a> 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.</p> <p>Each input and output jax has a small configuration file that is loaded when that input jax is included in the <cite>jax</cite> 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.</p> +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&#8217;t actually incldue mathematics; the combined configurations that +end in <tt class="docutils literal"><span class="pre">-full</span></tt> 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.</p> <p>The <strong>MathJax Hub</strong> 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 @@ -291,11 +302,11 @@ dynamic as the rest of the page.</p> <li class="right" > <a href="jsMath.html" title="Converting to MathJax from jsMath" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/AsciiMath.html b/docs/html/options/AsciiMath.html @@ -0,0 +1,146 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>The AsciiMath input processor &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> + <link rel="up" title="Configuration Objects" href="index.html" /> + <link rel="next" title="The HTML-CSS output processor" href="HTML-CSS.html" /> + <link rel="prev" title="The MathML input processor" href="MathML.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="HTML-CSS.html" title="The HTML-CSS output processor" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="MathML.html" title="The MathML input processor" + accesskey="P">previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="the-asciimath-input-processor"> +<span id="configure-asciimath"></span><h1>The AsciiMath input processor<a class="headerlink" href="#the-asciimath-input-processor" title="Permalink to this headline">ΒΆ</a></h1> +<p>The options below control the operation of the AsciiMath input +processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;input/AsciiMath&quot;</span></tt> in the +<cite>jax</cite> 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 +<tt class="docutils literal"><span class="pre">AsciiMath</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For +example</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">AsciiMath</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">displaystyle</span><span class="o">:</span> <span class="kc">false</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>would set the <tt class="docutils literal"><span class="pre">displaystyle</span></tt> configuration option so that the limits +for operators like summation symbols will appear next to them rather +than above and below.</p> +<dl class="describe"> +<dt> +<tt class="descname">displaystyle: true</tt></dt> +<dd><p>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&#8217;t interfere +with the line spacing so much.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">decimal: &quot;.&quot;</tt></dt> +<dd><p>This is the character to be used for decimal points in numbers. +if you change this to <tt class="docutils literal"><span class="pre">&quot;,&quot;</span></tt>, then you need to be careful about +entering points or intervals. E.g., use <tt class="docutils literal"><span class="pre">(1,</span> <span class="pre">2)</span></tt> rather than +<tt class="docutils literal"><span class="pre">(1,2)</span></tt> in that case.</p> +</dd></dl> + +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h4>Previous topic</h4> + <p class="topless"><a href="MathML.html" + title="previous chapter">The MathML input processor</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="HTML-CSS.html" + title="next chapter">The HTML-CSS output processor</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="../search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="HTML-CSS.html" title="The HTML-CSS output processor" + >next</a> |</li> + <li class="right" > + <a href="MathML.html" title="The MathML input processor" + >previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" >Configuration Objects</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/options/FontWarnings.html b/docs/html/options/FontWarnings.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The FontWarnings extension &mdash; MathJax v1.1 documentation</title> + <title>The FontWarnings extension &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,10 +22,10 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="Using MathJax in popular web platforms" href="../platforms/index.html" /> - <link rel="prev" title="The MathZoom extension" href="MathZoom.html" /> + <link rel="prev" title="The MathEvents extension" href="MathEvents.html" /> </head> <body> @@ -39,9 +39,9 @@ <a href="../platforms/index.html" title="Using MathJax in popular web platforms" accesskey="N">next</a> |</li> <li class="right" > - <a href="MathZoom.html" title="The MathZoom extension" + <a href="MathEvents.html" title="The MathEvents extension" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -189,14 +189,17 @@ override the ones that are there with your own text.</p> <dt> <tt class="descname">removeAfter: 12*1000</tt></dt> <dd><p>This is the amount of time to show the FontWarning message, in -milliseconds. The default is 12 seconds.</p> +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).</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">fadeoutSteps: 10</tt></dt> <dd><p>This is the number of steps to take while fading out the -FontWarning message. More steps make for a smoother fade-out.</p> +FontWarning message. More steps make for a smoother fade-out. +Set to zero to cause the message to be removed without fading.</p> </dd></dl> <dl class="describe"> @@ -215,8 +218,8 @@ The default is 1.5 seconds.</p> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> - <p class="topless"><a href="MathZoom.html" - title="previous chapter">The MathZoom extension</a></p> + <p class="topless"><a href="MathEvents.html" + title="previous chapter">The MathEvents extension</a></p> <h4>Next topic</h4> <p class="topless"><a href="../platforms/index.html" title="next chapter">Using MathJax in popular web platforms</a></p> @@ -247,14 +250,14 @@ The default is 1.5 seconds.</p> <a href="../platforms/index.html" title="Using MathJax in popular web platforms" >next</a> |</li> <li class="right" > - <a href="MathZoom.html" title="The MathZoom extension" + <a href="MathEvents.html" title="The MathEvents extension" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/HTML-CSS.html b/docs/html/options/HTML-CSS.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The HTML-CSS output processor &mdash; MathJax v1.1 documentation</title> + <title>The HTML-CSS output processor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,10 +22,10 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The NativeMML output processor" href="NativeMML.html" /> - <link rel="prev" title="The MathML input processor" href="MathML.html" /> + <link rel="prev" title="The AsciiMath input processor" href="AsciiMath.html" /> </head> <body> @@ -39,9 +39,9 @@ <a href="NativeMML.html" title="The NativeMML output processor" accesskey="N">next</a> |</li> <li class="right" > - <a href="MathML.html" title="The MathML input processor" + <a href="AsciiMath.html" title="The AsciiMath input processor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -55,10 +55,12 @@ <span id="configure-html-css"></span><h1>The HTML-CSS output processor<a class="headerlink" href="#the-html-css-output-processor" title="Permalink to this headline">ΒΆ</a></h1> <p>The options below control the operation of the HTML-CSS output processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;output/HTML-CSS&quot;</span></tt> in the -<cite>jax</cite> array of your configuration. They are listed with their default -values. To set any of these options, include a <tt class="docutils literal"><span class="pre">&quot;HTML-CSS&quot;</span></tt> section -in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. Note that, because of the -dash, you need to enclose the name in quotes. For example</p> +<cite>jax</cite> 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 +<tt class="docutils literal"><span class="pre">&quot;HTML-CSS&quot;</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. +Note that, because of the dash, you need to enclose the name in +quotes. For example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="s2">&quot;HTML-CSS&quot;</span><span class="o">:</span> <span class="p">{</span> <span class="nx">preferredFont</span><span class="o">:</span> <span class="s2">&quot;STIX&quot;</span> @@ -72,7 +74,7 @@ dash, you need to enclose the name in quotes. For example</p> <tt class="descname">scale: 100</tt></dt> <dd><p>The scaling factor (as a percentage) of math with respect to the surrounding text. The <cite>HTML-CSS</cite> output processor tries to match -the en-size of the mathematics with that of the text where it is +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.</p> @@ -147,6 +149,74 @@ carefully.</p> <dl class="describe"> <dt> +<tt class="descname">mtextFontInherit: false</tt></dt> +<dd><p>This setting controls whether <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt> elements will be typeset +using the math fonts or the font of the surrounding text. When +<tt class="docutils literal"><span class="pre">false</span></tt>, the font for <tt class="docutils literal"><span class="pre">mathvariant=&quot;normal&quot;</span></tt> will be used; +when <tt class="docutils literal"><span class="pre">true</span></tt>, the font will be inherited from the surrounding +paragraph.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">EqnChunk: 50</tt></dt> +<dt> +<tt class="descname">EqnChunkFactor: 1.5</tt></dt> +<dt> +<tt class="descname">EqnChunkDelay: 100</tt></dt> +<dd><p>These values control how &#8220;chunky&#8221; the display of mathematical +expressions will be; that is, how often the equations will be +updated as they are processed.</p> +<p><tt class="docutils literal"><span class="pre">EqnChunk</span></tt> 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.</p> +<p><tt class="docutils literal"><span class="pre">EqChunkFactor</span></tt> is the factor by which the <tt class="docutils literal"><span class="pre">EqnChunk</span></tt> will +grow after each chunk is displayed.</p> +<p><tt class="docutils literal"><span class="pre">EqChunkDelay</span></tt> is the time (in milliseconds) to delay between +chunks (to allow the browser to respond to other user +interaction).</p> +<p>Set <tt class="docutils literal"><span class="pre">EqnChunk</span></tt> to 1, <tt class="docutils literal"><span class="pre">EqnChunkFactor</span></tt> to 1, and +<tt class="docutils literal"><span class="pre">EqnChunkDelay</span></tt> to 10 to get the behavior from MathJax v1.1 and +below.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">linebreaks: {}</tt></dt> +<dd><p>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:</p> +<dl class="describe"> +<dt> +<tt class="descname">automatic: false</tt></dt> +<dd><p>This controls the automatic breaking of expressions: when +<tt class="docutils literal"><span class="pre">false</span></tt>, only <tt class="docutils literal"><span class="pre">linebreak=&quot;newline&quot;</span></tt> is processed; when +<tt class="docutils literal"><span class="pre">true</span></tt>, line breaks are inserted automatically in long +expressions.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">width: &quot;container&quot;</tt></dt> +<dd><p>This controls how wide the lines of mathematics can be.</p> +<p>Use an explicit width like <tt class="docutils literal"><span class="pre">&quot;30em&quot;</span></tt> for a fixed width. +Use <tt class="docutils literal"><span class="pre">&quot;container&quot;</span></tt> to compute the size from the containing +element. +Use <tt class="docutils literal"><span class="pre">&quot;nn%</span> <span class="pre">container&quot;</span></tt> for a portion of the container. +Use <tt class="docutils literal"><span class="pre">&quot;nn%&quot;</span></tt> for a portion of the window size.</p> +<p>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.</p> +</dd></dl> + +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">styles: {}</tt></dt> <dd><p>This is a list of CSS declarations for styling the HTML-CSS output. See the definitions in <tt class="docutils literal"><span class="pre">jax/output/HTML-CSS/config.js</span></tt> @@ -158,17 +228,9 @@ CSS style in a JavaScript object.</p> <dl class="describe"> <dt> <tt class="descname">showMathMenu: true</tt></dt> -<dd><p>This controls whether the MathJax contextual menu will be -available on the mathematics in the page. If true, then -right-clicking (on the PC) or control-clicking (on the Mac) 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.</p> -<p>Set this to <tt class="docutils literal"><span class="pre">false</span></tt> to disable the menu. When <tt class="docutils literal"><span class="pre">true</span></tt>, the -<tt class="docutils literal"><span class="pre">MathMenu</span></tt> configuration block determines the operation of the -menu. See <a class="reference internal" href="MathMenu.html#configure-mathmenu"><em>the MathMenu options</em></a> for -more details.</p> +<dd><p>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 <a class="reference internal" href="hub.html#configure-hub"><em>Core configuration options</em></a> for more details.</p> </dd></dl> <dl class="describe"> @@ -195,7 +257,9 @@ after the mouse moves out of the <tt class="docutils literal"><span class="pre"> <dl class="describe"> <dt> -<tt class="descname">offsetX: 10 and offsetY: 5</tt></dt> +<tt class="descname">offsetX: 10</tt></dt> +<dt> +<tt class="descname">offsetY: 5</tt></dt> <dd><p>These are the offset from the mouse position (in pixels) where the tooltip will be placed.</p> </dd></dl> @@ -211,8 +275,8 @@ where the tooltip will be placed.</p> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> - <p class="topless"><a href="MathML.html" - title="previous chapter">The MathML input processor</a></p> + <p class="topless"><a href="AsciiMath.html" + title="previous chapter">The AsciiMath input processor</a></p> <h4>Next topic</h4> <p class="topless"><a href="NativeMML.html" title="next chapter">The NativeMML output processor</a></p> @@ -243,14 +307,14 @@ where the tooltip will be placed.</p> <a href="NativeMML.html" title="The NativeMML output processor" >next</a> |</li> <li class="right" > - <a href="MathML.html" title="The MathML input processor" + <a href="AsciiMath.html" title="The AsciiMath input processor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/MMLorHTML.html b/docs/html/options/MMLorHTML.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MMLorHTML configuration options &mdash; MathJax v1.1 documentation</title> + <title>The MMLorHTML configuration options &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,10 +22,10 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The MathMenu extension" href="MathMenu.html" /> - <link rel="prev" title="The NativeMML output processor" href="NativeMML.html" /> + <link rel="prev" title="The SVG output processor" href="SVG.html" /> </head> <body> @@ -39,9 +39,9 @@ <a href="MathMenu.html" title="The MathMenu extension" accesskey="N">next</a> |</li> <li class="right" > - <a href="NativeMML.html" title="The NativeMML output processor" + <a href="SVG.html" title="The SVG output processor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -55,9 +55,11 @@ <span id="configure-mmlorhtml"></span><h1>The MMLorHTML configuration options<a class="headerlink" href="#the-mmlorhtml-configuration-options" title="Permalink to this headline">ΒΆ</a></h1> <p>The options below control the operation of the MMLorHTML configuration file that is run when you include <tt class="docutils literal"><span class="pre">&quot;MMLorHTML.js&quot;</span></tt> in the <cite>config</cite> -array of your configuration. They are listed with their default -values. To set any of these options, include a <tt class="docutils literal"><span class="pre">MMLorHTML</span></tt> section -in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> +array of your configuration, or when you use one of the combined +configuration files that ends with <tt class="docutils literal"><span class="pre">_HTMLorMML</span></tt>. They are listed +with their default values. To set any of these options, include a +<tt class="docutils literal"><span class="pre">MMLorHTML</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For +example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">MMLorHTML</span><span class="o">:</span> <span class="p">{</span> <span class="nx">prefer</span><span class="o">:</span> <span class="p">{</span> @@ -75,14 +77,34 @@ browsers unchanged).</p> configuration; <cite>MMLorHTML</cite> will fill that in for you.</p> <dl class="describe"> <dt> -<tt class="descname">prefer: { MSIE: &quot;MML&quot;, Firefox: &quot;MML&quot;, Opera: &quot;HTML&quot;, other: &quot;HTML&quot; }</tt></dt> +<tt class="descname">prefer: {</tt></dt> +<dt> +<tt class="descname">MSIE: &quot;MML&quot;,</tt></dt> +<dt> +<tt class="descname">Firefox: &quot;HTML&quot;,</tt></dt> +<dt> +<tt class="descname">Safari: &quot;HTML&quot;,</tt></dt> +<dt> +<tt class="descname">Chrome: &quot;HTML&quot;,</tt></dt> +<dt> +<tt class="descname">Opera: &quot;HTML&quot;,</tt></dt> +<dt> +<tt class="descname">other: &quot;HTML&quot;</tt></dt> +<dt> +<tt class="descname">}</tt></dt> <dd><p>This lets you set the preferred renderer on a browser-by-browser basis. You set the browser to either <tt class="docutils literal"><span class="pre">&quot;MML&quot;</span></tt> or <tt class="docutils literal"><span class="pre">&quot;HTML&quot;</span></tt> depending on whether you want to use the <cite>NativeMML</cite> or <cite>HTML-CSS</cite> -output processor. Note that although Opera does process some MathML -natively, its support is not sufficient to handle the more -complicated output generated by MathJax, so its setting is -<tt class="docutils literal"><span class="pre">&quot;HTML&quot;</span></tt> by default.</p> +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 +<tt class="docutils literal"><span class="pre">&quot;HTML&quot;</span></tt> 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 <tt class="docutils literal"><span class="pre">&quot;HTML&quot;</span></tt> by default (this is +new in v2.0).</p> +<p>Note that users can still use the MathJax contextual menu to select +a different renderer after the default one has been chosen by +<tt class="docutils literal"><span class="pre">MMLorHTML.js</span></tt>.</p> </dd></dl> </div> @@ -94,8 +116,8 @@ complicated output generated by MathJax, so its setting is <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> - <p class="topless"><a href="NativeMML.html" - title="previous chapter">The NativeMML output processor</a></p> + <p class="topless"><a href="SVG.html" + title="previous chapter">The SVG output processor</a></p> <h4>Next topic</h4> <p class="topless"><a href="MathMenu.html" title="next chapter">The MathMenu extension</a></p> @@ -126,14 +148,14 @@ complicated output generated by MathJax, so its setting is <a href="MathMenu.html" title="The MathMenu extension" >next</a> |</li> <li class="right" > - <a href="NativeMML.html" title="The NativeMML output processor" + <a href="SVG.html" title="The SVG output processor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/MathEvents.html b/docs/html/options/MathEvents.html @@ -0,0 +1,141 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>The MathEvents extension &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> + <link rel="up" title="Configuration Objects" href="index.html" /> + <link rel="next" title="The FontWarnings extension" href="FontWarnings.html" /> + <link rel="prev" title="The MathZoom extension" href="MathZoom.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="FontWarnings.html" title="The FontWarnings extension" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="MathZoom.html" title="The MathZoom extension" + accesskey="P">previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="the-mathevents-extension"> +<span id="configure-mathevents"></span><h1>The MathEvents extension<a class="headerlink" href="#the-mathevents-extension" title="Permalink to this headline">ΒΆ</a></h1> +<p>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 <tt class="docutils literal"><span class="pre">MathEvents</span></tt> +section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">MathEvents</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">hover</span><span class="o">:</span> <span class="mi">400</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>would set the required delay for hovering over a math element to +400 milliseconds.</p> +<dl class="describe"> +<dt> +<tt class="descname">hover: 500</tt></dt> +<dd><p>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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">styles: {}</tt></dt> +<dd><p>This is a list of CSS declarations for styling the zoomed +mathematics. See the definitions in <tt class="docutils literal"><span class="pre">extensions/MathEvents.js</span></tt> +for details of what are defined by default. See <a class="reference internal" href="../CSS-styles.html#css-style-objects"><em>CSS Style +Objects</em></a> for details on how to specify CSS +style in a JavaScript object.</p> +</dd></dl> + +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h4>Previous topic</h4> + <p class="topless"><a href="MathZoom.html" + title="previous chapter">The MathZoom extension</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="FontWarnings.html" + title="next chapter">The FontWarnings extension</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="../search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="FontWarnings.html" title="The FontWarnings extension" + >next</a> |</li> + <li class="right" > + <a href="MathZoom.html" title="The MathZoom extension" + >previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" >Configuration Objects</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/options/MathML.html b/docs/html/options/MathML.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathML input processor &mdash; MathJax v1.1 documentation</title> + <title>The MathML input processor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> - <link rel="next" title="The HTML-CSS output processor" href="HTML-CSS.html" /> + <link rel="next" title="The AsciiMath input processor" href="AsciiMath.html" /> <link rel="prev" title="The TeX input processor" href="TeX.html" /> </head> <body> @@ -36,12 +36,12 @@ <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="HTML-CSS.html" title="The HTML-CSS output processor" + <a href="AsciiMath.html" title="The AsciiMath input processor" accesskey="N">next</a> |</li> <li class="right" > <a href="TeX.html" title="The TeX input processor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -55,7 +55,8 @@ <span id="configure-mathml"></span><h1>The MathML input processor<a class="headerlink" href="#the-mathml-input-processor" title="Permalink to this headline">ΒΆ</a></h1> <p>The options below control the operation of the MathML input processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;input/MathML&quot;</span></tt> in the <cite>jax</cite> array of -your configuration. They are listed with their default values. To +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 <tt class="docutils literal"><span class="pre">MathML</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> @@ -86,8 +87,8 @@ spacing would be used (rather than TeX spacing rules).</p> <p class="topless"><a href="TeX.html" title="previous chapter">The TeX input processor</a></p> <h4>Next topic</h4> - <p class="topless"><a href="HTML-CSS.html" - title="next chapter">The HTML-CSS output processor</a></p> + <p class="topless"><a href="AsciiMath.html" + title="next chapter">The AsciiMath input processor</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> @@ -112,17 +113,17 @@ spacing would be used (rather than TeX spacing rules).</p> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="HTML-CSS.html" title="The HTML-CSS output processor" + <a href="AsciiMath.html" title="The AsciiMath input processor" >next</a> |</li> <li class="right" > <a href="TeX.html" title="The TeX input processor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/MathMenu.html b/docs/html/options/MathMenu.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathMenu extension &mdash; MathJax v1.1 documentation</title> + <title>The MathMenu extension &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The MathZoom extension" href="MathZoom.html" /> <link rel="prev" title="The MMLorHTML configuration options" href="MMLorHTML.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="MMLorHTML.html" title="The MMLorHTML configuration options" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -85,32 +85,18 @@ selects that item, the browser opens a new window with this URL.</p> <dl class="describe"> <dt> <tt class="descname">showRenderer: true</tt></dt> -<dd><p>This controls whether the &#8220;Math Renderer&#8221; item will be displayed in -the &#8220;Settings&#8221; submenu of the mathematics contextual menu. It -allows the user to change between the <cite>HTML-CSS</cite> and <cite>NativeMML</cite> -output processors for the mathematics on the page. Set to -<tt class="docutils literal"><span class="pre">false</span></tt> to prevent this menu item from showing.</p> -</dd></dl> - -<dl class="describe"> -<dt> -<tt class="descname">showContext: false</tt></dt> -<dd><p>This controls whether the &#8220;Contextual Menu&#8221; item will be displayed -in the &#8220;Settings&#8221; submenu of the mathematics contextual menu. -It allows the user to decide whether the MathJax menu or the -browser&#8217;s default contextual menu will be shown when the context -menu click occurs over mathematics typeset by MathJax. (The main -reason to allow pass-through to the browser&#8217;s menu is to gain -access to the MathPlayer contextual menu when the NativeMML output -processor is used in Internet Explorer with the <a class="reference external" href="http://www.dessci.com/en/products/mathplayer/">MathPlayer plugin</a>.) Set to -<tt class="docutils literal"><span class="pre">false</span></tt> to prevent this menu item from showing.</p> +<dd><p>This controls whether the &#8220;Math Renderer&#8221; item will be displayed +in the &#8220;Math Settings&#8221; submenu of the MathJax contextual menu. +It allows the user to change between the <cite>HTML-CSS</cite>, <cite>NativeMML</cite>, +and <cite>SVG</cite> output processors for the mathematics on the page. Set +to <tt class="docutils literal"><span class="pre">false</span></tt> to prevent this menu item from showing.</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">showFontMenu: false</tt></dt> <dd><p>This controls whether the &#8220;Font Preference&#8221; item will be displayed -in the &#8220;Settings&#8221; submenu of the mathematics contextual menu. +in the &#8220;Math Settings&#8221; submenu of the MathJax contextual menu. This submenu lets the user select what font to use in the mathematics produced by the <cite>HTML-CSS</cite> output processor. Note that changing the selection in the font menu will cause the page to @@ -119,6 +105,30 @@ reload. Set to <tt class="docutils literal"><span class="pre">false</span></tt> <dl class="describe"> <dt> +<tt class="descname">showMathPlayer: true</tt></dt> +<dd><p>This controls whether the &#8220;MathPlayer&#8221; item will be displayed in +the &#8220;Math Settings&#8221; submenu of the MathJax contextual menu. This +submenu lets the user select what events should be passed on to +the <a class="reference external" href="http://www.dessci.com/en/products/mathplayer/">MathPlayer plugin</a>, 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 <tt class="docutils literal"><span class="pre">false</span></tt> to prevent this menu item from showing.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">showContext: false</tt></dt> +<dd><p>This controls whether the &#8220;Contextual Menu&#8221; item will be displayed +in the &#8220;Math Settings&#8221; submenu of the MathJax contextual menu. +It allows the user to decide whether the MathJax menu or the +browser&#8217;s default contextual menu will be shown when the context +menu click occurs over mathematics typeset by MathJax. Set to +<tt class="docutils literal"><span class="pre">false</span></tt> to prevent this menu item from showing.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">windowSettings: { ... }</tt></dt> <dd><p>These are the settings for the <tt class="docutils literal"><span class="pre">window.open()</span></tt> call that creates the <cite>Show Source</cite> window. The initial width and height @@ -179,12 +189,12 @@ style in a JavaScript object.</p> <li class="right" > <a href="MMLorHTML.html" title="The MMLorHTML configuration options" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/MathZoom.html b/docs/html/options/MathZoom.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathZoom extension &mdash; MathJax v1.1 documentation</title> + <title>The MathZoom extension &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> - <link rel="next" title="The FontWarnings extension" href="FontWarnings.html" /> + <link rel="next" title="The MathEvents extension" href="MathEvents.html" /> <link rel="prev" title="The MathMenu extension" href="MathMenu.html" /> </head> <body> @@ -36,12 +36,12 @@ <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="FontWarnings.html" title="The FontWarnings extension" + <a href="MathEvents.html" title="The MathEvents extension" accesskey="N">next</a> |</li> <li class="right" > <a href="MathMenu.html" title="The MathMenu extension" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -60,23 +60,28 @@ default values. To set any of these options, include a <tt class="docutils lite section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">MathZoom</span><span class="o">:</span> <span class="p">{</span> - <span class="nx">delay</span><span class="o">:</span> <span class="mi">600</span> + <span class="nx">styles</span><span class="o">:</span> <span class="p">{</span> + <span class="s2">&quot;#MathJax_Zoom&quot;</span><span class="o">:</span> <span class="p">{</span> + <span class="s2">&quot;background-color&quot;</span><span class="o">:</span> <span class="s2">&quot;#0000F0&quot;</span> + <span class="p">}</span> + <span class="p">}</span> <span class="p">}</span> <span class="p">});</span> </pre></div> </div> -<p>would set the <tt class="docutils literal"><span class="pre">delay</span></tt> option to 600 milliseconds.</p> +<p>would set the background color of the Zoom box to a very light blue.</p> <p>Mathematics is zoomed when the user &#8220;triggers&#8221; the zoom by an action, either clicking on the mathematics, double-clicking on it, or holding the mouse still over it (i.e., &#8220;hovering&#8221;). Which trigger is used is set by the user via the math contextual menu (or by the author using -the <tt class="docutils literal"><span class="pre">menuSettings</span></tt> configuration section).</p> +the <tt class="docutils literal"><span class="pre">menuSettings</span></tt> configuration section of the <cite>core configuration +options &lt;configure-hub&gt;</cite>).</p> <dl class="describe"> <dt> -<tt class="descname">delay: 400</tt></dt> -<dd><p>This the time (in milliseconds) that the mouse must be still over a -typeset mathematical formula before the zoomed version is displayed -(when the zoom trigger is set to <cite>Hover</cite>).</p> +<tt class="descname">delay: 500</tt></dt> +<dd><p>This value is now stored as the <tt class="docutils literal"><span class="pre">hover</span></tt> parameter in the +<a class="reference internal" href="MathEvents.html#configure-mathevents"><em>MathEvents</em></a> configuration options, and +will have no effect if given here.</p> </dd></dl> <dl class="describe"> @@ -101,8 +106,8 @@ style in a JavaScript object.</p> <p class="topless"><a href="MathMenu.html" title="previous chapter">The MathMenu extension</a></p> <h4>Next topic</h4> - <p class="topless"><a href="FontWarnings.html" - title="next chapter">The FontWarnings extension</a></p> + <p class="topless"><a href="MathEvents.html" + title="next chapter">The MathEvents extension</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> @@ -127,17 +132,17 @@ style in a JavaScript object.</p> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="FontWarnings.html" title="The FontWarnings extension" + <a href="MathEvents.html" title="The MathEvents extension" >next</a> |</li> <li class="right" > <a href="MathMenu.html" title="The MathMenu extension" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/NativeMML.html b/docs/html/options/NativeMML.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The NativeMML output processor &mdash; MathJax v1.1 documentation</title> + <title>The NativeMML output processor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> - <link rel="next" title="The MMLorHTML configuration options" href="MMLorHTML.html" /> + <link rel="next" title="The SVG output processor" href="SVG.html" /> <link rel="prev" title="The HTML-CSS output processor" href="HTML-CSS.html" /> </head> <body> @@ -36,12 +36,12 @@ <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="MMLorHTML.html" title="The MMLorHTML configuration options" + <a href="SVG.html" title="The SVG output processor" accesskey="N">next</a> |</li> <li class="right" > <a href="HTML-CSS.html" title="The HTML-CSS output processor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -55,9 +55,11 @@ <span id="configure-nativemml"></span><h1>The NativeMML output processor<a class="headerlink" href="#the-nativemml-output-processor" title="Permalink to this headline">ΒΆ</a></h1> <p>The options below control the operation of the NativeMML output processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;output/NativeMML&quot;</span></tt> in the -<cite>jax</cite> array of your configuration. They are listed with their default -values. To set any of these options, include a <tt class="docutils literal"><span class="pre">NativeMML</span></tt> section -in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> +<cite>jax</cite> 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 +<tt class="docutils literal"><span class="pre">NativeMML</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For +example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> <span class="nx">NativeMML</span><span class="o">:</span> <span class="p">{</span> <span class="nx">scale</span><span class="o">:</span> <span class="mi">105</span> @@ -70,43 +72,35 @@ in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.H <dt> <tt class="descname">scale: 100</tt></dt> <dd><p>The scaling factor (as a percentage) of math with respect to the -surrounding text. Since the <cite>NativeMML</cite> output relies on the -browser&#8217;s native MathML support, MathJax does not control the -font size used in the mathematics. You may need to set this value -to compensate for the size selected by the browser. The user can -also adjust this value using the contextual menu item associated -with the typeset mathematics.</p> +surrounding text. The <cite>NativeMML</cite> 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.</p> </dd></dl> <dl class="describe"> <dt> -<tt class="descname">showMathMath: true</tt></dt> -<dd><p>This controls whether the MathJax contextual menu will be -available on the mathematics in the page. If true, then -right-clicking (on the PC) or control-clicking (on the Mac) 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.</p> -<p>Set this to <tt class="docutils literal"><span class="pre">false</span></tt> to disable the menu. When <tt class="docutils literal"><span class="pre">true</span></tt>, the -<tt class="docutils literal"><span class="pre">MathMenu</span></tt> configuration block determines the operation of the -menu. See <a class="reference internal" href="MathMenu.html#configure-mathmenu"><em>the MathMenu options</em></a> for -more details.</p> +<tt class="descname">minScaleAdjust: 50</tt></dt> +<dd><p>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.</p> </dd></dl> <dl class="describe"> <dt> +<tt class="descname">showMathMath: true</tt></dt> +<dt> <tt class="descname">showMathMenuMSIE: true</tt></dt> -<dd><p>There is a separate menu setting for MSIE since the code to handle -that is a bit delicate; if it turns out to have unexpected -consequences, you can turn it off without turning off the -menu support in other browsers.</p> +<dd><p>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 <a class="reference internal" href="hub.html#configure-hub"><em>Core configuration options</em></a> for more details.</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">styles: {}</tt></dt> -<dd><p>This is a list of CSS declarations for styling the HTML-CSS +<dd><p>This is a list of CSS declarations for styling the NativeMML output. See the definitions in <tt class="docutils literal"><span class="pre">jax/output/NativeMML/config.js</span></tt> for some examples of what are defined by default. See <a class="reference internal" href="../CSS-styles.html#css-style-objects"><em>CSS Style Objects</em></a> for details on how to specify @@ -125,8 +119,8 @@ CSS style in a JavaScript object.</p> <p class="topless"><a href="HTML-CSS.html" title="previous chapter">The HTML-CSS output processor</a></p> <h4>Next topic</h4> - <p class="topless"><a href="MMLorHTML.html" - title="next chapter">The MMLorHTML configuration options</a></p> + <p class="topless"><a href="SVG.html" + title="next chapter">The SVG output processor</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> @@ -151,17 +145,17 @@ CSS style in a JavaScript object.</p> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="MMLorHTML.html" title="The MMLorHTML configuration options" + <a href="SVG.html" title="The SVG output processor" >next</a> |</li> <li class="right" > <a href="HTML-CSS.html" title="The HTML-CSS output processor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/SVG.html b/docs/html/options/SVG.html @@ -0,0 +1,291 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>The SVG output processor &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> + <link rel="up" title="Configuration Objects" href="index.html" /> + <link rel="next" title="The MMLorHTML configuration options" href="MMLorHTML.html" /> + <link rel="prev" title="The NativeMML output processor" href="NativeMML.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="MMLorHTML.html" title="The MMLorHTML configuration options" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="NativeMML.html" title="The NativeMML output processor" + accesskey="P">previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="the-svg-output-processor"> +<span id="configure-svg"></span><h1>The SVG output processor<a class="headerlink" href="#the-svg-output-processor" title="Permalink to this headline">ΒΆ</a></h1> +<p>The options below control the operation of the SVG output +processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;output/SVG&quot;</span></tt> in the +<cite>jax</cite> 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 <tt class="docutils literal"><span class="pre">SVG</span></tt> section +in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. Note that, because of the +dash, you need to enclose the name in quotes. For example</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="s2">&quot;SVG&quot;</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">scale</span><span class="o">:</span> <span class="mi">120</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>would set the <tt class="docutils literal"><span class="pre">scale</span></tt> option to 120%.</p> +<dl class="describe"> +<dt> +<tt class="descname">scale: 100</tt></dt> +<dd><p>The scaling factor (as a percentage) of math with respect to the +surrounding text. The <cite>SVG</cite> 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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">minScaleAdjust: 50</tt></dt> +<dd><p>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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">font: &quot;TeX&quot;</tt></dt> +<dd><p>This is the font to use for rendering the mathematics. Note that +currently only the <cite>TeX</cite> font is available.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">blacker: 10</tt></dt> +<dd><p>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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">undefinedFamily: &quot;STIXGeneral, 'Arial Unicode MS', serif&quot;</tt></dt> +<dd><p>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&#8217;t +contain the needed character), so order these carefully.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">mtextFontInherit: false</tt></dt> +<dd><p>This setting controls whether <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt> elements will be typeset +using the math fonts or the font of the surrounding text. When +<tt class="docutils literal"><span class="pre">false</span></tt>, the font for <tt class="docutils literal"><span class="pre">mathvariant=&quot;normal&quot;</span></tt> will be used; +when <tt class="docutils literal"><span class="pre">true</span></tt>, the font will be inherited from the surrounding +paragraph.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">addMMLclasses: false</tt></dt> +<dd><p>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 <cite>HTML-CSS</cite> 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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">EqnChunk: 50</tt></dt> +<dt> +<tt class="descname">EqnChunkFactor: 1.5</tt></dt> +<dt> +<tt class="descname">EqnChunkDelay: 100</tt></dt> +<dd><p>These values control how &#8220;chunky&#8221; the display of mathematical +expressions will be; that is, how often the equations will be +updated as they are processed.</p> +<p><tt class="docutils literal"><span class="pre">EqnChunk</span></tt> 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.</p> +<p><tt class="docutils literal"><span class="pre">EqChunkFactor</span></tt> is the factor by which the <tt class="docutils literal"><span class="pre">EqnChunk</span></tt> will +grow after each chunk is displayed.</p> +<p><tt class="docutils literal"><span class="pre">EqChunkDelay</span></tt> is the time (in milliseconds) to delay between +chunks (to allow the browser to respond to other user +interaction).</p> +<p>Set <tt class="docutils literal"><span class="pre">EqnChunk</span></tt> to 1, <tt class="docutils literal"><span class="pre">EqnChunkFactor</span></tt> to 1, and +<tt class="docutils literal"><span class="pre">EqnChunkDelay</span></tt> to 10 to get the behavior from MathJax v1.1 and +below.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">linebreaks: {}</tt></dt> +<dd><p>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:</p> +<dl class="describe"> +<dt> +<tt class="descname">automatic: false</tt></dt> +<dd><p>This controls the automatic breaking of expressions: when +<tt class="docutils literal"><span class="pre">false</span></tt>, only <tt class="docutils literal"><span class="pre">linebreak=&quot;newline&quot;</span></tt> is processed; when +<tt class="docutils literal"><span class="pre">true</span></tt>, line breaks are inserted automatically in long +expressions.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">width: &quot;container&quot;</tt></dt> +<dd><p>This controls how wide the lines of mathematics can be.</p> +<p>Use an explicit width like <tt class="docutils literal"><span class="pre">&quot;30em&quot;</span></tt> for a fixed width. +Use <tt class="docutils literal"><span class="pre">&quot;container&quot;</span></tt> to compute the size from the containing +element. +Use <tt class="docutils literal"><span class="pre">&quot;nn%</span> <span class="pre">container&quot;</span></tt> for a portion of the container. +Use <tt class="docutils literal"><span class="pre">&quot;nn%&quot;</span></tt> for a portion of the window size.</p> +<p>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.</p> +</dd></dl> + +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">styles: {}</tt></dt> +<dd><p>This is a list of CSS declarations for styling the SVG output. +See the definitions in <tt class="docutils literal"><span class="pre">jax/output/SVG/config.js</span></tt> for some +examples of what are defined by default. See <a class="reference internal" href="../CSS-styles.html#css-style-objects"><em>CSS Style +Objects</em></a> for details on how to specify CSS +style in a JavaScript object.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">tooltip: { ... }</tt></dt> +<dd><p>This sets the configuration options for <tt class="docutils literal"><span class="pre">&lt;maction&gt;</span></tt> elements +with <tt class="docutils literal"><span class="pre">actiontype=&quot;tooltip&quot;</span></tt>. (See also the <tt class="docutils literal"><span class="pre">#MathJax_Tooltip</span></tt> +style setting in <tt class="docutils literal"><span class="pre">jax/output/SVG/config.js</span></tt>, which can be +overridden using the <tt class="docutils literal"><span class="pre">styles</span></tt> option above.)</p> +<p>The <tt class="docutils literal"><span class="pre">tooltip</span></tt> section can contain the following options:</p> +<dl class="describe"> +<dt> +<tt class="descname">delayPost: 600</tt></dt> +<dd><p>The delay (in milliseconds) before the tooltip is posted after +the mouse is moved over the <tt class="docutils literal"><span class="pre">maction</span></tt> element.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">delayClear: 600</tt></dt> +<dd><p>The delay (in milliseconds) before the tooltop is cleared +after the mouse moves out of the <tt class="docutils literal"><span class="pre">maction</span></tt> element.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">offsetX: 10</tt></dt> +<dt> +<tt class="descname">offsetY: 5</tt></dt> +<dd><p>These are the offset from the mouse position (in pixels) +where the tooltip will be placed.</p> +</dd></dl> + +</dd></dl> + +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h4>Previous topic</h4> + <p class="topless"><a href="NativeMML.html" + title="previous chapter">The NativeMML output processor</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="MMLorHTML.html" + title="next chapter">The MMLorHTML configuration options</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="../search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="MMLorHTML.html" title="The MMLorHTML configuration options" + >next</a> |</li> + <li class="right" > + <a href="NativeMML.html" title="The NativeMML output processor" + >previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" >Configuration Objects</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/options/TeX.html b/docs/html/options/TeX.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The TeX input processor &mdash; MathJax v1.1 documentation</title> + <title>The TeX input processor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The MathML input processor" href="MathML.html" /> <link rel="prev" title="The jsMath2jax Preprocessor" href="jsMath2jax.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -55,7 +55,8 @@ <span id="configure-tex"></span><h1>The TeX input processor<a class="headerlink" href="#the-tex-input-processor" title="Permalink to this headline">ΒΆ</a></h1> <p>The options below control the operation of the TeX input processor that is run when you include <tt class="docutils literal"><span class="pre">&quot;input/TeX&quot;</span></tt> in the <cite>jax</cite> array of -your configuration. They are listed with their default values. To +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 <tt class="docutils literal"><span class="pre">TeX</span></tt> section in your <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> @@ -96,15 +97,76 @@ the value to leave sufficient margin for tags.</p> <dl class="describe"> <dt> +<tt class="descname">equationNumbers: {}</tt></dt> +<dd><p>This object controls the automatic equation numbering and the +equation referencing. It contains the following values:</p> +<dl class="describe"> +<dt> +<tt class="descname">autoNumber: &quot;none&quot;</tt></dt> +<dd><p>This controls whether equations are numbered and how. By +default it is set to <tt class="docutils literal"><span class="pre">&quot;none&quot;</span></tt> 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 <tt class="docutils literal"><span class="pre">&quot;AMS&quot;</span></tt> for equations numbered as the <cite>AMSmath</cite> +package would do, or <tt class="docutils literal"><span class="pre">&quot;all&quot;</span></tt> to get an equation number for +every displayed equation.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">formatNumber: function (n) {return n}</tt></dt> +<dd><p>A function that tells MathJax what tag to use for equation +number <tt class="docutils literal"><span class="pre">n</span></tt>. 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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">formatTag: function (n) {return '('+n+')'}</tt></dt> +<dd><p>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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">formatID: function {return 'mjx-eqn-'+String(n).replace(/[:'&quot;&lt;&gt;&amp;]/g,&quot;&quot;)}</tt></dt> +<dd><p>A function that rells MathJax what ID to use as an anchor for +the equation (so that it can be used in URL references).</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">formatURL: function (id) {return '#'+escape(id)}</tt></dt> +<dd><p>A function that takes an equation ID and returns the URL to +link to it.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">useLabelIds: true</tt></dt> +<dd><p>This controls whether element ID&#8217;s use the <tt class="docutils literal"><span class="pre">\label</span></tt> name or +the equation number. When <tt class="docutils literal"><span class="pre">true</span></tt>, use the label, when +<tt class="docutils literal"><span class="pre">false</span></tt>, use the equation number.</p> +</dd></dl> + +<p>See the <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/examples.html">MathJax examples page</a> for +some examples of equation numbering.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">Macros: {}</tt></dt> <dd><p>This lists macros to define before the TeX input processor begins. -These are name:value pairs where the <cite>name</cite> gives the name of the TeX -macro to be defined, and <cite>value</cite> gives the replacement text for the -macro. The <cite>value</cite> can be an array of the form <cite>[value,n]</cite>, where -<cite>value</cite> is the replacement text and <cite>n</cite> is the number of parameters -for the macro. Note that since the <cite>value</cite> is a javascript string, -backslashes in the replacement text must be doubled to prevent them -from acting as javascript escape characters.</p> +These are <cite>name:value</cite> pairs where the <cite>name</cite> gives the name of +the TeX macro to be defined, and <cite>value</cite> gives the replacement +text for the macro. The <cite>value</cite> can be an array of the form +<cite>[value,n]</cite>, where <cite>value</cite> is the replacement text and <cite>n</cite> is the +number of parameters for the macro. Note that since the <cite>value</cite> +is a javascript string, backslashes in the replacement text must +be doubled to prevent them from acting as javascript escape +characters.</p> <p>For example,</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">Macros</span><span class="o">:</span> <span class="p">{</span> <span class="nx">RR</span><span class="o">:</span> <span class="s1">&#39;{\\bf R}&#39;</span><span class="p">,</span> @@ -178,12 +240,12 @@ be sufficient for any reasonable equation.</p> <li class="right" > <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/asciimath2jax.html b/docs/html/options/asciimath2jax.html @@ -0,0 +1,213 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>The asciimath2jax Preprocessor &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '../', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> + <link rel="up" title="Configuration Objects" href="index.html" /> + <link rel="next" title="The jsMath2jax Preprocessor" href="jsMath2jax.html" /> + <link rel="prev" title="The mml2jax Preprocessor" href="mml2jax.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="mml2jax.html" title="The mml2jax Preprocessor" + accesskey="P">previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="the-asciimath2jax-preprocessor"> +<span id="configure-asciimath2jax"></span><h1>The asciimath2jax Preprocessor<a class="headerlink" href="#the-asciimath2jax-preprocessor" title="Permalink to this headline">ΒΆ</a></h1> +<p>The options below control the operation of the <cite>asciimath2jax</cite> preprocessor +that is run when you include <tt class="docutils literal"><span class="pre">&quot;asciimath2jax.js&quot;</span></tt> in the <cite>extensions</cite> array +of your configuration. They are listed with their default values. To +set any of these options, include a <tt class="docutils literal"><span class="pre">asciimath2jax</span></tt> section in your +<tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> call. For example</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">asciimath2jax</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">delimiters</span><span class="o">:</span> <span class="p">[[</span><span class="s1">&#39;`&#39;</span><span class="p">,</span><span class="s1">&#39;`&#39;</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;$&#39;</span><span class="p">,</span><span class="s1">&#39;$&#39;</span><span class="p">]]</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>would set the ASCIIMath delimiters for the <cite>asciimath2jax</cite> +preprocessor to include dollar signs as well as back-ticks.</p> +<dl class="describe"> +<dt> +<tt class="descname">delimiters: [['`','`']]</tt></dt> +<dd><p>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,</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">inlineMath</span><span class="o">:</span> <span class="p">[</span> <span class="p">[</span><span class="s1">&#39;$&#39;</span><span class="p">,</span><span class="s1">&#39;$&#39;</span><span class="p">],</span> <span class="p">[</span><span class="s1">&#39;`&#39;</span><span class="p">,</span><span class="s1">&#39;`&#39;</span><span class="p">]</span> <span class="p">]</span> +</pre></div> +</div> +<p>would cause <cite>asciimath2jax</cite> to look for <tt class="docutils literal"><span class="pre">$...$</span></tt> and <tt class="docutils literal"><span class="pre">`...`</span></tt> 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.)</p> +<p>Note that the delimiters can&#8217;t look like HTML tags (i.e., can&#8217;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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">preview: &quot;AsciiMath&quot;</tt></dt> +<dd><p>This controls whether <cite>asciimath2jax</cite> inserts <tt class="docutils literal"><span class="pre">MathJax_Preview</span></tt> +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 <tt class="docutils literal"><span class="pre">&quot;AsciiMath&quot;</span></tt>, which means use the ASCIIMath code as +the preview (which will be visible until it is processed by +MathJax). Set to <tt class="docutils literal"><span class="pre">&quot;none&quot;</span></tt> 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.</p> +<p>Examples:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">preview</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;[math]&quot;</span><span class="p">],</span> <span class="c1">// insert the text &quot;[math]&quot; as the preview</span> +</pre></div> +</div> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">preview</span><span class="o">:</span> <span class="p">[[</span><span class="s2">&quot;img&quot;</span><span class="p">,{</span><span class="nx">src</span><span class="o">:</span> <span class="s2">&quot;/images/mypic.jpg&quot;</span><span class="p">}]],</span> <span class="c1">// insert an image as the preview</span> +</pre></div> +</div> +<p>See the <a class="reference internal" href="../HTML-snippets.html#html-snippets"><em>description of HTML snippets</em></a> for +details on how to represent HTML code in this way.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">skipTags: [&quot;script&quot;,&quot;noscript&quot;,&quot;style&quot;,&quot;textarea&quot;,&quot;pre&quot;,&quot;code&quot;]</tt></dt> +<dd><p>This array lists the names of the tags whose contents should not +be processed by <cite>asciimath2jax</cite> (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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">ignoreClass: &quot;asciimath2jax_ignore&quot;</tt></dt> +<dd><p>This is the class name used to mark elements whose contents should +not be processed by asciimath2jax (other than to look for the +<tt class="docutils literal"><span class="pre">processClass</span></tt> pattern below). Note that this is a regular +expression, and so you need to be sure to quote any <cite>regexp</cite> +special characters. The pattern is inserted into one that +requires your pattern to match a complete word, so setting +<tt class="docutils literal"><span class="pre">ignoreClass:</span> <span class="pre">&quot;class2&quot;</span></tt> would cause it to match an element with +<tt class="docutils literal"><span class="pre">class=&quot;class1</span> <span class="pre">class2</span> <span class="pre">class3&quot;</span></tt> but not <tt class="docutils literal"><span class="pre">class=&quot;myclass2&quot;</span></tt>. +Note that you can assign several classes by separating them by the +vertical line character (<tt class="docutils literal"><span class="pre">|</span></tt>). For instance, with +<tt class="docutils literal"><span class="pre">ignoreClass:</span> <span class="pre">&quot;class1|class2&quot;</span></tt> any element assigned a class of +either <tt class="docutils literal"><span class="pre">class1</span></tt> or <tt class="docutils literal"><span class="pre">class2</span></tt> will be skipped.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">processClass: &quot;asciimath2jax_process&quot;</tt></dt> +<dd><p>This is the class name used to mark elements whose contents +<em>should</em> be processed by <cite>asciimath2jax</cite>. This is used to restart +processing within tags that have been marked as ignored via the +<tt class="docutils literal"><span class="pre">ignoreClass</span></tt> or to cause a tag that appears in the <tt class="docutils literal"><span class="pre">skipTags</span></tt> +list to be processed rather than skipped. Note that this is a +regular expression, and so you need to be sure to quote any +<cite>regexp</cite> special characters. The pattern is inserted into one +that requires your pattern to match a complete word, so setting +<tt class="docutils literal"><span class="pre">processClass:</span> <span class="pre">&quot;class2&quot;</span></tt> would cause it to match an element with +<tt class="docutils literal"><span class="pre">class=&quot;class1</span> <span class="pre">class2</span> <span class="pre">class3&quot;</span></tt> but not <tt class="docutils literal"><span class="pre">class=&quot;myclass2&quot;</span></tt>. +Note that you can assign several classes by separating them by the +vertical line character (<tt class="docutils literal"><span class="pre">|</span></tt>). For instance, with +<tt class="docutils literal"><span class="pre">processClass:</span> <span class="pre">&quot;class1|class2&quot;</span></tt> any element assigned a class of +either <tt class="docutils literal"><span class="pre">class1</span></tt> or <tt class="docutils literal"><span class="pre">class2</span></tt> will have its contents processed.</p> +</dd></dl> + +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h4>Previous topic</h4> + <p class="topless"><a href="mml2jax.html" + title="previous chapter">The mml2jax Preprocessor</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="jsMath2jax.html" + title="next chapter">The jsMath2jax Preprocessor</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="../search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="../genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" + >next</a> |</li> + <li class="right" > + <a href="mml2jax.html" title="The mml2jax Preprocessor" + >previous</a> |</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> + <li><a href="index.html" >Configuration Objects</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/options/hub.html b/docs/html/options/hub.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The Core Configuration Options &mdash; MathJax v1.1 documentation</title> + <title>The Core Configuration Options &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The tex2jax Preprocessor" href="tex2jax.html" /> <link rel="prev" title="Configuration Objects" href="index.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="index.html" title="Configuration Objects" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -70,8 +70,7 @@ directory.</p> <tt class="descname">extensions: []</tt></dt> <dd><p>A comma-separated list of extensions to load at startup. The default directory is <tt class="docutils literal"><span class="pre">MathJax/extensions</span></tt>. The <tt class="docutils literal"><span class="pre">tex2jax</span></tt> and -<tt class="docutils literal"><span class="pre">mml2jax</span></tt> preprocessors can be listed here, as well as a number -of TeX-specific extensions (see the <a class="reference internal" href="../start.html#tex-and-latex-input"><em>TeX and LaTeX input</em></a> section of the <a class="reference internal" href="../start.html#getting-started"><em>Getting Started</em></a> document for more details). There is also a +<tt class="docutils literal"><span class="pre">mml2jax</span></tt> preprocessors can be listed here, as well as a <tt class="docutils literal"><span class="pre">FontWarnings</span></tt> 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.</p> @@ -84,7 +83,9 @@ improve their experience of your site.</p> starts up, e.g., to define local macros, etc., and there is a sample config file named <tt class="docutils literal"><span class="pre">config/local/local.js</span></tt>. The default directory is the <cite>MathJax/config</cite> directory. The <tt class="docutils literal"><span class="pre">MMLorHTML.js</span></tt> -configuration is the only other predefined configuration file.</p> +configuration is one such configuration file, and there are a +number of other pre-defined configurations (see <a class="reference internal" href="../configuration.html#config-files"><em>Using a +configuration file</em></a> for more details).</p> </dd></dl> <dl class="describe"> @@ -98,8 +99,8 @@ directory.</p> <dl class="describe"> <dt> <tt class="descname">styles: {}</tt></dt> -<dd><p>CSS <cite>selector: rules;</cite> styles to be defined dynamically at startup -time.</p> +<dd><p>CSS styles to be defined dynamically at startup time. These are +in the form <cite>selector:rules</cite> (see <a class="reference internal" href="../CSS-styles.html#css-style-objects"><em>CSS Style Objects</em></a> for complete details).</p> </dd></dl> <dl class="describe"> @@ -116,20 +117,21 @@ 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 &#8220;guard characters&#8221; before or after the math SCRIPT tag; define the patterns you want to use below. -Note that these are used as regular expressions, 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 <tt class="docutils literal"><span class="pre">\\</span></tt> (doubled -for javascript). For example, <tt class="docutils literal"><span class="pre">&quot;\\[&quot;</span></tt> represents the pattern -<tt class="docutils literal"><span class="pre">\[</span></tt> in the regular expression. That means that if you want an -actual backslash in your guard characters, you need to use -<tt class="docutils literal"><span class="pre">&quot;\\\\&quot;</span></tt> in order to get <tt class="docutils literal"><span class="pre">\\</span></tt> in the regular expression, and -<tt class="docutils literal"><span class="pre">\</span></tt> in the actual text. If both preJax and postJax are defined, -both must be present in order to be removed.</p> +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 <tt class="docutils literal"><span class="pre">\\</span></tt> +(doubled for javascript). For example, <tt class="docutils literal"><span class="pre">&quot;\\[&quot;</span></tt> represents the +pattern <tt class="docutils literal"><span class="pre">\[</span></tt> in the regular expression, or <tt class="docutils literal"><span class="pre">[</span></tt> in the text of +the web page. That means that if you want an actual backslash in +your guard characters, you need to use <tt class="docutils literal"><span class="pre">&quot;\\\\&quot;</span></tt> in order to get +<tt class="docutils literal"><span class="pre">\\</span></tt> in the regular expression, and <tt class="docutils literal"><span class="pre">\</span></tt> in the actual text. +If both <tt class="docutils literal"><span class="pre">preJax</span></tt> and <tt class="docutils literal"><span class="pre">postJax</span></tt> are defined, both must be +present in order to be removed.</p> <p>See also the <tt class="docutils literal"><span class="pre">preRemoveClass</span></tt> comments below.</p> <p>Examples:</p> <blockquote> -<div><p><tt class="docutils literal"><span class="pre">preJax:</span> <span class="pre">&quot;\\\\\\\\\&quot;</span></tt> makes a double backslash the preJax text</p> +<div><p><tt class="docutils literal"><span class="pre">preJax:</span> <span class="pre">&quot;\\\\\\\\\&quot;</span></tt> makes a double backslash the <tt class="docutils literal"><span class="pre">preJax</span></tt> text</p> <p><tt class="docutils literal"><span class="pre">preJax:</span> <span class="pre">&quot;\\[\\[&quot;,</span> <span class="pre">postJax:</span> <span class="pre">&quot;\\]\\]&quot;</span></tt> makes it so jax scripts must be enclosed in double brackets.</p> </div></blockquote> @@ -212,8 +214,8 @@ yourself by hand, set this value to <tt class="docutils literal"><span class="pr <dt> <tt class="descname">elements: []</tt></dt> <dd><p>This is a list of DOM element ID&#8217;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 +mathematics when any of the Hub typesetting calls (<tt class="docutils literal"><span class="pre">Typeset()</span></tt>, <tt class="docutils literal"><span class="pre">Process()</span></tt>, +<tt class="docutils literal"><span class="pre">Update()</span></tt>, etc.) are called with no element specified, and during MathJax&#8217;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 @@ -222,6 +224,45 @@ document is processed.</p> <dl class="describe"> <dt> +<tt class="descname">positionToHash: true</tt></dt> +<dd><p>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 +<tt class="docutils literal"><span class="pre">#hash</span></tt> location from the page URL after typesetting for the page.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">showMathMenu: true</tt></dt> +<dt> +<tt class="descname">showMathMenuMSIE: true</tt></dt> +<dd><p>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 <tt class="docutils literal"><span class="pre">showMathMenuMSIE</span></tt>, but the latter is +now deprecated in favor of the MathJax contextual menu settings +for MathPlayer (see below).</p> +<p>If <tt class="docutils literal"><span class="pre">showMathMenu</span></tt> is <tt class="docutils literal"><span class="pre">true</span></tt>, 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.</p> +<p>Set this to <tt class="docutils literal"><span class="pre">false</span></tt> to disable the menu. When <tt class="docutils literal"><span class="pre">true</span></tt>, the +<tt class="docutils literal"><span class="pre">MathMenu</span></tt> configuration block determines the operation of the +menu. See <a class="reference internal" href="MathMenu.html#configure-mathmenu"><em>the MathMenu options</em></a> for +more details.</p> +<p>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.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">menuSettings: { ... }</tt></dt> <dd><p>This block contains settings for the mathematics contextual menu that act as the defaults for the user&#8217;s settings in that menu. @@ -267,9 +308,21 @@ to <tt class="docutils literal"><span class="pre">&quot;Browser&quot;</span></tt rather than the MathJax menu.</p> </dd></dl> -<p>There are also settings for <tt class="docutils literal"><span class="pre">format</span></tt>, <tt class="docutils literal"><span class="pre">renderer</span></tt>, and <tt class="docutils literal"><span class="pre">font</span></tt>, -but these are maintained by MathJax and should not be set by the -page author.</p> +<dl class="describe"> +<dt> +<tt class="descname">texHints: true</tt></dt> +<dd><p>This controls whether the &#8220;Show Source&#8221; 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 &#8220;Show Source&#8221; +and put it into a page that uses MathJax&#8217;s MathML input jax +and expect to get the same results as the original TeX. +(Without this, there may be some spacing differences.)</p> +</dd></dl> + +<p>There are also settings for <tt class="docutils literal"><span class="pre">format</span></tt>, <tt class="docutils literal"><span class="pre">renderer</span></tt>, <tt class="docutils literal"><span class="pre">font</span></tt>, +<tt class="docutils literal"><span class="pre">mpContext</span></tt>, and <tt class="docutils literal"><span class="pre">mpMouse</span></tt>, but these are maintained by +MathJax and should not be set by the page author.</p> </dd></dl> <dl class="describe"> @@ -353,12 +406,12 @@ does <strong>not</strong> cause a default configuration file to be loaded.</p> <li class="right" > <a href="index.html" title="Configuration Objects" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/index.html b/docs/html/options/index.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Configuration Objects &mdash; MathJax v1.1 documentation</title> + <title>Configuration Objects &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="next" title="The Core Configuration Options" href="hub.html" /> <link rel="prev" title="Common Configurations" href="../config-files.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="../config-files.html" title="Common Configurations" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -59,15 +59,15 @@ will see that <tt class="docutils literal"><span class="pre">config/default.js</ <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt>). Anything that is in <tt class="docutils literal"><span class="pre">config/default.js</span></tt> can be included in-line to configure MathJax.</p> <p>The structure that you pass to <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Config()</span></tt> is a -JavaScript object that includes name-value pairs giving the names of +JavaScript object that includes <cite>name:value</cite> 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.</p> <p>The MathJax components, like the TeX input processor, have their own -sections in the configuration object, labeled by the component name, -and using a configuration object as its value. The object is itself -a configuration object made up of name-value pairs that give the +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 <cite>name:value</cite> pairs that give the configuration options for the component.</p> <p>For example,</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> @@ -106,6 +106,7 @@ are categorized by the component they affect.</p> <ul> <li class="toctree-l1"><a class="reference internal" href="tex2jax.html">The tex2jax preprocessor options</a></li> <li class="toctree-l1"><a class="reference internal" href="mml2jax.html">The mml2jax preprocessor options</a></li> +<li class="toctree-l1"><a class="reference internal" href="asciimath2jax.html">The asciimath2jax preprocessor options</a></li> <li class="toctree-l1"><a class="reference internal" href="jsMath2jax.html">The jsMath2jax preprocessor options</a></li> </ul> </div> @@ -113,8 +114,10 @@ are categorized by the component they affect.</p> <ul> <li class="toctree-l1"><a class="reference internal" href="TeX.html">The TeX input processor options</a></li> <li class="toctree-l1"><a class="reference internal" href="MathML.html">The MathML input processor options</a></li> +<li class="toctree-l1"><a class="reference internal" href="AsciiMath.html">The AsciiMath input processor options</a></li> <li class="toctree-l1"><a class="reference internal" href="HTML-CSS.html">The HTML-CSS output processor options</a></li> <li class="toctree-l1"><a class="reference internal" href="NativeMML.html">The NativeMML output processor options</a></li> +<li class="toctree-l1"><a class="reference internal" href="SVG.html">The SVG output processor options</a></li> <li class="toctree-l1"><a class="reference internal" href="MMLorHTML.html">The MMLorHTML configuration options</a></li> </ul> </div> @@ -122,6 +125,7 @@ are categorized by the component they affect.</p> <ul> <li class="toctree-l1"><a class="reference internal" href="MathMenu.html">The MathMenu options</a></li> <li class="toctree-l1"><a class="reference internal" href="MathZoom.html">The MathZoom options</a></li> +<li class="toctree-l1"><a class="reference internal" href="MathEvents.html">The MathEvents options</a></li> <li class="toctree-l1"><a class="reference internal" href="FontWarnings.html">The FontWarnings options</a></li> </ul> </div> @@ -179,11 +183,11 @@ are categorized by the component they affect.</p> <li class="right" > <a href="../config-files.html" title="Common Configurations" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/jsMath2jax.html b/docs/html/options/jsMath2jax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The jsMath2jax Preprocessor &mdash; MathJax v1.1 documentation</title> + <title>The jsMath2jax Preprocessor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,10 +22,10 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The TeX input processor" href="TeX.html" /> - <link rel="prev" title="The mml2jax Preprocessor" href="mml2jax.html" /> + <link rel="prev" title="The asciimath2jax Preprocessor" href="asciimath2jax.html" /> </head> <body> @@ -39,9 +39,9 @@ <a href="TeX.html" title="The TeX input processor" accesskey="N">next</a> |</li> <li class="right" > - <a href="mml2jax.html" title="The mml2jax Preprocessor" + <a href="asciimath2jax.html" title="The asciimath2jax Preprocessor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -98,8 +98,8 @@ details on how to represent HTML code in this way.</p> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> - <p class="topless"><a href="mml2jax.html" - title="previous chapter">The mml2jax Preprocessor</a></p> + <p class="topless"><a href="asciimath2jax.html" + title="previous chapter">The asciimath2jax Preprocessor</a></p> <h4>Next topic</h4> <p class="topless"><a href="TeX.html" title="next chapter">The TeX input processor</a></p> @@ -130,14 +130,14 @@ details on how to represent HTML code in this way.</p> <a href="TeX.html" title="The TeX input processor" >next</a> |</li> <li class="right" > - <a href="mml2jax.html" title="The mml2jax Preprocessor" + <a href="asciimath2jax.html" title="The asciimath2jax Preprocessor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/mml2jax.html b/docs/html/options/mml2jax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The mml2jax Preprocessor &mdash; MathJax v1.1 documentation</title> + <title>The mml2jax Preprocessor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> - <link rel="next" title="The jsMath2jax Preprocessor" href="jsMath2jax.html" /> + <link rel="next" title="The asciimath2jax Preprocessor" href="asciimath2jax.html" /> <link rel="prev" title="The tex2jax Preprocessor" href="tex2jax.html" /> </head> <body> @@ -36,12 +36,12 @@ <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > - <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" + <a href="asciimath2jax.html" title="The asciimath2jax Preprocessor" accesskey="N">next</a> |</li> <li class="right" > <a href="tex2jax.html" title="The tex2jax Preprocessor" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -101,8 +101,8 @@ details on how to represent HTML code in this way.</p> <p class="topless"><a href="tex2jax.html" title="previous chapter">The tex2jax Preprocessor</a></p> <h4>Next topic</h4> - <p class="topless"><a href="jsMath2jax.html" - title="next chapter">The jsMath2jax Preprocessor</a></p> + <p class="topless"><a href="asciimath2jax.html" + title="next chapter">The asciimath2jax Preprocessor</a></p> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> @@ -127,17 +127,17 @@ details on how to represent HTML code in this way.</p> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > - <a href="jsMath2jax.html" title="The jsMath2jax Preprocessor" + <a href="asciimath2jax.html" title="The asciimath2jax Preprocessor" >next</a> |</li> <li class="right" > <a href="tex2jax.html" title="The tex2jax Preprocessor" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/options/tex2jax.html b/docs/html/options/tex2jax.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The tex2jax Preprocessor &mdash; MathJax v1.1 documentation</title> + <title>The tex2jax Preprocessor &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Configuration Objects" href="index.html" /> <link rel="next" title="The mml2jax Preprocessor" href="mml2jax.html" /> <link rel="prev" title="The Core Configuration Options" href="hub.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="hub.html" title="The Core Configuration Options" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Configuration Objects</a> &raquo;</li> </ul> </div> @@ -103,6 +103,21 @@ include text, not tags, as your math delimiters.</p> <dl class="describe"> <dt> +<tt class="descname">balanceBraces: true,</tt></dt> +<dd><p>This value determines whether <cite>tex2jax</cite> requires braces to be +balanced within math delimiters (which allows for nested dollar +signs). Set to <tt class="docutils literal"><span class="pre">false</span></tt> to get pre-v2.0 compatibility. When +<tt class="docutils literal"><span class="pre">true</span></tt>,</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="s">$</span><span class="nb">y </span><span class="o">=</span><span class="nb"> x^</span><span class="m">2</span><span class="nb"> </span><span class="nv">\hbox</span><span class="nb">{ when </span><span class="s">$</span>x &gt; 2<span class="s">$</span><span class="nb">}</span><span class="s">$</span>. +</pre></div> +</div> +<p>will be properly handled as a single expression. When <tt class="docutils literal"><span class="pre">false</span></tt>, +it would be interpreted as two searpate expressions, each with +improperly balanced braces.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">processEscapes: false</tt></dt> <dd><p>When set to <tt class="docutils literal"><span class="pre">true</span></tt>, you may use <tt class="docutils literal"><span class="pre">\$</span></tt> to represent a literal dollar sign, rather than using it as a math delimiter. When @@ -163,25 +178,33 @@ contexts.</p> not be processed by tex2jax (other than to look for the <tt class="docutils literal"><span class="pre">processClass</span></tt> pattern below). Note that this is a regular expression, and so you need to be sure to quote any <cite>regexp</cite> -special characters. The pattern is automatically preceeded by -<tt class="docutils literal"><span class="pre">'(^|</span> <span class="pre">)('</span></tt> and followed by <tt class="docutils literal"><span class="pre">')(</span> <span class="pre">|$)'</span></tt>, so your pattern will -have to match full words in the class name. Assigning an element -this class name will prevent <cite>tex2jax</cite> from processing its -contents.</p> +special characters. The pattern is inserted into one that +requires your pattern to match a complete word, so setting +<tt class="docutils literal"><span class="pre">ignoreClass:</span> <span class="pre">&quot;class2&quot;</span></tt> would cause it to match an element with +<tt class="docutils literal"><span class="pre">class=&quot;class1</span> <span class="pre">class2</span> <span class="pre">class3&quot;</span></tt> but not <tt class="docutils literal"><span class="pre">class=&quot;myclass2&quot;</span></tt>. +Note that you can assign several classes by separating them by the +vertical line character (<tt class="docutils literal"><span class="pre">|</span></tt>). For instance, with +<tt class="docutils literal"><span class="pre">ignoreClass:</span> <span class="pre">&quot;class1|class2&quot;</span></tt> any element assigned a class of +either <tt class="docutils literal"><span class="pre">class1</span></tt> or <tt class="docutils literal"><span class="pre">class2</span></tt> will be skipped.</p> </dd></dl> <dl class="describe"> <dt> <tt class="descname">processClass: &quot;tex2jax_process&quot;</tt></dt> <dd><p>This is the class name used to mark elements whose contents -<em>should</em> be processed by <cite>tex2jax</cite>. This is used to turn on -processing within tags that have been marked as ignored or skipped -above. Note that this is a regular expression, and so you need to -be sure to quote any <cite>regexp</cite> special characters. The pattern is -automatically preceeded by <tt class="docutils literal"><span class="pre">'(^|</span> <span class="pre">)('</span></tt> and followed by <tt class="docutils literal"><span class="pre">')(</span> -<span class="pre">|$)'</span></tt>, so your pattern will have to match full words in the class -name. Use this to restart processing within an element that has -been marked as ignored above.</p> +<em>should</em> be processed by <cite>tex2jax</cite>. This is used to restart +processing within tags that have been marked as ignored via the +<tt class="docutils literal"><span class="pre">ignoreClass</span></tt> or to cause a tag that appears in the <tt class="docutils literal"><span class="pre">skipTags</span></tt> +list to be processed rather than skipped. Note that this is a +regular expression, and so you need to be sure to quote any +<cite>regexp</cite> special characters. The pattern is inserted into one +that requires your pattern to match a complete word, so setting +<tt class="docutils literal"><span class="pre">processClass:</span> <span class="pre">&quot;class2&quot;</span></tt> would cause it to match an element with +<tt class="docutils literal"><span class="pre">class=&quot;class1</span> <span class="pre">class2</span> <span class="pre">class3&quot;</span></tt> but not <tt class="docutils literal"><span class="pre">class=&quot;myclass2&quot;</span></tt>. +Note that you can assign several classes by separating them by the +vertical line character (<tt class="docutils literal"><span class="pre">|</span></tt>). For instance, with +<tt class="docutils literal"><span class="pre">processClass:</span> <span class="pre">&quot;class1|class2&quot;</span></tt> any element assigned a class of +either <tt class="docutils literal"><span class="pre">class1</span></tt> or <tt class="docutils literal"><span class="pre">class2</span></tt> will have its contents processed.</p> </dd></dl> </div> @@ -227,12 +250,12 @@ been marked as ignored above.</p> <li class="right" > <a href="hub.html" title="The Core Configuration Options" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Configuration Objects</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/output.html b/docs/html/output.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>MathJax Output Formats &mdash; MathJax v1.1 documentation</title> + <title>MathJax Output Formats &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="The MathJax Community" href="community.html" /> - <link rel="prev" title="MathJax MathML Support" href="mathml.html" /> + <link rel="prev" title="MathJax AsciiMath Support" href="asciimath.html" /> </head> <body> @@ -38,9 +38,9 @@ <a href="community.html" title="The MathJax Community" accesskey="N">next</a> |</li> <li class="right" > - <a href="mathml.html" title="MathJax MathML Support" + <a href="asciimath.html" title="MathJax AsciiMath Support" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -51,65 +51,88 @@ <div class="section" id="mathjax-output-formats"> <span id="output-formats"></span><h1>MathJax Output Formats<a class="headerlink" href="#mathjax-output-formats" title="Permalink to this headline">ΒΆ</a></h1> -<p>Currently, MathJax can render math in two ways:</p> +<p>Currently, MathJax can render math in three ways:</p> <ul class="simple"> -<li>Using HTML-with-CSS to lay out the mathematics, or</li> +<li>Using HTML-with-CSS to lay out the mathematics,</li> +<li>Using <a class="reference internal" href="glossary.html#term-svg"><em class="xref std std-term">SVG</em></a> to lay out the mathematics, or</li> <li>Using a browser&#8217;s native MathML support.</li> </ul> -<p>These are implemented by the <cite>HTML-CSS</cite> and <cite>NativeMML</cite> output +<p>These are implemented by the <cite>HTML-CSS</cite>, <cite>SVG</cite> and <cite>NativeMML</cite> output processors.</p> <p>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 <tt class="docutils literal"><span class="pre">_HTML</span></tt>, then it is the HTML-CSS output processor, and if it ends in +<tt class="docutils literal"><span class="pre">_SVG</span></tt> then the SVG output processor will be used. If it ends in <tt class="docutils literal"><span class="pre">_HTMLorMML</span></tt>, then the NativeMML output processor will be chosen if the -browser supports it, otherwise HTML-CSS output will be used.</p> -<p>If you are performing your own in-line or file-based configuration, you -select which one you want to use by including either <tt class="docutils literal"><span class="pre">&quot;output/HTML-CSS&quot;</span></tt> -or <tt class="docutils literal"><span class="pre">&quot;output/NativeMML&quot;</span></tt> in the <cite>jax</cite> array of your MathJax configuration. -For example</p> +browser supports it well enough, otherwise HTML-CSS output will be used.</p> +<p>If you are performing your own in-line or file-based configuration, +you select which one you want to use by including either +<tt class="docutils literal"><span class="pre">&quot;output/HTML-CSS&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;output/SVG&quot;</span></tt>, or <tt class="docutils literal"><span class="pre">&quot;output/NativeMML&quot;</span></tt> in +the <cite>jax</cite> array of your MathJax configuration. For example</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">,</span><span class="s2">&quot;output/HTML-CSS&quot;</span><span class="p">]</span> </pre></div> </div> <p>would specify TeX input and HTML-with-CSS output for the mathematics in your document.</p> -<p>The HTML-CSS output processor produces high-quality output in all +<p>The <strong>HTML-CSS output processor</strong> produces high-quality output in all major browsers, with results that are consistent across browsers and operating systems. This is MathJax&#8217;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. (The -HTML-CSS processor has not yet been optimized for speed, so you can -expect some improvement in the future. Note that IE8 in &#8220;IE8 -standards mode&#8221; is an order of magnitude slower than any other browser -when processing math through the HTML-CSS output processor; see -<a class="reference internal" href="#html-css-with-ie8"><em>HTML-CSS with IE8</em></a> below for some strategies -to deal with this.)</p> -<p>The NativeMML output processor uses the browser&#8217;s internal MathML support (if -any) to render the mathematics. Currently, Firefox has native support -for MathML, and IE has the <a class="reference external" href="http://www.dessci.com/en/products/mathplayer/">MathPlayer plugin</a> for rendering +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&#8217;t have to have math fonts installed on their +computers; but this does introduce some printing issues in some +browsers.</p> +<p>The <strong>SVG output processor</strong> is new in MathJax version 2.0, and it uses +<cite>Scalable Vector Graphics</cite> 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 &#8220;IE9 standards mode&#8221;, 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 disadvantage of this mode is that it does not take +advantage of STIX fonts, and so only has access to the characters in +the web-based fonts, and it variable-width tables become fixed size +once they are typeset, and don&#8217;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.</p> +<p>The <strong>NativeMML output processor</strong> uses the browser&#8217;s internal MathML +support (if any) to render the mathematics. Currently, Firefox has +native support for MathML, and IE has the <a class="reference external" href="http://www.dessci.com/en/products/mathplayer/">MathPlayer plugin</a> 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&#8217;t recommend using the NativeMML output processor with Opera. Safari, +don&#8217;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&#8217;s implementation or IE with MathPlayer. Chrome, Konqueror, and most other browsers don&#8217;t support MathML natively, but may in the future, since MathML is part of the HTML5 specification.</p> -<p>The advantage of the NativeMML output Processor is its speed, since native -MathML support is much faster than using complicated HTML and CSS to lay -out mathematics, as the HTML-CSS output processor does. The disadvantage -is that you are dependent on the browser&#8217;s MathML implementation for your -rendering, and these vary in quality of output and completeness of -implementation. MathJax may rely on features that are not available in -some renderers (for example, Firefox&#8217;s MathML support does not implement -some of the named widths, such as <tt class="docutils literal"><span class="pre">negativethinmathspace</span></tt>). The results -using the NativeMML output processor may have spacing or other rendering -problems that are outside of MathJax&#8217;s control.</p> +<p>The advantage of the NativeMML output Processor is its speed, since +native MathML support is much faster than using complicated HTML and +CSS to lay out mathematics, as the HTML-CSS output processor does. +The disadvantage is that you are dependent on the browser&#8217;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&#8217;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&#8217;s control.</p> <div class="section" id="automatic-selection-of-the-output-processor"> <h2>Automatic Selection of the Output Processor<a class="headerlink" href="#automatic-selection-of-the-output-processor" title="Permalink to this headline">ΒΆ</a></h2> <p>Since not all browsers support MathML natively, it would be unwise to choose the NativeMML output processor unless you are sure of your audience&#8217;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, and HTML-CSS output otherwise. These -are the configuration files that end in <tt class="docutils literal"><span class="pre">_HTMLorMML</span></tt>.</p> +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 <tt class="docutils literal"><span class="pre">_HTMLorMML</span></tt>.</p> <p>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 <tt class="docutils literal"><span class="pre">&quot;MMLorHTML.js&quot;</span></tt> to @@ -120,14 +143,22 @@ the abilities of your user&#8217;s browser.</p> <span class="nx">jax</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;input/TeX&quot;</span><span class="p">]</span> </pre></div> </div> -<p>You can customize which choice to make on a browser-by-browser basis -or a global basis. See the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file or the +<p>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&#8217;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.</p> +<p>You can customize which choice MathJax makes on a browser-by-browser +basis or a global basis. See the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file or the <a class="reference internal" href="options/MMLorHTML.html#configure-mmlorhtml"><em>Configuring MMLorHTML</em></a> section for further -details. As an example, this configuration tells MathJax to use HTML-CSS -output rather than native MathML support for Firefox:</p> +details. As an example, this configuration tells MathJax to use +native MathML support rather than HTML-CSS output for Firefox:</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> - <span class="nx">MMLorHTML</span><span class="o">:</span> <span class="p">{</span> <span class="nx">prefer</span><span class="o">:</span> <span class="p">{</span> <span class="nx">Firefox</span><span class="o">:</span> <span class="s2">&quot;HTML&quot;</span> <span class="p">}</span> <span class="p">}</span> + <span class="nx">MMLorHTML</span><span class="o">:</span> <span class="p">{</span> <span class="nx">prefer</span><span class="o">:</span> <span class="p">{</span> <span class="nx">Firefox</span><span class="o">:</span> <span class="s2">&quot;MML&quot;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">});</span> <span class="nt">&lt;/script&gt;</span> <span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> @@ -135,11 +166,10 @@ output rather than native MathML support for Firefox:</p> <span class="nt">&lt;/script&gt;</span> </pre></div> </div> -<p>With this configuration, MathML output will be used only for IE with the -MathPlayer plugin (Firefox is the only other browser to have native MathML -support that is sufficient for use with MathJax). Note, however, that a -user can employ the MathJax contextual menu to select the other renderer if -he or she wishes.</p> +<p>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.</p> <p>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 @@ -147,37 +177,91 @@ 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.</p> </div> -<div class="section" id="html-css-with-ie8"> -<span id="id1"></span><h2>HTML-CSS with IE8<a class="headerlink" href="#html-css-with-ie8" title="Permalink to this headline">ΒΆ</a></h2> -<p>Internet Explorer 8 has at least eight different rendering modes in which -it can operate, and that are triggered by the <cite>DOCTYPE</cite> of the document -being viewed. Its &#8220;quirks&#8221; mode is its fastest mode, and its &#8220;IE8 -standards&#8221; mode is its slowest. This is the mode triggered by strict HTML -document types, and since most modern content management systems now -include a <cite>DOCTYPE</cite> that activates &#8220;standards&#8221; mode, IE8 will operate in -its slowest manner. This is particularly apparent when MathJax is used, -since IE8 in standards mode runs 20 to 30 times slower than it does in its -IE7 emulation mode, and 60 times slower than in quirks mode, on the sample -equations page in <tt class="docutils literal"><span class="pre">test/sample.html</span></tt>.</p> -<p>Most users find this speed reduction unacceptable when there is much -mathematics on the page. To overcome this problem, you may wish to -tell IE8 to use its IE7 emulation mode rather than its IE8 standards -mode. You can accomplish this by including the line</p> -<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;X-UA-Compatible&quot;</span> <span class="na">content=</span><span class="s">&quot;IE=EmulateIE7&quot;</span><span class="nt">&gt;</span> +<div class="section" id="automatic-line-breaking"> +<span id="automatic-linebreaking"></span><h2>Automatic Line Breaking<a class="headerlink" href="#automatic-line-breaking" title="Permalink to this headline">ΒΆ</a></h2> +<p>The HTML-CSS and SVG output processors implement (most of) the MathML3 +automatic line-breaking specification. (The NativeMML output +processor relies on the browser&#8217;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</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="s2">&quot;HTML-CSS&quot;</span><span class="o">:</span> <span class="p">{</span> <span class="nx">linebreaks</span><span class="o">:</span> <span class="p">{</span> <span class="nx">automatic</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">},</span> + <span class="nx">SVG</span><span class="o">:</span> <span class="p">{</span> <span class="nx">linebreaks</span><span class="o">:</span> <span class="p">{</span> <span class="nx">automatic</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">}</span> +<span class="p">});</span> +<span class="nt">&lt;/script&gt;</span> +</pre></div> +</div> +<p>to your page just before the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag that loads +<tt class="docutils literal"><span class="pre">MathJax.js</span></tt> itself.</p> +<p>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.</p> +<p>You can control what width is used to determine where the line breaks +shoud occur using the <tt class="docutils literal"><span class="pre">container</span></tt> parameter of the <tt class="docutils literal"><span class="pre">linebreaks</span></tt> +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 <a class="reference internal" href="options/HTML-CSS.html#configure-html-css"><em>HTML-CSS configuration</em></a> or +<a class="reference internal" href="options/SVG.html#configure-svg"><em>SVG configuration</em></a> pages for more details.</p> +<p>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 <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> as your input format, you can use the +<tt class="docutils literal"><span class="pre">linebreak=&quot;goodbreak&quot;</span></tt> and <tt class="docutils literal"><span class="pre">linebreak=&quot;badbreak&quot;</span></tt> attributes on +<tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> elements to help MathJax pick the best breakpoints for your +mathematics.</p> +</div> +<div class="section" id="html-css-with-ie"> +<span id="html-css-with-ie8"></span><h2>HTML-CSS with IE<a class="headerlink" href="#html-css-with-ie" title="Permalink to this headline">ΒΆ</a></h2> +<p>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.</p> +<p>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</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;X-UA-Compatible&quot;</span> <span class="na">content=</span><span class="s">&quot;IE=edge&quot;</span><span class="nt">&gt;</span> +</pre></div> +</div> +<p>at the top of the <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt> section of your HTML documents. Note +that this line must come at the beginning of the <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt>, before +any stylesheets, scripts, or other content are loaded.</p> +</div> +<div class="section" id="html-css-extensions"> +<span id="id1"></span><h2>HTML-CSS Extensions<a class="headerlink" href="#html-css-extensions" title="Permalink to this headline">ΒΆ</a></h2> +<p>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&#8217;t properly +centered, and can cause equation numbers to overlap the floating +content. To avoid this, you can specify the <cite>handle-floats</cite> extension +in the <cite>extensions</cite> array of your <cite>HTML-CSS</cite> configuration block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="s2">&quot;HTML-CSS&quot;</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;handle-floats.js&quot;</span><span class="p">]</span> +<span class="p">}</span> </pre></div> </div> -<p>at the top of the <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt> section of your HTML documents. This -lets you keep the strict <cite>DOCTYPE</cite> for validation purposes, while -still managing to get reasonable performance from Internet Explorer -8. Note that this line must come at the beginning of the <tt class="docutils literal"><span class="pre">&lt;head&gt;</span></tt>, -before any stylesheets or other content are loaded.</p> -<p>Alternatively, you can use the <cite>MMLorHTML</cite> configuration file -described above to select NativeMML output when possible, and request -that your users install the <a class="reference external" href="http://www.dessci.com/en/products/mathplayer/">MathPlayer plugin</a>, which will render -the mathematics much more quickly.</p> -<p>It appears that IE9 in IE9 standards mode may perform better than IE8, but -since IE9 is still in beta testing as of this writing, we have yet to see -exactly what the performance of MathJax in IE9 will be like.</p> +<p>This will use CSS that puts the displayed equations into elements that +work like tabel cells, and won&#8217;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.</p> +<p>See the <a class="reference internal" href="options/HTML-CSS.html#configure-html-css"><em>HTML-CSS configuration options</em></a> for +other options of the HTML-CSS output jax.</p> </div> </div> @@ -191,14 +275,16 @@ exactly what the performance of MathJax in IE9 will be like.</p> <ul> <li><a class="reference internal" href="#">MathJax Output Formats</a><ul> <li><a class="reference internal" href="#automatic-selection-of-the-output-processor">Automatic Selection of the Output Processor</a></li> -<li><a class="reference internal" href="#html-css-with-ie8">HTML-CSS with IE8</a></li> +<li><a class="reference internal" href="#automatic-line-breaking">Automatic Line Breaking</a></li> +<li><a class="reference internal" href="#html-css-with-ie">HTML-CSS with IE</a></li> +<li><a class="reference internal" href="#html-css-extensions">HTML-CSS Extensions</a></li> </ul> </li> </ul> <h4>Previous topic</h4> - <p class="topless"><a href="mathml.html" - title="previous chapter">MathJax MathML Support</a></p> + <p class="topless"><a href="asciimath.html" + title="previous chapter">MathJax AsciiMath Support</a></p> <h4>Next topic</h4> <p class="topless"><a href="community.html" title="next chapter">The MathJax Community</a></p> @@ -229,13 +315,13 @@ exactly what the performance of MathJax in IE9 will be like.</p> <a href="community.html" title="The MathJax Community" >next</a> |</li> <li class="right" > - <a href="mathml.html" title="MathJax MathML Support" + <a href="asciimath.html" title="MathJax AsciiMath Support" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/platforms/index.html b/docs/html/platforms/index.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Using MathJax in popular web platforms &mdash; MathJax v1.1 documentation</title> + <title>Using MathJax in popular web platforms &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="next" title="Installing MathJax in WordPress" href="wordpress.html" /> <link rel="prev" title="The FontWarnings extension" href="../options/FontWarnings.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="../options/FontWarnings.html" title="The FontWarnings extension" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -51,13 +51,14 @@ <div class="section" id="using-mathjax-in-popular-web-platforms"> <span id="platforms"></span><h1>Using MathJax in popular web platforms<a class="headerlink" href="#using-mathjax-in-popular-web-platforms" title="Permalink to this headline">ΒΆ</a></h1> -<p>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 -<a class="reference external" href="http://www.mathjax.org/community/mathjax-in-use/#web-apps">web applications and integrations</a> list of the +<p>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 <a class="reference external" href="http://www.mathjax.org/community/mathjax-in-use">web applications</a> list of the <a class="reference external" href="http://www.mathjax.org">MathJax web site</a>.</p> <p>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.</p> +use MathJax by modifying the theme or template for your wiki or blog, +as explained below.</p> <div class="section" id="using-mathjax-in-a-theme-file"> <h2>Using MathJax in a Theme File<a class="headerlink" href="#using-mathjax-in-a-theme-file" title="Permalink to this headline">ΒΆ</a></h2> <p>Most web-based content-management systems include a theme or template @@ -164,11 +165,11 @@ instructions for these are given via the links below.</p> <li class="right" > <a href="../options/FontWarnings.html" title="The FontWarnings extension" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/platforms/movable-type.html b/docs/html/platforms/movable-type.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Using MathJax in Movable Type &mdash; MathJax v1.1 documentation</title> + <title>Using MathJax in Movable Type &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Using MathJax in popular web platforms" href="index.html" /> <link rel="next" title="MathJax TeX and LaTeX Support" href="../tex.html" /> <link rel="prev" title="Installing MathJax in WordPress" href="wordpress.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="wordpress.html" title="Installing MathJax in WordPress" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Using MathJax in popular web platforms</a> &raquo;</li> </ul> </div> @@ -129,12 +129,12 @@ your pages. If you need to adjust the configuration, see <li class="right" > <a href="wordpress.html" title="Installing MathJax in WordPress" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Using MathJax in popular web platforms</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/platforms/wordpress.html b/docs/html/platforms/wordpress.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Installing MathJax in WordPress &mdash; MathJax v1.1 documentation</title> + <title>Installing MathJax in WordPress &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="../_static/mj.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <!--<script type="text/javascript" src="../../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="../index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="../index.html" /> <link rel="up" title="Using MathJax in popular web platforms" href="index.html" /> <link rel="next" title="Using MathJax in Movable Type" href="movable-type.html" /> <link rel="prev" title="Using MathJax in popular web platforms" href="index.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="index.html" title="Using MathJax in popular web platforms" accesskey="P">previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" accesskey="U">Using MathJax in popular web platforms</a> &raquo;</li> </ul> </div> @@ -131,12 +131,12 @@ your pages. If you need to adjust the configuration, see <li class="right" > <a href="index.html" title="Using MathJax in popular web platforms" >previous</a> |</li> - <li><a href="../index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="../index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="index.html" >Using MathJax in popular web platforms</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/queues.html b/docs/html/queues.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Using Queues &mdash; MathJax v1.1 documentation</title> + <title>Using Queues &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="up" title="Synchronizing your code with MathJax" href="synchronize.html" /> <link rel="next" title="Using Signals" href="signals.html" /> <link rel="prev" title="Using Callbacks" href="callbacks.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="callbacks.html" title="Using Callbacks" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" accesskey="U">Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> @@ -319,12 +319,12 @@ finishes everything it has queued when it was loaded. For example,</p> <li class="right" > <a href="callbacks.html" title="Using Callbacks" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" >Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/search.html b/docs/html/search.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Search &mdash; MathJax v1.1 documentation</title> + <title>Search &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -23,7 +23,7 @@ <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="_static/searchtools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <script type="text/javascript"> jQuery(function() { Search.loadIndex("searchindex.js"); }); </script> @@ -38,7 +38,7 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" accesskey="I">index</a></li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -86,11 +86,11 @@ <li class="right" style="margin-right: 10px"> <a href="genindex.html" title="General Index" >index</a></li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{Load:[0,0,1],Preloading:[0,0,1],Log:[18,0,1],ExecuteHooks:[28,0,1],setScript:[12,0,1],Subclass:[38,0,1],Delay:[28,0,1],Init:[38,0,1],getAllJax:[37,0,1],Interest:[29,0,1],Translate:[39,0,1],Config:[37,0,1],addElement:[12,0,1],Reprocess:[37,0,1],Styles:[0,0,1],ExecuteHook:[29,0,1],loadTimeout:[0,0,1],Resume:[17,0,1],Update:[37,0,1],loadComplete:[0,0,1],formatError:[37,0,1],call:[17,0,1],getJaxByInputType:[37,0,1],PreProcess:[37,0,1],Post:[29,0,1],has:[38,0,1],Signal:[28,0,1],Set:[18,0,1],Insert:[37,0,1],addText:[12,0,1],TextNode:[12,0,1],Augment:[38,0,1],Clear:[18,0,1],Register:[39,0,1],Remove:[18,0,1],Element:[12,0,1],Queue:[28,0,1],NoInterest:[29,0,1],Suspend:[17,0,1],getJaxByType:[37,0,1],Push:[17,0,1],Typeset:[37,0,1],fileURL:[0,0,1],wait:[17,0,1],reset:[28,0,1],getJaxFor:[37,0,1],LoadHook:[0,0,1],Process:[37,0,1],Text:[45,0,1],loadError:[0,0,1],Startup:[39,0,1],SourceElement:[45,0,1],can:[38,0,1],File:[18,0,1],MessageHook:[29,0,1],isJax:[37,0,1],filterText:[18,0,1],isa:[38,0,1],Require:[0,0,1]}},terms:{represent:51,reprocess:[37,45,48],mathjax_msie_fram:18,four:[1,14],prefix:[12,20,15],asymp:46,blacktriangledown:46,webfont:[6,42,20],whose:[12,7,48,5,31,37,24],html5:[50,14,15,7],under:[41,35],preprocess:[51,37,30,48],slowest:50,worth:7,digit:15,gimel:46,everi:[19,37,15,7],risk:20,mskip:46,arcco:46,govern:[20,14,7],dotplu:46,affect:[14,35,15,46,37,45,26],eqnarrai:46,cmd:22,bigodot:46,ominu:46,math:[30,5,7,11,12,13,14,15,40,18,19,20,39,22,23,27,3,43,33,34,35,10,37,46,41,42,44,47,48,49,50,51],nparallel:46,properti:[12,0,32,38,28,29,17,31,39,45,10,37,24],nsubseteqq:46,direct:[42,6,14,41,35],consequ:11,second:[0,14,35,28,31,53,49,5,6,21,22,7,19,10,41,24,1],ngeq:46,even:[0,41,42,28,31,17,46,3,49,48,40,20,21,7,19,23,51,37,29,1],hide:48,prejax:[51,22],neg:46,children:41,"new":[30,4,12,13,14,15,18,19,20,25,23,45,26,28,37,10,7,38,29,35,24,1,47,48,49,51],net:20,mhtml:2,told:49,limsup:46,elimin:22,behavior:[14,35,22,7],lessapprox:46,blacktriangleright:46,here:[12,29,32,28,31,1,3,48,19,20,39,22,37,45],met:30,lneqq:46,path:[40,0,7,20],noundefin:[40,20,46],interpret:[46,20,35],nrightarrow:46,forum:[20,4],mbox:46,rceil:46,circleddash:46,mathstrut:46,unix:35,org:[14,15,2,3,47,48,46,20,33,8,50,36,7],thinmathspac:[20,41],unit:15,highli:23,describ:[12,46,14,35,28,20,44,53,30,48,40,6,21,7,31,50,51,37],would:[5,6,9,11,12,14,40,17,20,21,22,45,25,27,28,31,37,33,34,35,7,38,46,42,43,53,47,48,50,51,52,1],afterward:31,readi:[40,19,39,30,32],ltime:46,varlambda:46,call:[0,2,3,46,6,7,9,14,17,18,19,20,25,22,24,26,27,28,29,31,34,35,10,37,38,39,5,42,43,44,45,1,47,48,49,11,51,52],recommend:[20,51,35,50],vcenter:46,preview:[5,43,51,27,22],type:[0,2,3,5,8,10,12,14,40,19,20,39,22,45,37,33,36,7,46,41,24,1,48,49,50,51],until:[0,27,29,1,5,31,39,22,7,19,43,37],notin:46,displaymath:[5,7],relat:[0,15],notic:46,warn:[0,14,22,6],jpg:[5,43,21,27],loss:7,hold:[0,21,22,34,51,37],unpack:[20,35],must:[0,14,42,35,20,44,17,46,30,7,18,5,6,25,22,34,49,50,41,29,53],fbox:[46,15],join:[19,46],centerdot:46,setup:[23,20,41],work:[12,13,14,35,15,31,46,3,4,48,19,20,41,33,49,23,50,7,38],cc0000:[53,22],tag_nam:35,root:[0,15,30,18,46,7],overrid:[38,6,10,39,24],mathmenu:[42,53,47,40,11,7,26],give:[29,42,20,53,3,19,6,21,7,25,26],cirit:7,indic:[0,7,35,31,17,46,30,19,20,29,39,22,45,10,37,24,51],impair:[23,7],hline:46,want:[4,5,14,40,16,18,19,20,22,24,28,31,35,36,7,38,46,42,1,48,50,52],setminu:46,end:[0,5,41,15,2,50,46,30,4,40,8,19,36,7,1],quot:[5,42,15,22],hom:46,heartsuit:46,how:[0,2,3,4,5,6,8,14,40,17,18,20,21,22,27,28,29,43,37,33,34,35,7,46,42,47,49,11,51],disappear:[5,43,27],answer:[4,48],verifi:[20,35,4],config:[2,30,5,6,7,8,9,10,11,14,40,18,19,20,25,22,24,26,27,3,31,33,34,36,37,39,46,42,43,53,47,48,50,52,1],renewcommand:46,updat:[37,35,15,2,1,48,14,22,7,45],showrender:47,recogn:20,lai:[50,51],diagdown:46,after:[0,42,28,31,17,1,3,47,18,19,20,39,22,48,49,35,51,7,29,26],befor:[0,2,30,4,46,7,8,14,17,18,19,20,21,22,25,28,29,31,34,37,38,39,5,41,42,44,1,48,49,50,51],wrong:41,startuphook:[19,37],parallel:[46,1,30,15],averag:51,alignedat:46,attempt:[0,41,47],third:[1,41],leftarrow:46,receiv:[29,14,35,31,19,20,39,49,7,38],greasekit:3,maintain:[14,49,4,19,31,22],environ:[5,20,46,25,4],enter:[41,48,46,20,51,7],textnod:12,order:[29,14,42,35,20,44,17,1,30,7,18,5,6,27,22,31,50,43,37,38,51],oper:[0,5,6,9,11,15,17,18,19,25,23,27,43,34,42,39,29,32,35,31,44,1,47,48,50,52],approxeq:46,softwar:[23,20,51],over:[12,0,42,15,46,47,48,40,20,22,34,51,7],fall:[46,6,1,35,20],becaus:[19,14,42,1,31,46,3,18,5,20,21,7,51,41,29,25,48],boxtim:46,suspend:[19,17,1,29],textrm:46,appar:[50,1],afil:31,flexibl:[21,1,14],vari:50,smallint:46,fit:[19,47],fix:[14,35,15,7],strang:41,better:[15,47,40,20,33,8,50,7],boxminu:46,drawback:50,upharpoonleft:46,persist:4,comprehens:44,easier:[29,14,35,1,46,41,38],moveleft:46,them:[12,0,5,14,35,15,20,17,46,41,40,6,25,1,7,31,19,51,37,29,53],thei:[0,3,4,5,6,7,9,14,15,40,16,17,18,19,20,21,22,25,26,27,29,30,31,34,35,37,39,46,41,42,43,44,53,47,48,49,11,51,52,1],qualiti:[23,50,51],safe:[12,20,3,48],"break":[46,49,1,41,15],mtext:[46,20,15],wedg:46,widetild:46,choic:[50,37,8],dbinom:46,leftharpoondown:46,timeout:[0,15,28],each:[5,7,35,28,29,46,30,49,18,40,20,48,19,51,37,1],debug:18,side:[20,18,25,22,8],mean:[5,14,2,29,16,30,46,3,49,48,40,31,27,22,19,23,43,7],leqq:46,createel:3,resum:[17,1],leqalignno:46,mathopen:46,looparrowleft:46,network:[14,35,15,40,20,36,7],goe:[46,49,1],iint:46,newli:[12,19,38],crucial:35,predefin:22,content:[2,30,5,8,10,12,14,15,20,21,22,3,37,36,7,38,40,41,44,1,48,50,51],method:[12,0,14,38,28,29,17,1,3,49,18,19,31,39,7,45,10,37,24,48],reader:[40,23,7,15],forth:32,impract:35,multilin:46,situat:[7,15,48],free:[45,4],ineffici:[38,22],reconfigur:14,lneq:46,angl:46,moment:[20,10,35],isn:[19,39],iphon:15,isa:38,subtl:48,confus:14,mathbb:46,rang:51,mathbf:46,render:[41,15,30,47,5,20,22,23,50,51,52,33],independ:7,yourcolleg:35,restrict:[46,35,22],hook:[19,0,28,29],instruct:[21,20,14,3,2],alreadi:[0,28,48,46,3,4,18,19,31,49,7,38,1],primari:[50,14],tooltop:42,top:[32,35,46,20,50,7],sometim:[20,7,35],underlin:[46,15],master:49,too:[46,42,15,3,5,20],similarli:[0,37,35],john:31,listen:[19,29,37,28],thickapprox:46,namespac:[20,3,15,28,48],tool:[1,35],tagind:25,embellish:15,compressor:15,somewhat:49,technic:44,past:[29,14,15,19,49,23],filesmatch:35,provid:[12,0,41,28,2,31,17,46,18,19,20,29,21,48,49,23,51,37,38,1],eqalignno:46,tree:[20,21],"final":[14,31,46,20,21,23,51],project:[44,7,4],matter:[19,33],mathtt:46,ldotp:46,modern:[23,6,50,13],mind:[46,20,7,2],manner:50,increment:17,seem:[31,41],rightrightarrow:46,ldot:46,person:31,latter:[16,19,21,51,7,26],juli:13,expens:50,simplifi:15,though:[28,46,49,21,22,51],object:[0,30,6,12,13,16,17,18,19,21,22,24,26,28,31,34,10,37,38,39,29,32,42,44,45,53,47,48,49,11,51,1],gzip:15,regular:[5,20,22],letter:[20,35],grave:46,don:[14,15,31,1,3,48,19,6,41,7,50,51,37],dom:[12,45,1,48,19,49,39,22,37,24],doe:[46,41,35,28,31,52,45,3,19,20,11,22,7,23,50,10,37,24,51],declar:[41,42,53,47,6,11,34],tfrac:46,unchang:[14,52,48],sum:[46,28],came:35,delaystartupuntil:[37,30,22,7],random:[20,35],lnapprox:46,syntax:[46,38,15],mediawiki:2,isopera:37,outerhtml:15,shownam:31,asynchon:48,involv:[49,7,4],consolid:23,layout:45,firstnam:31,mathchoic:46,ismsi:[37,30],menu:[13,41,42,15,30,47,40,11,22,34,8,35,50,36,45,51],explain:[40,49,14,7,26],configur:[0,3,5,6,7,8,9,10,13,14,15,18,19,20,25,22,23,24,26,27,30,31,33,34,35,36,37,39,40,41,42,43,21,46,11,50,51,52],apach:35,theme:[7,2,8],rich:23,folder:[20,42,35],stop:42,infti:[46,51],amazon:20,report:[41,22,4],circeq:46,subseteq:46,fadeouttim:6,bar:[46,38,28],patch:[7,35],reload:47,bad:15,replacechild:3,neq:46,respond:[29,22,4],undefinedfamili:42,dashrightarrow:46,scriptscriptstyl:46,precneqq:46,result:[14,42,28,31,45,1,48,46,20,41,7,50,10,37,24,51],respons:[29,10,15,28],fail:[0,15,31,39,50,26],best:[0,14,35,1,50,51,7],awar:[46,0,1,41],subarrai:46,varinjlim:46,wikipedia:[44,3],circledcirc:46,gneqq:46,awai:[7,35],approach:[31,51,2,48],attribut:[12,15,53,46,43,21,51,7],never:[35,0,7,3,39],extend:[23,51],extens:[0,30,5,6,14,15,40,19,20,25,22,26,27,3,43,37,33,34,7,39,46,32,44,53,47,48,1],add:[5,14,2,17,46,40,6,39,22,45,50,38,53],preprocessor:[5,14,43,46,41,30,32,40,20,27,22,7,51,37,48,26,33],intop:46,cot:46,cow:38,howev:[14,35,31,30,53,3,4,18,46,20,22,48,50,51,7,38,1,26],against:29,seri:[1,21],com:[7,35],varpsi:46,pre:[5,14,35,40,6,7],foral:46,can:[0,3,4,5,6,7,12,14,15,40,17,18,19,20,25,22,23,24,26,28,29,30,31,32,33,35,10,37,38,39,46,41,42,44,53,11,48,49,50,51,1],foobar:38,delic:11,innerhtml:[3,48],height:[46,15,47],wider:4,sqsupset:46,speak:[16,51],chrome:[42,50,37,3,15],three:[41,35,28,31,1,6,21,49,51,39],been:[0,3,4,5,14,17,18,19,20,24,28,30,31,33,10,7,29,35,1,48,49,50],trigger:[40,50,7,22,34],interest:[19,29,44,4,49],basic:13,tini:46,quickli:[23,50,7,4],underrightarrow:46,regul:1,xxx:46,ani:[0,3,4,5,6,7,9,11,14,40,17,18,19,20,25,22,45,27,28,29,30,31,34,35,37,38,46,41,42,43,1,47,48,49,50,52],emploi:50,dash:[53,42],tanh:46,servic:[14,35,15,20,36,7],showcontext:47,diamondsuit:46,sourceforg:14,weren:14,dashboard:36,"3px":53,succeq:46,have:[0,2,30,4,5,6,14,15,40,19,20,11,22,45,26,28,29,3,31,37,35,7,38,46,41,42,1,48,49,50,51],nexist:46,tabl:41,cong:46,sever:[0,14,35,46,48,40,31,51,24,1],amout:18,disabl:[11,14,42],incorrectli:[20,14,15],perform:[30,4,6,14,15,17,18,19,39,22,45,28,31,37,7,29,32,44,1,48,49,50],suggest:[6,4],make:[0,4,46,6,14,15,16,17,19,20,22,23,27,43,37,42,7,38,5,41,35,53,47,48,49,50,51,1],complex:[50,21],split:46,synch:14,lrcorner:46,unsafewindow:3,complet:[0,14,35,28,31,44,17,1,30,49,48,40,20,39,22,7,19,50,37,29,45],longmapsto:46,hand:[32,18,25,22,51,41,33],fairli:[21,14],rais:[46,15],mkern:46,ignorepast:29,unlhd:46,squar:[46,21,15],redefin:[6,10,39,24],kept:19,thu:[14,28,1,19,31,45],inherit:[16,38,10,24,45],client:42,thi:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,45,46,47,48,49,50,51,52,53],idotsint:46,programm:38,everyth:[40,46,1,37,7],settimeout:[31,28],left:[41,35,32,30,18,46,49,25,22,8,36,26],processclass:5,identifi:[12,20,46,51,29],just:[46,41,35,28,2,31,53,40,20,22,8,23,51,7,29,1],yen:46,mathbin:46,human:20,coprod:46,yet:[41,17,1,48,19,49,50],languag:[44,49,51],noscript:5,onload:[32,3,30,31,22,7],errorset:[40,22],easi:[35,33],interfer:[40,7],had:[19,20,14,7],myconfig:[19,31],els:[31,3,48],save:[36,7,53,8],hat:46,take:[12,0,14,28,2,31,1,30,4,48,46,6,25,49,7],sanit:18,applic:[23,20,30,2],loadtimeout:0,quirk:50,preserv:31,negativethinmathspac:50,background:[46,53,15],sqsubset:46,specif:[0,7,28,2,29,44,17,1,32,5,31,39,22,48,50,51,37,45],deprec:7,arbitrari:46,zoom:[13,41,15,40,22,34,7],leftrightarrow:46,underli:50,www:[35,3,47],right:[11,41,42,44,17,1,3,18,46,25,22,8,35,51,7,26],old:19,famili:[46,0,53,42],deal:50,autobold:46,begin:[19,35,46,30,48,5,25,50,51,7,1],percentag:[11,42,22],donald:44,successfulli:[0,31],interc:46,dddot:46,bottom:[7,8],subclass:[29,32,24,39,45,10,38],circ:46,tracker:[20,4],overcom:[50,49],condit:[0,30],foo:[38,28],core:[1,30,46,22,51,37,26],plu:[40,29,30],bold:[46,21,25,26],insecur:20,popular:[20,33,2],colleg:35,repositori:[14,35,15],post:[29,42,30,4,18,19,49,39],"super":[38,15],llless:46,obj:12,nwarrow:46,slightli:[46,8],surround:[20,11,42],unfortun:[20,35],current_theme_templ:2,joomla:2,span:[27,5,43,21,22,51,33],downharpoonright:46,geramond:46,encod:46,two:[19,1,49,46,40,20,21,22,53,50,7,25,26],down:[36,35,22],shortparallel:46,wrap:38,ntriangleright:46,stackrel:46,nsupseteq:46,git:[20,14,35,15],suffici:[46,20,25,52,50],checkmark:46,transform:51,ngtr:46,avail:[0,2,5,6,14,19,20,11,22,23,45,27,43,35,7,38,41,42,1,47,48,50,51],width:[41,47,46,20,25,50],reli:[0,14,44,1,3,48,31,11,50],wordpress:[2,8],editor:8,rightthreetim:46,lnsim:46,form:[41,42,44,18,46,20,25,22,51,7],offer:[14,15,4],forc:[7,42],epsilon:46,hear:[19,29],downdownarrow:46,"true":[46,14,42,28,29,30,47,5,32,22,7,11,9,37,38],maxmacro:25,reset:[47,28],displayalign:22,intern:[0,41,29,44,17,1,46,22,50,10,37,24,51],tell:[35,3,48,20,50,7],moveright:46,more:[40,6,8,10,14,15,17,20,21,22,23,28,31,37,33,35,36,7,38,39,29,42,44,53,11,48,49,50,51,52,1],retir:14,nnn:35,featur:[13,41,35,4,48,19,31,34,50,38],rfloor:46,exist:[42,28,46,20,35,38],ddot:46,backsim:46,triangleq:46,check:[0,14,35,31,18,46,20,29,38],when:[0,30,5,6,7,8,9,11,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,31,32,33,34,35,10,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,1],abovewithdelim:46,role:51,test:[12,13,14,35,49,30,3,48,19,20,41,7,50,37,38],tie:[30,28],smallsmil:46,scriptstyl:46,searrow:46,mathel:2,intend:[38,22],munderov:51,gvertneqq:46,consid:[0,14,15,46,4,5,20,51,37,45,1],omega:46,outdat:4,longer:[29,14,35,18],bullet:46,anywher:7,tex2jax_ignor:[5,15],ignor:[5,29],time:[0,3,4,46,6,12,37,15,18,19,25,22,28,31,34,7,39,29,35,1,48,50,51],push:[28,44,17,1,30,48,31,37],"5kb":25,mathrm:46,doteq:46,emulateie7:50,skip:[5,35],consum:18,webkit:15,skin:2,displayind:22,millisecond:[0,42,28,47,18,6,34,37],decid:[7,47],middl:20,depend:[28,30,48,31,8,50,7,52],head:[2,3,48,20,8,50,36,7],newenviron:46,readabl:44,nearrow:46,varpi:46,certainli:35,vee:46,decis:50,text:[2,30,5,6,8,12,14,15,40,18,19,20,21,22,23,45,25,27,3,31,33,36,7,46,42,43,1,11,48,50,51],succnsim:46,sourc:[13,14,42,1,3,47,40,41,19,23,35,51,37,45,11],string:[0,28,29,46,18,5,53,21,22,19,37,45,25],word:[5,51,7],room:25,dim:46,getjaxfor:[19,37,24],administr:[2,8],level:[20,7,35,32],did:31,item:[11,42,47,46,31,21],cooki:[12,30,15],div:[12,46,51,33,48],prevent:[46,27,42,15,43,47,5,20,25,22,7],mmlorhtml:[40,50,52,22,26],slower:50,compens:11,sign:[46,14,5,20,51,7],cost:[46,20,7,38],pmb:46,rightarrowtail:46,histori:[19,29,30,44],xandi:38,dotsi:46,dotsm:46,appear:[46,32,35,31,47,18,19,20,22,48,8,50,7,45],dotso:46,repli:19,dotsc:46,dotsb:46,current:[0,42,35,2,29,45,20,8,50,36,7,38],backepsilon:46,ampersand:46,inlinemath:[46,14,48,5,20,7],defici:41,amalg:46,mathsiz:46,gener:[46,7,20,52,30,40,6,33,31,51,37,45],mfrac:[20,51],modif:[1,7],address:[20,35],along:[44,1,18,19,33,10,24],wait:[0,7,35,15,28,29,44,17,1,3,48,19,31,30,39,22,49,37],box:[46,0,15,6],html_head:2,shift:22,bot:46,queue:[29,32,28,49,16,17,1,30,48,31,44,37],overriden:37,digamma:46,varlimsup:46,commonli:20,macintosh:37,semant:38,succsim:46,extra:[19,46,51,15,22],circumv:35,modul:[0,36,32],prefer:[14,42,47,20,50,35,52],iepro7:3,veebar:46,visibl:[5,43,1,27,48],marker:46,myid:53,mobil:[14,15,7],arrowvert:46,memori:[49,45],bigr:46,visit:20,todai:44,subvers:[20,35],stylesheet:[0,32,28,29,17,30,48,49,22,8,50],handler:[0,32,44,3,30,48,49,22,51,7],current_skin:2,bigl:46,bigm:46,eqcirc:46,checkout:35,bigg:46,inputjax:[32,16,45,30,39,10,38],capit:16,reduct:50,peopl:20,bigtriangleup:46,enhanc:[51,15],minscaleadjust:42,visual:[40,23,7],accept:[31,28,48],hphantom:46,easiest:[19,20,35,28,31],graphic:35,prepar:[1,7],cap:46,uniqu:53,pmatrix:46,whatev:[46,2,38,1,48,19,24],cal:46,purpos:[31,51,50],getjaxbytyp:37,downharpoonleft:46,subseteqq:46,varprojlim:46,backslash:[46,25,22],topic:[16,13,7],critic:35,sharp:46,occur:[0,41,35,28,31,17,1,3,47,18,19,20,39,22,7,49,37,29,48],eqsim:46,pink:46,alwai:[28,16,1,46,31,7],multipl:[46,1,14],trianglelefteq:46,write:[29,1,48,20,23,50],pure:41,mathsf:46,tild:46,xhtml:[20,41],map:51,book:44,max:46,clone:35,spot:46,usabl:35,mac:[11,37,42,22],mai:[0,2,3,4,46,6,8,14,16,19,20,11,22,24,29,31,37,35,7,38,5,41,42,45,1,48,49,50,51],data:[12,0,32,42,28,31,38,19,20,39,45,35,10,37,24],grow:2,newlin:[46,15,18],vartheta:46,preceq:46,explicit:[0,7,22,20],uparrow:46,produc:[6,14,19,20,25,22,23,45,26,28,31,33,50,10,7,29,42,24,47,48,11,51],inform:[0,42,2,29,44,18,40,31,11,22,19,51,7],"switch":[51,14,35,15,33],preced:[31,7,22],combin:[0,14,15,46,40,20,50,7],block:[11,14,42,15,20,30,3,46,6,39,22,51,7],approx:46,comfort:35,lsh:46,tex2math:33,still:[19,41,28,2,29,44,1,40,22,34,50],pointer:38,ttf:35,dynam:[0,32,13,1,3,48,20,22,49,23,51,7],entiti:[46,41,15],amssymbol:[40,20,46,14,7],conjunct:14,group:[0,41,4],monitor:4,polici:35,ignoreclass:5,platform:[23,13,2,20],window:[32,28,6,3,47,18,31,48,37],"05em":46,bookmarklet:7,main:[46,14,35,1,16,38,53,47,40,20,32,22,7,10,37,24,51],mathexampl:48,non:[12,0,17,46,20,51],within:[0,14,35,15,28,20,16,46,41,30,7,48,5,6,25,33,31,49,51,37,38],myinputjax:39,initi:[0,14,49,46,30,47,32,5,20,39,22,7,19,51,37,45,1],safari:[50,37,3,15],half:31,now:[14,35,15,44,30,20,50,7],discuss:[12,35,7,3,4],nor:[6,21],term:[20,14,7,18],name:[0,30,5,6,7,12,14,15,40,18,19,20,21,22,24,25,26,28,29,3,31,35,10,37,38,39,46,41,42,45,53,50],opera:[50,52,37,3,15],boxdot:46,drop:35,separ:[11,14,35,53,18,19,20,41,22,7,1,26],messagestyl:[6,22,18],confid:23,varsupsetneqq:46,compil:31,domain:[20,7,35],replac:[0,14,15,41,3,48,20,25,7,51,37,38,39],individu:[45,15,26,48],continu:[0,14,46,19,49,7,1],happen:[41,35,17,1,46,49,51],shown:[46,21,22,47,48],accomplish:[20,7,3,35,50],"3rd":20,space:[15,48,46,20,22,50,9,51],intermix:30,internet:[0,15,46,3,47,18,40,31,22,50,51,7,26],formula:[48,22,34,23,50,51],correct:[31,14,3],she:50,simeq:46,earlier:[20,1,7],migrat:[13,14],ajax:[0,7,16,1,30,32,19,31,39,37],mime:[41,45,20,39,10,37,24],underleftarrow:46,brower:46,ord:46,care:[46,20,3,26],ntrianglelefteq:46,couldn:31,x00b1:20,synchron:[0,28,13,44,17,1,3,48,19,31,30,49,37,29],mscarri:41,thing:[46,20,21,48],place:[0,42,6,46,4,48,19,20,29,25,22,35,7,38,1,33],mathop:46,unwis:50,think:[46,22,48],frequent:[5,19],first:[19,41,42,1,28,31,46,3,49,48,5,20,29,21,22,8,35,10,7,24,51],origin:[38,46,35,29,17,3,48,19,20,45,10,7,24],lfloor:46,oni:35,directli:[35,15,1,3,48,46,31,39,8,51],onc:[0,35,28,29,46,30,48,40,20,39,33,1],arrai:[30,46,6,9,37,15,17,19,21,22,24,25,26,27,28,29,31,33,10,7,39,5,42,43,11,50,51,52],yourself:[35,20,17,3,46,31,22,7],submit:4,open:[13,41,35,47,46,20,8,23,36],ios4:15,size:[11,42,15,53,48,46,25,7],given:[12,0,38,15,2,29,17,46,53,18,19,31,21,1,22,45,28,51,37,24,39],ifmodul:35,referenec:37,leftrightharpoon:46,circl:46,white:53,conveni:[20,38,22],hub:[0,30,5,6,7,9,11,14,40,16,18,19,20,25,22,24,26,27,3,31,33,34,37,39,46,32,42,43,45,1,47,48,50,51,52],especi:51,copi:[14,35,3,4,20,41,7,23,37,39],specifi:[30,46,6,9,11,12,14,15,17,19,20,21,22,25,28,29,31,37,34,35,7,5,42,53,47,49,50,51,52,1],github:[14,35],enclos:[51,53,42,22],quad:46,than:[0,30,5,6,7,8,9,14,15,40,17,19,20,39,22,23,45,26,28,29,35,10,37,38,46,41,42,44,53,48,49,50,51,1],serv:[20,15],wide:[23,51,35],instanc:[12,7,38,1,39,37,45],underbrac:46,were:[19,14,45,48],posit:[17,42,15],stub:39,browser:[30,5,6,12,13,14,15,40,20,11,22,23,45,26,3,37,41,33,35,7,46,32,42,44,47,49,50,51,52],preccurlyeq:46,sai:[17,3,28],lnot:46,doublecup:46,nleftrightarrow:46,argument:[29,28,1,31,38,26],hskip:46,doctyp:[20,41,50],engin:[23,13],techniqu:[14,3],npreceq:46,consortium:23,note:[0,3,46,6,8,37,20,21,22,45,25,29,31,35,7,39,5,42,53,47,48,50,51,52,1],x2260:20,jsmath:[13,51,33],noth:[20,28,31],channel:[19,44],updownarrow:46,surd:[46,15],sure:[46,14,35,15,29,1,4,48,5,20,50,7],windowset:47,normal:[5,28,46,3,40,20,22,51,53],buffer:25,compress:7,beta:[46,50,7],pair:[12,0,28,53,5,21,19,10,37,24,25,26],fileurl:0,beth:46,hotfix:7,latex:[13,44,46,5,20,22,23,51,7],renam:14,textarea:5,later:[29,41,42,28,17,1,46,31,7,37],drive:35,typeset:[0,30,5,15,18,19,11,22,23,45,27,3,43,34,37,32,42,31,44,1,47,48,49,51],badg:4,sigma:46,mathfrak:46,showmathmenu:42,show:[46,35,20,4,48,40,6,21,22,31,36,47,26],autoreset:28,parentnod:[3,15],unprocess:[37,45,48],concurr:30,permiss:[20,35],hack:50,isfirefox:37,corner:[32,22,18],xml:[23,44],onli:[0,2,3,4,5,6,14,15,40,20,21,22,23,45,29,31,37,35,10,7,46,41,42,44,53,48,50],explicitli:[46,14,15,31,5,20,22,7,38],activ:[14,35,28,44,4,48,49,41,50,51],written:[20,8],inlinedelimit:46,otim:46,black:46,offici:7,geq:46,mypic:[5,43,21,27],nearli:[40,46,7,26],variou:[0,42,2,29,16,53,18,19,6,11,10,7,51,26],get:[12,13,41,42,15,28,31,30,1,3,18,46,20,29,11,22,48,35,50,7,38],cannot:46,ncong:46,downarrow:46,nsim:46,requir:[0,14,28,46,3,40,31,39,7,19,23,51,37,24,1],truli:48,prime:46,lceil:46,mathpunct:46,consist:[46,50,1,21,41],hostil:20,intermitt:[32,18],shortmid:46,retypeset:48,where:[0,30,4,46,6,12,14,18,19,20,25,45,28,31,37,35,10,7,40,32,42,24,53,48,49,51],wiki:[20,51,7,3,2],often:[46,20,53,51],lozeng:46,ismac:[37,30],concern:[51,37],infinit:25,detect:[15,28],parent:[12,38],enumer:46,label:[47,26],enough:[1,21],between:[46,7,15,28,31,1,47,19,20,50,51,37,45],maltes:46,"import":[0,35,15,1,40,49,19,7],across:[44,50],absenc:2,longleftrightarrow:46,vdot:46,screen:[0,15,48,1,18,40,23,7,24],negmedspac:46,come:[14,35,1,3,40,31,41,50,51,7],leftleftarrow:46,img:[27,53,3,5,43,21],timout:0,pertain:20,audienc:50,inconsist:14,overbrac:46,improv:[14,15,4,22,50,7],among:7,color:[46,53,21,15,22],operatornam:46,period:[0,32,35],colon:[46,53],cancel:28,"70kb":7,bigcirc:46,msrow:41,damag:20,needlessli:31,myserv:7,skew:46,mark:[0,41,46,5,20,33,51,53],addit:[0,14,15,28,20,17,46,48,40,6,41,1,22,31,19,10,37,24,53,45],succapprox:46,fade:6,arcsin:46,resolut:23,processenviron:5,breve:46,texfont:6,blacktriangl:46,those:[46,6,37,17,19,20,21,22,23,45,28,29,31,10,7,39,40,41,35,24,53,48,51,1],"case":[46,14,42,28,31,16,38,53,3,48,19,20,21,22,45,35,51,7,24,1,26],kappa:46,tostr:28,oldstyl:46,addtext:12,invok:50,invoc:7,margin:25,opera10:42,advantag:[50,1,14,7,2],barwedg:46,leadsto:46,henc:35,worri:[19,51],destin:37,updatemath:48,bigwedg:46,develop:[14,35,44,4,41,7],author:[14,18,39,22,34,23,51],media:[53,7,35],postjax:[51,22],same:[5,14,35,15,29,46,8,27,40,20,25,19,49,43,7,24,1],html:[2,30,5,6,7,9,11,12,13,14,15,40,16,19,20,21,22,24,26,27,3,43,32,33,35,36,37,46,41,42,44,53,47,48,49,50,51,52],pad:[12,53],knuth:44,mathvari:51,document:[0,14,35,44,13,16,46,3,48,5,20,41,22,7,23,50,51,37,24,33],bring:51,finish:[44,49,1,3,48],vvdash:46,nest:[41,15,32],assist:[40,7],longleftarrow:46,capabl:[16,23,50],formaterror:37,mani:[46,7,15,49,53,5,31,37,1],extern:[0,32,31,1,19,49,37],submenu:[22,47,8],appropri:[46,19,39,33,10,51],macro:[15,46,20,25,22,7,26],markup:[46,0,51,41,44],leftharpoonup:46,overwithdelim:46,without:[0,14,42,46,19,31,41,11,51,7],model:[13,32,35,16,30,46,50,51,38],bigotim:46,stixfont:6,mml2jax:[41,43,40,20,22,51,26],loaderror:0,rest:[0,41,1,48,20,23,51],flavor:[40,7],speed:[50,51,14,15,7],versu:1,mathzoom:[40,53,34,26],nleqq:46,except:[40,20,49],littl:[0,29],blog:[20,51,7,2],treatment:46,yuicompressor:15,earli:[7,15],hover:[47,22,34],around:[46,7],read:[14,35,15,21,19,20,41,7],outermost:21,boldsymbol:46,messsag:18,getjaxbyinputtyp:37,moo:38,world:[23,31,7],lasterror:37,mod:46,sum_:51,blackberri:15,cdot:46,integ:37,server:[14,42,15,3,40,20,35,7],either:[0,14,35,2,29,16,53,3,19,20,21,7,34,50,37,52,25],output:[3,46,9,11,13,14,15,19,20,39,22,24,26,37,41,33,7,38,40,32,42,44,45,53,47,48,50,51,52],rollov:15,manag:[12,32,35,2,31,44,30,18,20,50,51,45],lesssim:46,node:12,respect:[11,42,28],constitut:16,pod:46,slice:28,easili:[23,20,51],definit:[0,42,15,53,47,40,25,34,23,11],shoveright:46,inputid:45,dashleftarrow:46,mathcal:46,complic:[50,21,41,52],refer:[13,7,35,20,45,3,48,19,6,29,39,31,49,37,38],power:[1,4],inspect:37,broken:51,thinspac:46,found:[0,20,4,31,22,10],regexp:5,"throw":[24,10,39,3],trianglerighteq:46,comparison:[1,37],underwai:1,ddddot:46,act:[46,44,1,19,31,25,22,51],industri:44,processor:[46,41,42,1,44,53,30,47,40,20,25,50,9,7,52,51,26,11],hookrightarrow:46,nobreakspac:46,routin:[12,0,49,31,39,10,37,24],nsupseteqq:46,effici:[38,48],elementari:41,lessdot:46,triangledown:46,compos:41,rightharpoondown:46,mathbackground:46,your:[0,2,3,4,5,6,7,8,9,11,13,14,15,40,20,25,22,23,27,31,33,34,35,36,37,46,41,42,43,44,21,1,47,48,49,50,52],compon:[0,30,46,14,40,16,19,20,23,24,26,37,41,10,7,38,29,32,53,47,49,51],log:[46,20,35,18],area:[25,18],fontwarn:[6,22,26],lor:46,strict:[50,35],compliant:[14,15],interfac:[35,2,20,8,23,36],lot:[19,25,35],lambda:46,programmat:[51,33],cloudfront:20,buggi:46,categor:26,faster:[50,7,15],pull:35,mathml:[13,41,15,44,45,46,3,51,40,20,11,10,52,8,23,50,9,7,24,36,26],furthermor:[1,14,22,7],possibl:[0,41,35,15,28,6,53,18,40,20,22,31,50,51,7,38,1],"default":[0,30,5,6,7,9,11,14,40,18,20,25,22,24,26,27,28,43,33,34,35,10,37,39,46,42,47,50,51,52],processescap:[5,46,14,7],buildrel:46,notag:46,embed:41,connect:[40,20,51,7,31],taylor:20,creat:[0,30,4,12,18,19,39,45,28,31,10,38,29,32,35,44,24,1,47,49,51,53],certain:[19,29,49],leftrightsquigarrow:46,risingdotseq:46,varliminf:46,file:[0,2,3,46,6,7,8,10,14,15,17,18,19,20,21,22,24,26,28,29,30,31,33,36,37,39,40,35,44,45,53,49,50,51,52,1],outputjax:[32,16,45,30,39,24],fill:[50,52],again:[46,0,37,45,48],iiiint:46,googl:4,pmod:46,event:[0,15,44,3,48,19,49,22,51],wai:[19,14,35,28,2,31,1,3,18,5,20,51,27,22,48,50,43,7,29,39],you:[1,2,3,4,5,6,7,8,9,11,14,15,16,17,18,19,20,25,22,23,24,26,27,28,30,31,33,35,36,37,38,39,40,41,42,43,21,46,47,48,49,50,51,52,53],trash:45,sequenc:[13,7,35,17,46,30,19,49,37],symbol:[46,20],dashv:46,track:[51,4],menuset:[40,22,34],reduc:[46,7],mathcolor:46,lbrace:46,directori:[0,42,15,49,44,45,30,18,40,20,39,22,19,35,10,7,24],descript:[27,43,3,5,6,32,22],lbrack:46,hello:31,calle:38,potenti:1,escap:25,dst:37,negthickspac:46,lvertneqq:46,all:[0,2,30,5,6,7,13,14,15,40,18,19,20,39,22,23,26,27,28,29,3,31,32,37,38,46,41,35,43,44,1,49,50,51],consider:7,illustr:48,dollar:[5,20,46,14,7],abil:[50,51,14,35,15],follow:[5,14,42,15,28,31,16,46,30,53,48,40,20,21,19,35,51,7,38,39,26],alt:[3,22],disk:[40,20,7,35],multlinewidth:25,scr:46,articl:44,init:38,program:[32,2,49,16,45,1,30,20,23,51,38],smile:46,cgi:0,introduc:[20,7],liter:5,multlin:[46,25],vert:46,far:[0,29,35,18],varrho:46,"1px":[12,46,53],verb:46,mechan:[29,28,17,1,30,19,49,38],difficult:[31,41,49],loadcomplet:[0,37,39,7],veri:8,preferredfont:42,fourth:1,list:[2,30,46,6,8,9,36,37,16,19,20,25,22,24,27,28,43,34,35,10,7,5,42,45,1,47,48,11,51,52],"_html":50,emul:50,adjust:[42,3,48,11,8,36,7],plain:46,small:[42,15,18,46,25,51],preceed:5,dimens:15,getalljax:[37,48],lll:46,tex:[2,3,5,6,7,8,9,10,13,14,15,40,19,20,25,22,23,26,27,32,33,35,36,37,39,46,41,42,44,1,48,50,51],zero:17,design:[41,3,4,40,23,36],pass:[0,14,15,28,29,17,1,30,47,19,31,51,37,38,26],overlin:46,further:[17,51,39,1,50],what:[0,4,46,6,13,37,15,20,11,22,23,27,28,43,34,35,7,5,41,42,47,48,50,51],sub:32,section:[3,5,6,9,11,14,15,40,25,22,26,27,31,37,33,34,36,7,46,41,42,43,47,50,52],advanc:[16,13,23,7],abl:[14,42,28,2,20,3,48,19,6,22,8,23,35,36,7],delet:42,version:[13,14,35,15,48,30,3,4,32,40,20,39,7,34,45,10,37,24],sup:46,"public":[29,35],hasn:[0,10,14,24,18],full:[0,5,15,16,3,48,40,31,22,23,7],themselv:[20,37,30,21,32],geqslant:46,modular:[23,41],ggg:46,standard:[19,35,44,46,40,20,23,50,51,7,53],modifi:[13,14,2,48,46,18,40,20,39,7,19,37,24],valu:[0,30,46,6,9,12,15,17,19,21,22,25,26,27,28,31,34,37,38,5,41,42,43,53,47,48,11,51,52,1],search:[23,13,37,4],sender:19,prior:[46,22],amount:[6,25,28],action:[0,7,28,29,32,17,46,3,18,19,31,30,39,44,34,49,51,37,48,1],mathjax_wikipedia:3,mml_htmlormml:[14,2,3,40,20,8,50,36,7],magnitud:50,llap:46,via:[0,2,30,40,6,14,15,18,19,20,39,45,26,28,3,34,35,7,38,41,42,1,51],shorthand:48,filenam:[31,14,3,7],href:[46,21,15],inappropri:19,emptyset:46,simbl:3,decrement:17,establish:40,select:[41,35,42,47,40,11,50,37],proceed:[1,21],x41:46,distinct:16,ctrl:22,regist:[0,7,29,44,30,19,49,39,10,37,24,51],rightsquigarrow:46,taken:[19,46,1,48,50],imath:46,ispc:[37,30],vec:46,flat:46,diamond:46,desir:[40,38,3,35],mlongdiv:41,ital:[0,22],flag:22,aleph:46,particular:[12,0,7,35,28,31,44,17,53,46,20,29,22,49,50,51,37,38],known:1,upsilon:46,mathml3:41,cach:[19,7],showmathmenumsi:[40,11,15],none:[29,27,42,28,43,5,31,22,51,7],outlin:15,det:46,dev:4,widehat:46,remain:[40,44],paragraph:[46,6,51,48,20],caveat:[20,35],def:[46,25,38],deg:46,scan:[37,22],myspan:21,challeng:40,registr:39,share:[20,7,35,4],templat:[36,7,2,8],succneqq:46,minimum:[37,42,15],unreli:14,explor:[0,15,46,3,47,18,40,31,22,50,51,7,26],phrase:[46,20],mathinput:48,huge:46,cours:[1,14,41,7],goal:23,awkward:38,secur:[20,3,35],rather:[0,30,46,6,9,14,15,17,19,20,39,22,23,45,26,28,7,38,5,41,35,53,48,49,50,51,1],anoth:[29,35,17,1,18,19,49,10,48,51,26],showmathmath:11,csc:46,snippet:[12,13,27,43,4,5,6,21,22,37],ddagger:46,stix:[42,15,44,46,6,35,51,7],simpl:[50,21,22,18],css:[0,3,46,6,9,13,14,15,20,11,22,24,26,37,41,33,34,35,7,40,32,42,44,45,53,47,48,50,51,52],unabl:6,resourc:15,referenc:6,mtabl:40,variant:44,reflect:[30,48],vdash:46,mstack:41,impliedbi:46,associ:[11,42,28,45,48,31,39,35,10,37,24,51],welcom:4,lhd:46,footer:7,onto:[44,20,1,37,48],ambigu:16,caus:[0,41,35,1,31,45,46,47,18,5,20,32,25,22,7,19,51,37,29,39,48],callback:[0,32,28,29,16,17,1,30,48,19,31,39,44,49,37,45],firefox3:42,merror:53,unrhd:46,help:[13,14,35,4,20,47,50,7],soon:[7,3,22,48],trade:[50,7],through:[46,14,35,15,29,1,47,19,49,41,50,51,7,38,26],hierarchi:[7,35],paramet:[0,30,46,12,14,15,17,18,20,25,22,24,26,27,28,29,31,37,10,7,38,39,40,43,45,48],style:[12,0,42,15,13,44,46,30,47,18,5,6,21,22,34,11,51,37,45,53],arial:[46,42],border:[12,46,53],x221a:41,processupdatetim:37,x221e:51,late:[44,3],isreadi:[32,30],pend:17,amsmathaddit:1,mathplay:[50,3,15,47,22],might:[0,14,35,31,1,4,19,20,25,7,51,41],alter:[5,48],good:[1,3,4],"return":[12,0,41,38,28,29,17,1,49,18,19,31,39,48,45,10,37,24],textstyl:46,hslash:46,getelementbyid:48,rlap:46,mathscr:46,unlik:[23,7,39],bigcup:46,ntriangleleft:46,iff:46,x2212:[20,51],fulli:[20,1,41],unicod:[46,6,41,42],x2211:51,subsystem:30,originaltext:45,weight:[21,38],hard:[35,15,4,40,20,7],realli:[31,22],nless:46,expect:[46,50,1,7,22],beyond:4,orient:[16,38,32,30],"try":[35,4,19,20,39,38],shortcom:49,skiptag:5,print:[23,53,35],occurr:49,msie:[11,37,52],foreground:53,availablefont:[6,7,42],safari3:42,ast:46,offsetx:42,symbian:15,mml:[32,52,40,20,10,45,51],reason:[0,41,31,1,3,47,18,46,20,25,50,37,39],base:[14,42,35,2,49,16,30,3,32,6,39,45,23,50,7,38],put:[0,14,35,49,46,20,7,26],mathr:46,offseti:42,basi:[50,7,52],succnapprox:46,stanard:46,drupal:2,msbm10:20,showprocessingmessag:[22,26],perhap:[31,7],bumpeq:46,elementjax:[32,16,30,39,10,45],stixgener:[46,42],getelementsbytagnam:3,assign:[5,31],major:[23,50,7,3],notifi:19,boxplu:46,feel:4,exchang:44,lastnam:31,number:[0,2,40,6,14,15,18,20,21,22,45,25,28,31,37,10,7,39,32,35,24,1,50],fadeoutstep:6,done:[17,1,30,20,51,7],least:[50,51,37,7],blank:[29,28],stabl:[20,7,35],miss:[46,28],differ:[46,7,35,28,31,1,48,19,20,49,50,51,37,38],script:[0,2,30,5,8,10,12,14,15,40,19,20,39,22,24,3,37,33,36,7,46,35,45,1,48,50,51],interact:[23,20,51,7,45],smoother:6,construct:[51,1],statement:[1,28],illeg:[21,15,7],store:[12,29,14,42,15,28,45,1,48,31,32,33,7,10,37,24,51],option:[5,6,8,9,13,14,40,20,21,22,25,26,27,43,37,33,34,7,38,39,46,42,47,11,51,52],nleftarrow:46,triangleleft:46,ntrianglerighteq:46,selector:[53,22,18],tex2jax_process:5,part:[5,41,35,28,49,46,8,3,40,20,25,19,23,50,51,7,38,1],pars:[46,15],binom:46,cosh:46,kind:51,aaa:25,prebuilt:20,whenev:[29,41,35],remot:35,remov:[29,7,15,48,45,18,5,22,51,37,24],dtd:20,bridg:[14,45],arrang:28,ffff88:53,comput:[35,37,42],nleqslant:46,packag:[44,7,35,33],expir:12,"null":[12,0,32,42,15,28,29,38,3,18,6,39,22,48,45,10,37,24],built:[13,14,3,50],equival:[12,28,1,48,40,31,21],lim:46,self:[20,41,15],ell:46,also:[3,4,5,12,14,40,16,18,19,20,11,22,45,28,31,35,7,38,46,41,42,44,47,48,49,51],brack:46,build:20,brace:46,distribut:[20,36,14,35,7],appendchild:[12,3],addel:12,reach:7,react:29,most:[19,32,35,15,2,44,30,53,3,40,20,39,28,50,7,38],plan:20,rho:46,alpha:46,rhd:46,vardelta:46,clear:[29,42,28,30,18,19],tpl:2,exp:46,latest:[14,35,2,3,4,48,46,20,33,8,50,36,7],leftroot:46,cdata:15,nshortparallel:46,carefulli:[21,42,48],cdn:[14,35,15,2,3,48,46,20,33,8,50,36,7],finv:46,particularli:[40,50,35],rightleftarrow:46,font:[0,46,6,13,14,15,18,20,21,22,23,25,35,7,11,42,44,53,47,48,49,51],find:[7,4,48,6,33,8,50,51,37],preremoveclass:22,execut:[0,28,29,17,1,30,19,31,51,7],pretti:35,solut:[20,51,35,4],delayedx:28,queu:[17,1,7,28,29],factor:[11,42,15,22],noerror:[40,20,46],tagsid:[25,26],precnsim:46,express:[19,29,1,48,5,25,22],strut:46,nativ:[41,16,3,40,11,23,50,51,52],mainten:14,greasemonkei:[7,3],konqueror:[50,37],restart:[5,17,1,7,35],ie9:[50,35,15],ie8:[50,15],ie7:50,acut:46,vmatrix:46,common:[13,14,2,20,44,46,41,40,6,21,7,37,39],set:[0,30,5,6,7,9,12,14,15,40,18,19,20,21,22,45,25,26,27,28,29,3,31,33,34,35,37,38,46,32,42,43,44,53,47,48,49,11,51,52,1],overrightarrow:46,startup:[13,7,15,48,30,1,3,32,19,39,22,37],see:[0,30,4,5,6,7,8,10,14,15,40,17,19,20,11,22,26,27,28,29,31,33,34,35,36,37,46,41,42,43,44,53,47,48,49,50,51,1],sec:46,arg:46,ams_hml:7,disadvantag:50,langl:46,inconveni:14,someth:[46,35,4,48,5,20,22],particip:4,won:[1,7,35,15],subscript:[46,15],experi:22,altern:[0,46,31,50,51,38],numer:[37,41],complement:46,javascript:[0,2,3,46,6,8,11,13,14,16,19,20,21,22,23,45,25,26,28,31,34,36,7,38,40,32,42,44,53,47,48,49,50,51,1],isol:15,mailbox:[19,44],bmatrix:46,consumpt:15,distinguish:10,longrightarrow:46,errat:7,classnam:3,popul:30,varsigma:46,last:[0,35,28,17,53,46,37,26],delimit:[46,14,15,5,20,51,7],hyperlink:51,nvdash:46,context:[5,47,22,28],overset:46,hbar:46,whole:[49,37,48],load:[0,2,3,46,7,10,13,14,15,17,18,19,20,39,22,23,24,28,29,30,31,33,36,37,40,32,35,44,1,48,49,50,51],markdown:51,simpli:[5,14,35,28,43,17,46,48,40,31,27,22,7,23,37,39,33],point:[46,17,7,20],instanti:38,schedul:31,usemathmlspac:9,header:[7,35,2,8],suppli:[37,45,22,28],bigve:46,mistak:21,zeta:46,gneq:46,devic:[14,15,7],due:14,empti:[32,42,28,1,30,22,51],otherwis:[0,7,28,46,18,40,20,32,8,50,37,38],strategi:50,invis:35,fire:[30,7,3,31],imag:[14,42,15,43,3,27,5,6,21,23,35,7],coordin:[17,51,1],understand:[40,51],demand:40,urcorn:46,convers:46,blacksquar:46,look:[12,46,41,42,28,2,29,53,4,18,5,20,48,8,35,51,37,26],solid:[12,46,53],pitchfork:46,lvert:46,"while":[12,0,14,35,20,52,46,3,19,6,41,22,49,50,51,7,29,1],blacktriangleleft:46,nprec:46,abov:[12,46,14,42,15,28,20,1,3,48,5,6,22,31,35,50,7,38],circlearrowright:46,bowti:46,everyon:19,loop:[25,45],pack:15,subsect:39,measuredangl:46,vartriangl:46,eqslantless:46,biguplu:46,itself:[46,14,35,1,28,29,17,53,30,32,19,41,22,7,45,51,37,38,39,26],overleftarrow:46,limit:[12,0,41,46,25,7],rightarrow:46,xleftarrow:46,shorten:18,shorter:15,redisplai:18,conflict:[51,15],upuparrow:46,optim:[50,15],domin:44,alert:[19,31,1,28],jsmath2jax:[27,15,26,33],temporari:7,user:[3,4,46,6,13,18,19,20,11,22,23,28,33,34,35,7,40,41,42,47,48,50,51],robust:[19,44],stack:25,recent:[23,3],lower:[32,15,16,30,18,46,22],task:46,older:[7,35],entri:[44,17,53,15],searchabl:23,ngeqq:46,textit:46,curvearrowleft:46,normals:46,scriptsiz:46,fallingdotseq:46,explan:20,rvert:46,obscur:[15,18],press:22,amp:[46,15],regardless:48,cup:46,setscript:12,blacklozeng:46,ffeeee:46,input:[3,46,8,9,36,14,15,19,20,39,22,24,25,26,37,32,33,10,7,38,40,41,44,45,1,48,50,51],subsequ:[46,39],sin:46,oslash:46,format:[13,14,42,44,45,46,11,40,20,21,22,23,50,10,41,24,51],big:[46,35,26],moodl:2,tomathml:[40,45],game:46,insert:[27,28,3,5,43,39,22,8,36,37,24,51],bit:[11,38],diagup:46,semi:53,varkappa:46,signal:[29,7,28,49,16,30,32,19,31,39,44,37],altough:31,resolv:15,collect:[31,53,45,1,28],api:[16,13,23,20],mathrel:46,swarrow:46,scrip:14,gtrless:46,creation:[10,30],some:[2,3,46,6,14,16,17,19,20,39,22,23,24,26,28,31,37,35,10,7,38,40,41,42,45,1,11,48,50,51,52],back:[6,35,45],emph:46,global:[16,50,32,28,48],urgent:7,sampl:[35,49,53,30,48,19,20,22,50],instal:[13,14,42,15,20,35,46,6,8,23,50,7],scale:[23,11,42,15,22],substitut:25,mathemat:[0,3,5,6,8,10,11,7,15,40,19,20,25,22,23,24,27,43,33,34,35,36,37,39,46,41,42,44,45,1,47,48,50,51],larg:[46,0,14,7],prod:46,reproduc:48,sqsubseteq:46,tex2jax:[5,14,15,48,46,3,32,40,20,41,22,51,7,26],machin:[44,35],garamond:46,previou:[31,1,29,28,18],run:[0,3,5,6,9,37,17,19,20,25,22,27,28,30,43,35,7,29,41,42,31,1,11,48,49,50,51,52],doteqdot:46,odot:46,step:[6,51,30,2,20],hookleftarrow:46,varsubsetneq:46,impos:35,ngeqslant:46,reappear:18,materi:[15,48],dialog:15,rangl:46,succcurlyeq:46,gamma:46,file3:1,file2:[0,1],file1:[0,1],file4:1,bmod:46,msam10:20,prec:46,notat:[44,46,20,23,51,7],isjax:37,chang:[11,14,42,15,2,48,3,47,18,20,25,7,35,51,37,45],announc:49,triangl:46,question:[20,39,4],fast:[14,15,7],custom:[46,15,18,40,20,23,50],adjac:15,perp:46,includ:[0,2,30,5,6,7,9,11,14,15,40,16,19,20,21,22,23,25,26,27,28,3,31,32,33,34,35,10,37,39,46,41,42,43,53,47,48,50,51,52,1],suit:[6,14,41,7,20],nativemml:[41,52,47,40,11,50,51,24,26],overleftrightarrow:46,ulcorn:46,properli:[12,0,14,35,15,20,45,1,3,48,6,41,31,37,38],poster:29,atop:46,loadhook:[0,37,31],serif:[46,0,53,42],link:[14,35,15,2,20,16,6,49,7],translat:[51,10,39,24,15],delta:46,line:[46,14,35,15,2,30,3,5,20,27,7,50,51,41,26],enspac:46,rmoustach:46,qquad:46,divideontim:46,geqq:46,similar:[49,35,28],enlarg:34,constant:[19,25],doesn:[19,42,28,45,46,3,40,22,35,7,38],repres:[12,27,20,53,18,5,6,21,22,23,43,24,51],mathdiv:[12,31,1,48],tbinom:46,home:0,phantom:46,iiint:46,titl:[20,48],sequenti:[49,1,30],invalid:[46,21],llcorner:46,toaudibl:45,bracket:[46,21,22],shoveleft:46,xrightarrow:46,department:35,supseteq:46,nice:3,delayclear:42,msup:[20,51],alttext:43,varsubsetneqq:46,eval:28,newcommand:46,svn:[20,14,35],rightharpoonup:46,land:46,mimetyp:[45,10,39,24],svg:[51,15],supseteqq:46,depth:46,dot:46,leak:45,scroll:36,prototyp:38,code:[0,3,4,5,8,12,13,14,40,17,19,20,21,22,27,28,29,30,31,37,7,46,32,43,44,53,48,49,11,1],partial:46,queri:51,tiddlywiki:2,edu:35,privat:[49,39,35],elsewher:48,friendli:20,send:[19,29,7],becam:44,sens:51,sent:[19,29,37,44],actiontyp:42,unzip:35,gnsim:46,xxxxxxxx:[20,35],mous:[51,47,42,15,34],tri:[46,0,14,42],ischrom:37,mathit:46,button:35,geograph:7,fewer:40,nleq:46,userscript:3,maction:[42,15],pleas:[21,4],impli:[46,41],smaller:[40,0,15],fortun:19,arctan:46,natur:[23,20,46,35,51],varupsilon:46,download:[0,14,35,15,6,20,22,51,7],hspace:46,click:[42,47,40,11,22,34,8,35,51,7],append:[12,35],compat:[44,50,7,15,22],index:[20,35,2],access:[46,35,15,2,31,45,1,47,40,20,29,23,7,38],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],backprim:46,vargamma:46,closur:[31,28,48],leq:46,intercept:20,let:[14,35,41,3,47,20,21,22,50,37,52],sinh:46,becom:[14,35,28,1,4,19,41,38],sinc:[0,46,14,15,40,17,19,20,25,22,28,37,7,38,29,41,53,11,48,49,50,51,1],tex4ht:51,rtime:46,convert:[13,41,28,46,3,18,5,33,23,51,24],sqcap:46,larger:[40,20,51,7],technolog:[40,23,7,4],zscale:22,circledast:46,typic:[5,46,10,7,35],honor:35,chanc:[5,19,29,20],firefox:[35,15,3,50,37,52],rgroup:46,appli:[46,35,7,38],iskonqueror:37,lessgtr:46,"boolean":37,smallmatrix:46,cloud:[14,7],from:[0,2,30,46,7,10,13,14,15,18,19,20,25,22,24,27,29,3,31,33,35,36,37,38,39,5,32,42,43,45,1,47,48,50,51],zip:[20,35,15],commun:[19,13,4,20],chi:46,doubl:[40,7,25,22,34],upgrad:[6,35,4,13],varphi:46,next:[46,49,45,48],implic:35,few:[46,20,35,33],msqrt:[20,51],simpler:18,newmath:48,src:[5,14,2,43,46,3,27,48,40,20,21,33,7,8,50,36,37,1],nsubseteq:46,doublebarwedg:46,projlim:46,"4ac":20,actual:[12,0,41,28,17,46,48,19,31,22,7,10,37,24,1],versionatleast:37,account:12,alik:3,retriev:12,augment:[38,10,39,24],aperson:31,thin:25,control:[5,27,42,35,20,46,7,47,40,6,25,22,34,43,50,9,37,52,53,11],tau:46,tar:35,process:[0,3,5,7,12,13,14,15,40,17,18,19,20,25,22,24,26,27,30,31,33,10,37,39,46,41,43,45,1,48,50,51,52],dfrac:46,preformat:15,high:[23,50,51],tag:[2,30,46,8,14,15,19,20,21,22,24,25,26,3,43,37,33,10,7,5,41,35,45,48,51],tan:46,delai:[0,7,42,28,29,47,18,40,22,34,19,37],fontwarns:53,gcd:46,importat:16,getelementsbytagnamen:3,subdirectori:[35,10,24,45],instead:[46,14,35,15,31,17,1,48,19,20,51,7],class4:38,class2:38,smallfrown:46,sim:46,class1:38,simplesup:38,frac:46,overridden:[42,24,18,39,45,10,38],mspace:[46,20,41,15],anothermethod:38,frak:46,filtertext:18,redund:[38,22],essenti:[40,46,51,7,38],light:[46,38],correspond:[37,42,33,7],element:[30,5,6,12,37,15,40,19,20,21,22,24,29,32,10,7,38,46,41,42,45,53,48,49,51,1],issu:[0,41,4,18,22,51,7],unaccept:50,allow:[2,3,46,14,15,18,19,20,21,22,23,25,31,34,35,7,38,29,41,42,44,53,47,11,1],fallback:[35,42],mjx:12,fastest:50,move:[35,14,42],nsucc:46,comma:[53,3,46,22,7,26],dagger:46,mathjax_tooltip:42,movabl:[36,2],chosen:50,coth:46,varxi:46,therefor:46,pixel:42,multimap:46,crash:22,greater:46,handl:[0,14,15,49,44,46,3,32,19,6,41,7,11,1,37,52,39],supsetneq:46,nokia:15,innermost:21,dai:12,maxbuff:25,front:[40,15],successor:33,gggtr:46,sourceel:[19,45,24,48],anyth:[19,26,4],edit:[7,2,8],class3:38,mode:[46,42,15,5,20,33,35,50,51],varomega:46,"2em":46,genfrac:46,subset:46,delaypost:42,nointerest:29,meta:50,"static":38,our:[14,35,15,4,20,36],rightleftharpoon:46,ie6:42,special:[46,41,31,53,5,20,22,7,49,23,50,51,37],out:[0,14,42,35,1,19,6,11,50,51],variabl:[32,28,16,3,30,48,46,31,38],lesseqqgtr:46,reflow:15,categori:1,rel:[0,11,42,15],moveabl:[36,2],merg:[12,37],red:[46,20,21],negthinspac:46,nsucceq:46,insid:[15,2],workflow:41,manipul:48,eqslantgtr:46,releas:[20,7,3,35],bleed:15,indent:[25,22],could:[0,14,31,16,46,4,48,19,20,41,7,51,37,45,1],ask:[4,48,20,25,51,7],succ:46,keep:[14,35,2,44,48,46,20,50,51,7],gtreqqless:46,length:3,outsid:[5,50],"0em":22,uproot:46,unexpectedli:[46,20],rbrace:46,blogger:2,rbrack:46,precapprox:46,spadesuit:46,date:[20,14,35,15,7],uplu:46,clubsuit:46,bigsqcup:46,suffic:20,"long":[46,20,1,15,47],start:[0,14,35,1,28,13,46,30,49,51,19,20,21,22,8,36,7,29,39],unknown:41,system:[42,35,2,20,16,4,46,6,23,50],messag:[0,14,35,44,20,16,46,30,49,18,40,6,32,39,22,19,37,29],attach:[19,29,49],attack:20,termin:5,man:20,iota:46,rsh:46,supset:46,"1em":41,gtreqless:46,hdashlin:46,exactli:50,blind:51,ipad:15,gtrdot:46,subsetneq:46,structur:[0,7,28,31,44,48,19,20,32,37,26],charact:[46,41,42,15,53,5,6,25,22,51],htaccess:35,seriou:51,bet:35,exhibit:35,"function":[0,28,29,44,17,46,3,48,19,31,30,39,49,51,37,38,1],biggl:46,biggm:46,rrightarrow:46,unkown:37,lightli:50,close:[41,15,20,4,40,6,26],need:[0,1,2,3,4,5,6,7,8,10,14,15,17,18,19,20,25,22,23,24,28,30,31,35,36,37,38,39,40,41,42,44,45,46,48,49,11,51,53],turn:[12,5,14,28,29,40,41,11],biggr:46,min:46,mid:46,which:[2,30,5,7,10,14,15,40,18,19,20,21,22,24,25,26,27,28,29,3,31,32,33,34,35,36,37,38,46,41,42,43,45,53,48,50,51,1],hbox:46,mit:46,singl:[0,14,15,28,49,16,46,48,5,20,32,23,1,7,53],declaremathoper:46,mathjax_preview:[27,53,5,43,22,51],x22d6:46,unless:[20,15,28,50],who:[19,29,4],eight:50,leftthreetim:46,"class":[38,46,32,15,28,29,16,17,5,39,22,45,10,24,51,33],underset:46,placement:15,url:[0,14,35,15,3,47,40,20,7],gather:46,request:[0,15,29,46,30,19,31,50,7,1],face:[35,4,6,25,42,26],inde:[3,26],movablelimit:15,nmid:46,determin:[7,42,2,30,46,11,22,37],flux:1,occasion:7,fact:[29,14,39],backsimeq:46,mathjax_messag:18,leftarrowtail:46,verbos:[44,31,22],bracevert:46,woth:41,curlyeqsucc:46,inlin:[5,20,14],locat:[0,14,35,20,30,48,5,6,27,22,7,19,43,37,24,51,33],jax:[30,40,9,14,15,16,19,25,22,24,26,3,37,33,10,7,38,39,11,32,42,44,45,53,48,50,51,52],vartriangleright:46,forev:3,should:[3,5,8,36,14,40,17,20,39,22,24,25,28,29,31,37,33,10,7,46,41,35,21,53,48,50,52,1],imagefont:[6,42],vartriangleleft:46,suppos:[31,14,48],"5px":12,triangleright:46,"5pt":20,local:[35,28,20,1,3,48,6,22,7],hope:[6,14],precsim:46,liminf:46,looparrowright:46,increas:[14,15],bigstar:46,leqslant:46,smash:46,enabl:[46,14,2,5,20,8,36,7],organ:51,frown:46,stuff:37,integr:2,contain:[0,2,3,5,6,12,37,40,16,17,18,19,20,39,22,45,27,28,29,31,35,7,46,32,42,43,53,48,51,1],view:[41,42,35,16,3,20,33,23,50,7],conform:20,frame:18,apolog:14,temporarili:18,troubl:20,issafari:37,asynchron:[0,32,28,29,44,17,1,48,19,31,49,37],statu:[0,35,31],error:[0,14,46,3,4,40,20,41,22,10,37,24,39],jmath:46,pattern:[5,22],gtrsim:46,favor:14,state:1,quickest:20,theta:46,neither:[6,21],equiv:[46,50],omicron:46,nshortmid:46,kei:[12,0,28,29,17,19,22,37],entir:[37,22,7,48],closebox:6,ker:46,thumb:1,skipstartuptypeset:22,plugin:[2,47,22,8,23,50,51],admin:[36,8],nabla:46,equal:[1,37,38],gnapprox:46,etc:[46,1,7,22,48],eta:46,equat:[5,27,42,15,43,35,46,48,40,20,25,22,23,50,51,45],eth:46,limiti:35,lmoustach:46,onchang:48,comment:[15,53,40,20,22,7],varnoth:46,arriv:[19,49],solv:[7,3],arguement:31,sqcup:46,quit:48,showfontmenu:47,"55em":46,quotat:53,bbb:46,sqsupseteq:46,treat:[46,20],immedi:[0,17,1,30,48,19,7],smallsetminu:46,both:[0,14,15,31,44,1,30,40,20,41,22,7,8,36,37,38],alignat:46,varsupsetneq:46,otf:[35,15],psi:46,togeth:[14,28,1,40,41,37],injlim:46,present:[29,41,4,6,22,7],twoheadrightarrow:46,multi:46,iscallback:28,displaylin:46,align:[46,41,22],contextu:[13,41,42,47,40,11,22,34,50,51,45],studentdisplai:48,defin:[46,14,42,34,20,30,53,3,7,47,40,6,25,22,31,11,1,37,38,39,26],glossari:[44,13],layer:[15,2],almost:46,curvearrowright:46,site:[14,35,2,40,20,22,23,36,7],archiv:[20,35],substanti:[14,7],revis:35,halt:49,curlywedg:46,displaystyl:[46,48],parti:[19,20],cross:35,sqrt:[46,20,51],getx:38,extensiondir:39,oint:46,android:15,cssid:[46,15],curlyve:46,phi:46,http:[14,35,2,3,47,48,46,20,33,8,50,36,7],d3eoax9i5htok0:20,lleftarrow:46,"8em":[46,25],effect:[17,1,3],mrow:[20,51,41],student:48,php:[2,8],executehook:[29,28],off:[46,15,40,49,11,50,7],center:[46,22],well:[19,35,28,31,53,4,48,40,20,39,22,49,50,7],exampl:[0,3,4,46,6,7,9,11,12,14,15,17,19,20,21,22,24,25,26,27,28,29,31,32,33,34,35,10,37,38,5,41,42,43,45,53,47,48,49,50,51,52,1],command:[41,35,28,44,17,1,30,48,46,22,7,37],choos:[46,20,50],undefin:[46,20,28,31],setx:38,subsetneqq:46,sibl:15,usual:[28,31,1,46,6,39,22,51,7],curlyeqprec:46,paus:35,less:[46,35,5,20,51,37],obtain:[14,35,48,40,20,22,51,7,24],mistaken:51,mathclos:46,mathoutput:48,simultan:[1,30],web:[13,14,42,15,2,20,30,46,3,49,48,19,6,33,45,23,35,51,7,29,1],current_them:2,smith:31,textbf:46,cdotp:46,atopwithdelim:46,valid:[31,14,50],match:[5,29,42],webpag:33,piec:15,varpropto:46,punctuat:15,know:[29,31,3,19,20,10,7,24,51],cfrac:46,mathinn:46,recurs:[37,15],mho:46,nofont:6,like:[3,46,15,17,18,19,20,23,26,28,29,31,33,10,7,5,41,35,44,53,48,49,50,51,1],lost:31,messagehook:[19,29,37],necessari:[23,20,37,45,7],page:[2,30,5,6,7,8,12,13,14,15,40,16,18,19,20,11,22,23,45,27,29,3,31,33,35,36,37,46,41,42,43,1,47,48,49,50,51],captur:44,linux:37,"export":45,superclass:38,proper:[29,37],guarante:[0,1,48,17],librari:[16,1,32,35],glyph:[46,44],kern:46,assum:48,avoid:[14,15,46,21,22,51,41],tooltip:42,leav:[12,25,52,48],doublecap:46,supsetneqq:46,preload:[0,20],twoheadleftarrow:46,daleth:46,upharpoonright:46,journal:44,usag:13,host:[14,7],sphericalangl:46,although:[16,29,35,52],offset:42,panel:46,varepsilon:46,about:[19,14,42,15,28,20,46,7,4,48,40,6,11,22,31,49,35,51,37,29],ams_html:[46,14,48,40,33,7],rare:1,column:25,mathajx:14,mod_head:35,mapsto:46,constructor:38,fals:[5,42,15,29,46,3,47,40,11,22,9,37,38,26],bigoplu:46,eqalign:46,own:[14,35,15,20,16,1,4,46,6,49,50,10,7,24,51,26],amsmath:[46,14,1,40,20,25,7],circledr:46,automat:[46,17,1,18,5,20,39,50,51,7,38],bigtriangledown:46,guard:22,vphantom:46,circlearrowleft:46,transfer:[20,35],support:[13,14,42,15,20,30,46,3,4,32,40,6,41,23,50,51,7,52,11],much:[19,50,7,44,49],bigcap:46,arg1:31,"var":[12,28,1,3,48,19,31,38],stai:7,arg2:31,deliveri:[20,15],propto:46,unexpect:[11,22],precnapprox:46,studentansw:48,bodi:[0,14,48,20,10,7,24],gain:[50,47],lgroup:46,bug:[12,14,35,15,4,18,20,22,51,7],count:3,made:[35,1,4,49,51,45,26],bbbk:46,whether:[46,27,42,43,3,47,48,5,31,11,22,7,9,37,52],wish:[14,31,53,3,4,46,20,7,50,37],displai:[46,6,12,13,15,18,19,20,25,22,23,45,27,33,34,7,5,41,35,24,47,48,51],substack:46,underleftrightarrow:46,mathord:46,gtrapprox:46,below:[2,46,6,9,11,12,37,20,21,22,45,25,27,43,34,35,10,7,5,42,24,47,49,50,51,52],sideset:46,"_htmlormml":50,problem:[14,35,15,31,3,4,46,20,50,51,7],x03c0:51,"int":46,dure:[15,28,19,39,22,37,45],novemb:14,implement:[12,0,14,16,46,40,31,41,19,50,51,38,39],nolimit:46,inf:46,probabl:[19,31,7,2],oplu:46,helpurl:47,immateri:1,percent:[11,42],detail:[0,5,6,7,8,13,14,15,40,17,19,20,11,22,27,28,29,43,33,34,35,36,37,46,41,42,1,47,48,49,50,51],lesseqgtr:46,other:[0,2,30,5,6,7,14,15,40,17,18,19,20,39,22,23,45,28,29,31,33,35,37,38,46,41,42,44,1,11,48,49,50,51,52],futur:[0,4,18,19,49,50,45],branch:[7,35],varieti:51,downlaod:[23,15],removeaft:6,repeat:[35,2],star:46,thicksim:46,msgroup:41,matrix:46,sphinx:2,scientif:44,reliabl:[50,14,3,7],rule:[46,6,9,1,22],mathjax_mathml:3,portion:48,eot:35},objtypes:{"0":"py:method"},titles:["The MathJax.Ajax Object","Using Queues","Using MathJax in popular web platforms","Loading MathJax Dynamically","The MathJax Community","The tex2jax Preprocessor","The FontWarnings extension","Loading and Configuring MathJax","Installing MathJax in WordPress","The MathML input processor","The MathJax.InputJax Class","The NativeMML output processor","The MathJax.HTML Object","MathJax Documentation","Migrating from MathJax v1.0 to v1.1","What&#8217;s New in MathJax v1.1","The MathJax API","The MathJax.Callback.Queue Class","The MathJax.Message Object","Using Signals","Getting Started","Describing HTML snippets","The Core Configuration Options","What is MathJax?","The MathJax.OutputJax Class","The TeX input processor","Configuration Objects","The jsMath2jax Preprocessor","The MathJax.Callback Class","The MathJax.Callback.Signal Class","The MathJax Startup Sequence","Using Callbacks","The MathJax variable","Converting to MathJax from jsMath","The MathZoom extension","Installing and Testing MathJax","Using MathJax in Movable Type","The MathJax.Hub Object","The MathJax Object-Oriented Programming Model","The Base Jax Class","Common Configurations","MathJax MathML Support","The HTML-CSS output processor","The mml2jax Preprocessor","Glossary","The MathJax.ElementJax Class","MathJax TeX and LaTeX Support","The MathMenu extension","Modifying Math on the Page","Synchronizing your code with MathJax","MathJax Output Formats","The MathJax Processing Model","The MMLorHTML configuration options","CSS Style Objects"],objnames:{"0":"Python method"},filenames:["api/ajax","queues","platforms/index","dynamic","community","options/tex2jax","options/FontWarnings","configuration","platforms/wordpress","options/MathML","api/inputjax","options/NativeMML","api/html","index","upgrade","whats-new","api/index","api/queue","api/message","signals","start","HTML-snippets","options/hub","mathjax","api/outputjax","options/TeX","options/index","options/jsMath2jax","api/callback","api/signal","startup","callbacks","api/variable","jsMath","options/MathZoom","installation","platforms/movable-type","api/hub","api/object","api/jax","config-files","mathml","options/HTML-CSS","options/mml2jax","glossary","api/elementjax","tex","options/MathMenu","typeset","synchronize","output","model","options/MMLorHTML","CSS-styles"]}) -\ No newline at end of file +Search.setIndex({objects:{"":{reset:[15,0,1],Preloading:[0,0,1],Log:[20,0,1],ExecuteHooks:[15,0,1],setScript:[11,0,1],Subclass:[42,0,1],File:[20,0,1],Delay:[15,0,1],Add:[15,0,1],getAllJax:[31,0,1],getScript:[11,0,1],Interest:[44,0,1],preProcess:[26,0,1],Translate:[43,0,1],Config:[31,0,1],addElement:[11,0,1],Reprocess:[31,0,1],Styles:[0,0,1],ExecuteHook:[44,0,1],loadTimeout:[0,0,1],Resume:[18,0,1],Post:[44,0,1],Update:[31,0,1],preTranslate:[26,0,1],formatError:[31,0,1],call:[18,0,1],postTranslate:[26,0,1],getJaxByInputType:[31,0,1],PreProcess:[31,0,1],fileURL:[0,0,1],has:[42,0,1],Clear:[20,0,1],Insert:[31,0,1],Execute:[15,0,1],Register:[43,0,1],TextNode:[11,0,1],Augment:[42,0,1],needsUpdate:[55,0,1],Signal:[15,0,1],addText:[11,0,1],Zoom:[26,0,1],Remove:[20,0,1],Element:[11,0,1],Queue:[15,0,1],NoInterest:[44,0,1],Rerender:[31,0,1],getJaxByType:[31,0,1],Push:[18,0,1],MessageHook:[44,0,1],Typeset:[31,0,1],loadComplete:[0,0,1],wait:[18,0,1],Load:[0,0,1],Set:[20,0,1],getJaxFromMath:[26,0,1],LoadHook:[0,0,1],Process:[31,0,1],Text:[55,0,1],loadError:[0,0,1],Startup:[43,0,1],Init:[42,0,1],Suspend:[18,0,1],SourceElement:[55,0,1],getJaxFor:[31,0,1],can:[42,0,1],setRenderer:[31,0,1],Hooks:[15,0,1],isJax:[31,0,1],filterText:[20,0,1],isa:[42,0,1],Require:[0,0,1]}},terms:{linebreak:[56,13,39,28],lvertneqq:33,lspace:33,reprocess:[31,55,52],mathjax_msie_fram:20,yellow:33,four:[33,50,14],prefix:[11,22,26,19],asymp:33,blacktriangledown:33,webfont:[5,39,22],whose:[11,31,52,4,34,35,41,26],biggr:33,under:[33,36,46],preprocess:[32,52,43,57,31,26],asciimath2jax:[30,16,22,35,57,54],worth:41,digit:19,gimel:33,everi:[33,13,41,19,21,27,31],risk:22,mskip:33,arcco:33,govern:[14,41,22],dotplu:33,affect:[13,14,46,19,33,31,54],eqnarrai:33,cmd:24,bigodot:33,c6h5:33,ominu:33,fontweight:13,vector:[48,56,57],red:[33,22,49],categori:50,nparallel:33,showcontext:6,nsubseteqq:33,direct:[39,5,14,46],thinspac:33,second:[0,13,14,46,15,34,49,50,53,4,5,35,36,24,21,40,41,26,59],ngeq:33,even:[0,2,33,13,41,30,18,21,22,49,25,28,15,44,34,31,16,36,39,50,52,53,56,57],hide:52,prejax:[57,24],neg:[33,13],menclos:[33,13],"new":[32,3,33,41,11,12,13,14,19,20,21,22,27,25,26,54,15,40,31,42,44,46,55,50,6,52,53,56,57,58],net:22,mhtml:1,told:[33,53,2],limsup:33,elimin:24,abov:[2,33,5,41,11,13,14,30,19,22,24,26,28,15,47,39,31,42,46,34,50,52],lessapprox:33,never:[0,41,46,43],here:[11,44,45,39,15,34,55,50,2,33,21,22,23,24,38,31,52,43],updiagonalstrik:33,met:32,lneqq:33,formaturl:27,path:[16,0,41,28,22],noundefin:[16,22,13,33],interpret:[4,22,33,46,30],nrightarrow:33,embelish:13,forum:[22,3],mbox:33,rceil:33,backprim:33,uproot:33,lengthen:13,linearli:[56,13],circleddash:33,mathstrut:33,unix:46,org:[14,1,2,19,6,52,33,22,37,7,56,10,41],thinmathspac:36,unit:[33,13,19,28],highli:25,describ:[11,33,14,46,15,34,48,59,32,52,16,5,31,49,57,41,26,22],would:[4,5,6,9,8,11,13,14,30,18,22,23,24,55,27,28,29,15,31,33,47,35,37,38,39,41,42,16,46,34,49,50,51,52,56,57,58,59],bleed:19,vartriangl:33,ltime:33,varlambda:33,call:[0,1,2,4,5,6,9,8,13,14,18,20,21,22,27,24,26,28,29,15,44,31,33,34,35,38,39,40,41,42,43,23,46,47,48,55,50,51,52,53,54,57,58],typo:13,recommend:[22,13,46,57,56],vcenter:33,preview:[13,29,39,4,9,35,24,57,28],type:[0,1,4,2,16,41,7,10,11,13,14,21,22,43,24,26,37,40,31,33,36,55,50,52,53,56,57],until:[0,29,44,31,50,4,34,35,43,24,21,9,41],notin:33,displaymath:[4,41],relat:[0,19,56],notic:[33,30],warn:[0,13,14,24,5],mathev:[54,26,38,51],eqslantless:33,hold:[0,13,51,49,24,38,57,31],unpack:[22,46],must:[0,32,33,5,41,14,18,20,22,27,24,28,30,44,35,39,31,4,36,46,48,59,51,53,56],fbox:[33,19],join:[21,33],room:27,setup:[25,22,13,36],work:[11,12,13,14,46,16,30,34,19,33,2,3,52,21,22,36,37,53,25,56,42],cc0000:[59,24],tag_nam:46,root:[0,19,32,20,33,41],overrid:[13,26,33,5,43,40,42],mathmenu:[13,45,59,6,16,24,54],give:[44,13,31,39,22,48,49,33,21,5,23,54,59,41,27,28],cirit:41,indic:[0,31,46,30,34,18,33,32,21,22,44,43,24,55,40,41,26,57],impair:25,texhint:24,want:[3,4,14,30,17,20,21,22,23,24,26,28,15,33,34,35,39,10,41,42,16,36,46,50,52,56,58],david:30,setminu:33,end:[0,13,16,30,1,56,32,50,19,3,33,4,36,7,21,10,41,58,57],quot:[39,19,4,35,24,28],hom:33,heartsuit:33,how:[0,1,2,3,4,5,6,7,14,15,16,18,20,22,23,24,27,28,29,30,31,47,35,37,38,39,41,44,46,9,49,33,51,52,53,57],disappear:[4,9,13,29,35],answer:[3,52],verifi:[22,46,3],config:[1,2,4,5,6,7,8,9,10,13,14,16,20,21,22,27,24,26,28,29,30,31,32,33,34,35,37,38,40,41,43,23,39,47,50,51,52,54,56,58,59],varrho:33,updat:[13,14,46,1,50,19,52,33,31,24,39,41,55,28],showrender:6,recogn:[22,13],lai:[56,57],diagdown:33,after:[0,2,33,13,41,18,20,21,22,43,24,28,15,34,39,31,44,46,50,6,52,53,54,57,58],befor:[0,1,2,3,4,7,13,14,15,18,20,21,22,27,24,28,30,31,32,33,34,35,41,42,43,44,36,39,48,49,50,51,52,53,56,57],wrong:[33,13,36],unwis:56,parallel:[33,32,50,19],averag:57,alignedat:33,attempt:[0,13,36,6],third:[50,36],leftarrow:33,receiv:[44,14,46,22,42,33,21,34,43,53,41,26],greasekit:2,maintain:[13,14,53,3,21,34,24,26],environ:[33,13,3,4,22,27],enter:[36,47,52,33,22,57,41],textnod:11,order:[32,4,5,41,13,14,18,20,22,24,28,29,15,33,34,35,39,31,42,44,46,9,48,50,56,57],oper:[0,4,5,6,9,8,13,18,19,20,21,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:[11,0,13,39,33,19,51,52,16,22,24,38,56,57,41,6,28],fall:[46,30,22,50,33,5],becaus:[21,14,39,30,34,49,50,36,2,33,20,4,22,35,27,52,56,57,41,44,28],boxtim:33,suspend:[21,18,50,44],textrm:33,appar:50,afil:34,flexibl:[49,50,14],vari:56,smallint:33,img:[29,59,2,4,9,35,49],fix:[13,14,46,19,56,39,41,28],preferredfont:39,better:[13,30,47,19,6,33,22,37,7,56,41],boxminu:33,drawback:56,upharpoonleft:33,persist:3,comprehens:48,hidden:33,easier:[44,13,14,46,50,33,36,42],moveleft:33,substack:33,them:[0,16,5,41,11,13,14,30,18,19,21,22,27,15,44,33,47,35,31,4,36,46,34,50,57,59],thei:[0,2,3,4,5,6,9,8,13,14,16,17,18,19,20,21,22,23,24,27,28,29,15,31,32,33,34,35,38,39,41,43,44,46,47,48,49,50,51,52,53,54,56,57,58,59],precapprox:33,safe:[11,22,52],rectangl:48,"break":[13,39,50,19,33,53,56,28],mtext:[13,39,19,33,22,28],wedg:33,widetild:[33,13],choic:[56,13,31,7],dbinom:33,leftharpoondown:33,accommod:13,timeout:[0,13,19,15],each:[21,13,31,46,15,30,44,50,32,33,20,4,22,35,16,53,39,57,41,52,28],debug:20,went:33,side:[13,20,33,22,27,24,7],mean:[1,32,33,5,13,14,16,17,21,24,25,28,29,30,44,2,34,35,41,4,39,9,52,53,56],leqq:33,createel:2,resum:[18,50],represetn:33,leqalignno:33,mathopen:33,looparrowleft:33,expres:33,network:[13,14,46,19,16,22,10,41],goe:[33,53,50],iint:33,newli:[11,21,42],crucial:46,predefin:33,content:[1,4,32,16,41,7,10,11,13,14,19,22,49,24,35,40,31,42,33,36,48,50,52,56,57],prefilt:13,reader:[33,13,39,19,16,25,56,28],forth:45,impract:46,multilin:33,written:[22,7],situat:[13,19,52,22,56,41],free:[55,3],standard:[16,13,46,48,33,21,22,25,56,57,41,59],autonumb:[33,27],reconfigur:14,lneq:33,angl:33,jsmath2jax:[29,19,37,54],filter:[13,15],isn:[13,52,21,43,56,55],mtabl:[16,13],isa:42,subtl:52,onto:[48,22,50,31,52],attribtu:22,mathbb:33,rang:[22,57],mathbf:33,render:[16,13,36,32,19,6,4,22,24,25,56,57,31,58,28,37],accent:13,independ:41,yourcolleg:46,restrict:[33,46,24],hook:[21,0,13,15,44],unlik:[25,33,41,43],alreadi:[0,13,15,33,32,50,2,3,20,21,34,52,53,41,42],subtleti:33,primari:[56,14],tooltop:[39,28],top:[13,45,46,33,22,56,41,26],sometim:[22,41,46],underlin:[33,19],master:53,too:[33,13,39,30,2,19,4,22,35,23,56,28],similarli:[0,31,46],newenviron:33,john:34,listen:[21,44,31,15],thickapprox:[33,13],namespac:[13,15,2,19,52,33,22],tool:[50,46],tagind:27,embellish:19,gtrless:33,compressor:19,somewhat:[53,24,56],technic:[48,13],past:[44,13,14,19,21,53,25,56],filesmatch:[13,46],provid:[0,1,2,33,11,13,18,20,21,22,49,25,15,34,31,42,44,36,50,52,53,57],eqalignno:33,tree:[22,49],iota:33,project:[48,41,3],matter:[21,37],mathtt:33,ldotp:33,close:[13,36,22,2,19,3,16,5,54],modern:[25,5,36,12],mind:[33,22,41,30,1],increment:18,seem:[34,13,36],rightrightarrow:33,ldot:[33,13],ngeqq:33,latter:[33,17,21,47,49,24,57,41,54],domcontentload:[32,13,2],curvearrowleft:33,blue:38,though:[13,30,15,33,53,49,24,57],object:[0,32,33,5,6,11,12,13,17,18,20,21,23,24,26,27,28,15,34,38,40,31,42,43,44,45,39,48,49,50,51,52,53,54,55,57,59],mmtoken:13,gzip:19,regular:[4,22,35,24],letter:[22,46],breakpoint:[56,13],phase:13,grave:33,don:[33,13,14,34,19,50,2,47,52,21,5,31,36,56,57,41],dom:[11,13,55,50,52,21,53,43,24,40,31,26],doe:[33,13,31,46,15,30,58,55,2,52,21,22,36,24,25,56,40,41,26,57],declar:[13,36,39,59,51,33,5,23,6,38,28],place:[0,13,46,22,42,50,3,33,21,5,44,23,24,52,39,41,26,27,28,37],tfrac:33,unchang:[33,14,58,52],section:[2,4,5,6,41,9,8,13,14,19,23,24,27,28,29,30,34,35,37,38,10,31,16,36,39,47,33,51,54,56,58],came:46,delaystartupuntil:[31,41,32,24],random:[22,46],lnapprox:33,syntax:[48,42,33,19,30],mediawiki:1,isopera:31,outerhtml:19,shownam:34,asynchon:52,involv:[33,53,57,41,3],consolid:25,layout:[39,28],just:[44,13,31,46,15,1,34,50,33,21,22,36,24,16,7,25,56,57,41,59],mathchoic:[33,13],ismsi:[31,32],menu:[32,16,6,7,12,13,19,23,24,26,28,36,38,39,10,45,46,55,51,56,57,58],explain:[14,1,16,53,41,54],configur:[0,2,4,5,7,8,9,10,12,13,14,16,19,20,21,22,27,24,25,26,28,29,30,31,32,34,35,37,38,39,40,41,43,23,36,46,47,49,33,54,56,57,58],apach:[13,46],theme:[41,1,7],rich:[25,48],folder:[39,22,46],"0000f0":38,stop:[33,31,39,28],infti:[33,57],amazon:22,mho:33,report:[36,24,3],circeq:33,nummber:[],subseteq:33,fadeouttim:5,bar:[33,13,42,15],patch:[41,46],reload:6,bad:19,replacechild:2,neq:33,unexpectedli:[33,22,30],underbrac:33,dashrightarrow:33,scriptscriptstyl:33,precneqq:33,result:[33,41,13,14,30,22,23,24,55,28,15,34,40,31,36,39,48,26,50,52,56,57],respons:[44,13,15,19,33,40],fail:[0,13,19,34,43,56,54],hash:[13,32,24],best:[0,14,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:[34,57,1,52],attribut:[11,13,36,9,59,19,33,22,49,56,57,41],blacktriangleright:33,extend:[25,57,30],shoud:56,extens:[0,32,16,5,6,41,13,14,19,21,22,27,24,54,29,33,9,35,37,38,31,43,4,45,48,50,51,52,56,59],html5:[13,14,19,22,36,56,57,41],toler:2,intop:33,protect:33,accident:13,expos:30,cow:42,howev:[33,14,46,34,32,50,2,3,20,16,22,24,52,56,57,41,42,59,54],configuraiton:[33,57],against:44,indexof:13,browser:[2,16,5,41,11,12,13,14,19,22,24,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:[18,2,15],innerhtml:[2,52],height:[33,26,13,19,6],wider:3,summat:47,sqsupset:33,speak:[17,57],issol:33,chrome:[39,2,19,56,31,58],three:[36,46,15,34,49,50,33,5,43,53,56,57,22],been:[0,32,3,4,13,14,18,20,21,22,23,24,26,15,2,34,35,37,39,40,41,44,46,50,52,53,56,58],trigger:[16,13,26,24,38],interest:[44,48,33,3,21,53],basic:12,tini:33,quickli:[25,41,3],underrightarrow:33,rather:[0,2,4,5,8,13,14,18,19,21,22,27,24,25,55,54,15,32,33,47,35,41,42,43,16,36,46,48,50,6,52,53,56,57,59],regul:50,xxx:33,ani:[0,2,3,4,5,6,9,8,13,14,16,18,20,21,22,27,24,26,28,29,15,44,31,32,33,34,35,38,39,40,41,42,23,36,46,47,55,50,51,52,53,56,58],emploi:56,hskip:33,tanh:33,hat:33,servic:[14,46,19,22,10,41],properti:[11,0,45,42,15,44,18,34,43,55,40,31,26],diamondsuit:33,sourceforg:14,weren:[13,14],dashboard:10,suffici:[30,33,22,27,41,58],anchor:[27,24],"3px":[33,59],succeq:33,lightli:56,nexist:33,retransl:[55,52],cong:[33,13],sever:[0,13,14,46,16,50,33,4,34,35,57,52,26],amout:20,incorrectli:[22,13,14,19],perform:[32,3,33,5,41,13,14,18,19,20,21,27,24,26,28,15,34,40,31,43,44,45,39,48,55,50,52,53,56],suggest:[5,3,22],make:[0,3,4,5,41,13,14,17,18,19,21,22,23,24,25,26,28,29,33,9,35,39,31,42,16,36,46,50,6,52,53,56,57,59],format:[12,13,14,30,48,49,33,16,22,27,24,55,25,56,40,36,26,57],complex:[56,49],split:33,synch:14,lrcorner:33,unsafewindow:2,complet:[0,32,16,41,4,14,18,21,22,43,24,26,15,44,34,35,31,33,46,48,55,50,52,53,56],longmapsto:33,hand:[13,45,2,20,27,24,57,36,37],fairli:[49,14],rais:[33,19],mkern:33,ignorepast:44,unlhd:33,techniqu:[14,2],redefin:[13,33,5,43,40,26],kept:21,thu:[14,15,50,21,34,55],inherit:[39,17,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,16,50,41,33],settimeout:[34,15],left:[13,45,46,32,20,33,53,27,24,7,56,10,36,54],processclass:[4,13,35],identifi:[11,44,13,30,33,22,57],proccess:[40,26],yen:33,msam10:22,mathbin:33,human:22,coprod:33,yet:[36,18,50,52,21,53],languag:[48,22,33,57,53],noscript:[4,35],onload:[13,45,2,32,34,24,41],errorset:[16,24],easi:[48,33,37],interfer:[22,13,47],had:[13,14,2,21,22,41],myconfig:[21,34],step1:33,els:[33,34,2,52],save:[13,59,7,56,10,41],"0x21c0":33,jsmath:[12,57,37],sanit:20,applic:[25,22,32,1],loadtimeout:0,quirk:13,preserv:34,cho:33,bbox:[33,13],background:[33,13,19,59,38],sqsubset:33,specif:[0,13,45,15,1,44,31,18,50,52,4,34,35,43,48,56,57,41,55],arbitrari:33,manual:5,zoom:[12,13,36,32,19,51,16,24,38,26],nsubseteq:33,leftrightarrow:33,unnecessari:13,underli:56,www:[22,2,46,6],right:[13,36,46,48,18,50,2,20,33,47,27,24,7,56,57,41,54],old:[21,13],simbl:2,deal:22,autobold:[33,13],interv:47,surd:[33,19],percentag:[56,23,39,24,28],intern:[0,13,36,15,30,44,48,18,50,52,33,24,55,56,40,31,26,57],interf:13,successfulli:[0,34],interc:33,dddot:33,bottom:[13,41,7],subclass:[44,45,26,43,55,40,42],circ:33,tracker:[22,3],overcom:53,condit:[0,13,32],getjaxfor:[21,13,31,26],core:[13,39,50,32,33,23,24,38,57,31,54],plu:[16,44,32],bold:[48,49,33,27,54],insecur:22,mathrel:33,colleg:46,repositori:[46,14,19],post:[44,13,39,15,32,3,20,21,53,43,28],"super":[42,13,19],llless:33,obj:11,nwarrow:33,slightli:[33,56,28,7],surround:[13,39,22,23,24,28],unfortun:[22,46],current_theme_templ:1,joomla:1,span:[33,29,4,9,35,49,24,57,26,37],downharpoonright:33,produc:[33,5,13,14,21,22,27,24,25,55,54,15,34,37,40,41,44,39,26,6,52,28,56,57],stretchi:[33,13],jipsen:30,encod:[33,30],floar:56,rightsquigarrow:33,down:[46,10,26,24,56],shortparallel:33,wrap:42,stackrel:33,nsupseteq:33,git:[22,14,19,46],wai:[1,2,33,14,20,21,22,43,24,28,29,15,44,34,35,41,4,46,9,50,52,56,57],support:[12,13,14,39,30,22,19,33,36,2,3,16,5,32,45,25,56,57,41,58],transform:57,ngtr:33,avail:[0,1,2,16,5,13,14,21,22,24,25,55,28,29,33,9,35,39,41,42,4,36,46,48,50,6,52,56,57],width:[13,36,39,6,33,22,27,56,26,28],reli:[0,14,48,50,2,52,34,56],"30em":[39,28],wordpress:[1,7],editor:7,rell:27,rightthreetim:33,head:[1,2,52,22,7,56,10,41],longdiv:33,eqeref:[],form:[36,39,48,20,33,22,27,24,57,41,55],offer:[14,19,3],forc:[39,13,41,26,56],epsilon:33,hear:[21,44],so4:33,ismobil:31,"true":[4,32,33,41,8,13,14,16,27,24,55,28,15,47,56,40,31,42,44,45,39,6,23],maxmacro:27,reset:[6,15],displayalign:24,maximum:26,tell:[46,52,22,27,56,41],absenc:1,retir:14,featur:[12,13,36,46,58,33,3,52,21,34,38,56,42],rfloor:33,exist:[13,46,15,33,22,39,42,28],ddot:33,backsim:33,triangleq:33,check:[0,14,46,34,42,20,33,22,40,44],when:[0,2,4,5,7,8,9,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,6,52,53,55,56,57,58],abovewithdelim:33,role:57,test:[11,12,13,14,46,53,32,2,52,21,22,31,36,56,41,42],tie:[32,26,15],smallsmil:33,node:11,mathel:1,intend:[48,42,24],munderov:[13,57],positiontohash:[13,24],gvertneqq:33,consid:[0,14,50,19,51,33,4,22,3,56,57,31,55],omega:33,outdat:3,faster:[13,19,16,56,57,41],bullet:[48,33],anywher:[13,41],pseudo:13,cancelto:[33,13],tex2jax_ignor:[4,19],ignor:[4,44,35,33],time:[0,2,3,33,5,11,13,41,19,20,21,27,24,28,15,34,39,31,43,44,46,50,51,52,56,57],push:[15,48,18,50,32,52,34,31],backward:[39,28],"5kb":27,mathrm:33,doteq:33,skip:[4,13,46,35],consum:20,known:[50,13],skin:1,displayind:24,millisecond:[0,39,15,51,20,5,6,31,28],decid:[56,13,41,6],middl:[33,22,13],depend:[13,15,32,52,34,7,56,41,58],decim:[33,47],readabl:48,nearrow:33,varpi:33,certainli:46,vee:33,decis:56,leftarrowtail:33,succnsim:33,sourc:[12,13,14,46,16,50,2,6,33,21,36,24,25,56,57,31,55],xlongequ:33,mprescript:13,curlyve:33,word:[4,35,41,57],centerdot:33,dim:33,foo:[42,15],administr:[1,7],level:[22,13,41,46,45],did:[34,13],item:[13,39,49,6,33,34,23,24,26,28],cooki:[11,32,19],div:[11,33,57,37,52],prevent:[33,13,29,39,9,19,6,4,22,35,23,24,41,27,28],outlin:19,slower:[56,39,28],hack:56,sign:[33,14,30,4,22,35,57,41],cost:[33,22,41,42,30],pmb:33,rightarrowtail:33,widehat:[33,13],xandi:42,dotsi:33,dotsm:33,appear:[21,13,45,46,30,34,33,47,20,4,22,35,27,24,52,7,39,41,55,6,28],dotso:33,repli:21,dotsc:33,dotsb:33,current:[0,13,31,46,1,44,42,56,22,7,39,40,41,26,10,28,55],backepsilon:33,ampersand:[33,30],inlinemath:[33,14,2,52,4,22,35,41],defici:36,amalg:33,mathsiz:33,gener:[33,13,31,30,5,58,55,32,16,34,37,57,41,26,22],mfrac:[22,57],explicitli:[33,13,14,30,34,19,4,22,35,24,41,42],modif:[50,41],address:[22,13,46,52],along:[33,48,50,20,21,37,40,26],wait:[0,13,31,46,15,44,48,18,50,19,2,52,21,34,32,24,53,40,41,26],box:[0,13,19,32,33,5,38,26],html_head:1,bracevert:33,shift:24,xtwoheadrightarrow:33,bot:33,queue:[44,45,15,53,17,18,50,32,52,34,48,31],overriden:31,digamma:33,varlimsup:33,commonli:[16,22,48],macintosh:31,semant:42,succsim:33,extra:[33,2,19,21,24,56,57],circumv:46,modul:[0,10,45],prefer:[13,14,39,6,22,56,46,58],iepro7:2,veebar:33,visibl:[33,13,29,50,52,4,9,35,36,26],marker:[33,30],myid:59,mobil:[13,14,19,31,25,56,41],arrowvert:33,memori:[53,55],bigr:33,visit:22,todai:48,subvers:[22,46],stylesheet:[0,45,15,44,18,32,52,53,24,7,56],handler:[0,45,48,2,32,52,53,24,57,41,26],xtofrom:33,current_skin:1,bigl:33,bigm:33,eqcirc:33,checkout:46,bigg:33,inputjax:[45,17,55,32,33,43,40,31,42],capit:17,peopl:22,bigtriangleup:33,enhanc:[13,19,57],minscaleadjust:[23,39,28],visual:[25,16,13,39,28],templat:[10,41,1,7],hphantom:33,easiest:[21,22,46,15,34],graphic:[48,56,46],prepar:[50,41,26],cap:33,uniqu:59,hline:33,pmatrix:33,whatev:[33,1,30,26,50,52,21,42],cal:[33,13],purpos:[34,13,57],getjaxbytyp:31,downharpoonleft:33,precsim:33,subseteqq:33,varprojlim:33,backslash:[33,27,24],topic:[17,12,41],stroke:28,phrase:[33,22,30],occur:[0,32,13,41,18,20,21,22,43,24,26,15,2,34,31,44,36,46,50,6,52,53,56],eqsim:33,pink:33,alwai:[13,15,17,50,33,34,41],multipl:[33,50,14,13],mpad:13,trianglelefteq:33,write:[44,30,48,50,52,22,25],fourth:50,mathsf:33,tild:33,xhtml:[22,36],map:[57,26],remap:13,max:33,clone:46,spot:[33,30],usabl:46,mac:[31,24],rowspan:36,mai:[0,1,2,3,4,5,7,13,14,17,21,22,23,24,26,28,30,33,34,31,39,41,42,44,36,46,55,50,52,53,56,57],underscor:[33,22],data:[11,0,13,45,46,15,34,42,21,22,43,55,39,40,31,26],grow:[56,13,39,28,1],goal:25,vartheta:33,baso4:33,explicit:[0,39,22,24,41,28],uparrow:33,geramond:33,inform:[0,13,16,1,44,48,33,32,20,21,34,24,56,40,41,26,57],"switch":[13,14,46,19,33,37,57],preced:[34,41,24],combin:[0,13,14,39,47,33,19,57,16,22,23,56,8,41,58,27,28],gamma:33,tall:13,lnsim:33,approx:33,showmathmath:23,addmmlclass:28,downarrow:33,lsh:33,tex2math:37,still:[44,13,16,39,15,1,48,50,36,51,21,23,24,38,56,41,58],pointer:[13,42],ttf:[13,46],dynam:[0,13,45,12,50,2,52,22,24,53,25,57,41],entiti:[33,36,19,30],snippet:[11,12,29,9,33,3,4,5,35,49,24,31],conjunct:14,group:[0,13,36,3],monitor:3,polici:46,mpcontext:[16,24],ignoreclass:[4,35],platform:[25,12,1,22],window:[13,45,39,15,34,2,6,20,5,24,52,56,31,28],"05em":33,main:[33,13,14,46,17,42,50,57,16,22,31,45,24,59,56,40,41,26,43],mathexampl:52,non:[11,0,13,30,18,33,22,56,57],"float":[56,13],myinputjax:43,initi:[0,13,14,30,53,31,50,32,6,33,4,22,35,45,24,21,56,57,41,55,43],bound:33,safari:[13,2,19,56,31,58],half:34,now:[13,14,46,48,32,19,16,22,23,24,38,56,39],discuss:[11,46,41,2,3],nor:[5,49],term:[14,41,22,20],name:[0,32,4,5,11,13,14,30,16,19,20,21,22,27,24,26,28,15,31,2,34,35,39,40,41,42,43,44,36,46,49,33,54,55,59],opera:[19,31,2,58,56],boxdot:33,drop:46,separ:[21,13,14,46,33,50,20,4,22,35,36,24,41,59,54],messagestyl:[5,24,20],sideset:33,ntriangleleft:33,confid:25,varpropto:33,vec:33,varsupsetneqq:33,compil:[34,13],domain:[22,13,41,46],replac:[42,0,14,46,15,19,36,2,52,33,22,31,27,40,41,26,57],individu:[33,55,19,54,52],strikethrough:33,continu:[0,13,14,30,50,33,21,53,56,41],happen:[13,36,46,30,18,50,2,33,53,57],baselin:26,shown:[33,49,24,6,52],accomplish:[22,13,41,46,56],"3rd":22,space:[13,30,47,19,52,33,22,24,56,8,55,57],intermix:32,internet:[0,13,2,19,20,33,34,24,56,57,52,26,54],formula:[13,52,33,24,25,56,57],mathjax_zoom:38,correct:[34,13,14,2,24],integr:33,simeq:33,earlier:[13,39,50,32,22,27,56,41,28],migrat:[12,14],postfilt:13,bigstar:33,ajax:[0,45,17,50,32,33,21,34,31,43,41],mime:[36,55,22,43,40,31,26],underleftarrow:33,brower:[33,30],ord:[33,13],care:[30,47,2,33,22,54],ntrianglelefteq:33,couldn:34,x00b1:22,synchron:[0,15,12,48,18,50,2,52,21,34,32,53,31,44],mscarri:36,thing:[30,48,52,33,22,49],vdash:33,eqref:[33,13],mathop:[33,13],startuphook:[21,33,13,31],view:[13,36,46,17,2,16,22,37,25,39,41],think:[33,24,30,52],frequent:[4,21,35,30],first:[2,33,7,13,30,21,22,49,24,26,28,15,44,34,35,39,40,41,4,36,46,50,52,53,57],origin:[42,44,13,46,30,18,33,2,52,21,22,24,55,40,41,26,28],lfloor:33,oni:46,directli:[13,46,2,50,19,52,33,34,43,7,57],onc:[0,46,15,44,50,32,33,16,22,37,56,40,52,26],arrai:[32,4,5,9,8,13,31,18,19,21,27,24,26,28,29,15,34,35,37,56,40,41,43,44,39,47,49,33,54,23,57,58],yourself:[46,22,18,33,34,24,41],submit:3,formatnumb:27,open:[12,36,46,6,33,22,7,25,10],ios4:19,size:[13,39,59,19,52,33,23,24,56,41,26,27,28],given:[0,1,33,11,13,15,18,19,20,21,22,49,24,26,30,34,38,40,31,42,44,55,50,57,59],convent:26,ifmodul:[13,46],adjac:19,paramt:[33,13],leftrightharpoon:33,circl:33,white:59,conveni:[22,42,24],includ:[0,1,2,4,5,6,9,8,13,14,15,16,17,19,21,22,27,24,25,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,23,45,46,47,48,49,50,51,52,54,56,57,58,59],hub:[0,2,4,5,6,9,8,13,14,16,17,20,21,22,27,24,26,28,29,30,31,32,33,34,35,37,38,40,41,23,45,39,47,55,50,51,52,54,56,57,58],especi:[56,13,57],"public":[44,46],copi:[13,14,46,30,36,2,3,16,22,31,43,25,41],specifi:[32,4,5,6,8,11,13,14,15,18,19,21,22,27,24,28,30,44,31,33,34,35,38,40,41,23,39,48,49,50,51,53,56,57,58,59],forward:13,lhd:33,enclos:[13,39,59,33,24,57,28],quad:33,than:[0,2,4,5,7,8,13,14,30,16,18,19,21,22,27,24,25,55,54,15,31,32,33,47,35,39,40,41,42,43,44,36,46,48,50,6,52,53,56,57,59],serv:[22,19],wide:[25,39,57,46,28],undefinedfamili:[39,28],balanc:[4,13],were:[13,14,55,52,21,56,26,28],posit:[13,39,18,19,33,24,28],seri:[50,49],pre:[21,13,14,46,16,15,33,4,5,35,24,41],delic:24,lnot:33,doublecup:33,nleftrightarrow:33,argument:[44,13,15,50,33,34,42,54],dash:[59,39,28],properli:[11,0,13,14,46,22,19,50,2,52,4,5,36,34,55,56,31,42],engin:[25,12,13],squar:[33,49,19],greek:13,npreceq:33,consortium:25,note:[0,2,33,5,7,13,41,22,49,24,55,27,28,30,44,34,35,39,31,43,4,46,50,6,52,56,57,58,59],other:[0,1,32,4,5,13,14,15,16,18,19,20,21,22,43,24,25,55,28,30,31,33,34,35,37,39,41,42,44,36,46,48,50,52,53,56,57,58],x2260:22,take:[11,0,13,14,15,1,34,50,32,3,52,33,5,27,24,53,56,41],emnu:6,noth:[22,13,15,34],channel:[21,48],updownarrow:33,begin:[21,13,46,30,52,50,32,33,4,27,56,57,41],sure:[44,13,14,46,52,50,19,3,33,4,22,35,56,41],windowset:6,normal:[16,39,15,33,2,4,22,35,24,57,59,28],buffer:27,compress:41,beta:[33,13,41],pair:[11,0,15,49,33,4,35,27,21,40,31,26,59,54],fileurl:0,beth:33,hotfix:41,latex:[12,13,30,48,33,4,22,25,57,41],renam:14,textarea:[4,35],later:[44,13,31,39,15,30,18,50,33,34,36,41],drive:46,typeset:[0,32,4,6,13,19,20,21,23,24,25,55,28,29,34,35,38,31,45,39,9,48,50,51,52,53,56,57],badg:3,sigma:33,mathfrak:33,showmathmenu:[39,24],downdownarrow:33,show:[33,13,46,6,5,3,52,16,34,49,24,10,22,54],autoreset:15,cheap:28,parentnod:[19,2],newcomand:13,concurr:32,permiss:[22,46,30],htmlcss:26,isfirefox:31,corner:[45,24,20],xml:[25,48,13],onli:[0,1,2,3,16,5,41,13,14,19,22,49,24,25,55,28,30,44,34,35,39,40,31,4,46,48,33,52,56,57,59],slow:[56,13,26],activ:[13,14,46,15,48,3,52,16,53,36,57],enough:[13,36,50,22,49,56,41],inlinedelimit:33,otim:33,black:[33,13],offici:[13,41],geq:33,mypic:[4,9,35,29,49],nearli:[16,33,41,54],variou:[0,31,1,44,17,59,20,21,5,24,40,41,57,54],get:[32,4,11,12,13,30,19,20,22,27,24,26,28,15,2,33,34,39,41,42,44,36,46,50,52,56],soon:[13,41,2,24,52],cannot:[33,30],ncong:33,lighter:28,theta:33,requir:[0,13,14,16,15,34,31,50,2,51,33,4,22,35,43,21,25,40,41,26,57],truli:52,prime:[33,13],reveal:13,lceil:33,mathpunct:33,rerend:[40,31,55,52],enspac:33,hostil:22,intermitt:[45,20],shortmid:33,qquad:33,retypeset:52,where:[0,32,3,16,5,41,11,13,14,30,20,21,22,23,26,27,28,15,34,39,40,31,33,45,46,55,59,52,53,56,57],wiki:[1,48,2,33,22,57,41],latexmathml:30,keyboard:48,ismac:[31,32],concern:[57,31,30],infinit:[13,27],detect:[19,13,2,15],parent:[11,42],enumer:33,label:[13,6,33,27,56,54],behind:33,between:[33,13,31,39,15,30,34,50,19,6,21,22,56,57,41,55,28],maltes:33,"import":[0,13,46,16,50,19,21,53,41],across:[48,56],assumpt:33,moveright:33,longleftrightarrow:33,vdot:33,screen:[0,13,39,50,19,20,16,25,52,26,28],popul:32,negmedspac:33,come:[33,14,46,50,2,16,34,36,56,57,41],leftleftarrow:33,fit:[21,6],timout:0,pertain:22,audienc:[56,36],inconsist:14,overbrac:33,mani:[33,13,31,53,50,19,4,34,35,56,41,59],among:41,endtoggl:[33,13],color:[13,48,59,19,33,49,24,38],operatornam:[33,13],period:[0,45,46],colorbox:[33,13],colon:[33,59],autmat:33,cancel:[33,13,15],typic:[33,46,30,4,22,40,41],"70kb":41,bigcirc:33,msrow:36,damag:22,needlessli:34,tabel:56,myserv:41,rebuild:31,mstyle:13,mark:[0,13,36,30,33,4,22,35,37,57,59,28],succapprox:33,mtextfontinerhit:13,fade:5,arcsin:33,xrightharpoonup:33,processenviron:4,breve:33,texfont:5,blacktriangl:33,former:47,those:[16,5,13,41,18,21,22,49,24,25,26,15,33,34,40,31,43,44,36,46,55,50,52,57,59],"case":[2,33,13,14,17,21,22,49,24,55,54,15,34,39,41,42,46,47,26,50,52,56,57,59],kappa:33,tostr:15,oldstyl:33,addtext:11,trick:33,invok:56,eqnchunk:[13,39,28],invoc:41,margin:[59,27],tbinom:33,advantag:[13,14,1,50,56,41],barwedg:33,leadsto:33,mlongdiv:36,worri:[21,57],destin:31,updatemath:52,bigwedg:33,myclass2:[4,35],develop:[14,46,48,3,36,41],author:[13,14,30,20,33,22,43,24,38,25,57],media:[59,41,46],postjax:[57,24],same:[4,16,7,13,14,19,21,22,27,24,26,28,29,30,33,9,35,41,44,46,50,53],html:[1,2,4,5,8,11,12,13,14,17,19,21,22,49,24,26,28,29,30,31,32,9,35,36,37,39,10,41,16,45,46,48,33,6,52,53,54,56,57,58,59],pad:[11,33,13,59],knuth:48,mathvari:[13,39,57,28],document:[0,2,33,41,12,13,14,17,22,24,25,26,30,37,31,4,36,46,48,52,56,57],finish:[13,48,50,2,52,53,31],vvdash:33,nest:[13,45,19,4,36,56,28],availablefont:[5,41,39],someon:33,longleftarrow:33,capabl:[17,25,56],formaterror:31,improv:[13,14,19,3,24,56,41],extern:[0,45,53,50,21,34,31],gnsim:33,submenu:[13,24,6,7],appropri:[16,13,33,21,37,40,26,57],macro:[13,19,33,22,27,24,41,54],mml_svg:[16,13,41],leftharpoonup:33,eqnchunkdelai:[39,28],overwithdelim:33,without:[0,13,14,39,34,48,33,21,5,31,36,24,57,41],model:[12,13,45,46,17,32,33,56,57,42],bigotim:33,stixfont:5,mml2jax:[13,36,9,16,22,24,57,54],loaderror:0,tip:[33,13],greasemonkei:[13,41,2],bitmap:48,aspect:13,flavor:[16,41],speed:[13,14,19,56,57,41],versu:50,strikeout:33,widest:[22,36],asciimathml:[13,30],nleqq:33,filevers:45,except:[16,22,56,53],littl:[0,44],blog:[1,48,33,22,57,41],rescal:56,treatment:33,yuicompressor:19,earli:[41,19],hover:[38,13,6,24,51],around:[33,13,41,30],read:[14,46,48,49,19,21,22,36,41],outermost:49,boldsymbol:[33,13],messsag:20,getjaxbyinputtyp:31,moo:42,world:[25,34,41],lasterror:31,mod:[33,13],sum_:57,blackberri:19,whitespac:13,cdot:[33,13],previewfilt:13,fontstyl:13,integ:[33,31],server:[33,13,14,46,2,19,16,22,39,41],either:[0,13,14,46,1,44,17,49,33,2,4,22,35,27,38,21,56,31,41,58,59],output:[32,16,41,8,12,13,14,19,21,22,23,24,26,28,30,45,37,40,31,42,33,36,39,48,55,59,6,52,54,56,57,58],rollov:19,manag:[11,45,46,1,34,48,32,20,33,22,57,55],lesssim:33,searrow:33,sqcup:33,constitut:17,pod:33,slice:15,definit:[0,13,39,33,19,51,16,59,23,6,38,25,27,28],iff:33,shoveright:33,inputid:55,inject:13,dashleftarrow:33,mathcal:33,complic:[48,49,36,58,56],refer:[42,12,13,31,46,16,22,32,33,2,52,21,5,27,34,53,40,41,44,43,55],arrow:[33,13],power:[50,3],inspect:31,broken:57,formatid:27,fulli:[22,50,36],regexp:[4,35],"throw":[26,40,43,2],trianglerighteq:33,comparison:[50,31],central:24,ibook:[56,13],firstnam:34,ddddot:33,stretch:33,act:[33,48,50,21,34,27,24,57,28],industri:48,needsupd:[40,55,52],processor:[32,33,8,13,22,23,26,27,54,30,47,41,16,36,39,48,50,6,28,56,57,58,59],hookrightarrow:33,nobreakspac:33,routin:[11,0,13,53,34,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,9,12,13,14,16,19,22,27,24,25,28,29,30,31,33,34,35,37,38,39,10,41,23,36,46,47,48,49,50,51,52,53,56,58],sqsupseteq:33,log:[33,22,46,20],area:[13,27,20],aren:[33,13],fontwarn:[5,13,24,54],lor:33,strict:46,compliant:[14,19],interfac:[13,46,1,22,7,25,10],low:15,lot:[21,13,27,46],machin:[48,46],lambda:33,verbatim:33,cloudfront:22,buggi:33,categor:54,longer:[44,13,14,46,2,20,16,24,56,39,28],pull:46,mathml:[2,33,7,8,10,12,13,19,22,24,25,55,54,30,40,41,16,36,48,26,52,28,56,57,58],furthermor:[14,50,41,24],possibl:[0,13,36,46,15,30,22,50,19,33,20,16,5,24,34,56,57,41,42,59],"default":[0,32,4,5,6,8,13,14,15,16,20,22,27,24,26,28,29,30,31,47,35,37,38,39,40,41,43,23,46,9,33,51,54,56,57,58],processescap:[4,14,33,41],buildrel:33,notag:33,asiimath2jax:30,embed:36,expect:[39,50,52,33,24,41,28],taylor:22,creat:[0,32,3,33,11,20,21,43,26,15,34,40,42,44,45,46,48,55,50,6,53,57,59],certain:[21,44,53],leftrightsquigarrow:33,risingdotseq:33,varliminf:33,file:[0,1,2,16,5,7,8,10,13,14,15,18,19,20,21,22,27,24,26,28,30,44,32,33,34,31,37,39,40,41,43,23,45,46,47,48,49,50,53,54,55,56,57,58,59],momentarili:31,outputjax:[45,17,55,32,43,31,26],fill:[56,58],again:[33,0,31,55,52],iiiint:33,googl:3,pmod:[33,13],reduct:[56,13],field:[56,13],valid:[34,14],getscript:[11,13],you:[1,2,3,4,5,7,8,9,13,14,15,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,39,10,41,42,43,16,36,46,47,48,49,50,6,52,53,54,56,57,58,59],trash:55,poor:56,resolut:25,registri:13,sequenc:[12,13,31,46,18,33,32,21,53,27,41],symbol:[33,22,27,30,47],begingroup:[33,13],dashv:33,track:[57,26,3],menuset:[16,24,38],reduc:[33,13,41],mathcolor:33,lbrace:33,eqchunkdelai:[39,28],directori:[0,13,46,16,53,48,32,19,20,21,22,43,24,55,39,40,41,26],descript:[13,29,9,2,4,5,35,45,24],lbrack:33,scroll:10,calle:42,potenti:50,extpfeil:[33,13],escap:[33,27],dst:31,negthickspac:33,represent:[57,55,52],all:[0,1,2,4,5,12,13,14,16,19,20,21,22,27,24,25,26,28,29,15,44,31,32,33,34,35,36,39,41,42,43,23,45,46,9,48,50,53,54,56,57,58],consider:41,illustr:52,dollar:[33,14,30,4,22,35,41],improperli:4,code:[0,32,3,4,7,11,12,13,14,16,18,21,22,43,24,26,29,15,31,2,33,34,35,41,44,45,9,48,49,50,52,53,59],abil:[13,14,46,48,19,33,56,57],follow:[32,16,13,14,17,19,21,22,27,26,28,15,34,39,40,41,42,43,33,46,49,59,52,54,57],alt:[13,2,24],disk:[16,22,41,46],multlinewidth:27,scr:33,articl:48,matrix:33,init:42,program:[45,1,53,17,55,50,32,22,25,57,42],smile:33,introduc:[22,13,41,56],global:[13,45,15,17,52,33,56],multlin:[33,13,27],vert:33,far:[0,44,46,30,20],renewcommand:33,"1px":[11,33,13,59],verb:33,mechan:[44,15,18,50,32,33,21,53,42],loadcomplet:[33,0,31,41,43],veri:[38,7],strang:36,alterant:48,list:[1,32,4,5,6,7,8,10,13,31,17,21,22,27,24,26,28,29,15,33,47,35,38,39,40,41,23,46,9,48,55,50,51,52,57,58],"_html":56,emul:[56,13],adjust:[13,39,2,52,23,7,10,41,28],displaylin:33,small:[13,39,19,20,33,23,57,27,28],dimens:[33,13,19,24],getalljax:[31,52],difficulti:33,lll:33,tex:[1,2,4,5,7,8,10,12,13,14,19,21,22,27,24,25,28,29,30,33,31,36,37,39,40,41,43,16,45,46,48,50,52,54,56,57],zero:[5,18],design:[36,2,3,16,25,10],pass:[0,13,14,16,15,44,18,50,19,6,21,34,32,57,31,42,54],overlin:33,further:[18,50,56,57,26,40],what:[0,32,3,4,5,6,12,13,41,15,19,22,27,24,25,28,29,30,9,35,38,31,23,36,39,33,51,52,56,57],sub:45,sum:[33,15],ast:33,abl:[16,13,14,46,15,1,22,33,52,21,5,36,24,7,25,39,10,41],delet:[33,39],version:[2,3,16,41,12,13,14,19,22,27,26,28,30,32,34,38,39,40,31,43,33,45,46,55,52,56],sup:33,row:13,method:[11,0,13,14,42,15,44,18,50,20,21,34,31,43,52,53,40,41,26,55],hasn:[0,14,32,20,40,26],full:[0,13,34,17,19,2,52,16,22,24,25,57,41],themselv:[13,45,32,16,22,49,31],geqslant:33,modular:[25,13,36],ggg:33,trunk:46,ineffici:[42,24],modifi:[12,13,14,16,1,52,33,20,21,22,31,43,41,26],valu:[0,32,4,5,6,9,8,11,18,19,21,23,24,26,27,28,29,15,34,35,38,31,42,33,36,39,47,49,50,51,52,54,57,58,59],search:[25,12,31,3],sender:21,prior:[33,56,36,2,24],amount:[33,5,31,27,15],pick:56,action:[0,2,33,13,41,30,18,20,21,43,26,15,32,34,38,40,31,44,45,48,50,52,53,57],mathjax_wikipedia:2,mml_htmlormml:[14,1,2,16,22,7,56,10,41],llap:33,chunki:[39,28],via:[0,1,2,4,5,13,14,19,20,21,22,43,24,55,54,15,32,35,38,39,41,42,16,36,46,50,57],shorthand:52,equalrow:13,int_0:33,filenam:[14,13,41,34],href:[33,13,49,19],inappropri:[21,13],emptyset:33,famili:[33,0,39,28],decrement:18,establish:16,select:[13,36,46,6,16,56,39,31,58,28],hexadecim:33,proceed:[50,49],x41:33,distinct:17,ctrl:24,regist:[0,31,44,48,33,32,21,53,43,40,41,26,57],two:[21,13,16,30,53,49,50,33,4,22,27,24,41,59,54],splash:13,taken:[33,13,50,52,21,56],imath:33,basi:[56,41,58],toggl:[33,13],more:[16,5,41,7,10,13,14,18,19,22,23,24,25,28,15,33,34,37,39,40,31,42,43,44,46,48,49,50,52,53,56,57,58,59],flat:33,diamond:33,desir:[42,46,13,2,16],henc:46,ital:[0,13,48,33,22,24],unzoom:13,aleph:33,particular:[11,0,13,31,46,15,30,34,48,18,59,33,22,42,24,53,56,57,41,44],webkit:[13,31,19],upsilon:33,mathml3:[56,13,36],cach:[21,41],showmathmenumsi:[23,19,24],none:[44,29,39,15,9,31,4,34,35,27,24,57,41],eta:33,mmlorhtml:[13,16,24,56,58,54],det:33,dev:3,histori:[21,44,32,48],remain:[16,48],paragraph:[13,39,22,52,33,5,57,28],caveat:[22,26,46],def:[33,27,42],deg:33,mathtip:[33,13],scan:[13,31,24],myspan:49,challeng:16,registr:43,share:[13,46,3,22,24,41],accept:[34,15,52],succneqq:33,minimum:[39,31,23,19,28],unreli:14,explor:[0,13,2,19,20,33,34,24,56,57,52,26,54],sharp:33,mathinput:52,huge:33,cours:[14,50,41,36],newlin:[33,39,19,28,20],awkward:42,secur:[22,2,46],programmat:[57,37],anoth:[44,46,33,18,50,20,21,53,40,52,57,54],comfort:46,csc:33,amssymbol:[16,14,33,41,22],ddagger:33,stix:[13,39,48,19,33,5,56,46,57,41],reject:13,simpl:[56,49,24,20],css:[0,16,5,6,41,8,12,13,14,19,22,23,24,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:19,referenc:[5,27],algebra:48,iphon:19,variant:[48,13],reflect:[32,52],plane:13,mstack:36,blacker:28,impliedbi:33,associ:[57,13,39,15,55,52,33,34,23,40,31,26,43,28],curlywedg:33,stabil:13,circumst:13,github:[14,46],footer:41,confus:[22,13,14],ambigu:17,caus:[0,33,5,13,41,20,21,22,27,24,26,30,44,34,35,36,40,31,4,45,46,55,50,6,52,56,57],callback:[0,13,45,15,44,17,18,50,32,52,21,34,48,53,40,31,26,55],firefox3:39,alphabet:13,merror:[13,59],unrhd:33,help:[12,13,14,46,3,22,24,56,41,6],autoload:33,trade:[56,41],through:[44,13,14,46,50,19,33,21,53,36,56,57,41,42,54],hierarchi:[41,46],suffer:[56,13],paramet:[0,32,16,41,11,13,14,30,18,19,20,22,27,24,26,54,29,15,34,38,40,31,42,43,44,9,55,33,52,56],style:[0,32,33,5,51,11,12,13,19,20,22,49,24,28,35,38,31,4,39,48,59,6,23,57],arial:[33,39,28],x221a:36,processupdatetim:31,x221e:57,late:[48,13,2],isreadi:[45,32],pend:18,amsmathaddit:50,mathplay:[13,2,19,6,16,24,56],might:[0,13,14,46,34,50,36,3,21,22,27,57,41,26,28],alter:[4,55,52],finer:13,cee:[33,13],good:[50,2,28,3],"return":[11,0,36,42,15,44,18,50,20,21,34,27,52,53,40,31,26,43,55],textstyl:33,hslash:33,getelementbyid:52,wilipedia:48,rlap:33,detach:13,equationnumb:[33,13,27],xtwoheadleftarrow:33,redesign:[56,13],mathscr:33,instruct:[49,22,14,2,1],critic:46,bigcup:33,easili:[25,22,57,48],token:13,x2212:[22,57],found:[0,46,22,3,34,24,56,40,26],unicod:[13,36,39,33,5,28],x2211:57,subsystem:32,interleav:13,originaltext:55,weight:[13,49,42],setrender:[13,31],hard:[46,19,3,16,22,41],realli:[34,24],nless:33,connect:[13,34,16,22,57,41],math2:[33,13],math1:[33,13],beyond:[33,3],orient:[17,42,45,32],ismathjax:13,nleq:33,mhchem:[33,13],shortcom:53,skiptag:[4,13,35],print:[25,56,13,46,59],occurr:53,msie:[31,58],foreground:59,assist:[16,13],safari3:39,advanc:[17,12,41,25],offsetx:[39,28],symbian:19,mml:[13,41,58,16,22,45,56,40,31,55,57],reason:[0,36,30,34,50,2,20,33,22,27,56,31,43],base:[13,14,46,15,1,53,17,32,2,56,5,31,45,55,25,39,41,42,43,28],put:[0,13,14,46,30,53,33,22,24,56,41,54],mathr:33,processupdatedelai:31,offseti:[39,28],ispc:[31,32],succnapprox:33,stanard:33,texerror:13,drupal:1,msbm10:22,taht:23,showprocessingmessag:[24,54],perhap:[34,41],bumpeq:33,perman:33,elementjax:[13,45,17,55,32,43,40,26],stixgener:[33,39,28],getelementsbytagnam:2,assign:[4,34,35],major:[25,56,13,41,2],notifi:21,boxplu:33,upper:33,feel:3,exchang:48,lastnam:34,number:[0,1,32,16,5,41,13,14,19,20,22,27,24,26,28,15,47,39,40,31,43,33,45,46,34,49,50,52,55,56],grtaphic:57,fadeoutstep:5,done:[13,18,50,32,33,22,57,41],construct:[50,57],blank:[44,15],stabl:[22,41,46],miss:[33,13,15,30],differ:[33,13,31,46,15,34,58,50,52,21,22,24,53,57,41,42],euqat:56,script:[0,1,2,4,41,7,10,11,13,14,19,21,22,43,24,26,32,33,35,37,40,31,16,46,55,50,52,56,57],interact:[13,31,39,22,25,57,41,55,28],smoother:5,least:[31,41,57,30],statement:[50,15],natur:[25,22,33,46,57],illeg:[49,41,19],store:[11,44,13,14,39,15,55,50,19,52,34,31,45,37,38,40,41,26,57],xmln:[22,13],option:[4,5,6,41,7,8,12,13,14,22,23,24,27,28,29,30,47,35,37,38,31,42,43,16,39,9,49,33,51,54,56,57,58],nleftarrow:33,eqn:27,ntrianglerighteq:33,selector:[59,24,20],tex2jax_process:4,part:[4,2,16,7,13,30,21,22,27,24,25,26,15,41,42,33,36,46,50,53,56,57],pars:[33,13,19,30],mmltoken:33,binom:33,cosh:33,kind:57,aaa:27,prebuilt:22,whenev:[44,36,46],remot:46,remov:[44,13,31,39,15,52,55,33,19,20,4,5,35,24,57,41,26,28],dtd:22,bridg:[14,55],arrang:15,toward:13,markup:[0,36,30,48,33,22,57,28],ffff88:59,comput:[39,48,33,56,46,31,28],nleqslant:33,packag:[46,30,48,33,27,37,41],expir:11,"null":[11,0,45,42,15,44,2,19,20,5,43,24,52,55,39,40,31,26],built:[12,14,2,56],equival:[11,15,50,52,16,34,49],lim:33,self:[22,13,36,19],ell:33,also:[2,3,4,11,13,14,30,17,20,21,22,23,24,55,28,15,34,39,41,42,16,36,46,48,33,6,52,53,56,57,58],brack:33,build:22,brace:[4,33,13,2],triangleleft:33,distribut:[14,10,41,46,22],index:[22,46,1],addel:11,reach:41,took:13,react:44,most:[16,13,45,46,15,1,48,2,33,19,21,22,32,43,56,57,41,42,59],plan:22,rho:33,alpha:33,rhd:33,vardelta:33,renewenviron:[33,13],clear:[44,13,39,15,32,20,21,28],tpl:1,h2o:33,exp:33,usual:[13,15,30,34,50,33,5,43,24,57,41],leftroot:33,cdata:19,nshortparallel:33,carefulli:[49,39,28,52],cdn:[33,13,14,46,1,19,2,52,16,22,37,7,56,10,41],flicker:[13,39,28],finv:33,particularli:[16,13,46],rightleftarrow:33,font:[0,33,5,12,13,14,19,20,22,49,24,25,26,27,28,39,41,46,48,59,6,52,53,56,57],find:[13,31,3,52,33,5,37,7,57,41],preremoveclass:24,cell:56,execut:[0,15,44,18,50,32,33,21,34,57,41],pretti:46,solut:[22,57,46,3],delayedx:15,queu:[18,50,41,15,44],factor:[13,39,19,23,24,56,28],noerror:[16,22,13,33],jaxfil:43,tagsid:[13,27,54],precnsim:33,express:[21,13,39,44,50,33,4,22,35,27,24,56,52,26,28],strut:33,nativ:[13,36,17,2,16,25,56,57,58],mainten:14,rest:[0,36,50,52,33,22,25,57],donald:48,restart:[13,46,18,50,4,35,41],ie9:[46,13,19,56],ie8:[56,13,19],ie7:[56,13],acut:33,vmatrix:33,common:[12,13,14,30,1,22,48,49,33,36,16,5,31,43,41],set:[0,2,4,5,6,9,8,11,13,14,15,16,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:[12,13,45,31,2,50,19,52,21,32,43,24,41],lion:13,barb:33,sec:33,arg:33,ams_hml:41,disadvantag:56,langl:33,inconveni:14,someth:[33,46,3,52,4,22,24],particip:3,won:[13,46,50,19,33,56,41],columnspan:36,subscript:[33,22,13,19],experi:24,altern:[0,30,33,34,57,42],numer:[33,31,36],complement:33,javascript:[0,1,2,16,5,6,7,12,14,17,21,22,27,24,25,55,28,15,33,34,38,10,41,42,23,45,39,48,49,50,51,52,53,54,56,57,59],isol:[33,13,19],mailbox:[21,48],bmatrix:33,consumpt:19,distinguish:40,longrightarrow:33,errat:41,classnam:2,searpat:4,varsigma:33,unstar:33,last:[0,46,15,18,59,33,31,26,54],delimit:[33,13,14,30,19,4,22,35,57,41],hyperlink:57,mathzoom:[13,59,16,38,26,54],event:[0,13,16,48,2,19,51,52,21,53,32,24,57,26,6],nvdash:33,grei:[33,32],context:[13,15,6,4,35,24],overset:33,hbar:33,whole:[53,31,45,52],load:[0,1,2,16,8,10,12,13,14,18,19,20,21,22,27,24,25,26,28,15,44,32,33,34,31,37,39,40,41,43,23,45,46,47,48,50,52,53,56,57],markdown:[48,22,33,57],simpli:[16,14,46,15,30,9,31,18,33,52,4,34,35,29,24,25,40,41,26,43,37],point:[33,18,41,47,22],instanti:42,priorit:[13,15],usemathmlspac:8,fcolorbox:[33,13],header:[13,41,46,1,7],suppli:[31,55,24,15],bigve:33,mistak:49,zeta:33,throughout:33,vertic:[4,35,26,24],notaion:12,gneq:33,devic:[13,14,19,25,56,41],due:[13,14,39,28],empti:[13,45,39,15,50,32,24,57],sinc:[0,33,41,13,14,30,16,18,19,21,22,23,24,27,15,31,42,44,36,39,50,52,53,56,57,59],invis:[33,46],fire:[34,32,41,2,52],imag:[13,14,46,49,9,48,19,2,4,5,35,29,25,39,41,26],descib:30,coordin:[18,50,57],understand:[16,57],demand:16,urcorn:33,sqcap:33,blacksquar:33,look:[1,4,3,33,7,11,13,15,20,22,54,30,35,39,31,44,36,46,59,52,28,57],bcancel:[33,13],solid:[11,33,59],histor:56,pitchfork:33,lvert:33,"while":[11,0,14,46,22,58,50,2,47,33,21,5,36,24,53,57,41,44],blacktriangleleft:33,nprec:33,behavior:[13,14,46,24,39,41,28],circlearrowright:33,bookmarklet:41,everyon:[21,28],loop:[13,27,55],pack:19,subsect:[27,43],measuredangl:33,readi:[16,45,33,32,21,43,40],jpg:[4,9,35,29,49],biguplu:33,itself:[32,33,41,13,14,18,21,24,55,54,15,45,40,31,42,44,36,46,26,50,56,57,59],peramet:40,rightarrow:33,minim:26,xleftarrow:33,belong:13,shorten:20,shorter:19,am_htmlormml:[16,22,13,41],redisplai:20,htmlcsslast:26,conflict:[33,57,19],higher:41,upuparrow:33,optim:[56,13,19],wherea:33,domin:48,alert:[21,34,50,15],moment:[22,40,46],temporari:41,user:[32,3,16,5,6,12,13,41,20,21,22,23,24,25,28,15,2,37,38,39,31,33,36,46,51,52,56,57,58],robust:[21,48],stack:27,recent:[25,2],lower:[13,45,17,19,32,20,33,24],task:33,older:[41,36],entri:[13,48,18,59,19,33],searchabl:25,chemistri:13,person:34,textit:33,expens:[56,57],normals:33,scriptsiz:33,badbreak:56,fallingdotseq:33,explan:[33,22],rvert:33,obscur:[19,20],mathinn:33,amp:[33,19,30],regardless:[13,52],seriou:57,cup:33,setscript:11,blacklozeng:33,endgroup:[33,13],ffeeee:33,rgb:33,input:[32,16,41,7,8,40,13,14,19,21,22,27,24,26,54,30,47,36,37,10,31,42,43,33,45,48,55,50,52,56,57],subsequ:[33,40,26],oslash:33,asciimath:[12,13,30,47,48,16,22,35,25,57,41,54],konqueror:[56,31],big:[33,54],moodl:1,intuit:48,tomathml:[16,55],game:33,insert:[33,13,29,39,15,2,4,9,35,43,24,7,10,31,26,57,28],bit:[13,42],diagup:33,success:[56,13],semi:59,varkappa:33,signal:[44,13,45,15,53,17,32,21,34,31,43,48,41],asciimath2jax_process:35,resolv:[13,19],collect:[15,48,50,34,55,59],"boolean":31,popular:[22,37,1],swarrow:33,asciimath2jax_ignor:35,scrip:14,often:[13,39,30,59,33,22,57,28],simplifi:19,creation:[40,32],some:[1,2,33,5,13,14,15,17,18,21,22,23,24,25,26,27,28,30,34,31,39,40,41,42,43,36,46,55,50,52,54,56,57,58],back:[46,30,22,55,33,5,35,26],emph:33,urgent:41,sampl:[33,46,53,59,32,52,21,22,24],instal:[12,13,14,46,22,19,56,33,5,7,25,39,41],scale:[13,39,19,33,23,24,25,28],per:13,substitut:27,mathemat:[0,32,4,5,6,7,10,13,31,19,21,22,23,24,25,26,27,28,29,30,33,9,35,37,38,39,40,41,43,16,36,46,48,55,50,51,52,56,57],larg:[0,13,14,33,41,58],prod:33,reproduc:[13,52],tex2jax:[16,13,14,19,33,36,2,52,4,22,45,24,57,41,54],cgi:0,garamond:33,previou:[44,13,15,50,20,34],run:[0,2,4,5,9,8,13,31,18,21,22,23,24,27,28,29,15,32,47,35,39,41,44,36,46,34,50,52,53,57,58],doteqdot:33,odot:33,step:[13,1,22,32,5,57],hookleftarrow:33,varsubsetneq:33,carol:33,impos:46,ngeqslant:33,reappear:20,materi:[56,19,52],prove:[56,13],dialog:[13,19],rangl:33,succcurlyeq:33,block:[13,14,39,22,19,2,33,5,32,23,24,56,57,41,43],file3:50,file2:[0,50],file1:[0,50],file4:50,bmod:[33,13],within:[0,32,33,5,41,13,14,30,17,19,22,27,26,15,34,35,37,31,42,4,36,46,52,53,57],prec:33,notat:[13,30,48,33,22,25,57,41],isjax:[13,31],announc:53,inclus:[39,28],triangl:33,question:[22,43,3],fast:[14,41,19],custom:[33,30,19,20,16,22,25,56],referenec:31,perp:33,plane1:13,suit:[14,47,5,36,41,22],nativemml:[13,36,48,58,6,16,23,56,57,31,26,54],overleftrightarrow:33,ulcorn:[33,13],doctyp:[22,36],reorgan:13,poster:44,atop:33,loadhook:[0,13,31,34],serif:[0,39,28],link:[13,14,46,1,22,17,19,33,5,27,53,41],translat:[26,40,43,19,57],delta:33,line:[33,13,14,46,1,47,48,19,2,35,4,22,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,15],xmapsto:33,enlarg:38,constant:[21,27],parser:13,xlink:13,doesn:[16,46,15,30,55,33,21,24,39,41,42,28],repres:[11,33,29,22,48,59,20,4,5,35,49,24,25,9,26,57],"char":33,mathdiv:[11,34,50,52],opera10:39,guarante:[0,50,52,18],ebook:[56,13],gecko:[13,31],phantom:33,bigoplu:33,iiint:33,titl:[22,52],sequenti:[53,50,32],invalid:[33,49],llcorner:33,toaudibl:55,bracket:[33,49,24],shoveleft:33,xrightarrow:33,department:46,supseteq:33,nice:2,lozeng:33,delayclear:[39,28],msup:[22,57],eqnchunkfactor:[39,28],alttext:9,varsubsetneqq:33,eval:15,fisher:33,newcommand:33,svn:[22,14,46],rightharpoonup:33,land:33,algorithm:[56,13],mimetyp:[55,40,43,26],svg:[13,48,19,6,16,54,56,57,41,28],supseteqq:33,liminf:33,depth:[33,56,13],dot:[33,13],doublebarwedg:33,hello:34,prototyp:42,mathjax_displai:59,partial:33,edg:[56,13],queri:57,tiddlywiki:1,overlap:56,edu:46,privat:[53,43,46],elsewher:52,friendli:22,send:[21,44,41],becam:48,sens:57,sent:[21,44,31,48],actiontyp:[39,28],unzip:46,whichev:33,xxxxxxxx:[22,46],mous:[13,39,19,51,16,6,38,57,26,28],doublecap:33,untouch:33,skew:33,tri:[0,14,39,33,23,28],ischrom:31,mathit:33,button:46,geograph:41,fewer:16,"try":[13,46,3,21,22,43,42],xcancel:[33,13],userscript:2,maction:[33,39,13,19,28],pleas:[49,3],impli:33,smaller:[16,0,13,19,57],fortun:21,getjaxfrommath:26,exten:30,annot:13,jump:[13,32],unpost:13,download:[0,13,14,46,22,19,5,24,25,57,41],hspace:33,click:[33,13,6,16,24,38,7,57,26],append:[11,46],compat:[33,13,39,48,19,4,27,24,56,41,28],appendchild:[11,2],turn:[11,44,13,14,16,15,4,35,36],compar:[56,13],access:[44,13,46,1,34,55,50,19,6,33,16,22,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,11,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,30,31,32,33,34,35,36,37,39,40,41,42,43,44,45,46,48,50,6,52,53,54,56,57,58,59],vargamma:33,closur:[34,15,52],leq:33,intercept:22,let:[13,14,46,49,6,33,22,36,24,31,58],sinh:33,safer:13,becom:[13,14,46,15,50,3,21,36,56,42],altough:34,tex4ht:57,rtime:33,convert:[12,36,15,30,33,2,20,4,37,25,57,26],convers:[33,30],scriptlevel:13,larger:[13,39,16,22,56,57,41,28],technolog:[25,16,3],zscale:24,circledast:33,chang:[1,2,33,41,13,14,19,20,22,27,24,55,28,47,39,40,31,16,46,6,52,56,57],honor:[39,13,23,46,24],chanc:[4,21,35,44,22],calibr:13,firefox:[13,46,2,19,56,31,58],rgroup:33,tau:33,appli:[13,46,33,23,56,39,41,42],iskonqueror:31,lessgtr:33,api:[17,12,13,25,22],smallmatrix:33,oval:33,"221a":13,cloud:[14,41],from:[0,1,2,4,10,12,13,14,15,16,19,20,21,22,23,24,26,27,28,29,30,31,32,33,34,35,37,39,40,41,42,43,44,45,46,9,55,50,6,52,56,57],zip:[22,19,46],commun:[21,12,13,3,22],chi:33,doubl:[33,13,16,27,24,38,26],upgrad:[5,46,3,12],varphi:33,next:[30,53,52,33,47,31,55],implic:46,few:[13,46,30,33,22,37],msqrt:[22,57],postprocess:43,bowti:33,panel:33,subsetneq:33,failur:13,preformat:19,src:[16,14,1,9,31,49,50,2,33,4,22,35,29,37,52,7,56,10,41],appropr:13,lippman:30,aquamarin:33,projlim:33,"4ac":22,rare:50,applyfunct:13,versionatleast:31,account:11,alik:2,retriev:11,augment:[42,40,43,26,13],scalabl:[48,56,57],underwai:50,aperson:34,halt:53,thin:[13,27],assum:[13,52],eqchunkfactor:[39,28],control:[4,16,5,51,8,13,41,22,23,24,27,28,29,47,35,38,39,31,33,46,9,59,6,56,58],bittersweet:33,tap:13,lesseqgtr:33,tar:46,process:[0,2,4,11,12,13,14,18,19,20,21,22,27,24,26,28,29,30,31,32,33,34,35,37,40,41,43,16,36,39,9,55,50,6,52,54,56,57,58],dfrac:33,newmath:52,divis:13,high:[25,56,57],tag:[1,2,4,41,7,13,14,19,21,22,27,24,26,54,30,32,9,35,37,40,31,33,36,46,49,52,55,56,57],tab:46,tan:33,delai:[0,13,31,39,16,15,44,51,20,21,24,38,57,41,6,28],fontwarns:59,gcd:33,pure:36,importat:17,lgroup:33,getelementsbytagnamen:2,subdirectori:[46,40,26,55],instead:[33,14,46,30,34,18,50,19,52,21,22,27,57,41],class4:42,class2:[4,35,42],sin:[33,13],sim:33,class1:[4,35,42],simplesup:[13,42],frac:[33,13],overridden:[13,39,26,20,43,55,40,42,28],mspace:[33,22,13,36,19],"_svg":56,anothermethod:42,frak:33,filtertext:20,redund:[13,42,24],essenti:[16,33,57,42,30],bind:13,correspond:[13,41,39,33,37,31],element:[32,16,5,11,13,41,19,21,22,27,24,26,28,44,33,35,40,31,42,4,45,39,49,50,51,52,53,55,56,57,59],reredn:55,newextarrow:33,allow:[1,2,4,6,13,14,16,19,20,21,22,27,24,25,26,28,33,34,38,39,41,42,44,46,48,49,50,51,59],fallback:[39,46],mjx:[11,27],fastest:[56,13],nonumb:33,scriptstyl:33,nsucc:33,comma:[59,2,33,24,41,54],dagger:33,mathjax_tooltip:[39,28],movabl:[10,1],chosen:[56,58],clickabl:33,coth:33,varxi:33,pretransl:[43,26],therefor:33,pixel:[48,39,13,26,28],multimap:33,crash:[13,24],sqsubseteq:33,handl:[0,2,33,5,41,13,14,30,19,21,43,24,26,15,45,31,4,36,48,50,51,53,56,58],auto:27,nokia:19,innermost:49,dai:[11,13],maxbuff:27,front:[16,19],successor:37,gggtr:33,sourceel:[21,55,26,52],anyth:[21,54,39,28,3],edit:[16,41,1,7],smallfrown:33,februari:12,mode:[33,13,46,19,4,22,37,56,39,57],varomega:33,"2em":33,circular:13,genfrac:[33,13],subset:[33,58],delaypost:[39,28],bump:13,chunk:[39,28],nointerest:44,meta:[56,13],"static":42,our:[14,46,19,3,22,10],meth:31,ie6:39,special:[16,13,31,30,34,33,4,22,35,36,24,53,25,56,57,41,59],out:[0,13,14,46,50,52,21,5,56,39,57,28],variabl:[45,15,17,42,32,52,33,34,56,26],lesseqqgtr:33,reflow:[26,13,19,56],stub:43,suitabl:33,rel:[0,13,19,24],moveabl:[10,1],circlearrowleft:33,ref:[33,13],math:[2,4,6,11,12,13,14,19,20,21,22,23,24,25,26,28,29,30,31,32,9,35,37,38,39,40,41,16,36,46,48,33,51,52,53,56,57],negthinspac:33,nsucceq:33,insid:[19,1],workflow:36,manipul:52,eqslantgtr:33,dictionari:13,releas:[22,13,41,2,46],afterward:34,indent:[27,24],could:[0,13,14,30,34,17,55,50,36,3,33,21,22,31,27,52,57,41,26],ask:[13,3,52,22,27,57,41,26],succ:33,timer:32,keep:[14,46,1,30,48,52,33,22,57,41,26],gtreqqless:33,length:2,outsid:[4,56,13],"0em":[59,24],retain:[33,28],softwar:[25,22,57,16],rbrace:33,blogger:1,rbrack:33,qualiti:[25,56,57],spadesuit:33,date:[14,41,19,46,22],uplu:33,clubsuit:33,bigsqcup:33,suffic:22,prioriti:15,"long":[13,39,50,19,6,33,22,28],start:[0,32,33,41,7,10,12,13,14,30,21,22,49,24,26,15,40,31,44,46,50,53,57],unknown:[13,36],respond:[44,28,39,24,3],flag:[13,24],system:[46,1,22,17,32,3,33,5,56,25,39,28],messag:[0,13,14,46,48,16,22,17,33,32,20,21,5,45,24,53,31,44,43],attach:[44,33,51,21,53,24,26],attack:22,termin:[4,35],man:22,"final":[14,34,33,22,49,25,57,26],rsh:33,supset:33,"1em":[59,36,28],gtreqless:33,hdashlin:33,exactli:13,haven:13,blind:57,ipad:19,preceq:33,gtrdot:33,see:[0,32,3,4,5,6,7,10,13,14,15,16,18,19,21,22,23,24,26,27,28,29,30,31,33,34,35,37,38,39,40,41,44,36,46,9,48,50,51,52,53,54,56,57,59],structur:[0,45,15,22,48,52,21,34,31,54,40,41,26,28],charact:[33,13,36,39,30,47,48,59,19,4,5,35,27,24,56,57,28],htaccess:[13,46],light:[33,42,38],bet:46,reposit:24,exhibit:46,deliveri:[22,19],biggl:33,biggm:33,rrightarrow:33,deprec:[16,22,41,24],unkown:31,have:[0,1,32,3,4,5,13,14,15,16,19,21,22,23,24,26,27,54,30,31,2,33,34,35,38,39,41,42,44,36,46,47,55,50,52,53,56,57],tabl:[56,13,36,30],need:[0,1,2,3,4,5,7,10,13,14,15,18,19,20,21,22,27,24,25,26,28,30,31,32,33,34,35,39,40,41,42,43,16,36,46,47,48,55,50,52,53,56,57,58,59],nsim:33,border:[11,33,13,59],gdef:[33,13],issu:[0,13,31,3,20,36,24,56,57,41],min:33,mid:33,fontdir:26,which:[1,32,4,10,13,14,15,16,19,20,21,22,27,24,26,28,29,30,31,2,33,34,35,36,37,38,39,40,41,42,44,45,46,9,49,50,52,54,55,56,57,59],hbox:[4,33,13],mit:33,singl:[0,13,14,15,30,52,17,50,19,33,4,22,35,45,53,25,41,59],declaremathoper:33,mathjax_preview:[13,29,4,9,35,24,57],x22d6:33,unless:[22,13,19,15,56],who:[21,44,3],leftthreetim:33,why:33,underset:33,placement:19,url:[0,13,14,46,19,33,2,6,16,22,32,27,24,41],gather:[33,13],request:[0,13,15,44,32,50,19,33,21,34,41],face:[39,3,33,5,27,46,54],inde:[56,13,54],movablelimit:[13,19],nmid:33,determin:[33,13,31,1,32,4,47,24,56,41,26],flux:50,mtextfontinherit:[39,28],occasion:41,fact:[44,13,14,43],atopwithdelim:33,backsimeq:33,mathjax_messag:20,text:[1,2,4,5,7,10,11,13,14,19,20,21,22,23,24,25,55,27,28,29,30,32,33,34,35,37,40,41,16,39,9,48,49,50,52,56,57,59],verbos:[48,34,24],bring:57,woth:36,curlyeqsucc:33,highest:[56,13],locat:[0,13,14,46,22,31,33,32,52,4,5,35,29,24,21,9,41,26,57,37],jax:[32,16,41,8,13,14,17,19,21,27,24,26,28,30,47,37,40,31,42,43,23,45,39,48,55,33,52,54,56,57,58,59],much:[13,53,48,21,47,56,41],vartriangleright:33,should:[2,4,41,7,10,13,14,30,16,18,22,27,24,26,15,33,34,35,37,40,31,43,44,36,46,48,49,50,6,52,56,58,59],imagefont:[5,13,39],vartriangleleft:33,suppos:[14,13,41,52,34],"5px":[11,33],triangleright:33,"5pt":22,local:[33,13,46,15,22,50,2,52,16,5,24,41],hope:[5,14],meant:15,move:[13,14,46,23,24,39,28],overleftarrow:33,woff:[13,46],looparrowright:33,increas:[13,14,19],lucki:33,leqslant:33,smash:33,unprocess:[31,55,52],enabl:[33,13,14,39,30,1,4,22,35,7,56,10,41,28],organ:57,frown:33,stuff:31,she:56,contain:[0,1,2,4,5,11,31,16,17,18,20,21,22,27,24,26,28,29,15,33,34,35,39,40,41,43,44,45,46,9,55,50,52,56,57,59],typset:13,conform:22,frame:20,apolog:14,temporarili:20,troubl:22,issafari:31,mathord:33,statu:[0,46,34],error:[0,13,14,30,33,36,2,3,16,22,43,24,40,31,26],jmath:33,pattern:[4,35,24],goodbreak:56,misus:56,thumb:50,gtrsim:33,favor:[14,24],state:[50,26,40],quickest:22,chemic:33,neither:[5,49],equiv:[33,56,13],omicron:33,nshortmid:33,"2pt":33,kei:[11,0,15,44,18,21,24,31],texttip:[33,13],"2px":33,entir:[31,41,24,52],closebox:5,ker:33,addit:[0,33,5,13,14,30,18,19,21,22,24,55,15,34,40,31,16,36,26,50,52,59],skipstartuptypeset:24,plugin:[1,6,33,24,7,25,56,57],admin:[10,7],nabla:33,equal:[33,50,31,42,13],gnapprox:33,etc:[13,48,50,52,33,24,41],instanc:[11,31,55,50,4,35,43,41,42],equat:[4,16,13,19,22,23,24,25,55,27,28,29,47,35,39,31,33,46,9,26,52,56,57],class3:[4,35,42],eth:33,darker:28,limiti:46,lmoustach:33,onchang:52,comment:[33,59,19,16,22,24,41],varnoth:33,arriv:[21,53],solv:41,harpoon:33,arguement:34,respect:[23,39,15,28],showmathplay:6,quit:[56,52],showfontmenu:6,"55em":33,quotat:59,anomali:13,compos:36,defint:33,compon:[0,32,16,6,41,14,17,21,22,25,26,54,30,45,40,31,42,44,36,33,51,53,57,59],treat:[33,22,13,30],immedi:[0,13,52,18,50,2,33,21,32,41],incldu:57,smallsetminu:33,both:[0,14,30,34,48,32,50,19,33,16,22,31,36,24,7,56,10,41,42,57],alignat:33,varsupsetneq:33,otf:[46,13,19],psi:33,x_2:33,togeth:[14,15,50,16,36,31],x_1:33,injlim:33,present:[44,13,36,3,5,24,56,41,6],cot:33,twoheadrightarrow:33,multi:[33,13],iscallback:15,plain:33,align:[13,36,59,33,22,24],contextu:[12,13,45,39,58,55,6,16,23,24,38,56,57,36,26,28],studentdisplai:52,defin:[32,16,5,6,41,13,14,21,22,23,24,26,27,28,30,2,34,38,40,31,42,43,33,39,50,51,54,59],glossari:[48,12],layer:[19,1],almost:33,curvearrowright:33,site:[33,14,46,1,16,22,24,25,10,41],archiv:[22,46],substanti:[14,41,56],revis:46,unneed:28,greater:[33,56,30],formattag:27,welcom:3,displaystyl:[33,47,52],parti:[21,22],cross:46,sqrt:[33,22,13,57],getx:42,extensiondir:43,oint:33,supsetneq:33,android:19,cssid:[33,19],difficult:[34,36,53],phi:33,http:[13,14,46,1,2,6,52,33,22,37,7,56,10,41],d3eoax9i5htok0:22,lleftarrow:33,"8em":[33,27],effect:[18,50,2,38],mrow:[22,57],sooner:13,student:[13,52],canva:57,php:[1,7],executehook:[44,15],off:[33,19,16,53,56,41],center:[33,22,59,24,56],well:[16,36,46,15,34,33,3,52,21,22,35,43,24,53,56,41,59],exampl:[0,2,3,4,5,6,9,8,11,13,14,15,18,19,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:[13,31,46,15,48,18,50,32,52,33,36,24,41],achiev:13,choos:[33,22,13,56],undefin:[33,22,15,34],setx:42,subsetneqq:33,sibl:19,latest:[14,46,1,2,3,52,33,22,37,7,56,10,41],curlyeqprec:33,paus:[31,46],less:[33,46,30,4,22,35,39,57,31,28],obtain:[33,13,14,46,52,16,22,24,57,41,26],mistaken:57,mathclos:33,mathoutput:52,simultan:[50,32],web:[1,2,33,5,12,13,14,19,21,22,24,25,55,30,32,37,39,41,44,46,48,50,52,53,56,57],preprocessor:[16,13,14,30,9,31,33,36,32,45,4,22,35,29,24,52,57,41,54,37],current_them:1,detai:13,smith:34,textbf:33,cdotp:33,add:[42,16,13,14,15,1,18,33,4,5,35,43,24,55,56,26,59],cleanup:13,schedul:34,match:[44,13,39,4,35,23,28],rememb:28,webpag:37,piec:19,ntriangleright:33,punctuat:19,cpan:33,know:[44,13,34,33,21,22,56,40,41,26,57],cfrac:33,press:[24,52],somewher:41,tick:[33,22,35,30],recurs:[31,19],string:[0,15,44,49,33,20,4,35,27,24,21,31,55,59],loss:41,nofont:5,like:[2,4,13,30,18,19,20,21,22,25,28,15,33,34,35,37,39,40,41,44,36,46,47,48,50,52,53,54,56,57,59],lost:34,messagehook:[21,44,13,31],necessari:[13,31,2,22,25,56,41],resiz:56,page:[1,2,4,5,7,11,12,13,14,16,17,19,20,21,22,27,24,25,26,29,30,31,32,33,34,35,37,39,10,41,44,36,46,9,48,55,50,6,52,53,56,57],didn:33,captur:48,linux:[31,24],"export":55,superclass:42,proper:[33,44,13,31],home:[48,0,13,30],peter:30,librari:[17,50,45,46],glyph:[48,33,13],kern:33,rspace:33,leak:55,avoid:[13,14,30,49,19,33,36,24,56,57],thank:30,tooltip:[33,13,39,28],checkmark:33,leav:[11,30,52,33,27,58],overlai:13,uselabelid:27,supsetneqq:33,preload:[0,22],twoheadleftarrow:33,mpmous:[16,24],daleth:33,acronym:48,journal:48,usag:[33,12],host:[14,13,41],sphericalangl:33,although:[17,22,46,58,44],offset:[39,26,28],simpler:20,varepsilon:33,about:[3,33,5,41,13,14,30,16,19,21,22,24,26,15,47,39,40,31,44,46,34,52,53,57],ams_html:[33,14,52,16,37,41],actual:[11,0,13,31,15,30,52,18,50,33,21,34,36,24,56,40,41,26,57],column:[13,27],mathajx:14,mod_head:[13,46],mapsto:33,constructor:42,fals:[44,13,54,39,2,33,19,6,4,47,27,24,55,8,31,42,40,28],disabl:[33,13,14,39,24],eqalign:33,own:[33,13,14,46,22,17,50,19,3,16,5,47,53,56,40,41,26,57,54],amsmath:[33,13,14,50,16,22,27,41],circledr:33,automat:[13,39,18,50,20,33,22,27,56,57,41,42,43,28],bigtriangledown:33,guard:24,"_htmlormml":[56,58],vphantom:33,merg:[11,31],w3c:13,transfer:[22,46],appl:13,bigcap:33,inner:13,arg1:34,"var":[11,33,15,50,2,52,21,34,42],arg2:34,"function":[0,13,31,15,44,48,18,50,2,33,21,34,32,27,52,53,57,41,42,43],propto:33,unexpect:24,precnapprox:33,unbalanc:13,studentansw:52,bodi:[0,14,52,22,40,41,26],gain:[56,13],posttransl:[43,26],inlin:[4,22,35,14],bug:[11,13,14,46,19,3,20,22,24,57,41],count:[13,2],made:[46,50,3,33,53,57,55,54],bbbk:33,whether:[33,13,29,39,47,31,58,2,6,52,4,34,35,27,24,9,8,41,55,28],wish:[14,22,59,2,3,33,34,31,56,41],displai:[4,5,11,12,13,41,19,20,21,22,27,24,25,26,28,29,30,47,35,37,39,31,33,36,46,48,55,6,52,56,57],distract:13,underleftrightarrow:33,asynchron:[0,45,15,44,48,18,50,52,21,34,53,31],gtrapprox:33,below:[1,4,5,6,8,11,13,41,22,27,24,26,28,29,47,35,38,40,31,23,39,9,49,33,51,53,55,57,58],limit:[11,0,36,33,47,27,41],otherwis:[0,13,45,15,55,33,20,16,22,31,7,56,40,41,42],problem:[13,14,46,30,34,19,3,52,33,22,36,56,57,41],x03c0:57,"int":33,imagedir:26,dure:[13,39,15,32,19,21,43,24,31,55,28],novemb:14,implement:[11,0,13,14,16,17,58,33,21,34,43,56,40,36,42,57],nolimit:33,inf:33,rightleftharpoon:33,probabl:[21,34,41,30,1],oplu:33,helpurl:6,definecolor:[33,13],immateri:50,percent:[23,39,28],detail:[0,4,5,6,7,12,13,14,30,16,18,19,21,22,23,24,28,29,15,31,33,9,35,37,38,39,10,41,44,36,46,50,51,52,53,56,57],arctan:33,book:48,futur:[0,3,20,21,53,56,31,55],branch:[41,46],varieti:57,removeaft:5,repeat:[46,1],star:[33,13],liter:[4,33],varupsilon:33,"class":[42,44,13,45,15,17,18,33,19,4,35,43,24,55,40,26,57,28,37],thicksim:33,msgroup:36,stai:[56,41],sphinx:1,scientif:48,reliabl:[14,13,41,2,56],rule:[13,50,33,5,24,8],mathjax_mathml:2,portion:[57,39,28,52],eot:[13,46],balancebrac:[4,13]},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","The mml2jax Preprocessor","Using MathJax in Movable Type","The MathJax.HTML Object","MathJax Documentation","What&#8217;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&#8217;s New in MathJax v1.1","The MathJax.Message Object","Using Signals","Getting Started","The NativeMML output processor","The Core Configuration Options","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","Using Callbacks","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 AsciiMath input processor","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","options/mml2jax","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","mathjax","api/outputjax","options/TeX","options/SVG","options/jsMath2jax","asciimath","api/hub","startup","tex","callbacks","options/asciimath2jax","mathml","jsMath","options/MathZoom","options/HTML-CSS","api/inputjax","configuration","api/object","api/jax","api/signal","api/variable","installation","options/AsciiMath","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 @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Using Signals &mdash; MathJax v1.1 documentation</title> + <title>Using Signals &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="up" title="Synchronizing your code with MathJax" href="synchronize.html" /> <link rel="next" title="Loading MathJax Dynamically" href="dynamic.html" /> <link rel="prev" title="Using Queues" href="queues.html" /> @@ -41,7 +41,7 @@ <li class="right" > <a href="queues.html" title="Using Queues" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" accesskey="U">Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> @@ -99,14 +99,14 @@ it starts listening after they were sent.</p> various extensions. The extension may not be loaded when the user&#8217;s configuration code runs, so the configuration code can&#8217;t modify the extension because it isn&#8217;t there yet. Fortunately, most extensions -signal when they are loaded and initialized via an <tt class="docutils literal"><span class="pre">Extension</span> <span class="pre">[name]</span> <span class="pre">Ready</span></tt> message, -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 <em>has</em> 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.</p> +signal when they are loaded and initialized via an <tt class="docutils literal"><span class="pre">Extension</span> <span class="pre">[name]</span> +<span class="pre">Ready</span></tt> message, or just <tt class="docutils literal"><span class="pre">[name]</span> <span class="pre">Ready</span></tt>, 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 <em>has</em> 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.</p> <p>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&#8217;t want @@ -121,14 +121,14 @@ also be a JavaScript array containing data, or an object containing message, and can act on it in whatever ways they see fit.</p> <div class="section" id="creating-a-listener"> <h2>Creating a Listener<a class="headerlink" href="#creating-a-listener" title="Permalink to this headline">ΒΆ</a></h2> -<p>MathJax maintains two separate signal channels: the <cite>startup signal</cite> -and the <cite>processing signal</cite> (or the <cite>hub signal</cite>). 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 <tt class="docutils literal"><span class="pre">New</span> <span class="pre">Math</span></tt> 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).</p> +<p>MathJax maintains two separate pre-defined signal channels: the +<cite>startup signal</cite> and the <cite>processing signal</cite> (or the <cite>hub signal</cite>). +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 <tt class="docutils literal"><span class="pre">New</span> +<span class="pre">Math</span></tt> 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).</p> <p>The easiest way to create a listener is to use either <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Register.StartupHook()</span></tt> or <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.Register.MessageHook()</span></tt>. The first sets a listener @@ -142,10 +142,11 @@ called when it arrives. For example</p> </div> <p>See the <a class="reference internal" href="startup.html#startup-sequence"><em>MathJax Startup Sequence</em></a> page for details of the messages sent during startup. See also the -<tt class="docutils literal"><span class="pre">test/sample-signals.html</span></tt> 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.</p> +<a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html">test/sample-signals.html</a> +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.</p> <p>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 @@ -185,8 +186,8 @@ signal&#8217;s <a class="reference internal" href="api/signal.html#Interest" tit </div> <p>This will cause an alert for every signal that MathJax produces. You probably don&#8217;t want to try this out, since it will produce a <em>lot</em> of -them; instead, use the <tt class="docutils literal"><span class="pre">test/sample-signals.html</span></tt> file, which -displays them in the web page.</p> +them; instead, use the <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html">test/sample-signals.html</a> +file, which displays them in the web page.</p> <p>See the <a class="reference internal" href="api/signal.html#api-signal"><em>Signal Object</em></a> reference page for details on the structure and methods of the signal object.</p> </div> @@ -242,12 +243,12 @@ structure and methods of the signal object.</p> <li class="right" > <a href="queues.html" title="Using Queues" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> <li><a href="synchronize.html" >Synchronizing your code with MathJax</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/start.html b/docs/html/start.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Getting Started &mdash; MathJax v1.1 documentation</title> + <title>Getting Started &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Installing and Testing MathJax" href="installation.html" /> <link rel="prev" title="What is MathJax?" href="mathjax.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="mathjax.html" title="What is MathJax?" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -52,14 +52,14 @@ <div class="section" id="getting-started"> <span id="id1"></span><h1>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this headline">ΒΆ</a></h1> <p>MathJax allows you to include mathematics in your web pages, either -using TeX and LaTeX notation, or as MathML, and you can even use both -in the same document.</p> +using TeX and LaTeX notation, MathML, or AsciiMath notation, and you +can even use all three in the same document.</p> <p>There are two ways to access MathJax: the easiest way is to use the copy of MathJax available from our distributed network service at <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt>, but you can also download and install a copy of -MathJax on your own server, or for use locally on your own hard disk -(with no need for network access). Both of these are described below, -with links to more detailed explanations. This page gives the +MathJax on your own server, or use it locally on your own 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.</p> @@ -82,12 +82,12 @@ it.</li> 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, and otherwise use HTML-with-CSS to display the mathematics. -This is the most general configuration, and should suffice for most -people&#8217;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 -<a class="reference internal" href="configuration.html#loading"><em>Loading and Configuring MathJax</em></a> instructions.</p> +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&#8217;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 <a class="reference internal" href="configuration.html#loading"><em>Loading and Configuring MathJax</em></a> instructions.</p> <p>The use of <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt> is governed by its <a class="reference external" href="http://www.mathjax.org/download/mathjax-cdn-terms-of-service/">terms of service</a>, so be sure to read that before linking to the MathJax CDN server.</p> <p>To see how to enter mathematics in your web pages, see <a class="reference internal" href="#putting-mathematics-in-a-web-page">Putting @@ -101,7 +101,7 @@ possible a hostile 3rd party could intercept the MathJax program data, and replace it. This is sometimes called a <a class="reference external" href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">man-in-the-middle</a> attack.</p> <p>To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be easily done by using the +over a secure HTTPS connection. This can be done easily by using the following <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag instead of the one listed above:</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> <span class="na">src=</span><span class="s">&quot;https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;</span><span class="nt">&gt;</span> @@ -109,8 +109,9 @@ following <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></ </pre></div> </div> <p>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, this address is stable and safe to use.</p> +not support the use of a human-friendly name like <tt class="docutils literal"><span class="pre">cdn.mathjax.org</span></tt> +for secure connections; however, the address given above is stable and +safe to use.</p> </div> </div> <div class="section" id="installing-your-own-copy-of-mathjax"> @@ -118,8 +119,9 @@ secure connections. However, this address is stable and safe to use.</p> <p>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:</p> -<ol class="arabic simple"> -<li>Obtain a copy of MathJax and make it available on your server.</li> +<p>1. Obtain a copy of MathJax and make it available on your server or +hard disk.</p> +<ol class="arabic simple" start="2"> <li>Configure MathJax to suit the needs of your site.</li> <li>Link MathJax into the web pages that are to include mathematics.</li> <li>Put mathematics into your web pages so that MathJax can display @@ -133,52 +135,53 @@ should obtain a file named something like <tt class="docutils literal"><span class="pre">mathjax-MathJax-v1.1-X-XXXXXXXX.zip</span></tt>, where the X&#8217;s are random-looking letters and numbers). 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 earlier releases, which had -the fonts separate from the rest of the code.</p> +need. Note that this is different from v1.0 and earlier releases, +which had the fonts separate from the rest of the code.</p> <p>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 <tt class="docutils literal"><span class="pre">MathJax</span></tt> 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 <tt class="docutils literal"><span class="pre">/MathJax/MathJax.js</span></tt> from within any page on your server.</p> -<p>Note: While this is the easiest way to set up MathJax initially, there +<p><strong>Note:</strong> 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 <a class="reference external" href="http://git-scm.com/">Git</a> version control system, and is described in the <a class="reference internal" href="installation.html#getting-mathjax-git"><em>Installing MathJax</em></a> document. If you prefer using <a class="reference external" href="http://subversion.apache.org/">Subversion</a>, you can also use that to get a copy of MathJax (see <a class="reference internal" href="installation.html#getting-mathjax-svn"><em>Installing MathJax via SVN</em></a>).</p> <p>Once you have MathJax set up on your server, you can test it using the -files in the <tt class="docutils literal"><span class="pre">MathJax/test</span></tt> directory. Load them in your browser -using its web address rather than opening them locally (i.e., use an -<tt class="docutils literal"><span class="pre">http://</span></tt> URL rather than a <tt class="docutils literal"><span class="pre">file://</span></tt> URL). When you view the -<tt class="docutils literal"><span class="pre">index.html</span></tt> 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&#8217;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.</p> +files in the <tt class="docutils literal"><span class="pre">MathJax/test</span></tt> 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 <tt class="docutils literal"><span class="pre">http://</span></tt> URL rather +than a <tt class="docutils literal"><span class="pre">file://</span></tt> URL). When you view the <tt class="docutils literal"><span class="pre">index.html</span></tt> 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&#8217;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.</p> </div> <div class="section" id="configuring-your-copy-of-mathjax"> <h3>Configuring your copy of MathJax<a class="headerlink" href="#configuring-your-copy-of-mathjax" title="Permalink to this headline">ΒΆ</a></h3> <p>When you include MathJax into your web pages as described below, it will load the file <tt class="docutils literal"><span class="pre">config/TeX-AMS-MML_HTMLorMML.js</span></tt> (i.e., the file named <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML.js</span></tt> in the <tt class="docutils literal"><span class="pre">config</span></tt> folder of the -main <tt class="docutils literal"><span class="pre">MathJax</span></tt> 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&#8217;s browser supports that, and will use -HTML-with-CSS to render the mathematics otherwise.</p> +main <tt class="docutils literal"><span class="pre">MathJax</span></tt> 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&#8217;s browser supports +that sufficiently, and will use HTML-with-CSS to render the +mathematics otherwise.</p> <p>There are a number of other prebuilt configuration files that you can choose from as well, or you could use the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file and customize the settings yourself. The combined configuration files are described more fully in <a class="reference internal" href="config-files.html#common-configurations"><em>Common Configurations</em></a>, and the configuration options are described in <a class="reference internal" href="options/index.html#configuration"><em>Configuration Options</em></a>.</p> -<p>Note: The configuration process has changed in MathJax v1.1, so if you have -existing pages that use MathJax, you may need to modify the tag that -loads MathJax so that it conforms with the new configuration process. -See <a class="reference internal" href="installation.html#installation"><em>Installing and Configuring MathJax</em></a> for more -details.</p> +<p>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 <a class="reference internal" href="installation.html#installation"><em>Installing and Configuring MathJax</em></a> for more details.</p> </div> <div class="section" id="linking-your-copy-of-mathjax-into-a-web-page"> <h3>Linking your copy of MathJax into a web page<a class="headerlink" href="#linking-your-copy-of-mathjax-into-a-web-page" title="Permalink to this headline">ΒΆ</a></h3> @@ -215,13 +218,15 @@ of MathJax.</p> </div> <div class="section" id="putting-mathematics-in-a-web-page"> <h2>Putting mathematics in a web page<a class="headerlink" href="#putting-mathematics-in-a-web-page" title="Permalink to this headline">ΒΆ</a></h2> -<p>To put mathematics in your web page, you can use either <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> -and <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a> notation or <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation or both 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. These two formats are described in more detail below.</p> +<p>To put mathematics in your web page, you can use <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> and +<a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a> notation, <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation, <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> +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.</p> <div class="section" id="tex-and-latex-input"> <span id="id2"></span><h3>TeX and LaTeX input<a class="headerlink" href="#tex-and-latex-input" title="Permalink to this headline">ΒΆ</a></h3> <p>Mathematics that is written in <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> or <a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a> format is @@ -255,9 +260,12 @@ options</em></a> page, for additional configuration parameters that you can specify for the <cite>tex2jax</cite> preprocessor, which is the component of MathJax that identifies TeX notation within the page. See the <a class="reference internal" href="tex.html#tex-support"><em>TeX and LaTeX</em></a> page for -more on MathJax&#8217;s support for TeX.</p> -<p>Here is a complete sample page containing TeX mathematics (also available -in the <tt class="docutils literal"><span class="pre">test/sample-tex.html</span></tt> file):</p> +more on MathJax&#8217;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.</p> +<p>Here is a complete sample page containing TeX mathematics (also +available in the <a class="reference external" href="http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-tex.html">test/sample-tex.html</a> +file):</p> <div class="highlight-html"><div class="highlight"><pre><span class="cp">&lt;!DOCTYPE html&gt;</span> <span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> @@ -282,6 +290,15 @@ 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 <a class="reference internal" href="tex.html#tex-support"><em>TeX and LaTeX support</em></a> for details.</p> +<p>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 <a class="reference internal" href="glossary.html#term-markdown"><em class="xref std std-term">Markdown</em></a> 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 <a class="reference internal" href="tex.html#tex-support"><em>TeX +and LaTeX support</em></a> for some suggestions about how to +deal with the problem.</p> <p>There are a number of extensions for the TeX input processor that are loaded by the <tt class="docutils literal"><span class="pre">TeX-AMS-MML_HTMLorMML</span></tt> configuration. These include:</p> <ul class="simple"> @@ -294,10 +311,12 @@ an error message when there is a problem processing the TeX, and</li> <li><cite>TeX/noUndefined.js</cite>, which prevents undefined macros from producing an error message, and instead shows the macro name in red.</li> </ul> -<p>Other extensions may be loaded automatically when needed.</p> +<p>Other extensions may be loaded automatically when needed. See +<a class="reference internal" href="tex.html#tex-support"><em>TeX and LaTeX support</em></a> for details on the other +TeX extensions that are available.</p> </div> <div class="section" id="mathml-input"> -<h3>MathML input<a class="headerlink" href="#mathml-input" title="Permalink to this headline">ΒΆ</a></h3> +<span id="id3"></span><h3>MathML input<a class="headerlink" href="#mathml-input" title="Permalink to this headline">ΒΆ</a></h3> <p>For mathematics written in <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation, you mark your mathematics using standard <tt class="docutils literal"><span class="pre">&lt;math&gt;</span></tt> tags, where <tt class="docutils literal"><span class="pre">&lt;math</span> <span class="pre">display=&quot;block&quot;&gt;</span></tt> represents displayed mathematics and <tt class="docutils literal"><span class="pre">&lt;math</span> @@ -307,9 +326,18 @@ 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 <tt class="docutils literal"><span class="pre">&lt;math&gt;</span></tt> tags; for example, you should not use <tt class="docutils literal"><span class="pre">&lt;m:math&gt;</span></tt> except -in a file where you have tied the <tt class="docutils literal"><span class="pre">m</span></tt> namespace to the MathML DTD.</p> +in a file where you have tied the <tt class="docutils literal"><span class="pre">m</span></tt> namespace to the MathML DTD by +adding the <tt class="docutils literal"><span class="pre">xmlns:m=&quot;http://www.w3.org/1998/Math/MathML&quot;</span></tt> attribtue +to your file&#8217;s <tt class="docutils literal"><span class="pre">&lt;html&gt;</span></tt> tag.</p> +<p>Although it is not required, it is recommended that you include the +<tt class="docutils literal"><span class="pre">xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;</span></tt> attribute on all +<tt class="docutils literal"><span class="pre">&lt;math&gt;</span></tt> tags in your document (and this is preferred to the use of +a namespace prefix like <tt class="docutils literal"><span class="pre">m:</span></tt> above, since those are deprecated in +HTML5) in order to make your MathML work in the widest range of +situations.</p> <p>Here is a complete sample page containing MathML mathematics (also -available in the <tt class="docutils literal"><span class="pre">test/sample-mml.html</span></tt> file):</p> +available in the <a class="reference external" href="http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-mml.html">test/sample-mml.html</a> +file):</p> <div class="highlight-html"><div class="highlight"><pre><span class="cp">&lt;!DOCTYPE html&gt;</span> <span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> @@ -320,13 +348,19 @@ available in the <tt class="docutils literal"><span class="pre">test/sample-mml. <span class="nt">&lt;/head&gt;</span> <span class="nt">&lt;body&gt;</span> -When <span class="nt">&lt;math&gt;&lt;mi&gt;</span>a<span class="nt">&lt;/mi&gt;&lt;mo&gt;</span><span class="ni">&amp;#x2260;</span><span class="nt">&lt;/mo&gt;&lt;mn&gt;</span>0<span class="nt">&lt;/mn&gt;&lt;/math&gt;</span>, -there are two solutions to <span class="nt">&lt;math&gt;</span> +<span class="nt">&lt;p&gt;</span> +When +<span class="nt">&lt;math</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.w3.org/1998/Math/MathML&quot;</span><span class="nt">&gt;</span> + <span class="nt">&lt;mi&gt;</span>a<span class="nt">&lt;/mi&gt;&lt;mo&gt;</span><span class="ni">&amp;#x2260;</span><span class="nt">&lt;/mo&gt;&lt;mn&gt;</span>0<span class="nt">&lt;/mn&gt;</span> +<span class="nt">&lt;/math&gt;</span>, +there are two solutions to +<span class="nt">&lt;math</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.w3.org/1998/Math/MathML&quot;</span><span class="nt">&gt;</span> <span class="nt">&lt;mi&gt;</span>a<span class="nt">&lt;/mi&gt;&lt;msup&gt;&lt;mi&gt;</span>x<span class="nt">&lt;/mi&gt;&lt;mn&gt;</span>2<span class="nt">&lt;/mn&gt;&lt;/msup&gt;</span> <span class="nt">&lt;mo&gt;</span>+<span class="nt">&lt;/mo&gt;</span> <span class="nt">&lt;mi&gt;</span>b<span class="nt">&lt;/mi&gt;&lt;mi&gt;</span>x<span class="nt">&lt;/mi&gt;</span> <span class="nt">&lt;mo&gt;</span>+<span class="nt">&lt;/mo&gt;</span> <span class="nt">&lt;mi&gt;</span>c<span class="nt">&lt;/mi&gt;</span> <span class="nt">&lt;mo&gt;</span>=<span class="nt">&lt;/mo&gt;</span> <span class="nt">&lt;mn&gt;</span>0<span class="nt">&lt;/mn&gt;</span> -<span class="nt">&lt;/math&gt;</span> and they are -<span class="nt">&lt;math</span> <span class="na">mode=</span><span class="s">&quot;display&quot;</span><span class="nt">&gt;</span> +<span class="nt">&lt;/math&gt;</span> +and they are +<span class="nt">&lt;math</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.w3.org/1998/Math/MathML&quot;</span> <span class="na">display=</span><span class="s">&quot;block&quot;</span><span class="nt">&gt;</span> <span class="nt">&lt;mi&gt;</span>x<span class="nt">&lt;/mi&gt;</span> <span class="nt">&lt;mo&gt;</span>=<span class="nt">&lt;/mo&gt;</span> <span class="nt">&lt;mrow&gt;</span> <span class="nt">&lt;mfrac&gt;</span> @@ -345,6 +379,7 @@ there are two solutions to <span class="nt">&lt;math&gt;</span> <span class="nt">&lt;/mrow&gt;</span> <span class="nt">&lt;mtext&gt;</span>.<span class="nt">&lt;/mtext&gt;</span> <span class="nt">&lt;/math&gt;</span> +<span class="nt">&lt;/p&gt;</span> <span class="nt">&lt;/body&gt;</span> <span class="nt">&lt;/html&gt;</span> @@ -354,18 +389,57 @@ there are two solutions to <span class="nt">&lt;math&gt;</span> page), you should <strong>not</strong> use self-closing tags, but should use explicit open and close tags for all your math elements. For example, you should use</p> -<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;mspace</span> <span class="na">width=</span><span class="s">&quot;thinmathspace&quot;</span><span class="nt">&gt;&lt;/mspace&gt;</span> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;mspace</span> <span class="na">width=</span><span class="s">&quot;5pt&quot;</span><span class="nt">&gt;&lt;/mspace&gt;</span> +</pre></div> +</div> +<p>rather than <tt class="docutils literal"><span class="pre">&lt;mspace</span> <span class="pre">width=&quot;5pt&quot;</span> <span class="pre">/&gt;</span></tt> 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.</p> +<p>The component of MathJax that recognizes MathML notation within the +page is called the <cite>mml2jax</cite> extension, and it has only a few +configuration options; see the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file or the +<a class="reference internal" href="options/mml2jax.html#configure-mml2jax"><em>mml2jax configuration options</em></a> page for more +details. See the <a class="reference internal" href="mathml.html#mathml-support"><em>MathML</em></a> page for more on +MathJax&#8217;s MathML support.</p> +</div> +<div class="section" id="asciimath-input"> +<span id="id4"></span><h3>AsciiMath input<a class="headerlink" href="#asciimath-input" title="Permalink to this headline">ΒΆ</a></h3> +<p>MathJax v2.0 includes a new input format: <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> notation. +For mathematics written in this form, you mark your mathematical +expressions by surrounding them in &#8220;back-ticks&#8221;, i.e., <tt class="docutils literal"><span class="pre">`...`</span></tt>.</p> +<p>Here is a complete sample page containing AsciiMath notation (also +available in the <a class="reference external" href="http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-asciimath.html">test/sample-asciimath.html</a> +file):</p> +<div class="highlight-html"><div class="highlight"><pre><span class="cp">&lt;!DOCTYPE html&gt;</span> +<span class="nt">&lt;html&gt;</span> +<span class="nt">&lt;head&gt;</span> +<span class="nt">&lt;title&gt;</span>MathJax AsciiMath Test Page<span class="nt">&lt;/title&gt;</span> +<span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/javascript&quot;</span> + <span class="na">src=</span><span class="s">&quot;../MathJax.js?config=AM_HTMLorMML-full&quot;</span><span class="nt">&gt;&lt;/script&gt;</span> +<span class="nt">&lt;/head&gt;</span> +<span class="nt">&lt;body&gt;</span> + +<span class="nt">&lt;p&gt;</span>When `a != 0`, there are two solutions to `ax^2 + bx + c = 0` and +they are<span class="nt">&lt;/p&gt;</span> +<span class="nt">&lt;p</span> <span class="na">style=</span><span class="s">&quot;text-align:center&quot;</span><span class="nt">&gt;</span> + `x = (-b +- sqrt(b^2-4ac))/(2a) .` +<span class="nt">&lt;/p&gt;</span> + +<span class="nt">&lt;/body&gt;</span> +<span class="nt">&lt;/html&gt;</span> </pre></div> </div> -<p>rather than <tt class="docutils literal"><span class="pre">&lt;mspace</span> <span class="pre">width=&quot;5pt&quot;</span> <span class="pre">/&gt;</span></tt> 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. 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.</p> -<p>The component of MathJax that recognizes MathML notation is called the -<cite>mml2jax</cite> extension, and it has only a few configuration options; see the -<tt class="docutils literal"><span class="pre">config/default.js</span></tt> file or the <a class="reference internal" href="options/mml2jax.html#configure-mml2jax"><em>mml2jax configuration options</em></a> page for more details. See the <a class="reference internal" href="mathml.html#mathml-support"><em>MathML</em></a> page for more on MathJax&#8217;s MathML support.</p> +<p>The component of MathJax that recognizes asciimath notation within the +page is called the <cite>asciimath2jax</cite> extension, and it has only a few +configuration options; see the <tt class="docutils literal"><span class="pre">config/default.js</span></tt> file or the +<a class="reference internal" href="options/asciimath2jax.html#configure-asciimath2jax"><em>asciimath2jax configuration options</em></a> page for more +details. See the <a class="reference internal" href="asciimath.html#asciimath-support"><em>AsciiMath support</em></a> page for more on +MathJax&#8217;s AsciiMath support.</p> </div> </div> <div class="section" id="where-to-go-from-here"> @@ -413,6 +487,7 @@ MathJax, you could visit the <a class="reference internal" href="community.html# <li><a class="reference internal" href="#putting-mathematics-in-a-web-page">Putting mathematics in a web page</a><ul> <li><a class="reference internal" href="#tex-and-latex-input">TeX and LaTeX input</a></li> <li><a class="reference internal" href="#mathml-input">MathML input</a></li> +<li><a class="reference internal" href="#asciimath-input">AsciiMath input</a></li> </ul> </li> <li><a class="reference internal" href="#where-to-go-from-here">Where to go from here?</a></li> @@ -455,11 +530,11 @@ MathJax, you could visit the <a class="reference internal" href="community.html# <li class="right" > <a href="mathjax.html" title="What is MathJax?" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/startup.html b/docs/html/startup.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>The MathJax Startup Sequence &mdash; MathJax v1.1 documentation</title> + <title>The MathJax Startup Sequence &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Synchronizing your code with MathJax" href="synchronize.html" /> <link rel="prev" title="The MathJax Processing Model" href="model.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="model.html" title="The MathJax Processing Model" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -131,6 +131,10 @@ pushed into the queue:</p> </li> </ol> <ol class="arabic simple" start="5"> +<li>Initialize the Message system (the grey information box in the +lower left)</li> +</ol> +<ol class="arabic simple" start="6"> <li>Load the jax configuration files:<ul> <li>Post the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">Jax</span></tt> startup signal</li> <li>Load the jax config files from the <tt class="docutils literal"><span class="pre">MathJax.Hub.config.jax</span></tt> array<ul> @@ -141,7 +145,7 @@ pushed into the queue:</p> </ul> </li> </ol> -<ol class="arabic simple" start="6"> +<ol class="arabic simple" start="7"> <li>Load the extension files:<ul> <li>Post the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">Extensions</span></tt> startup signal</li> <li>Load the files from the <tt class="docutils literal"><span class="pre">MathJax.Hub.config.extensions</span></tt> array<ul> @@ -154,17 +158,19 @@ pushed into the queue:</p> </ul> </li> </ol> -<ol class="arabic simple" start="7"> +<ol class="arabic simple" start="8"> <li>Set the MathJax menu&#8217;s renderer value based on the jax that have been loaded</li> </ol> -<ol class="arabic simple" start="8"> -<li>Wait for the onload handler to fire</li> -</ol> <ol class="arabic simple" start="9"> -<li>Set <tt class="docutils literal"><span class="pre">MathJax.isReady</span></tt> to <tt class="docutils literal"><span class="pre">true</span></tt></li> +<li>Wait for the onload handler to fire (in MathJax v2.0 this can +occur on the <tt class="docutils literal"><span class="pre">DOMContentLoaded</span></tt> event rather than the page&#8217;s +<tt class="docutils literal"><span class="pre">onload</span></tt> event, so processing of mathematics can start earlier)</li> </ol> <ol class="arabic simple" start="10"> +<li>Set <tt class="docutils literal"><span class="pre">MathJax.isReady</span></tt> to <tt class="docutils literal"><span class="pre">true</span></tt></li> +</ol> +<ol class="arabic simple" start="11"> <li>Perform the typesetting pass (preprocessors and processors)<ul> <li>Post the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">Typeset</span></tt> startup signal</li> <li>Post the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">PreProcess</span></tt> hub signal</li> @@ -173,6 +179,11 @@ loaded</li> <li>Clear the hub signal history</li> <li>Post the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">Process</span></tt> hub signal</li> <li>Process the math script elements on the page<ul> +<li>There are a number of Hub signals generated during math +processing, including a signal that a <tt class="docutils literal"><span class="pre">Math</span></tt> action is +starting (with a parameter indicating what action that is), +<tt class="docutils literal"><span class="pre">Begin</span></tt> and <tt class="docutils literal"><span class="pre">End</span> <span class="pre">Math</span> <span class="pre">Input</span></tt> messages, and <tt class="docutils literal"><span class="pre">Begin</span></tt> and +<tt class="docutils literal"><span class="pre">End</span> <span class="pre">Math</span> <span class="pre">Output</span></tt> signals.</li> <li>Each new math element generates a <tt class="docutils literal"><span class="pre">New</span> <span class="pre">Math</span></tt> hub signal with the math element&#8217;s ID</li> </ul> @@ -182,7 +193,16 @@ with the math element&#8217;s ID</li> </ul> </li> </ol> -<ol class="arabic simple" start="11"> +<ol class="arabic simple" start="12"> +<li>Jump to the location specified in the URL&#8217;s hash reference, if +any.</li> +</ol> +<ol class="arabic simple" start="13"> +<li>Initiate timers to load the zoom and menu code, if it hasn&#8217;t +already been loading in the configuration (so it will be ready +when the user needs it).</li> +</ol> +<ol class="arabic simple" start="14"> <li>Post the <tt class="docutils literal"><span class="pre">End</span></tt> startup signal</li> </ol> <p>The loading of the jax and extensions in steps 5 and 6 are now done in @@ -193,7 +213,8 @@ extensions can be intermixed. (In general, you will get <cite>Begin Jax</cite> followed by <cite>Begin Extensions</cite>, but the order of <cite>End Jax</cite> and <cite>End Extensions</cite> will depend on the files being loaded.) Both 5 and 6 must complete, however, before 7 will be performed.</p> -<p>See the <tt class="docutils literal"><span class="pre">test/sample-signals.html</span></tt> file to see the signals in action.</p> +<p>See the <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html">test/sample-signals.html</a> file +to see the signals in action.</p> </div> @@ -237,11 +258,11 @@ complete, however, before 7 will be performed.</p> <li class="right" > <a href="model.html" title="The MathJax Processing Model" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/synchronize.html b/docs/html/synchronize.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Synchronizing your code with MathJax &mdash; MathJax v1.1 documentation</title> + <title>Synchronizing your code with MathJax &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Using Callbacks" href="callbacks.html" /> <link rel="prev" title="The MathJax Startup Sequence" href="startup.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="startup.html" title="The MathJax Startup Sequence" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -59,7 +59,7 @@ 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 used three mechanisms to +actions is made much more difficult. MathJax uses three mechanisms to overcome this language shortcoming: callbacks, queues, and signals.</p> <p><strong>Callbacks</strong> are functions that are called when an action is completed, so that your code can continue where it left off when the @@ -81,20 +81,22 @@ 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 <a class="reference internal" href="api/queue.html#api-queue"><em>Queue Object</em></a> reference page for more details.</p> -<p><strong>Signals</strong> 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 &#8220;announced&#8221; by posting a -message to a special object called a <cite>Signal</cite>. 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 &#8220;memory&#8221;, 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 -<a class="reference internal" href="api/signal.html#api-signal"><em>Signal Object</em></a> reference page for more details. See -also the <tt class="docutils literal"><span class="pre">test/sample-signals.html</span></tt> file in the MathJax <tt class="docutils literal"><span class="pre">test</span></tt> -directory for a working example of using signals.</p> +<p><strong>Signals</strong> 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 &#8220;announced&#8221; by posting a message to a special object called a +<cite>Signal</cite>. 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 +&#8220;memory&#8221;, 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 +<a class="reference internal" href="api/signal.html#api-signal"><em>Signal Object</em></a> reference page for more details. +See also the <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html">test/sample-signals.html</a> +file in the MathJax <tt class="docutils literal"><span class="pre">test</span></tt> directory for a working example of using +signals.</p> <p>Each of these is explained in more detail in the links below:</p> <div class="toctree-wrapper compound"> <ul> @@ -146,11 +148,11 @@ directory for a working example of using signals.</p> <li class="right" > <a href="startup.html" title="The MathJax Startup Sequence" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/tex.html b/docs/html/tex.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>MathJax TeX and LaTeX Support &mdash; MathJax v1.1 documentation</title> + <title>MathJax TeX and LaTeX Support &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="MathJax MathML Support" href="mathml.html" /> <link rel="prev" title="Using MathJax in Movable Type" href="platforms/movable-type.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="platforms/movable-type.html" title="Using MathJax in Movable Type" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -115,7 +115,7 @@ the page.</p> <p>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 <tt class="docutils literal"><span class="pre">&lt;BR&gt;</span></tt>) as TeX-formatted math does not include HTML tags. +than <tt class="docutils literal"><span class="pre">&lt;br&gt;</span></tt>) 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&#8217;t look like HTML tags to the browser (which parses the page before MathJax gets to see @@ -153,6 +153,187 @@ easier to enter <tt class="docutils literal"><span class="pre">&lt;</span></tt> </div> <p>Keep in mind that the browser interprets your text before MathJax does.</p> +<p>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 <a class="reference internal" href="glossary.html#term-markdown"><em class="xref std std-term">Markdown</em></a> 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&#8217;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 <tt class="docutils literal"><span class="pre">&lt;i&gt;</span></tt> tags into your mathematics, which will +cause MathJax to ignore the math).</p> +<p>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 +<a class="reference external" href="http://www.mathjax.org/community/mathjax-in-use/">MathJax-In-Use page</a> page.</p> +<p>If there is no plugin for your system, or if it doesn&#8217;t handle the +subtleties of issolating the mathematics from the other markup that it +supports, then you may have to &#8220;trick&#8221; it into leaving your +mathematics untouched. Most content-management systems provide some +means of indicating text that should not be modified (&#8220;verbatim&#8221; +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 (<tt class="docutils literal"><span class="pre">`</span></tt>) is used to mark verbatim text, so</p> +<div class="highlight-latex"><div class="highlight"><pre>... we have `<span class="s">\(</span><span class="nb">x_</span><span class="m">1</span><span class="nb"> </span><span class="o">=</span><span class="nb"> </span><span class="m">132</span><span class="s">\)</span>` and `<span class="s">\(</span><span class="nb">x_</span><span class="m">2</span><span class="nb"> </span><span class="o">=</span><span class="nb"> </span><span class="m">370</span><span class="s">\)</span>` and so ... +</pre></div> +</div> +<p>may be able to protect the underscores from being processed by +Markdown.</p> +<p>Some content-management systems use the backslash (<tt class="docutils literal"><span class="pre">\</span></tt>) as a special +character for &#8220;escaping&#8221; 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</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\\</span>begin<span class="nb">{</span>array<span class="nb">}{</span>cc<span class="nb">}</span> + a <span class="nb">&amp;</span> b <span class="k">\\\\</span> + c <span class="nb">&amp;</span> c +<span class="k">\\</span>end<span class="nb">{</span>array<span class="nb">}</span> +</pre></div> +</div> +<p>to get an array with the four entries <em>a</em>, <em>b</em>, <em>c</em>, and <em>d</em>. Note in +particular that if you want <tt class="docutils literal"><span class="pre">\\</span></tt> you will have to double <em>both</em> +backslashes, giving <tt class="docutils literal"><span class="pre">\\\\</span></tt>.</p> +<p>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&#8217;t represent a math delimiter), you will need to prevent +MathJax from using it as a math delimiter. If you also enable the +<tt class="docutils literal"><span class="pre">processEscapes</span></tt> configuration parameter, then you can use <tt class="docutils literal"><span class="pre">\$</span></tt> in +the text of your page to get a dollar sign (without the backslash) in +the end. Alternatively, you use something like +<tt class="docutils literal"><span class="pre">&lt;span&gt;$&lt;/span&gt;</span></tt> to isolate the dollar sign so that +MathJax will not use it as a delimiter.</p> +</div> +<div class="section" id="defining-tex-macros"> +<span id="tex-macros"></span><h2>Defining TeX macros<a class="headerlink" href="#defining-tex-macros" title="Permalink to this headline">ΒΆ</a></h2> +<p>You can use the <tt class="docutils literal"><span class="pre">\def</span></tt>, <tt class="docutils literal"><span class="pre">\newcommand</span></tt>, <tt class="docutils literal"><span class="pre">\renewcommand</span></tt>, +<tt class="docutils literal"><span class="pre">\newenvironment</span></tt>, <tt class="docutils literal"><span class="pre">\renewenvironment</span></tt>, and <tt class="docutils literal"><span class="pre">\let</span></tt> 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</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="s">\(</span><span class="nb"></span> +<span class="nb"> </span><span class="nv">\def\RR</span><span class="nb">{</span><span class="nv">\bf</span><span class="nb"> R}</span> +<span class="nb"> </span><span class="nv">\def\bold</span><span class="nb">#</span><span class="m">1</span><span class="nb">{</span><span class="nv">\bf</span><span class="nb"> #</span><span class="m">1</span><span class="nb">}</span> +<span class="s">\)</span> +</pre></div> +</div> +<p>would define <tt class="docutils literal"><span class="pre">\RR</span></tt> to produce a bold-faced &#8220;R&#8221;, and <tt class="docutils literal"><span class="pre">\bold{...}</span></tt> +to put its argument into bold face. Both definitions would be +available throughout the rest of the page.</p> +<p>You can include macro definitions in the <cite>Macros</cite> section of the <cite>TeX</cite> +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</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">Macros</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">RR</span><span class="o">:</span> <span class="s2">&quot;{\\bf R}&quot;</span><span class="p">,</span> + <span class="nx">bold</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;{\\bf #1}&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">]</span> + <span class="p">}</span> + <span class="p">}</span> +<span class="p">});</span> +</pre></div> +</div> +<p>Here you give the macro as a <cite>name:value</cite> pair, where the <cite>name</cite> +is the name of the control sequence (without the backslash) that you +are defining, and <cite>value</cite> 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.</p> +<p>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.</p> +<p>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 <tt class="docutils literal"><span class="pre">MathJax/config/local</span></tt> called <tt class="docutils literal"><span class="pre">local.js</span></tt> that +contains your macro definitions:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">Macros</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">RR</span><span class="o">:</span> <span class="s2">&quot;{\\bf R}&quot;</span><span class="p">,</span> + <span class="nx">bold</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;{\\bf #1}&quot;</span><span class="p">,</span><span class="mi">1</span><span class="p">]</span> + <span class="p">}</span> + <span class="p">}</span> +<span class="p">});</span> + +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Ajax</span><span class="p">.</span><span class="nx">loadComplete</span><span class="p">(</span><span class="s2">&quot;[MathJax]/config/local/local.js&quot;</span><span class="p">);</span> +</pre></div> +</div> +<p>and then load it along with your main configuration file on the script +that loads <tt class="docutils literal"><span class="pre">MathJax.js</span></tt>:</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;/MathJax/MathJax.js?config=TeX-AMS_HTML,local/local.js&quot;</span><span class="nt">&gt;&lt;/script&gt;</span> +</pre></div> +</div> +<p>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 <a class="reference internal" href="configuration.html#local-config-files"><em>Using a Local +Configuration File with the CDN</em></a> for details.</p> +</div> +<div class="section" id="autmatic-equation-numering"> +<span id="tex-eq-numbers"></span><h2>Autmatic Equation Numering<a class="headerlink" href="#autmatic-equation-numering" title="Permalink to this headline">ΒΆ</a></h2> +<p>New in MathJax v2.0 is the ability to have equations be numbered +automatically. This is off by default, so that pages don&#8217;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:</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> <span class="nx">equationNumbers</span><span class="o">:</span> <span class="p">{</span> <span class="nx">autoNumber</span><span class="o">:</span> <span class="s2">&quot;AMS&quot;</span> <span class="p">}</span> <span class="p">}</span> +<span class="p">});</span> +<span class="nt">&lt;/script&gt;</span> +</pre></div> +</div> +<p>to your page just before the <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag that loads +<tt class="docutils literal"><span class="pre">MathJax.js</span></tt> itself.</p> +<p>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 <tt class="docutils literal"><span class="pre">autoNumber</span></tt> to +<tt class="docutils literal"><span class="pre">&quot;all&quot;</span></tt> if you want every displayed equation to be numbered. +You can use <tt class="docutils literal"><span class="pre">\notag</span></tt> or <tt class="docutils literal"><span class="pre">\nonumber</span></tt> to prevent +individual equations from being numbered, and <tt class="docutils literal"><span class="pre">\tag{}</span></tt> can be used +to override the usual equation number with your own symbol instead.</p> +<p>Note that the AMS environments come in two forms: starred and +unstarred. The unstarred versions produce equation numbers (when +<tt class="docutils literal"><span class="pre">autoNumber</span></tt> is set to <tt class="docutils literal"><span class="pre">&quot;AMS&quot;</span></tt>) and the starred ones don&#8217;t. For +example</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\begin</span><span class="nb">{</span>equation<span class="nb">}</span> + E = mc<span class="nb">^</span>2 +<span class="k">\end</span><span class="nb">{</span>equation<span class="nb">}</span> +</pre></div> +</div> +<p>will be numbered, while</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\begin</span><span class="nb">{</span>equation*<span class="nb">}</span> + e<span class="nb">^{</span><span class="k">\pi</span> i<span class="nb">}</span> - 1 = 0 +<span class="k">\end</span><span class="nb">{</span>equation*<span class="nb">}</span> +</pre></div> +</div> +<p>won&#8217;t be numbered (when <tt class="docutils literal"><span class="pre">autoNumber</span></tt> is <tt class="docutils literal"><span class="pre">&quot;AMS&quot;</span></tt>).</p> +<p>You can use <tt class="docutils literal"><span class="pre">\label</span></tt> to give an equation an identifier that you can +use to refer to it later, and then use <tt class="docutils literal"><span class="pre">\ref</span></tt> or <tt class="docutils literal"><span class="pre">\eqref</span></tt> within +your document to insert the actual equation number at that location, +as a reference. For example,</p> +<div class="highlight-latex"><div class="highlight"><pre>In equation <span class="k">\eqref</span><span class="nb">{</span>eq:sample<span class="nb">}</span>, we find the value of an +interesting integral: + +<span class="k">\begin</span><span class="nb">{</span>equation<span class="nb">}</span> + <span class="k">\int</span><span class="nb">_</span>0<span class="nb">^</span><span class="k">\infty</span> <span class="k">\frac</span><span class="nb">{</span>x<span class="nb">^</span>3<span class="nb">}{</span>e<span class="nb">^</span>x-1<span class="nb">}</span><span class="k">\,</span>dx = <span class="k">\frac</span><span class="nb">{</span><span class="k">\pi</span><span class="nb">^</span>4<span class="nb">}{</span>15<span class="nb">}</span> + <span class="k">\label</span><span class="nb">{</span>eq:sample<span class="nb">}</span> +<span class="k">\end</span><span class="nb">{</span>equation<span class="nb">}</span> +</pre></div> +</div> +<p>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 <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/examples.html">MathJax examples +page</a> for +more examples.</p> +<p>You can configure the way that numbers are displayed and how the +references to them are made using paramters in the <tt class="docutils literal"><span class="pre">equationNumbers</span></tt> +block of your <tt class="docutils literal"><span class="pre">TeX</span></tt> configuration. See the <a class="reference internal" href="options/TeX.html#configure-tex"><em>TeX configuration +options</em></a> page for more details.</p> </div> <div class="section" id="tex-and-latex-extensions"> <span id="tex-extensions"></span><h2>TeX and LaTeX extensions<a class="headerlink" href="#tex-and-latex-extensions" title="Permalink to this headline">ΒΆ</a></h2> @@ -182,7 +363,75 @@ script prior to loading MathJax. For example</p> </div> <p>will load the <cite>autobold</cite> TeX extension in addition to those already included in the <tt class="docutils literal"><span class="pre">TeX-AMS_HTML</span></tt> configuration file.</p> +<p>You can also load these extensions from within a math expresion using +the non-standard <tt class="docutils literal"><span class="pre">\require{extension}</span></tt> macro. For example</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="s">\(</span><span class="nv">\require</span><span class="nb">{color}</span><span class="s">\)</span> +</pre></div> +</div> +<p>would load the <cite>color</cite> extension into the page. This way you you can +load extensions into pages that didn&#8217;t load them in their +configurations (and prevents you from having to load all the +extensions into all pages even if they aren&#8217;t used).</p> +<p>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</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Register</span><span class="p">.</span><span class="nx">StartupHook</span><span class="p">(</span><span class="s2">&quot;TeX Jax Ready&quot;</span><span class="p">,</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> + <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Insert</span><span class="p">(</span><span class="nx">MathJax</span><span class="p">.</span><span class="nx">InputJax</span><span class="p">.</span><span class="nx">TeX</span><span class="p">.</span><span class="nx">Definitions</span><span class="p">.</span><span class="nx">macros</span><span class="p">,{</span> + <span class="nx">cancel</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;Extension&quot;</span><span class="p">,</span><span class="s2">&quot;cancel&quot;</span><span class="p">],</span> + <span class="nx">bcancel</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;Extension&quot;</span><span class="p">,</span><span class="s2">&quot;cancel&quot;</span><span class="p">],</span> + <span class="nx">xcancel</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;Extension&quot;</span><span class="p">,</span><span class="s2">&quot;cancel&quot;</span><span class="p">],</span> + <span class="nx">cancelto</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;Extension&quot;</span><span class="p">,</span><span class="s2">&quot;cancel&quot;</span><span class="p">]</span> + <span class="p">});</span> +<span class="p">});</span> +<span class="nt">&lt;/script&gt;</span> +</pre></div> +</div> +<p>would declare the <tt class="docutils literal"><span class="pre">\cancel</span></tt>, <tt class="docutils literal"><span class="pre">\bcancel</span></tt>, <tt class="docutils literal"><span class="pre">\xcancel</span></tt>, and +<tt class="docutils literal"><span class="pre">\cancelto</span></tt> macros to load the <cite>cancel</cite> 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 <em>not</em> +used. The <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-autoload.html">sample autoloading macros</a> +example page shows this in action. The <cite>autoload-all</cite> extension below +defines such macros for <em>all</em> the extensions so that if you include +it, MathJax will have access to all the macros it knows about.</p> <p>The main extensions are described below.</p> +<div class="section" id="action"> +<h3>Action<a class="headerlink" href="#action" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>action</cite> extension gives you access to the MathML <tt class="docutils literal"><span class="pre">&lt;maction&gt;</span></tt> +element. It defines three new non-standard macros:</p> +<dl class="describe"> +<dt> +<tt class="descname">\mathtip{math}{tip}</tt></dt> +<dd><p>Use <tt class="docutils literal"><span class="pre">tip</span></tt> (in math mode) as tooltip for <tt class="docutils literal"><span class="pre">math</span></tt>.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\texttip{math}{tip}</tt></dt> +<dd><p>Use <tt class="docutils literal"><span class="pre">tip</span></tt> (in text mode) as tooltip for <tt class="docutils literal"><span class="pre">math</span></tt>.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\toggle{math1}{math2}...\endtoggle</tt></dt> +<dd><p>Show <tt class="docutils literal"><span class="pre">math1</span></tt>, and when clicked, show <tt class="docutils literal"><span class="pre">math2</span></tt>, and so on. +When the last one is clicked, go back to math1.</p> +</dd></dl> + +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;action.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> <div class="section" id="amsmath-and-amssymbols"> <h3>AMSmath and AMSsymbols<a class="headerlink" href="#amsmath-and-amssymbols" title="Permalink to this headline">ΒΆ</a></h3> <p>The <cite>AMSmath</cite> extension implements AMS math environments and macros, and @@ -203,6 +452,8 @@ environments it defines, but you will have to load it explicitly if you want to use the other macros that it defines. The <cite>AMSsymbols</cite> extension is not loaded automatically, so you must include it explicitly if you want to use the macros it defines.</p> +<p>Both extensions are included in all the combined configuration files +that load the TeX input processor.</p> </div> <div class="section" id="autobold"> <h3>Autobold<a class="headerlink" href="#autobold" title="Permalink to this headline">ΒΆ</a></h3> @@ -215,6 +466,268 @@ appears in a section of an HTML page that is in bold.</p> </div> <p>This extension is <strong>not</strong> loaded by the combined configuration files.</p> </div> +<div class="section" id="bbox"> +<h3>BBox<a class="headerlink" href="#bbox" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>bbox</cite> extension defines a new macro for adding background colors, +borders, and padding to your math expressions.</p> +<dl class="describe"> +<dt> +<tt class="descname">\bbox[options]{math}</tt></dt> +<dd><p>puts a bounding box around <tt class="docutils literal"><span class="pre">math</span></tt> using the provided <tt class="docutils literal"><span class="pre">options</span></tt>. +The options can be one of the following:</p> +<ol class="arabic simple"> +<li>A color name used for the background color.</li> +<li>A dimension (e.g., <tt class="docutils literal"><span class="pre">2px</span></tt>) to be used as a padding around the +mathematics (on all sides).</li> +<li>Style attributes to be applied to the mathematics (e.g., +<tt class="docutils literal"><span class="pre">border:1px</span> <span class="pre">solid</span> <span class="pre">red</span></tt>).</li> +<li>A combination of these separated by commas.</li> +</ol> +</dd></dl> + +<p>Here are some examples:</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\bbox</span><span class="na">[red]</span><span class="nb">{</span>x+y<span class="nb">}</span> <span class="c">% a red box behind x+y</span> +<span class="k">\bbox</span><span class="na">[2pt]</span><span class="nb">{</span>x+1<span class="nb">}</span> <span class="c">% an invisible box around x+y with 2pt of extra space</span> +<span class="k">\bbox</span><span class="na">[red,2pt]</span><span class="nb">{</span>x+1<span class="nb">}</span> <span class="c">% a red box around x+y with 2pt of extra space</span> +<span class="k">\bbox</span><span class="na">[5px,border:2px solid red]</span> + <span class="c">% a 2px red border around the math 5px away</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> included in any of the combined configurations, +but it will be loaded automatically, so you do not need to include it +in your <cite>extensions</cite> array.</p> +</div> +<div class="section" id="begingroup"> +<h3>Begingroup<a class="headerlink" href="#begingroup" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>begingroup</cite> 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&#8217;t affect later comments.</p> +<p>It defines two new non-standard macros, <tt class="docutils literal"><span class="pre">\begingroup</span></tt> and +<tt class="docutils literal"><span class="pre">\endgroup</span></tt>, that are used to start and stop a local namespace for +macros. Any macros that are defined between the <tt class="docutils literal"><span class="pre">\begingroup</span></tt> and +<tt class="docutils literal"><span class="pre">\endgroup</span></tt> will be removed after the <tt class="docutils literal"><span class="pre">\endgroup</span></tt> is executed. +For example, if you put <tt class="docutils literal"><span class="pre">\(\begingroup\)</span></tt> at the top of each reader&#8217;s +comments and <tt class="docutils literal"><span class="pre">\(\endgroup\)</span></tt> at the end, then any macros they define +within their response will be removed after it is processed.</p> +<p>In addition to these two macros, the <cite>begingroup</cite> extension defines +the standard <tt class="docutils literal"><span class="pre">\global</span></tt> and <tt class="docutils literal"><span class="pre">\gdef</span></tt> control sequences from TeX. +(The <tt class="docutils literal"><span class="pre">\let</span></tt>, <tt class="docutils literal"><span class="pre">\def</span></tt>, <tt class="docutils literal"><span class="pre">\newcommand</span></tt>, and <tt class="docutils literal"><span class="pre">\newenvironment</span></tt> +control sequences are already defined in the core TeX input jax.)</p> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;begingroup.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> +<div class="section" id="cancel"> +<h3>Cancel<a class="headerlink" href="#cancel" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>cancel</cite> extension defines the following macros:</p> +<dl class="describe"> +<dt> +<tt class="descname">\cancel{math}</tt></dt> +<dd><p>Strikeout <tt class="docutils literal"><span class="pre">math</span></tt> from lower left to upper right.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\bcancel{math}</tt></dt> +<dd><p>Strikeout <tt class="docutils literal"><span class="pre">math</span></tt> from upper left to lower right.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\xcancel{math}</tt></dt> +<dd><p>Strikeout <tt class="docutils literal"><span class="pre">math</span></tt> with an &#8220;X&#8221;.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\cancelto{value}{math}</tt></dt> +<dd><p>Strikeout <tt class="docutils literal"><span class="pre">math</span></tt> with an arrow going to <tt class="docutils literal"><span class="pre">value</span></tt>.</p> +</dd></dl> + +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;cancel.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> +<div class="section" id="color"> +<h3>Color<a class="headerlink" href="#color" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <tt class="docutils literal"><span class="pre">\color</span></tt> 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 <tt class="docutils literal"><span class="pre">\color</span></tt> command is a switch that changes the +color of everything that follows it.</p> +<p>The <cite>color</cite> extension changes the <tt class="docutils literal"><span class="pre">\color</span></tt> command to be compatible +with the LaTeX implementation, and also defines <tt class="docutils literal"><span class="pre">\colorbox</span></tt>, +<tt class="docutils literal"><span class="pre">\fcolorbox</span></tt>, and <tt class="docutils literal"><span class="pre">\DefineColor</span></tt>, 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.</p> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;color.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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 <tt class="docutils literal"><span class="pre">\color</span></tt> be compatible with LaTeX usage.</p> +</div> +<div class="section" id="enclose"> +<h3>Enclose<a class="headerlink" href="#enclose" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>enclose</cite> extension gives you access to the MathML <tt class="docutils literal"><span class="pre">&lt;menclose&gt;</span></tt> +element for adding boxes, ovals, strikethroughs, and other marks over +your mathematics. It defines the following non-standard macro:</p> +<dl class="describe"> +<dt> +<tt class="descname">\enclose{notation}[attributes]{math}</tt></dt> +<dd><p>Where <tt class="docutils literal"><span class="pre">notation</span></tt> is a comma-separated list of MathML +<tt class="docutils literal"><span class="pre">&lt;menclose&gt;</span></tt> notations (e.g., <tt class="docutils literal"><span class="pre">circle</span></tt>, <tt class="docutils literal"><span class="pre">left</span></tt>, +<tt class="docutils literal"><span class="pre">updiagonalstrike</span></tt>, <tt class="docutils literal"><span class="pre">longdiv</span></tt>, etc.), <tt class="docutils literal"><span class="pre">attributes</span></tt> are +MathML attribute values allowed on the <tt class="docutils literal"><span class="pre">&lt;menclose&gt;</span></tt> element +(e.g., <tt class="docutils literal"><span class="pre">mathcolor=&quot;red&quot;</span></tt>, <tt class="docutils literal"><span class="pre">mathbackground=&quot;yellow&quot;</span></tt>), and +<tt class="docutils literal"><span class="pre">math</span></tt> is the mathematics to be enclosed.</p> +</dd></dl> + +<p>For example</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\enclose</span><span class="nb">{</span>circle<span class="nb">}</span>[mathcolor=&quot;red&quot;]<span class="nb">{</span>x<span class="nb">}</span> +<span class="k">\enclose</span><span class="nb">{</span>circle<span class="nb">}</span>[mathcolor=&quot;red&quot;]<span class="nb">{</span><span class="k">\color</span><span class="nb">{</span>black<span class="nb">}{</span>x<span class="nb">}}</span> +<span class="k">\enclose</span><span class="nb">{</span>circle,box<span class="nb">}{</span>x<span class="nb">}</span> +<span class="k">\enclose</span><span class="nb">{</span>circle<span class="nb">}{</span><span class="k">\enclose</span><span class="nb">{</span>box<span class="nb">}{</span>x<span class="nb">}}</span> +</pre></div> +</div> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;enclose.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> +<div class="section" id="extpfeil"> +<h3>Extpfeil<a class="headerlink" href="#extpfeil" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>extpfeil</cite> extension adds more macros for producing extensible +arrows, including <tt class="docutils literal"><span class="pre">\xtwoheadrightarrow</span></tt>, <tt class="docutils literal"><span class="pre">\xtwoheadleftarrow</span></tt>, +<tt class="docutils literal"><span class="pre">\xmapsto</span></tt>, <tt class="docutils literal"><span class="pre">\xlongequal</span></tt>, <tt class="docutils literal"><span class="pre">\xtofrom</span></tt>, and a non-standard +<tt class="docutils literal"><span class="pre">\Newextarrow</span></tt> for creating your own extensible arrows. The latter +has the form</p> +<dl class="describe"> +<dt> +<tt class="descname">\Newextarrow{\cs}{lspace,rspace}{unicode-char}</tt></dt> +<dd><p>where <tt class="docutils literal"><span class="pre">\cs</span></tt> is the new control sequence name to be defined, +<tt class="docutils literal"><span class="pre">lspace</span></tt> and <tt class="docutils literal"><span class="pre">rspace</span></tt> 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 <tt class="docutils literal"><span class="pre">unicode-char</span></tt> +is a number representing a unicode character position in either +decimal or hexadecimal notation.</p> +</dd></dl> + +<p>For example</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\Newextarrow</span><span class="nb">{</span><span class="k">\xrightharpoonup</span><span class="nb">}{</span>5,10<span class="nb">}{</span>0x21C0<span class="nb">}</span> +</pre></div> +</div> +<p>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.</p> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;extpfeil.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> +<div class="section" id="html"> +<h3>HTML<a class="headerlink" href="#html" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>HTML</cite> extension gives you access to some HTML features like +styles, classes, element ID&#8217;s and clickable links. It defines the +following non-standard macros:</p> +<dl class="describe"> +<dt> +<tt class="descname">\href{url}{math}</tt></dt> +<dd><p>Makes <tt class="docutils literal"><span class="pre">math</span></tt> be a link to the page given by <tt class="docutils literal"><span class="pre">url</span></tt>.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\class{name}{math}</tt></dt> +<dd><p>Attaches the CSS class <tt class="docutils literal"><span class="pre">name</span></tt> to the output associated with +<tt class="docutils literal"><span class="pre">math</span></tt> when it is included in the HTML page. This allows your +CSS to style the element.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\cssId{id}{math}</tt></dt> +<dd><p>Attaches an id attribute with value <tt class="docutils literal"><span class="pre">id</span></tt> to the output +associated with <tt class="docutils literal"><span class="pre">math</span></tt> 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.</p> +</dd></dl> + +<dl class="describe"> +<dt> +<tt class="descname">\style{css}{math}</tt></dt> +<dd><p>Adds the give <tt class="docutils literal"><span class="pre">css</span></tt> declarations to the element associated with +<tt class="docutils literal"><span class="pre">math</span></tt>.</p> +</dd></dl> + +<p>For example:</p> +<div class="highlight-latex"><div class="highlight"><pre>x <span class="k">\href</span><span class="nb">{</span>why-equal.html<span class="nb">}{</span>=<span class="nb">}</span> y<span class="nb">^</span>2 + 1 + +(x+1)<span class="nb">^</span>2 = <span class="k">\class</span><span class="nb">{</span>hidden<span class="nb">}{</span>(x+1)(x+1)<span class="nb">}</span> + +(x+1)<span class="nb">^</span>2 = <span class="k">\cssId</span><span class="nb">{</span>step1<span class="nb">}{</span><span class="k">\style</span><span class="nb">{</span>visibility:hidden<span class="nb">}{</span>(x+1)(x+1)<span class="nb">}}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> +<div class="section" id="mhchem"> +<h3>mhchem<a class="headerlink" href="#mhchem" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>mhchem</cite> extensions implements the <tt class="docutils literal"><span class="pre">\ce</span></tt>, <tt class="docutils literal"><span class="pre">\cf</span></tt>, and <tt class="docutils literal"><span class="pre">\cee</span></tt> +chemical equation macros of the LaTeX <cite>mhchem</cite> package. See the +<a class="reference external" href="http://www.ctan.org/pkg/mhchem">mhchem CPAN page</a> for more +information and a link to the documentation for <cite>mhchem</cite>.</p> +<p>For example</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\ce</span><span class="nb">{</span>C6H5-CHO<span class="nb">}</span> +<span class="k">\ce</span><span class="nb">{</span><span class="s">$</span><span class="nb">A</span><span class="s">$</span> -&gt;[<span class="k">\ce</span><span class="nb">{</span>+H2O<span class="nb">}</span>] <span class="s">$</span><span class="nb">B</span><span class="s">$</span><span class="nb">}</span> +<span class="k">\ce</span><span class="nb">{</span>SO4<span class="nb">^</span>2- + Ba<span class="nb">^</span>2+ -&gt; BaSO4 v<span class="nb">}</span> +</pre></div> +</div> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;mhchem.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +</div> <div class="section" id="noerrors"> <h3>noErrors<a class="headerlink" href="#noerrors" title="Permalink to this headline">ΒΆ</a></h3> <p>The <cite>noErrors</cite> extension prevents TeX error messages from being @@ -232,9 +745,10 @@ following to your <tt class="xref py py-meth docutils literal"><span class="pre" <span class="nx">inlineDelimiters</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;&quot;</span><span class="p">,</span><span class="s2">&quot;&quot;</span><span class="p">],</span> <span class="c1">// or [&quot;$&quot;,&quot;$&quot;] or [&quot;\\(&quot;,&quot;\\)&quot;]</span> <span class="nx">multiLine</span><span class="o">:</span> <span class="kc">true</span><span class="p">,</span> <span class="c1">// false for TeX on all one line</span> <span class="nx">style</span><span class="o">:</span> <span class="p">{</span> - <span class="s2">&quot;font-family&quot;</span><span class="o">:</span> <span class="s2">&quot;serif&quot;</span><span class="p">,</span> - <span class="s2">&quot;font-size&quot;</span><span class="o">:</span> <span class="s2">&quot;80%&quot;</span><span class="p">,</span> + <span class="s2">&quot;font-size&quot;</span><span class="o">:</span> <span class="s2">&quot;90%&quot;</span><span class="p">,</span> + <span class="s2">&quot;text-align&quot;</span><span class="o">:</span> <span class="s2">&quot;left&quot;</span><span class="p">,</span> <span class="s2">&quot;color&quot;</span><span class="o">:</span> <span class="s2">&quot;black&quot;</span><span class="p">,</span> + <span class="s2">&quot;padding&quot;</span><span class="o">:</span> <span class="s2">&quot;1px 3px&quot;</span><span class="p">,</span> <span class="s2">&quot;border&quot;</span><span class="o">:</span> <span class="s2">&quot;1px solid&quot;</span> <span class="c1">// add any additional CSS styles that you want</span> <span class="c1">// (be sure there is no extra comma at the end of the last item)</span> @@ -261,7 +775,17 @@ the paragraph, use</p> <span class="p">}</span> </pre></div> </div> -<p>You may also wish to set the font family, as the default is &#8220;serif&#8221;.</p> +<p>You may also wish to set the font family or other CSS values here.</p> +<p>If you are using a combined configuration file that loads the TeX +input processor, it will also load the <cite>noErrors</cite> extension +automatically. If you want to disable the <cite>noErrors</cite> extension so +that you receive the normal TeX error messages, use the following +configuration:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> <span class="nx">noErrors</span><span class="o">:</span> <span class="p">{</span> <span class="nx">disabled</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">}</span> +</pre></div> +</div> +<p>Any math that includes errors will be replaced by an error message +indicating what went wrong.</p> </div> <div class="section" id="noundefined"> <h3>noUndefined<a class="headerlink" href="#noundefined" title="Permalink to this headline">ΒΆ</a></h3> @@ -290,6 +814,16 @@ the following to your <tt class="xref py py-meth docutils literal"><span class=" default values set <tt class="docutils literal"><span class="pre">mathcolor</span></tt> to <tt class="docutils literal"><span class="pre">&quot;red&quot;</span></tt>, but do not set any other attributes. This example sets the background to a light pink, and reduces the font size slightly.</p> +<p>If you are using a combined configuration file that loads the TeX +input processor, it will also load the <cite>noUndefined</cite> extension +automatically. If you want to disable the <cite>noUndefined</cite> extension so +that you receive the normal TeX error messages for undefined macros, +use the following configuration:</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> <span class="nx">noUndefined</span><span class="o">:</span> <span class="p">{</span> <span class="nx">disabled</span><span class="o">:</span> <span class="kc">true</span> <span class="p">}</span> <span class="p">}</span> +</pre></div> +</div> +<p>Any math that includes an undefined control sequence name will be +replaced by an error message indicating what name was undefined.</p> </div> <div class="section" id="unicode-support"> <h3>Unicode support<a class="headerlink" href="#unicode-support" title="Permalink to this headline">ΒΆ</a></h3> @@ -333,6 +867,45 @@ array. You can configure the extension as follows:</p> </pre></div> </div> </div> +<div class="section" id="autoload-all"> +<h3>Autoload-all<a class="headerlink" href="#autoload-all" title="Permalink to this headline">ΒΆ</a></h3> +<p>The <cite>autoload-all</cite> 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., <tt class="docutils literal"><span class="pre">\unicode</span></tt>, but +this extension defines the others to do the same. That way MathJax +will have access to all the macros that it knows about.</p> +<p>To use this extension in your own configurations, add it to the +<cite>extensions</cite> array in the TeX block.</p> +<div class="highlight-javascript"><div class="highlight"><pre><span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> + <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;autoload-all.js&quot;</span><span class="p">]</span> +<span class="p">}</span> +</pre></div> +</div> +<p>This extension is <strong>not</strong> 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.</p> +<p>Note that <cite>autoload-all</cite> redefines <tt class="docutils literal"><span class="pre">\color</span></tt> to be the one from the +<cite>color</cite> extension (the LaTeX-compatible one rather than the +non-standard MathJax version). This is because <tt class="docutils literal"><span class="pre">\colorbox</span></tt> and +<tt class="docutils literal"><span class="pre">\fcolorbox</span></tt> autoload the <cite>color</cite> extension, which will cause +<tt class="docutils literal"><span class="pre">\color</span></tt> to be redefined, and so for consistency, <tt class="docutils literal"><span class="pre">\color</span></tt> is +redefined immediately.</p> +<p>If you wish to retain the original definition of <tt class="docutils literal"><span class="pre">\color</span></tt>, then use +the following</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;script </span><span class="na">type=</span><span class="s">&quot;text/x-mathjax-config&quot;</span><span class="nt">&gt;</span> +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Config</span><span class="p">({</span> + <span class="nx">TeX</span><span class="o">:</span> <span class="p">{</span> <span class="nx">extensions</span><span class="o">:</span> <span class="p">[</span><span class="s2">&quot;autoload-all.js&quot;</span><span class="p">]</span> <span class="p">}</span> +<span class="p">});</span> +<span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Register</span><span class="p">.</span><span class="nx">StartupHook</span><span class="p">(</span><span class="s2">&quot;TeX autoload-all Ready&quot;</span><span class="p">,</span> <span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> + <span class="kd">var</span> <span class="nx">MACROS</span> <span class="o">=</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">InputJax</span><span class="p">.</span><span class="nx">TeX</span><span class="p">.</span><span class="nx">Definitions</span><span class="p">.</span><span class="nx">macros</span><span class="p">;</span> + <span class="nx">MACROS</span><span class="p">.</span><span class="nx">color</span> <span class="o">=</span> <span class="s2">&quot;Color&quot;</span><span class="p">;</span> + <span class="k">delete</span> <span class="nx">MACROS</span><span class="p">.</span><span class="nx">colorbox</span><span class="p">;</span> + <span class="k">delete</span> <span class="nx">MACROS</span><span class="p">.</span><span class="nx">fcolorbox</span><span class="p">;</span> +<span class="p">});</span> +<span class="nt">&lt;/script&gt;</span> +</pre></div> +</div> +</div> </div> <div class="section" id="supported-latex-commands"> <span id="tex-commands"></span><h2>Supported LaTeX commands<a class="headerlink" href="#supported-latex-commands" title="Permalink to this headline">ΒΆ</a></h2> @@ -340,6 +913,9 @@ array. You can configure the extension as follows:</p> 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.</p> +<p>More complete details about how to use these macros, with examples and +explanations, is available at Carol Fisher&#8217;s <a class="reference external" href="http://www.onemathematicalcat.org/MathJaxDocumentation/TeXSyntax.htm">TeX Commands Available +in MathJax</a> page.</p> <div class="section" id="symbols"> <h3>Symbols<a class="headerlink" href="#symbols" title="Permalink to this headline">ΒΆ</a></h3> <div class="highlight-latex"><div class="highlight"><pre># @@ -408,8 +984,11 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\barwedge</span> AMSsymbols <span class="k">\Bbb</span> <span class="k">\Bbbk</span> AMSsymbols +<span class="k">\bbox</span> [bbox] +<span class="k">\bcancel</span> cancel <span class="k">\because</span> AMSsymbols <span class="k">\begin</span> +<span class="k">\begingroup</span> begingroup non-standard <span class="k">\beta</span> <span class="k">\beth</span> AMSsymbols <span class="k">\between</span> AMSsymbols @@ -474,13 +1053,18 @@ be loaded automatically when the macro or environment is first used.</p> <div class="section" id="c"> <h3>C<a class="headerlink" href="#c" title="Permalink to this headline">ΒΆ</a></h3> <div class="highlight-latex"><div class="highlight"><pre><span class="k">\cal</span> +<span class="k">\cancel</span> cancel +<span class="k">\cancelto</span> cancel <span class="k">\cap</span> <span class="k">\Cap</span> AMSsymbols <span class="k">\cases</span> <span class="k">\cdot</span> <span class="k">\cdotp</span> <span class="k">\cdots</span> +<span class="k">\ce</span> mhchem +<span class="k">\cee</span> mhchem <span class="k">\centerdot</span> AMSsymbols +<span class="k">\cf</span> mhchem <span class="k">\cfrac</span> AMSmath <span class="k">\check</span> <span class="k">\checkmark</span> AMSsymbols @@ -498,7 +1082,8 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\class</span> [HTML] non-standard <span class="k">\clubsuit</span> <span class="k">\colon</span> -<span class="k">\color</span> +<span class="k">\color</span> color +<span class="k">\colorbox</span> color <span class="k">\complement</span> AMSsymbols <span class="k">\cong</span> <span class="k">\coprod</span> @@ -577,12 +1162,15 @@ be loaded automatically when the macro or environment is first used.</p> <h3>E<a class="headerlink" href="#e" title="Permalink to this headline">ΒΆ</a></h3> <div class="highlight-latex"><div class="highlight"><pre><span class="k">\ell</span> <span class="k">\emptyset</span> +<span class="k">\enclose</span> enclose non-standard <span class="k">\end</span> +<span class="k">\endgroup</span> begingroup non-standard <span class="k">\enspace</span> <span class="k">\epsilon</span> <span class="k">\eqalign</span> <span class="k">\eqalignno</span> <span class="k">\eqcirc</span> AMSsymbols +<span class="k">\eqref</span> [AMSmath] <span class="k">\eqsim</span> AMSsymbols <span class="k">\eqslantgtr</span> AMSsymbols <span class="k">\eqslantless</span> AMSsymbols @@ -598,6 +1186,7 @@ be loaded automatically when the macro or environment is first used.</p> <h3>F<a class="headerlink" href="#f" title="Permalink to this headline">ΒΆ</a></h3> <div class="highlight-latex"><div class="highlight"><pre><span class="k">\fallingdotseq</span> AMSsymbols <span class="k">\fbox</span> +<span class="k">\fcolorbox</span> color <span class="k">\Finv</span> AMSsymbols <span class="k">\flat</span> <span class="k">\forall</span> @@ -614,6 +1203,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\Gamma</span> <span class="k">\gamma</span> <span class="k">\gcd</span> +<span class="k">\gdef</span> begingroup <span class="k">\ge</span> <span class="k">\genfrac</span> AMSmath <span class="k">\geq</span> @@ -624,6 +1214,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\ggg</span> AMSsymbols <span class="k">\gggtr</span> AMSsymbols <span class="k">\gimel</span> AMSsymbols +<span class="k">\global</span> begingroup <span class="k">\gnapprox</span> AMSsymbols <span class="k">\gneq</span> AMSsymbols <span class="k">\gneqq</span> AMSsymbols @@ -702,7 +1293,8 @@ be loaded automatically when the macro or environment is first used.</p> </div> <div class="section" id="l"> <h3>L<a class="headerlink" href="#l" title="Permalink to this headline">ΒΆ</a></h3> -<div class="highlight-latex"><div class="highlight"><pre><span class="k">\Lambda</span> +<div class="highlight-latex"><div class="highlight"><pre><span class="k">\label</span> [AMSmath] +<span class="k">\Lambda</span> <span class="k">\lambda</span> <span class="k">\land</span> <span class="k">\langle</span> @@ -741,6 +1333,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\lesseqqgtr</span> AMSsymbols <span class="k">\lessgtr</span> AMSsymbols <span class="k">\lesssim</span> AMSsymbols +<span class="k">\let</span> [newcommand] <span class="k">\lfloor</span> <span class="k">\lg</span> <span class="k">\lgroup</span> @@ -809,6 +1402,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\mathscr</span> <span class="k">\mathsf</span> <span class="k">\mathstrut</span> +<span class="k">\mathtip</span> action non-standard <span class="k">\mathtt</span> <span class="k">\matrix</span> <span class="k">\max</span> @@ -816,9 +1410,11 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\measuredangle</span> AMSsymbols <span class="k">\mho</span> AMSsymbols <span class="k">\mid</span> +<span class="k">\middle</span> <span class="k">\min</span> <span class="k">\mit</span> <span class="k">\mkern</span> +<span class="k">\mmlToken</span> non-standard <span class="k">\mod</span> <span class="k">\models</span> <span class="k">\moveleft</span> @@ -845,6 +1441,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\neq</span> <span class="k">\newcommand</span> [newcommand] <span class="k">\newenvironment</span> [newcommand] +<span class="k">\Newextarrow</span> extpfeil <span class="k">\newline</span> <span class="k">\nexists</span> AMSsymbols <span class="k">\ngeq</span> AMSsymbols @@ -968,7 +1565,9 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\rbrack</span> <span class="k">\rceil</span> <span class="k">\Re</span> +<span class="k">\ref</span> [AMSmath] <span class="k">\renewcommand</span> [newcommand] +<span class="k">\renewenvironment</span> [newcommand] <span class="k">\require</span> non-standard <span class="k">\restriction</span> AMSsymbols <span class="k">\rfloor</span> @@ -1089,6 +1688,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\textit</span> <span class="k">\textrm</span> <span class="k">\textstyle</span> +<span class="k">\texttip</span> action non-standard <span class="k">\tfrac</span> AMSmath <span class="k">\therefore</span> AMSsymbols <span class="k">\Theta</span> @@ -1101,6 +1701,7 @@ be loaded automatically when the macro or environment is first used.</p> <span class="k">\tiny</span> <span class="k">\Tiny</span> non-standard <span class="k">\to</span> +<span class="k">\toggle</span> action non-standard <span class="k">\top</span> <span class="k">\triangle</span> <span class="k">\triangledown</span> AMSsymbols @@ -1205,8 +1806,14 @@ be loaded automatically when the macro or environment is first used.</p> <h3>X<a class="headerlink" href="#x" title="Permalink to this headline">ΒΆ</a></h3> <div class="highlight-latex"><div class="highlight"><pre><span class="k">\Xi</span> <span class="k">\xi</span> +<span class="k">\xcancel</span> cancel <span class="k">\xleftarrow</span> AMSmath +<span class="k">\xlongequal</span> extpfeil +<span class="k">\xmapsto</span> extpfeil <span class="k">\xrightarrow</span> AMSmath +<span class="k">\xtofrom</span> extpfeil +<span class="k">\xtwoheadleftarrow</span> extpfeil +<span class="k">\xtwoheadrightarrow</span> extpfeil </pre></div> </div> </div> @@ -1277,12 +1884,24 @@ vmatrix <li><a class="reference internal" href="#">MathJax TeX and LaTeX Support</a><ul> <li><a class="reference internal" href="#tex-and-latex-math-delimiters">TeX and LaTeX math delimiters</a></li> <li><a class="reference internal" href="#tex-and-latex-in-html-documents">TeX and LaTeX in HTML documents</a></li> +<li><a class="reference internal" href="#defining-tex-macros">Defining TeX macros</a></li> +<li><a class="reference internal" href="#autmatic-equation-numering">Autmatic Equation Numering</a></li> <li><a class="reference internal" href="#tex-and-latex-extensions">TeX and LaTeX extensions</a><ul> +<li><a class="reference internal" href="#action">Action</a></li> <li><a class="reference internal" href="#amsmath-and-amssymbols">AMSmath and AMSsymbols</a></li> <li><a class="reference internal" href="#autobold">Autobold</a></li> +<li><a class="reference internal" href="#bbox">BBox</a></li> +<li><a class="reference internal" href="#begingroup">Begingroup</a></li> +<li><a class="reference internal" href="#cancel">Cancel</a></li> +<li><a class="reference internal" href="#color">Color</a></li> +<li><a class="reference internal" href="#enclose">Enclose</a></li> +<li><a class="reference internal" href="#extpfeil">Extpfeil</a></li> +<li><a class="reference internal" href="#html">HTML</a></li> +<li><a class="reference internal" href="#mhchem">mhchem</a></li> <li><a class="reference internal" href="#noerrors">noErrors</a></li> <li><a class="reference internal" href="#noundefined">noUndefined</a></li> <li><a class="reference internal" href="#unicode-support">Unicode support</a></li> +<li><a class="reference internal" href="#autoload-all">Autoload-all</a></li> </ul> </li> <li><a class="reference internal" href="#supported-latex-commands">Supported LaTeX commands</a><ul> @@ -1355,11 +1974,11 @@ vmatrix <li class="right" > <a href="platforms/movable-type.html" title="Using MathJax in Movable Type" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/typeset.html b/docs/html/typeset.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Modifying Math on the Page &mdash; MathJax v1.1 documentation</title> + <title>Modifying Math on the Page &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,7 +22,7 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="The MathJax API" href="api/index.html" /> <link rel="prev" title="Loading MathJax Dynamically" href="dynamic.html" /> </head> @@ -40,7 +40,7 @@ <li class="right" > <a href="dynamic.html" title="Loading MathJax Dynamically" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -156,10 +156,18 @@ will not occur before the math is typeset.</p> <dl class="describe"> <dt> +<tt class="descname">Rerender()</tt></dt> +<dd><p>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&#8217;t +regenerated; only the output is.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">Reprocess()</tt></dt> -<dd><p>to remove the output and reproduce it again (for -example, if CSS has changed that would alter the spacing of the -mathematics).</p> +<dd><p>to remove the output and then retranslate the input into the +internal MathML and rerender the output.</p> </dd></dl> <dl class="describe"> @@ -171,6 +179,13 @@ the original <tt class="docutils literal"><span class="pre">&lt;script&gt;</span <dl class="describe"> <dt> +<tt class="descname">needsUpdate()</tt></dt> +<dd><p>to find out if the mathematics has changed so that its output +needs to be updated.</p> +</dd></dl> + +<dl class="describe"> +<dt> <tt class="descname">SourceElement()</tt></dt> <dd><p>to obtain a reference to the original <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> object that is associated with this element jax.</p> @@ -190,7 +205,7 @@ time. This is another situation where you want to use the MathJax queue. If your startup code performs the commands</p> <div class="highlight-javascript"><div class="highlight"><pre><span class="kd">var</span> <span class="nx">studentDisplay</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">Queue</span><span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span> - <span class="nx">studentDisplay</span> <span class="o">=</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">getAllJax</span><span class="p">(</span><span class="s2">&quot;MathDiv&quot;</span><span class="p">);</span> + <span class="nx">studentDisplay</span> <span class="o">=</span> <span class="nx">MathJax</span><span class="p">.</span><span class="nx">Hub</span><span class="p">.</span><span class="nx">getAllJax</span><span class="p">(</span><span class="s2">&quot;MathDiv&quot;</span><span class="p">)[</span><span class="mi">0</span><span class="p">];</span> <span class="p">});</span> </pre></div> </div> @@ -200,8 +215,11 @@ queue. If your startup code performs the commands</p> </div> <p>to change the student&#8217;s answer to be the typeset version of whatever is in the <tt class="docutils literal"><span class="pre">studentAnswer</span></tt> variable.</p> -<p>Here is a complete example that illustrates this approach (available in a -more full-featured version as <tt class="docutils literal"><span class="pre">test/sample-dynamic.html</span></tt>):</p> +<p>Here is a complete example that illustrates this approach. Note, +however, that Internet Explorer does not fire the <tt class="docutils literal"><span class="pre">onchange</span></tt> 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 <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html">test/sample-dynamic.html</a>.</p> <div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;html&gt;</span> <span class="nt">&lt;head&gt;</span> <span class="nt">&lt;title&gt;</span>MathJax Dynamic Math Test Page<span class="nt">&lt;/title&gt;</span> @@ -258,6 +276,9 @@ You typed: ${}$ <span class="nt">&lt;/html&gt;</span> </pre></div> </div> +<p>There are a number of additional example pages at <a class="reference external" href="http://cdn.mathjax.org/mathjax/latest/test/examples.html">test/examples.html</a> that +illustrate how to call MathJax dynamically or perform other actions +with MathJax.</p> </div> </div> @@ -310,11 +331,11 @@ You typed: ${}$ <li class="right" > <a href="dynamic.html" title="Loading MathJax Dynamically" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/upgrade.html b/docs/html/upgrade.html @@ -6,13 +6,13 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title>Migrating from MathJax v1.0 to v1.1 &mdash; MathJax v1.1 documentation</title> + <title>Migrating from MathJax v1.0 to v1.1 &mdash; MathJax v2.0 documentation</title> <link rel="stylesheet" href="_static/mj.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '', - VERSION: '1.1', + VERSION: '2.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true @@ -22,9 +22,9 @@ <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> <link rel="next" title="Converting to MathJax from jsMath" href="jsMath.html" /> - <link rel="prev" title="What’s New in MathJax v1.1" href="whats-new.html" /> + <link rel="prev" title="What’s New in MathJax v1.1" href="whats-new-1.1.html" /> </head> <body> @@ -38,9 +38,9 @@ <a href="jsMath.html" title="Converting to MathJax from jsMath" accesskey="N">next</a> |</li> <li class="right" > - <a href="whats-new.html" title="What’s New in MathJax v1.1" + <a href="whats-new-1.1.html" title="What’s New in MathJax v1.1" accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> @@ -281,7 +281,7 @@ retired in favor of the GitHub site.</p> </ul> <h4>Previous topic</h4> - <p class="topless"><a href="whats-new.html" + <p class="topless"><a href="whats-new-1.1.html" title="previous chapter">What&#8217;s New in MathJax v1.1</a></p> <h4>Next topic</h4> <p class="topless"><a href="jsMath.html" @@ -313,13 +313,13 @@ retired in favor of the GitHub site.</p> <a href="jsMath.html" title="Converting to MathJax from jsMath" >next</a> |</li> <li class="right" > - <a href="whats-new.html" title="What’s New in MathJax v1.1" + <a href="whats-new-1.1.html" title="What’s New in MathJax v1.1" >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> </ul> </div> <div class="footer"> - &copy; Copyright 2011 Design Science. + &copy; Copyright 2012 Design Science. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> diff --git a/docs/html/whats-new-1.1.html b/docs/html/whats-new-1.1.html @@ -0,0 +1,264 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>What’s New in MathJax v1.1 &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> + <link rel="next" title="Migrating from MathJax v1.0 to v1.1" href="upgrade.html" /> + <link rel="prev" title="What’s New in MathJax v2.0" href="whats-new-2.0.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="whats-new-2.0.html" title="What’s New in MathJax v2.0" + accesskey="P">previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="what-s-new-in-mathjax-v1-1"> +<span id="whats-new-1-1"></span><h1>What&#8217;s New in MathJax v1.1<a class="headerlink" href="#what-s-new-in-mathjax-v1-1" title="Permalink to this headline">ΒΆ</a></h1> +<p>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&#8217;s performance.</p> +<p>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 <a class="reference internal" href="configuration.html#loading-cdn"><em>Loading MathJax from +the CDN</em></a> for more details.</p> +<p>The following sections outline the changes in v1.1:</p> +<div class="section" id="optimization"> +<h2>Optimization<a class="headerlink" href="#optimization" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>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.</li> +<li>Improved responsiveness to mouse events during typesetting.</li> +<li>Parallel downloading of files needed by MathJax, for faster startup +times.</li> +<li>Shorter timeout for web fonts, so if they can&#8217;t be downloaded, you don&#8217;t +have to wait so long.</li> +<li>Rollover to image fonts if a web font fails to load (so you don&#8217;t have +to wait for <em>every</em> font to fail.</li> +<li>The MathJax files are now packed only with <cite>yuicompressor</cite> rather than a +custom compressor. The CDN serves gzipped versions, which end up being +smaller than the gzipped custom-packed files.</li> +<li>Improved rendering speed in IE by removing <tt class="docutils literal"><span class="pre">position:relative</span></tt> from +the style for mathematics.</li> +<li>Improved rendering speed for most browsers by isolating the mathematics +from the page during typesetting (avoids full page reflows).</li> +</ul> +</div> +<div class="section" id="enhancements"> +<h2>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>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&#8217;t have to be loaded on pages that don&#8217;t include +mathematics, for example).</li> +<li>Better handling of background color from style attributes.</li> +<li>Ability to pass configuration parameters via script URL.</li> +<li>Support HTML5 compliant configuration syntax.</li> +<li>Switch the Git repository from storing the fonts in <cite>fonts.zip</cite> to +storing the <cite>fonts/</cite> directory directly.</li> +<li>Improved About box.</li> +<li>Added a minimum scaling factor (so math won&#8217;t get too small).</li> +</ul> +</div> +<div class="section" id="tex-support"> +<h2>TeX Support<a class="headerlink" href="#tex-support" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>Added support for <tt class="docutils literal"><span class="pre">\href</span></tt>, <tt class="docutils literal"><span class="pre">\style</span></tt>, <tt class="docutils literal"><span class="pre">\class</span></tt>, <tt class="docutils literal"><span class="pre">\cssId</span></tt>.</li> +<li>Avoid recursive macro definitions and other resource consumption possibilities.</li> +<li>Fix for <tt class="docutils literal"><span class="pre">\underline</span></tt> bug.</li> +<li>Fix for bug with <tt class="docutils literal"><span class="pre">\fbox</span></tt>.</li> +<li>Fix height problem with <tt class="docutils literal"><span class="pre">\raise</span></tt> and <tt class="docutils literal"><span class="pre">\lower</span></tt>.</li> +<li>Fix problem with <tt class="docutils literal"><span class="pre">\over</span></tt> used inside array entries.</li> +<li>Fix problem with nesting of math delimiters inside text-mode material.</li> +<li>Fix single digit super- and subscripts followed by punctuation.</li> +<li>Make sure <cite>movablelimits</cite> is off for <tt class="docutils literal"><span class="pre">\underline</span></tt> and related macros.</li> +<li>Fix problem with dimensions given with <tt class="docutils literal"><span class="pre">pc</span></tt> units.</li> +</ul> +</div> +<div class="section" id="mathml-support"> +<h2>MathML Support<a class="headerlink" href="#mathml-support" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>Fix <tt class="docutils literal"><span class="pre">&amp;lt;</span></tt> and <tt class="docutils literal"><span class="pre">&amp;amp;</span></tt> being translated too early.</li> +<li>Handle self-closing tags in HTML files better.</li> +<li>Combine adjacent relational operators in <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> tags.</li> +<li>Fix entity name problems.</li> +<li>Better support for MathML namespaces.</li> +<li>Properly handle comments within MathML in IE.</li> +<li>Properly consider <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> and <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt> as space-like.</li> +<li>Improved support for <tt class="docutils literal"><span class="pre">&lt;maction&gt;</span></tt> with embellished operators.</li> +</ul> +</div> +<div class="section" id="other-bug-fixes"> +<h2>Other Bug Fixes<a class="headerlink" href="#other-bug-fixes" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>Fixed CSS bleed through with zoom and other situations.</li> +<li>Fixed problems with <tt class="docutils literal"><span class="pre">showMathMenuMSIE</span></tt> when set to <tt class="docutils literal"><span class="pre">false</span></tt>.</li> +<li>Replaced illegal prefix characters in cookie name.</li> +<li>Improved placement of surd for square roots and n-th roots.</li> +<li>Fixed layer obscuring math from MathPlayer for screen readers.</li> +<li>Newlines in CDATA comments are now handled properly.</li> +<li>Resolved conflict between <cite>jsMath2jax</cite> and <cite>tex2jax</cite> both processing the +same equation.</li> +<li>Fixed problem with <tt class="docutils literal"><span class="pre">class=&quot;tex2jax_ignore&quot;</span></tt> affecting the processing of +sibling elements.</li> +</ul> +</div> +<div class="section" id="browser-support"> +<h2>Browser Support<a class="headerlink" href="#browser-support" title="Permalink to this headline">ΒΆ</a></h2> +<p><strong>Android</strong></p> +<ul class="simple"> +<li>Added detection and configuration for Android browser.</li> +<li>Allow use of OTF web fonts in Android 2.2.</li> +</ul> +<p><strong>Blackberry</strong></p> +<ul class="simple"> +<li>MathJax now works with OS version 6.</li> +</ul> +<p><strong>Chrome</strong></p> +<ul class="simple"> +<li>Use OTF web fonts rather than SVG fonts for version 4 and above.</li> +</ul> +<p><strong>Firefox</strong></p> +<ul class="simple"> +<li>Added Firefox 4 detection and configuration.</li> +<li>Fix for extra line-break bug when displayed equations are in +preformatted text.</li> +<li>Updated fonts so that FF 3.6.13 and above can read them.</li> +</ul> +<p><strong>Internet Explorer</strong></p> +<ul class="simple"> +<li>Changes for compatibility with IE9.</li> +<li>Fix for IE8 incorrectly parsing MathML.</li> +<li>Fix for IE8 namespace problem.</li> +<li>Fix for null <tt class="docutils literal"><span class="pre">parentNode</span></tt> problem.</li> +<li>Fix for <tt class="docutils literal"><span class="pre">outerHTML</span></tt> not quoting values of attributes.</li> +</ul> +<p><strong>iPhone/iPad</strong></p> +<ul class="simple"> +<li>Added support for OTF web fonts in iOS4.2.</li> +</ul> +<p><strong>Nokia</strong></p> +<ul class="simple"> +<li>MathJax now works with Symbian<sup>3</sup>.</li> +</ul> +<p><strong>Opera</strong></p> +<ul class="simple"> +<li>Prevent Opera from using STIX fonts unless explicitly requested via the +font menu (since Opera can&#8217;t display many of the characters).</li> +<li>Fixed bad em-size detection in 10.61.</li> +<li>Fixed a problem with the About dialog in Opera 11.</li> +</ul> +<p><strong>Safari</strong></p> +<ul class="simple"> +<li>Use OTF web fonts for Safari/PC.</li> +</ul> +<p><strong>WebKit</strong></p> +<ul class="simple"> +<li>Better version detection.</li> +</ul> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">What&#8217;s New in MathJax v1.1</a><ul> +<li><a class="reference internal" href="#optimization">Optimization</a></li> +<li><a class="reference internal" href="#enhancements">Enhancements</a></li> +<li><a class="reference internal" href="#tex-support">TeX Support</a></li> +<li><a class="reference internal" href="#mathml-support">MathML Support</a></li> +<li><a class="reference internal" href="#other-bug-fixes">Other Bug Fixes</a></li> +<li><a class="reference internal" href="#browser-support">Browser Support</a></li> +</ul> +</li> +</ul> + + <h4>Previous topic</h4> + <p class="topless"><a href="whats-new-2.0.html" + title="previous chapter">What&#8217;s New in MathJax v2.0</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="upgrade.html" + title="next chapter">Migrating from MathJax v1.0 to v1.1</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" + >next</a> |</li> + <li class="right" > + <a href="whats-new-2.0.html" title="What’s New in MathJax v2.0" + >previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/whats-new-2.0.html b/docs/html/whats-new-2.0.html @@ -0,0 +1,670 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + + <title>What’s New in MathJax v2.0 &mdash; MathJax v2.0 documentation</title> + <link rel="stylesheet" href="_static/mj.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '', + VERSION: '2.0', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> + <link rel="top" title="MathJax v2.0 documentation" href="index.html" /> + <link rel="next" title="What’s New in MathJax v1.1" href="whats-new-1.1.html" /> + <link rel="prev" title="The MathJax Community" href="community.html" /> + </head> + <body> + + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + accesskey="I">index</a></li> + <li class="right" > + <a href="whats-new-1.1.html" title="What’s New in MathJax v1.1" + accesskey="N">next</a> |</li> + <li class="right" > + <a href="community.html" title="The MathJax Community" + accesskey="P">previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + <div class="body"> + + <div class="section" id="what-s-new-in-mathjax-v2-0"> +<span id="whats-new-2-0"></span><h1>What&#8217;s New in MathJax v2.0<a class="headerlink" href="#what-s-new-in-mathjax-v2-0" title="Permalink to this headline">ΒΆ</a></h1> +<p>MathJax version 2.0 includes many new and improved features, including +much better speeds in Internet Explorer, a new AsciiMath input +processor, a new <a class="reference internal" href="glossary.html#term-svg"><em class="xref std std-term">SVG</em></a> output processor, support for additional +LaTeX commands, and many bug fixes, to name just a few of the changes.</p> +<div class="section" id="major-speed-improvement-for-html-css-output-particularly-in-ie"> +<h2>Major speed improvement for HTML-CSS output, particularly in IE<a class="headerlink" href="#major-speed-improvement-for-html-css-output-particularly-in-ie" title="Permalink to this headline">ΒΆ</a></h2> +<p>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).</p> +</div> +<div class="section" id="reduced-flickering-during-typsetting"> +<h2>Reduced flickering during typsetting<a class="headerlink" href="#reduced-flickering-during-typsetting" title="Permalink to this headline">ΒΆ</a></h2> +<p>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 <tt class="docutils literal"><span class="pre">EqnChunk</span></tt> parameter in the HTML-CSS or SVG +block of your configuration. See the <a class="reference internal" href="options/HTML-CSS.html#configure-html-css"><em>configuration options for +HTML-CSS</em></a> and <a class="reference internal" href="options/SVG.html#configure-svg"><em>configuration options for SVG</em></a> pages for details.</p> +<p>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 +<tt class="docutils literal"><span class="pre">positionToHash</span></tt> parameter in the main section of your +configuration. See the <a class="reference internal" href="options/hub.html#configure-hub"><em>core configuration options</em></a> page for details.</p> +</div> +<div class="section" id="automatic-equation-numbering-of-tex-formulas"> +<h2>Automatic equation numbering of TeX formulas<a class="headerlink" href="#automatic-equation-numbering-of-tex-formulas" title="Permalink to this headline">ΒΆ</a></h2> +<p>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 +<tt class="docutils literal"><span class="pre">equationNumbers</span></tt> section of the <tt class="docutils literal"><span class="pre">TeX</span></tt> block of your configuration +(see the <a class="reference internal" href="tex.html#tex-eq-numbers"><em>equation numbering</em></a> 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 <tt class="docutils literal"><span class="pre">\label</span></tt>, <tt class="docutils literal"><span class="pre">\ref</span></tt>, and +<tt class="docutils literal"><span class="pre">\eqref</span></tt> commands to make it easier to link to particular equations +within the document.</p> +</div> +<div class="section" id="automatic-line-breaking-of-long-displayed-equations"> +<h2>Automatic line breaking of long displayed equations<a class="headerlink" href="#automatic-line-breaking-of-long-displayed-equations" title="Permalink to this headline">ΒΆ</a></h2> +<p>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 <tt class="docutils literal"><span class="pre">linebreaks</span></tt> section +of the <tt class="docutils literal"><span class="pre">HTML-CSS</span></tt> or <tt class="docutils literal"><span class="pre">SVG</span></tt> block of your configuration (see the +<a class="reference internal" href="output.html#automatic-linebreaking"><em>automatic line breaking</em></a> 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.</p> +</div> +<div class="section" id="new-asciimath-input-jax-and-svg-output-jax"> +<h2>New AsciiMath input jax and SVG output jax<a class="headerlink" href="#new-asciimath-input-jax-and-svg-output-jax" title="Permalink to this headline">ΒΆ</a></h2> +<p>MathJax currently processes math in either <a class="reference internal" href="glossary.html#term-tex"><em class="xref std std-term">TeX</em></a> and +<a class="reference internal" href="glossary.html#term-latex"><em class="xref std std-term">LaTeX</em></a> format, or <a class="reference internal" href="glossary.html#term-mathml"><em class="xref std std-term">MathML</em></a> notation; version 2.0 augments +that to include <a class="reference internal" href="glossary.html#term-asciimath"><em class="xref std std-term">AsciiMath</em></a> notation (see <a class="reference external" href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html">the ASCIIMathML +home page</a> +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 <a class="reference internal" href="asciimath.html#asciimath-support"><em>AsciiMath support</em></a> page +for details.</p> +<p>In addition to the HTML-CSS and Native MathML output available in +v1.1, MathJax v2.0 includes an <a class="reference internal" href="glossary.html#term-svg"><em class="xref std std-term">SVG</em></a>-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 <a class="reference internal" href="output.html#output-formats"><em>output formats</em></a> documentation for details.</p> +</div> +<div class="section" id="new-combined-configuration-files"> +<h2>New combined configuration files<a class="headerlink" href="#new-combined-configuration-files" title="Permalink to this headline">ΒΆ</a></h2> +<p>Pre-defined configuration files that include the AsciiMath and SVG +processors are now available with MathJax v2.0. These include +<tt class="docutils literal"><span class="pre">AM_HTMLorMML</span></tt>, <tt class="docutils literal"><span class="pre">TeX-AMS-MML_SVG</span></tt>, and <tt class="docutils literal"><span class="pre">TeX-MML-AM_HTMLorMML</span></tt>. +See the <a class="reference internal" href="configuration.html#config-files"><em>common configurations</em></a> section for details.</p> +</div> +<div class="section" id="mathjax-contextual-menu-now-available-on-mobile-devices"> +<h2>MathJax contextual menu now available on mobile devices<a class="headerlink" href="#mathjax-contextual-menu-now-available-on-mobile-devices" title="Permalink to this headline">ΒΆ</a></h2> +<p>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&#8217;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.</p> +</div> +<div class="section" id="improved-support-for-screen-readers"> +<h2>Improved support for screen readers<a class="headerlink" href="#improved-support-for-screen-readers" title="Permalink to this headline">ΒΆ</a></h2> +<p>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&#8217;s interface that were interfering +with some screen readers&#8217; 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&#8217;s interaction with some screen +readers.</p> +</div> +<div class="section" id="many-new-tex-additions-and-enhancements"> +<h2>Many new TeX additions and enhancements<a class="headerlink" href="#many-new-tex-additions-and-enhancements" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>New <cite>mhchem</cite> chemistry extension (adds <tt class="docutils literal"><span class="pre">\ce</span></tt>, <tt class="docutils literal"><span class="pre">\cf</span></tt>, and <tt class="docutils literal"><span class="pre">\cee</span></tt> macros)</li> +<li>New <cite>cancel</cite> extension (adds <tt class="docutils literal"><span class="pre">\cancel</span></tt>, <tt class="docutils literal"><span class="pre">\bcancel</span></tt>, <tt class="docutils literal"><span class="pre">\xcancel</span></tt>, and <tt class="docutils literal"><span class="pre">\cancelto</span></tt> macros)</li> +<li>New <cite>extpfeil</cite> extension (adds more stretchy arrows)</li> +<li>New <cite>color</cite> extension (makes <tt class="docutils literal"><span class="pre">\color</span></tt> work as a switch, as in LaTeX). +Adds <tt class="docutils literal"><span class="pre">\definecolor</span></tt>, other color models, LaTeX named colors, +<tt class="docutils literal"><span class="pre">\colorbox</span></tt>, <tt class="docutils literal"><span class="pre">\fcolorbox</span></tt>, etc.</li> +<li>New <cite>begingroup</cite> extension to allow macro definitions to be +localized. Adds <tt class="docutils literal"><span class="pre">\begingroup</span></tt> and <tt class="docutils literal"><span class="pre">\endgroup</span></tt> for isolating macro +declarations, and defines <tt class="docutils literal"><span class="pre">\let</span></tt>, <tt class="docutils literal"><span class="pre">\renewenvironment</span></tt>, <tt class="docutils literal"><span class="pre">\global</span></tt>, and +<tt class="docutils literal"><span class="pre">\gdef</span></tt>.</li> +<li>New <cite>enclose</cite> extension to give TeX access to <tt class="docutils literal"><span class="pre">&lt;menclose&gt;</span></tt> elements. +Adds <tt class="docutils literal"><span class="pre">\enclose{type}[attributes]{math}</span></tt> macro.</li> +<li>New <cite>action</cite> extension to give TeX access to <tt class="docutils literal"><span class="pre">&lt;maction&gt;</span></tt> elements. +Adds <tt class="docutils literal"><span class="pre">\mathtip{math}{tip}</span></tt>, <tt class="docutils literal"><span class="pre">\texttip{math}{tip}</span></tt>, and +<tt class="docutils literal"><span class="pre">\toggle{math1}{math2}...\endtoggle</span></tt> macros.</li> +<li>New <tt class="docutils literal"><span class="pre">\mmToken{type}[attributes]{text}</span></tt> macro for producing <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt>, +<tt class="docutils literal"><span class="pre">&lt;mi&gt;</span></tt>, <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt>, and other token MathML elements directly.</li> +<li>New <tt class="docutils literal"><span class="pre">\bbox[color;attributes]{math}</span></tt> macro to add background color, +padding, borders, etc.</li> +<li>New <tt class="docutils literal"><span class="pre">\middle</span></tt> macro for stretchy delimiters between <tt class="docutils literal"><span class="pre">\left</span></tt> and <tt class="docutils literal"><span class="pre">\right</span></tt>.</li> +<li>New <tt class="docutils literal"><span class="pre">\label</span></tt>, <tt class="docutils literal"><span class="pre">\ref</span></tt>, and <tt class="docutils literal"><span class="pre">\eqref</span></tt> macros for numbered equations.</li> +<li>Better implementation of <tt class="docutils literal"><span class="pre">\not</span></tt> so it produces proper MathML when possible.</li> +<li>Better implementation of <tt class="docutils literal"><span class="pre">\dots</span></tt> that selects <tt class="docutils literal"><span class="pre">\ldots</span></tt> or <tt class="docutils literal"><span class="pre">\cdots</span></tt> +depending on the context.</li> +<li>Better implementation of <tt class="docutils literal"><span class="pre">\cases</span></tt> that automatically uses <tt class="docutils literal"><span class="pre">\text</span></tt> on +the second entry in each row.</li> +<li>Safer implementation of <tt class="docutils literal"><span class="pre">\require</span></tt> that only allows loading from +extensions directory.</li> +<li>Allow <tt class="docutils literal"><span class="pre">\newcomand</span></tt> to provide a default parameter.</li> +<li>Allow <tt class="docutils literal"><span class="pre">\\</span></tt> to take an optional argument that specifies additional +space between lines.</li> +<li>Allow <tt class="docutils literal"><span class="pre">\\</span></tt> to be used anywhere (to force a line break), not just in +arrays.</li> +<li>Allow optional alignment parameter for array, aligned, and gathered +environments.</li> +</ul> +<p>See the <a class="reference internal" href="tex.html#tex-support"><em>TeX support</em></a> page for details on these +extensions and macros.</p> +</div> +<div class="section" id="font-enhancements"> +<h2>Font enhancements<a class="headerlink" href="#font-enhancements" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>Work around for the OS X Lion STIX font problem.</li> +<li>Support for STIX-1.1 fonts (detection of which version you have, +and use data appropriate for that).</li> +<li>New WOFF versions of the web fonts (smaller, so faster to +download).</li> +<li>Data for more stretchy characters in HTML-CSS output.</li> +<li>Add support for Unicode planes 1 through 10 (not just the Math +Alphabet block) in HTML-CSS output.</li> +<li>Increased timeout for web fonts (since it was switching to image +fonts too often, especially for mobile devices).</li> +<li>Only switch to image fonts if the first web font fails to load (if +we can access one, assume we can access them all).</li> +<li>Allow <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt> elements to use the page font rather than MathJax +fonts (optionally). This is controlled by the <tt class="docutils literal"><span class="pre">mtextFontInerhit</span></tt> +configuration parameter for HTML-CSS and SVG output jax.</li> +<li>Provide better control over the font used for characters that are +not in the MathJax fonts.</li> +<li>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).</li> +</ul> +</div> +<div class="section" id="interface-improvements"> +<h2>Interface improvements<a class="headerlink" href="#interface-improvements" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>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.</li> +<li>The MathJax contextual menu is available in mobile devices (see +description above).</li> +<li>Warning messages are issued if you switch renderers to one that is +inappropriate for your browser.</li> +<li>MathJax now starts processing the page on the <tt class="docutils literal"><span class="pre">DOMContentLoaded</span></tt> +event rather than the page <tt class="docutils literal"><span class="pre">onload</span></tt> event (this allows the +mathematics to appear sooner).</li> +<li>Native MathML output is now scaled to better match the surrounding +font (like it is for HTML-CSS output).</li> +<li>Better CSS styling for NativeMML output in Firefox in order to +handle <tt class="docutils literal"><span class="pre">\cal</span></tt> and other fonts.</li> +<li>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.)</li> +<li>MathJax now loads the menu and zoom code (if they haven&#8217;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.</li> +<li>For the <cite>tex2jax</cite> preprocessor, the <tt class="docutils literal"><span class="pre">processClass</span></tt> can now be +used to override the <tt class="docutils literal"><span class="pre">skipTags</span></tt> to force a tag that is usually +skipped to have its contents be processed.</li> +<li>The <cite>noErrors</cite> and <cite>noUndefined</cite> extensions can now be disabled via +a configuration option (since they are included in many of the +combined configuration files). See the <cite>noErrors</cite> and +<cite>noUndefined</cite> sections of the <a class="reference internal" href="tex.html#tex-support"><em>TeX support</em></a> page for more information.</li> +<li>There is a new <tt class="xref py py-meth docutils literal"><span class="pre">MathJax.Hub.setRenderer()</span></tt> function that can +be used to switch the current renderer. See the <a class="reference internal" href="api/hub.html#api-hub"><em>MathJax Hub +API</em></a> documentation for details.</li> +<li>A user-defined macros is no longer overridden if an extension is +loaded that redefines that macro.</li> +<li>Improved web-font detection reliability.</li> +</ul> +</div> +<div class="section" id="important-changes-from-previous-versions"> +<span id="important-changes-2-0"></span><h2>Important changes from previous versions<a class="headerlink" href="#important-changes-from-previous-versions" title="Permalink to this headline">ΒΆ</a></h2> +<ul> +<li><p class="first">The default renderer for Firefox has been changed from <cite>NativeMML</cite> to +<cite>HTML-CSS</cite> (in those configurations that choose between the two). +The only browser that defaults to <cite>NativeMML</cite> is now IE with +MathPlayer installed. You can configure this to your liking using +the <a class="reference internal" href="options/MMLorHTML.html#configure-mmlorhtml"><em>MMLorHTML configuration options</em></a>.</p> +</li> +<li><p class="first"><cite>NativeMML</cite> 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&#8217;t sure if +MathPlayer would work with the official release, and so did not +select NativeMML by default.)</p> +</li> +<li><p class="first">The performance improvements in IE8 and IE9 now make it unnecessary +to use a <tt class="docutils literal"><span class="pre">&lt;meta&gt;</span></tt> 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</p> +<div class="highlight-html"><div class="highlight"><pre><span class="nt">&lt;meta</span> <span class="na">http-equiv=</span><span class="s">&quot;X-UA-Compatible&quot;</span> <span class="na">content=</span><span class="s">&quot;IE=edge&quot;</span><span class="nt">&gt;</span> +</pre></div> +</div> +<p>to obtain the highest emulation mode available in IE, which +will be the fastest one for MathJax 2.0.</p> +</li> +<li><p class="first">The <cite>tex2jax</cite> preprocessor now balances braces when looking for the +closing math delimiter. That allows expressions like</p> +<div class="highlight-latex"><div class="highlight"><pre><span class="s">$</span><span class="nb">y </span><span class="o">=</span><span class="nb"> x^</span><span class="m">2</span><span class="nb"> </span><span class="nv">\hbox</span><span class="nb">{ when </span><span class="s">$</span>x &gt; 2<span class="s">$</span><span class="nb">}</span><span class="s">$</span> +</pre></div> +</div> +<p>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 <tt class="docutils literal"><span class="pre">balanceBraces</span></tt> to false in the <tt class="docutils literal"><span class="pre">tex2jax</span></tt> +block of your configuration. (See the <a class="reference internal" href="options/tex2jax.html#configure-tex2jax"><em>tex2jax configuration +options</em></a> for details.)</p> +</li> +<li><p class="first">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 <tt class="docutils literal"><span class="pre">woff</span></tt> in +you access control declaration for the fonts. E.g., use</p> +<div class="highlight-python"><pre>&lt;FilesMatch "\.(ttf|otf|eot|woff)$"&gt; +&lt;IfModule mod_headers.c&gt; +Header set Access-Control-Allow-Origin "*" +&lt;/IfModule&gt; +&lt;/FilesMatch&gt;</pre> +</div> +<p>in the <tt class="docutils literal"><span class="pre">.htaccess`</span> <span class="pre">file</span> <span class="pre">for</span> <span class="pre">the</span> <span class="pre">``Mathjax/fonts</span></tt> directory if you +are using the Apache web server. See <a class="reference internal" href="installation.html#cross-domain-linking"><em>Notes about shared +installations</em></a> for details.</p> +</li> +<li><p class="first">The <tt class="docutils literal"><span class="pre">\cases</span></tt> macro now properly places the second column in text +mode not math mode. In the past, one needed to use <tt class="docutils literal"><span class="pre">\text</span></tt> 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.</p> +</li> +<li><p class="first">The <tt class="docutils literal"><span class="pre">\dots</span></tt> macro now produces <tt class="docutils literal"><span class="pre">\ldots</span></tt> or <tt class="docutils literal"><span class="pre">\cdots</span></tt> depending +on the context (in the past, <tt class="docutils literal"><span class="pre">\dots</span></tt> always produced <tt class="docutils literal"><span class="pre">\ldots</span></tt>).</p> +</li> +<li><p class="first">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&#8217;t bump +into each other.</p> +</li> +<li><p class="first">There is a new <cite>MathPlayer</cite> submenu of the <cite>Math Settings</cite> 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&#8217;s other features).</p> +</li> +<li><p class="first">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 <cite>NativeMML</cite> output jax to be loaded. Since +this is before the configuration information has been obtained, +this will happen regardless of whether the <cite>NativeMML</cite> 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 <tt class="docutils literal"><span class="pre">&lt;script&gt;</span></tt> tag to the page dynamically, then +MathPlayer will be set up when the <cite>NativeMML</cite> jax is loaded as in +the past, and some stability issues may occur if events are passed +to MathPlayer.</p> +</li> +<li><p class="first">The MathJax typesetting is now started on <tt class="docutils literal"><span class="pre">DOMContentLoaded</span></tt> +rather than at the page <tt class="docutils literal"><span class="pre">onload</span></tt> 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.</p> +</li> +<li><p class="first">MathJax now attempts to determine whether the page&#8217;s <tt class="docutils literal"><span class="pre">onload</span></tt> +event had already occurred, and if it has, it does not try to wait +for the <tt class="docutils literal"><span class="pre">DOMContentLoaded</span></tt> or <tt class="docutils literal"><span class="pre">onload</span></tt> event before doing its +initial typeset pass. This means that it is no longer necessary to +call <tt class="docutils literal"><span class="pre">MathJax.Hub.Startup.onload()</span></tt> by hand if you insert MathJax +into the page dynamically (e.g., from a GreaseMonkey script).</p> +</li> +<li><p class="first">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 <tt class="docutils literal"><span class="pre">positionToHash</span></tt> parameter in the main section +of your configuration (see <a class="reference internal" href="options/hub.html#configure-hub"><em>core configuration options</em></a>).</p> +</li> +<li><p class="first">In the event that MathJax is not able to load the configuration file +you have specified in the script tag that loads <tt class="docutils literal"><span class="pre">MathJax.js</span></tt> via +<tt class="docutils literal"><span class="pre">config=filename</span></tt>, 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.</p> +</li> +</ul> +</div> +<div class="section" id="other-enhancements"> +<h2>Other enhancements<a class="headerlink" href="#other-enhancements" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>Use prioritized lists of callbacks for StartupHooks, MessageHooks, +LoadHooks, PreProcessors, and pre- and post-filters on the input jax.</li> +<li>Updated operator dictionary to correspond to current W3C version.</li> +<li>Improved browser detection for Gecko and WebKit browsers.</li> +<li>Make prefilters and postfilters for all input jax, and make them into +hook lists rather than a single hook.</li> +<li>Use <tt class="docutils literal"><span class="pre">&lt;mi&gt;</span></tt> rather than <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> for <tt class="docutils literal"><span class="pre">\sin</span></tt>, <tt class="docutils literal"><span class="pre">\cos</span></tt>, and other +such functions, for <tt class="docutils literal"><span class="pre">\mathop{\rm...}</span></tt> and <tt class="docutils literal"><span class="pre">\operatorname</span></tt>.</li> +<li>Add <tt class="docutils literal"><span class="pre">&amp;ApplyFunction;</span></tt> after <tt class="docutils literal"><span class="pre">\mathop{}</span></tt> and other macros that are +functions (e.g., <tt class="docutils literal"><span class="pre">\sin</span></tt>).</li> +<li>The <tt class="docutils literal"><span class="pre">MathJax_Preview</span></tt> style has been moved from <tt class="docutils literal"><span class="pre">HTML-CSS/jax.js</span></tt> to +<tt class="docutils literal"><span class="pre">MathJax.js</span></tt>, since it is common to all output.</li> +<li>The <cite>autobold</cite> extension now uses <tt class="docutils literal"><span class="pre">\boldsymbol</span></tt> rather than +<tt class="docutils literal"><span class="pre">\bf</span></tt> so that it will affect more characters.</li> +<li>Make units of <tt class="docutils literal"><span class="pre">mu</span></tt>&#8216;s be relative to the scriptlevel (as they +are supposed to be).</li> +<li>Reorganized the event-handling code to make it more modular and reduce +redundancy in the different output jax.</li> +<li>Modified CSS in <cite>NativeMML</cite> output for Firefox to use local copies of +the web fonts, if they are available.</li> +<li>Error messages now have the MathJax contextual menu.</li> +<li>Better handling of some characters not in the web fonts (remap to +locations where they exist, when possible).</li> +<li>Better choice of accent characters in some cases.</li> +<li>Better handling of pseudo-scripts (like primes).</li> +<li>Better sizing of characters introduced by <tt class="docutils literal"><span class="pre">\unicode{}</span></tt>, or +otherwise outside of the fonts known to MathJax.</li> +<li>Provide a new extension to handle tagged equations better in +<cite>HTML-CSS</cite> output when there are floating elements that might +reduce the area available to displayed equations. (See the +HTML-CSS extensions section of the <a class="reference internal" href="output.html#output-formats"><em>output formats</em></a> documentation for detais.)</li> +<li>Use a text font for <tt class="docutils literal"><span class="pre">\it</span></tt> rather than the math italics, so +spacing is better.</li> +<li>Handle italic correction better in <cite>HTML-CSS</cite> output</li> +<li>Handle <tt class="docutils literal"><span class="pre">href</span></tt> attributes better, especially when on <tt class="docutils literal"><span class="pre">&lt;math&gt;</span></tt> +elements.</li> +<li>Allow <tt class="docutils literal"><span class="pre">\sqrt\frac{}{}</span></tt> without producing an error.</li> +</ul> +</div> +<div class="section" id="other-bug-fixes"> +<h2>Other bug fixes<a class="headerlink" href="#other-bug-fixes" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>MathPlayer setup changed to prevent crashes.</li> +<li>Moved remapping of <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> contents to the output jax so that the +original contents aren&#8217;t changed.</li> +<li>Don&#8217;t combine <tt class="docutils literal"><span class="pre">mathvariant</span></tt> with <tt class="docutils literal"><span class="pre">fontstyle</span></tt> or <tt class="docutils literal"><span class="pre">fontweight</span></tt> +(as per the MathML specification).</li> +<li>Isolate non-standard attributes on MathML elements so that they don&#8217;t +interfere with the inner workings of MathJax.</li> +<li>Properly handle width of border and padding in merrors in <cite>HTML-CSS</cite> +output.</li> +<li>Properly handle lower-case Greek better.</li> +<li>Process weight and style of unknown characters properly.</li> +<li>Fixed spacing problems with <tt class="docutils literal"><span class="pre">\cong</span></tt> in MathJax web fonts .</li> +<li>Choose better sizes for <tt class="docutils literal"><span class="pre">\widehat</span></tt> and <tt class="docutils literal"><span class="pre">\widetilde</span></tt></li> +<li>Fixed problem with detecting em/ex sizes when uses in mobile devices +with small screen widths.</li> +<li>Fixed MathML output when dimensions of <tt class="docutils literal"><span class="pre">mu</span></tt>&#8216;s are used in TeX input.</li> +<li>Better handling of table borders from TeX.</li> +<li>Fixed some problems with table widths and heights, and spacing.</li> +<li>Better handling of colored backgrounds in <cite>HTML-CSS</cite> output.</li> +<li>Handle border and padding CSS styles better in <cite>HTML-CSS</cite> output.</li> +<li>Fixed multline environment to put tags on bottom row when +<tt class="docutils literal"><span class="pre">TagSide</span></tt> is set to <tt class="docutils literal"><span class="pre">right</span></tt>.</li> +<li>Force reflow after equations are typeset so that some rendering +problems in tables are corrected in Firefox and WebKit browsers.</li> +<li>Fixed a number of bugs with the size of zoom boxes and the size of their +content.</li> +<li>Have equations with tags zoom into a full-width zoom box to +accommodate the tag.</li> +<li>Fixed positioning problem with zoom boxes in NativeMML mode.</li> +<li>Don&#8217;t allow mouse events on zoomed math.</li> +<li>Fixed <tt class="docutils literal"><span class="pre">MathJax.Hub.getJaxFor()</span></tt> and <tt class="docutils literal"><span class="pre">MathJax.Hub.isJax()</span></tt> to +properly handle elements that are part of an output jax&#8217;s output +(in particular, you can find the element jax from any DOM element +in the output).</li> +<li>Fixed a number of font anomalies (problems in the data files).</li> +<li>Fixed problem where <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> with a background color would not +always overlay previous items.</li> +<li>Fixed a problem with colored <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> elements being too tall in +IE/quirks mode.</li> +<li>Fixed problem where <tt class="docutils literal"><span class="pre">&lt;mtable&gt;</span></tt> with <tt class="docutils literal"><span class="pre">equalrows=&quot;true&quot;</span></tt> would +not produce equal height rows.</li> +<li>Allow <tt class="docutils literal"><span class="pre">&lt;mpadded&gt;</span></tt> 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).</li> +<li>Avoiding flicker problem with hover zoom trigger in Firefox.</li> +<li>Fix <tt class="docutils literal"><span class="pre">\unicode</span></tt> bug with font names that include spaces.</li> +<li>Remove internal multiple spaces in token elements as per the MathML +specification.</li> +<li>Work around HTML5 removing namespaces, so that <tt class="docutils literal"><span class="pre">xmlns:xlink</span></tt> +becomes <tt class="docutils literal"><span class="pre">xlink</span></tt> with no namespace, which confuses the XML parsers.</li> +<li>Fix <tt class="docutils literal"><span class="pre">MathJax.Message.Set()</span></tt> and <tt class="docutils literal"><span class="pre">MathJax.Message.Clear()</span></tt> so +that a delay of 0 is properly handled.</li> +<li>Produce better MathML for <tt class="docutils literal"><span class="pre">\bmod</span></tt>, <tt class="docutils literal"><span class="pre">\mod</span></tt>, and <tt class="docutils literal"><span class="pre">\pmod</span></tt>.</li> +<li>Don&#8217;t allow Safari/Windows to use STIX fonts since it can&#8217;t access +characters in Plane1 (the mathematical alphabets).</li> +<li>Fix <tt class="docutils literal"><span class="pre">\thickapprox</span></tt> to use the correct glyph in <cite>HTML-CSS</cite> output +with MathJax web fonts.</li> +<li>Make style attributes work on <tt class="docutils literal"><span class="pre">&lt;mstyle&gt;</span></tt> elements.</li> +<li>Better handling of border and padding on MathML elements in +<cite>HTML-CSS</cite> output.</li> +<li>Fixed error with size of <tt class="docutils literal"><span class="pre">\:</span></tt> space.</li> +<li>Allow delimiter of <tt class="docutils literal"><span class="pre">.</span></tt> on <tt class="docutils literal"><span class="pre">\genfrac</span></tt> (it was accidentally rejected).</li> +<li>Handle AMSmath control sequences with stars better (<tt class="docutils literal"><span class="pre">\cs{*}</span></tt> no longer +counts as <tt class="docutils literal"><span class="pre">\cs*</span></tt>).</li> +<li>Fixed wrong character number in stretchy data for <cite>U+221A</cite>.</li> +<li>Fixed <tt class="docutils literal"><span class="pre">&lt;annotation-xml&gt;</span></tt> to use the proper scaling in <cite>HTML-CSS</cite> +output.</li> +<li>Fixed a problem with combining characters when they are used as +accents.</li> +<li>Fixed a problem in Firefox with <tt class="docutils literal"><span class="pre">\mathchoice</span></tt> when the contents have +negative width.</li> +<li>TeX input jax no longer incorrectly combines <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> elements that have +different variants, styles, classes, or id&#8217;s.</li> +<li>Fixed the <tt class="docutils literal"><span class="pre">scriptlevel</span></tt> when <tt class="docutils literal"><span class="pre">&lt;munderover&gt;</span></tt> has base with +<tt class="docutils literal"><span class="pre">movablelimits=&quot;true&quot;</span></tt> in non-display mode.</li> +<li>Fixed typo in implementation of <tt class="docutils literal"><span class="pre">SimpleSUPER</span></tt>.</li> +<li>Fixed typo in self-closing flag for <tt class="docutils literal"><span class="pre">&lt;mprescript&gt;</span></tt> tag.</li> +<li>Prevent infinite loop if one of the jax fails to load (due to failure +to compile or timeout waiting for it to load).</li> +<li>Fixed a whitespace issue in token elements with IE/quirks mode in +the <cite>MathML</cite> input jax.</li> +<li>Make sure height is above depth when making spaces and rules in +<cite>HTML-CSS</cite> and <cite>SVG</cite> output.</li> +<li>Fixed <cite>HTML-CSS</cite> tooltip to be work properly when a restart occurs +within the tooltip.</li> +<li>Fixed problem with size of colored backgrounds on <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> in some +circumstances in <cite>HTML-CSS</cite> output.</li> +<li>Make <tt class="docutils literal"><span class="pre">\ulcorner</span></tt>, etc. use more approprate unicode positions, and remap +those positions to the locations in the MathJax web fonts.</li> +</ul> +</div> +<div class="section" id="some-technical-changes"> +<h2>Some technical changes<a class="headerlink" href="#some-technical-changes" title="Permalink to this headline">ΒΆ</a></h2> +<ul class="simple"> +<li>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 <tt class="docutils literal"><span class="pre">\ref</span></tt> macro.</li> +<li>Make <tt class="docutils literal"><span class="pre">Font</span> <span class="pre">Preference</span></tt> menu honor the <tt class="docutils literal"><span class="pre">imageFont</span></tt> setting.</li> +<li>Changed the name of the preview filter commands to <tt class="docutils literal"><span class="pre">previewFilter</span></tt> +in all preprocessors.</li> +<li>Make <tt class="docutils literal"><span class="pre">^</span></tt> and <tt class="docutils literal"><span class="pre">_</span></tt> be stretchy even though that isn&#8217;t in the W3C +dictionary.</li> +<li>Fixed <cite>HTML-CSS</cite> output problem when a multi-character token element has +characters taken from multiple fonts.</li> +<li>Force message text to be black in FontWarnings and configuration +warnings.</li> +<li>Added <tt class="docutils literal"><span class="pre">Find()</span></tt> and <tt class="docutils literal"><span class="pre">IndexOf()</span></tt> commands to menus to locate menu items.</li> +<li>Added menu signals for post/unpost and activation of menu items.</li> +<li>Added signals for typesetting of unknown characters.</li> +<li>Added signals for zoom/unzoom.</li> +<li>Added More signals for error conditions.</li> +<li>Allow preferences to select MathML output for Safari with late enough +version.</li> +<li>Improved <cite>About MathJax</cite> box.</li> +<li>Have <cite>tex2jax</cite> handle empty delimiter arrays and don&#8217;t scan page if +there is nothing to look for.</li> +<li>Make delay following a <cite>processing</cite> message configurable and lengthen +it to make browser more responsive during typesetting.</li> +<li>Make thin rules be in pixels to try to improve results in IE +(disappearing division lines).</li> +<li>Mark all output elements as <tt class="docutils literal"><span class="pre">isMathJax</span></tt>, so it can be used to identify +what elements are part of mathematical output.</li> +<li>Force MathZoom and MathMenu to wait for the <tt class="docutils literal"><span class="pre">Begin</span> <span class="pre">Styles</span></tt> message +before inserting their styles so when they are included in the +combined files, the author can still configure them.</li> +<li>Add default id&#8217;s to the jax base object classes.</li> +<li>Mark top-level math element as having a <tt class="docutils literal"><span class="pre">texError</span></tt> when it is one (to +make it easier to recognize).</li> +<li>Have <tt class="docutils literal"><span class="pre">Update()</span></tt> method ask ElementJax to determine if it needs updating +(which in turn asks the associated input jax).</li> +<li>Make <tt class="docutils literal"><span class="pre">Remove()</span></tt> work for just clearing output (without detaching) if +desired.</li> +<li>Have ElementJax store input and output jax ID&#8217;s rather than pointers +(to help avoid circular references for cleanup purposes).</li> +<li>Move input/output jax and preprocessor registries from <tt class="docutils literal"><span class="pre">Hub.config</span></tt> to +Hub itself (they are not user configurable through <tt class="docutils literal"><span class="pre">Hub.Config</span></tt>, and so +even though they are configurations, they don&#8217;t belong there).</li> +<li>Make sure embelished large ops are type <tt class="docutils literal"><span class="pre">OP</span></tt> not <tt class="docutils literal"><span class="pre">ORD</span></tt> to get spacing +right.</li> +<li>Added <tt class="docutils literal"><span class="pre">MathJax.HTML.getScript()</span></tt> to get the contents of a script (needed +since it works differently in different browsers).</li> +<li>Move code that prevents numbers from being treated as a unit for +super- and subscripts to the super- and subscript routine in the +<cite>TeX</cite> input jax (prevents making changes to <tt class="docutils literal"><span class="pre">\text{}</span></tt>, +<tt class="docutils literal"><span class="pre">\hbox{}</span></tt>, <tt class="docutils literal"><span class="pre">\href{}</span></tt>, etc.).</li> +<li>Make <cite>mml2jax</cite> work better with IE namespaces (IE9 no longer seems to +list the <tt class="docutils literal"><span class="pre">xmlns</span></tt> entries on the <tt class="docutils literal"><span class="pre">&lt;html&gt;</span></tt> element).</li> +</ul> +</div> +</div> + + + </div> + </div> + </div> + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table Of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">What&#8217;s New in MathJax v2.0</a><ul> +<li><a class="reference internal" href="#major-speed-improvement-for-html-css-output-particularly-in-ie">Major speed improvement for HTML-CSS output, particularly in IE</a></li> +<li><a class="reference internal" href="#reduced-flickering-during-typsetting">Reduced flickering during typsetting</a></li> +<li><a class="reference internal" href="#automatic-equation-numbering-of-tex-formulas">Automatic equation numbering of TeX formulas</a></li> +<li><a class="reference internal" href="#automatic-line-breaking-of-long-displayed-equations">Automatic line breaking of long displayed equations</a></li> +<li><a class="reference internal" href="#new-asciimath-input-jax-and-svg-output-jax">New AsciiMath input jax and SVG output jax</a></li> +<li><a class="reference internal" href="#new-combined-configuration-files">New combined configuration files</a></li> +<li><a class="reference internal" href="#mathjax-contextual-menu-now-available-on-mobile-devices">MathJax contextual menu now available on mobile devices</a></li> +<li><a class="reference internal" href="#improved-support-for-screen-readers">Improved support for screen readers</a></li> +<li><a class="reference internal" href="#many-new-tex-additions-and-enhancements">Many new TeX additions and enhancements</a></li> +<li><a class="reference internal" href="#font-enhancements">Font enhancements</a></li> +<li><a class="reference internal" href="#interface-improvements">Interface improvements</a></li> +<li><a class="reference internal" href="#important-changes-from-previous-versions">Important changes from previous versions</a></li> +<li><a class="reference internal" href="#other-enhancements">Other enhancements</a></li> +<li><a class="reference internal" href="#other-bug-fixes">Other bug fixes</a></li> +<li><a class="reference internal" href="#some-technical-changes">Some technical changes</a></li> +</ul> +</li> +</ul> + + <h4>Previous topic</h4> + <p class="topless"><a href="community.html" + title="previous chapter">The MathJax Community</a></p> + <h4>Next topic</h4> + <p class="topless"><a href="whats-new-1.1.html" + title="next chapter">What&#8217;s New in MathJax v1.1</a></p> +<div id="searchbox" style="display: none"> + <h3>Quick search</h3> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" size="18" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + <p class="searchtip" style="font-size: 90%"> + Enter search terms or a module, class or function name. + </p> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="related"> + <h3>Navigation</h3> + <ul> + <li class="right" style="margin-right: 10px"> + <a href="genindex.html" title="General Index" + >index</a></li> + <li class="right" > + <a href="whats-new-1.1.html" title="What’s New in MathJax v1.1" + >next</a> |</li> + <li class="right" > + <a href="community.html" title="The MathJax Community" + >previous</a> |</li> + <li><a href="index.html">MathJax v2.0 documentation</a> &raquo;</li> + </ul> + </div> + <div class="footer"> + &copy; Copyright 2012 Design Science. + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. + </div> + + </body> +</html> +\ No newline at end of file diff --git a/docs/html/whats-new.html b/docs/html/whats-new.html @@ -1,264 +0,0 @@ - -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> - -<html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - - <title>What’s New in MathJax v1.1 &mdash; MathJax v1.1 documentation</title> - <link rel="stylesheet" href="_static/mj.css" type="text/css" /> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT: '', - VERSION: '1.1', - COLLAPSE_INDEX: false, - FILE_SUFFIX: '.html', - HAS_SOURCE: true - }; - </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <!--<script type="text/javascript" src="../../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>--> - <link rel="top" title="MathJax v1.1 documentation" href="index.html" /> - <link rel="next" title="Migrating from MathJax v1.0 to v1.1" href="upgrade.html" /> - <link rel="prev" title="The MathJax Community" href="community.html" /> - </head> - <body> - - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="genindex.html" title="General Index" - accesskey="I">index</a></li> - <li class="right" > - <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" - accesskey="N">next</a> |</li> - <li class="right" > - <a href="community.html" title="The MathJax Community" - accesskey="P">previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> - </ul> - </div> - - <div class="document"> - <div class="documentwrapper"> - <div class="bodywrapper"> - <div class="body"> - - <div class="section" id="what-s-new-in-mathjax-v1-1"> -<span id="whats-new"></span><h1>What&#8217;s New in MathJax v1.1<a class="headerlink" href="#what-s-new-in-mathjax-v1-1" title="Permalink to this headline">ΒΆ</a></h1> -<p>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&#8217;s performance.</p> -<p>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 <a class="reference internal" href="configuration.html#loading-cdn"><em>Loading MathJax from -the CDN</em></a> for more details.</p> -<p>The following sections outline the changes in v1.1:</p> -<div class="section" id="optimization"> -<h2>Optimization<a class="headerlink" href="#optimization" title="Permalink to this headline">ΒΆ</a></h2> -<ul class="simple"> -<li>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.</li> -<li>Improved responsiveness to mouse events during typesetting.</li> -<li>Parallel downloading of files needed by MathJax, for faster startup -times.</li> -<li>Shorter timeout for web fonts, so if they can&#8217;t be downlaoded, you don&#8217;t -have to wait so long.</li> -<li>Rollover to image fonts if a web font fails to load (so you don&#8217;t have -to wait for <em>every</em> font to fail.</li> -<li>The MathJax files are now packed only with <cite>yuicompressor</cite> rather than a -custom compressor. The CDN serves gzipped versions, which end up being -smaller than the gzipped custom-packed files.</li> -<li>Improved rendering speed in IE by removing <tt class="docutils literal"><span class="pre">position:relative</span></tt> from -the style for mathematics.</li> -<li>Improved rendering speed for most browsers by isolating the mathematics -from the page during typesetting (avoids full page reflows).</li> -</ul> -</div> -<div class="section" id="enhancements"> -<h2>Enhancements<a class="headerlink" href="#enhancements" title="Permalink to this headline">ΒΆ</a></h2> -<ul class="simple"> -<li>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&#8217;t have to be loaded on pages that don&#8217;t include -mathematics, for example).</li> -<li>Better handling of background color from style attributes.</li> -<li>Ability to pass configuration parameters via script URL.</li> -<li>Support HTML5 compliant configuration syntax.</li> -<li>Switch the Git repository from storing the fonts in <cite>fonts.zip</cite> to -storing the <cite>fonts/</cite> directory directly.</li> -<li>Improved About box.</li> -<li>Added a minimum scaling factor (so math won&#8217;t get too small).</li> -</ul> -</div> -<div class="section" id="tex-support"> -<h2>TeX Support<a class="headerlink" href="#tex-support" title="Permalink to this headline">ΒΆ</a></h2> -<ul class="simple"> -<li>Added support for <tt class="docutils literal"><span class="pre">\href</span></tt>, <tt class="docutils literal"><span class="pre">\style</span></tt>, <tt class="docutils literal"><span class="pre">\class</span></tt>, <tt class="docutils literal"><span class="pre">\cssId</span></tt>.</li> -<li>Avoid recursive macro definitions and other resource consumption possibilities.</li> -<li>Fix for <tt class="docutils literal"><span class="pre">\underline</span></tt> bug.</li> -<li>Fix for bug with <tt class="docutils literal"><span class="pre">\fbox</span></tt>.</li> -<li>Fix height problem with <tt class="docutils literal"><span class="pre">\raise</span></tt> and <tt class="docutils literal"><span class="pre">\lower</span></tt>.</li> -<li>Fix problem with <tt class="docutils literal"><span class="pre">\over</span></tt> used inside array entries.</li> -<li>Fix problem with nesting of math delimiters inside text-mode material.</li> -<li>Fix single digit super- and subscripts followed by punctuation.</li> -<li>Make sure <cite>movablelimits</cite> is off for <tt class="docutils literal"><span class="pre">\underline</span></tt> and related macros.</li> -<li>Fix problem with dimensions given with <tt class="docutils literal"><span class="pre">pc</span></tt> units.</li> -</ul> -</div> -<div class="section" id="mathml-support"> -<h2>MathML Support<a class="headerlink" href="#mathml-support" title="Permalink to this headline">ΒΆ</a></h2> -<ul class="simple"> -<li>Fix <tt class="docutils literal"><span class="pre">&amp;lt;</span></tt> and <tt class="docutils literal"><span class="pre">&amp;amp;</span></tt> being translated too early.</li> -<li>Handle self-closing tags in HTML files better.</li> -<li>Combine adjacent relational operators in <tt class="docutils literal"><span class="pre">&lt;mo&gt;</span></tt> tags.</li> -<li>Fix entity name problems.</li> -<li>Better support for MathML namespaces.</li> -<li>Properly handle comments within MathML in IE.</li> -<li>Properly consider <tt class="docutils literal"><span class="pre">&lt;mspace&gt;</span></tt> and <tt class="docutils literal"><span class="pre">&lt;mtext&gt;</span></tt> as space-like.</li> -<li>Improved support for <tt class="docutils literal"><span class="pre">&lt;maction&gt;</span></tt> with embellished operators.</li> -</ul> -</div> -<div class="section" id="other-bug-fixes"> -<h2>Other Bug Fixes<a class="headerlink" href="#other-bug-fixes" title="Permalink to this headline">ΒΆ</a></h2> -<ul class="simple"> -<li>Fixed CSS bleed through with zoom and other situations.</li> -<li>Fixed problems with <tt class="docutils literal"><span class="pre">showMathMenuMSIE</span></tt> when set to <tt class="docutils literal"><span class="pre">false</span></tt>.</li> -<li>Replaced illegal prefix characters in cookie name.</li> -<li>Improved placement of surd for square roots and n-th roots.</li> -<li>Fixed layer obscuring math from MathPlayer for screen readers.</li> -<li>Newlines in CDATA comments are now handled properly.</li> -<li>Resolved conflict between <cite>jsMath2jax</cite> and <cite>tex2jax</cite> both processing the -same equation.</li> -<li>Fixed problem with <tt class="docutils literal"><span class="pre">class=&quot;tex2jax_ignore&quot;</span></tt> affecting the processing of -sibling elements.</li> -</ul> -</div> -<div class="section" id="browser-support"> -<h2>Browser Support<a class="headerlink" href="#browser-support" title="Permalink to this headline">ΒΆ</a></h2> -<p><strong>Android</strong></p> -<ul class="simple"> -<li>Added detection and configuration for Android browser.</li> -<li>Allow use of OTF web fonts in Android 2.2.</li> -</ul> -<p><strong>Blackberry</strong></p> -<ul class="simple"> -<li>MathJax now works with OS version 6.</li> -</ul> -<p><strong>Chrome</strong></p> -<ul class="simple"> -<li>Use OTF web fonts rather than SVG fonts for version 4 and above.</li> -</ul> -<p><strong>Firefox</strong></p> -<ul class="simple"> -<li>Added Firefox 4 detection and configuration.</li> -<li>Fix for extra line-break bug when displayed equations are in -preformatted text.</li> -<li>Updated fonts so that FF 3.6.13 and above can read them.</li> -</ul> -<p><strong>Internet Explorer</strong></p> -<ul class="simple"> -<li>Changes for compatibility with IE9.</li> -<li>Fix for IE8 incorrectly parsing MathML.</li> -<li>Fix for IE8 namespace problem.</li> -<li>Fix for null <tt class="docutils literal"><span class="pre">parentNode</span></tt> problem.</li> -<li>Fix for <tt class="docutils literal"><span class="pre">outerHTML</span></tt> not quoting values of attributes.</li> -</ul> -<p><strong>iPhone/iPad</strong></p> -<ul class="simple"> -<li>Added support for OTF web fonts in iOS4.2.</li> -</ul> -<p><strong>Nokia</strong></p> -<ul class="simple"> -<li>MathJax now works with Symbian<sup>3</sup>.</li> -</ul> -<p><strong>Opera</strong></p> -<ul class="simple"> -<li>Prevent Opera from using STIX fonts unless explicitly requested via the -font menu (since Opera can&#8217;t display many of the characters).</li> -<li>Fixed bad em-size detection in 10.61.</li> -<li>Fixed a problem with the About dialog in Opera 11.</li> -</ul> -<p><strong>Safari</strong></p> -<ul class="simple"> -<li>Use OTF web fonts for Safari/PC.</li> -</ul> -<p><strong>WebKit</strong></p> -<ul class="simple"> -<li>Better version detection.</li> -</ul> -</div> -</div> - - - </div> - </div> - </div> - <div class="sphinxsidebar"> - <div class="sphinxsidebarwrapper"> - <h3><a href="index.html">Table Of Contents</a></h3> - <ul> -<li><a class="reference internal" href="#">What&#8217;s New in MathJax v1.1</a><ul> -<li><a class="reference internal" href="#optimization">Optimization</a></li> -<li><a class="reference internal" href="#enhancements">Enhancements</a></li> -<li><a class="reference internal" href="#tex-support">TeX Support</a></li> -<li><a class="reference internal" href="#mathml-support">MathML Support</a></li> -<li><a class="reference internal" href="#other-bug-fixes">Other Bug Fixes</a></li> -<li><a class="reference internal" href="#browser-support">Browser Support</a></li> -</ul> -</li> -</ul> - - <h4>Previous topic</h4> - <p class="topless"><a href="community.html" - title="previous chapter">The MathJax Community</a></p> - <h4>Next topic</h4> - <p class="topless"><a href="upgrade.html" - title="next chapter">Migrating from MathJax v1.0 to v1.1</a></p> -<div id="searchbox" style="display: none"> - <h3>Quick search</h3> - <form class="search" action="search.html" method="get"> - <input type="text" name="q" size="18" /> - <input type="submit" value="Go" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> - <p class="searchtip" style="font-size: 90%"> - Enter search terms or a module, class or function name. - </p> -</div> -<script type="text/javascript">$('#searchbox').show(0);</script> - </div> - </div> - <div class="clearer"></div> - </div> - <div class="related"> - <h3>Navigation</h3> - <ul> - <li class="right" style="margin-right: 10px"> - <a href="genindex.html" title="General Index" - >index</a></li> - <li class="right" > - <a href="upgrade.html" title="Migrating from MathJax v1.0 to v1.1" - >next</a> |</li> - <li class="right" > - <a href="community.html" title="The MathJax Community" - >previous</a> |</li> - <li><a href="index.html">MathJax v1.1 documentation</a> &raquo;</li> - </ul> - </div> - <div class="footer"> - &copy; Copyright 2011 Design Science. - Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. - </div> - - </body> -</html> -\ No newline at end of file diff --git a/docs/source/CSS-styles.rst b/docs/source/CSS-styles.rst @@ -5,8 +5,8 @@ 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 +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 @@ -31,24 +31,26 @@ 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-family": "serif", "font-style": "normal", "font-size": "90%" - }, - - ".MathJax_Preview": {color: "#888888"}, + } } -This defines two CSS styles, one for the selector ``.MathJax -.merror``, which specifies a background color, foreground color, -border, and so on, and a second for ``.MathJax_Preview`` that sets its -color. +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 diff --git a/docs/source/_static/mathjax_mathml.user.js b/docs/source/_static/mathjax_mathml.user.js @@ -10,9 +10,9 @@ if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { (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()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/source/_static/mathjax_wikipedia.user.js b/docs/source/_static/mathjax_wikipedia.user.js @@ -23,9 +23,8 @@ if ((window.unsafeWindow == null ? window : unsafeWindow).MathJax == null) { // 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"; - var config = 'MathJax.Hub.Startup.onload()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/source/api/callback.rst b/docs/source/api/callback.rst @@ -58,7 +58,7 @@ A callback specification is any one of the following: the given function, and it would return their sum, ``5``, when the callback is executed. - .. describe:: [object, fn] + .. describe:: [object, fn] An array containing an object to use as `this` and a function to call for the callback. For example, @@ -75,7 +75,7 @@ A callback specification is any one of the following: Similar to the previous case, but with data that is passed to the function as well. - ..describe:: ["method", object] + .. 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 @@ -220,6 +220,26 @@ MathJax.Callback Methods - **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 <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 <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 @@ -231,29 +251,54 @@ MathJax.Callback Methods 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:: Queue([callback,...]) +.. method:: Hooks(reset) - Creates a `MathJax.CallBack.Queue` object and pushes the given - callbacks into the queue. See :ref:`Using Queues <using-queues>` - for more details about MathJax queues. + 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: - - **callback** --- one or more callback specifications - :Returns: the `Queue` object + - **reset** --- ``true`` if callbacks can be called more than once + :Returns: the `Hooks` 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 <using-signals>` for more details. - - :Parameters: - - **name** --- name of the signal to get or create - :Returns: the `Signal` 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 @@ -42,13 +42,11 @@ Instance Properties .. describe:: inputJax - A reference to the input jax that created the element. (In the - future, this will be changed to the name of the input jax.) + The name of the input jax that created the element. .. describe:: outputJax - A reference to the output jax that has processed this element. (In - the future, this will be changed to the name of the output jax.) + The name of the output jax that has processed this element. .. describe:: inputID @@ -89,13 +87,25 @@ Methods - **callback** --- the callback specification :Returns: the callback object +.. Method:: Rerender([callback]) + :noindex: + + 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 + .. Method:: Reprocess([callback]) :noindex: - Removes the output and produces it again. This may be necessary if - there are changes to the CSS styles that would affect the layout - of the mathematics, for example. The `callback`, if any, is - called when the process completes. + 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 @@ -118,6 +128,16 @@ Methods :Returns: the ``<script>`` element +.. Method:: 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 diff --git a/docs/source/api/html.rst b/docs/source/api/html.rst @@ -92,6 +92,15 @@ Methods - **text** --- the text that is to be the script's new content :Returns: ``null`` +.. method:: 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`` + .. describe:: Cookie.Set(name,data) Creates a MathJax cookie using the ``MathJax.HTML.Cookie.prefix`` diff --git a/docs/source/api/hub.rst b/docs/source/api/hub.rst @@ -31,7 +31,17 @@ Properties .. describe:: processUpdateTime: 250 The minimum time (in milliseconds) between updates of the - "Processing Math" message. + "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. + +.. describe:: 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). .. describe:: signal @@ -60,6 +70,11 @@ Properties running on a Macintosh computer or a Windows computer. They will both be ``false`` for a Linux computer. + .. describe:: isMobile + + This is ``true`` when MathJax is running a mobile version of a + WebKit or Gecko-based browser. + .. describe:: isFirefox, isSafari, isChrome, isOpera, isMSIE, isKonqueror These are ``true`` when the browser is the indicated one, and @@ -97,6 +112,18 @@ Properties } ); +.. describe:: 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). + +.. describe:: outputJax + + An object storing the output jax associate with the various + element jax MIME types for the registered output jax. + + Methods ======= @@ -243,13 +270,31 @@ Methods .. method:: 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. 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 + 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 + +.. method:: 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: @@ -315,6 +360,21 @@ Methods - **element** --- the element to inspect :Returns: integer (-1, 0, 1) +.. Method:: 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`` + .. Method:: Insert(dst,src) Inserts data from the `src` object into the `dst` object. The diff --git a/docs/source/api/inputjax.rst b/docs/source/api/inputjax.rst @@ -56,13 +56,40 @@ Properties Methods ======= -.. Method:: Translate(script) +.. Method:: Process(script,state) + :noindex: + + 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. Start loading the jax's ``jax.js`` file; + 3. Start loading the required output jax (so it is ready when needed); and + 4. 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 ``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`` + +.. Method:: Translate(script,state) :noindex: This is the main routine called by MathJax when a ``<script>`` of the appropriate type is found. The default :meth:`Translate()` method throws an error indicating that :meth:`Translate()` hasn't been - redefined, so when the ``jax.js`` file loads, it should override the + defined, so when the ``jax.js`` file loads, it should override the default :meth:`Translate()` with its own version that does the actual translation. @@ -72,6 +99,9 @@ Methods :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 .. Method:: Register(mimetype) @@ -87,3 +117,14 @@ Methods - **mimetype** --- the MIME-type of the input this jax processes :Returns: ``null`` +.. Method:: needsUpdate(jax) + :noindex: + + 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 + diff --git a/docs/source/api/jax.rst b/docs/source/api/jax.rst @@ -63,34 +63,20 @@ Instance Properties jax. These can be modified by the author by including a configuration subsection for the specific jax in question. +.. describe:: JAXFILE: "jax.js" + + The name of the file that contains the main code for the jax. Methods ======= -.. Method:: Process(script) - :noindex: - - This is the method that the ``MathJax.Hub`` calls when it needs the - input or output jax to process the given math ``<script>``. 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 :meth:`Translate()` method, so that subsequent calls - to :meth:`Process()` will perform the appropriate translation. - - :Parameters: - - **script** --- reference to the DOM ``<script>`` object for - the mathematics to be translated - :Returns: an `ElementJax` object, or ``null`` - .. Method:: 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 :meth:`Translate()` method is - never called directly by MathJax; during the :meth:`loadComplete()` + never called directly by MathJax; during the ``loadComplete()`` call, this function is copied to the :meth:`Process()` method, and is called via that name. The default :meth:`Translate()` method throws an error indicating that the :meth:`Translate()` method was not @@ -147,7 +133,10 @@ Methods 5. Post the "[name] Jax Startup" message to the startup signal. 6. Perform the jax's :meth:`Startup()` method. 7. Post the "[name] Jax Ready" message to the startup signal. - 8. Perform the :meth:`MathJax.Ajax.loadComplete()` call for the + 8. Copy the ``preTranslate``, ``Translate``, and + ``postTranslate`` functions to ``preProcess``, ``Process``, + and ``postProcess``. + 9. Perform the :meth:`MathJax.Ajax.loadComplete()` call for the ``jax.js`` file. Note that the configuration process (the :meth:`Config()` call) can diff --git a/docs/source/api/outputjax.rst b/docs/source/api/outputjax.rst @@ -48,17 +48,65 @@ Properties The directory where the jax files are stored (e.g., ``"[MathJax]/jax/output/HTML-CSS"``); +.. describe:: fontDir + + The directory where the fonts are stored (e.g., ``"[MathJax]/fonts"``) + +.. describe:: imageDir + + The directory where MathJax images are found (e.g. ``"[MathJax]/images"``) + Methods ======= -.. Method:: Translate(script) +.. Method:: 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 :meth:`preTranslate()` method, so that subsequent calls + to :meth:`preProcess()` will perform the appropriate translation. + + :Parameters: + - **state** --- a structure containing information about the + current proccessing state of the mathematics + :Returns: ``null`` + +.. Method:: preTranslate(state) + + This routine replaces :meth:`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`` + +.. Method:: Translate(script,state) :noindex: This is the main routine called by MathJax when an element jax is to be converted to output. The default :meth:`Translate()` method throws an error indicating that :meth:`Translate()` hasn't been - redefined, so when the ``jax.js`` file loads, it should override the + defined, so when the ``jax.js`` file loads, it should override the default :meth:`Translate()` with its own version that does the actual translation. @@ -66,12 +114,35 @@ Methods 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. + document near the jax's ``<script>`` tag. The output jax can use + the ``state`` variable to maintain information about its + processing state, but see :meth:`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 +.. Method:: 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 :meth:`preProcess()` + above for caveats about naming properties). + + :Parameters: + - **state** --- a structure containing information about the + current proccessing state of the mathematics + :Returns: ``null`` + .. Method:: Register(mimetype) :noindex: @@ -95,3 +166,53 @@ Methods :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. + +.. Method:: 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 + +.. Method:: 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 + diff --git a/docs/source/api/variable.rst b/docs/source/api/variable.rst @@ -19,7 +19,7 @@ Main MathJax Components .. describe:: MathJax.Ajax Contains the code for loading external modules and creating - stylesheets. Most of the code that causes most of MathJax to + stylesheets. Most of the code that causes MathJax to operate asynchronously is handled here. .. describe:: MathJax.Message @@ -43,6 +43,11 @@ Main MathJax Components For example, the `tex2jax` preprocessor creates ``MathJax.Extension.tex2jax`` for its code and variables. +.. describe:: MathJax.Menu + + Initially null, this is where the MathJax contextual menu is + stored, when ``extensions/MathMenu.js`` is loaded. + .. describe:: MathJax.Object Contains the code for the MathJax object-oriented programming model. @@ -75,7 +80,11 @@ Properties .. describe:: MathJax.version - The version number of the MathJax library. + The version number of the MathJax library as a whole. + +.. describe:: MathJax.fileversion + + The version number of the ``MathJax.js`` file specifically. .. describe:: MathJax.isReady diff --git a/docs/source/asciimath.rst b/docs/source/asciimath.rst @@ -0,0 +1,127 @@ +.. _AsciiMath-support: + +************************* +MathJax AsciiMath Support +************************* + +The support for :term:`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 +<http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ 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 +:ref:`asciimath2jax configuration options <configure-asciimath2jax>` 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 +:ref:`AsciiMath options <configure-AsciiMath>` 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 :ref:`TeX +input jax <TeX-support>` 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: + +.. code-block:: javascript + + MathJax.Hub.Config({ + asciimath2jax: { + delimiters: [['$','$'], ['`','`']] + } + }); + +Note that the dollar signs are frequently used as a delimiter for +mathematics in the :term:`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 :ref:`asiimath2jax +configuration options <configure-asciimath2jax>` 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 +<http://www1.chapman.edu/~jipsen/mathml/asciimathsyntax.html>`_. + +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, + +.. code-block:: html + + ... 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 + +.. code-block:: html + + ... 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., + +.. code-block:: html + + ... when `x &lt; y` we have ... + +Keep in mind that the browser interprets your text before MathJax +does. diff --git a/docs/source/callbacks.rst b/docs/source/callbacks.rst @@ -214,10 +214,10 @@ 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, Internet Explorer does not implement that feature, -so you can't rely on it.) You can use a `Callback` object to -do this, and the :meth:`MathJax.Callback()` method will create one for -you. For example, +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 :meth:`MathJax.Callback()` method will +create one for you. For example, .. code-block:: javascript diff --git a/docs/source/conf.py b/docs/source/conf.py @@ -38,16 +38,16 @@ master_doc = 'index' # General information about the project. project = u'MathJax' -copyright = u'2011 Design Science' +copyright = u'2012 Design Science' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '1.1' +version = '2.0' # The full version, including alpha/beta/rc tags. -release = '1.1' +release = '2.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/source/config-files.rst b/docs/source/config-files.rst @@ -15,37 +15,93 @@ 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. - -The remaining files 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 better to load one larger file than several smaller -ones. See :ref:`Loading and Configuring MathJax <loading>` for more -details about how to load configurations, and how to modify the parameters -for a configuration file. +server or hard disk. If you are using MathJax from the CDN, you can +view the contents of `default.js +<http://cdn.mathjax.org/mathjax/latest/config/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 +<local-config-files>` for details. + +The remaining files in the `MathJax/config +<http://cdn.mathjax.org/mathjax/latest/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 +<loading>` 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 +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-AMS-MML_HTMLorMML`` configuration file +The ``TeX-MML-AM_HTMLorMML`` configuration file ================================================ This configuration file is the most general of the pre-defined -configurations. It loads all the important MathJax components, including +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 <configure-tex2jax>` section for +other configuration options for the ``tex2jax`` preprocessor, and the +:ref:`TeX input jax configuration <configure-TeX>` section for options +that control the TeX input processor. +See the :ref:`mml2jax configuration <configure-mml2jax>` section for +other configuration options for the ``mml2jax`` preprocessor, and the +:ref:`MathML input jax configuration <configure-MathML>` section for +options that control the MathML input processor. +See the :ref:`asciimath2jax configuration <configure-asciimath2jax>` section for +other configuration options for the ``asciimath2jax`` preprocessor, and the +:ref:`AsciiMath input jax configuration <configure-AsciiMath>` section for +options that control the AsciiMath input processor. +See :ref:`MathJax Output Formats <output-formats>` for more +information on the NativeMML and HTML-CSS output processors. See the +:ref:`MMLorHTML configuration <configure-MMLorHTML>` 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: +MathML and HTML-with-CSS output processor definitions, and the +MathMenu and MathZoom extensions. It is equivalent to the following +configuration: .. code-block:: javascript @@ -58,12 +114,12 @@ MathZoom extensions. It is equivalent to the following configuration: } }); -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. +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 <configure-tex2jax>` section for other configuration options for the ``tex2jax`` preprocessor, and the @@ -106,7 +162,7 @@ extensions. It is equivalent to the following configuration: 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 +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. @@ -123,7 +179,7 @@ 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, and HTML-CSS output otherwise. The user can still use the +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 @@ -142,7 +198,7 @@ and MathZoom extensions. It is equivalent to the following configuration: 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 +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. @@ -156,13 +212,100 @@ information on the NativeMML and HTML-CSS output processors. See the 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 <configure-asciimath2jax>` +section for other configuration options for the ``asciimath2jax`` +preprocessor, and the :ref:`AsciiMath input jax configuration +<configure-AsciiMath>` section for options that control the AsciiMath +input processor. See :ref:`MathJax Output Formats <output-formats>` +for more information on the HTML-CSS and NativeMML output processors. +See the :ref:`MMLorHTML configuration <configure-MMLorHTML>` 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 <configure-tex2jax>` section for +other configuration options for the ``tex2jax`` preprocessor, and the +:ref:`TeX input jax configuration <configure-TeX>` section for options +that control the TeX input processor. +See the :ref:`mml2jax configuration <configure-mml2jax>` section for +other configuration options for the ``mml2jax`` preprocessor, and the +:ref:`MathML input jax configuration <configure-MathML>` section for +options that control the MathML input processor. +See :ref:`MathJax Output Formats <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 -challenges. It is equivalent to the following configuration: +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 @@ -173,20 +316,24 @@ challenges. It is equivalent to the following configuration: TeX: { extensions: ["AMSmath.js","AMSsymbols.js","noErrors.js","noUndefined.js"] }, - NativeMML: { showMathMenuMSIE: false }, - menuSettings: { zoom: "Double-Click" }, + menuSettings: { + zoom: "Double-Click", + mpContext: true, + mpMouse: true + }, errorSettings: { message: ["[Math Error]"] } }); -This turns off the MathJax contextual menu for Internet Explorer, since -it can interfere with some screen readers. It also sets the zoom trigger +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 +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 @@ -52,14 +52,14 @@ typical invocation of MathJax would be 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, -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 <inline-config>` for details. +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 <inline-config>` 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 @@ -82,7 +82,7 @@ advanced topic, however; see :ref:`Loading MathJax Dynamically Loading MathJax from the CDN ============================ -MathJax is now available as a web service from ``cdn.mathjax.org``, so you +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 @@ -100,19 +100,19 @@ get. The CDN has the following directory structure: mathjax/ # project-name 1.0-latest/ - 1.1-beta/ # temporary 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 (1.1-latest in this case) + 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 prepared for -distribution (they likely won't be). - +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. @@ -124,7 +124,7 @@ 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 if we release v1.2 or other later +will load the stable v1.1 version, even after we release v2.0 or other later versions, while .. code-block:: html @@ -132,7 +132,7 @@ 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 -v1.2 automatically when that is released. Note that all the versions +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 @@ -143,8 +143,9 @@ The use of ``cdn.mathjax.org`` is governed by its `terms of service 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 configuration file <config-files>` section below. +rather than one of the pre-defined ones, see the information at the +end of the :ref:`Using a Local Configuration File +<local-config-files>` section below. Configuring MathJax @@ -157,7 +158,7 @@ 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 earlier versions of MathJax, version 1.1 does not load a default +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 @@ -180,28 +181,41 @@ stored in the ``MathJax/config`` directory. Among these are the following .. describe:: 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, and HTML-with-CSS otherwise. + 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 TeX or LaTeX notation, with the + 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 MathML notation, and produces MathML - output if the browser supports it, or HTML-CSS output otherwise. + 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:: Accessible.js +.. describe:: TeX-MML-AM_HTMLorMML.js - Essentially the same as ``TeX-AMS-MML_HTMLorMML``, but with some - settings specified to make MathJax work better with assistive - technology (for the visually impaired). This includes setting the - zoom trigger to be a double-click, and removing the MathMenu in - Internet Explorer (which can interfere with some screen readers). + 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 @@ -226,7 +240,7 @@ 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), so you need to decide whether it is worth loading the +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 @@ -271,8 +285,17 @@ can use to first load the main configuration, then the local modifications. -You can also load MathJax from the MathJax CDN server but use a configuration from -your own local server: + +.. _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 @@ -285,7 +308,7 @@ 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 ``config`` parameter. In the example above, it would be .. code-block:: javascript @@ -303,23 +326,24 @@ Using in-line configuration options =================================== The second way to configure MathJax is through `in-line configuration`, -that puts the configuration options within the web page itself. This -process has changed in version 1.1 to make it compatible with HTML5. +which puts the configuration options within the web page itself. This +process was changed in version 1.1 to make it compatible with HTML5. Earlier versions of MathJax had in-line configuration included within the content of the ``<script>`` tag that loads ``MathJax.js``, but HTML5 makes it illegal to have content for a script with a ``src`` attribute. -MathJax solves this problem by using separate ``<script>`` tags to perform -configuration for 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 :meth:`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 want, and MathJax will -process them in order as they appear in the document. +MathJax solves this problem by using separate ``<script>`` tags to +perform the configuration for and 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 :meth:`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, @@ -346,7 +370,7 @@ HTML-CSS processor to use the TeX fonts rather than other locally installed fonts (e.g., :term:`STIX` fonts). See the :ref:`configuration options <configuration>` section (or the comments in the ``config/default.js`` file) for more information about the configuration options that you can -include in the :meth:`MathJax.Hub.Config()` call. Note that this +include in the :meth:`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 @@ -354,8 +378,9 @@ 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 include the TeX preprocessor, and use -an in-line configuration block to enable the single-dollar signs: +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: .. code-block:: html @@ -424,19 +449,24 @@ in your theme's header file, and 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. 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. +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 process is the +important to know how they interact. The configuration actions are the following: 1. Process any configuration file explicitly specified as a script parameter. diff --git a/docs/source/dynamic.rst b/docs/source/dynamic.rst @@ -6,21 +6,16 @@ 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`` 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 so MathJax will not be able to tell if it is -safe for it to process the contents of the page. Indeed, it will wait -forever for its ``onload`` handler to fire, and so will never process -the page. - -To solve this problem, you will need to call MathJax's ``onload`` -handler yourself, to let it know that it is OK to typeset the -mathematics on the page. You accomplish this by calling the -:meth:`MathJax.Hub.Startup.onload()` method as part of your MathJax -startup script. To do this, you will need to give MathJax an in-line -configuration. +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 +:meth:`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: @@ -29,43 +24,37 @@ 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"; - - var config = 'MathJax.Hub.Config({' + - 'extensions: ["tex2jax.js"],' + - 'jax: ["input/TeX","output/HTML-CSS"]' + - '});' + - 'MathJax.Hub.Startup.onload();'; - - if (window.opera) {script.innerHTML = config} - else {script.text = config} - + script.src = "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"; document.getElementsByTagName("head")[0].appendChild(script); })(); -You can adjust the ``config`` variable to your needs, but be careful to get -the commas right. The ``window.opera`` test is because some versions of -Opera don't handle setting ``script.text`` properly, while Internet -Explorer doesn't handle setting the ``innerHTML`` of a script tag. - -Here is a version that uses the ``config=filename`` method to -configure MathJax: +If you need to provide in-line configuration, you can do that using a +MathJax's configuration script: .. code-block:: javascript (function () { - var script = document.createElement("script"); + 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-full"; - - var config = 'MathJax.Hub.Startup.onload();'; - - if (window.opera) {script.innerHTML = config} - else {script.text = config} - - document.getElementsByTagName("head")[0].appendChild(script); + 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 :meth:`MathJax.Hub.Config()` directly in your code, as it will @@ -116,9 +105,8 @@ IE+MathPlayer. (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()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } @@ -157,9 +145,8 @@ converting the math images to their original TeX code. // 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"; - var config = 'MathJax.Hub.Startup.onload()'; - if (window.opera) {script.innerHTML = config} else {script.text = config} document.getElementsByTagName("head")[0].appendChild(script); } } diff --git a/docs/source/glossary.rst b/docs/source/glossary.rst @@ -8,6 +8,16 @@ Glossary .. 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. + + .. seealso:: + + `AsciiMath home page <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ + Callback A JavaScript function that is used to perform actions that must wait for other actions to complete before they are @@ -44,6 +54,18 @@ Glossary `LaTeX Wikipedia entry <http://en.wikipedia.org/wiki/LaTeX>`_ + 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). + + .. seealso:: + + `Markdown home page <http://daringfireball.net/projects/markdown/>`_ + MathML An XML specification created to describe mathematical notations and capture both its structure and content. MathML @@ -62,6 +84,18 @@ Glossary `STIX project <http://stixfonts.org/>`_ + 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. + + .. seealso:: + + `SVG Wilipedia entry <http://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ + TeX A document markup language with robust math markup commands developed by Donald Knuth in the late 1970's, but still in diff --git a/docs/source/index.rst b/docs/source/index.rst @@ -2,8 +2,8 @@ MathJax Documentation ##################### -MathJax is an open-source JavaScript display engine for LaTeX and -MathML that works in all modern browsers. +MathJax is an open-source JavaScript display engine for LaTeX, +MathML, and AsciiMath notaion that works in all modern browsers. Basic Usage =========== @@ -24,6 +24,7 @@ Basic Usage MathJax TeX and LaTeX Support <tex> MathJax MathML Support <mathml> + MathJax AsciiMath Support <asciimath> MathJax Output Formats <output> .. toctree:: @@ -40,7 +41,8 @@ Upgrading MathJax .. toctree:: :maxdepth: 1 - What's New in MathJax v1.1 <whats-new> + What's New in MathJax v2.0 <whats-new-2.0> + What's New in MathJax v1.1 <whats-new-1.1> Migrating from MathJax v1.0 to v1.1 <upgrade> Converting to MathJax from jsMath <jsMath> diff --git a/docs/source/installation.rst b/docs/source/installation.rst @@ -10,11 +10,12 @@ distributed network service (see :ref:`Using the MathJax CDN yourself, and you can begin using MathJax right away; skip this document on installation and go directly to :ref:`Configuring MathJax <loading>`. -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 and its font package. 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. +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. .. _getting-mathjax-git: @@ -30,9 +31,9 @@ The easiest way to get MathJax and keep it up to date is to use the `Git 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, and that the ``fonts`` directory is now part of -the repository itself. +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 @@ -123,11 +124,11 @@ latest revision using ``svn``, use the command .. code-block:: sh - svn checkout http://svn.github.com/mathjax/MathJax.git MathJax + 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, and that the ``fonts`` directory is now part of -the repository itself. +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 @@ -152,18 +153,17 @@ 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 -either use ``git`` as described above, or one of the archive files as -described below. You can use +version. If you prefer to use one of the tagged releases instead, +then use .. code-block:: sh - svn checkout http://svn.github.com/mathjax/MathJax.git@nnn mathjax + svn checkout http://github.com/mathjax/MathJax/branch/[name] MathJax -to check out revision number `nnn`, but it is not easy to tell what -svn revision number is associated with a particular release. GitHub's -``svn`` service doesn't appear to allow you to specify a particular -tagged version. +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 <http://github.com/mathjax/MathJax/>`_ under the +`branches <https://github.com/mathjax/MathJax/branches>`_ tab. .. _getting-mathjax-zip: @@ -173,12 +173,12 @@ Obtaining MathJax via an archive Release versions of MathJax are available in archive files from the `MathJax download page <http://www.mathjax.org/download/>`_ or the -`GitHub downloads <http://github.com/mathjax/mathjax/>`_ (click the -big download button on the right), where you can download the archive +`MathJax GitHub page <http://github.com/mathjax/mathjax/>`_ (via the +"zip" button, or the "downloads" tab), where you can download the archive that you need. -You should download the v1.1 archive (which will get you a file with a -name like ``mathjax-MathJax-v1.1-X-XXXXXXXX.zip``, where the X's are +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 @@ -188,11 +188,10 @@ 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 -<http://github.com/mathjax/mathjax/>`_ (the download button at the -right), 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. You can -also get older tagged versions (if there are any). +<http://github.com/mathjax/mathjax/downloads>`_, 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 @@ -200,9 +199,8 @@ 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 -``v1.1-latest``), and then use the download button and the ``Download -.tar.gz`` or ``Download .zip`` button to get the latest patched -version of that release. +``v2.0-latest``), and then use the "zip" button just above it to get +the latest patched version of that release. Testing your installation @@ -215,6 +213,7 @@ installation is working properly:: 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 @@ -263,7 +262,7 @@ server <http://www.apache.org/>`_. In the remote server's ``.htaccess`` that contains the following lines: :: - <FilesMatch "\.(ttf|otf|eot)$"> + <FilesMatch "\.(ttf|otf|eot|woff)$"> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule> @@ -328,7 +327,7 @@ 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, like the MathJax +``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 diff --git a/docs/source/mathjax.rst b/docs/source/mathjax.rst @@ -2,16 +2,17 @@ What is MathJax? **************** -MathJax is an open-source JavaScript display engine for LaTeX and -MathML 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. It requires no setup on the part of -the user (no plugins to downlaod 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 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 @@ -21,11 +22,12 @@ 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, or `MathML <http://www.w3.org/TR/MathML3>`_, a World Wide -Web Consortium standard for representing mathematics in XML format. -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. +notation, `MathML <http://www.w3.org/TR/MathML3>`_, a World Wide Web +Consortium standard for representing mathematics in XML format, or +`AsciiMath <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ +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 diff --git a/docs/source/mathml.rst b/docs/source/mathml.rst @@ -20,10 +20,10 @@ 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, while -HTML-CSS is used for those that don't. See the :ref:`common -configurations <common-configurations>` section for details and -examples. +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 +:ref:`common configurations <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 @@ -43,7 +43,7 @@ MathML in HTML pages ==================== For MathML that is handled via the preprocessor, you should not use -the named MathML entities, but rather use the numeric entities like +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 @@ -64,12 +64,16 @@ tags. That is, use <mspace width="thinmathspace"></mspace> rather than ``<mspace width="thinmathspace />``. This is because HTML -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. +(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 @@ -86,12 +90,12 @@ The deficiencies include: - No support for the elementary math tags: ``mstack``, ``mlongdiv``, ``msgroup``, ``msrow``, ``mscarries``, and ``mscarry``. -- Limited support for line breaking (they are only allowed in direct - children of ``mrow`` or implied ``mrow`` elements). - -- No support for alignment groups in table. +- 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 <http://www.w3.org/Math/testsuite/results/tests.html>`_ for details. diff --git a/docs/source/model.rst b/docs/source/model.rst @@ -5,7 +5,7 @@ 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` or :term:`LaTeX`), and MathJax provides high-quality +: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 @@ -35,7 +35,8 @@ 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 <TeX-support>`, :ref:`MathML -notation <MathML-support>`, and the :ref:`jsMath notation +notation <MathML-support>`, :ref:`AsciiMath notation +<AsciiMath-support>` and the :ref:`jsMath notation <jsMath-support>` that uses `span` and `div` tags. For pages that are constructed programmatically, such as HTML @@ -44,10 +45,12 @@ 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, -and it also avoids the conflict between the use of the less-than sign, +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). +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: @@ -69,8 +72,9 @@ 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, and `math/mml` for mathematics in MathML -notation. When the `tex2jax` or `mml2jax` preprocessors run, they +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. @@ -197,17 +201,25 @@ 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. Output jax could be produced that render the -mathematics using SVG, 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. +understand MathML. MathJax also has an :term:`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. +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 diff --git a/docs/source/options/AsciiMath.rst b/docs/source/options/AsciiMath.rst @@ -0,0 +1,41 @@ +.. _configure-AsciiMath: + +***************************** +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 :meth:`MathJax.Hub.Config()` call. For +example + +.. code-block:: javascript + + 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. + +.. describe:: 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. + +.. describe:: 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. diff --git a/docs/source/options/FontWarnings.rst b/docs/source/options/FontWarnings.rst @@ -126,12 +126,15 @@ would set the ``fadeoutTime`` option to 2000 milliseconds (2 seconds). .. describe:: removeAfter: 12*1000 This is the amount of time to show the FontWarning message, in - milliseconds. The default is 12 seconds. + 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). .. describe:: 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. .. describe:: fadeoutTime: 1.5*1000 diff --git a/docs/source/options/HTML-CSS.rst b/docs/source/options/HTML-CSS.rst @@ -6,10 +6,12 @@ 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. They are listed with their default -values. To set any of these options, include a ``"HTML-CSS"`` section -in your :meth:`MathJax.Hub.Config()` call. Note that, because of the -dash, you need to enclose the name in quotes. For example +`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 :meth:`MathJax.Hub.Config()` call. +Note that, because of the dash, you need to enclose the name in +quotes. For example .. code-block:: javascript @@ -25,7 +27,7 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. The scaling factor (as a percentage) of math with respect to the surrounding text. The `HTML-CSS` output processor tries to match - the en-size of the mathematics with that of the text where it is + 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. @@ -86,6 +88,68 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. (even if it doesn't contain the needed character), so order these carefully. +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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: + + .. describe:: 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. + + .. describe:: 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. + .. describe:: styles: {} This is a list of CSS declarations for styling the HTML-CSS @@ -96,18 +160,10 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. .. describe:: showMathMenu: true - This controls whether the MathJax contextual menu will be - available on the mathematics in the page. If true, then - right-clicking (on the PC) or control-clicking (on the Mac) 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 <configure-MathMenu>` for - more details. + 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 :ref:`Core configuration options + <configure-hub>` for more details. .. describe:: tooltip: { ... } @@ -128,7 +184,8 @@ would set the ``preferredFont`` option to the :term:`STIX` fonts. The delay (in milliseconds) before the tooltop is cleared after the mouse moves out of the ``maction`` element. - .. describe:: offsetX: 10 and offsetY: 5 + .. describe:: offsetX: 10 + offsetY: 5 These are the offset from the mouse position (in pixels) where the tooltip will be placed. diff --git a/docs/source/options/MMLorHTML.rst b/docs/source/options/MMLorHTML.rst @@ -6,9 +6,11 @@ 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. They are listed with their default -values. To set any of these options, include a ``MMLorHTML`` section -in your :meth:`MathJax.Hub.Config()` call. For example +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 :meth:`MathJax.Hub.Config()` call. For +example .. code-block:: javascript @@ -28,15 +30,29 @@ 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. -.. describe:: prefer: { MSIE: "MML", Firefox: "MML", Opera: "HTML", other: "HTML" } +.. describe:: 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 does process some MathML - natively, its support is not sufficient to handle the more - complicated output generated by MathJax, so its setting is - ``"HTML"`` by default. + 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``. diff --git a/docs/source/options/MathEvents.rst b/docs/source/options/MathEvents.rst @@ -0,0 +1,37 @@ +.. _configure-MathEvents: + +************************ +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 :meth:`MathJax.Hub.Config()` call. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + MathEvents: { + hover: 400 + } + }); + +would set the required delay for hovering over a math element to +400 milliseconds. + +.. describe:: 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. + +.. describe:: 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 :ref:`CSS Style + Objects <css-style-objects>` for details on how to specify CSS + style in a JavaScript object. + diff --git a/docs/source/options/MathML.rst b/docs/source/options/MathML.rst @@ -6,7 +6,8 @@ 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. They are listed with their default values. To +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 :meth:`MathJax.Hub.Config()` call. For example diff --git a/docs/source/options/MathMenu.rst b/docs/source/options/MathMenu.rst @@ -34,33 +34,41 @@ would set the ``delay`` option to 600 milliseconds. .. describe:: showRenderer: true - This controls whether the "Math Renderer" item will be displayed in - the "Settings" submenu of the mathematics contextual menu. It - allows the user to change between the `HTML-CSS` and `NativeMML` - output processors for the mathematics on the page. Set to - ``false`` to prevent this menu item from showing. - -.. describe:: showContext: false - - This controls whether the "Contextual Menu" item will be displayed - in the "Settings" submenu of the mathematics 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. (The main - reason to allow pass-through to the browser's menu is to gain - access to the MathPlayer contextual menu when the NativeMML output - processor is used in Internet Explorer with the `MathPlayer plugin - <http://www.dessci.com/en/products/mathplayer/>`_.) Set to - ``false`` to prevent this menu item from showing. + 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. .. describe:: showFontMenu: false This controls whether the "Font Preference" item will be displayed - in the "Settings" submenu of the mathematics contextual menu. + 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. + +.. describe:: 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 + <http://www.dessci.com/en/products/mathplayer/>`_, 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. + +.. describe:: 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. .. describe:: windowSettings: { ... } diff --git a/docs/source/options/MathZoom.rst b/docs/source/options/MathZoom.rst @@ -14,23 +14,28 @@ section in your :meth:`MathJax.Hub.Config()` call. For example MathJax.Hub.Config({ MathZoom: { - delay: 600 + styles: { + "#MathJax_Zoom": { + "background-color": "#0000F0" + } + } } }); -would set the ``delay`` option to 600 milliseconds. +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). +the ``menuSettings`` configuration section of the `core configuration +options <configure-hub>`). -.. describe:: delay: 400 +.. describe:: delay: 500 - This the time (in milliseconds) that the mouse must be still over a - typeset mathematical formula before the zoomed version is displayed - (when the zoom trigger is set to `Hover`). + This value is now stored as the ``hover`` parameter in the + :ref:`MathEvents <configure-MathEvents>` configuration options, and + will have no effect if given here. .. describe:: styles: {} diff --git a/docs/source/options/NativeMML.rst b/docs/source/options/NativeMML.rst @@ -6,9 +6,11 @@ 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. They are listed with their default -values. To set any of these options, include a ``NativeMML`` section -in your :meth:`MathJax.Hub.Config()` call. For example +`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 :meth:`MathJax.Hub.Config()` call. For +example .. code-block:: javascript @@ -23,38 +25,29 @@ would set the ``scale`` option to 105 percent. .. describe:: scale: 100 The scaling factor (as a percentage) of math with respect to the - surrounding text. Since the `NativeMML` output relies on the - browser's native MathML support, MathJax does not control the - font size used in the mathematics. You may need to set this value - to compensate for the size selected by the browser. The user can - also adjust this value using the contextual menu item associated - with the typeset mathematics. + 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. + +.. describe:: 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. .. describe:: 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 :ref:`Core configuration options + <configure-hub>` for more details. - This controls whether the MathJax contextual menu will be - available on the mathematics in the page. If true, then - right-clicking (on the PC) or control-clicking (on the Mac) 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 <configure-MathMenu>` for - more details. - -.. describe:: showMathMenuMSIE: true - - There is a separate menu setting for MSIE since the code to handle - that is a bit delicate; if it turns out to have unexpected - consequences, you can turn it off without turning off the - menu support in other browsers. - .. describe:: styles: {} - This is a list of CSS declarations for styling the HTML-CSS + 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 :ref:`CSS Style Objects <css-style-objects>` for details on how to specify diff --git a/docs/source/options/SVG.rst b/docs/source/options/SVG.rst @@ -0,0 +1,162 @@ +.. _configure-SVG: + +************************ +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 :meth:`MathJax.Hub.Config()` call. Note that, because of the +dash, you need to enclose the name in quotes. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + "SVG": { + scale: 120 + } + }); + +would set the ``scale`` option to 120%. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: font: "TeX" + + This is the font to use for rendering the mathematics. Note that + currently only the `TeX` font is available. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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. + +.. describe:: 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: + + .. describe:: 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. + + .. describe:: 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. + +.. describe:: 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 :ref:`CSS Style + Objects <css-style-objects>` for details on how to specify CSS + style in a JavaScript object. + +.. describe:: 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: + + .. describe:: delayPost: 600 + + The delay (in milliseconds) before the tooltip is posted after + the mouse is moved over the ``maction`` element. + + .. describe:: delayClear: 600 + + The delay (in milliseconds) before the tooltop is cleared + after the mouse moves out of the ``maction`` element. + + .. describe:: offsetX: 10 + offsetY: 5 + + These are the offset from the mouse position (in pixels) + where the tooltip will be placed. diff --git a/docs/source/options/TeX.rst b/docs/source/options/TeX.rst @@ -6,7 +6,8 @@ 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. They are listed with their default values. To +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 :meth:`MathJax.Hub.Config()` call. For example @@ -41,41 +42,90 @@ to be defined within the TeX input processor. 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. + +.. describe:: equationNumbers: {} + + This object controls the automatic equation numbering and the + equation referencing. It contains the following values: + + .. describe:: 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. + + .. describe:: 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. + + .. describe:: 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. + + .. describe:: 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). + + .. describe:: formatURL: function (id) {return '#'+escape(id)} + + A function that takes an equation ID and returns the URL to + link to it. + + .. describe:: 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 + <http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ for + some examples of equation numbering. .. describe:: 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, + 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. - .. code-block:: javascript + For example, - Macros: { - RR: '{\\bf R}', - bold: ['{\\bf #1}', 1] - } + .. code-block:: javascript + + 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. + 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. .. describe:: 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. + 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. .. describe:: 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. + 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. diff --git a/docs/source/options/asciimath2jax.rst b/docs/source/options/asciimath2jax.rst @@ -0,0 +1,110 @@ +.. _configure-asciimath2jax: + +****************************** +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 +:meth:`MathJax.Hub.Config()` call. For example + +.. code-block:: javascript + + MathJax.Hub.Config({ + asciimath2jax: { + delimiters: [['`','`'], ['$','$']] + } + }); + +would set the ASCIIMath delimiters for the `asciimath2jax` +preprocessor to include dollar signs as well as back-ticks. + + +.. describe:: 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, + + .. code-block:: javascript + + 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. + +.. describe:: 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: + + .. 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 <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 `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. + +.. describe:: 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. + +.. describe:: 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. diff --git a/docs/source/options/hub.rst b/docs/source/options/hub.rst @@ -19,10 +19,7 @@ behavior of MathJax. They are given with their default values. 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 number - of TeX-specific extensions (see the :ref:`TeX and LaTeX input - <tex-and-latex-input>` section of the :ref:`Getting Started - <getting-started>` document for more details). There is also a + ``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. @@ -33,7 +30,9 @@ behavior of MathJax. They are given with their default values. 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 the only other predefined configuration file. + configuration is one such configuration file, and there are a + number of other pre-defined configurations (see :ref:`Using a + configuration file <config-files>` for more details). .. describe:: styleSheets: [] @@ -43,8 +42,9 @@ behavior of MathJax. They are given with their default values. .. describe:: styles: {} - CSS `selector: rules;` styles to be defined dynamically at startup - time. + CSS styles to be defined dynamically at startup time. These are + in the form `selector:rules` (see :ref:`CSS Style Objects + <css-style-objects>` for complete details). .. describe:: preJax: null and postJax: null @@ -59,22 +59,23 @@ behavior of MathJax. They are given with their default values. 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 regular expressions, 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. 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. + 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: "\\\\\\\\\"`` makes a double backslash the ``preJax`` text ``preJax: "\\[\\[", postJax: "\\]\\]"`` makes it so jax scripts must be enclosed in double brackets. @@ -148,13 +149,51 @@ behavior of MathJax. They are given with their default values. .. 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 + 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 <configure-MathMenu>` 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 @@ -194,9 +233,19 @@ behavior of MathJax. They are given with their default values. to ``"Browser"``, you will get the MathPlayer contextual menu rather than the MathJax menu. - There are also settings for ``format``, ``renderer``, and ``font``, - but these are maintained by MathJax and should not be set by the - page author. + .. 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: { ... } diff --git a/docs/source/options/index.rst b/docs/source/options/index.rst @@ -13,16 +13,16 @@ will see that ``config/default.js`` is itself one big call to ``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 +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 a configuration object as its value. The object is itself -a configuration object made up of name-value pairs that give the +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, @@ -70,6 +70,7 @@ are categorized by the component they affect. The tex2jax preprocessor options <tex2jax> The mml2jax preprocessor options <mml2jax> + The asciimath2jax preprocessor options <asciimath2jax> The jsMath2jax preprocessor options <jsMath2jax> .. toctree:: @@ -77,8 +78,10 @@ are categorized by the component they affect. The TeX input processor options <TeX> The MathML input processor options <MathML> + The AsciiMath input processor options <AsciiMath> The HTML-CSS output processor options <HTML-CSS> The NativeMML output processor options <NativeMML> + The SVG output processor options <SVG> The MMLorHTML configuration options <MMLorHTML> .. toctree:: @@ -86,6 +89,7 @@ are categorized by the component they affect. The MathMenu options <MathMenu> The MathZoom options <MathZoom> + The MathEvents options <MathEvents> The FontWarnings options <FontWarnings> diff --git a/docs/source/options/tex2jax.rst b/docs/source/options/tex2jax.rst @@ -56,6 +56,21 @@ preprocessor. 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 @@ -113,20 +128,28 @@ preprocessor. 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 automatically preceeded by - ``'(^| )('`` and followed by ``')( |$)'``, so your pattern will - have to match full words in the class name. Assigning an element - this class name will prevent `tex2jax` from processing its - contents. + 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 turn on - processing within tags that have been marked as ignored or skipped - above. Note that this is a regular expression, and so you need to - be sure to quote any `regexp` special characters. The pattern is - automatically preceeded by ``'(^| )('`` and followed by ``')( - |$)'``, so your pattern will have to match full words in the class - name. Use this to restart processing within an element that has - been marked as ignored above. + *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 @@ -4,24 +4,26 @@ MathJax Output Formats ********************** -Currently, MathJax can render math in two ways: +Currently, MathJax can render math in three ways: -- Using HTML-with-CSS to lay out the mathematics, or +- 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` and `NativeMML` output +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 +``_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, otherwise HTML-CSS output will be used. +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"`` -or ``"output/NativeMML"`` in the `jax` array of your MathJax configuration. -For example +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 @@ -30,39 +32,61 @@ For example 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 +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. (The -HTML-CSS processor has not yet been optimized for speed, so you can -expect some improvement in the future. Note that IE8 in "IE8 -standards mode" is an order of magnitude slower than any other browser -when processing math through the HTML-CSS output processor; see -:ref:`HTML-CSS with IE8 <html-css-with-ie8>` below for some strategies -to deal with this.) - -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 +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; but this does introduce some printing issues in some +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 disadvantage of this mode is that it does not take +advantage of STIX fonts, and so only has access to the characters in +the web-based fonts, and it 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. + +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 <http://www.dessci.com/en/products/mathplayer/>`_ 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, +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 may in the future, since MathML is part of the HTML5 +natively, but may 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 lay -out 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 may rely on features that are not available in -some renderers (for example, Firefox's MathML support does not implement -some of the named widths, such as ``negativethinmathspace``). The results -using the NativeMML output processor may have spacing or other rendering -problems that are outside of MathJax's control. +The advantage of the NativeMML output Processor is its speed, since +native MathML support is much faster than using complicated HTML and +CSS to lay out 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 =========================================== @@ -70,9 +94,10 @@ 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, and HTML-CSS output otherwise. These -are the configuration files that end in ``_HTMLorMML``. +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 @@ -86,28 +111,37 @@ the abilities of your user's browser. config: ["MMLorHTML.js"], jax: ["input/TeX"] -You can customize which choice to make on a browser-by-browser basis -or a global basis. See the ``config/default.js`` file or the + +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 <configure-MMLorHTML>` section for further -details. As an example, this configuration tells MathJax to use HTML-CSS -output rather than native MathML support for Firefox: +details. As an example, this configuration tells MathJax to use +native MathML support rather than HTML-CSS output for Firefox: .. code-block:: html <script type="text/x-mathjax-config"> MathJax.Hub.Config({ - MMLorHTML: { prefer: { Firefox: "HTML" } } + 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 only for IE with the -MathPlayer plugin (Firefox is the only other browser to have native MathML -support that is sufficient for use with MathJax). Note, however, that a -user can employ the MathJax contextual menu to select the other renderer if -he or she wishes. +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 @@ -116,44 +150,109 @@ 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 + + <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 :ref:`HTML-CSS configuration <configure-HTML-CSS>` or +:ref:`SVG configuration <configure-SVG>` 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 :term:`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-ie8: -HTML-CSS with IE8 -================= - -Internet Explorer 8 has at least eight different rendering modes in which -it can operate, and that are triggered by the `DOCTYPE` of the document -being viewed. Its "quirks" mode is its fastest mode, and its "IE8 -standards" mode is its slowest. This is the mode triggered by strict HTML -document types, and since most modern content management systems now -include a `DOCTYPE` that activates "standards" mode, IE8 will operate in -its slowest manner. This is particularly apparent when MathJax is used, -since IE8 in standards mode runs 20 to 30 times slower than it does in its -IE7 emulation mode, and 60 times slower than in quirks mode, on the sample -equations page in ``test/sample.html``. - -Most users find this speed reduction unacceptable when there is much -mathematics on the page. To overcome this problem, you may wish to -tell IE8 to use its IE7 emulation mode rather than its IE8 standards -mode. You can accomplish this by including the line +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 .. code-block:: html - <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> + <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: + +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 -at the top of the ``<head>`` section of your HTML documents. This -lets you keep the strict `DOCTYPE` for validation purposes, while -still managing to get reasonable performance from Internet Explorer -8. Note that this line must come at the beginning of the ``<head>``, -before any stylesheets or other content are loaded. + "HTML-CSS": { + extensions: ["handle-floats.js"] + } -Alternatively, you can use the `MMLorHTML` configuration file -described above to select NativeMML output when possible, and request -that your users install the `MathPlayer plugin -<http://www.dessci.com/en/products/mathplayer/>`_, which will render -the mathematics much more quickly. +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. -It appears that IE9 in IE9 standards mode may perform better than IE8, but -since IE9 is still in beta testing as of this writing, we have yet to see -exactly what the performance of MathJax in IE9 will be like. +See the :ref:`HTML-CSS configuration options <configure-HTML-CSS>` for +other options of the HTML-CSS output jax. diff --git a/docs/source/platforms/index.rst b/docs/source/platforms/index.rst @@ -4,15 +4,16 @@ 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 and integrations -<http://www.mathjax.org/community/mathjax-in-use/#web-apps>`_ list of the +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 +<http://www.mathjax.org/community/mathjax-in-use>`_ list of the `MathJax web site <http://www.mathjax.org>`_. 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. +use MathJax by modifying the theme or template for your wiki or blog, +as explained below. Using MathJax in a Theme File diff --git a/docs/source/signals.rst b/docs/source/signals.rst @@ -53,14 +53,14 @@ 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, -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. +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 @@ -79,14 +79,14 @@ message, and can act on it in whatever ways they see fit. Creating a Listener =================== -MathJax maintains two separate 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). +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 :meth:`MathJax.Hub.Register.StartupHook()` or @@ -103,10 +103,12 @@ called when it arrives. For example See the :ref:`MathJax Startup Sequence <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. +`test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/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 @@ -154,8 +156,9 @@ signal's :meth:`Interest()` method, as in the following example. 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. +them; instead, use the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html>`_ +file, which displays them in the web page. See the :ref:`Signal Object <api-signal>` reference page for details on the structure and methods of the signal object. diff --git a/docs/source/start.rst b/docs/source/start.rst @@ -5,15 +5,15 @@ Getting Started *************** MathJax allows you to include mathematics in your web pages, either -using TeX and LaTeX notation, or as MathML, and you can even use both -in the same document. +using TeX and LaTeX notation, MathML, or AsciiMath notation, and you +can even use all three in the same document. 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 for use locally on your own hard disk -(with no need for network access). Both of these are described below, -with links to more detailed explanations. This page gives the +MathJax on your own server, or use it locally on your own 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. @@ -43,12 +43,13 @@ into the ``<head>`` block of your document. (It can also go in the 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, and otherwise use HTML-with-CSS to display the mathematics. -This is the most general configuration, 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 <loading>` instructions. +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 +<loading>` instructions. The use of ``cdn.mathjax.org`` is governed by its `terms of service <http://www.mathjax.org/download/mathjax-cdn-terms-of-service/>`_, so be @@ -68,7 +69,7 @@ and replace it. This is sometimes called a `man-in-the-middle <http://en.wikipedia.org/wiki/Man-in-the-middle_attack>`_ attack. To prevent such attacks, it is necessary to access the MathJax CDN -over a secure HTTPS connection. This can be easily done by using the +over a secure HTTPS connection. This can be done easily by using the following ``<script>`` tag instead of the one listed above: .. code-block:: html @@ -78,8 +79,9 @@ following ``<script>`` tag instead of the one listed above: </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, this address is stable and safe to use. +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 @@ -89,7 +91,8 @@ 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. +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. @@ -108,8 +111,8 @@ should obtain a file named something like ``mathjax-MathJax-v1.1-X-XXXXXXXX.zip``, where the X's are random-looking letters and numbers). 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 earlier releases, which had -the fonts separate from the rest of the code. +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 @@ -118,7 +121,7 @@ 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 +**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 <http://git-scm.com/>`_ version control system, and is described in the :ref:`Installing MathJax @@ -128,17 +131,18 @@ of MathJax (see :ref:`Installing MathJax via SVN <getting-mathjax-svn>`). Once you have MathJax set up on your server, you can test it using the -files in the ``MathJax/test`` directory. Load them in your browser -using its web address 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. +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 @@ -147,11 +151,12 @@ 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, and will use -HTML-with-CSS to render the mathematics otherwise. +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 @@ -160,11 +165,11 @@ described more fully in :ref:`Common Configurations <common-configurations>`, and the configuration options are described in :ref:`Configuration Options <configuration>`. -Note: The configuration process has changed in MathJax v1.1, so if you have -existing pages that use MathJax, 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 <installation>` for more -details. +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 +<installation>` for more details. Linking your copy of MathJax into a web page @@ -210,13 +215,15 @@ of MathJax. Putting mathematics in a web page ================================= -To put mathematics in your web page, you can use either :term:`TeX` -and :term:`LaTeX` notation or :term:`MathML` notation or both 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. These two formats are described in more detail below. +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: @@ -258,10 +265,14 @@ options <configure-tex2jax>` 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 <TeX-support>` page for -more on MathJax's support for TeX. +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): +Here is a complete sample page containing TeX mathematics (also +available in the `test/sample-tex.html +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-tex.html>`_ +file): .. code-block:: html @@ -290,6 +301,16 @@ 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 <TeX-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 <TeX-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: @@ -305,8 +326,12 @@ loaded by the ``TeX-AMS-MML_HTMLorMML`` configuration. These include: - `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. +Other extensions may be loaded automatically when needed. See +:ref:`TeX and LaTeX support <TeX-support>` for details on the other +TeX extensions that are available. + +.. _mathml-input: MathML input ------------ @@ -321,10 +346,21 @@ 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. - -Here is a complete sample page containing MathML mathematics (also -available in the ``test/sample-mml.html`` file): +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 +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-mml.html>`_ +file): .. code-block:: html @@ -338,13 +374,19 @@ available in the ``test/sample-mml.html`` file): </head> <body> - When <math><mi>a</mi><mo>&#x2260;</mo><mn>0</mn></math>, - there are two solutions to <math> + <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 mode="display"> + </math> + and they are + <math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <mi>x</mi> <mo>=</mo> <mrow> <mfrac> @@ -363,6 +405,7 @@ available in the ``test/sample-mml.html`` file): </mrow> <mtext>.</mtext> </math> + </p> </body> </html> @@ -374,20 +417,66 @@ should use .. code-block:: html - <mspace width="thinmathspace"></mspace> + <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 +:ref:`mml2jax configuration options <configure-mml2jax>` page for more +details. See the :ref:`MathML <MathML-support>` 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 +<http://cdn.mathjax.org/mathjax/2.0-latest/test/sample-asciimath.html>`_ +file): + +.. code-block:: html + + <!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> -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. 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 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 <configure-asciimath2jax>` page for more +details. See the :ref:`AsciiMath support <AsciiMath-support>` page for more on +MathJax's AsciiMath support. -The component of MathJax that recognizes MathML notation 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 -<configure-mml2jax>` page for more details. See the :ref:`MathML -<MathML-support>` page for more on MathJax's MathML support. Where to go from here? diff --git a/docs/source/startup.rst b/docs/source/startup.rst @@ -90,7 +90,12 @@ pushed into the queue: .. -5. Load the jax configuration files: +5. Initialize the Message system (the grey information box in the + lower left) + +.. + +6. Load the jax configuration files: - Post the ``Begin Jax`` startup signal - Load the jax config files from the ``MathJax.Hub.config.jax`` array @@ -101,7 +106,7 @@ pushed into the queue: .. -6. Load the extension files: +7. Load the extension files: - Post the ``Begin Extensions`` startup signal - Load the files from the ``MathJax.Hub.config.extensions`` array @@ -114,20 +119,22 @@ pushed into the queue: .. -7. Set the MathJax menu's renderer value based on the jax that have been +8. Set the MathJax menu's renderer value based on the jax that have been loaded .. -8. Wait for the onload handler to fire +9. 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) .. -9. Set ``MathJax.isReady`` to ``true`` +10. Set ``MathJax.isReady`` to ``true`` .. -10. Perform the typesetting pass (preprocessors and processors) +11. Perform the typesetting pass (preprocessors and processors) - Post the ``Begin Typeset`` startup signal - Post the ``Begin PreProcess`` hub signal @@ -137,6 +144,12 @@ pushed into the queue: - 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 @@ -145,7 +158,18 @@ pushed into the queue: .. -11. Post the ``End`` startup signal +12. Jump to the location specified in the URL's hash reference, if + any. + +.. + +13. 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). + +.. + +14. Post the ``End`` startup signal The loading of the jax and extensions in steps 5 and 6 are now done in @@ -157,4 +181,6 @@ 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. +See the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/test/sample-signals.html>`_ file +to see the signals in action. diff --git a/docs/source/synchronize.rst b/docs/source/synchronize.rst @@ -12,7 +12,7 @@ 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 used three mechanisms to +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 @@ -37,20 +37,23 @@ queues for actions that need to be synchronized with each other, but not to MathJax as a whole. See the :ref:`Queue Object <api-queue>` 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 -:ref:`Signal Object <api-signal>` 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. +**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 +:ref:`Signal Object <api-signal>` reference page for more details. +See also the `test/sample-signals.html +<http://cdn.mathjax.org/mathjax/latest/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: diff --git a/docs/source/tex.rst b/docs/source/tex.rst @@ -81,7 +81,7 @@ 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. +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 @@ -129,6 +129,228 @@ easier to enter ``<`` and ``>`` using TeX-like syntax: 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 :term:`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 +<http://www.mathjax.org/community/mathjax-in-use/>`_ 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 + +.. code-block:: latex + + ... 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 + +.. code-block:: latex + + \\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. + + +.. _tex-macros: + +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 + +.. code-block:: latex + + \( + \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 + +.. code-block:: javascript + + 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: + +.. code-block:: javascript + + 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``: + +.. code-block:: html + + <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 :ref:`Using a Local +Configuration File with the CDN <local-config-files>` for details. + + +.. _tex-eq-numbers: + +Autmatic Equation Numering +========================== + +New in MathJax v2.0 is the ability to have equations be numbered +automatically. This is 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 + + <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 + +.. code-block:: latex + + \begin{equation} + E = mc^2 + \end{equation} + +will be numbered, while + +.. code-block:: latex + + \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, + +.. code-block:: latex + + 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 <http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ 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 :ref:`TeX configuration +options <configure-TeX>` page for more details. + .. _tex-extensions: @@ -165,7 +387,82 @@ script prior to loading MathJax. For example will load the `autobold` TeX extension in addition to those already included in the ``TeX-AMS_HTML`` configuration file. -The main extensions are described below. +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 + + <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 +<http://cdn.mathjax.org/mathjax/latest/test/sample-autoload.html>`_ +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: + +.. 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 ---------------------- @@ -192,6 +489,9 @@ 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 -------- @@ -208,6 +508,295 @@ appears in a section of an HTML page that is in bold. 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 ``<menclose>`` +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 + ``<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 + +.. 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 <http://www.ctan.org/pkg/mhchem>`_ 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 -------- @@ -230,10 +819,11 @@ following to your :meth:`MathJax.Hub.Config()` call: inlineDelimiters: ["",""], // or ["$","$"] or ["\\(","\\)"] multiLine: true, // false for TeX on all one line style: { - "font-family": "serif", - "font-size": "80%", + "font-size": "90%", + "text-align": "left", "color": "black", - "border": "1px solid" + "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) } @@ -261,7 +851,20 @@ the paragraph, use } } -You may also wish to set the font family, as the default is "serif". +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 @@ -296,6 +899,19 @@ 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 --------------- @@ -348,6 +964,53 @@ array. You can configure the extension as follows: } +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 + + <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> + + .. _tex-commands: Supported LaTeX commands @@ -358,6 +1021,11 @@ 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 +<http://www.onemathematicalcat.org/MathJaxDocumentation/TeXSyntax.htm>`_ page. + Symbols ------- @@ -431,8 +1099,11 @@ B \barwedge AMSsymbols \Bbb \Bbbk AMSsymbols + \bbox [bbox] + \bcancel cancel \because AMSsymbols \begin + \begingroup begingroup non-standard \beta \beth AMSsymbols \between AMSsymbols @@ -498,13 +1169,18 @@ 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 @@ -522,7 +1198,8 @@ C \class [HTML] non-standard \clubsuit \colon - \color + \color color + \colorbox color \complement AMSsymbols \cong \coprod @@ -603,12 +1280,15 @@ 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 @@ -625,6 +1305,7 @@ F \fallingdotseq AMSsymbols \fbox + \fcolorbox color \Finv AMSsymbols \flat \forall @@ -642,6 +1323,7 @@ G \Gamma \gamma \gcd + \gdef begingroup \ge \genfrac AMSmath \geq @@ -652,6 +1334,7 @@ G \ggg AMSsymbols \gggtr AMSsymbols \gimel AMSsymbols + \global begingroup \gnapprox AMSsymbols \gneq AMSsymbols \gneqq AMSsymbols @@ -735,6 +1418,7 @@ L .. code-block:: latex + \label [AMSmath] \Lambda \lambda \land @@ -774,6 +1458,7 @@ L \lesseqqgtr AMSsymbols \lessgtr AMSsymbols \lesssim AMSsymbols + \let [newcommand] \lfloor \lg \lgroup @@ -843,6 +1528,7 @@ M \mathscr \mathsf \mathstrut + \mathtip action non-standard \mathtt \matrix \max @@ -850,9 +1536,11 @@ M \measuredangle AMSsymbols \mho AMSsymbols \mid + \middle \min \mit \mkern + \mmlToken non-standard \mod \models \moveleft @@ -880,6 +1568,7 @@ N \neq \newcommand [newcommand] \newenvironment [newcommand] + \Newextarrow extpfeil \newline \nexists AMSsymbols \ngeq AMSsymbols @@ -1007,7 +1696,9 @@ R \rbrack \rceil \Re + \ref [AMSmath] \renewcommand [newcommand] + \renewenvironment [newcommand] \require non-standard \restriction AMSsymbols \rfloor @@ -1130,6 +1821,7 @@ T \textit \textrm \textstyle + \texttip action non-standard \tfrac AMSmath \therefore AMSsymbols \Theta @@ -1142,6 +1834,7 @@ T \tiny \Tiny non-standard \to + \toggle action non-standard \top \triangle \triangledown AMSsymbols @@ -1250,8 +1943,14 @@ X \Xi \xi + \xcancel cancel \xleftarrow AMSmath + \xlongequal extpfeil + \xmapsto extpfeil \xrightarrow AMSmath + \xtofrom extpfeil + \xtwoheadleftarrow extpfeil + \xtwoheadrightarrow extpfeil Y - diff --git a/docs/source/typeset.rst b/docs/source/typeset.rst @@ -127,17 +127,28 @@ The actions you can perform on an element jax include: to set the math text of the element to `newmath` and typeset. + .. describe:: 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. + .. describe:: Reprocess() - to remove the output and reproduce it again (for - example, if CSS has changed that would alter the spacing of the - mathematics). + to remove the output and then retranslate the input into the + internal MathML and rerender the output. .. describe:: Remove() to remove the output for this math element (but not the original ``<script>`` tag). + .. describe:: needsUpdate() + + to find out if the mathematics has changed so that its output + needs to be updated. + .. describe:: SourceElement() to obtain a reference to the original @@ -161,7 +172,7 @@ queue. If your startup code performs the commands var studentDisplay = null; MathJax.Hub.Queue(function () { - studentDisplay = MathJax.Hub.getAllJax("MathDiv"); + studentDisplay = MathJax.Hub.getAllJax("MathDiv")[0]; }); then you can use @@ -173,8 +184,12 @@ then you can use 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 (available in a -more full-featured version as ``test/sample-dynamic.html``): +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 +<http://cdn.mathjax.org/mathjax/latest/test/sample-dynamic.html>`_. .. code-block:: html @@ -232,3 +247,8 @@ more full-featured version as ``test/sample-dynamic.html``): </body> </html> + +There are a number of additional example pages at `test/examples.html +<http://cdn.mathjax.org/mathjax/latest/test/examples.html>`_ that +illustrate how to call MathJax dynamically or perform other actions +with MathJax. diff --git a/docs/source/whats-new-1.1.rst b/docs/source/whats-new-1.1.rst @@ -0,0 +1,172 @@ +.. _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 <loading-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 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 @@ -0,0 +1,718 @@ +.. _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 <configure-HTML-CSS>` and :ref:`configuration options for SVG +<configure-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 +<configure-hub>` 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 <tex-eq-numbers>` 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 <automatic-linebreaking>` 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 <http://www1.chapman.edu/~jipsen/mathml/asciimath.html>`_ +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 <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 <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 <config-files>` 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 :ref:`TeX support <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 :ref:`TeX support + <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 <api-hub>` 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 <configure-MMLorHTML>`. + +* `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 + + .. code-block:: html + + <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 + + .. 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 <configure-tex2jax>` 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 :ref:`Notes about shared + installations <cross-domain-linking>` 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 :ref:`core configuration options + <configure-hub>`). + +* 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 :ref:`output formats + <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). diff --git a/docs/source/whats-new.rst b/docs/source/whats-new.rst @@ -1,172 +0,0 @@ -.. _whats-new: - -************************** -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 <loading-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 downlaoded, 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 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/test/examples.html b/test/examples.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html> +<head> +<title>MathJax Example Page</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<style> +li {margin-top: .2em} +</style> +</head> +<body> + +<h1>MathJax Example Pages</h1> + +View the page source for any of these examples to see how they work. + +<ul> +<li><a href="sample-tex.html">Page using TeX notation</a></li> +<li><a href="sample-mml.html">Page using MathML notation</a></li> +<li><a href="sample-asciimath.html">Page using AsciiMath notation</a></li> +<li><a href="sample.html">Page included several examples TeX equations</a></li> +<li><a href="sample-eqnum.html">Page of TeX equations with automatic numbering</a></li> +<li><a href="sample-eqrefs.html">Page of TeX equations with equation references</a></li> +<p> +<li><a href="sample-macros.html">Example of defining TeX macros</a></li> +<li><a href="sample-autoload.html">Defining macros to autoload the extensions in + which they are implemented</a></li> +<p> +<li><a href="sample-all-at-once.html">Example of waiting until all the + math is typeset before displaying the page (avoids "flicker")</a></li> +<p> +<li><a href="sample-dynamic-steps.html">Showing an equation one step at a time</a></li> +<li><a href="sample-dynamic.html">Display an equation typed in by a user</a></li> +<li><a href="sample-dynamic-2.html">Preview text containing math typed in by a user</a></li> +<p> +<li><a href="sample-loader.html">Loading MathJax into a page after it is loaded</a></li> +<li><a href="sample-loader-config.html">Loading MathJax dynamically with in-line configuration</a></li> +<p> +<li><a href="sample-signals.html">Page showing MathJax signals during page processing</a></li> + +</ul> + +</body> +</html> diff --git a/test/index-images.html b/test/index-images.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax Test Page</title> -<!-- Copyright (c) 2009-2011 Design Science, Inc. --> +<!-- Copyright (c) 2009-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/x-mathjax-config"> // diff --git a/test/index.html b/test/index.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax Test Page</title> -<!-- Copyright (c) 2009-2011 Design Science, Inc. --> +<!-- Copyright (c) 2009-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/x-mathjax-config"> // diff --git a/test/sample-all-at-once.html b/test/sample-all-at-once.html @@ -0,0 +1,136 @@ +<!DOCTYPE html> +<html> +<head> +<title>Wait Until MathJax is Finished Before Showing Page</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<!-- + | + | This shows how to prevent the page from being displayed until after + | MathJax has finished typesetting all the math. This avoids the + | "flicker" that occurs as source TeX code is removed from the page and + | then typeset. You probably don't want to do this on a page with lots + | of math. + | + |--> + +<script type="text/x-mathjax-config"> + // + // The document is hidden until MathJax is finished, then + // this function runs, making it visible again. + // + MathJax.Hub.Queue(function () { + document.getElementById("hide_page").style.visibility = ""; + }); +</script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML-full"></script> + +<style> +h1 {text-align:center} +h2 { + font-weight: bold; + background-color: #DDDDDD; + padding: .2em .5em; + margin-top: 1.5em; + border-top: 3px solid #666666; + border-bottom: 2px solid #999999; +} +</style> +</head> +<body> + +<!-- + | + | This DIV keeps the page blank until after the math is typeset. + |--> +<div id="hide_page" style="visibility:hidden"> + +<noscript> +<div style="color:#CC0000; text-align:center"> +<b>Warning: <a href="http://www.mathjax.org/">MathJax</a> +requires JavaScript to process the mathematics on this page.<br /> +If your browser supports JavaScript, be sure it is enabled.</b> +</div> +<hr> +</noscript> + +<h1>Sample MathJax Equations</h1> + +<blockquote> + +<h2>The Lorenz Equations</h2> + +<p> +\begin{align} +\dot{x} & = \sigma(y-x) \\ +\dot{y} & = \rho x - y - xz \\ +\dot{z} & = -\beta z + xy +\end{align} +</p> + +<h2>The Cauchy-Schwarz Inequality</h2> + +<p>\[ +\left( \sum_{k=1}^n a_k b_k \right)^{\!\!2} \leq + \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) +\]</p> + +<h2>A Cross Product Formula</h2> + +<p>\[ + \mathbf{V}_1 \times \mathbf{V}_2 = + \begin{vmatrix} + \mathbf{i} & \mathbf{j} & \mathbf{k} \\ + \frac{\partial X}{\partial u} & \frac{\partial Y}{\partial u} & 0 \\ + \frac{\partial X}{\partial v} & \frac{\partial Y}{\partial v} & 0 \\ + \end{vmatrix} +\]</p> + +<h2>The probability of getting \(k\) heads when flipping \(n\) coins is:</h2> + +<p>\[P(E) = {n \choose k} p^k (1-p)^{ n-k} \]</p> + +<h2>An Identity of Ramanujan</h2> + +<p>\[ + \frac{1}{(\sqrt{\phi \sqrt{5}}-\phi) e^{\frac25 \pi}} = + 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} + {1+\frac{e^{-8\pi}} {1+\ldots} } } } +\]</p> + +<h2>A Rogers-Ramanujan Identity</h2> + +<p>\[ + 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = + \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, + \quad\quad \text{for $|q|<1$}. +\]</p> + +<h2>Maxwell's Equations</h2> + +<p> +\begin{align} + \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ + \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ + \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ + \nabla \cdot \vec{\mathbf{B}} & = 0 +\end{align} +</p> + +<h2>In-line Mathematics</h2> + +<p>Finally, while display equations look good for a page of samples, the +ability to mix math and text in a paragraph is also important. This +expression \(\sqrt{3x-1}+(1+x)^2\) is an example of an inline equation. As +you see, MathJax equations can be used this way as well, without unduly +disturbing the spacing between lines.</p> + + +</blockquote> + +</div> + +</body> +</html> diff --git a/test/sample-asciimath.html b/test/sample-asciimath.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> +<head> +<title>MathJax AsciiMath Test Page</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<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> diff --git a/test/sample-autoload.html b/test/sample-autoload.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<html> +<head> +<title>Example of defining a macro that autoloads an extension</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<!-- + | + | This page shows how to define macros that autoloads an extension + | where those macros are implemented. + | + | The \cancel, \bcancel, \xcancel, and \cancelto macros are + | all defined within the cancel extension, so we tie these + | macros to the function that loads an extension, passing it + | the name of the extension to load. + | + |--> + +<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> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML-full"></script> + +</head> +<body> + +<p> +This page makes <code>\cancel</code>, <code>\bcancel</code>, +<code>\xcancel</code>, and <code>\cancelto</code> all be defined so that +they will load the <code>cancel.js</code> extension when first used. +</p> + +<p> +Here is the first usage: \(\cancel{x+1}\). It will cause the cancel +package to be loaded automatically. +</p> + +</body> +</html> diff --git a/test/sample-dynamic-2.html b/test/sample-dynamic-2.html @@ -0,0 +1,117 @@ +<!DOCTYPE html> +<html> +<head> +<title>Dynamic Preview of Textarea with MathJax Content</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + showProcessingMessages: false, + tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] } + }); +</script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + +<script> +var Preview = { + delay: 150, // delay after keystroke before updating + + preview: null, // filled in by Init below + buffer: null, // filled in by Init below + + timeout: null, // store setTimout id + mjRunning: false, // true when MathJax is processing + oldText: null, // used to check if an update is needed + + // + // Get the preview and buffer DIV's + // + Init: function () { + this.preview = document.getElementById("MathPreview"); + this.buffer = document.getElementById("MathBuffer"); + }, + + // + // Switch the buffer and preview, and display the right one. + // (We use visibility:hidden rather than display:none since + // the results of running MathJax are more accurate that way.) + // + SwapBuffers: function () { + var buffer = this.preview, preview = this.buffer; + this.buffer = buffer; this.preview = preview; + buffer.style.visibility = "hidden"; buffer.style.position = "absolute"; + preview.style.position = ""; preview.style.visibility = ""; + }, + + // + // This gets called when a key is pressed in the textarea. + // We check if there is already a pending update and clear it if so. + // Then set up an update to occur after a small delay (so if more keys + // are pressed, the update won't occur until after there has been + // a pause in the typing). + // The callback function is set up below, after the Preview object is set up. + // + Update: function () { + if (this.timeout) {clearTimeout(this.timeout)} + this.timeout = setTimeout(this.callback,this.delay); + }, + + // + // Creates the preview and runs MathJax on it. + // If MathJax is already trying to render the code, return + // If the text hasn't changed, return + // Otherwise, indicate that MathJax is running, and start the + // typesetting. After it is done, call PreviewDone. + // + CreatePreview: function () { + Preview.timeout = null; + if (this.mjRunning) return; + var text = document.getElementById("MathInput").value; + if (text === this.oldtext) return; + this.buffer.innerHTML = this.oldtext = text; + this.mjRunning = true; + MathJax.Hub.Queue( + ["Typeset",MathJax.Hub,this.buffer], + ["PreviewDone",this] + ); + }, + + // + // Indicate that MathJax is no longer running, + // and swap the buffers to show the results. + // + PreviewDone: function () { + this.mjRunning = false; + this.SwapBuffers(); + } + +}; + +// +// Cache a callback to the CreatePreview action +// +Preview.callback = MathJax.Callback(["CreatePreview",Preview]); +Preview.callback.autoReset = true; // make sure it can run more than once + +</script> +</head> +<body> + +Type text in the box below:<br/> + +<textarea id="MathInput" cols="60" rows="10" onkeyup="Preview.Update()" style="margin-top:5px"> +</textarea> +<br/><br/> +Preview is shown here: +<div id="MathPreview" style="border:1px solid; padding: 3px; width:50%; margin-top:5px"></div> +<div id="MathBuffer" style="border:1px solid; padding: 3px; width:50%; margin-top:5px; +visibility:hidden; position:absolute; top:0; left: 0"><div> + +<script> +Preview.Init(); +</script> + +</body> +</html> diff --git a/test/sample-dynamic-steps.html b/test/sample-dynamic-steps.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax Dynamic Steps Test Page</title> -<!-- Copyright (c) 2011 Design Science, Inc. --> +<!-- Copyright (c) 2011-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/x-mathjax-config"> // diff --git a/test/sample-dynamic.html b/test/sample-dynamic.html @@ -2,17 +2,11 @@ <html> <head> <title>MathJax Dynamic Math Test Page</title> -<!-- Copyright (c) 2010-2011 Design Science, Inc. --> +<!-- Copyright (c) 2010-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> -<script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - extensions: ["tex2jax.js"], - jax: ["input/TeX","output/HTML-CSS"] - }); -</script> -<script type="text/javascript" src="../MathJax.js"></script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <style> input {margin-top: .7em} @@ -53,8 +47,9 @@ input {margin-top: .7em} }); // - // The onchange event handler that typesets the - // math entered by the user + // The onchange event handler that typesets the math entered + // by the user. Hide the box, then typeset, then show it again + // so we don't see a flash as the math is cleared and replaced. // window.UpdateMath = function (TeX) { QUEUE.Push(HIDEBOX,["Text",math,"\\displaystyle{"+TeX+"}"],SHOWBOX); diff --git a/test/sample-eqnum.html b/test/sample-eqnum.html @@ -0,0 +1,138 @@ +<!DOCTYPE html> +<html> +<head> +<title>MathJax Equation Numbering</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "AMS"} } }); +</script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML"></script> + +<style> +h1 { + background: #CCCCCC; + padding: .2em 1em; + border-top: 3px solid #666666; + border-bottom: 3px solid #999999; +} +</style> + +</head> +<body> + +<center> +<h1>A test of Equation Numbering</h1> +</center> + +<div style="padding:0 2em"> +<hr> +Equation: + +\begin{equation} +E = mc^2 +\end{equation} + +Equation*: + +\begin{equation*} +E = mc^2 +\end{equation*} + +<hr> +Brackets: + +\[E = mc^2\] + +Brackets tagged: + +\[E = mc^2\tag{x}\] + +<hr> +Split: + +\begin{equation} +\begin{split} +a& =b+c-d\\ +& \quad +e-f\\ +& =g+h\\ +& =i +\end{split} +\end{equation} + +<hr> +Multline: + +\begin{multline} + a+b+c+d+e+f+g\\ + M+N+O+P+Q\\ + R+S+T\\ + u+v+w+x+y+z +\end{multline} + +Multline*: + +\begin{multline*} + a+b+c+d+e+f+g\\ + M+N+O+P+Q\\ + R+S+T\\ + u+v+w+x+y+z +\end{multline*} + +<hr> +Gather: + +\begin{gather} +a_1=b_1+c_1\\ +a_2=b_2+c_2-d_2+e_2 +\end{gather} + +Gather*: + +\begin{gather*} +a_1=b_1+c_1\\ +a_2=b_2+c_2-d_2+e_2 +\end{gather*} + +<hr> +Align: + +\begin{align} +a_1& =b_1+c_1\\ +a_2& =b_2+c_2-d_2+e_2 +\end{align} + +Align*: + +\begin{align*} +a_1& =b_1+c_1\\ +a_2& =b_2+c_2-d_2+e_2 +\end{align*} + +Align: + +\begin{align} +a_{11}& =b_{11}& a_{12}& =b_{12}\\ +a_{21}& =b_{21}& a_{22}& =b_{22}+c_{22} +\end{align} + +Align with \notag and \tag: + +\begin{align} +a_{11}& =b_{11}& a_{12}& =b_{12}\notag\\ +a_{21}& =b_{21}& a_{22}& =b_{22}+c_{22} \tag{y} +\end{align} + +Align* with \tag: + +\begin{align*} +a_1& =b_1+c_1\tag{z}\\ +a_2& =b_2+c_2-d_2+e_2 +\end{align*} + +</div> + +</body> +</html> diff --git a/test/sample-eqrefs.html b/test/sample-eqrefs.html @@ -0,0 +1,85 @@ +<!DOCTYPE html> +<html> +<head> +<title>MathJax Equation References</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<script type="text/x-mathjax-config"> + MathJax.Hub.Config({ TeX: { equationNumbers: {autoNumber: "all"} } }); +</script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML"></script> + +<style> +h1 { + background: #CCCCCC; + padding: .2em 1em; + border-top: 3px solid #666666; + border-bottom: 3px solid #999999; +} +</style> + +</head> +<body> + +<center> +<h1>A test of Equation References</h1> +</center> + +<div style="padding:0 2em"> +<hr> +Here is a labeled equation: +$$x+1\over\sqrt{1-x^2}\label{ref1}$$ +with a reference to ref1: \ref{ref1}, +and another numbered one with no label: +$$x+1\over\sqrt{1-x^2}$$ +This one uses \nonumber: +$$x+1\over\sqrt{1-x^2}\nonumber$$ +<p> +<HR> +<p> +Here's one using the equation environment: +\begin{equation} +x+1\over\sqrt{1-x^2} +\end{equation} +and one with equation* environment: +\begin{equation*} +x+1\over\sqrt{1-x^2} +\end{equation*} +<p> +<HR> +<p> +This is a forward reference [\ref{ref2}] and another \eqref{ref2} for the +following equation: +$$x+1\over\sqrt{1-x^2}\label{ref2}$$ +More math: +$$x+1\over\sqrt{1-x^2}$$ +Here is a ref inside math: $\ref{ref2}+1$ and text after it. + +\begin{align} +x& = y_1-y_2+y_3-y_5+y_8-\dots +&& \text{by \eqref{ref1}}\\ +& = y'\circ y^* && \text{(by \eqref{ref3})}\\ +& = y(0) y' && \text {by Axiom 1.} +\end{align} + +Here's a bad ref [\ref{ref4}] to a nonexistent label. +<p> +<HR> +<p> +An alignment: +\begin{align} +a&=b\label{ref3}\cr +&=c+d +\end{align} +and a starred one: +\begin{align*} +a&=b\cr +&=c+d +\end{align*} + +</div> + +</body> +</html> diff --git a/test/sample-loader-config.html b/test/sample-loader-config.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html> +<head> +<title>Load MathJax with in-line configuration after the page is ready</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<script type="text/javascript"> +// +// We wait for the onload function to show that MathJax is laoded after +// the page is ready, and then use setTimeout to prove that MathJax is +// definitely loaded after the page is displayed and active. MathJax is +// loaded two seconds after the page is ready. +// +window.onload = function () { + setTimeout(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 = "../MathJax.js?config=TeX-AMS-MML_HTMLorMML"; + head.appendChild(script); + },2000) +} +</script> + +<style> +h1 { + text-align: center; + background: #CCCCCC; + padding: .2em 1em; + border-top: 3px solid #666666; + border-bottom: 3px solid #999999; +} +</style> + +</head> +<body> + +<h1>Adding MathJax with In-Line Configuration</h1> + +<p> +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}.$$ +</p> + +</body> +</html> diff --git a/test/sample-loader.html b/test/sample-loader.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html> +<head> +<title>Load MathJax after the page is ready</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<script type="text/javascript"> +// +// We wait for the onload function to show that MathJax is laoded after +// the page is ready, and then use setTimeout to prove that MathJax is +// definitely loaded after the page is displayed and active. MathJax is +// loaded two seconds after the page is ready. +// +window.onload = function () { + setTimeout(function () { + var script = document.createElement("script"); + script.type = "text/javascript"; + script.src = "../MathJax.js?config=TeX-AMS-MML_HTMLorMML"; + document.getElementsByTagName("head")[0].appendChild(script); + },2000) +} +</script> + +<style> +h1 { + text-align: center; + background: #CCCCCC; + padding: .2em 1em; + border-top: 3px solid #666666; + border-bottom: 3px solid #999999; +} +</style> + +</head> +<body> + +<h1>Adding MathJax After the Page is Loaded</h1> + +<p> +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}.$$ +</p> + +</body> +</html> diff --git a/test/sample-macros.html b/test/sample-macros.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> +<head> +<title>Example of defining a macro that autoloads an extension</title> +<!-- Copyright (c) 2012 Design Science, Inc. --> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> + +<!-- + | + | This page shows how to define macros in your configuration, or as part + | of the body of the page itself. + | + |--> + +<script type="text/x-mathjax-config"> +MathJax.Hub.Config({ + TeX: { + Macros: { + RR: '{\\bf R}', // a simple string replacement + bold: ['\\boldsymbol{#1}',1] // this macro has one parameter + } + } +}); +</script> +<script type="text/javascript" src="../MathJax.js?config=TeX-AMS_HTML-full"></script> + +</head> +<body> + +<!-- + | + | Here we use a math block that contains nothing but definitions in + | standard TeX format. It is enclosed in a DIV that doesn't display, so + | that there are no extra spaces generated by having the extra + | mathematics in the text. + | + | The first macro makes it easy to display vectors using \<x,y,z> + | the second uses \newcommand to create a macro + | + |--> +<div style="display:none"> +\( + \def\<#1>{\left<#1\right>} + \newcommand{\CC}{\mathbf{C}} +\) +</div> + +<p> +This page uses two different methods to define macros: either putting them +in JavaScript notation in the MathJax configuration, or in TeX notation in +the body of the document. +</p> + +<p>Some math that used the definitions: +\[ + f\colon\RR\to\RR^3 \hbox{ by } f(t)=\< t+1,{1\over 1+t^2}, \sqrt{t^2+1} > +\] +and +\[ + \{\,z\in\CC \mid z^2 = \bold{\alpha}\,\} +\] +</body> +</html> diff --git a/test/sample-mml.html b/test/sample-mml.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax MathML Test Page</title> -<!-- Copyright (c) 2010-2011 Design Science, Inc. --> +<!-- Copyright (c) 2010-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/javascript" src="../MathJax.js?config=MML_HTMLorMML-full"></script> @@ -12,14 +12,18 @@ <body> <p> -When <math><mi>a</mi><mo>&#x2260;</mo><mn>0</mn></math>, +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> +<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> + <mo>+</mo> <mi>c</mi> <mo>=</mo> <mn>0</mn> +</math> and they are -<math mode="display"> +<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> <mi>x</mi> <mo>=</mo> <mrow> <mfrac> diff --git a/test/sample-signals.html b/test/sample-signals.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax Signals Test Page</title> -<!-- Copyright (c) 2010-2011 Design Science, Inc. --> +<!-- Copyright (c) 2010-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <!-- | This example shows how to use MathJax's signal mechanism to find out diff --git a/test/sample-tex.html b/test/sample-tex.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax TeX Test Page</title> -<!-- Copyright (c) 2010-2011 Design Science, Inc. --> +<!-- Copyright (c) 2010-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ diff --git a/test/sample.html b/test/sample.html @@ -2,9 +2,9 @@ <html> <head> <title>MathJax Test Page</title> -<!-- Copyright (c) 2009-2011 Design Science, Inc. --> +<!-- Copyright (c) 2009-2012 Design Science, Inc. --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <script type="text/x-mathjax-config"> MathJax.Hub.Config({