]> git.mxchange.org Git - friendica-addons.git/blob - mathjax/asset/config/default.js
Merge pull request #1268 from MrPetovan/bug/fatal-errors
[friendica-addons.git] / mathjax / asset / config / default.js
1 /* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
2 /* vim: set ts=2 et sw=2 tw=80: */
3
4 /*************************************************************
5  *
6  *  MathJax/config/default.js
7  *
8  *  This configuration file is loaded when you load MathJax
9  *  via <script src="MathJax.js?config=default"></script>
10  *
11  *  Use it to customize the MathJax settings.  See comments below.
12  *
13  *  ---------------------------------------------------------------------
14  *  
15  *  Copyright (c) 2009-2018 The MathJax Consortium
16  * 
17  *  Licensed under the Apache License, Version 2.0 (the "License");
18  *  you may not use this file except in compliance with the License.
19  *  You may obtain a copy of the License at
20  * 
21  *      http://www.apache.org/licenses/LICENSE-2.0
22  * 
23  *  Unless required by applicable law or agreed to in writing, software
24  *  distributed under the License is distributed on an "AS IS" BASIS,
25  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26  *  See the License for the specific language governing permissions and
27  *  limitations under the License.
28  */
29
30
31 /*
32  *  This file lists most, but not all, of the options that can be set for
33  *  MathJax and its various components.  Some additional options are
34  *  available, however, and are listed in the various links at:
35  *  
36  *  http://www.mathjax.org/resources/docs/?configuration.html#configuration-options-by-component
37  *
38  *  You can add these to the configuration object below if you 
39  *  want to change them from their default values.
40  */
41
42 MathJax.Hub.Config({
43
44   //
45   //  A comma-separated list of configuration files to load
46   //  when MathJax starts up.  E.g., to define local macros, etc.
47   //  The default directory is the MathJax/config directory.
48   //  
49   //  Example:    config: ["local/local.js"],
50   //  Example:    config: ["local/local.js","MMLtoHTML.js"],
51   //
52   config: [],
53   
54   //
55   //  A comma-separated list of CSS stylesheet files to be loaded
56   //  when MathJax starts up.  The default directory is the
57   //  MathJax/config directory.
58   // 
59   //  Example:    styleSheets: ["MathJax.css"],
60   //
61   styleSheets: [],
62   
63   //
64   //  Styles to be defined dynamically at startup time.
65   //  
66   //  Example:
67   //      styles: {
68   //        ".MathJax_Preview": {
69   //          color: "#888"
70   //        }
71   //      },
72   //
73   styles: {},
74   
75   //
76   //  A comma-separated list of input and output jax to initialize at startup.
77   //  Their main code is loaded only when they are actually used, so it is not
78   //  inefficient to include jax that may not actually be used on the page.  These
79   //  are found in the MathJax/jax directory.  The choices include
80   //  
81   //      input/TeX
82   //      input/MathML
83   //      input/AsciiMath
84   //      
85   //      output/HTML-CSS
86   //      output/NativeMML
87   //      output/SVG
88   // 
89   //   If you change the input jax, you may need to include the appropriate
90   //   preprocessor in the extensions array below.
91   //  
92   jax: ["input/TeX", "output/HTML-CSS"],
93   
94   //
95   //  A comma-separated list of extensions to load at startup.  The default
96   //  directory is MathJax/extensions.
97   //  
98   //  Example:    extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js"],
99   //  
100   //  You may wish to include "mml2jax.js" if you are using "input/MathML" in the
101   //  jax array above, and "asciimath2jax.js" if you using "input/AsciiMath".
102   //  Include "jsmath2jax.js" if you are converting from using jsMath to MathJax.
103   //
104   extensions: ["tex2jax.js"],
105   
106   //
107   //  Patterns to remove from before and after math script tags.  If you are not
108   //  using one of the preprocessors (e.g., tex2jax), you need to insert something
109   //  extra into your HTML file in order to avoid a bug in Internet Explorer.  IE
110   //  removes spaces from the DOM that it thinks are redundent, and since a SCRIPT
111   //  tag usually doesn't add content to the page, if there is a space before and after
112   //  a MathJax SCRIPT tag, IE will remove the first space.  When MathJax inserts
113   //  the typeset mathematics, this means there will be no space before it and the
114   //  preceding text.  In order to avoid this, you should include some "guard characters"
115   //  before or after the math SCRIPT tag; define the patterns you want to use below.
116   //  Note that these are used as regular expressions, so you will need to quote
117   //  special characters.  Furthermore, since they are javascript strings, you must
118   //  quote javascript special characters as well.  So to obtain a backslash, you must
119   //  use \\ (doubled for javascript).  For example, "\\[" is the pattern \[ in the
120   //  regular expression.  That means that if you want an actual backslash in your
121   //  guard characters, you need to use "\\\\" in order to get \\ in the regular
122   //  expression, and \ in the actual text.  If both preJax and postJax are defined,
123   //  both must be present in order to be  removed.
124   //
125   //  See also the preRemoveClass comments below.
126   //  
127   //  Example:
128   //      preJax: "\\\\\\\\",  // makes a double backslash the preJax text
129   //    or
130   //      preJax:  "\\[\\[", // jax scripts must be enclosed in double brackets
131   //      postJax: "\\]\\]",
132   //
133   preJax: null,
134   postJax: null,
135   
136   //
137   //  The CSS class for a math preview to be removed preceding a MathJax
138   //  SCRIPT tag.  If the tag just before the MathJax SCRIPT tag is of this
139   //  class, its contents are removed when MathJax processes the SCRIPT
140   //  tag.  This allows you to include a math preview in a form that will
141   //  be displayed prior to MathJax performing its typesetting.  It also
142   //  avoids the Internet Explorer space-removal bug, and can be used in
143   //  place of preJax and postJax if that is more convenient.
144   //  
145   //  For example
146   //  
147   //      <span class="MathJax_Preview">[math]</span><script type="math/tex">...</script>
148   //
149   //  would display "[math]" in place of the math until MathJax is able to typeset it.
150   //
151   preRemoveClass: "MathJax_Preview",
152   
153   //
154   //  This value controls whether the "Processing Math: nn%" message are displayed
155   //  in the lower left-hand corner.  Set to "false" to prevent those messages (though
156   //  file loading and other messages will still be shown).
157   //
158   showProcessingMessages: true,
159   
160   //
161   //  This value controls the verbosity of the messages in the lower left-hand corner.
162   //  Set it to "none" to eliminate all messages, or set it to "simple" to show
163   //  "Loading..." and "Processing..." rather than showing the full file name and the
164   //  percentage of the mathematics processed.
165   //
166   messageStyle: "normal",
167   
168   //
169   //  These two parameters control the alignment and shifting of displayed equations.
170   //  The first can be "left", "center", or "right", and determines the alignment of
171   //  displayed equations.  When the alignment is not "center", the second determines
172   //  an indentation from the left or right side for the displayed equations.  When
173   //  the alignment is "center", the indent allows you to shift the center to the right
174   //  or left (negative is left).
175   //  
176   displayAlign: "center",
177   displayIndent: "0",
178   
179   //
180   //  Normally MathJax will perform its starup commands (loading of
181   //  configuration, styles, jax, and so on) as soon as it can.  If you
182   //  expect to be doing additional configuration on the page, however, you
183   //  may want to have it wait until the page's onload hander is called.  If so,
184   //  set this to "onload".
185   //
186   delayStartupUntil: "none",
187
188   //
189   //  Normally MathJax will typeset the mathematics on the page as soon as
190   //  the page is loaded.  If you want to delay that process, in which case
191   //  you will need to call MathJax.Hub.Typeset() yourself by hand, set
192   //  this value to true.
193   //
194   skipStartupTypeset: false,
195   
196   //
197   //  A list of element ID's that are the ones to process for mathematics
198   //  when any of the Hub typesetting calls (Typeset, Process, Update, etc)
199   //  are called with no element specified.  This lets you restrict the
200   //  processing to particular containers rather than scanning the entire
201   //  document for mathematics.  If none are supplied, the entire document
202   //  is processed.
203   //
204   elements: [],
205
206   //
207   //  Since typesetting usually changes the vertical dimensions of the
208   //  page, if the URL contains an anchor position you may no longer be
209   //  positioned at the correct position on the page, so MathJax can
210   //  reposition to that location after it completes its initial
211   //  typesetting of the page.  This value controls whether MathJax will
212   //  reposition the browser to the #hash location from the page URL after
213   //  typesetting for the page.
214   //  
215   positionToHash: true,
216   
217   //
218   //  These control whether to attach the MathJax contextual menu to the
219   //  expressions typeset by MathJax.  Since the code for handling
220   //  MathPlayer in Internet Explorer is somewhat delicate, it is
221   //  controlled separately via (showMathMenuMSIE).  The latter is now
222   //  deprecated in favor of the MathJax contextual menu settings for
223   //  MathPlayer.
224   //  
225   //  These values used to be listed in the separate output jax, but
226   //  have been moved to this more central location since they are shared
227   //  by all output jax.
228   //
229   showMathMenu: true,
230   showMathMenuMSIE: true,
231
232
233   //
234   //  The default settings for the MathJax contextual menu (overridden by
235   //  the MathJax cookie when users change the menu settings).
236   //  
237   menuSettings: {
238     zoom: "None",        //  when to do MathZoom
239     CTRL: false,         //    require CTRL for MathZoom?
240     ALT: false,          //    require Alt or Option?
241     CMD: false,          //    require CMD?
242     Shift: false,        //    require Shift?
243     discoverable: false, //  make math menu discoverable on hover?
244     zscale: "200%",      //  the scaling factor for MathZoom
245     renderer: null,      //  set when Jax are loaded
246     font: "Auto",        //  what font HTML-CSS should use
247     context: "MathJax",  //  or "Browser" for pass-through to browser menu
248     locale: null,        //  the language to use for messages
249     mpContext: false,    //  true means pass menu events to MathPlayer in IE
250     mpMouse: false,      //  true means pass mouse events to MathPlayer in IE
251     texHints: true,      //  include class names for TeXAtom elements
252     FastPreview: null,   //  use PreviewHTML output as preview?
253     assistiveMML: null,  //  include hidden MathML for screen readers?
254     inTabOrder: true,    //  set to true if math elements should be included in the tabindex
255     semantics: false     //  add semantics tag with original form in MathML output
256   },
257   
258   //
259   //  The message and style for when there is a processing error handling 
260   //  the mathematics (something has gone wrong with the input or output
261   //  jax that prevents it from operating properly).
262   //
263   errorSettings: {
264     message: ["[",["MathProcessingError","Math Processing Error"],"]"],
265     style: {color: "#CC0000", "font-style":"italic"}  // style for message
266   },
267
268   
269   //============================================================================
270   //
271   //  These parameters control the tex2jax preprocessor (when you have included
272   //  "tex2jax.js" in the extensions list above).
273   //
274   tex2jax: {
275
276     //
277     //  The delimiters that surround in-line math expressions.  The first in each
278     //  pair is the initial delimiter and the second is the terminal delimiter.
279     //  Comment out any that you don't want, but be sure there is no extra
280     //  comma at the end of the last item in the list -- some browsers won't
281     //  be able to handle that.
282     //
283     inlineMath: [
284 //    ['$','$'],      // uncomment this for standard TeX math delimiters
285       ['\\(','\\)']
286     ],
287
288     //
289     //  The delimiters that surround displayed math expressions.  The first in each
290     //  pair is the initial delimiter and the second is the terminal delimiter.
291     //  Comment out any that you don't want, but be sure there is no extra
292     //  comma at the end of the last item in the list -- some browsers won't
293     //  be able to handle that.
294     //
295     displayMath: [
296       ['$$','$$'],
297       ['\\[','\\]']
298     ],
299     
300     //
301     //  This array lists the names of the tags whose contents should not be
302     //  processed by tex2jax (other than to look for ignore/process classes
303     //  as listed below).  You can add to (or remove from) this list to prevent
304     //  MathJax from processing mathematics in specific contexts.
305     //
306     skipTags: ["script","noscript","style","textarea","pre","code","annotation","annotation-xml"],
307
308     //
309     //  This is the class name used to mark elements whose contents should
310     //  not be processed by tex2jax (other than to look for the
311     //  processClass pattern below).  Note that this is a regular
312     //  expression, and so you need to be sure to quote any regexp special
313     //  characters.  The pattern is automatically preceded by '(^| )(' and
314     //  followed by ')( |$)', so your pattern will have to match full words
315     //  in the class name.  Assigning an element this class name will
316     //  prevent `tex2jax` from processing its contents.
317     //
318     ignoreClass: "tex2jax_ignore",
319
320     //
321     //  This is the class name used to mark elements whose contents SHOULD
322     //  be processed by tex2jax.  This is used to turn on processing within
323     //  tags that have been marked as ignored or skipped above.  Note that
324     //  this is a regular expression, and so you need to be sure to quote
325     //  any regexp special characters.  The pattern is automatically
326     //  preceded by '(^| )(' and followed by ')( |$)', so your pattern
327     //  will have to match full words in the class name.  Use this to
328     //  restart processing within an element that has been marked as
329     //  ignored above.
330     //
331     processClass: "tex2jax_process",
332     
333     //
334     //  Set to "true" to allow \$ to produce a dollar without starting in-line
335     //  math mode.  If you uncomment the ['$','$'] line above, you should change
336     //  this to true so that you can insert plain dollar signs into your documents
337     //
338     processEscapes: false,
339
340     //
341     //  Controls whether tex2jax processes LaTeX environments outside of math
342     //  mode.  Set to "false" to prevent processing of environments except within
343     //  math mode.
344     //
345     processEnvironments: true,
346
347     //
348     //  Controls whether tex2jax processes \ref{...} commands outside
349     //  of math mode.  Set to "false" to prevent processing of \ref
350     //  except within math mode.
351     //  
352     processRefs: true,
353
354     //
355     //  Controls whether tex2jax inserts MathJax_Preview spans to make a
356     //  preview available, and what preview to use, when it locates in-line
357     //  and display mathetics on the page.  The default is "TeX", which
358     //  means use the TeX code as the preview (until it is processed by
359     //  MathJax).  Set to "none" to prevent the previews from being
360     //  inserted (the math will simply disappear until it is typeset).  Set
361     //  to an array containing the description of an HTML snippet in order
362     //  to use the same preview for all equations on the page (e.g., you
363     //  could have it say "[math]" or load an image).
364     //  
365     //  E.g.,     preview: ["[math]"],
366     //  or        preview: [["img",{src: "http://myserver.com/images/mypic.jpg"}]]
367     //  
368     preview: "TeX"
369     
370   },
371   
372   //============================================================================
373   //
374   //  These parameters control the asciimath2jax preprocessor (when you have included
375   //  "asciimath2jax.js" in the extensions list above).
376   //
377   asciimath2jax: {
378
379     //
380     //  The delimiters that surround asciimath expressions.  The first in each
381     //  pair is the initial delimiter and the second is the terminal delimiter.
382     //
383     delimiters: [
384       ['`','`']
385     ],
386
387     //
388     //  This array lists the names of the tags whose contents should not be
389     //  processed by asciimath2jax (other than to look for ignore/process classes
390     //  as listed below).  You can add to (or remove from) this list to prevent
391     //  MathJax from processing mathematics in specific contexts.
392     //
393     skipTags: ["script","noscript","style","textarea","pre","code","annotation","annotation-xml"],
394
395     //
396     //  This is the class name used to mark elements whose contents should
397     //  not be processed by asciimath2jax (other than to look for the
398     //  processClass pattern below).  Note that this is a regular
399     //  expression, and so you need to be sure to quote any regexp special
400     //  characters.  The pattern is automatically preceded by '(^| )(' and
401     //  followed by ')( |$)', so your pattern will have to match full words
402     //  in the class name.  Assigning an element this class name will
403     //  prevent `asciimath2jax` from processing its contents.
404     //
405     ignoreClass: "asciimath2jax_ignore",
406
407     //
408     //  This is the class name used to mark elements whose contents SHOULD
409     //  be processed by asciimath2jax.  This is used to turn on processing
410     //  within tags that have been marked as ignored or skipped above.
411     //  Note that this is a regular expression, and so you need to be sure
412     //  to quote any regexp special characters.  The pattern is
413     //  automatically preceded by '(^| )(' and followed by ')( |$)', so
414     //  your pattern will have to match full words in the class name.  Use
415     //  this to restart processing within an element that has been marked
416     //  as ignored above.
417     //
418     processClass: "asciimath2jax_process",
419     
420     //  Controls whether asciimath2jax inserts MathJax_Preview spans to make a
421     //  preview available, and what preview to use, when it locates in-line
422     //  and display mathetics on the page.  The default is "AsciiMath", which
423     //  means use the AsciiMath code as the preview (until it is processed by
424     //  MathJax).  Set to "none" to prevent the previews from being
425     //  inserted (the math will simply disappear until it is typeset).  Set
426     //  to an array containing the description of an HTML snippet in order
427     //  to use the same preview for all equations on the page (e.g., you
428     //  could have it say "[math]" or load an image).
429     //  
430     //  E.g.,     preview: ["[math]"],
431     //  or        preview: [["img",{src: "http://myserver.com/images/mypic.jpg"}]]
432     //  
433     preview: "AsciiMath"
434     
435   },
436   
437   //============================================================================
438   //
439   //  These parameters control the mml2jax preprocessor (when you have included
440   //  "mml2jax.js" in the extensions list above).
441   //
442   mml2jax: {
443     
444     //
445     //  Controls whether mml2jax inserts MathJax_Preview spans to make a
446     //  preview available, and what preview to use, when it locates
447     //  mathematics on the page.  The default is "mathml" which means use
448     //  the <math> tag as the preview (until it is processed by MathJax).
449     //  Set to "alttext", to use the  <math> tag's alttext attribute as the
450     //  preview, if the tag has one.  Set to "none" to
451     //  prevent the previews from being inserted (the math will simply
452     //  disappear until it is typeset). Set to "altimg" to use an image
453     //  described by the altimg* attributes of the <math> element.
454     //  Set to an array containing the
455     //  description of an HTML snippet in order to use the same preview for
456     //  all equations on the page (e.g., you could have it say "[math]" or
457     //  load an image).
458     //  
459     //  E.g.,     preview: ["[math]"],
460     //  or        preview: [["img",{src: "http://myserver.com/images/mypic.jpg"}]]
461     //  
462     preview: "mathml"
463     
464   },
465   
466   //============================================================================
467   //
468   //  These parameters control the jsMath2jax preprocessor (when you have included
469   //  "jsMath2jax.js" in the extensions list above).
470   //
471   jsMath2jax: {
472     
473     //
474     //  Controls whether jsMath2jax inserts MathJax_Preview spans to make a
475     //  preview available, and what preview to use, when it locates
476     //  mathematics on the page.  The default is "TeX", which means use the
477     //  TeX code as the preview (until it is processed by MathJax).  Set to
478     //  "none" to prevent the previews from being inserted (the math will
479     //  simply disappear until it is typeset).  Set to an array containing
480     //  the description of an HTML snippet in order to use the same preview
481     //  for all equations on the page (e.g., you could have it say "[math]"
482     //  or load an image).
483     //  
484     //  E.g.,     preview: ["[math]"],
485     //  or        preview: [["img",{src: "http://myserver.com/images/mypic.jpg"}]]
486     //  
487     preview: "TeX"
488     
489   },
490
491   //============================================================================
492   //
493   //  These parameters control the TeX input jax.
494   //
495   TeX: {
496
497     //
498     //  This specifies the side on which \tag{} macros will place the tags.
499     //  Set to "left" to place on the left-hand side.
500     //
501     TagSide: "right",
502     
503     //
504     //  This is the amound of indentation (from right or left) for the tags.
505     //
506     TagIndent: "0.8em",
507     
508     //
509     //  This is the width to use for the multline environment
510     //
511     MultLineWidth: "85%",
512     
513     //
514     //  List of macros to define.  These are of the form
515     //      name: value
516     //  where 'value' is the replacement text for the macro \name.
517     //  The 'value' can also be [value,n] where 'value' is the replacement
518     //  text and 'n' is the number of parameters for the macro.
519     //  Note that backslashes must be doubled in the replacement string.
520     //  
521     //  E.g.,
522     //  
523     //      Macros: {
524     //        RR: '{\\bf R}',
525     //        bold: ['{\\bf #1}', 1]
526     //      }
527     //
528     Macros: {},
529     
530     //
531     //  Equation numbering parameters.
532     //  
533     equationNumbers: {
534       autoNumber: "none",  // "AMS" for standard AMS environment numbering,
535                            //  or "all" to number all displayed equations
536 //    formatNumber: function (n) {return n},                // format for equation number n
537 //    formatTag:    function (n) {return '('+n+')'},        // format for \tag and \eqref
538 //    formatID:     function (n) {return 'mjx-eqn-'+String(n).replace(/\s/g,"_")},
539 //                                                          // element ID to use for reference
540 //    formatURL:    function (id,base) {return base+'#'+encodeURIComponent(id)},
541 //                                                          // URL to use for references
542       useLabelIds: true    // make element ID's use \label name rather than equation number
543     },
544
545     //
546     //  Controls the TeX/noErrors extension
547     //
548     noErrors: {
549       disabled: false,               // set to true to return to original error messages
550       multiLine: true,               // false to not include original line breaks
551       inlineDelimiters: ["",""],     // or use ["$","$"] or ["\\(","\\)"] to put back delimiters
552       style: {
553         "font-size":   "90%",
554         "text-align":  "left",
555         "color":       "black",
556         "padding":     "1px 3px",
557         "border":      "1px solid"
558       }
559     },
560
561     //
562     //  Controls the TeX/noUndefined extension
563     //
564     noUndefined: {
565       disabled: false,      // set to true to return to original error messages
566       attributes: {         // attributes to set for the undefined control sequence
567         mathcolor: "red"
568       }
569     },
570   
571     //
572     //  Controls the TeX/unicode extension
573     unicode: {
574       fonts: "STIXGeneral,'Arial Unicode MS'"  // the default font list for unknown characters
575     }
576     
577   },
578
579   //============================================================================
580   //
581   //  These parameters control the AsciiMath input jax.
582   //
583   AsciiMath: {
584     //
585     //  Determines whether the unicode positions for phi and varphi are
586     //  to be swapped or not.  (Unicode originally had these reversed, and
587     //  many fonts have them reversed as well.)  When set to true, phi
588     //  and varphi will correspond to the LaTeX macros of the same name.
589     //
590     fixphi: true,
591     
592     //
593     //  Determines whether the MathML should be marked so that the HTML-CSS
594     //  and SVG output jax will use MathML spacing rules rather than TeX
595     //  spacing rules.  Since AsciiMath was designed for MathML output, the
596     //  MathML rules are used by default.
597     //
598     useMathMLspacing: true,
599     
600     //
601     //  Determines whether limits are placed above and below operators,
602     //  or next to them.  (AsciiMath doesn't have separate in-line and
603     //  display modes like TeX and MathML do, so this is the only control
604     //  you have over its output)
605     //
606     displaystyle: true,
607     
608     //
609     //  The character to use for decimal places when scanning for a number.
610     //  If you change it to ",", beware of things like "(1,2)" which would need
611     //  to be changed to "(1, 2)" to be parsed correctly.
612     // 
613     decimal: "."
614   },
615   
616   //============================================================================
617   //
618   //  These parameters control the MathML input jax.
619   //
620   MathML: {
621     //
622     //  This specifies whether to use TeX spacing or MathML spacing when the
623     //  HTML-CSS output jax is used.
624     //
625     useMathMLspacing: false
626   },
627   
628   //============================================================================
629   //
630   //  These parameters control the HTML-CSS output jax.
631   //
632   "HTML-CSS": {
633     
634     //
635     //  This controls the global scaling of mathematics as compared to the 
636     //  surrounding text.  Values between 100 and 133 are usually good choices.
637     //
638     scale: 100,
639     
640     //
641     //  Don't allow the matching of math text to surrounding text to use a scaling
642     //  factor smaller than this.
643     //
644     minScaleAdjust: 50,
645     
646     //
647     //  This is a list of the fonts to look for on a user's computer in
648     //  preference to using MathJax's web-based fonts.  These must
649     //  correspond to directories available in the  jax/output/HTML-CSS/fonts
650     //  directory, where MathJax stores data about the characters available
651     //  in the fonts.  Set this to ["TeX"], for example, to prevent the
652     //  use of the STIX fonts, or set it to an empty list, [], if
653     //  you want to force MathJax to use web-based or image fonts.
654     //
655     availableFonts: ["STIX","TeX"],
656     
657     //
658     //  This is the preferred font to use when more than one of those
659     //  listed above is available.
660     //
661     preferredFont: "TeX",
662     
663     //
664     //  This is the web-based font to use when none of the fonts listed
665     //  above are available on the user's computer.  Note that currently
666     //  only the TeX font is available in a web-based form.  Set this to
667     //  
668     //      webFont: null,
669     //
670     //  if you want to prevent the use of web-based fonts.
671     //
672     webFont: "TeX",
673     
674     //
675     //  This is the font to use for image fallback mode (when none of the
676     //  fonts listed above are available and the browser doesn't support
677     //  web-fonts via the @font-face CSS directive).  Note that currently
678     //  only the TeX font is available as an image font.  Set this to
679     //
680     //      imageFont: null,
681     //  
682     //  if you want to prevent the use of image fonts (e.g., you have not
683     //  installed the image fonts on your server).  In this case, only
684     //  browsers that support web-based fonts will be able to view your pages
685     //  without having the fonts installed on the client computer.  The browsers
686     //  that support web-based fonts include: IE6 and later, Chrome, Safari3.1
687     //  and above, Firefox3.5 and later, and Opera10 and later.  Note that
688     //  Firefox3.0 is NOT on this list, so without image fonts, FF3.0 users
689     //  will be required to to download and install either the STIX fonts or the
690     //  MathJax TeX fonts.
691     //
692     imageFont: "TeX",
693     
694     //
695     //  This is the font-family CSS value used for characters that are not
696     //  in the selected font (e.g., for web-based fonts, this is where to
697     //  look for characters not included in the MathJax_* fonts).  IE will
698     //  stop looking after the first font that exists on the system (even
699     //  if it doesn't contain the needed character), so order these carefully.
700     //  
701     undefinedFamily: "STIXGeneral,'Arial Unicode MS',serif",
702
703     //
704     //  This setting controls whether <mtext> elements will be typeset
705     //  using the math fonts or the font of the surrounding text.  When
706     //  false, the mathvariant="normal" font will be used; when true, 
707     //  the font will be inherited from the surrounding paragraph.
708     //  
709     mtextFontInherit: false,
710
711     //
712     //  These values control how "chunky" the display of mathematical
713     //  expressions will be.
714     //  
715     //  EqnChunk is the number of equations that will be typeset before
716     //  they appear on screen.  Larger values make for less visual flicker
717     //  as the equations are drawn, but also mean longer delays before the
718     //  reader sees anything.
719     //  
720     //  EqChunkFactor is the factor by which the EqnChunk will grow after each
721     //  chunk is displayed.
722     //  
723     //  EqChunkDelay is the time (in milliseconds) to delay between chunks
724     //  (to allow the browser to respond to other user interaction).
725     //  
726     //  Set EqnChunk to 1, EqnChunkFactor to 1, and EqnChunkDelay to 10 to get
727     //  the behavior from MathJax v1.1 and below.
728     //
729     EqnChunk: 50,
730     EqnChunkFactor: 1.5,
731     EqnChunkDelay: 100,
732
733     //
734     //  This option indicates whether MathJax should try to correct the
735     //  x-height of equations to match the size of the surrounding text.
736     //
737     matchFontHeight: true,
738
739     //
740     //  When true, MathJax will not measure the widths or heights of the
741     //  subexpressions as it creates its output, but instead will rely on
742     //  its internal calculations based on the bounding boxes of the
743     //  characters it uses, and will only take measurements when it
744     //  absolutely has to.  Since measurements cause display reflows, they
745     //  slows down MathJax considerably, so without them MathJax runs
746     //  faster, but can produce slightly less accurate character placements,
747     //  especially in width fractions or roots.
748     //
749     noReflows: true,
750
751     
752     //
753     //  These settings control automatic line breaking.  It is off by
754     //  default, so only explicit line breaks are performed (via
755     //  linebreak="newline" attributes on <mo> and <mspace> elements).  To
756     //  perform automatic line breaking on line expressions, set
757     //  'automatic' to 'true' below.  The line breaks will be applied via a
758     //  penalty-based heuristic, which does well, but isn't perfect.  You
759     //  might need to use linebreak="goodbreak" or linebreak="badbreak" by
760     //  hand in order to get better effects.  It is also possible to modify
761     //  the penalty values; contact the MathJax user's forum for details.
762     //  
763     linebreaks: {
764       
765       //
766       //  This controls the automatic breaking of expressions:
767       //    when false, only process linebreak="newline",
768       //    when true, line breaks are inserted automatically in long expressions.
769       //
770       automatic: false,
771
772       //
773       //  This controls how wide the lines of mathematics can be
774       //  
775       //  Use an explicit width like "30em" for a fixed width.
776       //  Use "container" to compute the size from the containing element.
777       //  Use "nn% container" for a portion of the container.
778       //  Use "nn%" for a portion of the window size.
779       //  
780       //  The container-based widths may be slower, and may not produce the
781       //  expected results if the layout width changes due to the removal
782       //  of previews or inclusion of mathematics during typesetting.
783       //  
784       width: "container"
785     },
786
787     //
788     //  This allows you to define or modify the styles used to display
789     //  various math elements created by MathJax.
790     //  
791     //  Example:
792     //      styles: {
793     //        ".MathJax .merror": {
794     //          color:   "#CC0000",
795     //          border:  "1px solid #CC0000"
796     //        }
797     //      }
798     //
799     styles: {},
800     
801     //
802     //  Configuration for <maction> tooltips
803     //    (see also the #MathJax_Tooltip CSS in MathJax/jax/output/HTML-CSS/config.js,
804     //     which can be overridden using the styles values above).
805     //
806     tooltip: {
807       delayPost: 600,          // milliseconds delay before tooltip is posted after mouseover
808       delayClear: 600,         // milliseconds delay before tooltip is cleared after mouseout
809       offsetX: 10, offsetY: 5  // pixels to offset tooltip from mouse position
810     }
811   },
812   
813   //============================================================================
814   //
815   //  These parameters control the NativeMML output jax.
816   //
817   NativeMML: {
818
819     //
820     //  This controls the global scaling of mathematics as compared to the 
821     //  surrounding text.  Values between 100 and 133 are usually good choices.
822     //
823     scale: 100,
824
825     //
826     //  Don't allow the matching of math text to surrounding text to use a scaling
827     //  factor smaller than this.
828     //
829     minScaleAdjust: 50,
830     
831     //  This option indicates whether MathJax should try to correct the
832     //  x-height of equations to match the size of the surrounding text.
833     matchFontHeight: true,
834
835     //
836     //  This allows you to define or modify the styles used to display
837     //  various math elements created by MathJax.
838     //  
839     //  Example:
840     //      styles: {
841     //        ".MathJax_MathML": {
842     //          color: "red"         //    MathML is in red
843     //        }
844     //      }
845     //
846     styles: {}
847   },
848   
849   //============================================================================
850   //
851   //  These parameters control the SVG output jax.
852   //
853   "SVG": {
854     
855     //
856     //  This controls the global scaling of mathematics as compared to the 
857     //  surrounding text.  Values between 100 and 133 are usually good choices.
858     //
859     scale: 100,
860     
861     //
862     //  Don't allow the matching of math text to surrounding text to use a scaling
863     //  factor smaller than this.
864     //
865     minScaleAdjust: 50,
866     
867     //
868     //  This specifies the font to use for SVG output (currently the only
869     //  one available)
870     //
871     font: "TeX",
872     
873     //
874     //  This is the stroke width to use for all character paths (1em = 1000
875     //  units).  This is a cheap way of getting slightly lighter or darker
876     //  characters
877     //
878     blacker: 10,
879     
880     //
881     //  This is the font-family CSS value used for characters that are not
882     //  in the selected font.  IE will stop looking after the first font
883     //  that exists on the system (even if it doesn't contain the needed
884     //  character), so order these carefully.
885     //  
886     undefinedFamily: "STIXGeneral,'Arial Unicode MS',serif",
887
888     //
889     //  This setting controls whether <mtext> elements will be typeset
890     //  using the math fonts or the font of the surrounding text.  When
891     //  false, the mathvariant="normal" font will be used; when true, 
892     //  the font will be inherited from the surrounding paragraph.
893     //  
894     mtextFontInherit: false,
895
896     //
897     //  This controls whether the MathML structure is retained and CSS
898     //  classes are added to mark the original MathML elements (as in the
899     //  HTML-CSS output).  By default, the SVG output jax removes unneeded
900     //  nesting in order to produce a more efficient markup, but if you
901     //  want to use CSS to style the elements as if they were MathML, you
902     //  might need to set this to true.
903     //  
904     addMMLclasses: false,
905
906     //
907     //  These values control how "chunky" the display of mathematical
908     //  expressions will be.
909     //  
910     //  EqnChunk is the number of equations that will be typeset before
911     //  they appear on screen.  Larger values make for less visual flicker
912     //  as the equations are drawn, but also mean longer delays before the
913     //  reader sees anything.
914     //  
915     //  EqChunkFactor is the factor by which the EqnChunk will grow after each
916     //  chunk is displayed.
917     //  
918     //  EqChunkDelay is the time (in milliseconds) to delay between chunks
919     //  (to allow the browser to respond to other user interaction).
920     //  
921     //  Set EqnChunk to 1, EqnChunkFactor to 1, and EwnChunkDelay to 10 to get
922     //  the behavior from MathJax v1.1 and below.
923     //
924     EqnChunk: 50,
925     EqnChunkFactor: 1.5,
926     EqnChunkDelay: 100,
927
928     //  This option indicates whether MathJax should try to correct the
929     //  x-height of equations to match the size of the surrounding text.
930     matchFontHeight: true,
931
932     //
933     //  These settings control automatic line breaking.  It is off by
934     //  default, so only explicit line breaks are performed (via
935     //  linebreak="newline" attributes on <mo> and <mspace> elements).  To
936     //  perform automatic line breaking on line expressions, set
937     //  'automatic' to 'true' below.  The line breaks will be applied via a
938     //  penalty-based heuristic, which does well, but isn't perfect.  You
939     //  might need to use linebreak="goodbreak" or linebreak="badbreak" by
940     //  hand in order to get better effects.  It is also possible to modify
941     //  the penalty values; contact the MathJax user's forum for details.
942     //  
943     linebreaks: {
944       
945       //
946       //  This controls the automatic breaking of expressions:
947       //    when false, only process linebreak="newline",
948       //    when true, line breaks are inserted automatically in long expressions.
949       //
950       automatic: false,
951
952       //
953       //  This controls how wide the lines of mathematics can be
954       //  
955       //  Use an explicit width like "30em" for a fixed width.
956       //  Use "container" to compute the size from the containing element.
957       //  Use "nn% container" for a portion of the container.
958       //  Use "nn%" for a portion of the window size.
959       //  
960       //  The container-based widths may be slower, and may not produce the
961       //  expected results if the layout width changes due to the removal
962       //  of previews or inclusion of mathematics during typesetting.
963       //  
964       width: "container"
965     },
966
967     //
968     //  These are the styles used for merror elements in SVG output.  Note
969     //  that only a limited number of style attributes are supported by
970     //  SVG, but you can at least change the colors and borders.
971     //  
972     //
973     merrorStyle: {
974       fontSize:"90%", color:"#C00", background:"#FF8",
975       border: "1px solid #C00", padding:"3px"
976     },
977
978     //
979     //  This allows you to define or modify the styles used to display
980     //  various math elements created by MathJax.
981     //  
982     //  Example:
983     //      styles: {
984     //        ".MathJax .merror": {
985     //          color:   "#CC0000",
986     //          border:  "1px solid #CC0000"
987     //        }
988     //      }
989     //
990     styles: {},
991     
992     //
993     //  Configuration for <maction> tooltips
994     //    (see also the #MathJax_Tooltip CSS in MathJax/jax/output/SVG/config.js,
995     //     which can be overridden using the styles values above).
996     //
997     tooltip: {
998       delayPost: 600,          // milliseconds delay before tooltip is posted after mouseover
999       delayClear: 600,         // milliseconds delay before tooltip is cleared after mouseout
1000       offsetX: 10, offsetY: 5  // pixels to offset tooltip from mouse position
1001     }
1002   },
1003   
1004   //============================================================================
1005   //
1006   //  These parameters control the contextual menus that are available on the 
1007   //  mathematics within the page (provided the showMathMenu value is true above).
1008   //
1009   MathMenu: {
1010     //
1011     //  This is the hover delay for the display of submenus in the
1012     //  contextual menu.  When the mouse is still over a submenu label for
1013     //  this long, the menu will appear.  (The menu also will appear if you
1014     //  click on the label.)  It is in milliseconds.
1015     //  
1016     delay: 150,
1017     
1018     //
1019     //  This is the URL for the MathJax Help menu item.
1020     //
1021     helpURL: "http://www.mathjax.org/help-v2/user/",
1022
1023     //
1024     //  These control whether the "Math Renderer", "MathPlayer", "Font
1025     //  Preferences", "Contextual Menu", and "Discoverable" menu items will
1026     //  be displayed or not.
1027     //
1028     showRenderer: true,
1029     showMathPlayer: true,
1030     showFontMenu: false,
1031     showContext:  false,
1032     showDiscoverable: false,
1033     
1034     //
1035     // These are the settings for the Annotation menu. If the <math> root has
1036     // a <semantics> child that contains one of the following annotation
1037     // formats, the source will be available via the "Show Math As" menu.
1038     // Each format has a list of possible encodings.
1039     //
1040     semanticsAnnotations: {
1041       "TeX": ["TeX", "LaTeX", "application/x-tex"],
1042       "StarMath": ["StarMath 5.0"],
1043       "Maple": ["Maple"],
1044       "ContentMathML": ["MathML-Content", "application/mathml-content+xml"],
1045       "OpenMath": ["OpenMath"]
1046     },
1047
1048     //
1049     //  These are the settings for the Show Source window.  The initial
1050     //  width and height will be reset after the source is shown in an
1051     //  attempt to make the window fit the output better.
1052     //
1053     windowSettings: {
1054       status: "no", toolbar: "no", locationbar: "no", menubar: "no",
1055       directories: "no", personalbar: "no", resizable: "yes", scrollbars: "yes",
1056       width: 100, height: 50
1057     },
1058     
1059     //
1060     //  This allows you to change the CSS that controls the menu
1061     //  appearance.  See the extensions/MathMenu.js file for details
1062     //  of the default settings.
1063     //
1064     styles: {}
1065     
1066   },
1067   
1068   //============================================================================
1069   //
1070   //  These parameters control the contextual menus that are available on the 
1071   //  mathematics within the page (provided the showMathMenu value is true above).
1072   //
1073   MathEvents: {
1074     //
1075     //  This is the time required for the mouse to be held still over a
1076     //  typeset equation in order for it to count as a hover (used when the
1077     //  zoom trigger is "Hover").  It is in milliseconds.
1078     //  
1079     hover: 500
1080   },
1081
1082   //============================================================================
1083   //
1084   //  These parameters control the MMLorHTML configuration file.
1085   //  NOTE:  if you add MMLorHTML.js to the config array above,
1086   //  you must REMOVE the output jax from the jax array.
1087   //
1088   MMLorHTML: {
1089     //
1090     //  The output jax that is to be preferred when both are possible
1091     //  (set to "MML" for native MathML, "HTML" for MathJax's HTML-CSS output jax).
1092     //
1093     prefer: {
1094       MSIE:    "MML",
1095       Firefox: "HTML",
1096       Opera:   "HTML",
1097       Safari:  "HTML",
1098       Chrome:  "HTML",
1099       other:   "HTML"
1100     }
1101   }
1102 });
1103
1104 MathJax.Ajax.loadComplete("[MathJax]/config/default.js");