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-2020 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
42MathJax.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
1104MathJax.Ajax.loadComplete("[MathJax]/config/default.js");
1105