commit 07ee4b860b8fe9fd10b6f3f29febedd3de4e6d49
parent 9dee8248f6dfd98e4a7cb4b101d23c30c02a96f0
Author: Davide Cervone <dpvc@union.edu>
Date: Thu, 29 Jul 2010 23:19:59 +0000
Removed most of the README content, which is now in the docs folder in HTML format
git-svn-id: https://mathjax.svn.sourceforge.net/svnroot/mathjax/trunk@536 b8fd5906-0fad-46e2-a0d3-10d94ff285d1
Diffstat:
| M | mathjax/README.txt | | | 457 | +++---------------------------------------------------------------------------- |
1 file changed, 16 insertions(+), 441 deletions(-)
diff --git a/mathjax/README.txt b/mathjax/README.txt
@@ -1,9 +1,15 @@
OVERVIEW:
-MathJax (TM) is an open source, Ajax-based math display solution designed
-with a goal of consolidating advances in many web technologies in a
-single definitive math-on-the-web platform supporting all major
-browsers.
+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.
Some of the main features of MathJax include:
@@ -22,445 +28,14 @@ Some of the main features of MathJax include:
See http://www.mathjax.org/ for additional details.
-INSTALLATION:
+INSTALLATION AND USAGE:
-MathJax can be used on a web server to support mathematics in your
-public web pages, or it can be used locally from your hard disk for
-your private pages. To use MathJax in either way, you will need to
-obtain a copy of MathJax (see below) and its font package. These two
-are separate pieces because the fonts are not likely to change often,
-while the main code will be updated fairly regularly.
+The MathJax installation and usage documentation is available on the
+docs/html directory of the MathJax distribution (see
+docs/html/index.html for the starting point). The documents are also
+available on the MathJax web site on line at
-Obtaining MathJax from SourceForge via SVN:
-
-The easiest way to obtain MathJax and keep it up-to-date is to use the
-subversion program (svn) to check it out from the MathJax project at
-SourceForge.net. The page
-
- http://sourceforge.net/projects/mathjax/develop
-
-lists the command you need to use to obtain a copy of MathJax via svn.
-Once you have checked out a version of MathJax, you will find that it
-includes a file called "fonts.zip" in the top-level directory. You
-will need to unpack that file in order to complete the installation of
-MathJax. It will create a fonts directory that contains the web fonts
-and images fonts used by MathJax to support users who do not have math
-fonts installed on their computers. Once you have checked out
-MathJax, you will need to move the MathJax directory to your web
-server in a location that is convenient for your use.
-
-Obtaining MathJax from SourceForge as an archive file:
-
-You can obtain MathJax from the MathJax project at SourceForge via
-the link
-
- http://sourceforge.net/projects/mathjax/files/
-
-where you will need to download a copy of the MathJax ZIP file (for
-the current version) and the MathJax-webfonts ZIP file. Unpack the
-MathJax ZIP file first, and then unpack the MathJax-webfonts ZIP file
-into that. That should produce a fonts directory in the MathJax
-folder (and MathJax/fonts should contain an HTML-CSS directory). The
-fonts directory contains web fonts and image fonts used by MathJax to
-support users who do not have math fonts installed on their
-computers. Once you have unpacked both archives, you can move the
-MathJax directory to your web server in a location that is convenient
-for your use.
-
-
-TESTING MATHJAX:
-
-Once you have MathJax installed, you can use the files in the
-MathJax/test directory to test that your installation is working
-properly. You can also use it to test if your version of MathJax
-needs updating. If you have checked out MathJax using subversion
-(svn), you can simply use "svn status" to see if your installation
-needs to be updated, and "svn update" to get any updates.
-
-
-USING MATHJAX IN A WEB PAGE:
-
-To use MathJax in a web page, you need to load MathJax.js near the top of
-the document (preferably in the document HEAD). A SCRIPT tag like
-
- <script type="text/javascript" src="/MathJax/MathJax.js"></script>
-
-will do it if you have MathJax at the top level of your web server.
-When called in this form, MathJax can be configured through the file
-MathJax/config/MathJax.js, which contains the parameters that control
-MathJax. There are comments in this file that explain what each of
-the parameters does, so look there for details.
-
-Alternatively, you can configure MathJax in-line within your web page
-(avoiding an extra file transfer). To do that, place the
-configuration information within the SCRIPT tag itself, as in the
-following example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js","TeX/noErrors.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- tex2jax: {inlineMath: [['$','$'],["\\(","\\)"]]},
- "HTML-CSS": {availableFonts:["TeX"]}
- });
- </script>
-
-which loads the tex2jax preprocessor and an extension that causes TeX
-errors to show the original TeX code rather than an error message,
-specifies the input and output jax (input format is TeX and output
-format is HTML/CSS), configures the tex2jax preprocessor to allow
-dollar signs to delimit inline-math as well as \(...\), and forces the
-HTML/CSS output to use the MathJax TeX fonts (in particular, the STIX
-fonts won't be used.)
-
-If you configure MathJax in this fashion, the MathJax/config/MathJax.js
-file is not loaded, and your in-line configuration is used instead.
-Note that you can include any of the parameters from the
-config/MathJax.js file (and in fact any arbitrary JavaScript as well).
-
-With the default configuration, MathJax runs the tex2jax preprocessor
-to look for TeX-style mathematics delimiters as a means of identifying
-the mathematics on the page. This uses \(...\) to mark in-line
-mathematics and \[...\] or $$...$$ for displayed mathematics. LaTeX
-environments can also mark mathematics, as in
-\begin{equation}...\end{equation}. Once the preprocessor runs,
-MathJax will typeset the mathematics on the page.
-
-Note that there can not be HTML tags within the math delimiters (other
-than <BR>) as TeX-formatted math does not include HTML tags. Also,
-since the mathematics is initially given as text on the page, you need
-to be careful that your mathematics doesn't look like HTML tags to the
-browser (which parses the page before MathJax gets to see it). In
-particular, that means that you have to be careful about things like
-less-than and greater-than signs (<,>), and ampersands (&), which have
-special meaning to the browsers. For example,
-
- ... when $x<y$ we have ...
-
-will cause a problem, because the brower will think "<y" is the
-beginning of a tag named "y" (even though there is no such tag in
-HTML). Usually, it is sufficient to simply put spaces around these
-symbols to cause the browser to avoid them, so
-
- ... when $x < y$ we have ...
-
-should work. Alternatively, you can use the HTML entities <, >
-and & to encode these characters so that the browser will not
-interpret them, but MathJax will. E.g.,
-
- ... when $x < y$ we have ...
-
-Finally, there are \lt and \gt macros defined to make it easier to
-enter < and > using TeX-like syntax:
-
- ... when $x \lt y$ we have ...
-
-Keep in mind that the browser interprets your text before MathJax
-does.
-
-
-MATHJAX WITH NO PREPROCESSOR:
-
-The usual way to use MathJax is with the tex2jax preprocessor, but if
-you are generating web pages via some other preprocessor of your own,
-you may wish to bypass the tex2math preprocessing and mark the
-mathematics in your page directly. This avoids an extra file
-transfer, the time involed in running the tex2jax preprocessor, and
-the issues involving less-than, greater-than, and ampersand discussed
-in the section above.
-
-When MathJax processes a page, it looks for mathematics stored in
-special SCRIPT tags. These are
-
- <script type="math/tex">...</script>
-
-for in-line math, and
-
- <script type="math/tex; mode=display">...</script>
-
-for displayed math, where the contents of the SCRIPT tags are TeX or
-LaTeX mathematics. Since SCRIPT tags can include less-than,
-greater-than, and ampersand characters, this neatly avoids the problem
-that these cause when you use the tex2jax preprocessor.
-
-Unfortunately, this method introduces a problem of its own, due to a
-bug in Internet Explorer. The problem is that IE incorrectly removes
-blank spaces from the page in order to avoid what it considers to be
-multiple spaces in a row. In particular, if there is a space both
-before and after a tag that IE thinks does not insert content into the
-page, it removes one of the two blanks. Because SCRIPT tags don't
-get displayed, IE will remove one of the spaces, so
-
- ... when <script type="math/tex">x < y</script> we have ...
-
-will become "...whenx < y we have..." in the output, with no space
-between the "when" and the "x". Because the space is removed before
-MathJax runs, MathJax has no way to recover the missing space, as it
-simply is no longer part of the page as far as IE is concerned.
-
-MathJax provides two different mechanisms to avoid this problem. One
-is to add a prefix or postfix for the mathematics tags, which is text
-that you insert before or after the tag that MathJax will remove when
-it processes the tag. Patterns for the prefix and postfix are given
-in the "preJax" and "postJax" parameters of the MathJax.Hub.Config()
-command (see the MathJax/config/MathJax.js file for more details).
-For example, setting
-
- preJax: "@@"
-
-would mean that
-
- ... when @@<script type="math/tex">x < y</script> we have ...
-
-would produce ".. when x < y we have ..." properly typeset. (One need
-not use both a preJax and postJax, as one is enough, but both are
-provided so that you can use either or both in combination.) Note,
-however, that the "@@" in this example will be displayed as part of
-the page until MathJax processes the mathematics and replaces the
-preJax with the typeset mathematics. This may cause visual confusion
-that disturbs your readers. It might be better to use something like
-"[math]" as the text for the preJax, since this may make more sense to
-your readers. Because the pre- and postJax are regular expression
-patterns (not litteral strings), you will need to handle this
-carefully because [ and ] have special meaning in regular expressions.
-Use
-
- preJax: "\\[math\\]"
-
-to make preJax be "\[math\]" (the double backslashes are to quote the
-backslash as part of the JavaScript string, and the resulting \[ and
-\] quote these characters in the resulting regular expression so they
-are treated as literal characters rather than having their special
-meansings in regular expressions).
-
-The other approach is to use a "MathJax preview" before the SCRIPT
-tag. This is a means by which you can supply an alternative form for
-the mathematics to be displayed prior to when MathJax runs. You
-could use a simple HTML version (if the mathematics is simple enough),
-or an IMG tag, or just the raw TeX code, for example. Note that the
-mathematics between the SCRIPT tags is NOT displayed (since it is a
-script, not text), so the preview can be used to show the TeX code up
-until the mathematics is typeset. (The tex2jax preprocessor does that
-automatically, for example). To make a preview, include a SPAN with
-CLASS="MathJax_Preview" as the element just before the math SCRIPT
-tag, e.g.,
-
- ... when <span class="MathJax_Preview">x < y</span><script
- type="math/tex">x < y</script> we have ...
-
-This circumvents the Internet Explorer space-removal bug, while at the
-same time giving your readers a preview of the mathematics until
-MathJax has been able to typeset it.
-
-You can use CSS styles to make it easier to distinguish the preview
-from the rest of the text. For example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- ...
- styles: {
- ".MathJax_Preview": {
- color: "red",
- border: "1px solid",
- padding: "2px"
- }
- },
- ...
- });
- </script>
-
-would cause the preview mathematics to be shown in red, with a border
-and 2px of padding between the border and the preview text.
-
-
-MATHJAX WITH MATHML:
-
-In addition to the TeX input processor, MathJax includes a MathML input
-processor, so that you can specify your mathematics using MathML rather
-than TeX, if you wish. (The input and output processors are called "jax".)
-As with the TeX input jax, there is a pre-processor that looks for MathML
-in your web page (XHTML or HTML) and converts it to the form needed by
-MathJax. The preprocessor is called "mml2jax.js", and the associated input
-jax is "input/MathML". You can request these in your
-MathJax/config/MathJax.js file, or in line, as in the following example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- extensions: ["mml2jax.js"],
- jax: ["input/MathML","output/HTML-CSS"]
- });
- </script>
-
-When it is used, the mml2jax preprocessor will scan your page for <math>
-tags and insert them into the <script> tags that MathJax needs to identify
-the mathematics on the page. This works in both HTML and XHTML pages, and
-with browsers that don't have native support for MathML. While MathJax is
-not as fast as a native implementation of MathML, it does bring MathML to
-all major browsers. (It is even possible to set up a GreaseMonkey-style
-script to have MathJax automatically process any MathML on any page you
-visit, so MathJax can be used to make MathML available even when the page
-author has not specifically loaded MathJax. There are some caveats for
-this, however, so such a script is not currently being supplied.)
-
-For MathML that is handled via the pre-processor, you should not use the
-MathML named entities, but rather use the numeric entities like √ or
-unicode characters embedded in the page itself. The reason is that the
-entities are replaced by the browser before MathJax runs, and some browsers
-report errors for unknown entities; for browsers that are not MathML-aware,
-that will cause errors to be displayed for the MathML entities. While that
-might not occur in the browser you are using to compose your pages, it can
-happen with other browsers, so you should avoid the named entities whenever
-possible. If you must use named entities, you may need to declare them in
-the DOCTYPE declaration by hand.
-
-
-MATHML WITH NO PREPROCESSOR:
-
-Just as there is a way to enter TeX code without a preprocessor, MathJax
-provides a means of specifying MathML without a preprocessor. In this
-case, you enclose your complete <math> substree within a
-<script type="math/mml">...</script> tag. E.g.:
-
- <script type="math/mml">
- <math display="block">
- <mi>x</mi><mo>=</mo><mn>1</mn>
- </math>
- </script>
-
-Note that the <math> tag's display attribute controls whether the node is
-typeset in-line or as a displayed equation. The same caveats concerning
-spacing apply to MathML as to TeX, so see the section on MATHJAX WITH NO
-PREPROCESSOR above for how to deal with an Internet Explorer bug that
-requires special treatment.
-
-
-MATHML OUTPUT:
-
-In addition to the HTML-CSS output jax, MathJax provides a native-MathML
-output jax that generates MathML to display your mathematics rather than
-complicated HTML with CSS. For browsers that support MathML, this can be
-considerably faster, plus it provides for accessibility and the ability to
-cut and paste mathematics that MathML offers. MathML output is available
-for both TeX input and MathML input, so MathJax can act as a TeX-to-MathML
-converter right in the browser.
-
-To use the native MathML output jax, specify "output/NativeMML" rather than
-"output/HTML-CSS" in the jax array of your MathJax.Hub.Config() call (or in
-MathJax/config/MathJax.js). For example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/NativeMML"]
- });
- </script>
-
-Note that this will only work for those browsers that support MathML
-natively, so you should be careful to know your audience if you use this
-output jax. Also, note that the MathML output jax produces MathML3.0, not
-2.0, and so some browsers may not be able to handle all the constructs that
-MathJax will produce. Although it is slower, the HTML-CSS output jax is
-more reliable than the NativeMML output jax, at least from a cross-browser
-standpoint, particularly when the TeX input jax is used.
-
-Because of the speed of the native MathML rendering, some users may prefer
-to use that than the HTML-CSS output jax, but you may not want to prevent
-those who don't have native MathML support from viewing your pages, so you
-may want to select between NativeMML and HTML-CSS automatically, depending
-on the capabilities of the browser. MathJax provides a configuration file
-that does just that. To use it, include "MMLorHTML.js" in the config array
-of your MathJax.Hub.Config() call. If you use this, be sure NOT to include
-an output jax in your jax array, as MMLorHTML.js will fill that in for you.
-For example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- config: ["MMLorHTML.js"],
- extensions: ["tex2jax.js"],
- jax: ["input/TeX"]
- });
- </script>
-
-In the case where both NativeMML and HTML-CSS are supported, the MMLorHTML
-configuration file will choose HTML-CSS, even though it is slower; this is
-because it is more reliable, since MathJax produces MathML3.0 and not all
-browsers can display that. This is configurable, however, and you may want
-to change the preference to NativeMML instead, especially if your input
-language is MathML already. This can be done using the MMLorHTML section
-of your configuration:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- config: ["MMLorHTML.js"],
- extensions: ["tex2jax.js"],
- jax: ["input/TeX"],
- MMLorHTML: {prefer: "MML"}
- });
- </script>
-
-Note, however, that not all users will have your own preferences about what
-"looks best" or "performs best", so while you may value speed above all
-else, others may value readability or reliability more. Also, remember
-that browsers other than the one you are using (or the same browser on
-other operating systems) may not support native MathML as well as yours
-does. For example, Opera does handle simple MathML fairly well, but breaks
-down quickly for some more complex equations, and while you may have
-Firefox all set up for MathML, others may not have installed the needed
-fonts, and will be unhappy to get a warning dialog box whenever they visit
-your web page. So think carefully about the assumptions you are making on
-behalf of your readers. At some point, MathJax may include a control panel
-that will allow users to select preferences on their own, but that is not
-available currently.
-
-
-CONVERSION FROM JSMATH:
-
-If you are currently using jsMath and would like to switch to MathJax, the
-transition should be fairly straight-forward. If you are using jsMath's
-easy/load.js, then you should simply switch the line that loads
-jsMath/easy/load.js to
-
- <script src="path-to-mathjax/MathJax/MathJax.js"></script>
-
-where "path-to-mathjax" is the path to the MathJax folder on your server.
-This uses the MathJax/config/MathJax.js file to configure MathJax, similar
-to easy/load.js, and you can read the comments in that file for details.
-Be sure to include "tex2jax.js" in your extensions array if you want the
-TeX preprocessor to run (comparable to the tex2math plugin for jsMath).
-
-If you did not use the tex2math plugin for jsMath and instead inserted your
-own <span class="math">...</span> and <div class="math">...</div> tags with
-class="math", then you need to do a little more work for MathJax. These
-need to be replaced by <script type="math/tex">...</script> and <script
-type="math/tex; mode=display">...</script> tags. See also the section
-MATHJAX WITHOUT A PREPROCESSOR above for some caveats concerning an
-Internet Explorer bug that you will need to be aware of.
-
-If you are using a preprocessor of your own to write your HTML files, it
-should be a simple matter of changing over the inserted tags to the ones
-that MathJax needs. If you have existing HTML pages, however, and don't
-want to (or can't) reprocess them, then you may want to use the jsMath2jax
-preprocessor, which will first convert the span and div tags to script tags
-before running MathJax. To do so, include "jsMath2jax.js" in your
-extensions array, as in the following example:
-
- <script type="text/javascript" src="/MathJax/MathJax.js">
- MathJax.Hub.Config({
- extensions: ["jsMath2jax.js"],
- jax: ["input/TeX", "output/HTML-CSS"]
- });
- </script>
-
-You should remove all the jsMath calls, like jsMath.Process(), or script
-tags that load jsMath extensions. Only the single script tag that loads
-MathJax should be needed.
-
-If you have created pages with dynamic mathematics that is processed by
-jsMath on the fly, that is handled somewhat differently with MathJax.
-MathJax has a richer API for dealing with mathematics on the page, but the
-documentation is not yet ready. There have been discussions in the MathJax
-on-line forums that deal with this topic, so your best bet right now is to
-read them.
+ http://www.mathjax.org/docs/
COMMUNITY: