mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 11:20:44 +07:00
removed redundant mathjax files
This commit is contained in:
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_CHTML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_CHTML-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_CHTML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_CHTML.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_HTMLorMML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_HTMLorMML-full.js");
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_HTMLorMML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_HTMLorMML.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_SVG-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_SVG-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/AM_SVG.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/AsciiMath","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/AM_SVG.js");
|
||||
@@ -1,33 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/Accessible-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"],
|
||||
menuSettings: {
|
||||
zoom: "Double-Click",
|
||||
mpContext: true,
|
||||
mpMouse: true
|
||||
},
|
||||
errorSettings: {
|
||||
message: ["[",["MathError","Math Error"],"]"]
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/Accessible-full.js");
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/Accessible.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"],
|
||||
menuSettings: {
|
||||
zoom: "Double-Click",
|
||||
mpContext: true,
|
||||
mpMouse: true
|
||||
},
|
||||
errorSettings: {
|
||||
message: ["[",["MathError","Math Error"],"]"]
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/Accessible.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_CHTML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_CHTML-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_CHTML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_CHTML.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_HTMLorMML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_HTMLorMML-full.js");
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_HTMLorMML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_HTMLorMML.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_SVG-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_SVG-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/MML_SVG.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/MathML","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MML_SVG.js");
|
||||
-111
@@ -1,111 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/config/MMLorHTML.js
|
||||
*
|
||||
* Chooses between the NativeMML and HTML-CSS output jax depending
|
||||
* on the capabilities of the browser and configuration settings
|
||||
* of the page.
|
||||
*
|
||||
* This file should be added to the config array when configuring
|
||||
* MathJax. Note that if you include this, you should NOT include
|
||||
* an output jax in the jax array (it will be added for you by
|
||||
* this file).
|
||||
*
|
||||
* You can specify the preferred output jax on a global or
|
||||
* browser-by-browser basis. To specify it globally, use
|
||||
*
|
||||
* MathJax.Hub.Config({
|
||||
* MMLorHTML: {prefer: "MML"} // or "HTML"
|
||||
* });
|
||||
*
|
||||
* To specify on a browser-by-borwser basis, use
|
||||
*
|
||||
* MathJax.Hub.Config({
|
||||
* MMLorHTML: {prefer: {
|
||||
* MSIE: "MML",
|
||||
* Firefox: "MML",
|
||||
* Opera: "HTML",
|
||||
* other: "HTML"
|
||||
* }}
|
||||
* });
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (HUB,BROWSER) {
|
||||
var VERSION = "2.6.0";
|
||||
|
||||
var CONFIG = MathJax.Hub.CombineConfig("MMLorHTML",{
|
||||
prefer: {
|
||||
MSIE:"MML",
|
||||
Firefox:"HTML",
|
||||
Opera:"HTML",
|
||||
Chrome:"HTML",
|
||||
Safari:"HTML",
|
||||
other:"HTML"
|
||||
}
|
||||
});
|
||||
|
||||
var MINBROWSERVERSION = {
|
||||
Firefox: 3.0,
|
||||
Opera: 9.52,
|
||||
MSIE: 6.0,
|
||||
Chrome: 0.3,
|
||||
Safari: 2.0,
|
||||
Konqueror: 4.0
|
||||
};
|
||||
|
||||
var canUseHTML = (BROWSER.version === "0.0" ||
|
||||
BROWSER.versionAtLeast(MINBROWSERVERSION[BROWSER]||0.0));
|
||||
|
||||
var canUseMML = (BROWSER.isFirefox && BROWSER.versionAtLeast("1.5")) ||
|
||||
(BROWSER.isMSIE && BROWSER.hasMathPlayer) ||
|
||||
(BROWSER.isSafari && BROWSER.versionAtLeast("5.0")) ||
|
||||
(BROWSER.isOpera && BROWSER.versionAtLeast("9.52"));
|
||||
|
||||
HUB.Register.StartupHook("End Config",function () {
|
||||
var prefer = (CONFIG.prefer && typeof(CONFIG.prefer) === "object" ?
|
||||
CONFIG.prefer[MathJax.Hub.Browser]||CONFIG.prefer.other||"HTML" :
|
||||
CONFIG.prefer);
|
||||
|
||||
if (canUseHTML || canUseMML) {
|
||||
if (canUseMML && (prefer === "MML" || !canUseHTML)) {
|
||||
if (MathJax.OutputJax.NativeMML) {MathJax.OutputJax.NativeMML.Register("jax/mml")}
|
||||
else {HUB.config.jax.unshift("output/NativeMML")}
|
||||
HUB.Startup.signal.Post("NativeMML output selected");
|
||||
} else {
|
||||
if (MathJax.OutputJax["HTML-CSS"]) {MathJax.OutputJax["HTML-CSS"].Register("jax/mml")}
|
||||
else {HUB.config.jax.unshift("output/HTML-CSS")}
|
||||
HUB.Startup.signal.Post("HTML-CSS output selected");
|
||||
}
|
||||
} else {
|
||||
HUB.PreProcess.disabled = true;
|
||||
HUB.prepareScripts.disabled = true;
|
||||
MathJax.Message.Set(
|
||||
["MathJaxNotSupported","Your browser does not support MathJax"],
|
||||
null,4000
|
||||
);
|
||||
HUB.Startup.signal.Post("MathJax not supported");
|
||||
}
|
||||
});
|
||||
|
||||
})(MathJax.Hub,MathJax.Hub.Browser);
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/MMLorHTML.js");
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/config/Safe.js
|
||||
*
|
||||
* Allows you to load the Safe extension as part of the config list
|
||||
* when you load MathJax.js, e.g.
|
||||
*
|
||||
* <script
|
||||
* src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,Safe">
|
||||
* </script>
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("End Config", function () {
|
||||
if (!MathJax.Hub.config.extensions) {MathJax.Hub.config.extensions = []}
|
||||
MathJax.Hub.config.extensions.push("Safe.js");
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/Safe.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS-MML_HTMLorMML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_HTMLorMML-full.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS-MML_HTMLorMML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_HTMLorMML.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS-MML_SVG-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_SVG-full.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS-MML_SVG.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS-MML_SVG.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS_CHTML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_CHTML-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS_CHTML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_CHTML.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS_HTML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_HTML.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS_SVG-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_SVG-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-AMS_SVG.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-AMS_SVG.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_CHTML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_CHTML-full.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_CHTML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/CommonHTML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_CHTML.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_HTMLorMML-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_HTMLorMML-full.js");
|
||||
@@ -1,25 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_HTMLorMML.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
config: ["MMLorHTML.js"],
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/HTML-CSS","output/NativeMML","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_HTMLorMML.js");
|
||||
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_SVG-full.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_SVG-full.js");
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* /MathJax/unpacked/config/TeX-MML-AM_SVG.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Part of the MathJax library.
|
||||
* See http://www.mathjax.org for details.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0;
|
||||
* you may not use this file except in compliance with the License.
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*/
|
||||
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js","mml2jax.js","asciimath2jax.js","MathEvents.js","MathZoom.js","MathMenu.js","toMathML.js","TeX/noErrors.js","TeX/noUndefined.js","TeX/AMSmath.js","TeX/AMSsymbols.js","fast-preview.js","AssistiveMML.js"],
|
||||
jax: ["input/TeX","input/MathML","input/AsciiMath","output/SVG","output/PreviewHTML"]
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/config/TeX-MML-AM_SVG.js");
|
||||
-1116
File diff suppressed because it is too large
Load Diff
@@ -1,30 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/CHTML-preview.js
|
||||
*
|
||||
* Backward compatibility with old CHTML-preview extension.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2014-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Callback.Queue(
|
||||
["Require",MathJax.Ajax,"[MathJax]/extensions/fast-preview.js"],
|
||||
["loadComplete",MathJax.Ajax,"[MathJax]/extensions/CHTML-preview.js"]
|
||||
);
|
||||
-313
@@ -1,313 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/FontWarnings.js
|
||||
*
|
||||
* Implements a font warning message window that appears when
|
||||
* the image fonts, no fonts, or web fonts are used, informing
|
||||
* the user where to download the fonts, or to update to a more
|
||||
* modern browser. The window will fade out automatically after
|
||||
* a time, and the user can dismiss it by a close box.
|
||||
*
|
||||
* To include font warning messages, add "FontWarnings.js" to the
|
||||
* extensions array in your MathJax configuration.
|
||||
*
|
||||
* You can customize the warning messages in a number of ways. Use the
|
||||
* FontWarnings section of the configuration to specify any of the items
|
||||
* shown in the CONFIG variable below. These include
|
||||
*
|
||||
* messageStyle the style to apply to the warning box that is
|
||||
* displayed when MathJax uses one of its fallback
|
||||
* methods.
|
||||
*
|
||||
* removeAfter the amount of time to show the warning message (in ms)
|
||||
* fadeoutTime how long the message should take to fade out
|
||||
* fadeoutSteps how many separate steps to use during the fade out
|
||||
* (set to 0 to use no fadeout and simply remove the window)
|
||||
*
|
||||
* Messages stores the descriptions of the messages to use for the
|
||||
* various warnings (webFonts, imageFonts, and noFonts).
|
||||
* These are arrays of strings to be inserted into the window,
|
||||
* or identifiers within brackets, which refer to the HTML
|
||||
* snippets in the HTML section described below. To disable a
|
||||
* specific message, set its value to null (see example below).
|
||||
*
|
||||
* HTML stores snippets of HTML descriptions for various
|
||||
* common parts of the error messages. These include
|
||||
* the closeBox, the message about web fonts being available
|
||||
* in modern browser, and messages about downloadable fonts.
|
||||
* The STIX and TeX font messages are used when only one
|
||||
* of these is in the availableFonts list. The data for these
|
||||
* are arrays of either strings to include or a description of
|
||||
* an HTML item enclosed in square brackets. That description
|
||||
* has (up to) three parts: the name of the tag to be included,
|
||||
* a list (enclosed in braces) of attributes and their values
|
||||
* to be set on the tag (optional), and an array of the contents
|
||||
* of the tag (optional). See the definitions below for examples.
|
||||
*
|
||||
* For example,
|
||||
*
|
||||
* MathJax.Hub.Config({
|
||||
* ...
|
||||
* extensions: ["FontWarnings.js"],
|
||||
* FontWarnings: {
|
||||
* removeAfter: 20*1000, // 20 seconds
|
||||
* messageStyle: {
|
||||
* border: "2px solid black",
|
||||
* padding: "2em"
|
||||
* },
|
||||
* Message: {
|
||||
* webFont: null // no webfont messages (only image and no fonts)
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* would extend the time the message is displayed from 12 seconds to 20,
|
||||
* and changes the border to a solid black one, with 2em of padding
|
||||
* rather than the default of 1em.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (HUB,HTML) {
|
||||
var VERSION = "2.6.0";
|
||||
|
||||
var STIXURL = "http://www.stixfonts.org/";
|
||||
var MATHJAXURL = "https://github.com/mathjax/MathJax/tree/master/fonts/HTML-CSS/TeX/otf";
|
||||
|
||||
var CONFIG = HUB.CombineConfig("FontWarnings",{
|
||||
//
|
||||
// The CSS for the message window
|
||||
//
|
||||
messageStyle: {
|
||||
position:"fixed", bottom:"4em", left:"3em", width:"40em",
|
||||
border: "3px solid #880000", "background-color": "#E0E0E0", color: "black",
|
||||
padding: "1em", "font-size":"small", "white-space":"normal",
|
||||
|
||||
"border-radius": ".75em", // Opera 10.5 and IE9
|
||||
"-webkit-border-radius": ".75em", // Safari and Chrome
|
||||
"-moz-border-radius": ".75em", // Firefox
|
||||
"-khtml-border-radius": ".75em", // Konqueror
|
||||
|
||||
"box-shadow": "4px 4px 10px #AAAAAA", // Opera 10.5 and IE9
|
||||
"-webkit-box-shadow": "4px 4px 10px #AAAAAA", // Safari 3 and Chrome
|
||||
"-moz-box-shadow": "4px 4px 10px #AAAAAA", // Forefox 3.5
|
||||
"-khtml-box-shadow": "4px 4px 10px #AAAAAA", // Konqueror
|
||||
filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=3, OffY=3, Color='gray', Positive='true')" // IE
|
||||
},
|
||||
|
||||
//
|
||||
// The messages for the various situations
|
||||
//
|
||||
Message: {
|
||||
|
||||
webFont: [
|
||||
["closeBox"],
|
||||
["webFont",
|
||||
"MathJax is using web-based fonts to display the mathematics "+
|
||||
"on this page. These take time to download, so the page would "+
|
||||
"render faster if you installed math fonts directly in your "+
|
||||
"system's font folder."],
|
||||
["fonts"]
|
||||
],
|
||||
|
||||
imageFonts: [
|
||||
["closeBox"],
|
||||
["imageFonts",
|
||||
"MathJax is using its image fonts rather than local or web-based fonts. "+
|
||||
"This will render slower than usual, and the mathematics may not print "+
|
||||
"at the full resolution of your printer."],
|
||||
["fonts"],
|
||||
["webFonts"]
|
||||
],
|
||||
|
||||
noFonts: [
|
||||
["closeBox"],
|
||||
["noFonts",
|
||||
"MathJax is unable to locate a font to use to display "+
|
||||
"its mathematics, and image fonts are not available, so it "+
|
||||
"is falling back on generic unicode characters in hopes that "+
|
||||
"your browser will be able to display them. Some characters "+
|
||||
"may not show up properly, or possibly not at all."],
|
||||
["fonts"],
|
||||
["webFonts"]
|
||||
]
|
||||
},
|
||||
|
||||
//
|
||||
// HTML objects that can be referred to in the message definitions
|
||||
//
|
||||
HTML: {
|
||||
//
|
||||
// The definition of the close box
|
||||
//
|
||||
closeBox: [[
|
||||
"div",{
|
||||
style: {
|
||||
position:"absolute", overflow:"hidden", top:".1em", right:".1em",
|
||||
border: "1px outset", width:"1em", height:"1em",
|
||||
"text-align": "center", cursor: "pointer",
|
||||
"background-color": "#EEEEEE", color:"#606060",
|
||||
|
||||
"border-radius": ".5em", // Opera 10.5
|
||||
"-webkit-border-radius": ".5em", // Safari and Chrome
|
||||
"-moz-border-radius": ".5em", // Firefox
|
||||
"-khtml-border-radius": ".5em" // Konqueror
|
||||
},
|
||||
onclick: function () {
|
||||
if (DATA.div && DATA.fade === 0)
|
||||
{if (DATA.timer) {clearTimeout(DATA.timer)}; DATA.div.style.display = "none"}
|
||||
}
|
||||
},
|
||||
[["span",{style:{position:"relative", bottom:".2em"}},["x"]]]
|
||||
]],
|
||||
|
||||
webFonts: [
|
||||
["p"],
|
||||
["webFonts",
|
||||
"Most modern browsers allow for fonts to be downloaded over the web. "+
|
||||
"Updating to a more recent version of your browser (or changing "+
|
||||
"browsers) could improve the quality of the mathematics on this page."
|
||||
]
|
||||
],
|
||||
|
||||
fonts: [
|
||||
["p"],
|
||||
["fonts",
|
||||
"MathJax can use either the [STIX fonts](%1) or the [MathJax TeX fonts](%2). " +
|
||||
"Download and install one of those fonts to improve your MathJax experience.",
|
||||
STIXURL,MATHJAXURL
|
||||
]
|
||||
],
|
||||
|
||||
STIXfonts: [
|
||||
["p"],
|
||||
["STIXPage",
|
||||
"This page is designed to use the [STIX fonts](%1). " +
|
||||
"Download and install those fonts to improve your MathJax experience.",
|
||||
STIXURL
|
||||
]
|
||||
],
|
||||
|
||||
TeXfonts: [
|
||||
["p"],
|
||||
["TeXPage",
|
||||
"This page is designed to use the [MathJax TeX fonts](%1). " +
|
||||
"Download and install those fonts to improve your MathJax experience.",
|
||||
MATHJAXURL
|
||||
]
|
||||
]
|
||||
|
||||
},
|
||||
|
||||
removeAfter: 12*1000, // time to show message (in ms)
|
||||
fadeoutSteps: 10, // fade-out steps
|
||||
fadeoutTime: 1.5*1000 // fadeout over this amount of time (in ms)
|
||||
|
||||
});
|
||||
if (MathJax.Hub.Browser.isIE9 && document.documentMode >= 9)
|
||||
{delete CONFIG.messageStyle.filter}
|
||||
|
||||
//
|
||||
// Data for the window
|
||||
//
|
||||
var DATA = {
|
||||
div: null, // the message window, when displayed
|
||||
fade: 0 // number of fade-out steps so far
|
||||
};
|
||||
|
||||
//
|
||||
// Create the message window and start the fade-out timer
|
||||
//
|
||||
var CREATEMESSAGE = function (data) {
|
||||
if (DATA.div) return;
|
||||
var HTMLCSS = MathJax.OutputJax["HTML-CSS"], frame = document.body;
|
||||
if (HUB.Browser.isMSIE) {
|
||||
if (CONFIG.messageStyle.position === "fixed") {
|
||||
MathJax.Message.Init(); // make sure MathJax_MSIE_frame exists
|
||||
frame = document.getElementById("MathJax_MSIE_Frame") || frame;
|
||||
if (frame !== document.body) {CONFIG.messageStyle.position = "absolute"}
|
||||
}
|
||||
} else {delete CONFIG.messageStyle.filter}
|
||||
CONFIG.messageStyle.maxWidth = (document.body.clientWidth-75) + "px";
|
||||
var i = 0; while (i < data.length) {
|
||||
if (data[i] instanceof Array) {
|
||||
if (data[i].length === 1 && CONFIG.HTML[data[i][0]]) {
|
||||
data.splice.apply(data,[i,1].concat(CONFIG.HTML[data[i][0]]));
|
||||
} else if (typeof data[i][1] === "string") {
|
||||
var message = MathJax.Localization.lookupPhrase(["FontWarnings",data[i][0]],data[i][1]);
|
||||
message = MathJax.Localization.processMarkdown(message,data[i].slice(2),"FontWarnings");
|
||||
data.splice.apply(data,[i,1].concat(message));
|
||||
i += message.length;
|
||||
} else {i++}
|
||||
} else {i++}
|
||||
}
|
||||
DATA.div = HTMLCSS.addElement(frame,"div",
|
||||
{id:"MathJax_FontWarning",style:CONFIG.messageStyle},data);
|
||||
MathJax.Localization.setCSS(DATA.div);
|
||||
if (CONFIG.removeAfter) {
|
||||
HUB.Register.StartupHook("End",function ()
|
||||
{DATA.timer = setTimeout(FADEOUT,CONFIG.removeAfter)});
|
||||
}
|
||||
HTML.Cookie.Set("fontWarn",{warned:true});
|
||||
};
|
||||
|
||||
//
|
||||
// Set the opacity based on the number of steps taken so far
|
||||
// and remove the window when it gets to 0
|
||||
//
|
||||
var FADEOUT = function () {
|
||||
DATA.fade++; if (DATA.timer) {delete DATA.timer}
|
||||
if (DATA.fade < CONFIG.fadeoutSteps) {
|
||||
var opacity = 1 - DATA.fade/CONFIG.fadeoutSteps;
|
||||
DATA.div.style.opacity = opacity;
|
||||
DATA.div.style.filter = "alpha(opacity="+Math.floor(100*opacity)+")";
|
||||
setTimeout(FADEOUT,CONFIG.fadeoutTime/CONFIG.fadeoutSteps);
|
||||
} else {
|
||||
DATA.div.style.display = "none";
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Check that we haven't already issued a warning
|
||||
//
|
||||
if (!HTML.Cookie.Get("fontWarn").warned) {
|
||||
//
|
||||
// Hook into the Startup signal and look for font warning messages.
|
||||
// When one comes, issue the correct message.
|
||||
//
|
||||
HUB.Startup.signal.Interest(function (message) {
|
||||
if (message.match(/HTML-CSS Jax - /) && !DATA.div) {
|
||||
var HTMLCSS = MathJax.OutputJax["HTML-CSS"], FONTS = HTMLCSS.config.availableFonts, MSG;
|
||||
var localFonts = (FONTS && FONTS.length);
|
||||
if (!localFonts) {CONFIG.HTML.fonts = [""]}
|
||||
else if (FONTS.length === 1) {CONFIG.HTML.fonts = CONFIG.HTML[FONTS[0]+"fonts"]}
|
||||
if (HTMLCSS.allowWebFonts) {CONFIG.HTML.webfonts = [""]}
|
||||
if (message.match(/- Web-Font/)) {if (localFonts) {MSG = "webFont"}}
|
||||
else if (message.match(/- using image fonts/)) {MSG = "imageFonts"}
|
||||
else if (message.match(/- no valid font/)) {MSG = "noFonts"}
|
||||
if (MSG && CONFIG.Message[MSG])
|
||||
{MathJax.Localization.loadDomain("FontWarnings",[CREATEMESSAGE,CONFIG.Message[MSG]])}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
})(MathJax.Hub,MathJax.HTML);
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/FontWarnings.js");
|
||||
@@ -1,82 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/HTML-CSS/handle-floats.js
|
||||
*
|
||||
* This extension allows HTML-CSS output to deal with floating elements
|
||||
* better. In particular, when there are tags or equation numbers, these
|
||||
* would overlap floating elements, but with this extension, the width of
|
||||
* the line should properly correspond to the amount of space remaining.
|
||||
*
|
||||
* To load it, include
|
||||
*
|
||||
* "HTML-CSS": {
|
||||
* extensions: ["handle-floats.js"]
|
||||
* }
|
||||
*
|
||||
* in your configuration.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2012-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
MathJax.Extension["HTML-CSS/handle-floats"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
//
|
||||
// Make the display DIV be a table-cell
|
||||
// Use padding to get the separation, since table cells don't do margin
|
||||
// Make the width large (it will shrink to fit the remaining room)
|
||||
//
|
||||
MathJax.Hub.Config({
|
||||
"HTML-CSS": {
|
||||
styles: {
|
||||
".MathJax_Display": {
|
||||
display: "table-cell",
|
||||
padding: "1em 0 ! important",
|
||||
width: (MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 8 ? "100%" : "1000em")
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
// Two consecutive equations would end up side-by-side, so force a separator
|
||||
// (Needed by IE8, IE9, and Firefox, at least).
|
||||
//
|
||||
MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||
var HTMLCSS = MathJax.OutputJax["HTML-CSS"],
|
||||
TRANSLATE = HTMLCSS.Translate;
|
||||
HTMLCSS.Augment({
|
||||
Translate: function (script,state) {
|
||||
TRANSLATE.apply(this,arguments);
|
||||
if (script.MathJax.elementJax.HTMLCSS.display) {
|
||||
var next = script.nextSibling;
|
||||
if (!next || next.className !== "MathJax_MSIE_Separator") {
|
||||
var span = HTMLCSS.Element("span",{className:"MathJax_MSIE_Separator"});
|
||||
script.parentNode.insertBefore(span,next);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
MathJax.Hub.Startup.signal.Post("HTML-CSS handle-floats Ready");
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/HTML-CSS/handle-floats.js");
|
||||
-203
@@ -1,203 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/HelpDialog.js
|
||||
*
|
||||
* Implements the MathJax Help dialog box.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (HUB,HTML,AJAX,OUTPUT,LOCALE) {
|
||||
|
||||
var HELP = MathJax.Extension.Help = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
var STIXURL = "http://www.stixfonts.org/";
|
||||
var MENU = MathJax.Menu;
|
||||
var FALSE, KEY;
|
||||
HUB.Register.StartupHook("MathEvents Ready",function () {
|
||||
FALSE = MathJax.Extension.MathEvents.Event.False;
|
||||
KEY = MathJax.Extension.MathEvents.Event.KEY;
|
||||
});
|
||||
|
||||
|
||||
var CONFIG = HUB.CombineConfig("HelpDialog",{
|
||||
|
||||
styles: {
|
||||
"#MathJax_Help": {
|
||||
position:"fixed", left:"50%", width:"auto", "max-width": "90%", "text-align":"center",
|
||||
border:"3px outset", padding:"1em 2em", "background-color":"#DDDDDD", color:"black",
|
||||
cursor: "default", "font-family":"message-box", "font-size":"120%",
|
||||
"font-style":"normal", "text-indent":0, "text-transform":"none",
|
||||
"line-height":"normal", "letter-spacing":"normal", "word-spacing":"normal",
|
||||
"word-wrap":"normal", "white-space":"wrap", "float":"none", "z-index":201,
|
||||
|
||||
"border-radius": "15px", // Opera 10.5 and IE9
|
||||
"-webkit-border-radius": "15px", // Safari and Chrome
|
||||
"-moz-border-radius": "15px", // Firefox
|
||||
"-khtml-border-radius": "15px", // Konqueror
|
||||
|
||||
"box-shadow":"0px 10px 20px #808080", // Opera 10.5 and IE9
|
||||
"-webkit-box-shadow":"0px 10px 20px #808080", // Safari 3 and Chrome
|
||||
"-moz-box-shadow":"0px 10px 20px #808080", // Forefox 3.5
|
||||
"-khtml-box-shadow":"0px 10px 20px #808080", // Konqueror
|
||||
filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" // IE
|
||||
},
|
||||
"#MathJax_Help.MathJax_MousePost": {
|
||||
outline:"none"
|
||||
},
|
||||
|
||||
"#MathJax_HelpContent": {
|
||||
overflow:"auto", "text-align":"left", "font-size":"80%",
|
||||
padding:".4em .6em", border:"1px inset", margin:"1em 0px",
|
||||
"max-height":"20em", "max-width":"30em", "background-color":"#EEEEEE"
|
||||
},
|
||||
|
||||
"#MathJax_HelpClose": {
|
||||
position:"absolute", top:".2em", right:".2em",
|
||||
cursor:"pointer",
|
||||
display:"inline-block",
|
||||
border:"2px solid #AAA",
|
||||
"border-radius":"18px",
|
||||
"-webkit-border-radius": "18px", // Safari and Chrome
|
||||
"-moz-border-radius": "18px", // Firefox
|
||||
"-khtml-border-radius": "18px", // Konqueror
|
||||
"font-family":"'Courier New',Courier",
|
||||
"font-size":"24px",
|
||||
color:"#F0F0F0"
|
||||
},
|
||||
"#MathJax_HelpClose span": {
|
||||
display:"block", "background-color":"#AAA", border:"1.5px solid",
|
||||
"border-radius":"18px",
|
||||
"-webkit-border-radius": "18px", // Safari and Chrome
|
||||
"-moz-border-radius": "18px", // Firefox
|
||||
"-khtml-border-radius": "18px", // Konqueror
|
||||
"line-height":0,
|
||||
padding:"8px 0 6px" // may need to be browser-specific
|
||||
},
|
||||
"#MathJax_HelpClose:hover": {
|
||||
color:"white!important",
|
||||
border:"2px solid #CCC!important"
|
||||
},
|
||||
"#MathJax_HelpClose:hover span": {
|
||||
"background-color":"#CCC!important"
|
||||
},
|
||||
"#MathJax_HelpClose:hover:focus": {
|
||||
outline:"none"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Handle the Help Dialog box
|
||||
*/
|
||||
HELP.Dialog = function (event) {
|
||||
LOCALE.loadDomain("HelpDialog",["Post",HELP,event]);
|
||||
};
|
||||
|
||||
HELP.Post = function (event) {
|
||||
this.div = MENU.Background(this);
|
||||
var help = HTML.addElement(this.div,"div",{
|
||||
id: "MathJax_Help", tabIndex: 0, onkeydown: HELP.Keydown
|
||||
},LOCALE._("HelpDialog",[
|
||||
["b",{style:{fontSize:"120%"}},[["Help","MathJax Help"]]],
|
||||
["div",{id: "MathJax_HelpContent", tabIndex: 0},[
|
||||
["p",{},[["MathJax",
|
||||
"*MathJax* is a JavaScript library that allows page authors to include " +
|
||||
"mathematics within their web pages. As a reader, you don't need to do " +
|
||||
"anything to make that happen."]]
|
||||
],
|
||||
["p",{},[["Browsers",
|
||||
"*Browsers*: MathJax works with all modern browsers including IE6+, Firefox 3+, " +
|
||||
"Chrome 0.2+, Safari 2+, Opera 9.6+ and most mobile browsers."]]
|
||||
],
|
||||
["p",{},[["Menu",
|
||||
"*Math Menu*: MathJax adds a contextual menu to equations. Right-click or " +
|
||||
"CTRL-click on any mathematics to access the menu."]]
|
||||
],
|
||||
["div",{style:{"margin-left":"1em"}},[
|
||||
["p",{},[["ShowMath",
|
||||
"*Show Math As* allows you to view the formula's source markup " +
|
||||
"for copy & paste (as MathML or in its original format)."]]
|
||||
],
|
||||
["p",{},[["Settings",
|
||||
"*Settings* gives you control over features of MathJax, such as the " +
|
||||
"size of the mathematics, and the mechanism used to display equations."]]
|
||||
],
|
||||
["p",{},[["Language",
|
||||
"*Language* lets you select the language used by MathJax for its menus " +
|
||||
"and warning messages."]]
|
||||
],
|
||||
]],
|
||||
["p",{},[["Zoom",
|
||||
"*Math Zoom*: If you are having difficulty reading an equation, MathJax can " +
|
||||
"enlarge it to help you see it better."]]
|
||||
],
|
||||
["p",{},[["Accessibilty",
|
||||
"*Accessibility*: MathJax will automatically work with screen readers to make " +
|
||||
"mathematics accessible to the visually impaired."]]
|
||||
],
|
||||
["p",{},[["Fonts",
|
||||
"*Fonts*: MathJax will use certain math fonts if they are installed on your " +
|
||||
"computer; otherwise, it will use web-based fonts. Although not required, " +
|
||||
"locally installed fonts will speed up typesetting. We suggest installing " +
|
||||
"the [STIX fonts](%1).",STIXURL]]
|
||||
]
|
||||
]],
|
||||
["a",{href:"http://www.mathjax.org/"},["www.mathjax.org"]],
|
||||
["span",{id: "MathJax_HelpClose", onclick: HELP.Remove,
|
||||
onkeydown: HELP.Keydown, tabIndex: 0, role: "button",
|
||||
"aria-label": LOCALE._(["HelpDialog","CloseDialog"],"Close help dialog")},
|
||||
[["span",{},["\u00D7"]]]
|
||||
]
|
||||
]));
|
||||
if (event.type === "mouseup") help.className += " MathJax_MousePost";
|
||||
help.focus();
|
||||
LOCALE.setCSS(help);
|
||||
var doc = (document.documentElement||{});
|
||||
var H = window.innerHeight || doc.clientHeight || doc.scrollHeight || 0;
|
||||
if (MENU.prototype.msieAboutBug) {
|
||||
help.style.width = "20em"; help.style.position = "absolute";
|
||||
help.style.left = Math.floor((document.documentElement.scrollWidth - help.offsetWidth)/2)+"px";
|
||||
help.style.top = (Math.floor((H-help.offsetHeight)/3)+document.body.scrollTop)+"px";
|
||||
} else {
|
||||
help.style.marginLeft = Math.floor(-help.offsetWidth/2)+"px";
|
||||
help.style.top = Math.floor((H-help.offsetHeight)/3)+"px";
|
||||
}
|
||||
};
|
||||
HELP.Remove = function (event) {
|
||||
if (HELP.div) {document.body.removeChild(HELP.div); delete HELP.div}
|
||||
};
|
||||
HELP.Keydown = function(event) {
|
||||
if (event.keyCode === KEY.ESCAPE ||
|
||||
(this.id === "MathJax_HelpClose" &&
|
||||
(event.keyCode === KEY.SPACE || event.keyCode === KEY.RETURN))) {
|
||||
HELP.Remove(event);
|
||||
MENU.CurrentNode().focus();
|
||||
FALSE(event);
|
||||
}
|
||||
},
|
||||
|
||||
MathJax.Callback.Queue(
|
||||
HUB.Register.StartupHook("End Config",{}), // wait until config is complete
|
||||
["Styles",AJAX,CONFIG.styles],
|
||||
["Post",HUB.Startup.signal,"HelpDialig Ready"],
|
||||
["loadComplete",AJAX,"[MathJax]/extensions/HelpDialog.js"]
|
||||
);
|
||||
|
||||
})(MathJax.Hub,MathJax.HTML,MathJax.Ajax,MathJax.OutputJax,MathJax.Localization);
|
||||
-309
@@ -1,309 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/MatchWebFonts.js
|
||||
*
|
||||
* Adds code to the output jax so that if web fonts are used on the page,
|
||||
* MathJax will be able to detect their arrival and update the math to
|
||||
* accommodate the change in font. For the NativeMML output, this works
|
||||
* both for web fonts in main text, and for web fonts in the math as well.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (HUB,AJAX) {
|
||||
var VERSION = "2.6.0";
|
||||
|
||||
var CONFIG = MathJax.Hub.CombineConfig("MatchWebFonts",{
|
||||
matchFor: {
|
||||
"HTML-CSS": true,
|
||||
NativeMML: true,
|
||||
SVG: true
|
||||
},
|
||||
fontCheckDelay: 500, // initial delay for the first check for web fonts
|
||||
fontCheckTimeout: 15 * 1000, // how long to keep looking for fonts (15 seconds)
|
||||
});
|
||||
|
||||
MathJax.Extension.MatchWebFonts = {
|
||||
version: VERSION,
|
||||
config: CONFIG
|
||||
};
|
||||
|
||||
HUB.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||
var HTMLCSS = MathJax.OutputJax["HTML-CSS"];
|
||||
var POSTTRANSLATE = HTMLCSS.postTranslate;
|
||||
|
||||
HTMLCSS.Augment({
|
||||
postTranslate: function (state,partial) {
|
||||
if (!partial && CONFIG.matchFor["HTML-CSS"] && this.config.matchFontHeight) {
|
||||
//
|
||||
// Check for changes in the web fonts that might affect the font
|
||||
// size for math elements. This is a periodic check that goes on
|
||||
// until a timeout is reached.
|
||||
//
|
||||
AJAX.timer.start(AJAX,["checkFonts",this,state.jax[this.id]],
|
||||
CONFIG.fontCheckDelay,CONFIG.fontCheckTimeout);
|
||||
}
|
||||
return POSTTRANSLATE.apply(this,arguments); // do the original function
|
||||
},
|
||||
|
||||
checkFonts: function (check,scripts) {
|
||||
if (check.time(function () {})) return;
|
||||
var size = [], i, m, retry = false;
|
||||
//
|
||||
// Add the elements used for testing ex and em sizes
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.insertBefore(this.EmExSpan.cloneNode(true),script);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Check to see if anything has changed
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i]; if (!script.parentNode) continue; retry = true;
|
||||
var jax = script.MathJax.elementJax; if (!jax) continue;
|
||||
//
|
||||
// Check if ex or mex has changed
|
||||
//
|
||||
var test = script.previousSibling;
|
||||
var ex = test.firstChild.offsetHeight/60;
|
||||
var em = test.lastChild.lastChild.offsetHeight/60;
|
||||
if (ex === 0 || ex === "NaN") {ex = this.defaultEx; em = this.defaultEm}
|
||||
if (ex !== jax.HTMLCSS.ex || em !== jax.HTMLCSS.em) {
|
||||
var scale = ex/this.TeX.x_height/em;
|
||||
scale = Math.floor(Math.max(this.config.minScaleAdjust/100,scale)*this.config.scale);
|
||||
if (scale/100 !== jax.scale) {size.push(script); scripts[i] = {}}
|
||||
}
|
||||
}
|
||||
//
|
||||
// Remove markers
|
||||
//
|
||||
scripts = scripts.concat(size); // some scripts have been moved to the size array
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script && script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.removeChild(script.previousSibling);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Rerender the changed items
|
||||
//
|
||||
if (size.length) {HUB.Queue(["Rerender",HUB,[size],{}])}
|
||||
//
|
||||
// Try again later
|
||||
//
|
||||
if (retry) {setTimeout(check,check.delay)}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
HUB.Register.StartupHook("SVG Jax Ready",function () {
|
||||
var SVG = MathJax.OutputJax.SVG;
|
||||
var POSTTRANSLATE = SVG.postTranslate;
|
||||
|
||||
SVG.Augment({
|
||||
postTranslate: function (state,partial) {
|
||||
if (!partial && CONFIG.matchFor.SVG) {
|
||||
//
|
||||
// Check for changes in the web fonts that might affect the font
|
||||
// size for math elements. This is a periodic check that goes on
|
||||
// until a timeout is reached.
|
||||
//
|
||||
AJAX.timer.start(AJAX,["checkFonts",this,state.jax[this.id]],
|
||||
CONFIG.fontCheckDelay,CONFIG.fontCheckTimeout);
|
||||
}
|
||||
return POSTTRANSLATE.apply(this,arguments); // do the original function
|
||||
},
|
||||
|
||||
checkFonts: function (check,scripts) {
|
||||
if (check.time(function () {})) return;
|
||||
var size = [], i, m, retry = false;
|
||||
//
|
||||
// Add the elements used for testing ex and em sizes
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.insertBefore(this.ExSpan.cloneNode(true),script);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Check to see if anything has changed
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i]; if (!script.parentNode) continue; retry = true;
|
||||
var jax = script.MathJax.elementJax; if (!jax) continue;
|
||||
//
|
||||
// Check if ex or mex has changed
|
||||
//
|
||||
var test = script.previousSibling;
|
||||
var ex = test.firstChild.offsetHeight/60;
|
||||
if (ex === 0 || ex === "NaN") {ex = this.defaultEx}
|
||||
if (ex !== jax.SVG.ex) {size.push(script); scripts[i] = {}}
|
||||
}
|
||||
//
|
||||
// Remove markers
|
||||
//
|
||||
scripts = scripts.concat(size); // some scripts have been moved to the size array
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.removeChild(script.previousSibling);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Rerender the changed items
|
||||
//
|
||||
if (size.length) {HUB.Queue(["Rerender",HUB,[size],{}])}
|
||||
//
|
||||
// Try again later (if not all the scripts are null)
|
||||
//
|
||||
|
||||
if (retry) setTimeout(check,check.delay);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
HUB.Register.StartupHook("NativeMML Jax Ready",function () {
|
||||
var nMML = MathJax.OutputJax.NativeMML;
|
||||
var POSTTRANSLATE = nMML.postTranslate;
|
||||
|
||||
nMML.Augment({
|
||||
postTranslate: function (state) {
|
||||
if (!HUB.Browser.isMSIE && CONFIG.matchFor.NativeMML) {
|
||||
//
|
||||
// Check for changes in the web fonts that might affect the sizes
|
||||
// of math elements. This is a periodic check that goes on until
|
||||
// a timeout is reached.
|
||||
//
|
||||
AJAX.timer.start(AJAX,["checkFonts",this,state.jax[this.id]],
|
||||
CONFIG.fontCheckDelay,CONFIG.fontCheckTimeout);
|
||||
}
|
||||
POSTTRANSLATE.apply(this,arguments); // do the original routine
|
||||
},
|
||||
|
||||
//
|
||||
// Check to see if web fonts have been loaded that change the ex size
|
||||
// of the surrounding font, the ex size within the math, or the widths
|
||||
// of math elements. We do this by rechecking the ex and mex sizes
|
||||
// (to see if the font scaling needs adjusting) and by checking the
|
||||
// size of the inner mrow of math elements and mtd elements. The
|
||||
// sizes of these have been stored in the NativeMML object of the
|
||||
// element jax so that we can check for them here.
|
||||
//
|
||||
checkFonts: function (check,scripts) {
|
||||
if (check.time(function () {})) return;
|
||||
var adjust = [], mtd = [], size = [], i, m, script;
|
||||
//
|
||||
// Add the elements used for testing ex and em sizes
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.insertBefore(this.EmExSpan.cloneNode(true),script);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Check to see if anything has changed
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i]; if (!script.parentNode) continue;
|
||||
var jax = script.MathJax.elementJax; if (!jax) continue;
|
||||
var span = document.getElementById(jax.inputID+"-Frame");
|
||||
var math = span.getElementsByTagName("math")[0]; if (!math) continue;
|
||||
jax = jax.NativeMML;
|
||||
//
|
||||
// Check if ex or mex has changed
|
||||
//
|
||||
var test = script.previousSibling;
|
||||
var ex = test.firstChild.offsetWidth/60;
|
||||
var mex = test.lastChild.offsetWidth/60;
|
||||
if (ex === 0 || ex === "NaN") {ex = this.defaultEx; mex = this.defaultMEx}
|
||||
var newEx = (ex !== jax.ex);
|
||||
if (newEx || mex != jax.mex) {
|
||||
var scale = (this.config.matchFontHeight && mex > 1 ? ex/mex : 1);
|
||||
scale = Math.floor(Math.max(this.config.minScaleAdjust/100,scale) * this.config.scale);
|
||||
if (scale/100 !== jax.scale) {size.push([span.style,scale])}
|
||||
jax.scale = scale/100; jax.fontScale = scale+"%"; jax.ex = ex; jax.mex = mex;
|
||||
}
|
||||
|
||||
//
|
||||
// Check width of math elements
|
||||
//
|
||||
if ("scrollWidth" in jax && (newEx || jax.scrollWidth !== math.firstChild.scrollWidth)) {
|
||||
jax.scrollWidth = math.firstChild.scrollWidth;
|
||||
adjust.push([math.parentNode.style,jax.scrollWidth/jax.ex/jax.scale]);
|
||||
}
|
||||
//
|
||||
// Check widths of mtd elements
|
||||
//
|
||||
if (math.MathJaxMtds) {
|
||||
for (var j = 0, n = math.MathJaxMtds.length; j < n; j++) {
|
||||
if (!math.MathJaxMtds[j].parentNode) continue;
|
||||
if (newEx || math.MathJaxMtds[j].firstChild.scrollWidth !== jax.mtds[j]) {
|
||||
jax.mtds[j] = math.MathJaxMtds[j].firstChild.scrollWidth;
|
||||
mtd.push([math.MathJaxMtds[j],jax.mtds[j]/jax.ex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// Remove markers
|
||||
//
|
||||
for (i = 0, m = scripts.length; i < m; i++) {
|
||||
script = scripts[i];
|
||||
if (script.parentNode && script.MathJax.elementJax) {
|
||||
script.parentNode.removeChild(script.previousSibling);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Adjust scaling factor
|
||||
//
|
||||
for (i = 0, m = size.length; i < m; i++) {
|
||||
size[i][0].fontSize = size[i][1] + "%";
|
||||
}
|
||||
//
|
||||
// Adjust width of spans containing math elements that have changed
|
||||
//
|
||||
for (i = 0, m = adjust.length; i < m; i++) {
|
||||
adjust[i][0].width = adjust[i][1].toFixed(3)+"ex";
|
||||
}
|
||||
//
|
||||
// Adjust widths of mtd elements that have changed
|
||||
//
|
||||
for (i = 0, m = mtd.length; i < m; i++) {
|
||||
var style = mtd[i][0].getAttribute("style");
|
||||
style = style.replace(/(($|;)\s*min-width:).*?ex/,"$1 "+mtd[i][1].toFixed(3)+"ex");
|
||||
mtd[i][0].setAttribute("style",style);
|
||||
}
|
||||
//
|
||||
// Try again later
|
||||
//
|
||||
setTimeout(check,check.delay);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
HUB.Startup.signal.Post("MatchWebFonts Extension Ready");
|
||||
AJAX.loadComplete("[MathJax]/extensions/MatchWebFonts.js");
|
||||
|
||||
})(MathJax.Hub,MathJax.Ajax);
|
||||
File diff suppressed because it is too large
Load Diff
-784
@@ -1,784 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/MathML/mml3.js
|
||||
*
|
||||
* This file implements an XSLT transform to convert some MathML 3
|
||||
* constructs to constructs MathJax can render. The transform is
|
||||
* performed in a pre-filter for the MathML input jax, so that the
|
||||
* Show Math As menu will still show the Original MathML correctly,
|
||||
* but the transformed MathML can be obtained from the regular MathML menu.
|
||||
*
|
||||
* To load it, include
|
||||
*
|
||||
* MathML: {
|
||||
* extensions: ["mml3.js"]
|
||||
* }
|
||||
*
|
||||
* in your configuration.
|
||||
*
|
||||
* A portion of this file is taken from mml3mj.xsl which is
|
||||
* Copyright (c) David Carlisle 2008-2015
|
||||
* and is used by permission of David Carlisle, who has agreed to allow us
|
||||
* to release it under the Apache2 license (see below). That portion is
|
||||
* indicated via comments.
|
||||
*
|
||||
* The remainder falls under the copyright that follows.
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
MathJax.Extension["MathML/mml3"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("MathML Jax Ready",function () {
|
||||
|
||||
var MATHML = MathJax.InputJax.MathML,
|
||||
PARSE = MATHML.Parse.prototype;
|
||||
|
||||
MATHML.prefilterHooks.Add(function (data) {
|
||||
if (!MATHML.mml3XSLT) return;
|
||||
|
||||
// Parse the <math> but use MATHML.Parse's preProcessMath to apply the normal preprocessing.
|
||||
if (!MATHML.ParseXML) {MATHML.ParseXML = MATHML.createParser()}
|
||||
var doc = MATHML.ParseXML(PARSE.preProcessMath(data.math));
|
||||
|
||||
// Now transform the <math> using the mml3 stylesheet.
|
||||
var newdoc = MATHML.mml3XSLT.transformToDocument(doc);
|
||||
|
||||
if ((typeof newdoc) === "string") {
|
||||
// Internet Explorer returns a string, so just use it.
|
||||
data.math = newdoc;
|
||||
} else if (window.XMLSerializer) {
|
||||
// Serialize the <math> again. We could directly provide the DOM content
|
||||
// but other prefilterHooks may assume data.math is still a string.
|
||||
var serializer = new XMLSerializer();
|
||||
data.math = serializer.serializeToString(newdoc.documentElement, doc);
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* The following is derived from mml3mj.xsl
|
||||
* (https://github.com/davidcarlisle/web-xslt/blob/master/ctop/mml3mj.xsl)
|
||||
* which is Copyright (c) David Carlisle 2008-2015.
|
||||
* It is used by permission of David Carlisle, who has agreed to allow it to
|
||||
* be released under the Apache License, Version 2.0.
|
||||
*/
|
||||
var BROWSER = MathJax.Hub.Browser;
|
||||
var exslt = '';
|
||||
if (BROWSER.isEdge || BROWSER.isMSIE) {
|
||||
exslt = 'urn:schemas-microsoft-com:xslt'
|
||||
} else {
|
||||
exslt = 'http://exslt.org/common';
|
||||
}
|
||||
var mml3Stylesheet =
|
||||
'<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ' +
|
||||
' xmlns:m="http://www.w3.org/1998/Math/MathML"' +
|
||||
' xmlns:c="' + exslt + '"' +
|
||||
' exclude-result-prefixes="m c">' +
|
||||
'<xsl:output indent="yes" omit-xml-declaration="yes"/>' +
|
||||
'<xsl:output indent="yes" omit-xml-declaration="yes"/><xsl:template match="*">' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:apply-templates/>' +
|
||||
' </xsl:copy>' +
|
||||
'</xsl:template><xsl:template match="m:*[@dir=\'rtl\']" priority="10">' +
|
||||
' <xsl:apply-templates mode="rtl" select="."/>' +
|
||||
'</xsl:template><xsl:template match="@*" mode="rtl">' +
|
||||
' <xsl:copy-of select="."/>' +
|
||||
' <xsl:attribute name="dir">ltr</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="*" mode="rtl">' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:apply-templates select="@*" mode="rtl"/>' +
|
||||
' <xsl:for-each select="node()">' +
|
||||
' <xsl:sort data-type="number" order="descending" select="position()"/>' +
|
||||
' <xsl:text> </xsl:text>' +
|
||||
' <xsl:apply-templates mode="rtl" select="."/>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:copy>' +
|
||||
'</xsl:template><xsl:template match="@open" mode="rtl">' +
|
||||
' <xsl:attribute name="close"><xsl:value-of select="."/></xsl:attribute>' +
|
||||
'</xsl:template><xsl:template match="@open[.=\'(\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">)</xsl:attribute>' +
|
||||
'</xsl:template><xsl:template match="@open[.=\')\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">(</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@open[.=\'[\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">]</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@open[.=\']\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">[</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@open[.=\'{\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">}</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@open[.=\'}\']" mode="rtl">' +
|
||||
' <xsl:attribute name="close">{</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@close" mode="rtl">' +
|
||||
' <xsl:attribute name="open"><xsl:value-of select="."/></xsl:attribute>' +
|
||||
'</xsl:template><xsl:template match="@close[.=\'(\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">)</xsl:attribute>' +
|
||||
'</xsl:template><xsl:template match="@close[.=\')\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">(</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@close[.=\'[\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">]</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@close[.=\']\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">[</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@close[.=\'{\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">}</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="@close[.=\'}\']" mode="rtl">' +
|
||||
' <xsl:attribute name="open">{</xsl:attribute>' +
|
||||
'</xsl:template><xsl:template match="m:mfrac[@bevelled=\'true\']" mode="rtl">' +
|
||||
' <m:mrow>' +
|
||||
' <m:msub><m:mi></m:mi><xsl:apply-templates select="*[2]" mode="rtl"/></m:msub>' +
|
||||
' <m:mo>\</m:mo>' +
|
||||
' <m:msup><m:mi></m:mi><xsl:apply-templates select="*[1]" mode="rtl"/></m:msup>' +
|
||||
' </m:mrow>' +
|
||||
'</xsl:template><xsl:template match="m:mfrac" mode="rtl">' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:apply-templates mode="rtl" select="@*|*"/>' +
|
||||
' </xsl:copy>' +
|
||||
'</xsl:template><xsl:template match="m:mroot" mode="rtl">' +
|
||||
' <m:msup>' +
|
||||
' <m:menclose notation="top right">' +
|
||||
' <xsl:apply-templates mode="rtl" select="@*|*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' <xsl:apply-templates mode="rtl" select="*[2]"/>' +
|
||||
' </m:msup>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msqrt" mode="rtl">' +
|
||||
' <m:menclose notation="top right">' +
|
||||
' <xsl:apply-templates mode="rtl" select="@*|*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
'</xsl:template><xsl:template match="m:mtable|m:munder|m:mover|m:munderover" mode="rtl" priority="2">' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:apply-templates select="@*" mode="rtl"/>' +
|
||||
' <xsl:apply-templates mode="rtl">' +
|
||||
' </xsl:apply-templates>' +
|
||||
' </xsl:copy>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msup" mode="rtl" priority="2">' +
|
||||
' <m:mmultiscripts>' +
|
||||
' <xsl:apply-templates select="*[1]" mode="rtl"/>' +
|
||||
' <m:mprescripts/>' +
|
||||
' <m:none/>' +
|
||||
' <xsl:apply-templates select="*[2]" mode="rtl"/>' +
|
||||
' </m:mmultiscripts>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msub" mode="rtl" priority="2">' +
|
||||
' <m:mmultiscripts>' +
|
||||
' <xsl:apply-templates select="*[1]" mode="rtl"/>' +
|
||||
' <m:mprescripts/>' +
|
||||
' <xsl:apply-templates select="*[2]" mode="rtl"/>' +
|
||||
' <m:none/>' +
|
||||
' </m:mmultiscripts>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msubsup" mode="rtl" priority="2">' +
|
||||
' <m:mmultiscripts>' +
|
||||
' <xsl:apply-templates select="*[1]" mode="rtl"/>' +
|
||||
' <m:mprescripts/>' +
|
||||
' <xsl:apply-templates select="*[2]" mode="rtl"/>' +
|
||||
' <xsl:apply-templates select="*[3]" mode="rtl"/>' +
|
||||
' </m:mmultiscripts>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mmultiscripts" mode="rtl" priority="2">' +
|
||||
' <m:mmultiscripts>' +
|
||||
' <xsl:apply-templates select="*[1]" mode="rtl"/>' +
|
||||
' <xsl:for-each select="m:mprescripts/following-sibling::*[position() mod 2 = 1]">' +
|
||||
' <xsl:sort data-type="number" order="descending" select="position()"/>' +
|
||||
' <xsl:apply-templates select="." mode="rtl"/>' +
|
||||
' <xsl:apply-templates select="following-sibling::*[1]" mode="rtl"/>' +
|
||||
' </xsl:for-each>' +
|
||||
' <m:mprescripts/>' +
|
||||
' <xsl:for-each select="m:mprescripts/preceding-sibling::*[position()!=last()][position() mod 2 = 0]">' +
|
||||
' <xsl:sort data-type="number" order="descending" select="position()"/>' +
|
||||
' <xsl:apply-templates select="." mode="rtl"/>' +
|
||||
' <xsl:apply-templates select="following-sibling::*[1]" mode="rtl"/>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mmultiscripts>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mmultiscripts[not(m:mprescripts)]" mode="rtl" priority="3">' +
|
||||
' <m:mmultiscripts>' +
|
||||
' <xsl:apply-templates select="*[1]" mode="rtl"/>' +
|
||||
' <m:mprescripts/>' +
|
||||
' <xsl:for-each select="*[position() mod 2 = 0]">' +
|
||||
' <xsl:sort data-type="number" order="descending" select="position()"/>' +
|
||||
' <xsl:apply-templates select="." mode="rtl"/>' +
|
||||
' <xsl:apply-templates select="following-sibling::*[1]" mode="rtl"/>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mmultiscripts>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'(\']" mode="rtl">)</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\')\']" mode="rtl">(</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'{\']" mode="rtl">}</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'}\']" mode="rtl">{</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'<\']" mode="rtl">></xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'>\']" mode="rtl"><</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'∈\']" mode="rtl">∋</xsl:template>' +
|
||||
'<xsl:template match="text()[.=\'∋\']" mode="rtl">∈</xsl:template>' +
|
||||
'<xsl:template match="@notation[.=\'radical\']" mode="rtl">' +
|
||||
' <xsl:attribute name="notation">top right</xsl:attribute>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mlongdiv|m:mstack" mode="rtl">' +
|
||||
' <m:mrow dir="ltr">' +
|
||||
' <xsl:apply-templates select="."/>' +
|
||||
' </m:mrow>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mstack" priority="11">' +
|
||||
' <xsl:variable name="m">' +
|
||||
' <m:mtable columnspacing="0em">' +
|
||||
' <xsl:copy-of select="@align"/>' +
|
||||
' <xsl:variable name="t">' +
|
||||
' <xsl:apply-templates select="*" mode="mstack1">' +
|
||||
' <xsl:with-param name="p" select="0"/>' +
|
||||
' </xsl:apply-templates>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:variable name="maxl">' +
|
||||
' <xsl:for-each select="c:node-set($t)/*/@l">' +
|
||||
' <xsl:sort data-type="number" order="descending"/>' +
|
||||
' <xsl:if test="position()=1">' +
|
||||
' <xsl:value-of select="."/>' +
|
||||
' </xsl:if>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:for-each select="c:node-set($t)/*[not(@class=\'mscarries\') or following-sibling::*[1]/@class=\'mscarries\']">' +
|
||||
'<xsl:variable name="c" select="preceding-sibling::*[1][@class=\'mscarries\']"/>' +
|
||||
' <xsl:text> </xsl:text>' +
|
||||
' <m:mtr>' +
|
||||
' <xsl:copy-of select="@class[.=\'msline\']"/>' +
|
||||
' <xsl:variable name="offset" select="$maxl - @l"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="@class=\'msline\' and @l=\'*\'">' +
|
||||
' <xsl:variable name="msl" select="*[1]"/>' +
|
||||
' <xsl:for-each select="(//node())[position()<=$maxl]">' +
|
||||
' <xsl:copy-of select="$msl"/>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$c">' +
|
||||
' <xsl:variable name="ldiff" select="$c/@l - @l"/>' +
|
||||
' <xsl:variable name="loffset" select="$maxl - $c/@l"/>' +
|
||||
' <xsl:for-each select="(//*)[position()<= $offset]">' +
|
||||
' <xsl:variable name="pn" select="position()"/>' +
|
||||
' <xsl:variable name="cy" select="$c/*[position()=$pn - $loffset]"/>' +
|
||||
' <m:mtd>' +
|
||||
' <xsl:if test="$cy/*">' +
|
||||
' <m:mover><m:mphantom><m:mn>0</m:mn></m:mphantom><m:mpadded width="0em" lspace="-0.5width">' +
|
||||
' <xsl:copy-of select="$cy/*"/></m:mpadded></m:mover>' +
|
||||
' </xsl:if>' +
|
||||
' </m:mtd>' +
|
||||
' </xsl:for-each>' +
|
||||
' <xsl:for-each select="*">' +
|
||||
' <xsl:variable name="pn" select="position()"/>' +
|
||||
' <xsl:variable name="cy" select="$c/*[position()=$pn + $ldiff]"/>' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:variable name="b">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="not(string($cy/@crossout) or $cy/@crossout=\'none\')"><xsl:copy-of select="*"/></xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <m:menclose notation="{$cy/@crossout}"><xsl:copy-of select="*"/></m:menclose>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="$cy/m:none or not($cy/*)"><xsl:copy-of select="$b"/></xsl:when>' +
|
||||
' <xsl:when test="not(string($cy/@location)) or $cy/@location=\'n\'">' +
|
||||
' <m:mover>' +
|
||||
' <xsl:copy-of select="$b"/><m:mpadded width="0em" lspace="-0.5width">' +
|
||||
' <xsl:copy-of select="$cy/*"/>' +
|
||||
' </m:mpadded>' +
|
||||
' </m:mover>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'nw\'">' +
|
||||
' <m:mmultiscripts><xsl:copy-of select="$b"/><m:mprescripts/><m:none/><m:mpadded lspace="-1width" width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded></m:mmultiscripts>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'s\'">' +
|
||||
' <m:munder><xsl:copy-of select="$b"/><m:mpadded width="0em" lspace="-0.5width"><xsl:copy-of select="$cy/*"/></m:mpadded></m:munder>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'sw\'">' +
|
||||
' <m:mmultiscripts><xsl:copy-of select="$b"/><m:mprescripts/><m:mpadded lspace="-1width" width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded><m:none/></m:mmultiscripts>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'ne\'">' +
|
||||
' <m:msup><xsl:copy-of select="$b"/><m:mpadded width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded></m:msup>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'se\'">' +
|
||||
' <m:msub><xsl:copy-of select="$b"/><m:mpadded width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded></m:msub>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'w\'">' +
|
||||
' <m:msup><m:mrow/><m:mpadded lspace="-1width" width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded></m:msup>' +
|
||||
' <xsl:copy-of select="$b"/>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$cy/@location=\'e\'">' +
|
||||
' <xsl:copy-of select="$b"/>' +
|
||||
' <m:msup><m:mrow/><m:mpadded width="0em"><xsl:copy-of select="$cy/*"/></m:mpadded></m:msup>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:copy-of select="$b"/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:copy>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:for-each select="(//*)[position()<= $offset]"><m:mtd/></xsl:for-each>' +
|
||||
' <xsl:copy-of select="*"/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </m:mtr>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mtable>' +
|
||||
'</xsl:variable>' +
|
||||
'<xsl:apply-templates mode="ml" select="c:node-set($m)"/>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="*" mode="ml">' +
|
||||
' <xsl:copy>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:apply-templates mode="ml"/>' +
|
||||
' </xsl:copy>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template mode="ml" match="m:mtr[following-sibling::*[1][@class=\'msline\']]">' +
|
||||
' <m:mtr>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:variable name="m" select="following-sibling::*[1]/m:mtd"/>' +
|
||||
' <xsl:for-each select="m:mtd">' +
|
||||
' <xsl:variable name="p" select="position()"/>' +
|
||||
' <m:mtd>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="$m[$p]/m:mpadded">' +
|
||||
' <m:menclose notation="bottom">' +
|
||||
' <m:mpadded depth=".1em" height="1em" width=".4em">' +
|
||||
' <xsl:copy-of select="*"/>' +
|
||||
' </m:mpadded>' +
|
||||
' </m:menclose>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:copy-of select="*"/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </m:mtd>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template><xsl:template mode="ml" match="m:mtr[not(preceding-sibling::*)][@class=\'msline\']" priority="3">' +
|
||||
' <m:mtr>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:for-each select="m:mtd">' +
|
||||
' <m:mtd>' +
|
||||
' <xsl:copy-of select="@*"/>' +
|
||||
' <xsl:if test="m:mpadded">' +
|
||||
' <m:menclose notation="bottom">' +
|
||||
' <m:mpadded depth=".1em" height="1em" width=".4em">' +
|
||||
' <m:mspace width=".2em"/>' +
|
||||
' </m:mpadded>' +
|
||||
' </m:menclose>' +
|
||||
' </xsl:if>' +
|
||||
' </m:mtd>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template><xsl:template mode="ml" match="m:mtr[@class=\'msline\']" priority="2"/>' +
|
||||
'<xsl:template mode="mstack1" match="*">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:param name="maxl" select="0"/>' +
|
||||
' <m:mtr l="{1 + $p}">' +
|
||||
' <xsl:if test="ancestor::mstack[1]/@stackalign=\'left\'">' +
|
||||
' <xsl:attribute name="l"><xsl:value-of select="$p"/></xsl:attribute>' +
|
||||
' </xsl:if>' +
|
||||
' <m:mtd><xsl:apply-templates select="."/></m:mtd>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template mode="mstack1" match="m:msrow">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:param name="maxl" select="0"/>' +
|
||||
' <xsl:variable name="align1" select="ancestor::m:mstack[1]/@stackalign"/>' +
|
||||
' <xsl:variable name="align">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="string($align1)=\'\'">decimalpoint</xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="$align1"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:variable name="row">' +
|
||||
' <xsl:apply-templates mode="mstack1" select="*">' +
|
||||
' <xsl:with-param name="p" select="0"/>' +
|
||||
' </xsl:apply-templates>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:text> </xsl:text>' +
|
||||
' <xsl:variable name="l1">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="$align=\'decimalpoint\' and m:mn">' +
|
||||
' <xsl:for-each select="c:node-set($row)/m:mtr[m:mtd/m:mn][1]">' +
|
||||
' <xsl:value-of select="number(sum(@l))+count(preceding-sibling::*/@l)"/>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$align=\'right\' or $align=\'decimalpoint\'">' +
|
||||
' <xsl:value-of select="count(c:node-set($row)/m:mtr/m:mtd)"/>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:value-of select="0"/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <m:mtr class="msrow" l="{number($l1) + number(sum(@position)) +$p}">' +
|
||||
' <xsl:copy-of select="c:node-set($row)/m:mtr/*"/>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template><xsl:template mode="mstack1" match="m:mn">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:variable name="align1" select="ancestor::m:mstack[1]/@stackalign"/>' +
|
||||
' <xsl:variable name="dp1" select="ancestor::*[@decimalpoint][1]/@decimalpoint"/>' +
|
||||
' <xsl:variable name="align">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="string($align1)=\'\'">decimalpoint</xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="$align1"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:variable name="dp">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="string($dp1)=\'\'">.</xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="$dp1"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <m:mtr l="$p">' +
|
||||
' <xsl:variable name="mn" select="normalize-space(.)"/>' +
|
||||
' <xsl:variable name="len" select="string-length($mn)"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="$align=\'right\' or ($align=\'decimalpoint\' and not(contains($mn,$dp)))">' +
|
||||
' <xsl:attribute name="l"><xsl:value-of select="$p + $len"/></xsl:attribute>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$align=\'center\'">' +
|
||||
' <xsl:attribute name="l"><xsl:value-of select="round(($p + $len) div 2)"/></xsl:attribute>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="$align=\'decimalpoint\'">' +
|
||||
' <xsl:attribute name="l"><xsl:value-of select="$p + string-length(substring-before($mn,$dp))"/></xsl:attribute>' +
|
||||
' </xsl:when>' +
|
||||
' </xsl:choose> <xsl:for-each select="(//node())[position() <=$len]">' +
|
||||
' <xsl:variable name="pos" select="position()"/>' +
|
||||
' <m:mtd><m:mn><xsl:value-of select="substring($mn,$pos,1)"/></m:mn></m:mtd>' +
|
||||
' </xsl:for-each>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msgroup" mode="mstack1">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:variable name="s" select="number(sum(@shift))"/>' +
|
||||
' <xsl:variable name="thisp" select="number(sum(@position))"/>' +
|
||||
' <xsl:for-each select="*">' +
|
||||
' <xsl:apply-templates mode="mstack1" select=".">' +
|
||||
' <xsl:with-param name="p" select="number($p)+$thisp+(position()-1)*$s"/>' +
|
||||
' </xsl:apply-templates>' +
|
||||
' </xsl:for-each>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:msline" mode="mstack1">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:variable name="align1" select="ancestor::m:mstack[1]/@stackalign"/>' +
|
||||
' <xsl:variable name="align">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="string($align1)=\'\'">decimalpoint</xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="$align1"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <m:mtr class="msline">' +
|
||||
' <xsl:attribute name="l">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="not(string(@length)) or @length=0">*</xsl:when>' +
|
||||
' <xsl:when test="string($align)=\'right\' or string($align)=\'decimalpoint\' "><xsl:value-of select="$p+ @length"/></xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="$p"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:attribute>' +
|
||||
' <xsl:variable name="w">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="@mslinethickness=\'thin\'">0.1em</xsl:when>' +
|
||||
' <xsl:when test="@mslinethickness=\'medium\'">0.15em</xsl:when>' +
|
||||
' <xsl:when test="@mslinethickness=\'thick\'">0.2em</xsl:when>' +
|
||||
' <xsl:when test="@mslinethickness"><xsl:value-of select="@mslinethickness"/></xsl:when>' +
|
||||
' <xsl:otherwise>0.15em</xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="not(string(@length)) or @length=0">' +
|
||||
' <m:mtd class="mslinemax">' +
|
||||
' <m:mpadded lspace="-0.2em" width="0em" height="0em">' +
|
||||
' <m:mfrac linethickness="{$w}">' +
|
||||
' <m:mspace width=".4em"/>' +
|
||||
' <m:mrow/>' +
|
||||
' </m:mfrac>' +
|
||||
' </m:mpadded>' +
|
||||
' </m:mtd>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:variable name="l" select="@length"/>' +
|
||||
' <xsl:for-each select="(//node())[position()<=$l]">' +
|
||||
' <m:mtd class="msline">' +
|
||||
' <m:mpadded lspace="-0.2em" width="0em" height="0em">' +
|
||||
' <m:mfrac linethickness="{$w}">' +
|
||||
' <m:mspace width=".4em"/>' +
|
||||
' <m:mrow/>' +
|
||||
' </m:mfrac>' +
|
||||
' </m:mpadded>' +
|
||||
' </m:mtd>' +
|
||||
' </xsl:for-each>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mscarries" mode="mstack1">' +
|
||||
' <xsl:param name="p"/>' +
|
||||
' <xsl:variable name="align1" select="ancestor::m:mstack[1]/@stackalign"/>' +
|
||||
' <xsl:variable name="l1">' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="string($align1)=\'left\'">0</xsl:when>' +
|
||||
' <xsl:otherwise><xsl:value-of select="count(*)"/></xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </xsl:variable>' +
|
||||
' <m:mtr class="mscarries" l="{$p + $l1 + sum(@position)}">' +
|
||||
' <xsl:apply-templates select="*" mode="msc"/>' +
|
||||
' </m:mtr>' +
|
||||
'</xsl:template><xsl:template match="*" mode="msc">' +
|
||||
' <m:mtd>' +
|
||||
' <xsl:copy-of select="../@location|../@crossout"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="../@scriptsizemultiplier">' +
|
||||
' <m:mstyle mathsize="{round(../@scriptsizemultiplier div .007)}%">' +
|
||||
' <xsl:apply-templates select="."/>' +
|
||||
' </m:mstyle>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:apply-templates select="."/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </m:mtd>' +
|
||||
'</xsl:template><xsl:template match="m:mscarry" mode="msc">' +
|
||||
' <m:mtd>' +
|
||||
' <xsl:copy-of select="@location|@crossout"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="../@scriptsizemultiplier">' +
|
||||
' <m:mstyle mathsize="{round(../@scriptsizemultiplier div .007)}%">' +
|
||||
' <xsl:apply-templates/>' +
|
||||
' </m:mstyle>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:apply-templates/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' </m:mtd>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:mlongdiv" priority="11">' +
|
||||
' <xsl:variable name="ms">' +
|
||||
' <m:mstack>' +
|
||||
' <xsl:copy-of select="(ancestor-or-self::*/@decimalpoint)[last()]"/>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="@longdivstyle=\'left)(right\'">' +
|
||||
' <m:msrow>' +
|
||||
' <m:mrow><xsl:copy-of select="*[1]"/></m:mrow>' +
|
||||
' <m:mo>)</m:mo>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' <m:mo>(</m:mo>' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'left/\right\'">' +
|
||||
' <m:msrow>' +
|
||||
' <m:mrow><xsl:copy-of select="*[1]"/></m:mrow>' +
|
||||
' <m:mo>/</m:mo>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' <m:mo>\</m:mo>' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\':right=right\'">' +
|
||||
' <m:msrow>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' <m:mo>:</m:mo>' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' <m:mo>=</m:mo>' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'stackedrightright\'' +
|
||||
' or @longdivstyle=\'mediumstackedrightright\'' +
|
||||
' or @longdivstyle=\'shortstackedrightright\'' +
|
||||
' or @longdivstyle=\'stackedleftleft\'' +
|
||||
' ">' +
|
||||
' <xsl:attribute name="align">top</xsl:attribute>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'stackedleftlinetop\'">' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' <m:msline length="{string-length(*[3])-1}"/>' +
|
||||
' <m:msrow>' +
|
||||
' <m:mrow>' +
|
||||
' <m:menclose notation="bottom right">' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' </m:mrow>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'righttop\'">' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' <m:msline length="{string-length(*[3])}"/>' +
|
||||
' <m:msrow>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' <m:menclose notation="top left bottom">' +
|
||||
' <xsl:copy-of select="*[1]"/></m:menclose>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:copy-of select="*[2]"/>' +
|
||||
' <m:msline length="{string-length(*[3])}"/>' +
|
||||
' <m:msrow>' +
|
||||
' <m:mrow><xsl:copy-of select="*[1]"/></m:mrow>' +
|
||||
' <m:mo>)</m:mo>' +
|
||||
' <xsl:copy-of select="*[3]"/>' +
|
||||
' </m:msrow>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
' <xsl:copy-of select="*[position()>3]"/>' +
|
||||
' </m:mstack>' +
|
||||
' </xsl:variable>' +
|
||||
' <xsl:choose>' +
|
||||
' <xsl:when test="@longdivstyle=\'stackedrightright\'">' +
|
||||
' <m:menclose notation="right">' +
|
||||
' <xsl:apply-templates select="c:node-set($ms)"/>' +
|
||||
' </m:menclose>' +
|
||||
' <m:mtable align="top">' +
|
||||
' <m:mtr>' +
|
||||
' <m:menclose notation="bottom">' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' </m:mtr>' +
|
||||
' <m:mtr>' +
|
||||
' <mtd><xsl:copy-of select="*[2]"/></mtd>' +
|
||||
' </m:mtr>' +
|
||||
' </m:mtable>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'mediumstackedrightright\'">' +
|
||||
' <xsl:apply-templates select="c:node-set($ms)"/>' +
|
||||
' <m:menclose notation="left">' +
|
||||
' <m:mtable align="top">' +
|
||||
' <m:mtr>' +
|
||||
' <m:menclose notation="bottom">' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' </m:mtr>' +
|
||||
' <m:mtr>' +
|
||||
' <mtd><xsl:copy-of select="*[2]"/></mtd>' +
|
||||
' </m:mtr>' +
|
||||
' </m:mtable>' +
|
||||
' </m:menclose>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'shortstackedrightright\'">' +
|
||||
' <xsl:apply-templates select="c:node-set($ms)"/>' +
|
||||
' <m:mtable align="top">' +
|
||||
' <m:mtr>' +
|
||||
' <m:menclose notation="left bottom">' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' </m:mtr>' +
|
||||
' <m:mtr>' +
|
||||
' <mtd><xsl:copy-of select="*[2]"/></mtd>' +
|
||||
' </m:mtr>' +
|
||||
' </m:mtable>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:when test="@longdivstyle=\'stackedleftleft\'">' +
|
||||
' <m:mtable align="top">' +
|
||||
' <m:mtr>' +
|
||||
' <m:menclose notation="bottom">' +
|
||||
' <xsl:copy-of select="*[1]"/>' +
|
||||
' </m:menclose>' +
|
||||
' </m:mtr>' +
|
||||
' <m:mtr>' +
|
||||
' <mtd><xsl:copy-of select="*[2]"/></mtd>' +
|
||||
' </m:mtr>' +
|
||||
' </m:mtable>' +
|
||||
' <m:menclose notation="left">' +
|
||||
' <xsl:apply-templates select="c:node-set($ms)"/>' +
|
||||
' </m:menclose>' +
|
||||
' </xsl:when>' +
|
||||
' <xsl:otherwise>' +
|
||||
' <xsl:apply-templates select="c:node-set($ms)"/>' +
|
||||
' </xsl:otherwise>' +
|
||||
' </xsl:choose>' +
|
||||
'</xsl:template>' +
|
||||
'<xsl:template match="m:menclose[@notation=\'madruwb\']" mode="rtl">' +
|
||||
' <m:menclose notation="bottom right">' +
|
||||
' <xsl:apply-templates mode="rtl"/>' +
|
||||
' </m:menclose>' +
|
||||
'</xsl:template></xsl:stylesheet>';
|
||||
|
||||
/*
|
||||
* End of mml3mj.xsl material.
|
||||
*/
|
||||
|
||||
var mml3;
|
||||
if (window.XSLTProcessor) {
|
||||
// standard method: just use an XSLTProcessor and parse the stylesheet
|
||||
if (!MATHML.ParseXML) {MATHML.ParseXML = MATHML.createParser()}
|
||||
MATHML.mml3XSLT = new XSLTProcessor();
|
||||
MATHML.mml3XSLT.importStylesheet(MATHML.ParseXML(mml3Stylesheet));
|
||||
} else if (MathJax.Hub.Browser.isMSIE) {
|
||||
// nonstandard methods for Internet Explorer
|
||||
if (MathJax.Hub.Browser.versionAtLeast("9.0") || (document.documentMode||0) >= 9) {
|
||||
// For Internet Explorer >= 9, use createProcessor
|
||||
mml3 = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
|
||||
mml3.loadXML(mml3Stylesheet);
|
||||
var xslt = new ActiveXObject("Msxml2.XSLTemplate");
|
||||
xslt.stylesheet = mml3;
|
||||
MATHML.mml3XSLT = {
|
||||
mml3: xslt.createProcessor(),
|
||||
transformToDocument: function(doc) {
|
||||
this.mml3.input = doc;
|
||||
this.mml3.transform();
|
||||
return this.mml3.output;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// For Internet Explorer <= 8, use transformNode
|
||||
mml3 = MATHML.createMSParser();
|
||||
mml3.async = false;
|
||||
mml3.loadXML(mml3Stylesheet);
|
||||
MATHML.mml3XSLT = {
|
||||
mml3: mml3,
|
||||
transformToDocument: function(doc) {
|
||||
return doc.documentElement.transformNode(this.mml3);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// No XSLT support. Do not change the <math> content.
|
||||
MATHML.mml3XSLT = null;
|
||||
}
|
||||
|
||||
// Tweak CSS to avoid some browsers rearranging HTML output
|
||||
MathJax.Ajax.Styles({
|
||||
".MathJax .mi, .MathJax .mo, .MathJax .mn, .MathJax .mtext": {
|
||||
direction: "ltr",
|
||||
display: "inline-block"
|
||||
},
|
||||
".MathJax .ms, .MathJax .mspace, .MathJax .mglyph": {
|
||||
direction: "ltr",
|
||||
display: "inline-block"
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("MathML mml3.js Ready");
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/MathML/mml3.js");
|
||||
-348
@@ -1,348 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/Safe.js
|
||||
*
|
||||
* Implements a "Safe" mode that disables features that could be
|
||||
* misused in a shared environment (such as href's to javascript URL's).
|
||||
* See the CONFIG variable below for configuration options.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (HUB,AJAX) {
|
||||
var VERSION = "2.6.0";
|
||||
|
||||
var CONFIG = MathJax.Hub.CombineConfig("Safe",{
|
||||
allow: {
|
||||
//
|
||||
// Values can be "all", "safe", or "none"
|
||||
//
|
||||
URLs: "safe", // safe are in safeProtocols below
|
||||
classes: "safe", // safe start with MJX-
|
||||
cssIDs: "safe", // safe start with MJX-
|
||||
styles: "safe", // safe are in safeStyles below
|
||||
fontsize: "all", // safe are between sizeMin and sizeMax em's
|
||||
require: "safe" // safe are in safeRequire below
|
||||
},
|
||||
sizeMin: .7, // \scriptsize
|
||||
sizeMax: 1.44, // \large
|
||||
safeProtocols: {
|
||||
http: true,
|
||||
https: true,
|
||||
file: true,
|
||||
javascript: false
|
||||
},
|
||||
safeStyles: {
|
||||
color: true,
|
||||
backgroundColor: true,
|
||||
border: true,
|
||||
cursor: true,
|
||||
margin: true,
|
||||
padding: true,
|
||||
textShadow: true,
|
||||
fontFamily: true,
|
||||
fontSize: true,
|
||||
fontStyle: true,
|
||||
fontWeight: true,
|
||||
opacity: true,
|
||||
outline: true
|
||||
},
|
||||
safeRequire: {
|
||||
action: true,
|
||||
amscd: true,
|
||||
amsmath: true,
|
||||
amssymbols: true,
|
||||
autobold: false,
|
||||
"autoload-all": false,
|
||||
bbox: true,
|
||||
begingroup: true,
|
||||
boldsymbol: true,
|
||||
cancel: true,
|
||||
color: true,
|
||||
enclose: true,
|
||||
extpfeil: true,
|
||||
HTML: true,
|
||||
mathchoice: true,
|
||||
mhchem: true,
|
||||
newcommand: true,
|
||||
noErrors: false,
|
||||
noUndefined: false,
|
||||
unicode: true,
|
||||
verb: true
|
||||
}
|
||||
});
|
||||
|
||||
var ALLOW = CONFIG.allow;
|
||||
if (ALLOW.fontsize !== "all") {CONFIG.safeStyles.fontSize = false}
|
||||
|
||||
var SAFE = MathJax.Extension.Safe = {
|
||||
version: VERSION,
|
||||
config: CONFIG,
|
||||
div1: document.createElement("div"), // for CSS processing
|
||||
div2: document.createElement("div"),
|
||||
|
||||
//
|
||||
// Methods called for MathML attribute processing
|
||||
//
|
||||
filter: {
|
||||
href: "filterURL",
|
||||
src: "filterURL",
|
||||
altimg: "filterURL",
|
||||
"class": "filterClass",
|
||||
style: "filterStyles",
|
||||
id: "filterID",
|
||||
fontsize: "filterFontSize",
|
||||
mathsize: "filterFontSize",
|
||||
scriptminsize: "filterFontSize",
|
||||
scriptsizemultiplier: "filterSizeMultiplier",
|
||||
scriptlevel: "filterScriptLevel"
|
||||
},
|
||||
|
||||
//
|
||||
// Filter HREF URL's
|
||||
//
|
||||
filterURL: function (url) {
|
||||
var protocol = (url.match(/^\s*([a-z]+):/i)||[null,""])[1].toLowerCase();
|
||||
if (ALLOW.URLs === "none" ||
|
||||
(ALLOW.URLs !== "all" && !CONFIG.safeProtocols[protocol])) {url = null}
|
||||
return url;
|
||||
},
|
||||
|
||||
//
|
||||
// Filter class names and css ID's
|
||||
//
|
||||
filterClass: function (CLASS) {
|
||||
if (ALLOW.classes === "none" ||
|
||||
(ALLOW.classes !== "all" && !CLASS.match(/^MJX-[-a-zA-Z0-9_.]+$/))) {CLASS = null}
|
||||
return CLASS;
|
||||
},
|
||||
filterID: function (id) {
|
||||
if (ALLOW.cssIDs === "none" ||
|
||||
(ALLOW.cssIDs !== "all" && !id.match(/^MJX-[-a-zA-Z0-9_.]+$/))) {id = null}
|
||||
return id;
|
||||
},
|
||||
|
||||
//
|
||||
// Filter style strings
|
||||
//
|
||||
filterStyles: function (styles) {
|
||||
if (ALLOW.styles === "all") {return styles}
|
||||
if (ALLOW.styles === "none") {return null}
|
||||
try {
|
||||
//
|
||||
// Set the div1 styles to the given styles, and clear div2
|
||||
//
|
||||
var STYLE1 = this.div1.style, STYLE2 = this.div2.style;
|
||||
STYLE1.cssText = styles; STYLE2.cssText = "";
|
||||
//
|
||||
// Check each allowed style and transfer OK ones to div2
|
||||
//
|
||||
for (var name in CONFIG.safeStyles) {if (CONFIG.safeStyles.hasOwnProperty(name)) {
|
||||
var value = this.filterStyle(name,STYLE1[name]);
|
||||
if (value != null) {STYLE2[name] = value}
|
||||
}}
|
||||
//
|
||||
// Return the div2 style string
|
||||
//
|
||||
styles = STYLE2.cssText;
|
||||
} catch (e) {styles = null}
|
||||
return styles;
|
||||
},
|
||||
//
|
||||
// Filter an individual name:value style pair
|
||||
//
|
||||
filterStyle: function (name,value) {
|
||||
if (typeof value !== "string") {return null}
|
||||
if (value.match(/^\s*expression/)) {return null}
|
||||
if (value.match(/javascript:/)) {return null}
|
||||
return (CONFIG.safeStyles[name] ? value : null);
|
||||
},
|
||||
|
||||
//
|
||||
// Filter TeX font size values (in em's)
|
||||
//
|
||||
filterSize: function (size) {
|
||||
if (ALLOW.fontsize === "none") {return null}
|
||||
if (ALLOW.fontsize !== "all")
|
||||
{size = Math.min(Math.max(size,CONFIG.sizeMin),CONFIG.sizeMax)}
|
||||
return size;
|
||||
},
|
||||
filterFontSize: function (size) {
|
||||
return (ALLOW.fontsize === "all" ? size: null);
|
||||
},
|
||||
|
||||
//
|
||||
// Filter scriptsizemultiplier
|
||||
//
|
||||
filterSizeMultiplier: function (size) {
|
||||
if (ALLOW.fontsize === "none") {size = null}
|
||||
else if (ALLOW.fontsize !== "all") {size = Math.min(1,Math.max(.6,size)).toString()}
|
||||
return size;
|
||||
},
|
||||
//
|
||||
// Filter scriptLevel
|
||||
//
|
||||
filterScriptLevel: function (level) {
|
||||
if (ALLOW.fontsize === "none") {level = null}
|
||||
else if (ALLOW.fontsize !== "all") {level = Math.max(0,level).toString()}
|
||||
return level;
|
||||
},
|
||||
|
||||
//
|
||||
// Filter TeX extension names
|
||||
//
|
||||
filterRequire: function (name) {
|
||||
if (ALLOW.require === "none" ||
|
||||
(ALLOW.require !== "all" && !CONFIG.safeRequire[name.toLowerCase()]))
|
||||
{name = null}
|
||||
return name;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
HUB.Register.StartupHook("TeX HTML Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
//
|
||||
// Implements \href{url}{math} with URL filter
|
||||
//
|
||||
HREF_attribute: function (name) {
|
||||
var url = SAFE.filterURL(this.GetArgument(name)),
|
||||
arg = this.GetArgumentMML(name);
|
||||
if (url) {arg.With({href:url})}
|
||||
this.Push(arg);
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \class{name}{math} with class-name filter
|
||||
//
|
||||
CLASS_attribute: function (name) {
|
||||
var CLASS = SAFE.filterClass(this.GetArgument(name)),
|
||||
arg = this.GetArgumentMML(name);
|
||||
if (CLASS) {
|
||||
if (arg["class"] != null) {CLASS = arg["class"] + " " + CLASS}
|
||||
arg.With({"class":CLASS});
|
||||
}
|
||||
this.Push(arg);
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \style{style-string}{math} with style filter
|
||||
//
|
||||
STYLE_attribute: function (name) {
|
||||
var style = SAFE.filterStyles(this.GetArgument(name)),
|
||||
arg = this.GetArgumentMML(name);
|
||||
if (style) {
|
||||
if (arg.style != null) {
|
||||
if (style.charAt(style.length-1) !== ";") {style += ";"}
|
||||
style = arg.style + " " + style;
|
||||
}
|
||||
arg.With({style: style});
|
||||
}
|
||||
this.Push(arg);
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \cssId{id}{math} with ID filter
|
||||
//
|
||||
ID_attribute: function (name) {
|
||||
var ID = SAFE.filterID(this.GetArgument(name)),
|
||||
arg = this.GetArgumentMML(name);
|
||||
if (ID) {arg.With({id:ID})}
|
||||
this.Push(arg);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
HUB.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
PARSE = TEX.Parse, METHOD = SAFE.filter;
|
||||
|
||||
PARSE.Augment({
|
||||
|
||||
//
|
||||
// Implements \require{name} with filtering
|
||||
//
|
||||
Require: function (name) {
|
||||
var file = this.GetArgument(name).replace(/.*\//,"").replace(/[^a-z0-9_.-]/ig,"");
|
||||
file = SAFE.filterRequire(file);
|
||||
if (file) {this.Extension(null,file)}
|
||||
},
|
||||
|
||||
//
|
||||
// Controls \mmlToken attributes
|
||||
//
|
||||
MmlFilterAttribute: function (name,value) {
|
||||
if (METHOD[name]) {value = SAFE[METHOD[name]](value)}
|
||||
return value;
|
||||
},
|
||||
|
||||
//
|
||||
// Handles font size macros with filtering
|
||||
//
|
||||
SetSize: function (name,size) {
|
||||
size = SAFE.filterSize(size);
|
||||
if (size) {
|
||||
this.stack.env.size = size;
|
||||
this.Push(TEX.Stack.Item.style().With({styles: {mathsize: size+"em"}}));
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
HUB.Register.StartupHook("TeX bbox Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
|
||||
//
|
||||
// Filter the styles for \bbox
|
||||
//
|
||||
TEX.Parse.Augment({
|
||||
BBoxStyle: function (styles) {return SAFE.filterStyles(styles)}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
HUB.Register.StartupHook("MathML Jax Ready",function () {
|
||||
var PARSE = MathJax.InputJax.MathML.Parse,
|
||||
METHOD = SAFE.filter;
|
||||
|
||||
//
|
||||
// Filter MathML attributes
|
||||
//
|
||||
PARSE.Augment({
|
||||
filterAttribute: function (name,value) {
|
||||
if (METHOD[name]) {value = SAFE[METHOD[name]](value)}
|
||||
return value;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// MathML input (href, style, fontsize, class, id)
|
||||
|
||||
HUB.Startup.signal.Post("Safe Extension Ready");
|
||||
AJAX.loadComplete("[MathJax]/extensions/Safe.js");
|
||||
|
||||
})(MathJax.Hub,MathJax.Ajax);
|
||||
-158
@@ -1,158 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/AMScd.js
|
||||
*
|
||||
* Implements the CD environment for commutative diagrams.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/AMScd"] = {
|
||||
version: "2.6.0",
|
||||
config: MathJax.Hub.CombineConfig("TeX.CD",{
|
||||
colspace: "5pt",
|
||||
rowspace: "5pt",
|
||||
harrowsize: "2.75em",
|
||||
varrowsize: "1.75em",
|
||||
hideHorizontalLabels: false
|
||||
})
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
TEX = MathJax.InputJax.TeX,
|
||||
STACKITEM = TEX.Stack.Item,
|
||||
TEXDEF = TEX.Definitions,
|
||||
CONFIG = MathJax.Extension["TeX/AMScd"].config;
|
||||
|
||||
TEXDEF.environment.CD = "CD_env";
|
||||
TEXDEF.special["@"] = "CD_arrow";
|
||||
TEXDEF.macros.minCDarrowwidth = "CD_minwidth";
|
||||
TEXDEF.macros.minCDarrowheight = "CD_minheight";
|
||||
|
||||
TEX.Parse.Augment({
|
||||
//
|
||||
// Implements \begin{CD}...\end{CD}
|
||||
//
|
||||
CD_env: function (begin) {
|
||||
this.Push(begin);
|
||||
return STACKITEM.array().With({
|
||||
arraydef: {
|
||||
columnalign: "center",
|
||||
columnspacing: CONFIG.colspace,
|
||||
rowspacing: CONFIG.rowspace,
|
||||
displaystyle: true
|
||||
},
|
||||
minw: this.stack.env.CD_minw || CONFIG.harrowsize,
|
||||
minh: this.stack.env.CD_minh || CONFIG.varrowsize
|
||||
});
|
||||
},
|
||||
|
||||
CD_arrow: function (name) {
|
||||
var c = this.string.charAt(this.i);
|
||||
if (!c.match(/[><VA.|=]/)) {return this.Other(name)} else {this.i++}
|
||||
|
||||
var top = this.stack.Top();
|
||||
if (!top.isa(STACKITEM.array) || top.data.length) {
|
||||
this.CD_cell(name);
|
||||
top = this.stack.Top();
|
||||
}
|
||||
//
|
||||
// Add enough cells to place the arrow correctly
|
||||
//
|
||||
var arrowRow = ((top.table.length % 2) === 1);
|
||||
var n = (top.row.length + (arrowRow ? 0 : 1)) % 2;
|
||||
while (n) {this.CD_cell(name); n--}
|
||||
|
||||
var mml;
|
||||
var hdef = {minsize: top.minw, stretchy:true},
|
||||
vdef = {minsize: top.minh, stretchy:true, symmetric:true, lspace:0, rspace:0};
|
||||
|
||||
if (c === ".") {}
|
||||
else if (c === "|") {mml = this.mmlToken(MML.mo("\u2225").With(vdef))}
|
||||
else if (c === "=") {mml = this.mmlToken(MML.mo("=").With(hdef))}
|
||||
else {
|
||||
//
|
||||
// for @>>> @<<< @VVV and @AAA, get the arrow and labels
|
||||
//
|
||||
var arrow = {">":"\u2192", "<":"\u2190", V:"\u2193", A:"\u2191"}[c];
|
||||
var a = this.GetUpTo(name+c,c),
|
||||
b = this.GetUpTo(name+c,c);
|
||||
|
||||
if (c === ">" || c === "<") {
|
||||
//
|
||||
// Lay out horizontal arrows with munderover if it has labels
|
||||
//
|
||||
mml = MML.mo(arrow).With(hdef);
|
||||
if (!a) {a = "\\kern "+top.minw} // minsize needs work
|
||||
if (a || b) {
|
||||
var pad = {width:"+11mu", lspace:"6mu"};
|
||||
mml = MML.munderover(this.mmlToken(mml));
|
||||
if (a) {
|
||||
a = TEX.Parse(a,this.stack.env).mml();
|
||||
mml.SetData(mml.over,MML.mpadded(a).With(pad).With({voffset:".1em"}));
|
||||
}
|
||||
if (b) {
|
||||
b = TEX.Parse(b,this.stack.env).mml();
|
||||
mml.SetData(mml.under,MML.mpadded(b).With(pad));
|
||||
}
|
||||
if (CONFIG.hideHorizontalLabels)
|
||||
{mml = MML.mpadded(mml).With({depth:0, height:".67em"})}
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// Lay out vertical arrows with mrow if there are labels
|
||||
//
|
||||
mml = arrow = this.mmlToken(MML.mo(arrow).With(vdef));
|
||||
if (a || b) {
|
||||
mml = MML.mrow();
|
||||
if (a) {mml.Append(TEX.Parse("\\scriptstyle\\llap{"+a+"}",this.stack.env).mml())}
|
||||
mml.Append(arrow.With({texClass: MML.TEXCLASS.ORD}));
|
||||
if (b) {mml.Append(TEX.Parse("\\scriptstyle\\rlap{"+b+"}",this.stack.env).mml())}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mml) {this.Push(mml)};
|
||||
this.CD_cell(name);
|
||||
},
|
||||
CD_cell: function (name) {
|
||||
var top = this.stack.Top();
|
||||
if ((top.table||[]).length % 2 === 0 && (top.row||[]).length === 0) {
|
||||
//
|
||||
// Add a strut to the first cell in even rows to get
|
||||
// better spacing of arrow rows.
|
||||
//
|
||||
this.Push(MML.mpadded().With({height:"8.5pt",depth:"2pt"}));
|
||||
}
|
||||
this.Push(STACKITEM.cell().With({isEntry:true, name:name}));
|
||||
},
|
||||
|
||||
CD_minwidth: function (name) {
|
||||
this.stack.env.CD_minw = this.GetDimen(name);
|
||||
},
|
||||
CD_minheight: function (name) {
|
||||
this.stack.env.CD_minh = this.GetDimen(name);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/AMScd.js");
|
||||
-106
@@ -1,106 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/HTML.js
|
||||
*
|
||||
* Implements the \href, \class, \style, \cssId macros.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/HTML"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var TEXDEF = TEX.Definitions;
|
||||
|
||||
TEXDEF.Add({
|
||||
macros: {
|
||||
href: 'HREF_attribute',
|
||||
"class": 'CLASS_attribute',
|
||||
style: 'STYLE_attribute',
|
||||
cssId: 'ID_attribute'
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
//
|
||||
// Implements \href{url}{math}
|
||||
//
|
||||
HREF_attribute: function (name) {
|
||||
var url = this.GetArgument(name),
|
||||
arg = this.GetArgumentMML(name);
|
||||
this.Push(arg.With({href:url}));
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \class{name}{math}
|
||||
//
|
||||
CLASS_attribute: function (name) {
|
||||
var CLASS = this.GetArgument(name),
|
||||
arg = this.GetArgumentMML(name);
|
||||
if (arg["class"] != null) {CLASS = arg["class"] + " " + CLASS}
|
||||
this.Push(arg.With({"class":CLASS}));
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \style{style-string}{math}
|
||||
//
|
||||
STYLE_attribute: function (name) {
|
||||
var style = this.GetArgument(name),
|
||||
arg = this.GetArgumentMML(name);
|
||||
// check that it looks like a style string
|
||||
if (arg.style != null) {
|
||||
if (style.charAt(style.length-1) !== ";") {style += ";"}
|
||||
style = arg.style + " " + style;
|
||||
}
|
||||
this.Push(arg.With({style: style}));
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \cssId{id}{math}
|
||||
//
|
||||
ID_attribute: function (name) {
|
||||
var ID = this.GetArgument(name),
|
||||
arg = this.GetArgumentMML(name);
|
||||
this.Push(arg.With({id:ID}));
|
||||
},
|
||||
|
||||
//
|
||||
// returns an argument that is a single MathML element
|
||||
// (in an mrow if necessary)
|
||||
//
|
||||
GetArgumentMML: function (name) {
|
||||
var arg = this.ParseArg(name);
|
||||
if (arg.inferred && arg.data.length == 1)
|
||||
{arg = arg.data[0]} else {delete arg.inferred}
|
||||
return arg;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX HTML Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/HTML.js");
|
||||
-83
@@ -1,83 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/action.js
|
||||
*
|
||||
* Implements the \mathtip, \texttip, and \toggle macros, which give
|
||||
* access from TeX to the <maction> tag in the MathML that underlies
|
||||
* MathJax's internal format.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* \mathtip{math}{tip} % use "tip" (in math mode) as tooltip for "math"
|
||||
* \texttip{math}{tip} % use "tip" (in text mode) as tooltip for "math"
|
||||
* \toggle{math1}{math2}...\endtoggle
|
||||
* % show math1, and when clicked, show math2, and so on.
|
||||
* % When the last one is clicked, go back to math1.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/action"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
MML = MathJax.ElementJax.mml;
|
||||
|
||||
//
|
||||
// Set up control sequenecs
|
||||
//
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
toggle: 'Toggle',
|
||||
mathtip: 'Mathtip',
|
||||
texttip: ['Macro','\\mathtip{#1}{\\text{#2}}',2]
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
//
|
||||
// Implement \toggle {math1} {math2} ... \endtoggle
|
||||
// (as an <maction actiontype="toggle">)
|
||||
//
|
||||
Toggle: function (name) {
|
||||
var data = [], arg;
|
||||
while ((arg = this.GetArgument(name)) !== "\\endtoggle")
|
||||
{data.push(TEX.Parse(arg,this.stack.env).mml())}
|
||||
this.Push(MML.maction.apply(MML,data).With({actiontype: MML.ACTIONTYPE.TOGGLE}));
|
||||
},
|
||||
|
||||
//
|
||||
// Implement \mathtip{math}{tip}
|
||||
// (an an <maction actiontype="tooltip">)
|
||||
//
|
||||
Mathtip: function(name) {
|
||||
var arg = this.ParseArg(name), tip = this.ParseArg(name);
|
||||
this.Push(MML.maction(arg,tip).With({actiontype: MML.ACTIONTYPE.TOOLTIP}));
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX action Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/action.js");
|
||||
@@ -1,50 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/autobold.js
|
||||
*
|
||||
* Adds \boldsymbol around mathematics that appears in a section
|
||||
* of an HTML page that is in bold.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/autobold"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
|
||||
TEX.prefilterHooks.Add(function (data) {
|
||||
var span = data.script.parentNode.insertBefore(document.createElement("span"),data.script);
|
||||
span.visibility = "hidden";
|
||||
span.style.fontFamily = "Times, serif";
|
||||
span.appendChild(document.createTextNode("ABCXYZabcxyz"));
|
||||
var W = span.offsetWidth;
|
||||
span.style.fontWeight = "bold";
|
||||
if (W && span.offsetWidth === W) {data.math = "\\boldsymbol{"+data.math+"}"}
|
||||
span.parentNode.removeChild(span);
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX autobold Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/autobold.js");
|
||||
@@ -1,83 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/autoload-all.js
|
||||
*
|
||||
* Provides pre-defined macros to autoload all the extensions
|
||||
* so that all macros that MathJax knows about are available.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2013-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/autoload-all"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var EXTENSIONS = {
|
||||
action: ["mathtip","texttip","toggle"],
|
||||
AMSmath: ["mathring","nobreakspace","negmedspace","negthickspace","intI",
|
||||
"iiiint","idotsint","dddot","ddddot","sideset","boxed",
|
||||
"substack","injlim","projlim","varliminf","varlimsup",
|
||||
"varinjlim","varprojlim","DeclareMathOperator","operatorname",
|
||||
"genfrac","tfrac","dfrac","binom","tbinom","dbinom","cfrac",
|
||||
"shoveleft","shoveright","xrightarrow","xleftarrow"],
|
||||
begingroup: ["begingroup","endgroup","gdef","global"],
|
||||
cancel: ["cancel","bcancel","xcancel","cancelto"],
|
||||
color: ["color","textcolor","colorbox","fcolorbox","definecolor"],
|
||||
enclose: ["enclose"],
|
||||
extpfeil: ["Newextarrow","xlongequal","xmapsto","xtofrom",
|
||||
"xtwoheadleftarrow","xtwoheadrightarrow"],
|
||||
mhchem: ["ce","cee","cf"]
|
||||
};
|
||||
|
||||
var ENVIRONMENTS = {
|
||||
AMSmath: ["subarray","smallmatrix","equation","equation*"],
|
||||
AMScd: ["CD"]
|
||||
};
|
||||
|
||||
var name, i, m, defs = {macros:{}, environment:{}};
|
||||
|
||||
for (name in EXTENSIONS) {if (EXTENSIONS.hasOwnProperty(name)) {
|
||||
if (!MathJax.Extension["TeX/"+name]) {
|
||||
var macros = EXTENSIONS[name];
|
||||
for (i = 0, m = macros.length; i < m; i++)
|
||||
{defs.macros[macros[i]] = ["Extension",name]}
|
||||
}
|
||||
}}
|
||||
|
||||
for (name in ENVIRONMENTS) {if (ENVIRONMENTS.hasOwnProperty(name)) {
|
||||
if (!MathJax.Extension["TeX/"+name]) {
|
||||
var envs = ENVIRONMENTS[name];
|
||||
for (i = 0, m = envs.length; i < m; i++)
|
||||
{defs.environment[envs[i]] = ["ExtensionEnv",null,name]}
|
||||
}
|
||||
}}
|
||||
|
||||
MathJax.InputJax.TeX.Definitions.Add(defs);
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX autoload-all Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Callback.Queue(
|
||||
["Require",MathJax.Ajax,"[MathJax]/extensions/TeX/AMSsymbols.js"],
|
||||
["loadComplete",MathJax.Ajax,"[MathJax]/extensions/TeX/autoload-all.js"]
|
||||
);
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/bbox.js
|
||||
*
|
||||
* This file implements the \bbox macro, which creates an box that
|
||||
* can be styled (for background colors, and so on). You can include
|
||||
* an optional dimension that tells how much extra padding to include
|
||||
* around the bounding box for the mathematics, or a color specification
|
||||
* for the background color to use, or both. E.g.,
|
||||
*
|
||||
* \bbox[2pt]{x+y} % an invisible box around x+y with 2pt of extra space
|
||||
* \bbox[green]{x+y} % a green box around x+y
|
||||
* \bbox[green,2pt]{x+y} % a green box with 2pt of extra space
|
||||
*
|
||||
* You can also specify style attributes, for example
|
||||
*
|
||||
* \bbox[red,border:3px solid blue,5px]{x+y}
|
||||
*
|
||||
* would give a red background with a 3px solid blue border that has 5px
|
||||
* of padding between the border and the mathematics. Note that not all
|
||||
* output formats support the style specifications. In particular, the
|
||||
* NativeMML output depends on the browser to render the attributes, and
|
||||
* not all MathML renderers will honor them (e.g., MathPlayer2 doesn't
|
||||
* render border styles).
|
||||
*
|
||||
* This file will be loaded automatically when \bbox is first used.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/bbox"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
MML = MathJax.ElementJax.mml;
|
||||
|
||||
TEX.Definitions.Add({macros: {bbox: "BBox"}},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
BBox: function (name) {
|
||||
var bbox = this.GetBrackets(name,""),
|
||||
math = this.ParseArg(name);
|
||||
var parts = bbox.split(/,/), def, background, style;
|
||||
for (var i = 0, m = parts.length; i < m; i++) {
|
||||
var part = parts[i].replace(/^\s+/,'').replace(/\s+$/,'');
|
||||
var match = part.match(/^(\.\d+|\d+(\.\d*)?)(pt|em|ex|mu|px|in|cm|mm)$/);
|
||||
if (match) {
|
||||
if (def)
|
||||
{TEX.Error(["MultipleBBoxProperty","%1 specified twice in %2","Padding",name])}
|
||||
var pad = match[1]+match[3];
|
||||
def = {height:"+"+pad, depth:"+"+pad, lspace:pad, width:"+"+(2*match[1])+match[3]};
|
||||
} else if (part.match(/^([a-z0-9]+|\#[0-9a-f]{6}|\#[0-9a-f]{3})$/i)) {
|
||||
if (background)
|
||||
{TEX.Error(["MultipleBBoxProperty","%1 specified twice in %2","Background",name])}
|
||||
background = part;
|
||||
} else if (part.match(/^[-a-z]+:/i)) {
|
||||
if (style)
|
||||
{TEX.Error(["MultipleBBoxProperty","%1 specified twice in %2", "Style",name])}
|
||||
style = this.BBoxStyle(part);
|
||||
} else if (part !== "") {
|
||||
TEX.Error(
|
||||
["InvalidBBoxProperty",
|
||||
"'%1' doesn't look like a color, a padding dimension, or a style",
|
||||
part]
|
||||
);
|
||||
}
|
||||
}
|
||||
if (def) {math = MML.mpadded(math).With(def)}
|
||||
if (background || style) {
|
||||
math = MML.mstyle(math).With({mathbackground:background, style:style});
|
||||
}
|
||||
this.Push(math);
|
||||
},
|
||||
BBoxStyle: function (styles) {return styles}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX bbox Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/bbox.js");
|
||||
-309
@@ -1,309 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/begingroup.js
|
||||
*
|
||||
* Implements \begingroup and \endgroup commands that make local
|
||||
* definitions possible and are removed when the \endgroup occurs.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/begingroup"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
TEXDEF = TEX.Definitions;
|
||||
|
||||
/****************************************************/
|
||||
|
||||
//
|
||||
// A namespace for localizing macros and environments
|
||||
// (\begingroup and \endgroup create and destroy these)
|
||||
//
|
||||
var NSFRAME = MathJax.Object.Subclass({
|
||||
macros: null, // the local macro definitions
|
||||
environments: null, // the local environments
|
||||
Init: function (macros,environments) {
|
||||
this.macros = (macros || {});
|
||||
this.environments = (environments || {});
|
||||
},
|
||||
//
|
||||
// Find a macro or environment by name
|
||||
//
|
||||
Find: function (name,type) {if (this[type][name]) {return this[type][name]}},
|
||||
//
|
||||
// Define or remove a macro or environment
|
||||
//
|
||||
Def: function (name,value,type) {this[type][name] = value},
|
||||
Undef: function (name,type) {delete this[type][name]},
|
||||
//
|
||||
// Merge two namespaces (used when the equation namespace is combined with the root one)
|
||||
//
|
||||
Merge: function (frame) {
|
||||
MathJax.Hub.Insert(this.macros,frame.macros);
|
||||
MathJax.Hub.Insert(this.environments,frame.environments);
|
||||
},
|
||||
//
|
||||
// Move global macros to the stack (globally) and remove from the frame
|
||||
//
|
||||
MergeGlobals: function (stack) {
|
||||
var macros = this.macros;
|
||||
for (var cs in macros) {if (macros.hasOwnProperty(cs) && macros[cs].global) {
|
||||
stack.Def(cs,macros[cs],"macros",true);
|
||||
delete macros[cs].global; delete macros[cs];
|
||||
}}
|
||||
},
|
||||
//
|
||||
// Clear the macro and environment lists
|
||||
// (but not global macros unless "all" is true)
|
||||
//
|
||||
Clear: function (all) {
|
||||
this.environments = {};
|
||||
if (all) {this.macros = {}} else {
|
||||
var macros = this.macros;
|
||||
for (var cs in macros) {
|
||||
if (macros.hasOwnProperty(cs) && !macros[cs].global) {delete macros[cs]}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
/****************************************************/
|
||||
|
||||
//
|
||||
// A Stack of namespace frames
|
||||
//
|
||||
var NSSTACK = TEX.nsStack = MathJax.Object.Subclass({
|
||||
stack: null, // the namespace frames
|
||||
top: 0, // the current top one (we don't pop for real until the equation completes)
|
||||
isEqn: false, // true if this is the equation stack (not the global one)
|
||||
//
|
||||
// Set up the initial stack frame
|
||||
//
|
||||
Init: function (eqn) {
|
||||
this.isEqn = eqn; this.stack = [];
|
||||
if (!eqn) {this.Push(NSFRAME(TEXDEF.macros,TEXDEF.environment))}
|
||||
else {this.Push(NSFRAME())}
|
||||
},
|
||||
//
|
||||
// Define a macro or environment in the top frame
|
||||
//
|
||||
Def: function (name,value,type,global) {
|
||||
var n = this.top-1;
|
||||
if (global) {
|
||||
//
|
||||
// Define global macros in the base frame and remove that cs
|
||||
// from all other frames. Mark the global ones in equations
|
||||
// so they can be made global when merged with the root stack.
|
||||
//
|
||||
while (n > 0) {this.stack[n].Undef(name,type); n--}
|
||||
if (!(value instanceof Array)) {value = [value]}
|
||||
if (this.isEqn) {value.global = true}
|
||||
}
|
||||
this.stack[n].Def(name,value,type);
|
||||
},
|
||||
//
|
||||
// Push a new namespace frame on the stack
|
||||
//
|
||||
Push: function (frame) {
|
||||
this.stack.push(frame);
|
||||
this.top = this.stack.length;
|
||||
},
|
||||
//
|
||||
// Pop the top stack frame
|
||||
// (if it is the root, just keep track of the pop so we can
|
||||
// reset it if the equation is reprocessed)
|
||||
//
|
||||
Pop: function () {
|
||||
var top;
|
||||
if (this.top > 1) {
|
||||
top = this.stack[--this.top];
|
||||
if (this.isEqn) {this.stack.pop()}
|
||||
} else if (this.isEqn) {
|
||||
this.Clear();
|
||||
}
|
||||
return top;
|
||||
},
|
||||
//
|
||||
// Search the stack from top to bottom for the first
|
||||
// definition of the given control sequence in the given type
|
||||
//
|
||||
Find: function (name,type) {
|
||||
for (var i = this.top-1; i >= 0; i--) {
|
||||
var def = this.stack[i].Find(name,type);
|
||||
if (def) {return def}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
//
|
||||
// Combine the equation stack with the global one
|
||||
// (The bottom frame of the equation goes with the top frame of the global one,
|
||||
// and the remainder are pushed on the global stack, truncated to the
|
||||
// position where items were poped from it.)
|
||||
//
|
||||
Merge: function (stack) {
|
||||
stack.stack[0].MergeGlobals(this);
|
||||
this.stack[this.top-1].Merge(stack.stack[0]);
|
||||
var data = [this.top,this.stack.length-this.top].concat(stack.stack.slice(1));
|
||||
this.stack.splice.apply(this.stack,data);
|
||||
this.top = this.stack.length;
|
||||
},
|
||||
//
|
||||
// Put back the temporarily poped items
|
||||
//
|
||||
Reset: function () {this.top = this.stack.length},
|
||||
//
|
||||
// Clear the stack and start with a blank frame
|
||||
//
|
||||
Clear: function (all) {
|
||||
this.stack = [this.stack[0].Clear()];
|
||||
this.top = this.stack.length;
|
||||
}
|
||||
},{
|
||||
nsFrame: NSFRAME
|
||||
});
|
||||
|
||||
/****************************************************/
|
||||
|
||||
//
|
||||
// Define the new macros
|
||||
//
|
||||
TEXDEF.Add({
|
||||
macros: {
|
||||
begingroup: "BeginGroup",
|
||||
endgroup: "EndGroup",
|
||||
global: ["Extension","newcommand"],
|
||||
gdef: ["Extension","newcommand"]
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
//
|
||||
// Implement \begingroup
|
||||
//
|
||||
BeginGroup: function (name) {
|
||||
TEX.eqnStack.Push(NSFRAME());
|
||||
},
|
||||
//
|
||||
// Implements \endgroup
|
||||
//
|
||||
EndGroup: function (name) {
|
||||
//
|
||||
// If the equation has pushed frames, pop one,
|
||||
// Otherwise clear the equation stack and pop the top global one
|
||||
//
|
||||
if (TEX.eqnStack.top > 1) {
|
||||
TEX.eqnStack.Pop();
|
||||
} else if (TEX.rootStack.top === 1) {
|
||||
TEX.Error(["ExtraEndMissingBegin","Extra %1 or missing \\begingroup",name]);
|
||||
} else {
|
||||
TEX.eqnStack.Clear();
|
||||
TEX.rootStack.Pop();
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Replace the original routines with ones that looks through the
|
||||
// equation and root stacks for the given name
|
||||
//
|
||||
csFindMacro: function (name) {
|
||||
return (TEX.eqnStack.Find(name,"macros") || TEX.rootStack.Find(name,"macros"));
|
||||
},
|
||||
envFindName: function (name) {
|
||||
return (TEX.eqnStack.Find(name,"environments") || TEX.rootStack.Find(name,"environments"));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/****************************************************/
|
||||
|
||||
TEX.rootStack = NSSTACK(); // the global namespace stack
|
||||
TEX.eqnStack = NSSTACK(true); // the equation stack
|
||||
|
||||
//
|
||||
// Reset the global stack and clear the equation stack
|
||||
// (this gets us back to the initial stack state as it was
|
||||
// before the equation was first processed, in case the equation
|
||||
// get restarted due to an autoloaded file)
|
||||
//
|
||||
TEX.prefilterHooks.Add(function () {TEX.rootStack.Reset(); TEX.eqnStack.Clear(true)});
|
||||
|
||||
//
|
||||
// We only get here if there were no errors and the equation is fully
|
||||
// processed (all restarts are complete). So we merge the equation
|
||||
// stack into the global stack, thus making the changes from this
|
||||
// equation permanent.
|
||||
//
|
||||
TEX.postfilterHooks.Add(function () {TEX.rootStack.Merge(TEX.eqnStack)});
|
||||
|
||||
/*********************************************************/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX newcommand Ready",function () {
|
||||
|
||||
//
|
||||
// Add the commands that depend on the newcommand code
|
||||
//
|
||||
TEXDEF.Add({
|
||||
macros: {
|
||||
global: "Global",
|
||||
gdef: ["Macro","\\global\\def"]
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
//
|
||||
// Modify the way macros and environments are defined
|
||||
// to make them go into the equation namespace stack
|
||||
//
|
||||
setDef: function (name,value) {
|
||||
value.isUser = true;
|
||||
TEX.eqnStack.Def(name,value,"macros",this.stack.env.isGlobal);
|
||||
delete this.stack.env.isGlobal;
|
||||
},
|
||||
setEnv: function (name,value) {
|
||||
value.isUser = true;
|
||||
TEX.eqnStack.Def(name,value,"environments")
|
||||
},
|
||||
|
||||
//
|
||||
// Implement \global (for \global\let, \global\def and \global\newcommand)
|
||||
//
|
||||
Global: function (name) {
|
||||
var i = this.i; var cs = this.GetCSname(name); this.i = i;
|
||||
if (cs !== "let" && cs !== "def" && cs !== "newcommand") {
|
||||
TEX.Error(["GlobalNotFollowedBy",
|
||||
"%1 not followed by \\let, \\def, or \\newcommand",name]);
|
||||
}
|
||||
this.stack.env.isGlobal = true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX begingroup Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/begingroup.js");
|
||||
@@ -1,75 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/boldsymbol.js
|
||||
*
|
||||
* Implements the \boldsymbol{...} command to make bold
|
||||
* versions of all math characters (not just variables).
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/boldsymbol"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var TEXDEF = TEX.Definitions;
|
||||
|
||||
var BOLDVARIANT = {};
|
||||
BOLDVARIANT[MML.VARIANT.NORMAL] = MML.VARIANT.BOLD;
|
||||
BOLDVARIANT[MML.VARIANT.ITALIC] = MML.VARIANT.BOLDITALIC;
|
||||
BOLDVARIANT[MML.VARIANT.FRAKTUR] = MML.VARIANT.BOLDFRAKTUR;
|
||||
BOLDVARIANT[MML.VARIANT.SCRIPT] = MML.VARIANT.BOLDSCRIPT;
|
||||
BOLDVARIANT[MML.VARIANT.SANSSERIF] = MML.VARIANT.BOLDSANSSERIF;
|
||||
BOLDVARIANT["-tex-caligraphic"] = "-tex-caligraphic-bold";
|
||||
BOLDVARIANT["-tex-oldstyle"] = "-tex-oldstyle-bold";
|
||||
|
||||
TEXDEF.Add({macros: {boldsymbol: 'Boldsymbol'}},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
mmlToken: function (token) {
|
||||
if (this.stack.env.boldsymbol) {
|
||||
var variant = token.Get("mathvariant");
|
||||
if (variant == null) {token.mathvariant = MML.VARIANT.BOLD}
|
||||
else {token.mathvariant = (BOLDVARIANT[variant]||variant)}
|
||||
}
|
||||
return token;
|
||||
},
|
||||
|
||||
Boldsymbol: function (name) {
|
||||
var boldsymbol = this.stack.env.boldsymbol,
|
||||
font = this.stack.env.font;
|
||||
this.stack.env.boldsymbol = true;
|
||||
this.stack.env.font = null;
|
||||
var mml = this.ParseArg(name);
|
||||
this.stack.env.font = font;
|
||||
this.stack.env.boldsymbol = boldsymbol;
|
||||
this.Push(mml);
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX boldsymbol Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/boldsymbol.js");
|
||||
-110
@@ -1,110 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/cancel.js
|
||||
*
|
||||
* Implements the \cancel, \bcancel, \xcancel, and \cancelto macros.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* \cancel{math} % strikeout math from lower left to upper right
|
||||
* \bcancel{math} % strikeout from upper left to lower right
|
||||
* \xcancel{math} % strikeout with an X
|
||||
* \cancelto{value}{math} % strikeout with arrow going to value
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/cancel"] = {
|
||||
version: "2.6.0",
|
||||
|
||||
//
|
||||
// The attributes allowed in \enclose{notation}[attributes]{math}
|
||||
//
|
||||
ALLOWED: {
|
||||
color: 1, mathcolor: 1,
|
||||
background: 1, mathbackground: 1,
|
||||
padding: 1,
|
||||
thickness: 1
|
||||
}
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
MML = MathJax.ElementJax.mml,
|
||||
CANCEL = MathJax.Extension["TeX/cancel"];
|
||||
|
||||
CANCEL.setAttributes = function (def,attr) {
|
||||
if (attr !== "") {
|
||||
attr = attr.replace(/ /g,"").split(/,/);
|
||||
for (var i = 0, m = attr.length; i < m; i++) {
|
||||
var keyvalue = attr[i].split(/[:=]/);
|
||||
if (CANCEL.ALLOWED[keyvalue[0]]) {
|
||||
if (keyvalue[1] === "true") {keyvalue[1] = true}
|
||||
if (keyvalue[1] === "false") {keyvalue[1] = false}
|
||||
def[keyvalue[0]] = keyvalue[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return def;
|
||||
};
|
||||
|
||||
//
|
||||
// Set up macros
|
||||
//
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
cancel: ['Cancel',MML.NOTATION.UPDIAGONALSTRIKE],
|
||||
bcancel: ['Cancel',MML.NOTATION.DOWNDIAGONALSTRIKE],
|
||||
xcancel: ['Cancel',MML.NOTATION.UPDIAGONALSTRIKE+" "+MML.NOTATION.DOWNDIAGONALSTRIKE],
|
||||
cancelto: 'CancelTo'
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
//
|
||||
// Implement \cancel[attributes]{math},
|
||||
// \bcancel[attributes]{math}, and
|
||||
// \xcancel[attributes]{math}
|
||||
//
|
||||
Cancel: function(name,notation) {
|
||||
var attr = this.GetBrackets(name,""), math = this.ParseArg(name);
|
||||
var def = CANCEL.setAttributes({notation: notation},attr);
|
||||
this.Push(MML.menclose(math).With(def));
|
||||
},
|
||||
|
||||
//
|
||||
// Implement \cancelto{value}[attributes]{math}
|
||||
//
|
||||
CancelTo: function(name,notation) {
|
||||
var value = this.ParseArg(name),
|
||||
attr = this.GetBrackets(name,""),
|
||||
math = this.ParseArg(name);
|
||||
var def = CANCEL.setAttributes({notation: MML.NOTATION.UPDIAGONALSTRIKE+" "+MML.NOTATION.UPDIAGONALARROW},attr);
|
||||
value = MML.mpadded(value).With({depth:"-.1em",height:"+.1em",voffset:".1em"});
|
||||
this.Push(MML.msup(MML.menclose(math).With(def),value));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX cancel Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/cancel.js");
|
||||
-281
@@ -1,281 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/color.js
|
||||
*
|
||||
* Implements LaTeX-compatible \color macro rather than MathJax's original
|
||||
* (non-standard) version. It includes the rgb, RGB, gray, and named color
|
||||
* models, and the \textcolor, \definecolor, \colorbox, and \fcolorbox
|
||||
* macros.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// The configuration defaults, augmented by the user settings
|
||||
//
|
||||
MathJax.Extension["TeX/color"] = {
|
||||
version: "2.6.0",
|
||||
|
||||
config: MathJax.Hub.CombineConfig("TeX.color",{
|
||||
padding: "5px",
|
||||
border: "2px"
|
||||
}),
|
||||
|
||||
colors: {
|
||||
Apricot: "#FBB982",
|
||||
Aquamarine: "#00B5BE",
|
||||
Bittersweet: "#C04F17",
|
||||
Black: "#221E1F",
|
||||
Blue: "#2D2F92",
|
||||
BlueGreen: "#00B3B8",
|
||||
BlueViolet: "#473992",
|
||||
BrickRed: "#B6321C",
|
||||
Brown: "#792500",
|
||||
BurntOrange: "#F7921D",
|
||||
CadetBlue: "#74729A",
|
||||
CarnationPink: "#F282B4",
|
||||
Cerulean: "#00A2E3",
|
||||
CornflowerBlue: "#41B0E4",
|
||||
Cyan: "#00AEEF",
|
||||
Dandelion: "#FDBC42",
|
||||
DarkOrchid: "#A4538A",
|
||||
Emerald: "#00A99D",
|
||||
ForestGreen: "#009B55",
|
||||
Fuchsia: "#8C368C",
|
||||
Goldenrod: "#FFDF42",
|
||||
Gray: "#949698",
|
||||
Green: "#00A64F",
|
||||
GreenYellow: "#DFE674",
|
||||
JungleGreen: "#00A99A",
|
||||
Lavender: "#F49EC4",
|
||||
LimeGreen: "#8DC73E",
|
||||
Magenta: "#EC008C",
|
||||
Mahogany: "#A9341F",
|
||||
Maroon: "#AF3235",
|
||||
Melon: "#F89E7B",
|
||||
MidnightBlue: "#006795",
|
||||
Mulberry: "#A93C93",
|
||||
NavyBlue: "#006EB8",
|
||||
OliveGreen: "#3C8031",
|
||||
Orange: "#F58137",
|
||||
OrangeRed: "#ED135A",
|
||||
Orchid: "#AF72B0",
|
||||
Peach: "#F7965A",
|
||||
Periwinkle: "#7977B8",
|
||||
PineGreen: "#008B72",
|
||||
Plum: "#92268F",
|
||||
ProcessBlue: "#00B0F0",
|
||||
Purple: "#99479B",
|
||||
RawSienna: "#974006",
|
||||
Red: "#ED1B23",
|
||||
RedOrange: "#F26035",
|
||||
RedViolet: "#A1246B",
|
||||
Rhodamine: "#EF559F",
|
||||
RoyalBlue: "#0071BC",
|
||||
RoyalPurple: "#613F99",
|
||||
RubineRed: "#ED017D",
|
||||
Salmon: "#F69289",
|
||||
SeaGreen: "#3FBC9D",
|
||||
Sepia: "#671800",
|
||||
SkyBlue: "#46C5DD",
|
||||
SpringGreen: "#C6DC67",
|
||||
Tan: "#DA9D76",
|
||||
TealBlue: "#00AEB3",
|
||||
Thistle: "#D883B7",
|
||||
Turquoise: "#00B4CE",
|
||||
Violet: "#58429B",
|
||||
VioletRed: "#EF58A0",
|
||||
White: "#FFFFFF",
|
||||
WildStrawberry: "#EE2967",
|
||||
Yellow: "#FFF200",
|
||||
YellowGreen: "#98CC70",
|
||||
YellowOrange: "#FAA21A"
|
||||
},
|
||||
|
||||
/*
|
||||
* Look up a color based on its model and definition
|
||||
*/
|
||||
getColor: function (model,def) {
|
||||
if (!model) {model = "named"}
|
||||
var fn = this["get_"+model];
|
||||
if (!fn) {this.TEX.Error(["UndefinedColorModel","Color model '%1' not defined",model])}
|
||||
return fn.call(this,def);
|
||||
},
|
||||
|
||||
/*
|
||||
* Get an rgb color
|
||||
*/
|
||||
get_rgb: function (rgb) {
|
||||
rgb = rgb.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s*,\s*/); var RGB = "#";
|
||||
if (rgb.length !== 3)
|
||||
{this.TEX.Error(["ModelArg1","Color values for the %1 model require 3 numbers","rgb"])}
|
||||
for (var i = 0; i < 3; i++) {
|
||||
if (!rgb[i].match(/^(\d+(\.\d*)?|\.\d+)$/))
|
||||
{this.TEX.Error(["InvalidDecimalNumber","Invalid decimal number"])}
|
||||
var n = parseFloat(rgb[i]);
|
||||
if (n < 0 || n > 1) {
|
||||
this.TEX.Error(["ModelArg2",
|
||||
"Color values for the %1 model must be between %2 and %3",
|
||||
"rgb",0,1]);
|
||||
}
|
||||
n = Math.floor(n*255).toString(16); if (n.length < 2) {n = "0"+n}
|
||||
RGB += n;
|
||||
}
|
||||
return RGB;
|
||||
},
|
||||
|
||||
/*
|
||||
* Get an RGB color
|
||||
*/
|
||||
get_RGB: function (rgb) {
|
||||
rgb = rgb.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s*,\s*/); var RGB = "#";
|
||||
if (rgb.length !== 3)
|
||||
{this.TEX.Error(["ModelArg1","Color values for the %1 model require 3 numbers","RGB"])}
|
||||
for (var i = 0; i < 3; i++) {
|
||||
if (!rgb[i].match(/^\d+$/))
|
||||
{this.TEX.Error(["InvalidNumber","Invalid number"])}
|
||||
var n = parseInt(rgb[i]);
|
||||
if (n > 255) {
|
||||
this.TEX.Error(["ModelArg2",
|
||||
"Color values for the %1 model must be between %2 and %3",
|
||||
"RGB",0,255]);
|
||||
}
|
||||
n = n.toString(16); if (n.length < 2) {n = "0"+n}
|
||||
RGB += n;
|
||||
}
|
||||
return RGB;
|
||||
},
|
||||
|
||||
/*
|
||||
* Get a gray-scale value
|
||||
*/
|
||||
get_gray: function (gray) {
|
||||
if (!gray.match(/^\s*(\d+(\.\d*)?|\.\d+)\s*$/))
|
||||
{this.TEX.Error(["InvalidDecimalNumber","Invalid decimal number"])}
|
||||
var n = parseFloat(gray);
|
||||
if (n < 0 || n > 1) {
|
||||
this.TEX.Error(["ModelArg2",
|
||||
"Color values for the %1 model must be between %2 and %3",
|
||||
"gray",0,1]);
|
||||
}
|
||||
n = Math.floor(n*255).toString(16); if (n.length < 2) {n = "0"+n}
|
||||
return "#"+n+n+n;
|
||||
},
|
||||
|
||||
/*
|
||||
* Get a named value
|
||||
*/
|
||||
get_named: function (name) {
|
||||
if (this.colors[name]) {return this.colors[name]}
|
||||
return name;
|
||||
},
|
||||
|
||||
padding: function () {
|
||||
var pad = "+"+this.config.padding;
|
||||
var unit = this.config.padding.replace(/^.*?([a-z]*)$/,"$1");
|
||||
var pad2 = "+"+(2*parseFloat(pad))+unit;
|
||||
return {width:pad2, height:pad, depth:pad, lspace:this.config.padding};
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
MML = MathJax.ElementJax.mml;
|
||||
var STACKITEM = TEX.Stack.Item;
|
||||
var COLOR = MathJax.Extension["TeX/color"];
|
||||
|
||||
COLOR.TEX = TEX; // for reference in getColor above
|
||||
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
color: "Color",
|
||||
textcolor: "TextColor",
|
||||
definecolor: "DefineColor",
|
||||
colorbox: "ColorBox",
|
||||
fcolorbox: "fColorBox"
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
//
|
||||
// Override \color macro definition
|
||||
//
|
||||
Color: function (name) {
|
||||
var model = this.GetBrackets(name),
|
||||
color = this.GetArgument(name);
|
||||
color = COLOR.getColor(model,color);
|
||||
var mml = STACKITEM.style().With({styles:{mathcolor:color}});
|
||||
this.stack.env.color = color;
|
||||
this.Push(mml);
|
||||
},
|
||||
|
||||
TextColor: function (name) {
|
||||
var model = this.GetBrackets(name),
|
||||
color = this.GetArgument(name);
|
||||
color = COLOR.getColor(model,color);
|
||||
var old = this.stack.env.color; this.stack.env.color = color;
|
||||
var math = this.ParseArg(name);
|
||||
if (old) {this.stack.env.color} else {delete this.stack.env.color}
|
||||
this.Push(MML.mstyle(math).With({mathcolor: color}));
|
||||
},
|
||||
|
||||
//
|
||||
// Define the \definecolor macro
|
||||
//
|
||||
DefineColor: function (name) {
|
||||
var cname = this.GetArgument(name),
|
||||
model = this.GetArgument(name),
|
||||
def = this.GetArgument(name);
|
||||
COLOR.colors[cname] = COLOR.getColor(model,def);
|
||||
},
|
||||
|
||||
//
|
||||
// Produce a text box with a colored background
|
||||
//
|
||||
ColorBox: function (name) {
|
||||
var cname = this.GetArgument(name),
|
||||
arg = this.InternalMath(this.GetArgument(name));
|
||||
this.Push(MML.mpadded.apply(MML,arg).With({
|
||||
mathbackground:COLOR.getColor("named",cname)
|
||||
}).With(COLOR.padding()));
|
||||
},
|
||||
|
||||
//
|
||||
// Procude a framed text box with a colored background
|
||||
//
|
||||
fColorBox: function (name) {
|
||||
var fname = this.GetArgument(name),
|
||||
cname = this.GetArgument(name),
|
||||
arg = this.InternalMath(this.GetArgument(name));
|
||||
this.Push(MML.mpadded.apply(MML,arg).With({
|
||||
mathbackground: COLOR.getColor("named",cname),
|
||||
style: "border: "+COLOR.config.border+" solid "+COLOR.getColor("named",fname)
|
||||
}).With(COLOR.padding()));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX color Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/color.js");
|
||||
@@ -1,91 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/enclose.js
|
||||
*
|
||||
* Implements the \enclose macros, which give access from TeX to the
|
||||
* <menclose> tag in the MathML that underlies MathJax's internal format.
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* \enclose{notation}{math} % enclose math using given notation
|
||||
* \enclose{notation,notation,...}{math} % enclose with several notations
|
||||
* \enclose{notation}[attributes]{math} % enclose with attributes
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/enclose"] = {
|
||||
version: "2.6.0",
|
||||
|
||||
//
|
||||
// The attributes allowed in \enclose{notation}[attributes]{math}
|
||||
//
|
||||
ALLOWED: {
|
||||
arrow: 1,
|
||||
color: 1, mathcolor: 1,
|
||||
background: 1, mathbackground: 1,
|
||||
padding: 1,
|
||||
thickness: 1
|
||||
}
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
MML = MathJax.ElementJax.mml,
|
||||
ALLOW = MathJax.Extension["TeX/enclose"].ALLOWED;
|
||||
|
||||
//
|
||||
// Set up macro
|
||||
//
|
||||
TEX.Definitions.Add({macros: {enclose: 'Enclose'}},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
//
|
||||
// Implement \enclose{notation}[attr]{math}
|
||||
// (create <menclose notation="notation">math</menclose>)
|
||||
//
|
||||
Enclose: function(name) {
|
||||
var notation = this.GetArgument(name),
|
||||
attr = this.GetBrackets(name),
|
||||
math = this.ParseArg(name);
|
||||
var def = {notation: notation.replace(/,/g," ")};
|
||||
if (attr) {
|
||||
attr = attr.replace(/ /g,"").split(/,/);
|
||||
for (var i = 0, m = attr.length; i < m; i++) {
|
||||
var keyvalue = attr[i].split(/[:=]/);
|
||||
if (ALLOW[keyvalue[0]]) {
|
||||
keyvalue[1] = keyvalue[1].replace(/^"(.*)"$/,"$1");
|
||||
if (keyvalue[1] === "true") {keyvalue[1] = true}
|
||||
if (keyvalue[1] === "false") {keyvalue[1] = false}
|
||||
if (keyvalue[0] === "arrow" && keyvalue[1])
|
||||
{def.notation = def.notation + " updiagonalarrow"} else
|
||||
{def[keyvalue[0]] = keyvalue[1]}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.Push(MML.menclose(math).With(def));
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX enclose Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/enclose.js");
|
||||
-102
@@ -1,102 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/extpfeil.js
|
||||
*
|
||||
* Implements additional stretchy arrow macros.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/extpfeil"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX,
|
||||
TEXDEF = TEX.Definitions;
|
||||
|
||||
//
|
||||
// Define the arrows to load the AMSmath extension
|
||||
// (since they need its xArrow method)
|
||||
//
|
||||
TEXDEF.Add({
|
||||
macros: {
|
||||
xtwoheadrightarrow: ['Extension','AMSmath'],
|
||||
xtwoheadleftarrow: ['Extension','AMSmath'],
|
||||
xmapsto: ['Extension','AMSmath'],
|
||||
xlongequal: ['Extension','AMSmath'],
|
||||
xtofrom: ['Extension','AMSmath'],
|
||||
Newextarrow: ['Extension','AMSmath']
|
||||
}
|
||||
},null,true);
|
||||
|
||||
//
|
||||
// Redefine the macros when AMSmath is loaded
|
||||
//
|
||||
MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",function () {
|
||||
MathJax.Hub.Insert(TEXDEF,{
|
||||
macros: {
|
||||
xtwoheadrightarrow: ['xArrow',0x21A0,12,16],
|
||||
xtwoheadleftarrow: ['xArrow',0x219E,17,13],
|
||||
xmapsto: ['xArrow',0x21A6,6,7],
|
||||
xlongequal: ['xArrow',0x003D,7,7],
|
||||
xtofrom: ['xArrow',0x21C4,12,12],
|
||||
Newextarrow: 'NewExtArrow'
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//
|
||||
// Implements \Newextarrow to define a new arrow (not compatible with \newextarrow, but
|
||||
// the equivalent for MathJax)
|
||||
//
|
||||
TEX.Parse.Augment({
|
||||
NewExtArrow: function (name) {
|
||||
var cs = this.GetArgument(name),
|
||||
space = this.GetArgument(name),
|
||||
chr = this.GetArgument(name);
|
||||
if (!cs.match(/^\\([a-z]+|.)$/i)) {
|
||||
TEX.Error(["NewextarrowArg1",
|
||||
"First argument to %1 must be a control sequence name",name]);
|
||||
}
|
||||
if (!space.match(/^(\d+),(\d+)$/)) {
|
||||
TEX.Error(
|
||||
["NewextarrowArg2",
|
||||
"Second argument to %1 must be two integers separated by a comma",
|
||||
name]
|
||||
);
|
||||
}
|
||||
if (!chr.match(/^(\d+|0x[0-9A-F]+)$/i)) {
|
||||
TEX.Error(
|
||||
["NewextarrowArg3",
|
||||
"Third argument to %1 must be a unicode character number",
|
||||
name]
|
||||
);
|
||||
}
|
||||
cs = cs.substr(1); space = space.split(","); chr = parseInt(chr);
|
||||
TEXDEF.macros[cs] = ['xArrow',chr,parseInt(space[0]),parseInt(space[1])];
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX extpfeil Ready");
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/extpfeil.js");
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/mathchoice.js
|
||||
*
|
||||
* Implements the \mathchoice macro (rarely used)
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var TEXDEF = TEX.Definitions;
|
||||
|
||||
TEXDEF.Add({macros: {mathchoice: 'MathChoice'}},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
MathChoice: function (name) {
|
||||
var D = this.ParseArg(name),
|
||||
T = this.ParseArg(name),
|
||||
S = this.ParseArg(name),
|
||||
SS = this.ParseArg(name);
|
||||
this.Push(MML.TeXmathchoice(D,T,S,SS));
|
||||
}
|
||||
});
|
||||
|
||||
MML.TeXmathchoice = MML.mbase.Subclass({
|
||||
type: "TeXmathchoice", notParent: true,
|
||||
choice: function () {
|
||||
if (this.selection != null) return this.selection;
|
||||
if (this.choosing) return 2; // prevent infinite loops: see issue #1151
|
||||
this.choosing = true;
|
||||
var selection = 0, values = this.getValues("displaystyle","scriptlevel");
|
||||
if (values.scriptlevel > 0) {selection = Math.min(3,values.scriptlevel+1)}
|
||||
else {selection = (values.displaystyle ? 0 : 1)}
|
||||
// only cache the result if we are actually in place in a <math> tag.
|
||||
var node = this.inherit; while (node && node.type !== "math") node = node.inherit;
|
||||
if (node) this.selection = selection;
|
||||
this.choosing = false;
|
||||
return selection;
|
||||
},
|
||||
selected: function () {return this.data[this.choice()]},
|
||||
setTeXclass: function (prev) {return this.selected().setTeXclass(prev)},
|
||||
isSpacelike: function () {return this.selected().isSpacelike()},
|
||||
isEmbellished: function () {return this.selected().isEmbellished()},
|
||||
Core: function () {return this.selected()},
|
||||
CoreMO: function () {return this.selected().CoreMO()},
|
||||
toHTML: function (span) {
|
||||
span = this.HTMLcreateSpan(span);
|
||||
span.bbox = this.Core().toHTML(span).bbox;
|
||||
// Firefox doesn't correctly handle a span with a negatively sized content,
|
||||
// so move marginLeft to main span (this is a hack to get \iiiint to work).
|
||||
// FIXME: This is a symptom of a more general problem with Firefox, and
|
||||
// there probably needs to be a more general solution (e.g., modifying
|
||||
// HTMLhandleSpace() to get the width and adjust the right margin to
|
||||
// compensate for negative-width contents)
|
||||
if (span.firstChild && span.firstChild.style.marginLeft) {
|
||||
span.style.marginLeft = span.firstChild.style.marginLeft;
|
||||
span.firstChild.style.marginLeft = "";
|
||||
}
|
||||
return span;
|
||||
},
|
||||
toSVG: function () {
|
||||
var svg = this.Core().toSVG();
|
||||
this.SVGsaveData(svg);
|
||||
return svg;
|
||||
},
|
||||
toCommonHTML: function (node) {
|
||||
node = this.CHTMLcreateNode(node);
|
||||
this.CHTMLhandleStyle(node);
|
||||
this.CHTMLhandleColor(node);
|
||||
this.CHTMLaddChild(node,this.choice(),{});
|
||||
return node;
|
||||
},
|
||||
toPreviewHTML: function(span) {
|
||||
span = this.PHTMLcreateSpan(span);
|
||||
this.PHTMLhandleStyle(span);
|
||||
this.PHTMLhandleColor(span);
|
||||
this.PHTMLaddChild(span,this.choice(),{});
|
||||
return span;
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX mathchoice Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/mathchoice.js");
|
||||
@@ -1,106 +0,0 @@
|
||||
MathJax.Extension["TeX/mediawiki-texvc"] = {
|
||||
version: "2.6.0-beta.2"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () {
|
||||
MathJax.InputJax.TeX.Definitions.Add({
|
||||
macros: {
|
||||
AA: ["Macro", "\u00c5"],
|
||||
alef: ["Macro", "\\aleph"],
|
||||
alefsym: ["Macro", "\\aleph"],
|
||||
Alpha: ["Macro", "\\mathrm{A}"],
|
||||
and: ["Macro", "\\land"],
|
||||
ang: ["Macro", "\\angle"],
|
||||
Bbb: ["Macro", "\\mathbb"],
|
||||
Beta: ["Macro", "\\mathrm{B}"],
|
||||
bold: ["Macro", "\\mathbf"],
|
||||
bull: ["Macro", "\\bullet"],
|
||||
C: ["Macro", "\\mathbb{C}"],
|
||||
Chi: ["Macro", "\\mathrm{X}"],
|
||||
clubs: ["Macro", "\\clubsuit"],
|
||||
cnums: ["Macro", "\\mathbb{C}"],
|
||||
Complex: ["Macro", "\\mathbb{C}"],
|
||||
coppa: ["Macro", "\u03D9"],
|
||||
Coppa: ["Macro", "\u03D8"],
|
||||
Dagger: ["Macro", "\\ddagger"],
|
||||
Digamma: ["Macro", "\u03DC"],
|
||||
darr: ["Macro", "\\downarrow"],
|
||||
dArr: ["Macro", "\\Downarrow"],
|
||||
Darr: ["Macro", "\\Downarrow"],
|
||||
diamonds: ["Macro", "\\diamondsuit"],
|
||||
empty: ["Macro", "\\emptyset"],
|
||||
Epsilon: ["Macro", "\\mathrm{E}"],
|
||||
Eta: ["Macro", "\\mathrm{H}"],
|
||||
euro: ["Macro", "\u20AC"],
|
||||
exist: ["Macro", "\\exists"],
|
||||
geneuro: ["Macro", "\u20AC"],
|
||||
geneuronarrow: ["Macro", "\u20AC"],
|
||||
geneurowide: ["Macro", "\u20AC"],
|
||||
H: ["Macro", "\\mathbb{H}"],
|
||||
hAar: ["Macro", "\\Leftrightarrow"],
|
||||
harr: ["Macro", "\\leftrightarrow"],
|
||||
Harr: ["Macro", "\\Leftrightarrow"],
|
||||
hearts: ["Macro", "\\heartsuit"],
|
||||
image: ["Macro", "\\Im"],
|
||||
infin: ["Macro", "\\infty"],
|
||||
Iota: ["Macro", "\\mathrm{I}"],
|
||||
isin: ["Macro", "\\in"],
|
||||
Kappa: ["Macro", "\\mathrm{K}"],
|
||||
koppa: ["Macro", "\u03DF"],
|
||||
Koppa: ["Macro", "\u03DE"],
|
||||
lang: ["Macro", "\\langle"],
|
||||
larr: ["Macro", "\\leftarrow"],
|
||||
Larr: ["Macro", "\\Leftarrow"],
|
||||
lArr: ["Macro", "\\Leftarrow"],
|
||||
lrarr: ["Macro", "\\leftrightarrow"],
|
||||
Lrarr: ["Macro", "\\Leftrightarrow"],
|
||||
lrArr: ["Macro", "\\Leftrightarrow"],
|
||||
Mu: ["Macro", "\\mathrm{M}"],
|
||||
N: ["Macro", "\\mathbb{N}"],
|
||||
natnums: ["Macro", "\\mathbb{N}"],
|
||||
Nu: ["Macro", "\\mathrm{N}"],
|
||||
O: ["Macro", "\\emptyset"],
|
||||
officialeuro: ["Macro", "\u20AC"],
|
||||
Omicron: ["Macro", "\\mathrm{O}"],
|
||||
or: ["Macro", "\\lor"],
|
||||
P: ["Macro", "\u00B6"],
|
||||
pagecolor: ['Macro','',1], // ignore \pagecolor{}
|
||||
part: ["Macro", "\\partial"],
|
||||
plusmn: ["Macro", "\\pm"],
|
||||
Q: ["Macro", "\\mathbb{Q}"],
|
||||
R: ["Macro", "\\mathbb{R}"],
|
||||
rang: ["Macro", "\\rangle"],
|
||||
rarr: ["Macro", "\\rightarrow"],
|
||||
Rarr: ["Macro", "\\Rightarrow"],
|
||||
rArr: ["Macro", "\\Rightarrow"],
|
||||
real: ["Macro", "\\Re"],
|
||||
reals: ["Macro", "\\mathbb{R}"],
|
||||
Reals: ["Macro", "\\mathbb{R}"],
|
||||
Rho: ["Macro", "\\mathrm{P}"],
|
||||
sdot: ["Macro", "\\cdot"],
|
||||
sampi: ["Macro", "\u03E1"],
|
||||
Sampi: ["Macro", "\u03E0"],
|
||||
sect: ["Macro", "\\S"],
|
||||
spades: ["Macro", "\\spadesuit"],
|
||||
stigma: ["Macro", "\u03DB"],
|
||||
Stigma: ["Macro", "\u03DA"],
|
||||
sub: ["Macro", "\\subset"],
|
||||
sube: ["Macro", "\\subseteq"],
|
||||
supe: ["Macro", "\\supseteq"],
|
||||
Tau: ["Macro", "\\mathrm{T}"],
|
||||
textvisiblespace: ["Macro", "\u2423"],
|
||||
thetasym: ["Macro", "\\vartheta"],
|
||||
uarr: ["Macro", "\\uparrow"],
|
||||
uArr: ["Macro", "\\Uparrow"],
|
||||
Uarr: ["Macro", "\\Uparrow"],
|
||||
varcoppa: ["Macro", "\u03D9"],
|
||||
varstigma: ["Macro", "\u03DB"],
|
||||
vline: ['Macro','\\smash{\\large\\lvert}',0],
|
||||
weierp: ["Macro", "\\wp"],
|
||||
Z: ["Macro", "\\mathbb{Z}"],
|
||||
Zeta: ["Macro", "\\mathrm{Z}"]
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/mediawiki-texvc.js");
|
||||
-494
@@ -1,494 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/mhchem.js
|
||||
*
|
||||
* Implements the \ce command for handling chemical formulas
|
||||
* from the mhchem LaTeX package.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2011-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/mhchem"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
|
||||
/*
|
||||
* This is the main class for handing the \ce and related commands.
|
||||
* Its main method is Parse() which takes the argument to \ce and
|
||||
* returns the corresponding TeX string.
|
||||
*/
|
||||
|
||||
var CE = MathJax.Object.Subclass({
|
||||
string: "", // the \ce string being parsed
|
||||
i: 0, // the current position in the string
|
||||
tex: "", // the partially processed TeX result
|
||||
TEX: "", // the full TeX result
|
||||
atom: false, // last processed token is an atom
|
||||
sup: "", // pending superscript
|
||||
sub: "", // pending subscript
|
||||
presup: "", // pending pre-superscript
|
||||
presub: "", // pending pre-subscript
|
||||
|
||||
//
|
||||
// Store the string when a CE object is created
|
||||
//
|
||||
Init: function (string) {this.string = string},
|
||||
|
||||
//
|
||||
// These are the special characters and the methods that
|
||||
// handle them. All others are passed through verbatim.
|
||||
//
|
||||
ParseTable: {
|
||||
'-': "Minus",
|
||||
'+': "Plus",
|
||||
'(': "Open",
|
||||
')': "Close",
|
||||
'[': "Open",
|
||||
']': "Close",
|
||||
'<': "Less",
|
||||
'^': "Superscript",
|
||||
'_': "Subscript",
|
||||
'*': "Dot",
|
||||
'.': "Dot",
|
||||
'=': "Equal",
|
||||
'#': "Pound",
|
||||
'$': "Math",
|
||||
'\\': "Macro",
|
||||
' ': "Space"
|
||||
},
|
||||
//
|
||||
// Basic arrow names for reactions
|
||||
//
|
||||
Arrows: {
|
||||
'->': "rightarrow",
|
||||
'<-': "leftarrow",
|
||||
'<->': "leftrightarrow",
|
||||
'<=>': "rightleftharpoons",
|
||||
'<=>>': "Rightleftharpoons",
|
||||
'<<=>': "Leftrightharpoons",
|
||||
'^': "uparrow",
|
||||
'v': "downarrow"
|
||||
},
|
||||
|
||||
//
|
||||
// Implementations for the various bonds
|
||||
// (the ~ ones are hacks that don't work well in NativeMML)
|
||||
//
|
||||
Bonds: {
|
||||
'-': "-",
|
||||
'=': "=",
|
||||
'#': "\\equiv",
|
||||
'~': "\\tripledash",
|
||||
'~-': "\\begin{CEstack}{}\\tripledash\\\\-\\end{CEstack}",
|
||||
'~=': "\\raise2mu{\\begin{CEstack}{}\\tripledash\\\\-\\\\-\\end{CEstack}}",
|
||||
'~--': "\\raise2mu{\\begin{CEstack}{}\\tripledash\\\\-\\\\-\\end{CEstack}}",
|
||||
'-~-': "\\raise2mu{\\begin{CEstack}{}-\\\\\\tripledash\\\\-\\end{CEstack}}",
|
||||
'...': "{\\cdot}{\\cdot}{\\cdot}",
|
||||
'....': "{\\cdot}{\\cdot}{\\cdot}{\\cdot}",
|
||||
'->': "\\rightarrow",
|
||||
'<-': "\\leftarrow",
|
||||
'??': "\\text{??}" // unknown bond
|
||||
},
|
||||
|
||||
//
|
||||
// This converts the CE string to a TeX string.
|
||||
// It loops through the string and calls the proper
|
||||
// method depending on the ccurrent character.
|
||||
//
|
||||
Parse: function () {
|
||||
this.tex = ""; this.atom = false;
|
||||
while (this.i < this.string.length) {
|
||||
var c = this.string.charAt(this.i);
|
||||
if (c.match(/[a-z]/i)) {this.ParseLetter()}
|
||||
else if (c.match(/[0-9]/)) {this.ParseNumber()}
|
||||
else {this["Parse"+(this.ParseTable[c]||"Other")](c)}
|
||||
}
|
||||
this.FinishAtom(true);
|
||||
return this.TEX;
|
||||
},
|
||||
|
||||
//
|
||||
// Make an atom name or a down arrow
|
||||
//
|
||||
ParseLetter: function () {
|
||||
this.FinishAtom();
|
||||
if (this.Match(/^v( |$)/)) {
|
||||
this.tex += "{\\"+this.Arrows["v"]+"}";
|
||||
} else {
|
||||
this.tex += "\\text{"+this.Match(/^[a-z]+/i)+"}";
|
||||
this.atom = true;
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Make a number or fraction preceeding an atom,
|
||||
// or a subscript for an atom.
|
||||
//
|
||||
ParseNumber: function () {
|
||||
var n = this.Match(/^\d+/);
|
||||
if (this.atom && !this.sub) {
|
||||
this.sub = n;
|
||||
} else {
|
||||
this.FinishAtom();
|
||||
var match = this.Match(/^\/\d+/);
|
||||
if (match) {
|
||||
var frac = "\\frac{"+n+"}{"+match.substr(1)+"}";
|
||||
this.tex += "\\mathchoice{\\textstyle"+frac+"}{"+frac+"}{"+frac+"}{"+frac+"}";
|
||||
} else {
|
||||
this.tex += n;
|
||||
if (this.i < this.string.length) {this.tex += "\\,"}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Make a superscript minus, or an arrow, or a single bond.
|
||||
//
|
||||
ParseMinus: function (c) {
|
||||
if (this.atom && (this.i === this.string.length-1 || this.string.charAt(this.i+1) === " ")) {
|
||||
this.sup += c;
|
||||
} else {
|
||||
this.FinishAtom();
|
||||
if (this.string.substr(this.i,2) === "->") {this.i += 2; this.AddArrow("->"); return}
|
||||
else {this.tex += "{-}"}
|
||||
}
|
||||
this.i++;
|
||||
},
|
||||
|
||||
//
|
||||
// Make a superscript plus, or pass it through
|
||||
//
|
||||
ParsePlus: function (c) {
|
||||
if (this.atom) {this.sup += c} else {this.FinishAtom(); this.tex += c}
|
||||
this.i++;
|
||||
},
|
||||
|
||||
//
|
||||
// Handle dots and double or triple bonds
|
||||
//
|
||||
ParseDot: function (c) {this.FinishAtom(); this.tex += "\\cdot "; this.i++},
|
||||
ParseEqual: function (c) {this.FinishAtom(); this.tex += "{=}"; this.i++},
|
||||
ParsePound: function (c) {this.FinishAtom(); this.tex += "{\\equiv}"; this.i++},
|
||||
|
||||
//
|
||||
// Look for (v) or (^), or pass it through
|
||||
//
|
||||
ParseOpen: function (c) {
|
||||
this.FinishAtom();
|
||||
var match = this.Match(/^\([v^]\)/);
|
||||
if (match) {this.tex += "{\\"+this.Arrows[match.charAt(1)]+"}"}
|
||||
else {this.tex += "{"+c; this.i++}
|
||||
},
|
||||
//
|
||||
// Allow ) and ] to get super- and subscripts
|
||||
//
|
||||
ParseClose: function (c) {this.FinishAtom(); this.atom = true; this.tex += c+"}"; this.i++},
|
||||
|
||||
//
|
||||
// Make the proper arrow
|
||||
//
|
||||
ParseLess: function (c) {
|
||||
this.FinishAtom();
|
||||
var arrow = this.Match(/^(<->?|<=>>?|<<=>)/);
|
||||
if (!arrow) {this.tex += c; this.i++} else {this.AddArrow(arrow)}
|
||||
},
|
||||
|
||||
//
|
||||
// Look for a superscript, or an up arrow
|
||||
//
|
||||
ParseSuperscript: function (c) {
|
||||
c = this.string.charAt(++this.i);
|
||||
if (c === "{") {
|
||||
this.i++; var m = this.Find("}");
|
||||
if (m === "-.") {this.sup += "{-}{\\cdot}"}
|
||||
else if (m) {this.sup += CE(m).Parse().replace(/^\{-\}/,"-")}
|
||||
} else if (c === " " || c === "") {
|
||||
this.tex += "{\\"+this.Arrows["^"]+"}"; this.i++;
|
||||
} else {
|
||||
var n = this.Match(/^(\d+|-\.)/);
|
||||
if (n) {this.sup += n}
|
||||
}
|
||||
},
|
||||
//
|
||||
// Look for subscripts
|
||||
//
|
||||
ParseSubscript: function (c) {
|
||||
if (this.string.charAt(++this.i) == "{") {
|
||||
this.i++; this.sub += CE(this.Find("}")).Parse().replace(/^\{-\}/,"-");
|
||||
} else {
|
||||
var n = this.Match(/^\d+/);
|
||||
if (n) {this.sub += n}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Look for raw TeX code to include
|
||||
//
|
||||
ParseMath: function (c) {
|
||||
this.FinishAtom();
|
||||
this.i++; this.tex += this.Find(c);
|
||||
},
|
||||
|
||||
//
|
||||
// Look for specific macros for bonds
|
||||
// and allow \} to have subscripts
|
||||
//
|
||||
ParseMacro: function (c) {
|
||||
this.FinishAtom();
|
||||
this.i++; var match = this.Match(/^([a-z]+|.)/i)||" ";
|
||||
if (match === "sbond") {this.tex += "{-}"}
|
||||
else if (match === "dbond") {this.tex += "{=}"}
|
||||
else if (match === "tbond") {this.tex += "{\\equiv}"}
|
||||
else if (match === "bond") {
|
||||
var bond = (this.Match(/^\{.*?\}/)||"");
|
||||
bond = bond.substr(1,bond.length-2);
|
||||
this.tex += "{"+(this.Bonds[bond]||"\\text{??}")+"}";
|
||||
}
|
||||
else if (match === "{") {this.tex += "{\\{"}
|
||||
else if (match === "}") {this.tex += "\\}}"; this.atom = true}
|
||||
else {this.tex += c+match}
|
||||
},
|
||||
|
||||
//
|
||||
// Ignore spaces
|
||||
//
|
||||
ParseSpace: function (c) {this.FinishAtom(); this.i++},
|
||||
|
||||
//
|
||||
// Pass anything else on verbatim
|
||||
//
|
||||
ParseOther: function (c) {this.FinishAtom(); this.tex += c; this.i++},
|
||||
|
||||
//
|
||||
// Process an arrow (looking for brackets for above and below)
|
||||
//
|
||||
AddArrow: function (arrow) {
|
||||
var c = this.Match(/^[CT]\[/);
|
||||
if (c) {this.i--; c = c.charAt(0)}
|
||||
var above = this.GetBracket(c), below = this.GetBracket(c);
|
||||
arrow = this.Arrows[arrow];
|
||||
if (above || below) {
|
||||
if (below) {arrow += "["+below+"]"}
|
||||
arrow += "{"+above+"}";
|
||||
arrow = "\\mathrel{\\x"+arrow+"}";
|
||||
} else {
|
||||
arrow = "\\long"+arrow+" ";
|
||||
}
|
||||
this.tex += arrow;
|
||||
},
|
||||
|
||||
//
|
||||
// Handle the super and subscripts for an atom
|
||||
//
|
||||
FinishAtom: function (force) {
|
||||
if (this.sup || this.sub || this.presup || this.presub) {
|
||||
if (!force && !this.atom) {
|
||||
if (this.tex === "" && !this.sup && !this.sub) return;
|
||||
if (!this.presup && !this.presub &&
|
||||
(this.tex === "" || this.tex === "{" ||
|
||||
(this.tex === "}" && this.TEX.substr(-1) === "{"))) {
|
||||
this.presup = this.sup, this.presub = this.sub; // save for later
|
||||
this.sub = this.sup = "";
|
||||
this.TEX += this.tex; this.tex = "";
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.sub && !this.sup) {this.sup = "\\Space{0pt}{0pt}{.2em}"} // forces subscripts to align properly
|
||||
if ((this.presup || this.presub) && this.tex !== "{") {
|
||||
if (!this.presup && !this.sup) {this.presup = "\\Space{0pt}{0pt}{.2em}"}
|
||||
this.tex = "\\CEprescripts{"+(this.presub||"\\CEnone")+"}{"+(this.presup||"\\CEnone")+"}"
|
||||
+ "{"+(this.tex !== "}" ? this.tex : "")+"}"
|
||||
+ "{"+(this.sub||"\\CEnone")+"}{"+(this.sup||"\\CEnone")+"}"
|
||||
+ (this.tex === "}" ? "}" : "");
|
||||
this.presub = this.presup = "";
|
||||
} else {
|
||||
if (this.sup) this.tex += "^{"+this.sup+"}";
|
||||
if (this.sub) this.tex += "_{"+this.sub+"}";
|
||||
}
|
||||
this.sup = this.sub = "";
|
||||
}
|
||||
this.TEX += this.tex; this.tex = "";
|
||||
this.atom = false;
|
||||
},
|
||||
|
||||
//
|
||||
// Find a bracket group and handle C and T prefixes
|
||||
//
|
||||
GetBracket: function (c) {
|
||||
if (this.string.charAt(this.i) !== "[") {return ""}
|
||||
this.i++; var bracket = this.Find("]");
|
||||
if (c === "C") {bracket = "\\ce{"+bracket+"}"} else
|
||||
if (c === "T") {
|
||||
if (!bracket.match(/^\{.*\}$/)) {bracket = "{"+bracket+"}"}
|
||||
bracket = "\\text"+bracket;
|
||||
};
|
||||
return bracket;
|
||||
},
|
||||
|
||||
//
|
||||
// Check if the string matches a regular expression
|
||||
// and move past it if so, returning the match
|
||||
//
|
||||
Match: function (regex) {
|
||||
var match = regex.exec(this.string.substr(this.i));
|
||||
if (match) {match = match[0]; this.i += match.length}
|
||||
return match;
|
||||
},
|
||||
|
||||
//
|
||||
// Find a particular character, skipping over braced groups
|
||||
//
|
||||
Find: function (c) {
|
||||
var m = this.string.length, i = this.i, braces = 0;
|
||||
while (this.i < m) {
|
||||
var C = this.string.charAt(this.i++);
|
||||
if (C === c && braces === 0) {return this.string.substr(i,this.i-i-1)}
|
||||
if (C === "{") {braces++} else
|
||||
if (C === "}") {
|
||||
if (braces) {braces--}
|
||||
else {
|
||||
TEX.Error(["ExtraCloseMissingOpen","Extra close brace or missing open brace"])
|
||||
}
|
||||
}
|
||||
}
|
||||
if (braces) {TEX.Error(["MissingCloseBrace","Missing close brace"])}
|
||||
TEX.Error(["NoClosingChar","Can't find closing %1",c]);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
MathJax.Extension["TeX/mhchem"].CE = CE;
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
//
|
||||
// Set up the macros for chemistry
|
||||
//
|
||||
ce: 'CE',
|
||||
cf: 'CE',
|
||||
cee: 'CE',
|
||||
|
||||
//
|
||||
// Make these load AMSmath package (redefined below when loaded)
|
||||
//
|
||||
xleftrightarrow: ['Extension','AMSmath'],
|
||||
xrightleftharpoons: ['Extension','AMSmath'],
|
||||
xRightleftharpoons: ['Extension','AMSmath'],
|
||||
xLeftrightharpoons: ['Extension','AMSmath'],
|
||||
|
||||
// FIXME: These don't work well in FF NativeMML mode
|
||||
longrightleftharpoons: ["Macro","\\stackrel{\\textstyle{{-}\\!\\!{\\rightharpoonup}}}{\\smash{{\\leftharpoondown}\\!\\!{-}}}"],
|
||||
longRightleftharpoons: ["Macro","\\stackrel{\\textstyle{-}\\!\\!{\\rightharpoonup}}{\\small\\smash\\leftharpoondown}"],
|
||||
longLeftrightharpoons: ["Macro","\\stackrel{\\rightharpoonup}{{{\\leftharpoondown}\\!\\!\\textstyle{-}}}"],
|
||||
|
||||
//
|
||||
// Add \hyphen used in some mhchem examples
|
||||
//
|
||||
hyphen: ["Macro","\\text{-}"],
|
||||
|
||||
//
|
||||
// Handle prescripts and none
|
||||
//
|
||||
CEprescripts: "CEprescripts",
|
||||
CEnone: "CEnone",
|
||||
|
||||
//
|
||||
// Needed for \bond for the ~ forms
|
||||
//
|
||||
tripledash: ["Macro","\\raise3mu{\\tiny\\text{-}\\kern2mu\\text{-}\\kern2mu\\text{-}}"]
|
||||
},
|
||||
|
||||
//
|
||||
// Needed for \bond for the ~ forms
|
||||
//
|
||||
environment: {
|
||||
CEstack: ['Array',null,null,null,'r',null,"0.001em",'T',1]
|
||||
}
|
||||
},null,true);
|
||||
|
||||
if (!MathJax.Extension["TeX/AMSmath"]) {
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
xrightarrow: ['Extension','AMSmath'],
|
||||
xleftarrow: ['Extension','AMSmath']
|
||||
}
|
||||
},null,true);
|
||||
}
|
||||
|
||||
//
|
||||
// These arrows need to wait until AMSmath is loaded
|
||||
//
|
||||
MathJax.Hub.Register.StartupHook("TeX AMSmath Ready",function () {
|
||||
TEX.Definitions.Add({
|
||||
macros: {
|
||||
//
|
||||
// Some of these are hacks for now
|
||||
//
|
||||
xleftrightarrow: ['xArrow',0x2194,6,6],
|
||||
xrightleftharpoons: ['xArrow',0x21CC,5,7], // FIXME: doesn't stretch in HTML-CSS output
|
||||
xRightleftharpoons: ['xArrow',0x21CC,5,7], // FIXME: how should this be handled?
|
||||
xLeftrightharpoons: ['xArrow',0x21CC,5,7]
|
||||
}
|
||||
},null,true);
|
||||
});
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
//
|
||||
// Implements \ce and friends
|
||||
//
|
||||
CE: function (name) {
|
||||
var arg = this.GetArgument(name);
|
||||
var tex = CE(arg).Parse();
|
||||
this.string = tex + this.string.substr(this.i); this.i = 0;
|
||||
},
|
||||
|
||||
//
|
||||
// Implements \CEprescripts{presub}{presup}{base}{sub}{sup}
|
||||
//
|
||||
CEprescripts: function (name) {
|
||||
var presub = this.ParseArg(name),
|
||||
presup = this.ParseArg(name),
|
||||
base = this.ParseArg(name),
|
||||
sub = this.ParseArg(name),
|
||||
sup = this.ParseArg(name);
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
this.Push(MML.mmultiscripts(base,sub,sup,MML.mprescripts(),presub,presup));
|
||||
},
|
||||
CEnone: function (name) {
|
||||
this.Push(MathJax.ElementJax.mml.none());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//
|
||||
// Indicate that the extension is ready
|
||||
//
|
||||
MathJax.Hub.Startup.signal.Post("TeX mhchem Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/mhchem.js");
|
||||
-269
@@ -1,269 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/newcommand.js
|
||||
*
|
||||
* Implements the \newcommand, \newenvironment and \def
|
||||
* macros, and is loaded automatically when needed.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/newcommand"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var TEXDEF = TEX.Definitions;
|
||||
|
||||
TEXDEF.Add({
|
||||
macros: {
|
||||
newcommand: 'NewCommand',
|
||||
renewcommand: 'NewCommand',
|
||||
newenvironment: 'NewEnvironment',
|
||||
renewenvironment: 'NewEnvironment',
|
||||
def: 'MacroDef',
|
||||
let: 'Let'
|
||||
}
|
||||
},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
/*
|
||||
* Implement \newcommand{\name}[n][default]{...}
|
||||
*/
|
||||
NewCommand: function (name) {
|
||||
var cs = this.trimSpaces(this.GetArgument(name)),
|
||||
n = this.GetBrackets(name),
|
||||
opt = this.GetBrackets(name),
|
||||
def = this.GetArgument(name);
|
||||
if (cs.charAt(0) === "\\") {cs = cs.substr(1)}
|
||||
if (!cs.match(/^(.|[a-z]+)$/i)) {
|
||||
TEX.Error(["IllegalControlSequenceName",
|
||||
"Illegal control sequence name for %1",name]);
|
||||
}
|
||||
if (n) {
|
||||
n = this.trimSpaces(n);
|
||||
if (!n.match(/^[0-9]+$/)) {
|
||||
TEX.Error(["IllegalParamNumber",
|
||||
"Illegal number of parameters specified in %1",name]);
|
||||
}
|
||||
}
|
||||
this.setDef(cs,['Macro',def,n,opt]);
|
||||
},
|
||||
|
||||
/*
|
||||
* Implement \newenvironment{name}[n][default]{begincmd}{endcmd}
|
||||
*/
|
||||
NewEnvironment: function (name) {
|
||||
var env = this.trimSpaces(this.GetArgument(name)),
|
||||
n = this.GetBrackets(name),
|
||||
opt = this.GetBrackets(name),
|
||||
bdef = this.GetArgument(name),
|
||||
edef = this.GetArgument(name);
|
||||
if (n) {
|
||||
n = this.trimSpaces(n);
|
||||
if (!n.match(/^[0-9]+$/)) {
|
||||
TEX.Error(["IllegalParamNumber",
|
||||
"Illegal number of parameters specified in %1",name]);
|
||||
}
|
||||
}
|
||||
this.setEnv(env,['BeginEnv',[null,'EndEnv'],bdef,edef,n,opt]);
|
||||
},
|
||||
|
||||
/*
|
||||
* Implement \def command
|
||||
*/
|
||||
MacroDef: function (name) {
|
||||
var cs = this.GetCSname(name),
|
||||
params = this.GetTemplate(name,"\\"+cs),
|
||||
def = this.GetArgument(name);
|
||||
if (!(params instanceof Array)) {this.setDef(cs,['Macro',def,params])}
|
||||
else {this.setDef(cs,['MacroWithTemplate',def].concat(params))}
|
||||
},
|
||||
|
||||
/*
|
||||
* Implements the \let command
|
||||
*/
|
||||
Let: function (name) {
|
||||
var cs = this.GetCSname(name), macro;
|
||||
var c = this.GetNext(); if (c === "=") {this.i++; c = this.GetNext()}
|
||||
//
|
||||
// All \let commands create entries in the macros array, but we
|
||||
// have to look in the various mathchar and delimiter arrays if
|
||||
// the source isn't a macro already, and attach the data to a
|
||||
// macro with the proper routine to process it.
|
||||
//
|
||||
// A command of the form \let\cs=char produces a macro equivalent
|
||||
// to \def\cs{char}, which is as close as MathJax can get for this.
|
||||
// So \let\bgroup={ is possible, but doesn't work as it does in TeX.
|
||||
//
|
||||
if (c === "\\") {
|
||||
name = this.GetCSname(name);
|
||||
macro = this.csFindMacro(name);
|
||||
if (!macro) {
|
||||
if (TEXDEF.mathchar0mi[name]) {macro = ["csMathchar0mi",TEXDEF.mathchar0mi[name]]} else
|
||||
if (TEXDEF.mathchar0mo[name]) {macro = ["csMathchar0mo",TEXDEF.mathchar0mo[name]]} else
|
||||
if (TEXDEF.mathchar7[name]) {macro = ["csMathchar7",TEXDEF.mathchar7[name]]} else
|
||||
if (TEXDEF.delimiter["\\"+name] != null) {macro = ["csDelimiter",TEXDEF.delimiter["\\"+name]]}
|
||||
}
|
||||
} else {macro = ["Macro",c]; this.i++}
|
||||
this.setDef(cs,macro);
|
||||
},
|
||||
|
||||
/*
|
||||
* Routines to set the macro and environment definitions
|
||||
* (overridden by begingroup to make localized versions)
|
||||
*/
|
||||
setDef: function (name,value) {value.isUser = true; TEXDEF.macros[name] = value},
|
||||
setEnv: function (name,value) {value.isUser = true; TEXDEF.environment[name] = value},
|
||||
|
||||
/*
|
||||
* Get a CS name or give an error
|
||||
*/
|
||||
GetCSname: function (cmd) {
|
||||
var c = this.GetNext();
|
||||
if (c !== "\\") {
|
||||
TEX.Error(["MissingCS",
|
||||
"%1 must be followed by a control sequence", cmd])
|
||||
}
|
||||
var cs = this.trimSpaces(this.GetArgument(cmd));
|
||||
return cs.substr(1);
|
||||
},
|
||||
|
||||
/*
|
||||
* Get a \def parameter template
|
||||
*/
|
||||
GetTemplate: function (cmd,cs) {
|
||||
var c, params = [], n = 0;
|
||||
c = this.GetNext(); var i = this.i;
|
||||
while (this.i < this.string.length) {
|
||||
c = this.GetNext();
|
||||
if (c === '#') {
|
||||
if (i !== this.i) {params[n] = this.string.substr(i,this.i-i)}
|
||||
c = this.string.charAt(++this.i);
|
||||
if (!c.match(/^[1-9]$/)) {
|
||||
TEX.Error(["CantUseHash2",
|
||||
"Illegal use of # in template for %1",cs]);
|
||||
}
|
||||
if (parseInt(c) != ++n) {
|
||||
TEX.Error(["SequentialParam",
|
||||
"Parameters for %1 must be numbered sequentially",cs]);
|
||||
}
|
||||
i = this.i+1;
|
||||
} else if (c === '{') {
|
||||
if (i !== this.i) {params[n] = this.string.substr(i,this.i-i)}
|
||||
if (params.length > 0) {return [n,params]} else {return n}
|
||||
}
|
||||
this.i++;
|
||||
}
|
||||
TEX.Error(["MissingReplacementString",
|
||||
"Missing replacement string for definition of %1",cmd]);
|
||||
},
|
||||
|
||||
/*
|
||||
* Process a macro with a parameter template
|
||||
*/
|
||||
MacroWithTemplate: function (name,text,n,params) {
|
||||
if (n) {
|
||||
var args = []; this.GetNext();
|
||||
if (params[0] && !this.MatchParam(params[0])) {
|
||||
TEX.Error(["MismatchUseDef",
|
||||
"Use of %1 doesn't match its definition",name]);
|
||||
}
|
||||
for (var i = 0; i < n; i++) {args.push(this.GetParameter(name,params[i+1]))}
|
||||
text = this.SubstituteArgs(args,text);
|
||||
}
|
||||
this.string = this.AddArgs(text,this.string.slice(this.i));
|
||||
this.i = 0;
|
||||
if (++this.macroCount > TEX.config.MAXMACROS) {
|
||||
TEX.Error(["MaxMacroSub1",
|
||||
"MathJax maximum macro substitution count exceeded; " +
|
||||
"is there a recursive macro call?"]);
|
||||
}
|
||||
},
|
||||
|
||||
/*
|
||||
* Process a user-defined environment
|
||||
*/
|
||||
BeginEnv: function (begin,bdef,edef,n,def) {
|
||||
if (n) {
|
||||
var args = [];
|
||||
if (def != null) {
|
||||
var optional = this.GetBrackets("\\begin{"+name+"}");
|
||||
args.push(optional == null ? def : optional);
|
||||
}
|
||||
for (var i = args.length; i < n; i++) {args.push(this.GetArgument("\\begin{"+name+"}"))}
|
||||
bdef = this.SubstituteArgs(args,bdef);
|
||||
edef = this.SubstituteArgs([],edef); // no args, but get errors for #n in edef
|
||||
}
|
||||
this.string = this.AddArgs(bdef,this.string.slice(this.i)); this.i = 0;
|
||||
return begin;
|
||||
},
|
||||
EndEnv: function (begin,bdef,edef,n) {
|
||||
var end = "\\end{\\end\\"+begin.name+"}"; // special version of \end for after edef
|
||||
this.string = this.AddArgs(edef,end+this.string.slice(this.i)); this.i = 0;
|
||||
return null;
|
||||
},
|
||||
|
||||
/*
|
||||
* Find a single parameter delimited by a trailing template
|
||||
*/
|
||||
GetParameter: function (name,param) {
|
||||
if (param == null) {return this.GetArgument(name)}
|
||||
var i = this.i, j = 0, hasBraces = 0;
|
||||
while (this.i < this.string.length) {
|
||||
if (this.string.charAt(this.i) === '{') {
|
||||
if (this.i === i) {hasBraces = 1}
|
||||
this.GetArgument(name); j = this.i - i;
|
||||
} else if (this.MatchParam(param)) {
|
||||
if (hasBraces) {i++; j -= 2}
|
||||
return this.string.substr(i,j);
|
||||
} else {
|
||||
this.i++; j++; hasBraces = 0;
|
||||
}
|
||||
}
|
||||
TEX.Error(["RunawayArgument","Runaway argument for %1?",name]);
|
||||
},
|
||||
|
||||
/*
|
||||
* Check if a template is at the current location.
|
||||
* (The match must be exact, with no spacing differences. TeX is
|
||||
* a little more forgiving than this about spaces after macro names)
|
||||
*/
|
||||
MatchParam: function (param) {
|
||||
if (this.string.substr(this.i,param.length) !== param) {return 0}
|
||||
this.i += param.length;
|
||||
return 1;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
TEX.Environment = function (name) {
|
||||
TEXDEF.environment[name] = ['BeginEnv','EndEnv'].concat([].slice.call(arguments,1));
|
||||
TEXDEF.environment[name].isUser = true;
|
||||
}
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX newcommand Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/newcommand.js");
|
||||
-167
@@ -1,167 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/unicode.js
|
||||
*
|
||||
* Implements the \unicode extension to TeX to allow arbitrary unicode
|
||||
* code points to be entered into the TeX file. You can specify
|
||||
* the height and depth of the character (the width is determined by
|
||||
* the browser), and the default font from which to take the character.
|
||||
*
|
||||
* Examples:
|
||||
* \unicode{65} % the character 'A'
|
||||
* \unicode{x41} % the character 'A'
|
||||
* \unicode[.55,0.05]{x22D6} % less-than with dot, with height .55 and depth 0.05
|
||||
* \unicode[.55,0.05][Geramond]{x22D6} % same taken from Geramond font
|
||||
* \unicode[Garamond]{x22D6} % same, but with default height, depth of .8,.2
|
||||
*
|
||||
* Once a size and font are provided for a given code point, they need
|
||||
* not be specified again in subsequent \unicode calls for that character.
|
||||
* Note that a font list can be given, but Internet Explorer has a buggy
|
||||
* implementation of font-family where it only looks in the first
|
||||
* available font and if the glyph is not in that, it does not look at
|
||||
* later fonts, but goes directly to the default font as set in the
|
||||
* Internet-Options/Font panel. For this reason, the default font list is
|
||||
* "STIXGeneral,'Arial Unicode MS'", so if the user has STIX fonts, the
|
||||
* symbol will be taken from that (almost all the symbols are in
|
||||
* STIXGeneral), otherwise Arial Unicode MS is tried.
|
||||
*
|
||||
* To configure the default font list, use
|
||||
*
|
||||
* MathJax.Hub.Config({
|
||||
* TeX: {
|
||||
* unicode: {
|
||||
* fonts: "STIXGeneral,'Arial Unicode MS'"
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* The result of \unicode will have TeX class ORD (i.e., it will act like a
|
||||
* variable). Use \mathbin, \mathrel, etc, to specify a different class.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// The configuration defaults, augmented by the user settings
|
||||
//
|
||||
MathJax.Extension["TeX/unicode"] = {
|
||||
version: "2.6.0",
|
||||
unicode: {},
|
||||
config: MathJax.Hub.CombineConfig("TeX.unicode",{
|
||||
fonts: "STIXGeneral,'Arial Unicode MS'"
|
||||
})
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var UNICODE = MathJax.Extension["TeX/unicode"].unicode;
|
||||
|
||||
//
|
||||
// Add \unicode macro
|
||||
//
|
||||
TEX.Definitions.Add({macros: {unicode: 'Unicode'}},null,true);
|
||||
//
|
||||
// Implementation of \unicode in parser
|
||||
//
|
||||
TEX.Parse.Augment({
|
||||
Unicode: function(name) {
|
||||
var HD = this.GetBrackets(name), font;
|
||||
if (HD) {
|
||||
if (HD.replace(/ /g,"").match(/^(\d+(\.\d*)?|\.\d+),(\d+(\.\d*)?|\.\d+)$/))
|
||||
{HD = HD.replace(/ /g,"").split(/,/); font = this.GetBrackets(name)}
|
||||
else {font = HD; HD = null}
|
||||
}
|
||||
var n = this.trimSpaces(this.GetArgument(name)),
|
||||
N = parseInt(n.match(/^x/) ? "0"+n : n);
|
||||
if (!UNICODE[N]) {UNICODE[N] = [800,200,font,N]}
|
||||
else if (!font) {font = UNICODE[N][2]}
|
||||
if (HD) {
|
||||
UNICODE[N][0] = Math.floor(HD[0]*1000);
|
||||
UNICODE[N][1] = Math.floor(HD[1]*1000);
|
||||
}
|
||||
var variant = this.stack.env.font, def = {};
|
||||
if (font) {
|
||||
UNICODE[N][2] = def.fontfamily = font.replace(/"/g,"'");
|
||||
if (variant) {
|
||||
if (variant.match(/bold/)) {def.fontweight = "bold"}
|
||||
if (variant.match(/italic|-mathit/)) {def.fontstyle = "italic"}
|
||||
}
|
||||
} else if (variant) {def.mathvariant = variant}
|
||||
def.unicode = [].concat(UNICODE[N]); // make a copy
|
||||
this.Push(MML.mtext(MML.entity("#"+n)).With(def));
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX unicode Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var FONTS = MathJax.Extension["TeX/unicode"].config.fonts;
|
||||
|
||||
//
|
||||
// Override getVariant to make one that includes the font and size
|
||||
//
|
||||
var GETVARIANT = MML.mbase.prototype.HTMLgetVariant;
|
||||
MML.mbase.Augment({
|
||||
HTMLgetVariant: function () {
|
||||
var variant = GETVARIANT.apply(this,arguments);
|
||||
if (variant.unicode) {delete variant.unicode; delete variant.FONTS} // clear font cache in case of restart
|
||||
if (!this.unicode) {return variant}
|
||||
variant.unicode = true;
|
||||
if (!variant.defaultFont) {
|
||||
variant = MathJax.Hub.Insert({},variant); // make a copy
|
||||
variant.defaultFont = {family:FONTS};
|
||||
}
|
||||
var family = this.unicode[2]; if (family) {family += ","+FONTS} else {family = FONTS}
|
||||
variant.defaultFont[this.unicode[3]] = [
|
||||
this.unicode[0],this.unicode[1],500,0,500,
|
||||
{isUnknown:true, isUnicode:true, font:family}
|
||||
];
|
||||
return variant;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var FONTS = MathJax.Extension["TeX/unicode"].config.fonts;
|
||||
|
||||
//
|
||||
// Override getVariant to make one that includes the font and size
|
||||
//
|
||||
var GETVARIANT = MML.mbase.prototype.SVGgetVariant;
|
||||
MML.mbase.Augment({
|
||||
SVGgetVariant: function () {
|
||||
var variant = GETVARIANT.call(this);
|
||||
if (variant.unicode) {delete variant.unicode; delete variant.FONTS} // clear font cache in case of restart
|
||||
if (!this.unicode) {return variant}
|
||||
variant.unicode = true;
|
||||
if (!variant.forceFamily) {variant = MathJax.Hub.Insert({},variant)} // make a copy
|
||||
variant.defaultFamily = FONTS; variant.noRemap = true;
|
||||
variant.h = this.unicode[0]; variant.d = this.unicode[1];
|
||||
return variant;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/unicode.js");
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/TeX/verb.js
|
||||
*
|
||||
* Implements the \verb|...| command for including text verbatim
|
||||
* (with no processing of macros or special characters).
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension["TeX/verb"] = {
|
||||
version: "2.6.0"
|
||||
};
|
||||
|
||||
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
|
||||
|
||||
var MML = MathJax.ElementJax.mml;
|
||||
var TEX = MathJax.InputJax.TeX;
|
||||
var TEXDEF = TEX.Definitions;
|
||||
|
||||
TEXDEF.Add({macros: {verb: 'Verb'}},null,true);
|
||||
|
||||
TEX.Parse.Augment({
|
||||
|
||||
/*
|
||||
* Implement \verb|...|
|
||||
*/
|
||||
Verb: function (name) {
|
||||
var c = this.GetNext(); var start = ++this.i;
|
||||
if (c == "" ) {TEX.Error(["MissingArgFor","Missing argument for %1",name])}
|
||||
while (this.i < this.string.length && this.string.charAt(this.i) != c) {this.i++}
|
||||
if (this.i == this.string.length)
|
||||
{TEX.Error(["NoClosingDelim","Can't find closing delimiter for %1", name])}
|
||||
var text = this.string.slice(start,this.i).replace(/ /g,"\u00A0"); this.i++;
|
||||
this.Push(MML.mtext(text).With({mathvariant:MML.VARIANT.MONOSPACE}));
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("TeX verb Ready");
|
||||
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/verb.js");
|
||||
-239
@@ -1,239 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/asciimath2jax.js
|
||||
*
|
||||
* Implements the AsciiMath to Jax preprocessor that locates AsciiMath
|
||||
* code within the text of a document and replaces it with SCRIPT tags for
|
||||
* processing by MathJax.
|
||||
*
|
||||
* Modified by David Lippman, based on tex2jax.js.
|
||||
* Additional work by Davide P. Cervone.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2012-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension.asciimath2jax = {
|
||||
version: "2.6.0",
|
||||
config: {
|
||||
delimiters: [['`','`']], // The star/stop delimiter pairs for asciimath code
|
||||
|
||||
skipTags: ["script","noscript","style","textarea","pre","code","annotation","annotation-xml"],
|
||||
// The names of the tags whose contents will not be
|
||||
// scanned for math delimiters
|
||||
|
||||
ignoreClass: "asciimath2jax_ignore", // the class name of elements whose contents should
|
||||
// NOT be processed by asciimath2jax. Note that this
|
||||
// is a regular expression, so be sure to quote any
|
||||
// regexp special characters
|
||||
|
||||
processClass: "asciimath2jax_process", // the class name of elements whose contents SHOULD
|
||||
// be processed when they appear inside ones that
|
||||
// are ignored. Note that this is a regular expression,
|
||||
// so be sure to quote any regexp special characters
|
||||
|
||||
preview: "AsciiMath" // set to "none" to not insert MathJax_Preview spans
|
||||
// or set to an array specifying an HTML snippet
|
||||
// to use the same preview for every equation.
|
||||
|
||||
},
|
||||
|
||||
PreProcess: function (element) {
|
||||
if (!this.configured) {
|
||||
this.config = MathJax.Hub.CombineConfig("asciimath2jax",this.config);
|
||||
if (this.config.Augment) {MathJax.Hub.Insert(this,this.config.Augment)}
|
||||
this.configured = true;
|
||||
}
|
||||
if (typeof(element) === "string") {element = document.getElementById(element)}
|
||||
if (!element) {element = document.body}
|
||||
if (this.createPatterns()) {this.scanElement(element,element.nextSibling)}
|
||||
},
|
||||
|
||||
createPatterns: function () {
|
||||
var starts = [], i, m, config = this.config; this.match = {};
|
||||
if (config.delimiters.length === 0) {return false}
|
||||
for (i = 0, m = config.delimiters.length; i < m; i++) {
|
||||
starts.push(this.patternQuote(config.delimiters[i][0]));
|
||||
this.match[config.delimiters[i][0]] = {
|
||||
mode: "",
|
||||
end: config.delimiters[i][1],
|
||||
pattern: this.endPattern(config.delimiters[i][1])
|
||||
};
|
||||
}
|
||||
this.start = new RegExp(starts.sort(this.sortLength).join("|"),"g");
|
||||
this.skipTags = new RegExp("^("+config.skipTags.join("|")+")$","i");
|
||||
var ignore = [];
|
||||
if (MathJax.Hub.config.preRemoveClass) {ignore.push(MathJax.Hub.config.preRemoveClass)}
|
||||
if (config.ignoreClass) {ignore.push(config.ignoreClass)}
|
||||
this.ignoreClass = (ignore.length ? new RegExp("(^| )("+ignore.join("|")+")( |$)") : /^$/);
|
||||
this.processClass = new RegExp("(^| )("+config.processClass+")( |$)");
|
||||
return true;
|
||||
},
|
||||
|
||||
patternQuote: function (s) {return s.replace(/([\^$(){}+*?\-|\[\]\:\\])/g,'\\$1')},
|
||||
|
||||
endPattern: function (end) {
|
||||
return new RegExp(this.patternQuote(end)+"|\\\\.","g");
|
||||
},
|
||||
|
||||
sortLength: function (a,b) {
|
||||
if (a.length !== b.length) {return b.length - a.length}
|
||||
return (a == b ? 0 : (a < b ? -1 : 1));
|
||||
},
|
||||
|
||||
scanElement: function (element,stop,ignore) {
|
||||
var cname, tname, ignoreChild, process;
|
||||
while (element && element != stop) {
|
||||
if (element.nodeName.toLowerCase() === '#text') {
|
||||
if (!ignore) {element = this.scanText(element)}
|
||||
} else {
|
||||
cname = (typeof(element.className) === "undefined" ? "" : element.className);
|
||||
tname = (typeof(element.tagName) === "undefined" ? "" : element.tagName);
|
||||
if (typeof(cname) !== "string") {cname = String(cname)} // jsxgraph uses non-string class names!
|
||||
process = this.processClass.exec(cname);
|
||||
if (element.firstChild && !cname.match(/(^| )MathJax/) &&
|
||||
(process || !this.skipTags.exec(tname))) {
|
||||
ignoreChild = (ignore || this.ignoreClass.exec(cname)) && !process;
|
||||
this.scanElement(element.firstChild,stop,ignoreChild);
|
||||
}
|
||||
}
|
||||
if (element) {element = element.nextSibling}
|
||||
}
|
||||
},
|
||||
|
||||
scanText: function (element) {
|
||||
if (element.nodeValue.replace(/\s+/,'') == '') {return element}
|
||||
var match, prev;
|
||||
this.search = {start: true};
|
||||
this.pattern = this.start;
|
||||
while (element) {
|
||||
this.pattern.lastIndex = 0;
|
||||
while (element && element.nodeName.toLowerCase() === '#text' &&
|
||||
(match = this.pattern.exec(element.nodeValue))) {
|
||||
if (this.search.start) {element = this.startMatch(match,element)}
|
||||
else {element = this.endMatch(match,element)}
|
||||
}
|
||||
if (this.search.matched) {element = this.encloseMath(element)}
|
||||
if (element) {
|
||||
do {prev = element; element = element.nextSibling}
|
||||
while (element && (element.nodeName.toLowerCase() === 'br' ||
|
||||
element.nodeName.toLowerCase() === '#comment'));
|
||||
if (!element || element.nodeName !== '#text') {return prev}
|
||||
}
|
||||
}
|
||||
return element;
|
||||
},
|
||||
|
||||
startMatch: function (match,element) {
|
||||
var delim = this.match[match[0]];
|
||||
if (delim != null) {
|
||||
this.search = {
|
||||
end: delim.end, mode: delim.mode,
|
||||
open: element, olen: match[0].length,
|
||||
opos: this.pattern.lastIndex - match[0].length
|
||||
};
|
||||
this.switchPattern(delim.pattern);
|
||||
}
|
||||
return element;
|
||||
},
|
||||
|
||||
endMatch: function (match,element) {
|
||||
if (match[0] == this.search.end) {
|
||||
this.search.close = element;
|
||||
this.search.cpos = this.pattern.lastIndex;
|
||||
this.search.clen = (this.search.isBeginEnd ? 0 : match[0].length);
|
||||
this.search.matched = true;
|
||||
element = this.encloseMath(element);
|
||||
this.switchPattern(this.start);
|
||||
}
|
||||
return element;
|
||||
},
|
||||
|
||||
switchPattern: function (pattern) {
|
||||
pattern.lastIndex = this.pattern.lastIndex;
|
||||
this.pattern = pattern;
|
||||
this.search.start = (pattern === this.start);
|
||||
},
|
||||
|
||||
encloseMath: function (element) {
|
||||
var search = this.search, close = search.close, CLOSE, math;
|
||||
if (search.cpos === close.length) {close = close.nextSibling}
|
||||
else {close = close.splitText(search.cpos)}
|
||||
if (!close) {CLOSE = close = MathJax.HTML.addText(search.close.parentNode,"")}
|
||||
search.close = close;
|
||||
math = (search.opos ? search.open.splitText(search.opos) : search.open);
|
||||
while (math.nextSibling && math.nextSibling !== close) {
|
||||
if (math.nextSibling.nodeValue !== null) {
|
||||
if (math.nextSibling.nodeName === "#comment") {
|
||||
math.nodeValue += math.nextSibling.nodeValue.replace(/^\[CDATA\[((.|\n|\r)*)\]\]$/,"$1");
|
||||
} else {
|
||||
math.nodeValue += math.nextSibling.nodeValue;
|
||||
}
|
||||
} else if (this.msieNewlineBug) {
|
||||
math.nodeValue += (math.nextSibling.nodeName.toLowerCase() === "br" ? "\n" : " ");
|
||||
} else {
|
||||
math.nodeValue += " ";
|
||||
}
|
||||
math.parentNode.removeChild(math.nextSibling);
|
||||
}
|
||||
var AM = math.nodeValue.substr(search.olen,math.nodeValue.length-search.olen-search.clen);
|
||||
math.parentNode.removeChild(math);
|
||||
if (this.config.preview !== "none") {this.createPreview(search.mode,AM)}
|
||||
math = this.createMathTag(search.mode,AM);
|
||||
this.search = {}; this.pattern.lastIndex = 0;
|
||||
if (CLOSE) {CLOSE.parentNode.removeChild(CLOSE)}
|
||||
return math;
|
||||
},
|
||||
|
||||
insertNode: function (node) {
|
||||
var search = this.search;
|
||||
search.close.parentNode.insertBefore(node,search.close);
|
||||
},
|
||||
|
||||
createPreview: function (mode,asciimath) {
|
||||
var preview = this.config.preview;
|
||||
if (preview === "none") return;
|
||||
if (preview === "AsciiMath") {preview = [this.filterPreview(asciimath)]}
|
||||
if (preview) {
|
||||
preview = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass},preview);
|
||||
this.insertNode(preview);
|
||||
}
|
||||
},
|
||||
|
||||
createMathTag: function (mode,asciimath) {
|
||||
var script = document.createElement("script");
|
||||
script.type = "math/asciimath" + mode;
|
||||
MathJax.HTML.setScript(script,asciimath);
|
||||
this.insertNode(script);
|
||||
return script;
|
||||
},
|
||||
|
||||
filterPreview: function (asciimath) {return asciimath},
|
||||
|
||||
msieNewlineBug: (MathJax.Hub.Browser.isMSIE && (document.documentMode||0) < 9)
|
||||
|
||||
};
|
||||
|
||||
// We register the preprocessors with the following priorities:
|
||||
// - mml2jax.js: 5
|
||||
// - jsMath2jax.js: 8
|
||||
// - asciimath2jax.js, tex2jax.js: 10 (default)
|
||||
// See issues 18 and 484 and the other *2jax.js files.
|
||||
MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.asciimath2jax]);
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/asciimath2jax.js");
|
||||
-102
@@ -1,102 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/jsMath2jax.js
|
||||
*
|
||||
* Implements a jsMath to Jax preprocessor that locates jsMath-style
|
||||
* <SPAN CLASS="math">...</SPAN> and <DIV CLASS="math">...</DIV> tags
|
||||
* and replaces them with SCRIPT tags for processing by MathJax.
|
||||
* (Note: use the tex2jax preprocessor to convert TeX delimiters or
|
||||
* custom delimiters to MathJax SCRIPT tags. This preprocessor is
|
||||
* only for the SPAN and DIV form of jsMath delimiters).
|
||||
*
|
||||
* To use this preprocessor, include "jsMath2jax.js" in the extensions
|
||||
* array in your config/MathJax.js file, or the MathJax.Hub.Config() call
|
||||
* in your HTML document.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension.jsMath2jax = {
|
||||
version: "2.6.0",
|
||||
|
||||
config: {
|
||||
preview: "TeX" // Set to "none" to prevent preview strings from being inserted
|
||||
// or to an array that specifies an HTML snippet to use for
|
||||
// the preview.
|
||||
},
|
||||
|
||||
PreProcess: function (element) {
|
||||
if (!this.configured) {
|
||||
this.config = MathJax.Hub.CombineConfig("jsMath2jax",this.config);
|
||||
if (this.config.Augment) {MathJax.Hub.Insert(this,this.config.Augment)}
|
||||
if (typeof(this.config.previewTeX) !== "undefined" && !this.config.previewTeX)
|
||||
{this.config.preview = "none"} // backward compatibility for previewTeX parameter
|
||||
this.previewClass = MathJax.Hub.config.preRemoveClass;
|
||||
this.configured = true;
|
||||
}
|
||||
if (typeof(element) === "string") {element = document.getElementById(element)}
|
||||
if (!element) {element = document.body}
|
||||
var span = element.getElementsByTagName("span"), i;
|
||||
for (i = span.length-1; i >= 0; i--)
|
||||
{if (String(span[i].className).match(/(^| )math( |$)/)) {this.ConvertMath(span[i],"")}}
|
||||
var div = element.getElementsByTagName("div");
|
||||
for (i = div.length-1; i >= 0; i--)
|
||||
{if (String(div[i].className).match(/(^| )math( |$)/)) {this.ConvertMath(div[i],"; mode=display")}}
|
||||
},
|
||||
|
||||
ConvertMath: function (node,mode) {
|
||||
if (node.getElementsByTagName("script").length === 0) {
|
||||
var parent = node.parentNode,
|
||||
script = this.createMathTag(mode,node.innerHTML);
|
||||
if (node.nextSibling) {parent.insertBefore(script,node.nextSibling)}
|
||||
else {parent.appendChild(script)}
|
||||
if (this.config.preview !== "none") {this.createPreview(node)}
|
||||
parent.removeChild(node);
|
||||
}
|
||||
},
|
||||
|
||||
createPreview: function (node) {
|
||||
var preview = this.config.preview;
|
||||
if (preview === "TeX") {preview = [this.filterPreview(node.innerHTML)]}
|
||||
if (preview) {
|
||||
preview = MathJax.HTML.Element("span",{className: MathJax.Hub.config.preRemoveClass},preview);
|
||||
node.parentNode.insertBefore(preview,node);
|
||||
}
|
||||
},
|
||||
|
||||
createMathTag: function (mode,tex) {
|
||||
tex = tex.replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&");
|
||||
var script = document.createElement("script");
|
||||
script.type = "math/tex" + mode;
|
||||
MathJax.HTML.setScript(script,tex);
|
||||
return script;
|
||||
},
|
||||
|
||||
filterPreview: function (tex) {return tex}
|
||||
|
||||
};
|
||||
|
||||
// We register the preprocessors with the following priorities:
|
||||
// - mml2jax.js: 5
|
||||
// - jsMath2jax.js: 8
|
||||
// - asciimath2jax.js, tex2jax.js: 10 (default)
|
||||
// See issues 18 and 484 and the other *2jax.js files.
|
||||
MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.jsMath2jax],8);
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/jsMath2jax.js");
|
||||
-261
@@ -1,261 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/extensions/mml2jax.js
|
||||
*
|
||||
* Implements the MathML to Jax preprocessor that locates <math> nodes
|
||||
* within the text of a document and replaces them with SCRIPT tags
|
||||
* for processing by MathJax.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Extension.mml2jax = {
|
||||
version: "2.6.0",
|
||||
config: {
|
||||
preview: "mathml" // Use the <math> element as the
|
||||
// preview. Set to "none" for no preview,
|
||||
// set to "alttext" to use the alttext attribute
|
||||
// of the <math> element, set to "altimg" to use
|
||||
// an image described by the altimg* attributes
|
||||
// or set to an array specifying an HTML snippet
|
||||
// to use a fixed preview for all math
|
||||
|
||||
},
|
||||
MMLnamespace: "http://www.w3.org/1998/Math/MathML",
|
||||
|
||||
PreProcess: function (element) {
|
||||
if (!this.configured) {
|
||||
this.config = MathJax.Hub.CombineConfig("mml2jax",this.config);
|
||||
if (this.config.Augment) {MathJax.Hub.Insert(this,this.config.Augment)}
|
||||
this.InitBrowser();
|
||||
this.configured = true;
|
||||
}
|
||||
if (typeof(element) === "string") {element = document.getElementById(element)}
|
||||
if (!element) {element = document.body}
|
||||
var mathArray = [];
|
||||
//
|
||||
// Handle all math tags with no namespaces
|
||||
//
|
||||
this.PushMathElements(mathArray,element,"math");
|
||||
//
|
||||
// Handle math with namespaces in XHTML
|
||||
//
|
||||
this.PushMathElements(mathArray,element,"math",this.MMLnamespace);
|
||||
//
|
||||
// Handle math with namespaces in HTML
|
||||
//
|
||||
var i, m;
|
||||
if (typeof(document.namespaces) !== "undefined") {
|
||||
//
|
||||
// IE namespaces are listed in document.namespaces
|
||||
//
|
||||
try {
|
||||
for (i = 0, m = document.namespaces.length; i < m; i++) {
|
||||
var ns = document.namespaces[i];
|
||||
if (ns.urn === this.MMLnamespace)
|
||||
{this.PushMathElements(mathArray,element,ns.name+":math")}
|
||||
}
|
||||
} catch (err) {}
|
||||
} else {
|
||||
//
|
||||
// Everybody else
|
||||
//
|
||||
var html = document.getElementsByTagName("html")[0];
|
||||
if (html) {
|
||||
for (i = 0, m = html.attributes.length; i < m; i++) {
|
||||
var attr = html.attributes[i];
|
||||
if (attr.nodeName.substr(0,6) === "xmlns:" && attr.nodeValue === this.MMLnamespace)
|
||||
{this.PushMathElements(mathArray,element,attr.nodeName.substr(6)+":math")}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.ProcessMathArray(mathArray);
|
||||
},
|
||||
|
||||
PushMathElements: function (array,element,name,namespace) {
|
||||
var math, preview = MathJax.Hub.config.preRemoveClass;
|
||||
if (namespace) {
|
||||
if (!element.getElementsByTagNameNS) return;
|
||||
math = element.getElementsByTagNameNS(namespace,name);
|
||||
} else {
|
||||
math = element.getElementsByTagName(name);
|
||||
}
|
||||
for (var i = 0, m = math.length; i < m; i++) {
|
||||
var parent = math[i].parentNode;
|
||||
if (parent && parent.className !== preview &&
|
||||
!parent.isMathJax && !math[i].prefix === !namespace) array.push(math[i]);
|
||||
}
|
||||
},
|
||||
|
||||
ProcessMathArray: function (math) {
|
||||
var i, m = math.length;
|
||||
if (m) {
|
||||
if (this.MathTagBug) {
|
||||
for (i = 0; i < m; i++) {
|
||||
if (math[i].nodeName === "MATH") {this.ProcessMathFlattened(math[i])}
|
||||
else {this.ProcessMath(math[i])}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < m; i++) {this.ProcessMath(math[i])}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
ProcessMath: function (math) {
|
||||
var parent = math.parentNode;
|
||||
if (!parent || parent.className === MathJax.Hub.config.preRemoveClass) return;
|
||||
var script = document.createElement("script");
|
||||
script.type = "math/mml";
|
||||
parent.insertBefore(script,math);
|
||||
if (this.AttributeBug) {
|
||||
var html = this.OuterHTML(math);
|
||||
if (this.CleanupHTML) {
|
||||
html = html.replace(/<\?import .*?>/i,"").replace(/<\?xml:namespace .*?\/>/i,"");
|
||||
html = html.replace(/ /g," ");
|
||||
}
|
||||
MathJax.HTML.setScript(script,html); parent.removeChild(math);
|
||||
} else {
|
||||
var span = MathJax.HTML.Element("span"); span.appendChild(math);
|
||||
MathJax.HTML.setScript(script,span.innerHTML);
|
||||
}
|
||||
if (this.config.preview !== "none") {this.createPreview(math,script)}
|
||||
},
|
||||
|
||||
ProcessMathFlattened: function (math) {
|
||||
var parent = math.parentNode;
|
||||
if (!parent || parent.className === MathJax.Hub.config.preRemoveClass) return;
|
||||
var script = document.createElement("script");
|
||||
script.type = "math/mml";
|
||||
parent.insertBefore(script,math);
|
||||
var mml = "", node, MATH = math;
|
||||
while (math && math.nodeName !== "/MATH") {
|
||||
node = math; math = math.nextSibling;
|
||||
mml += this.NodeHTML(node);
|
||||
node.parentNode.removeChild(node);
|
||||
}
|
||||
if (math && math.nodeName === "/MATH") {math.parentNode.removeChild(math)}
|
||||
script.text = mml + "</math>";
|
||||
if (this.config.preview !== "none") {this.createPreview(MATH,script)}
|
||||
},
|
||||
|
||||
NodeHTML: function (node) {
|
||||
var html, i, m;
|
||||
if (node.nodeName === "#text") {
|
||||
html = this.quoteHTML(node.nodeValue);
|
||||
} else if (node.nodeName === "#comment") {
|
||||
html = "<!--" + node.nodeValue + "-->"
|
||||
} else {
|
||||
// In IE, outerHTML doesn't properly quote attributes, so quote them by hand
|
||||
// In Opera, HTML special characters aren't quoted in attributes, so quote them
|
||||
html = "<"+node.nodeName.toLowerCase();
|
||||
for (i = 0, m = node.attributes.length; i < m; i++) {
|
||||
var attribute = node.attributes[i];
|
||||
if (attribute.specified && attribute.nodeName.substr(0,10) !== "_moz-math-") {
|
||||
// Opera 11.5 beta turns xmlns into xmlns:xmlns, so put it back (*** check after 11.5 is out ***)
|
||||
html += " "+attribute.nodeName.toLowerCase().replace(/xmlns:xmlns/,"xmlns")+"=";
|
||||
var value = attribute.nodeValue; // IE < 8 doesn't properly set style by setAttributes
|
||||
if (value == null && attribute.nodeName === "style" && node.style) {value = node.style.cssText}
|
||||
html += '"'+this.quoteHTML(value)+'"';
|
||||
}
|
||||
}
|
||||
html += ">";
|
||||
// Handle internal HTML (possibly due to <semantics> annotation or missing </math>)
|
||||
if (node.outerHTML != null && node.outerHTML.match(/(.<\/[A-Z]+>|\/>)$/)) {
|
||||
for (i = 0, m = node.childNodes.length; i < m; i++)
|
||||
{html += this.OuterHTML(node.childNodes[i])}
|
||||
html += "</"+node.nodeName.toLowerCase()+">";
|
||||
}
|
||||
}
|
||||
return html;
|
||||
},
|
||||
OuterHTML: function (node) {
|
||||
if (node.nodeName.charAt(0) === "#") {return this.NodeHTML(node)}
|
||||
if (!this.AttributeBug) {return node.outerHTML}
|
||||
var html = this.NodeHTML(node);
|
||||
for (var i = 0, m = node.childNodes.length; i < m; i++)
|
||||
{html += this.OuterHTML(node.childNodes[i]);}
|
||||
html += "</"+node.nodeName.toLowerCase()+">";
|
||||
return html;
|
||||
},
|
||||
quoteHTML: function (string) {
|
||||
if (string == null) {string = ""}
|
||||
return string.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/\"/g,""");
|
||||
},
|
||||
|
||||
createPreview: function (math,script) {
|
||||
var preview = this.config.preview;
|
||||
if (preview === "none") return;
|
||||
var isNodePreview = false;
|
||||
if (preview === "mathml") {
|
||||
isNodePreview = true;
|
||||
// mathml preview does not work with IE < 9, so fallback to alttext.
|
||||
if (this.MathTagBug) {preview = "alttext"} else {preview = math.cloneNode(true)}
|
||||
}
|
||||
if (preview === "alttext" || preview === "altimg") {
|
||||
isNodePreview = true;
|
||||
var alttext = this.filterPreview(math.getAttribute("alttext"));
|
||||
if (preview === "alttext") {
|
||||
if (alttext != null) {preview = MathJax.HTML.TextNode(alttext)} else {preview = null}
|
||||
} else {
|
||||
var src = math.getAttribute("altimg");
|
||||
if (src != null) {
|
||||
// FIXME: use altimg-valign when display="inline"?
|
||||
var style = {width: math.getAttribute("altimg-width"), height: math.getAttribute("altimg-height")};
|
||||
preview = MathJax.HTML.Element("img",{src:src,alt:alttext,style:style});
|
||||
} else {preview = null}
|
||||
}
|
||||
}
|
||||
if (preview) {
|
||||
var span;
|
||||
if (isNodePreview) {
|
||||
span = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass});
|
||||
span.appendChild(preview);
|
||||
} else {
|
||||
span = MathJax.HTML.Element("span",{className:MathJax.Hub.config.preRemoveClass},preview);
|
||||
}
|
||||
script.parentNode.insertBefore(span,script);
|
||||
}
|
||||
},
|
||||
|
||||
filterPreview: function (text) {return text},
|
||||
|
||||
InitBrowser: function () {
|
||||
var test = MathJax.HTML.Element("span",{id:"<", className: "mathjax", innerHTML: "<math><mi>x</mi><mspace /></math>"});
|
||||
var html = test.outerHTML || "";
|
||||
this.AttributeBug = html !== "" && !(
|
||||
html.match(/id="<"/) && // "<" should convert to "<"
|
||||
html.match(/class="mathjax"/) && // IE leaves out quotes
|
||||
html.match(/<\/math>/) // Opera 9 drops tags after self-closing tags
|
||||
);
|
||||
this.MathTagBug = test.childNodes.length > 1; // IE < 9 flattens unknown tags
|
||||
this.CleanupHTML = MathJax.Hub.Browser.isMSIE; // remove namespace and other added tags
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
//
|
||||
// We register the preprocessors with the following priorities:
|
||||
// - mml2jax.js: 5
|
||||
// - jsMath2jax.js: 8
|
||||
// - asciimath2jax.js, tex2jax.js: 10 (default)
|
||||
// See issues 18 and 484 and the other *2jax.js files.
|
||||
//
|
||||
MathJax.Hub.Register.PreProcessor(["PreProcess",MathJax.Extension.mml2jax],5);
|
||||
MathJax.Ajax.loadComplete("[MathJax]/extensions/mml2jax.js");
|
||||
@@ -1,46 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/input/AsciiMath/config.js
|
||||
*
|
||||
* Initializes the AsciiMath InputJax (the main definition is in
|
||||
* MathJax/jax/input/AsciiMath/jax.js, which is loaded when needed).
|
||||
*
|
||||
* Originally adapted for MathJax by David Lippman.
|
||||
* Additional work done by Davide P. Cervone.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2012-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.InputJax.AsciiMath = MathJax.InputJax({
|
||||
id: "AsciiMath",
|
||||
version: "2.6.0",
|
||||
directory: MathJax.InputJax.directory + "/AsciiMath",
|
||||
extensionDir: MathJax.InputJax.extensionDir + "/AsciiMath",
|
||||
|
||||
config: {
|
||||
fixphi: true, // switch phi and varphi unicode values
|
||||
useMathMLspacing: true, // use MathML spacing rather than TeX spacing?
|
||||
displaystyle: true, // put limits above and below operators
|
||||
decimalsign: "." // can change to "," but watch out for "(1,2)"
|
||||
}
|
||||
});
|
||||
MathJax.InputJax.AsciiMath.Register("math/asciimath");
|
||||
|
||||
MathJax.InputJax.AsciiMath.loadComplete("config.js");
|
||||
-1480
File diff suppressed because it is too large
Load Diff
@@ -1,41 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/input/MathML/config.js
|
||||
*
|
||||
* Initializes the MathML InputJax (the main definition is in
|
||||
* MathJax/jax/input/MathML/jax.js, which is loaded when needed).
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2009-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.InputJax.MathML = MathJax.InputJax({
|
||||
id: "MathML",
|
||||
version: "2.6.1",
|
||||
directory: MathJax.InputJax.directory + "/MathML",
|
||||
extensionDir: MathJax.InputJax.extensionDir + "/MathML",
|
||||
entityDir: MathJax.InputJax.directory + "/MathML/entities",
|
||||
|
||||
config: {
|
||||
useMathMLspacing: false // false means use TeX spacing, true means MML spacing
|
||||
}
|
||||
});
|
||||
MathJax.InputJax.MathML.Register("math/mml");
|
||||
|
||||
MathJax.InputJax.MathML.loadComplete("config.js");
|
||||
@@ -1,90 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/a.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'AElig': '\u00C6',
|
||||
'AMP': '\u0026',
|
||||
'Aacute': '\u00C1',
|
||||
'Abreve': '\u0102',
|
||||
'Acirc': '\u00C2',
|
||||
'Acy': '\u0410',
|
||||
'Agrave': '\u00C0',
|
||||
'Alpha': '\u0391',
|
||||
'Amacr': '\u0100',
|
||||
'And': '\u2A53',
|
||||
'Aogon': '\u0104',
|
||||
'Aring': '\u00C5',
|
||||
'Assign': '\u2254',
|
||||
'Atilde': '\u00C3',
|
||||
'Auml': '\u00C4',
|
||||
'aacute': '\u00E1',
|
||||
'abreve': '\u0103',
|
||||
'ac': '\u223E',
|
||||
'acE': '\u223E\u0333',
|
||||
'acd': '\u223F',
|
||||
'acirc': '\u00E2',
|
||||
'acy': '\u0430',
|
||||
'aelig': '\u00E6',
|
||||
'af': '\u2061',
|
||||
'agrave': '\u00E0',
|
||||
'alefsym': '\u2135',
|
||||
'amacr': '\u0101',
|
||||
'amp': '\u0026',
|
||||
'andand': '\u2A55',
|
||||
'andd': '\u2A5C',
|
||||
'andslope': '\u2A58',
|
||||
'andv': '\u2A5A',
|
||||
'ange': '\u29A4',
|
||||
'angle': '\u2220',
|
||||
'angmsdaa': '\u29A8',
|
||||
'angmsdab': '\u29A9',
|
||||
'angmsdac': '\u29AA',
|
||||
'angmsdad': '\u29AB',
|
||||
'angmsdae': '\u29AC',
|
||||
'angmsdaf': '\u29AD',
|
||||
'angmsdag': '\u29AE',
|
||||
'angmsdah': '\u29AF',
|
||||
'angrt': '\u221F',
|
||||
'angrtvb': '\u22BE',
|
||||
'angrtvbd': '\u299D',
|
||||
'angst': '\u00C5',
|
||||
'angzarr': '\u237C',
|
||||
'aogon': '\u0105',
|
||||
'ap': '\u2248',
|
||||
'apE': '\u2A70',
|
||||
'apacir': '\u2A6F',
|
||||
'apid': '\u224B',
|
||||
'apos': '\u0027',
|
||||
'approx': '\u2248',
|
||||
'approxeq': '\u224A',
|
||||
'aring': '\u00E5',
|
||||
'ast': '\u002A',
|
||||
'asymp': '\u2248',
|
||||
'asympeq': '\u224D',
|
||||
'atilde': '\u00E3',
|
||||
'auml': '\u00E4',
|
||||
'awconint': '\u2233',
|
||||
'awint': '\u2A11'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/a.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,116 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/b.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Barv': '\u2AE7',
|
||||
'Barwed': '\u2306',
|
||||
'Bcy': '\u0411',
|
||||
'Bernoullis': '\u212C',
|
||||
'Beta': '\u0392',
|
||||
'Bumpeq': '\u224E',
|
||||
'bNot': '\u2AED',
|
||||
'backcong': '\u224C',
|
||||
'backepsilon': '\u03F6',
|
||||
'barvee': '\u22BD',
|
||||
'barwed': '\u2305',
|
||||
'barwedge': '\u2305',
|
||||
'bbrk': '\u23B5',
|
||||
'bbrktbrk': '\u23B6',
|
||||
'bcong': '\u224C',
|
||||
'bcy': '\u0431',
|
||||
'bdquo': '\u201E',
|
||||
'becaus': '\u2235',
|
||||
'because': '\u2235',
|
||||
'bemptyv': '\u29B0',
|
||||
'bepsi': '\u03F6',
|
||||
'bernou': '\u212C',
|
||||
'bigcap': '\u22C2',
|
||||
'bigcup': '\u22C3',
|
||||
'bigvee': '\u22C1',
|
||||
'bigwedge': '\u22C0',
|
||||
'bkarow': '\u290D',
|
||||
'blacksquare': '\u25AA',
|
||||
'blacktriangleright': '\u25B8',
|
||||
'blank': '\u2423',
|
||||
'blk12': '\u2592',
|
||||
'blk14': '\u2591',
|
||||
'blk34': '\u2593',
|
||||
'block': '\u2588',
|
||||
'bne': '\u003D\u20E5',
|
||||
'bnequiv': '\u2261\u20E5',
|
||||
'bnot': '\u2310',
|
||||
'bot': '\u22A5',
|
||||
'bottom': '\u22A5',
|
||||
'boxDL': '\u2557',
|
||||
'boxDR': '\u2554',
|
||||
'boxDl': '\u2556',
|
||||
'boxDr': '\u2553',
|
||||
'boxH': '\u2550',
|
||||
'boxHD': '\u2566',
|
||||
'boxHU': '\u2569',
|
||||
'boxHd': '\u2564',
|
||||
'boxHu': '\u2567',
|
||||
'boxUL': '\u255D',
|
||||
'boxUR': '\u255A',
|
||||
'boxUl': '\u255C',
|
||||
'boxUr': '\u2559',
|
||||
'boxV': '\u2551',
|
||||
'boxVH': '\u256C',
|
||||
'boxVL': '\u2563',
|
||||
'boxVR': '\u2560',
|
||||
'boxVh': '\u256B',
|
||||
'boxVl': '\u2562',
|
||||
'boxVr': '\u255F',
|
||||
'boxbox': '\u29C9',
|
||||
'boxdL': '\u2555',
|
||||
'boxdR': '\u2552',
|
||||
'boxh': '\u2500',
|
||||
'boxhD': '\u2565',
|
||||
'boxhU': '\u2568',
|
||||
'boxhd': '\u252C',
|
||||
'boxhu': '\u2534',
|
||||
'boxuL': '\u255B',
|
||||
'boxuR': '\u2558',
|
||||
'boxv': '\u2502',
|
||||
'boxvH': '\u256A',
|
||||
'boxvL': '\u2561',
|
||||
'boxvR': '\u255E',
|
||||
'boxvh': '\u253C',
|
||||
'boxvl': '\u2524',
|
||||
'boxvr': '\u251C',
|
||||
'bprime': '\u2035',
|
||||
'breve': '\u02D8',
|
||||
'brvbar': '\u00A6',
|
||||
'bsemi': '\u204F',
|
||||
'bsim': '\u223D',
|
||||
'bsime': '\u22CD',
|
||||
'bsolb': '\u29C5',
|
||||
'bsolhsub': '\u27C8',
|
||||
'bullet': '\u2022',
|
||||
'bump': '\u224E',
|
||||
'bumpE': '\u2AAE',
|
||||
'bumpe': '\u224F',
|
||||
'bumpeq': '\u224F'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/b.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,114 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/c.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'CHcy': '\u0427',
|
||||
'COPY': '\u00A9',
|
||||
'Cacute': '\u0106',
|
||||
'CapitalDifferentialD': '\u2145',
|
||||
'Cayleys': '\u212D',
|
||||
'Ccaron': '\u010C',
|
||||
'Ccedil': '\u00C7',
|
||||
'Ccirc': '\u0108',
|
||||
'Cconint': '\u2230',
|
||||
'Cdot': '\u010A',
|
||||
'Cedilla': '\u00B8',
|
||||
'Chi': '\u03A7',
|
||||
'ClockwiseContourIntegral': '\u2232',
|
||||
'CloseCurlyDoubleQuote': '\u201D',
|
||||
'CloseCurlyQuote': '\u2019',
|
||||
'Colon': '\u2237',
|
||||
'Colone': '\u2A74',
|
||||
'Conint': '\u222F',
|
||||
'CounterClockwiseContourIntegral': '\u2233',
|
||||
'cacute': '\u0107',
|
||||
'capand': '\u2A44',
|
||||
'capbrcup': '\u2A49',
|
||||
'capcap': '\u2A4B',
|
||||
'capcup': '\u2A47',
|
||||
'capdot': '\u2A40',
|
||||
'caps': '\u2229\uFE00',
|
||||
'caret': '\u2041',
|
||||
'caron': '\u02C7',
|
||||
'ccaps': '\u2A4D',
|
||||
'ccaron': '\u010D',
|
||||
'ccedil': '\u00E7',
|
||||
'ccirc': '\u0109',
|
||||
'ccups': '\u2A4C',
|
||||
'ccupssm': '\u2A50',
|
||||
'cdot': '\u010B',
|
||||
'cedil': '\u00B8',
|
||||
'cemptyv': '\u29B2',
|
||||
'cent': '\u00A2',
|
||||
'centerdot': '\u00B7',
|
||||
'chcy': '\u0447',
|
||||
'checkmark': '\u2713',
|
||||
'cir': '\u25CB',
|
||||
'cirE': '\u29C3',
|
||||
'cire': '\u2257',
|
||||
'cirfnint': '\u2A10',
|
||||
'cirmid': '\u2AEF',
|
||||
'cirscir': '\u29C2',
|
||||
'clubsuit': '\u2663',
|
||||
'colone': '\u2254',
|
||||
'coloneq': '\u2254',
|
||||
'comma': '\u002C',
|
||||
'commat': '\u0040',
|
||||
'compfn': '\u2218',
|
||||
'complement': '\u2201',
|
||||
'complexes': '\u2102',
|
||||
'cong': '\u2245',
|
||||
'congdot': '\u2A6D',
|
||||
'conint': '\u222E',
|
||||
'coprod': '\u2210',
|
||||
'copy': '\u00A9',
|
||||
'copysr': '\u2117',
|
||||
'crarr': '\u21B5',
|
||||
'cross': '\u2717',
|
||||
'csub': '\u2ACF',
|
||||
'csube': '\u2AD1',
|
||||
'csup': '\u2AD0',
|
||||
'csupe': '\u2AD2',
|
||||
'cudarrl': '\u2938',
|
||||
'cudarrr': '\u2935',
|
||||
'cularrp': '\u293D',
|
||||
'cupbrcap': '\u2A48',
|
||||
'cupcap': '\u2A46',
|
||||
'cupcup': '\u2A4A',
|
||||
'cupdot': '\u228D',
|
||||
'cupor': '\u2A45',
|
||||
'cups': '\u222A\uFE00',
|
||||
'curarrm': '\u293C',
|
||||
'curlyeqprec': '\u22DE',
|
||||
'curlyeqsucc': '\u22DF',
|
||||
'curren': '\u00A4',
|
||||
'curvearrowleft': '\u21B6',
|
||||
'curvearrowright': '\u21B7',
|
||||
'cuvee': '\u22CE',
|
||||
'cuwed': '\u22CF',
|
||||
'cwconint': '\u2232',
|
||||
'cwint': '\u2231',
|
||||
'cylcty': '\u232D'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/c.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,112 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/d.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'DD': '\u2145',
|
||||
'DDotrahd': '\u2911',
|
||||
'DJcy': '\u0402',
|
||||
'DScy': '\u0405',
|
||||
'DZcy': '\u040F',
|
||||
'Darr': '\u21A1',
|
||||
'Dashv': '\u2AE4',
|
||||
'Dcaron': '\u010E',
|
||||
'Dcy': '\u0414',
|
||||
'DiacriticalAcute': '\u00B4',
|
||||
'DiacriticalDot': '\u02D9',
|
||||
'DiacriticalDoubleAcute': '\u02DD',
|
||||
'DiacriticalGrave': '\u0060',
|
||||
'DiacriticalTilde': '\u02DC',
|
||||
'Dot': '\u00A8',
|
||||
'DotDot': '\u20DC',
|
||||
'DoubleContourIntegral': '\u222F',
|
||||
'DoubleDownArrow': '\u21D3',
|
||||
'DoubleLeftArrow': '\u21D0',
|
||||
'DoubleLeftRightArrow': '\u21D4',
|
||||
'DoubleLeftTee': '\u2AE4',
|
||||
'DoubleLongLeftArrow': '\u27F8',
|
||||
'DoubleLongLeftRightArrow': '\u27FA',
|
||||
'DoubleLongRightArrow': '\u27F9',
|
||||
'DoubleRightArrow': '\u21D2',
|
||||
'DoubleUpArrow': '\u21D1',
|
||||
'DoubleUpDownArrow': '\u21D5',
|
||||
'DownArrowBar': '\u2913',
|
||||
'DownArrowUpArrow': '\u21F5',
|
||||
'DownBreve': '\u0311',
|
||||
'DownLeftRightVector': '\u2950',
|
||||
'DownLeftTeeVector': '\u295E',
|
||||
'DownLeftVectorBar': '\u2956',
|
||||
'DownRightTeeVector': '\u295F',
|
||||
'DownRightVectorBar': '\u2957',
|
||||
'DownTeeArrow': '\u21A7',
|
||||
'Dstrok': '\u0110',
|
||||
'dArr': '\u21D3',
|
||||
'dHar': '\u2965',
|
||||
'darr': '\u2193',
|
||||
'dash': '\u2010',
|
||||
'dashv': '\u22A3',
|
||||
'dbkarow': '\u290F',
|
||||
'dblac': '\u02DD',
|
||||
'dcaron': '\u010F',
|
||||
'dcy': '\u0434',
|
||||
'dd': '\u2146',
|
||||
'ddagger': '\u2021',
|
||||
'ddotseq': '\u2A77',
|
||||
'demptyv': '\u29B1',
|
||||
'dfisht': '\u297F',
|
||||
'dharl': '\u21C3',
|
||||
'dharr': '\u21C2',
|
||||
'diam': '\u22C4',
|
||||
'diamond': '\u22C4',
|
||||
'diamondsuit': '\u2666',
|
||||
'diams': '\u2666',
|
||||
'die': '\u00A8',
|
||||
'disin': '\u22F2',
|
||||
'divide': '\u00F7',
|
||||
'divonx': '\u22C7',
|
||||
'djcy': '\u0452',
|
||||
'dlcorn': '\u231E',
|
||||
'dlcrop': '\u230D',
|
||||
'dollar': '\u0024',
|
||||
'doteq': '\u2250',
|
||||
'dotminus': '\u2238',
|
||||
'doublebarwedge': '\u2306',
|
||||
'downarrow': '\u2193',
|
||||
'downdownarrows': '\u21CA',
|
||||
'downharpoonleft': '\u21C3',
|
||||
'downharpoonright': '\u21C2',
|
||||
'drbkarow': '\u2910',
|
||||
'drcorn': '\u231F',
|
||||
'drcrop': '\u230C',
|
||||
'dscy': '\u0455',
|
||||
'dsol': '\u29F6',
|
||||
'dstrok': '\u0111',
|
||||
'dtri': '\u25BF',
|
||||
'dtrif': '\u25BE',
|
||||
'duarr': '\u21F5',
|
||||
'duhar': '\u296F',
|
||||
'dwangle': '\u29A6',
|
||||
'dzcy': '\u045F',
|
||||
'dzigrarr': '\u27FF'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/d.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,92 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/e.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'ENG': '\u014A',
|
||||
'ETH': '\u00D0',
|
||||
'Eacute': '\u00C9',
|
||||
'Ecaron': '\u011A',
|
||||
'Ecirc': '\u00CA',
|
||||
'Ecy': '\u042D',
|
||||
'Edot': '\u0116',
|
||||
'Egrave': '\u00C8',
|
||||
'Emacr': '\u0112',
|
||||
'EmptySmallSquare': '\u25FB',
|
||||
'EmptyVerySmallSquare': '\u25AB',
|
||||
'Eogon': '\u0118',
|
||||
'Epsilon': '\u0395',
|
||||
'Equal': '\u2A75',
|
||||
'Esim': '\u2A73',
|
||||
'Eta': '\u0397',
|
||||
'Euml': '\u00CB',
|
||||
'eDDot': '\u2A77',
|
||||
'eDot': '\u2251',
|
||||
'eacute': '\u00E9',
|
||||
'easter': '\u2A6E',
|
||||
'ecaron': '\u011B',
|
||||
'ecirc': '\u00EA',
|
||||
'ecolon': '\u2255',
|
||||
'ecy': '\u044D',
|
||||
'edot': '\u0117',
|
||||
'ee': '\u2147',
|
||||
'eg': '\u2A9A',
|
||||
'egrave': '\u00E8',
|
||||
'egsdot': '\u2A98',
|
||||
'el': '\u2A99',
|
||||
'elinters': '\u23E7',
|
||||
'elsdot': '\u2A97',
|
||||
'emacr': '\u0113',
|
||||
'emptyset': '\u2205',
|
||||
'emptyv': '\u2205',
|
||||
'emsp': '\u2003',
|
||||
'emsp13': '\u2004',
|
||||
'emsp14': '\u2005',
|
||||
'eng': '\u014B',
|
||||
'ensp': '\u2002',
|
||||
'eogon': '\u0119',
|
||||
'epar': '\u22D5',
|
||||
'eparsl': '\u29E3',
|
||||
'eplus': '\u2A71',
|
||||
'epsilon': '\u03B5',
|
||||
'eqcirc': '\u2256',
|
||||
'eqcolon': '\u2255',
|
||||
'eqsim': '\u2242',
|
||||
'eqslantgtr': '\u2A96',
|
||||
'eqslantless': '\u2A95',
|
||||
'equals': '\u003D',
|
||||
'equest': '\u225F',
|
||||
'equiv': '\u2261',
|
||||
'equivDD': '\u2A78',
|
||||
'eqvparsl': '\u29E5',
|
||||
'erarr': '\u2971',
|
||||
'esdot': '\u2250',
|
||||
'esim': '\u2242',
|
||||
'euml': '\u00EB',
|
||||
'euro': '\u20AC',
|
||||
'excl': '\u0021',
|
||||
'exist': '\u2203',
|
||||
'expectation': '\u2130',
|
||||
'exponentiale': '\u2147'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/e.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,60 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/f.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Fcy': '\u0424',
|
||||
'FilledSmallSquare': '\u25FC',
|
||||
'Fouriertrf': '\u2131',
|
||||
'fallingdotseq': '\u2252',
|
||||
'fcy': '\u0444',
|
||||
'female': '\u2640',
|
||||
'ffilig': '\uFB03',
|
||||
'fflig': '\uFB00',
|
||||
'ffllig': '\uFB04',
|
||||
'filig': '\uFB01',
|
||||
'fjlig': '\u0066\u006A',
|
||||
'fllig': '\uFB02',
|
||||
'fltns': '\u25B1',
|
||||
'fnof': '\u0192',
|
||||
'forall': '\u2200',
|
||||
'forkv': '\u2AD9',
|
||||
'fpartint': '\u2A0D',
|
||||
'frac12': '\u00BD',
|
||||
'frac13': '\u2153',
|
||||
'frac14': '\u00BC',
|
||||
'frac15': '\u2155',
|
||||
'frac16': '\u2159',
|
||||
'frac18': '\u215B',
|
||||
'frac23': '\u2154',
|
||||
'frac25': '\u2156',
|
||||
'frac34': '\u00BE',
|
||||
'frac35': '\u2157',
|
||||
'frac38': '\u215C',
|
||||
'frac45': '\u2158',
|
||||
'frac56': '\u215A',
|
||||
'frac58': '\u215D',
|
||||
'frac78': '\u215E',
|
||||
'frasl': '\u2044'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/f.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,79 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/fr.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Afr': '\uD835\uDD04',
|
||||
'Bfr': '\uD835\uDD05',
|
||||
'Cfr': '\u212D',
|
||||
'Dfr': '\uD835\uDD07',
|
||||
'Efr': '\uD835\uDD08',
|
||||
'Ffr': '\uD835\uDD09',
|
||||
'Gfr': '\uD835\uDD0A',
|
||||
'Hfr': '\u210C',
|
||||
'Ifr': '\u2111',
|
||||
'Jfr': '\uD835\uDD0D',
|
||||
'Kfr': '\uD835\uDD0E',
|
||||
'Lfr': '\uD835\uDD0F',
|
||||
'Mfr': '\uD835\uDD10',
|
||||
'Nfr': '\uD835\uDD11',
|
||||
'Ofr': '\uD835\uDD12',
|
||||
'Pfr': '\uD835\uDD13',
|
||||
'Qfr': '\uD835\uDD14',
|
||||
'Rfr': '\u211C',
|
||||
'Sfr': '\uD835\uDD16',
|
||||
'Tfr': '\uD835\uDD17',
|
||||
'Ufr': '\uD835\uDD18',
|
||||
'Vfr': '\uD835\uDD19',
|
||||
'Wfr': '\uD835\uDD1A',
|
||||
'Xfr': '\uD835\uDD1B',
|
||||
'Yfr': '\uD835\uDD1C',
|
||||
'Zfr': '\u2128',
|
||||
'afr': '\uD835\uDD1E',
|
||||
'bfr': '\uD835\uDD1F',
|
||||
'cfr': '\uD835\uDD20',
|
||||
'dfr': '\uD835\uDD21',
|
||||
'efr': '\uD835\uDD22',
|
||||
'ffr': '\uD835\uDD23',
|
||||
'gfr': '\uD835\uDD24',
|
||||
'hfr': '\uD835\uDD25',
|
||||
'ifr': '\uD835\uDD26',
|
||||
'jfr': '\uD835\uDD27',
|
||||
'kfr': '\uD835\uDD28',
|
||||
'lfr': '\uD835\uDD29',
|
||||
'mfr': '\uD835\uDD2A',
|
||||
'nfr': '\uD835\uDD2B',
|
||||
'ofr': '\uD835\uDD2C',
|
||||
'pfr': '\uD835\uDD2D',
|
||||
'qfr': '\uD835\uDD2E',
|
||||
'rfr': '\uD835\uDD2F',
|
||||
'sfr': '\uD835\uDD30',
|
||||
'tfr': '\uD835\uDD31',
|
||||
'ufr': '\uD835\uDD32',
|
||||
'vfr': '\uD835\uDD33',
|
||||
'wfr': '\uD835\uDD34',
|
||||
'xfr': '\uD835\uDD35',
|
||||
'yfr': '\uD835\uDD36',
|
||||
'zfr': '\uD835\uDD37'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/fr.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,83 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/g.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'GJcy': '\u0403',
|
||||
'GT': '\u003E',
|
||||
'Gammad': '\u03DC',
|
||||
'Gbreve': '\u011E',
|
||||
'Gcedil': '\u0122',
|
||||
'Gcirc': '\u011C',
|
||||
'Gcy': '\u0413',
|
||||
'Gdot': '\u0120',
|
||||
'GreaterGreater': '\u2AA2',
|
||||
'Gt': '\u226B',
|
||||
'gE': '\u2267',
|
||||
'gacute': '\u01F5',
|
||||
'gammad': '\u03DD',
|
||||
'gbreve': '\u011F',
|
||||
'gcirc': '\u011D',
|
||||
'gcy': '\u0433',
|
||||
'gdot': '\u0121',
|
||||
'ge': '\u2265',
|
||||
'gel': '\u22DB',
|
||||
'geq': '\u2265',
|
||||
'geqq': '\u2267',
|
||||
'geqslant': '\u2A7E',
|
||||
'ges': '\u2A7E',
|
||||
'gescc': '\u2AA9',
|
||||
'gesdot': '\u2A80',
|
||||
'gesdoto': '\u2A82',
|
||||
'gesdotol': '\u2A84',
|
||||
'gesl': '\u22DB\uFE00',
|
||||
'gesles': '\u2A94',
|
||||
'gg': '\u226B',
|
||||
'ggg': '\u22D9',
|
||||
'gjcy': '\u0453',
|
||||
'gl': '\u2277',
|
||||
'glE': '\u2A92',
|
||||
'gla': '\u2AA5',
|
||||
'glj': '\u2AA4',
|
||||
'gnapprox': '\u2A8A',
|
||||
'gneq': '\u2A88',
|
||||
'gneqq': '\u2269',
|
||||
'grave': '\u0060',
|
||||
'gsim': '\u2273',
|
||||
'gsime': '\u2A8E',
|
||||
'gsiml': '\u2A90',
|
||||
'gtcc': '\u2AA7',
|
||||
'gtcir': '\u2A7A',
|
||||
'gtlPar': '\u2995',
|
||||
'gtquest': '\u2A7C',
|
||||
'gtrapprox': '\u2A86',
|
||||
'gtrarr': '\u2978',
|
||||
'gtrdot': '\u22D7',
|
||||
'gtreqless': '\u22DB',
|
||||
'gtreqqless': '\u2A8C',
|
||||
'gtrless': '\u2277',
|
||||
'gtrsim': '\u2273',
|
||||
'gvertneqq': '\u2269\uFE00',
|
||||
'gvnE': '\u2269\uFE00'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/g.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,52 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/h.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'HARDcy': '\u042A',
|
||||
'Hcirc': '\u0124',
|
||||
'HilbertSpace': '\u210B',
|
||||
'HorizontalLine': '\u2500',
|
||||
'Hstrok': '\u0126',
|
||||
'hArr': '\u21D4',
|
||||
'hairsp': '\u200A',
|
||||
'half': '\u00BD',
|
||||
'hamilt': '\u210B',
|
||||
'hardcy': '\u044A',
|
||||
'harr': '\u2194',
|
||||
'harrcir': '\u2948',
|
||||
'hcirc': '\u0125',
|
||||
'hearts': '\u2665',
|
||||
'heartsuit': '\u2665',
|
||||
'hercon': '\u22B9',
|
||||
'hksearow': '\u2925',
|
||||
'hkswarow': '\u2926',
|
||||
'hoarr': '\u21FF',
|
||||
'homtht': '\u223B',
|
||||
'horbar': '\u2015',
|
||||
'hslash': '\u210F',
|
||||
'hstrok': '\u0127',
|
||||
'hybull': '\u2043',
|
||||
'hyphen': '\u2010'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/h.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,86 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/i.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'IEcy': '\u0415',
|
||||
'IJlig': '\u0132',
|
||||
'IOcy': '\u0401',
|
||||
'Iacute': '\u00CD',
|
||||
'Icirc': '\u00CE',
|
||||
'Icy': '\u0418',
|
||||
'Idot': '\u0130',
|
||||
'Igrave': '\u00CC',
|
||||
'Imacr': '\u012A',
|
||||
'Implies': '\u21D2',
|
||||
'Int': '\u222C',
|
||||
'Iogon': '\u012E',
|
||||
'Iota': '\u0399',
|
||||
'Itilde': '\u0128',
|
||||
'Iukcy': '\u0406',
|
||||
'Iuml': '\u00CF',
|
||||
'iacute': '\u00ED',
|
||||
'ic': '\u2063',
|
||||
'icirc': '\u00EE',
|
||||
'icy': '\u0438',
|
||||
'iecy': '\u0435',
|
||||
'iexcl': '\u00A1',
|
||||
'iff': '\u21D4',
|
||||
'igrave': '\u00EC',
|
||||
'ii': '\u2148',
|
||||
'iiiint': '\u2A0C',
|
||||
'iiint': '\u222D',
|
||||
'iinfin': '\u29DC',
|
||||
'iiota': '\u2129',
|
||||
'ijlig': '\u0133',
|
||||
'imacr': '\u012B',
|
||||
'image': '\u2111',
|
||||
'imagline': '\u2110',
|
||||
'imagpart': '\u2111',
|
||||
'imof': '\u22B7',
|
||||
'imped': '\u01B5',
|
||||
'in': '\u2208',
|
||||
'incare': '\u2105',
|
||||
'infintie': '\u29DD',
|
||||
'inodot': '\u0131',
|
||||
'int': '\u222B',
|
||||
'integers': '\u2124',
|
||||
'intercal': '\u22BA',
|
||||
'intlarhk': '\u2A17',
|
||||
'intprod': '\u2A3C',
|
||||
'iocy': '\u0451',
|
||||
'iogon': '\u012F',
|
||||
'iprod': '\u2A3C',
|
||||
'iquest': '\u00BF',
|
||||
'isin': '\u2208',
|
||||
'isinE': '\u22F9',
|
||||
'isindot': '\u22F5',
|
||||
'isins': '\u22F4',
|
||||
'isinsv': '\u22F3',
|
||||
'isinv': '\u2208',
|
||||
'it': '\u2062',
|
||||
'itilde': '\u0129',
|
||||
'iukcy': '\u0456',
|
||||
'iuml': '\u00EF'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/i.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,35 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/j.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Jcirc': '\u0134',
|
||||
'Jcy': '\u0419',
|
||||
'Jsercy': '\u0408',
|
||||
'Jukcy': '\u0404',
|
||||
'jcirc': '\u0135',
|
||||
'jcy': '\u0439',
|
||||
'jsercy': '\u0458',
|
||||
'jukcy': '\u0454'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/j.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,37 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/k.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'KHcy': '\u0425',
|
||||
'KJcy': '\u040C',
|
||||
'Kappa': '\u039A',
|
||||
'Kcedil': '\u0136',
|
||||
'Kcy': '\u041A',
|
||||
'kcedil': '\u0137',
|
||||
'kcy': '\u043A',
|
||||
'kgreen': '\u0138',
|
||||
'khcy': '\u0445',
|
||||
'kjcy': '\u045C'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/k.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,179 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/l.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'LJcy': '\u0409',
|
||||
'LT': '\u003C',
|
||||
'Lacute': '\u0139',
|
||||
'Lang': '\u27EA',
|
||||
'Laplacetrf': '\u2112',
|
||||
'Lcaron': '\u013D',
|
||||
'Lcedil': '\u013B',
|
||||
'Lcy': '\u041B',
|
||||
'LeftArrowBar': '\u21E4',
|
||||
'LeftDoubleBracket': '\u27E6',
|
||||
'LeftDownTeeVector': '\u2961',
|
||||
'LeftDownVectorBar': '\u2959',
|
||||
'LeftRightVector': '\u294E',
|
||||
'LeftTeeArrow': '\u21A4',
|
||||
'LeftTeeVector': '\u295A',
|
||||
'LeftTriangleBar': '\u29CF',
|
||||
'LeftUpDownVector': '\u2951',
|
||||
'LeftUpTeeVector': '\u2960',
|
||||
'LeftUpVectorBar': '\u2958',
|
||||
'LeftVectorBar': '\u2952',
|
||||
'LessLess': '\u2AA1',
|
||||
'Lmidot': '\u013F',
|
||||
'LowerLeftArrow': '\u2199',
|
||||
'LowerRightArrow': '\u2198',
|
||||
'Lstrok': '\u0141',
|
||||
'Lt': '\u226A',
|
||||
'lAarr': '\u21DA',
|
||||
'lArr': '\u21D0',
|
||||
'lAtail': '\u291B',
|
||||
'lBarr': '\u290E',
|
||||
'lE': '\u2266',
|
||||
'lHar': '\u2962',
|
||||
'lacute': '\u013A',
|
||||
'laemptyv': '\u29B4',
|
||||
'lagran': '\u2112',
|
||||
'lang': '\u27E8',
|
||||
'langd': '\u2991',
|
||||
'langle': '\u27E8',
|
||||
'laquo': '\u00AB',
|
||||
'larr': '\u2190',
|
||||
'larrb': '\u21E4',
|
||||
'larrbfs': '\u291F',
|
||||
'larrfs': '\u291D',
|
||||
'larrhk': '\u21A9',
|
||||
'larrpl': '\u2939',
|
||||
'larrsim': '\u2973',
|
||||
'lat': '\u2AAB',
|
||||
'latail': '\u2919',
|
||||
'late': '\u2AAD',
|
||||
'lates': '\u2AAD\uFE00',
|
||||
'lbarr': '\u290C',
|
||||
'lbbrk': '\u2772',
|
||||
'lbrke': '\u298B',
|
||||
'lbrksld': '\u298F',
|
||||
'lbrkslu': '\u298D',
|
||||
'lcaron': '\u013E',
|
||||
'lcedil': '\u013C',
|
||||
'lceil': '\u2308',
|
||||
'lcub': '\u007B',
|
||||
'lcy': '\u043B',
|
||||
'ldca': '\u2936',
|
||||
'ldquo': '\u201C',
|
||||
'ldquor': '\u201E',
|
||||
'ldrdhar': '\u2967',
|
||||
'ldrushar': '\u294B',
|
||||
'ldsh': '\u21B2',
|
||||
'leftarrow': '\u2190',
|
||||
'leftarrowtail': '\u21A2',
|
||||
'leftharpoondown': '\u21BD',
|
||||
'leftharpoonup': '\u21BC',
|
||||
'leftrightarrow': '\u2194',
|
||||
'leftrightarrows': '\u21C6',
|
||||
'leftrightharpoons': '\u21CB',
|
||||
'leftrightsquigarrow': '\u21AD',
|
||||
'leg': '\u22DA',
|
||||
'leq': '\u2264',
|
||||
'leqq': '\u2266',
|
||||
'leqslant': '\u2A7D',
|
||||
'les': '\u2A7D',
|
||||
'lescc': '\u2AA8',
|
||||
'lesdot': '\u2A7F',
|
||||
'lesdoto': '\u2A81',
|
||||
'lesdotor': '\u2A83',
|
||||
'lesg': '\u22DA\uFE00',
|
||||
'lesges': '\u2A93',
|
||||
'lessapprox': '\u2A85',
|
||||
'lesseqgtr': '\u22DA',
|
||||
'lesseqqgtr': '\u2A8B',
|
||||
'lessgtr': '\u2276',
|
||||
'lesssim': '\u2272',
|
||||
'lfisht': '\u297C',
|
||||
'lfloor': '\u230A',
|
||||
'lg': '\u2276',
|
||||
'lgE': '\u2A91',
|
||||
'lhard': '\u21BD',
|
||||
'lharu': '\u21BC',
|
||||
'lharul': '\u296A',
|
||||
'lhblk': '\u2584',
|
||||
'ljcy': '\u0459',
|
||||
'll': '\u226A',
|
||||
'llarr': '\u21C7',
|
||||
'llcorner': '\u231E',
|
||||
'llhard': '\u296B',
|
||||
'lltri': '\u25FA',
|
||||
'lmidot': '\u0140',
|
||||
'lmoustache': '\u23B0',
|
||||
'lnapprox': '\u2A89',
|
||||
'lneq': '\u2A87',
|
||||
'lneqq': '\u2268',
|
||||
'loang': '\u27EC',
|
||||
'loarr': '\u21FD',
|
||||
'lobrk': '\u27E6',
|
||||
'longleftarrow': '\u27F5',
|
||||
'longleftrightarrow': '\u27F7',
|
||||
'longrightarrow': '\u27F6',
|
||||
'looparrowleft': '\u21AB',
|
||||
'lopar': '\u2985',
|
||||
'loplus': '\u2A2D',
|
||||
'lotimes': '\u2A34',
|
||||
'lowbar': '\u005F',
|
||||
'lozenge': '\u25CA',
|
||||
'lozf': '\u29EB',
|
||||
'lpar': '\u0028',
|
||||
'lparlt': '\u2993',
|
||||
'lrarr': '\u21C6',
|
||||
'lrcorner': '\u231F',
|
||||
'lrhar': '\u21CB',
|
||||
'lrhard': '\u296D',
|
||||
'lrm': '\u200E',
|
||||
'lrtri': '\u22BF',
|
||||
'lsaquo': '\u2039',
|
||||
'lsh': '\u21B0',
|
||||
'lsim': '\u2272',
|
||||
'lsime': '\u2A8D',
|
||||
'lsimg': '\u2A8F',
|
||||
'lsqb': '\u005B',
|
||||
'lsquo': '\u2018',
|
||||
'lsquor': '\u201A',
|
||||
'lstrok': '\u0142',
|
||||
'ltcc': '\u2AA6',
|
||||
'ltcir': '\u2A79',
|
||||
'ltdot': '\u22D6',
|
||||
'lthree': '\u22CB',
|
||||
'ltlarr': '\u2976',
|
||||
'ltquest': '\u2A7B',
|
||||
'ltrPar': '\u2996',
|
||||
'ltrie': '\u22B4',
|
||||
'ltrif': '\u25C2',
|
||||
'lurdshar': '\u294A',
|
||||
'luruhar': '\u2966',
|
||||
'lvertneqq': '\u2268\uFE00',
|
||||
'lvnE': '\u2268\uFE00'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/l.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,61 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/m.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Map': '\u2905',
|
||||
'Mcy': '\u041C',
|
||||
'MediumSpace': '\u205F',
|
||||
'Mellintrf': '\u2133',
|
||||
'Mu': '\u039C',
|
||||
'mDDot': '\u223A',
|
||||
'male': '\u2642',
|
||||
'maltese': '\u2720',
|
||||
'map': '\u21A6',
|
||||
'mapsto': '\u21A6',
|
||||
'mapstodown': '\u21A7',
|
||||
'mapstoleft': '\u21A4',
|
||||
'mapstoup': '\u21A5',
|
||||
'marker': '\u25AE',
|
||||
'mcomma': '\u2A29',
|
||||
'mcy': '\u043C',
|
||||
'mdash': '\u2014',
|
||||
'measuredangle': '\u2221',
|
||||
'micro': '\u00B5',
|
||||
'mid': '\u2223',
|
||||
'midast': '\u002A',
|
||||
'midcir': '\u2AF0',
|
||||
'middot': '\u00B7',
|
||||
'minus': '\u2212',
|
||||
'minusb': '\u229F',
|
||||
'minusd': '\u2238',
|
||||
'minusdu': '\u2A2A',
|
||||
'mlcp': '\u2ADB',
|
||||
'mldr': '\u2026',
|
||||
'mnplus': '\u2213',
|
||||
'models': '\u22A7',
|
||||
'mp': '\u2213',
|
||||
'mstpos': '\u223E',
|
||||
'mumap': '\u22B8'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/m.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,220 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/n.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'NJcy': '\u040A',
|
||||
'Nacute': '\u0143',
|
||||
'Ncaron': '\u0147',
|
||||
'Ncedil': '\u0145',
|
||||
'Ncy': '\u041D',
|
||||
'NegativeMediumSpace': '\u200B',
|
||||
'NegativeThickSpace': '\u200B',
|
||||
'NegativeThinSpace': '\u200B',
|
||||
'NegativeVeryThinSpace': '\u200B',
|
||||
'NewLine': '\u000A',
|
||||
'NoBreak': '\u2060',
|
||||
'NonBreakingSpace': '\u00A0',
|
||||
'Not': '\u2AEC',
|
||||
'NotCongruent': '\u2262',
|
||||
'NotCupCap': '\u226D',
|
||||
'NotEqualTilde': '\u2242\u0338',
|
||||
'NotGreaterFullEqual': '\u2267\u0338',
|
||||
'NotGreaterGreater': '\u226B\u0338',
|
||||
'NotGreaterLess': '\u2279',
|
||||
'NotGreaterSlantEqual': '\u2A7E\u0338',
|
||||
'NotGreaterTilde': '\u2275',
|
||||
'NotHumpDownHump': '\u224E\u0338',
|
||||
'NotHumpEqual': '\u224F\u0338',
|
||||
'NotLeftTriangleBar': '\u29CF\u0338',
|
||||
'NotLessGreater': '\u2278',
|
||||
'NotLessLess': '\u226A\u0338',
|
||||
'NotLessSlantEqual': '\u2A7D\u0338',
|
||||
'NotLessTilde': '\u2274',
|
||||
'NotNestedGreaterGreater': '\u2AA2\u0338',
|
||||
'NotNestedLessLess': '\u2AA1\u0338',
|
||||
'NotPrecedesEqual': '\u2AAF\u0338',
|
||||
'NotReverseElement': '\u220C',
|
||||
'NotRightTriangleBar': '\u29D0\u0338',
|
||||
'NotSquareSubset': '\u228F\u0338',
|
||||
'NotSquareSubsetEqual': '\u22E2',
|
||||
'NotSquareSuperset': '\u2290\u0338',
|
||||
'NotSquareSupersetEqual': '\u22E3',
|
||||
'NotSubset': '\u2282\u20D2',
|
||||
'NotSucceedsEqual': '\u2AB0\u0338',
|
||||
'NotSucceedsTilde': '\u227F\u0338',
|
||||
'NotSuperset': '\u2283\u20D2',
|
||||
'NotTildeEqual': '\u2244',
|
||||
'NotTildeFullEqual': '\u2247',
|
||||
'NotTildeTilde': '\u2249',
|
||||
'Ntilde': '\u00D1',
|
||||
'Nu': '\u039D',
|
||||
'nGg': '\u22D9\u0338',
|
||||
'nGt': '\u226B\u20D2',
|
||||
'nGtv': '\u226B\u0338',
|
||||
'nLl': '\u22D8\u0338',
|
||||
'nLt': '\u226A\u20D2',
|
||||
'nLtv': '\u226A\u0338',
|
||||
'nabla': '\u2207',
|
||||
'nacute': '\u0144',
|
||||
'nang': '\u2220\u20D2',
|
||||
'nap': '\u2249',
|
||||
'napE': '\u2A70\u0338',
|
||||
'napid': '\u224B\u0338',
|
||||
'napos': '\u0149',
|
||||
'napprox': '\u2249',
|
||||
'natural': '\u266E',
|
||||
'naturals': '\u2115',
|
||||
'nbsp': '\u00A0',
|
||||
'nbump': '\u224E\u0338',
|
||||
'nbumpe': '\u224F\u0338',
|
||||
'ncap': '\u2A43',
|
||||
'ncaron': '\u0148',
|
||||
'ncedil': '\u0146',
|
||||
'ncong': '\u2247',
|
||||
'ncongdot': '\u2A6D\u0338',
|
||||
'ncup': '\u2A42',
|
||||
'ncy': '\u043D',
|
||||
'ndash': '\u2013',
|
||||
'ne': '\u2260',
|
||||
'neArr': '\u21D7',
|
||||
'nearhk': '\u2924',
|
||||
'nearrow': '\u2197',
|
||||
'nedot': '\u2250\u0338',
|
||||
'nequiv': '\u2262',
|
||||
'nesear': '\u2928',
|
||||
'nesim': '\u2242\u0338',
|
||||
'nexist': '\u2204',
|
||||
'nexists': '\u2204',
|
||||
'ngE': '\u2267\u0338',
|
||||
'nge': '\u2271',
|
||||
'ngeq': '\u2271',
|
||||
'ngeqq': '\u2267\u0338',
|
||||
'ngeqslant': '\u2A7E\u0338',
|
||||
'nges': '\u2A7E\u0338',
|
||||
'ngsim': '\u2275',
|
||||
'ngt': '\u226F',
|
||||
'ngtr': '\u226F',
|
||||
'nhArr': '\u21CE',
|
||||
'nhpar': '\u2AF2',
|
||||
'ni': '\u220B',
|
||||
'nis': '\u22FC',
|
||||
'nisd': '\u22FA',
|
||||
'niv': '\u220B',
|
||||
'njcy': '\u045A',
|
||||
'nlArr': '\u21CD',
|
||||
'nlE': '\u2266\u0338',
|
||||
'nldr': '\u2025',
|
||||
'nle': '\u2270',
|
||||
'nleftarrow': '\u219A',
|
||||
'nleftrightarrow': '\u21AE',
|
||||
'nleq': '\u2270',
|
||||
'nleqq': '\u2266\u0338',
|
||||
'nleqslant': '\u2A7D\u0338',
|
||||
'nles': '\u2A7D\u0338',
|
||||
'nless': '\u226E',
|
||||
'nlsim': '\u2274',
|
||||
'nlt': '\u226E',
|
||||
'nltri': '\u22EA',
|
||||
'nltrie': '\u22EC',
|
||||
'nmid': '\u2224',
|
||||
'notin': '\u2209',
|
||||
'notinE': '\u22F9\u0338',
|
||||
'notindot': '\u22F5\u0338',
|
||||
'notinva': '\u2209',
|
||||
'notinvb': '\u22F7',
|
||||
'notinvc': '\u22F6',
|
||||
'notni': '\u220C',
|
||||
'notniva': '\u220C',
|
||||
'notnivb': '\u22FE',
|
||||
'notnivc': '\u22FD',
|
||||
'npar': '\u2226',
|
||||
'nparallel': '\u2226',
|
||||
'nparsl': '\u2AFD\u20E5',
|
||||
'npart': '\u2202\u0338',
|
||||
'npolint': '\u2A14',
|
||||
'npr': '\u2280',
|
||||
'nprcue': '\u22E0',
|
||||
'npre': '\u2AAF\u0338',
|
||||
'nprec': '\u2280',
|
||||
'npreceq': '\u2AAF\u0338',
|
||||
'nrArr': '\u21CF',
|
||||
'nrarrc': '\u2933\u0338',
|
||||
'nrarrw': '\u219D\u0338',
|
||||
'nrightarrow': '\u219B',
|
||||
'nrtri': '\u22EB',
|
||||
'nrtrie': '\u22ED',
|
||||
'nsc': '\u2281',
|
||||
'nsccue': '\u22E1',
|
||||
'nsce': '\u2AB0\u0338',
|
||||
'nshortmid': '\u2224',
|
||||
'nshortparallel': '\u2226',
|
||||
'nsim': '\u2241',
|
||||
'nsime': '\u2244',
|
||||
'nsimeq': '\u2244',
|
||||
'nsmid': '\u2224',
|
||||
'nspar': '\u2226',
|
||||
'nsqsube': '\u22E2',
|
||||
'nsqsupe': '\u22E3',
|
||||
'nsub': '\u2284',
|
||||
'nsubE': '\u2AC5\u0338',
|
||||
'nsube': '\u2288',
|
||||
'nsubset': '\u2282\u20D2',
|
||||
'nsubseteq': '\u2288',
|
||||
'nsubseteqq': '\u2AC5\u0338',
|
||||
'nsucc': '\u2281',
|
||||
'nsucceq': '\u2AB0\u0338',
|
||||
'nsup': '\u2285',
|
||||
'nsupE': '\u2AC6\u0338',
|
||||
'nsupe': '\u2289',
|
||||
'nsupset': '\u2283\u20D2',
|
||||
'nsupseteq': '\u2289',
|
||||
'nsupseteqq': '\u2AC6\u0338',
|
||||
'ntgl': '\u2279',
|
||||
'ntilde': '\u00F1',
|
||||
'ntlg': '\u2278',
|
||||
'ntriangleleft': '\u22EA',
|
||||
'ntrianglelefteq': '\u22EC',
|
||||
'ntriangleright': '\u22EB',
|
||||
'ntrianglerighteq': '\u22ED',
|
||||
'num': '\u0023',
|
||||
'numero': '\u2116',
|
||||
'numsp': '\u2007',
|
||||
'nvHarr': '\u2904',
|
||||
'nvap': '\u224D\u20D2',
|
||||
'nvge': '\u2265\u20D2',
|
||||
'nvgt': '\u003E\u20D2',
|
||||
'nvinfin': '\u29DE',
|
||||
'nvlArr': '\u2902',
|
||||
'nvle': '\u2264\u20D2',
|
||||
'nvlt': '\u003C\u20D2',
|
||||
'nvltrie': '\u22B4\u20D2',
|
||||
'nvrArr': '\u2903',
|
||||
'nvrtrie': '\u22B5\u20D2',
|
||||
'nvsim': '\u223C\u20D2',
|
||||
'nwArr': '\u21D6',
|
||||
'nwarhk': '\u2923',
|
||||
'nwarrow': '\u2196',
|
||||
'nwnear': '\u2927'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/n.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,90 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/o.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'OElig': '\u0152',
|
||||
'Oacute': '\u00D3',
|
||||
'Ocirc': '\u00D4',
|
||||
'Ocy': '\u041E',
|
||||
'Odblac': '\u0150',
|
||||
'Ograve': '\u00D2',
|
||||
'Omacr': '\u014C',
|
||||
'Omicron': '\u039F',
|
||||
'OpenCurlyDoubleQuote': '\u201C',
|
||||
'OpenCurlyQuote': '\u2018',
|
||||
'Or': '\u2A54',
|
||||
'Oslash': '\u00D8',
|
||||
'Otilde': '\u00D5',
|
||||
'Otimes': '\u2A37',
|
||||
'Ouml': '\u00D6',
|
||||
'OverBracket': '\u23B4',
|
||||
'OverParenthesis': '\u23DC',
|
||||
'oS': '\u24C8',
|
||||
'oacute': '\u00F3',
|
||||
'oast': '\u229B',
|
||||
'ocir': '\u229A',
|
||||
'ocirc': '\u00F4',
|
||||
'ocy': '\u043E',
|
||||
'odash': '\u229D',
|
||||
'odblac': '\u0151',
|
||||
'odiv': '\u2A38',
|
||||
'odot': '\u2299',
|
||||
'odsold': '\u29BC',
|
||||
'oelig': '\u0153',
|
||||
'ofcir': '\u29BF',
|
||||
'ogon': '\u02DB',
|
||||
'ograve': '\u00F2',
|
||||
'ogt': '\u29C1',
|
||||
'ohbar': '\u29B5',
|
||||
'ohm': '\u03A9',
|
||||
'oint': '\u222E',
|
||||
'olarr': '\u21BA',
|
||||
'olcir': '\u29BE',
|
||||
'olcross': '\u29BB',
|
||||
'oline': '\u203E',
|
||||
'olt': '\u29C0',
|
||||
'omacr': '\u014D',
|
||||
'omid': '\u29B6',
|
||||
'ominus': '\u2296',
|
||||
'opar': '\u29B7',
|
||||
'operp': '\u29B9',
|
||||
'oplus': '\u2295',
|
||||
'orarr': '\u21BB',
|
||||
'ord': '\u2A5D',
|
||||
'order': '\u2134',
|
||||
'orderof': '\u2134',
|
||||
'ordf': '\u00AA',
|
||||
'ordm': '\u00BA',
|
||||
'origof': '\u22B6',
|
||||
'oror': '\u2A56',
|
||||
'orslope': '\u2A57',
|
||||
'orv': '\u2A5B',
|
||||
'oslash': '\u00F8',
|
||||
'otilde': '\u00F5',
|
||||
'otimes': '\u2297',
|
||||
'otimesas': '\u2A36',
|
||||
'ouml': '\u00F6',
|
||||
'ovbar': '\u233D'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/o.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,79 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/opf.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Aopf': '\uD835\uDD38',
|
||||
'Bopf': '\uD835\uDD39',
|
||||
'Copf': '\u2102',
|
||||
'Dopf': '\uD835\uDD3B',
|
||||
'Eopf': '\uD835\uDD3C',
|
||||
'Fopf': '\uD835\uDD3D',
|
||||
'Gopf': '\uD835\uDD3E',
|
||||
'Hopf': '\u210D',
|
||||
'Iopf': '\uD835\uDD40',
|
||||
'Jopf': '\uD835\uDD41',
|
||||
'Kopf': '\uD835\uDD42',
|
||||
'Lopf': '\uD835\uDD43',
|
||||
'Mopf': '\uD835\uDD44',
|
||||
'Nopf': '\u2115',
|
||||
'Oopf': '\uD835\uDD46',
|
||||
'Popf': '\u2119',
|
||||
'Qopf': '\u211A',
|
||||
'Ropf': '\u211D',
|
||||
'Sopf': '\uD835\uDD4A',
|
||||
'Topf': '\uD835\uDD4B',
|
||||
'Uopf': '\uD835\uDD4C',
|
||||
'Vopf': '\uD835\uDD4D',
|
||||
'Wopf': '\uD835\uDD4E',
|
||||
'Xopf': '\uD835\uDD4F',
|
||||
'Yopf': '\uD835\uDD50',
|
||||
'Zopf': '\u2124',
|
||||
'aopf': '\uD835\uDD52',
|
||||
'bopf': '\uD835\uDD53',
|
||||
'copf': '\uD835\uDD54',
|
||||
'dopf': '\uD835\uDD55',
|
||||
'eopf': '\uD835\uDD56',
|
||||
'fopf': '\uD835\uDD57',
|
||||
'gopf': '\uD835\uDD58',
|
||||
'hopf': '\uD835\uDD59',
|
||||
'iopf': '\uD835\uDD5A',
|
||||
'jopf': '\uD835\uDD5B',
|
||||
'kopf': '\uD835\uDD5C',
|
||||
'lopf': '\uD835\uDD5D',
|
||||
'mopf': '\uD835\uDD5E',
|
||||
'nopf': '\uD835\uDD5F',
|
||||
'oopf': '\uD835\uDD60',
|
||||
'popf': '\uD835\uDD61',
|
||||
'qopf': '\uD835\uDD62',
|
||||
'ropf': '\uD835\uDD63',
|
||||
'sopf': '\uD835\uDD64',
|
||||
'topf': '\uD835\uDD65',
|
||||
'uopf': '\uD835\uDD66',
|
||||
'vopf': '\uD835\uDD67',
|
||||
'wopf': '\uD835\uDD68',
|
||||
'xopf': '\uD835\uDD69',
|
||||
'yopf': '\uD835\uDD6A',
|
||||
'zopf': '\uD835\uDD6B'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/opf.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,84 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/p.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Pcy': '\u041F',
|
||||
'Poincareplane': '\u210C',
|
||||
'Pr': '\u2ABB',
|
||||
'Prime': '\u2033',
|
||||
'Proportion': '\u2237',
|
||||
'par': '\u2225',
|
||||
'para': '\u00B6',
|
||||
'parallel': '\u2225',
|
||||
'parsim': '\u2AF3',
|
||||
'parsl': '\u2AFD',
|
||||
'part': '\u2202',
|
||||
'pcy': '\u043F',
|
||||
'percnt': '\u0025',
|
||||
'permil': '\u2030',
|
||||
'perp': '\u22A5',
|
||||
'pertenk': '\u2031',
|
||||
'phmmat': '\u2133',
|
||||
'phone': '\u260E',
|
||||
'pitchfork': '\u22D4',
|
||||
'planck': '\u210F',
|
||||
'planckh': '\u210E',
|
||||
'plankv': '\u210F',
|
||||
'plus': '\u002B',
|
||||
'plusacir': '\u2A23',
|
||||
'plusb': '\u229E',
|
||||
'pluscir': '\u2A22',
|
||||
'plusdo': '\u2214',
|
||||
'plusdu': '\u2A25',
|
||||
'pluse': '\u2A72',
|
||||
'plusmn': '\u00B1',
|
||||
'plussim': '\u2A26',
|
||||
'plustwo': '\u2A27',
|
||||
'pm': '\u00B1',
|
||||
'pointint': '\u2A15',
|
||||
'pound': '\u00A3',
|
||||
'pr': '\u227A',
|
||||
'prE': '\u2AB3',
|
||||
'prcue': '\u227C',
|
||||
'pre': '\u2AAF',
|
||||
'prec': '\u227A',
|
||||
'precapprox': '\u2AB7',
|
||||
'preccurlyeq': '\u227C',
|
||||
'preceq': '\u2AAF',
|
||||
'precsim': '\u227E',
|
||||
'primes': '\u2119',
|
||||
'prnE': '\u2AB5',
|
||||
'prnap': '\u2AB9',
|
||||
'prnsim': '\u22E8',
|
||||
'prod': '\u220F',
|
||||
'profalar': '\u232E',
|
||||
'profline': '\u2312',
|
||||
'profsurf': '\u2313',
|
||||
'prop': '\u221D',
|
||||
'propto': '\u221D',
|
||||
'prsim': '\u227E',
|
||||
'prurel': '\u22B0',
|
||||
'puncsp': '\u2008'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/p.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,35 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/q.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'QUOT': '\u0022',
|
||||
'qint': '\u2A0C',
|
||||
'qprime': '\u2057',
|
||||
'quaternions': '\u210D',
|
||||
'quatint': '\u2A16',
|
||||
'quest': '\u003F',
|
||||
'questeq': '\u225F',
|
||||
'quot': '\u0022'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/q.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,138 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/r.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'RBarr': '\u2910',
|
||||
'REG': '\u00AE',
|
||||
'Racute': '\u0154',
|
||||
'Rang': '\u27EB',
|
||||
'Rarrtl': '\u2916',
|
||||
'Rcaron': '\u0158',
|
||||
'Rcedil': '\u0156',
|
||||
'Rcy': '\u0420',
|
||||
'ReverseElement': '\u220B',
|
||||
'ReverseUpEquilibrium': '\u296F',
|
||||
'Rho': '\u03A1',
|
||||
'RightArrowBar': '\u21E5',
|
||||
'RightDoubleBracket': '\u27E7',
|
||||
'RightDownTeeVector': '\u295D',
|
||||
'RightDownVectorBar': '\u2955',
|
||||
'RightTeeVector': '\u295B',
|
||||
'RightTriangleBar': '\u29D0',
|
||||
'RightUpDownVector': '\u294F',
|
||||
'RightUpTeeVector': '\u295C',
|
||||
'RightUpVectorBar': '\u2954',
|
||||
'RightVectorBar': '\u2953',
|
||||
'RoundImplies': '\u2970',
|
||||
'RuleDelayed': '\u29F4',
|
||||
'rAarr': '\u21DB',
|
||||
'rArr': '\u21D2',
|
||||
'rAtail': '\u291C',
|
||||
'rBarr': '\u290F',
|
||||
'rHar': '\u2964',
|
||||
'race': '\u223D\u0331',
|
||||
'racute': '\u0155',
|
||||
'radic': '\u221A',
|
||||
'raemptyv': '\u29B3',
|
||||
'rang': '\u27E9',
|
||||
'rangd': '\u2992',
|
||||
'range': '\u29A5',
|
||||
'rangle': '\u27E9',
|
||||
'raquo': '\u00BB',
|
||||
'rarr': '\u2192',
|
||||
'rarrap': '\u2975',
|
||||
'rarrb': '\u21E5',
|
||||
'rarrbfs': '\u2920',
|
||||
'rarrc': '\u2933',
|
||||
'rarrfs': '\u291E',
|
||||
'rarrhk': '\u21AA',
|
||||
'rarrlp': '\u21AC',
|
||||
'rarrpl': '\u2945',
|
||||
'rarrsim': '\u2974',
|
||||
'rarrw': '\u219D',
|
||||
'ratail': '\u291A',
|
||||
'ratio': '\u2236',
|
||||
'rationals': '\u211A',
|
||||
'rbarr': '\u290D',
|
||||
'rbbrk': '\u2773',
|
||||
'rbrke': '\u298C',
|
||||
'rbrksld': '\u298E',
|
||||
'rbrkslu': '\u2990',
|
||||
'rcaron': '\u0159',
|
||||
'rcedil': '\u0157',
|
||||
'rceil': '\u2309',
|
||||
'rcub': '\u007D',
|
||||
'rcy': '\u0440',
|
||||
'rdca': '\u2937',
|
||||
'rdldhar': '\u2969',
|
||||
'rdquo': '\u201D',
|
||||
'rdquor': '\u201D',
|
||||
'rdsh': '\u21B3',
|
||||
'real': '\u211C',
|
||||
'realine': '\u211B',
|
||||
'realpart': '\u211C',
|
||||
'reals': '\u211D',
|
||||
'rect': '\u25AD',
|
||||
'reg': '\u00AE',
|
||||
'rfisht': '\u297D',
|
||||
'rfloor': '\u230B',
|
||||
'rhard': '\u21C1',
|
||||
'rharu': '\u21C0',
|
||||
'rharul': '\u296C',
|
||||
'rightarrow': '\u2192',
|
||||
'rightarrowtail': '\u21A3',
|
||||
'rightharpoondown': '\u21C1',
|
||||
'rightharpoonup': '\u21C0',
|
||||
'rightleftarrows': '\u21C4',
|
||||
'rightleftharpoons': '\u21CC',
|
||||
'rightsquigarrow': '\u219D',
|
||||
'risingdotseq': '\u2253',
|
||||
'rlarr': '\u21C4',
|
||||
'rlhar': '\u21CC',
|
||||
'rlm': '\u200F',
|
||||
'rmoustache': '\u23B1',
|
||||
'rnmid': '\u2AEE',
|
||||
'roang': '\u27ED',
|
||||
'roarr': '\u21FE',
|
||||
'robrk': '\u27E7',
|
||||
'ropar': '\u2986',
|
||||
'roplus': '\u2A2E',
|
||||
'rotimes': '\u2A35',
|
||||
'rpar': '\u0029',
|
||||
'rpargt': '\u2994',
|
||||
'rppolint': '\u2A12',
|
||||
'rrarr': '\u21C9',
|
||||
'rsaquo': '\u203A',
|
||||
'rsh': '\u21B1',
|
||||
'rsqb': '\u005D',
|
||||
'rsquo': '\u2019',
|
||||
'rsquor': '\u2019',
|
||||
'rthree': '\u22CC',
|
||||
'rtrie': '\u22B5',
|
||||
'rtrif': '\u25B8',
|
||||
'rtriltri': '\u29CE',
|
||||
'ruluhar': '\u2968',
|
||||
'rx': '\u211E'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/r.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,170 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/s.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'SHCHcy': '\u0429',
|
||||
'SHcy': '\u0428',
|
||||
'SOFTcy': '\u042C',
|
||||
'Sacute': '\u015A',
|
||||
'Sc': '\u2ABC',
|
||||
'Scaron': '\u0160',
|
||||
'Scedil': '\u015E',
|
||||
'Scirc': '\u015C',
|
||||
'Scy': '\u0421',
|
||||
'ShortDownArrow': '\u2193',
|
||||
'ShortLeftArrow': '\u2190',
|
||||
'ShortRightArrow': '\u2192',
|
||||
'ShortUpArrow': '\u2191',
|
||||
'Sub': '\u22D0',
|
||||
'Sup': '\u22D1',
|
||||
'sacute': '\u015B',
|
||||
'sbquo': '\u201A',
|
||||
'sc': '\u227B',
|
||||
'scE': '\u2AB4',
|
||||
'scaron': '\u0161',
|
||||
'sccue': '\u227D',
|
||||
'sce': '\u2AB0',
|
||||
'scedil': '\u015F',
|
||||
'scirc': '\u015D',
|
||||
'scpolint': '\u2A13',
|
||||
'scsim': '\u227F',
|
||||
'scy': '\u0441',
|
||||
'sdotb': '\u22A1',
|
||||
'sdote': '\u2A66',
|
||||
'seArr': '\u21D8',
|
||||
'searhk': '\u2925',
|
||||
'searrow': '\u2198',
|
||||
'semi': '\u003B',
|
||||
'seswar': '\u2929',
|
||||
'setminus': '\u2216',
|
||||
'setmn': '\u2216',
|
||||
'sext': '\u2736',
|
||||
'sfrown': '\u2322',
|
||||
'shchcy': '\u0449',
|
||||
'shcy': '\u0448',
|
||||
'shortmid': '\u2223',
|
||||
'shortparallel': '\u2225',
|
||||
'shy': '\u00AD',
|
||||
'sigmaf': '\u03C2',
|
||||
'sim': '\u223C',
|
||||
'simdot': '\u2A6A',
|
||||
'sime': '\u2243',
|
||||
'simeq': '\u2243',
|
||||
'simg': '\u2A9E',
|
||||
'simgE': '\u2AA0',
|
||||
'siml': '\u2A9D',
|
||||
'simlE': '\u2A9F',
|
||||
'simplus': '\u2A24',
|
||||
'simrarr': '\u2972',
|
||||
'slarr': '\u2190',
|
||||
'smallsetminus': '\u2216',
|
||||
'smashp': '\u2A33',
|
||||
'smeparsl': '\u29E4',
|
||||
'smid': '\u2223',
|
||||
'smt': '\u2AAA',
|
||||
'smte': '\u2AAC',
|
||||
'smtes': '\u2AAC\uFE00',
|
||||
'softcy': '\u044C',
|
||||
'sol': '\u002F',
|
||||
'solb': '\u29C4',
|
||||
'solbar': '\u233F',
|
||||
'spadesuit': '\u2660',
|
||||
'spar': '\u2225',
|
||||
'sqcap': '\u2293',
|
||||
'sqcaps': '\u2293\uFE00',
|
||||
'sqcup': '\u2294',
|
||||
'sqcups': '\u2294\uFE00',
|
||||
'sqsub': '\u228F',
|
||||
'sqsube': '\u2291',
|
||||
'sqsubset': '\u228F',
|
||||
'sqsubseteq': '\u2291',
|
||||
'sqsup': '\u2290',
|
||||
'sqsupe': '\u2292',
|
||||
'sqsupset': '\u2290',
|
||||
'sqsupseteq': '\u2292',
|
||||
'squ': '\u25A1',
|
||||
'square': '\u25A1',
|
||||
'squarf': '\u25AA',
|
||||
'squf': '\u25AA',
|
||||
'srarr': '\u2192',
|
||||
'ssetmn': '\u2216',
|
||||
'ssmile': '\u2323',
|
||||
'sstarf': '\u22C6',
|
||||
'star': '\u2606',
|
||||
'starf': '\u2605',
|
||||
'straightepsilon': '\u03F5',
|
||||
'straightphi': '\u03D5',
|
||||
'strns': '\u00AF',
|
||||
'subdot': '\u2ABD',
|
||||
'sube': '\u2286',
|
||||
'subedot': '\u2AC3',
|
||||
'submult': '\u2AC1',
|
||||
'subplus': '\u2ABF',
|
||||
'subrarr': '\u2979',
|
||||
'subset': '\u2282',
|
||||
'subseteq': '\u2286',
|
||||
'subseteqq': '\u2AC5',
|
||||
'subsetneq': '\u228A',
|
||||
'subsetneqq': '\u2ACB',
|
||||
'subsim': '\u2AC7',
|
||||
'subsub': '\u2AD5',
|
||||
'subsup': '\u2AD3',
|
||||
'succ': '\u227B',
|
||||
'succapprox': '\u2AB8',
|
||||
'succcurlyeq': '\u227D',
|
||||
'succeq': '\u2AB0',
|
||||
'succnapprox': '\u2ABA',
|
||||
'succneqq': '\u2AB6',
|
||||
'succnsim': '\u22E9',
|
||||
'succsim': '\u227F',
|
||||
'sum': '\u2211',
|
||||
'sung': '\u266A',
|
||||
'sup': '\u2283',
|
||||
'sup1': '\u00B9',
|
||||
'sup2': '\u00B2',
|
||||
'sup3': '\u00B3',
|
||||
'supdot': '\u2ABE',
|
||||
'supdsub': '\u2AD8',
|
||||
'supe': '\u2287',
|
||||
'supedot': '\u2AC4',
|
||||
'suphsol': '\u27C9',
|
||||
'suphsub': '\u2AD7',
|
||||
'suplarr': '\u297B',
|
||||
'supmult': '\u2AC2',
|
||||
'supplus': '\u2AC0',
|
||||
'supset': '\u2283',
|
||||
'supseteq': '\u2287',
|
||||
'supseteqq': '\u2AC6',
|
||||
'supsetneq': '\u228B',
|
||||
'supsetneqq': '\u2ACC',
|
||||
'supsim': '\u2AC8',
|
||||
'supsub': '\u2AD4',
|
||||
'supsup': '\u2AD6',
|
||||
'swArr': '\u21D9',
|
||||
'swarhk': '\u2926',
|
||||
'swarrow': '\u2199',
|
||||
'swnwar': '\u292A',
|
||||
'szlig': '\u00DF'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/s.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,79 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/scr.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Ascr': '\uD835\uDC9C',
|
||||
'Bscr': '\u212C',
|
||||
'Cscr': '\uD835\uDC9E',
|
||||
'Dscr': '\uD835\uDC9F',
|
||||
'Escr': '\u2130',
|
||||
'Fscr': '\u2131',
|
||||
'Gscr': '\uD835\uDCA2',
|
||||
'Hscr': '\u210B',
|
||||
'Iscr': '\u2110',
|
||||
'Jscr': '\uD835\uDCA5',
|
||||
'Kscr': '\uD835\uDCA6',
|
||||
'Lscr': '\u2112',
|
||||
'Mscr': '\u2133',
|
||||
'Nscr': '\uD835\uDCA9',
|
||||
'Oscr': '\uD835\uDCAA',
|
||||
'Pscr': '\uD835\uDCAB',
|
||||
'Qscr': '\uD835\uDCAC',
|
||||
'Rscr': '\u211B',
|
||||
'Sscr': '\uD835\uDCAE',
|
||||
'Tscr': '\uD835\uDCAF',
|
||||
'Uscr': '\uD835\uDCB0',
|
||||
'Vscr': '\uD835\uDCB1',
|
||||
'Wscr': '\uD835\uDCB2',
|
||||
'Xscr': '\uD835\uDCB3',
|
||||
'Yscr': '\uD835\uDCB4',
|
||||
'Zscr': '\uD835\uDCB5',
|
||||
'ascr': '\uD835\uDCB6',
|
||||
'bscr': '\uD835\uDCB7',
|
||||
'cscr': '\uD835\uDCB8',
|
||||
'dscr': '\uD835\uDCB9',
|
||||
'escr': '\u212F',
|
||||
'fscr': '\uD835\uDCBB',
|
||||
'gscr': '\u210A',
|
||||
'hscr': '\uD835\uDCBD',
|
||||
'iscr': '\uD835\uDCBE',
|
||||
'jscr': '\uD835\uDCBF',
|
||||
'kscr': '\uD835\uDCC0',
|
||||
'lscr': '\uD835\uDCC1',
|
||||
'mscr': '\uD835\uDCC2',
|
||||
'nscr': '\uD835\uDCC3',
|
||||
'oscr': '\u2134',
|
||||
'pscr': '\uD835\uDCC5',
|
||||
'qscr': '\uD835\uDCC6',
|
||||
'rscr': '\uD835\uDCC7',
|
||||
'sscr': '\uD835\uDCC8',
|
||||
'tscr': '\uD835\uDCC9',
|
||||
'uscr': '\uD835\uDCCA',
|
||||
'vscr': '\uD835\uDCCB',
|
||||
'wscr': '\uD835\uDCCC',
|
||||
'xscr': '\uD835\uDCCD',
|
||||
'yscr': '\uD835\uDCCE',
|
||||
'zscr': '\uD835\uDCCF'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/scr.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,86 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/t.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'THORN': '\u00DE',
|
||||
'TRADE': '\u2122',
|
||||
'TSHcy': '\u040B',
|
||||
'TScy': '\u0426',
|
||||
'Tab': '\u0009',
|
||||
'Tau': '\u03A4',
|
||||
'Tcaron': '\u0164',
|
||||
'Tcedil': '\u0162',
|
||||
'Tcy': '\u0422',
|
||||
'ThickSpace': '\u205F\u200A',
|
||||
'ThinSpace': '\u2009',
|
||||
'TripleDot': '\u20DB',
|
||||
'Tstrok': '\u0166',
|
||||
'target': '\u2316',
|
||||
'tbrk': '\u23B4',
|
||||
'tcaron': '\u0165',
|
||||
'tcedil': '\u0163',
|
||||
'tcy': '\u0442',
|
||||
'tdot': '\u20DB',
|
||||
'telrec': '\u2315',
|
||||
'there4': '\u2234',
|
||||
'therefore': '\u2234',
|
||||
'thetasym': '\u03D1',
|
||||
'thickapprox': '\u2248',
|
||||
'thicksim': '\u223C',
|
||||
'thinsp': '\u2009',
|
||||
'thkap': '\u2248',
|
||||
'thksim': '\u223C',
|
||||
'thorn': '\u00FE',
|
||||
'timesb': '\u22A0',
|
||||
'timesbar': '\u2A31',
|
||||
'timesd': '\u2A30',
|
||||
'tint': '\u222D',
|
||||
'toea': '\u2928',
|
||||
'top': '\u22A4',
|
||||
'topbot': '\u2336',
|
||||
'topcir': '\u2AF1',
|
||||
'topfork': '\u2ADA',
|
||||
'tosa': '\u2929',
|
||||
'tprime': '\u2034',
|
||||
'trade': '\u2122',
|
||||
'triangledown': '\u25BF',
|
||||
'triangleleft': '\u25C3',
|
||||
'trianglelefteq': '\u22B4',
|
||||
'triangleright': '\u25B9',
|
||||
'trianglerighteq': '\u22B5',
|
||||
'tridot': '\u25EC',
|
||||
'trie': '\u225C',
|
||||
'triminus': '\u2A3A',
|
||||
'triplus': '\u2A39',
|
||||
'trisb': '\u29CD',
|
||||
'tritime': '\u2A3B',
|
||||
'trpezium': '\u23E2',
|
||||
'tscy': '\u0446',
|
||||
'tshcy': '\u045B',
|
||||
'tstrok': '\u0167',
|
||||
'twixt': '\u226C',
|
||||
'twoheadleftarrow': '\u219E',
|
||||
'twoheadrightarrow': '\u21A0'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/t.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,92 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/u.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Uacute': '\u00DA',
|
||||
'Uarr': '\u219F',
|
||||
'Uarrocir': '\u2949',
|
||||
'Ubrcy': '\u040E',
|
||||
'Ubreve': '\u016C',
|
||||
'Ucirc': '\u00DB',
|
||||
'Ucy': '\u0423',
|
||||
'Udblac': '\u0170',
|
||||
'Ugrave': '\u00D9',
|
||||
'Umacr': '\u016A',
|
||||
'UnderBracket': '\u23B5',
|
||||
'UnderParenthesis': '\u23DD',
|
||||
'Uogon': '\u0172',
|
||||
'UpArrowBar': '\u2912',
|
||||
'UpArrowDownArrow': '\u21C5',
|
||||
'UpEquilibrium': '\u296E',
|
||||
'UpTeeArrow': '\u21A5',
|
||||
'UpperLeftArrow': '\u2196',
|
||||
'UpperRightArrow': '\u2197',
|
||||
'Upsi': '\u03D2',
|
||||
'Uring': '\u016E',
|
||||
'Utilde': '\u0168',
|
||||
'Uuml': '\u00DC',
|
||||
'uArr': '\u21D1',
|
||||
'uHar': '\u2963',
|
||||
'uacute': '\u00FA',
|
||||
'uarr': '\u2191',
|
||||
'ubrcy': '\u045E',
|
||||
'ubreve': '\u016D',
|
||||
'ucirc': '\u00FB',
|
||||
'ucy': '\u0443',
|
||||
'udarr': '\u21C5',
|
||||
'udblac': '\u0171',
|
||||
'udhar': '\u296E',
|
||||
'ufisht': '\u297E',
|
||||
'ugrave': '\u00F9',
|
||||
'uharl': '\u21BF',
|
||||
'uharr': '\u21BE',
|
||||
'uhblk': '\u2580',
|
||||
'ulcorn': '\u231C',
|
||||
'ulcorner': '\u231C',
|
||||
'ulcrop': '\u230F',
|
||||
'ultri': '\u25F8',
|
||||
'umacr': '\u016B',
|
||||
'uml': '\u00A8',
|
||||
'uogon': '\u0173',
|
||||
'uparrow': '\u2191',
|
||||
'updownarrow': '\u2195',
|
||||
'upharpoonleft': '\u21BF',
|
||||
'upharpoonright': '\u21BE',
|
||||
'uplus': '\u228E',
|
||||
'upsih': '\u03D2',
|
||||
'upsilon': '\u03C5',
|
||||
'urcorn': '\u231D',
|
||||
'urcorner': '\u231D',
|
||||
'urcrop': '\u230E',
|
||||
'uring': '\u016F',
|
||||
'urtri': '\u25F9',
|
||||
'utdot': '\u22F0',
|
||||
'utilde': '\u0169',
|
||||
'utri': '\u25B5',
|
||||
'utrif': '\u25B4',
|
||||
'uuarr': '\u21C8',
|
||||
'uuml': '\u00FC',
|
||||
'uwangle': '\u29A7'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/u.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,73 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/v.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'VDash': '\u22AB',
|
||||
'Vbar': '\u2AEB',
|
||||
'Vcy': '\u0412',
|
||||
'Vdashl': '\u2AE6',
|
||||
'Verbar': '\u2016',
|
||||
'Vert': '\u2016',
|
||||
'VerticalLine': '\u007C',
|
||||
'VerticalSeparator': '\u2758',
|
||||
'VeryThinSpace': '\u200A',
|
||||
'vArr': '\u21D5',
|
||||
'vBar': '\u2AE8',
|
||||
'vBarv': '\u2AE9',
|
||||
'vDash': '\u22A8',
|
||||
'vangrt': '\u299C',
|
||||
'varepsilon': '\u03F5',
|
||||
'varkappa': '\u03F0',
|
||||
'varnothing': '\u2205',
|
||||
'varphi': '\u03D5',
|
||||
'varpi': '\u03D6',
|
||||
'varpropto': '\u221D',
|
||||
'varr': '\u2195',
|
||||
'varrho': '\u03F1',
|
||||
'varsigma': '\u03C2',
|
||||
'varsubsetneq': '\u228A\uFE00',
|
||||
'varsubsetneqq': '\u2ACB\uFE00',
|
||||
'varsupsetneq': '\u228B\uFE00',
|
||||
'varsupsetneqq': '\u2ACC\uFE00',
|
||||
'vartheta': '\u03D1',
|
||||
'vartriangleleft': '\u22B2',
|
||||
'vartriangleright': '\u22B3',
|
||||
'vcy': '\u0432',
|
||||
'vdash': '\u22A2',
|
||||
'vee': '\u2228',
|
||||
'veeeq': '\u225A',
|
||||
'verbar': '\u007C',
|
||||
'vert': '\u007C',
|
||||
'vltri': '\u22B2',
|
||||
'vnsub': '\u2282\u20D2',
|
||||
'vnsup': '\u2283\u20D2',
|
||||
'vprop': '\u221D',
|
||||
'vrtri': '\u22B3',
|
||||
'vsubnE': '\u2ACB\uFE00',
|
||||
'vsubne': '\u228A\uFE00',
|
||||
'vsupnE': '\u2ACC\uFE00',
|
||||
'vsupne': '\u228B\uFE00',
|
||||
'vzigzag': '\u299A'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/v.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,35 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/w.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'Wcirc': '\u0174',
|
||||
'wcirc': '\u0175',
|
||||
'wedbar': '\u2A5F',
|
||||
'wedge': '\u2227',
|
||||
'wedgeq': '\u2259',
|
||||
'wp': '\u2118',
|
||||
'wr': '\u2240',
|
||||
'wreath': '\u2240'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/w.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,47 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/x.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'xcap': '\u22C2',
|
||||
'xcirc': '\u25EF',
|
||||
'xcup': '\u22C3',
|
||||
'xdtri': '\u25BD',
|
||||
'xhArr': '\u27FA',
|
||||
'xharr': '\u27F7',
|
||||
'xlArr': '\u27F8',
|
||||
'xlarr': '\u27F5',
|
||||
'xmap': '\u27FC',
|
||||
'xnis': '\u22FB',
|
||||
'xodot': '\u2A00',
|
||||
'xoplus': '\u2A01',
|
||||
'xotime': '\u2A02',
|
||||
'xrArr': '\u27F9',
|
||||
'xrarr': '\u27F6',
|
||||
'xsqcup': '\u2A06',
|
||||
'xuplus': '\u2A04',
|
||||
'xutri': '\u25B3',
|
||||
'xvee': '\u22C1',
|
||||
'xwedge': '\u22C0'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/x.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,41 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/y.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'YAcy': '\u042F',
|
||||
'YIcy': '\u0407',
|
||||
'YUcy': '\u042E',
|
||||
'Yacute': '\u00DD',
|
||||
'Ycirc': '\u0176',
|
||||
'Ycy': '\u042B',
|
||||
'Yuml': '\u0178',
|
||||
'yacute': '\u00FD',
|
||||
'yacy': '\u044F',
|
||||
'ycirc': '\u0177',
|
||||
'ycy': '\u044B',
|
||||
'yicy': '\u0457',
|
||||
'yucy': '\u044E',
|
||||
'yuml': '\u00FF'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/y.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
@@ -1,42 +0,0 @@
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/HTML-CSS/entities/z.js
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
(function (MATHML) {
|
||||
MathJax.Hub.Insert(MATHML.Parse.Entity,{
|
||||
'ZHcy': '\u0416',
|
||||
'Zacute': '\u0179',
|
||||
'Zcaron': '\u017D',
|
||||
'Zcy': '\u0417',
|
||||
'Zdot': '\u017B',
|
||||
'ZeroWidthSpace': '\u200B',
|
||||
'Zeta': '\u0396',
|
||||
'zacute': '\u017A',
|
||||
'zcaron': '\u017E',
|
||||
'zcy': '\u0437',
|
||||
'zdot': '\u017C',
|
||||
'zeetrf': '\u2128',
|
||||
'zhcy': '\u0436',
|
||||
'zwj': '\u200D',
|
||||
'zwnj': '\u200C'
|
||||
});
|
||||
|
||||
MathJax.Ajax.loadComplete(MATHML.entityDir+"/z.js");
|
||||
|
||||
})(MathJax.InputJax.MathML);
|
||||
-774
@@ -1,774 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/input/MathML/jax.js
|
||||
*
|
||||
* Implements the MathML InputJax that reads mathematics in
|
||||
* MathML format and converts it to the MML ElementJax
|
||||
* internal format.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2010-2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
(function (MATHML,BROWSER) {
|
||||
var MML;
|
||||
|
||||
var _ = function (id) {
|
||||
return MathJax.Localization._.apply(MathJax.Localization,
|
||||
[["MathML",id]].concat([].slice.call(arguments,1)))
|
||||
};
|
||||
|
||||
MATHML.Parse = MathJax.Object.Subclass({
|
||||
|
||||
Init: function (string,script) {this.Parse(string,script)},
|
||||
|
||||
//
|
||||
// Parse the MathML and check for errors
|
||||
//
|
||||
Parse: function (math,script) {
|
||||
var doc;
|
||||
if (typeof math !== "string") {doc = math.parentNode} else {
|
||||
doc = MATHML.ParseXML(this.preProcessMath.call(this,math));
|
||||
if (doc == null) {MATHML.Error(["ErrorParsingMathML","Error parsing MathML"])}
|
||||
}
|
||||
var err = doc.getElementsByTagName("parsererror")[0];
|
||||
if (err) MATHML.Error(["ParsingError","Error parsing MathML: %1",
|
||||
err.textContent.replace(/This page.*?errors:|XML Parsing Error: |Below is a rendering of the page.*/g,"")]);
|
||||
if (doc.childNodes.length !== 1)
|
||||
{MATHML.Error(["MathMLSingleElement","MathML must be formed by a single element"])}
|
||||
if (doc.firstChild.nodeName.toLowerCase() === "html") {
|
||||
var h1 = doc.getElementsByTagName("h1")[0];
|
||||
if (h1 && h1.textContent === "XML parsing error" && h1.nextSibling)
|
||||
MATHML.Error(["ParsingError","Error parsing MathML: %1",
|
||||
String(h1.nextSibling.nodeValue).replace(/fatal parsing error: /,"")]);
|
||||
}
|
||||
if (doc.firstChild.nodeName.toLowerCase().replace(/^[a-z]+:/,"") !== "math") {
|
||||
MATHML.Error(["MathMLRootElement",
|
||||
"MathML must be formed by a <math> element, not %1",
|
||||
"<"+doc.firstChild.nodeName+">"]);
|
||||
}
|
||||
var data = {math:doc.firstChild, script:script};
|
||||
MATHML.DOMfilterHooks.Execute(data);
|
||||
this.mml = this.MakeMML(data.math);
|
||||
},
|
||||
|
||||
//
|
||||
// Convert the MathML structure to the MathJax Element jax structure
|
||||
//
|
||||
MakeMML: function (node) {
|
||||
var CLASS = String(node.getAttribute("class")||""); // make sure CLASS is a string
|
||||
var mml, type = node.nodeName.toLowerCase().replace(/^[a-z]+:/,"");
|
||||
var match = (CLASS.match(/(^| )MJX-TeXAtom-([^ ]*)/));
|
||||
if (match) {
|
||||
mml = this.TeXAtom(match[2],match[2] === "OP" && !CLASS.match(/MJX-fixedlimits/));
|
||||
} else if (!(MML[type] && MML[type].isa && MML[type].isa(MML.mbase))) {
|
||||
MathJax.Hub.signal.Post(["MathML Jax - unknown node type",type]);
|
||||
return MML.Error(_("UnknownNodeType","Unknown node type: %1",type));
|
||||
} else {
|
||||
mml = MML[type]();
|
||||
}
|
||||
this.AddAttributes(mml,node); this.CheckClass(mml,mml["class"]);
|
||||
this.AddChildren(mml,node);
|
||||
if (MATHML.config.useMathMLspacing) {mml.useMMLspacing = 0x08}
|
||||
return mml;
|
||||
},
|
||||
TeXAtom: function (mclass,movablelimits) {
|
||||
var mml = MML.TeXAtom().With({texClass:MML.TEXCLASS[mclass]});
|
||||
if (movablelimits) {mml.movesupsub = mml.movablelimits = true}
|
||||
return mml;
|
||||
},
|
||||
CheckClass: function (mml,CLASS) {
|
||||
CLASS = (CLASS||"").split(/ /); var NCLASS = [];
|
||||
for (var i = 0, m = CLASS.length; i < m; i++) {
|
||||
if (CLASS[i].substr(0,4) === "MJX-") {
|
||||
if (CLASS[i] === "MJX-arrow") {
|
||||
// This class was used in former versions of MathJax to attach an
|
||||
// arrow to the updiagonalstrike notation. For backward
|
||||
// compatibility, let's continue to accept this case. See issue 481.
|
||||
if (!mml.notation.match("/"+MML.NOTATION.UPDIAGONALARROW+"/"))
|
||||
mml.notation += " "+MML.NOTATION.UPDIAGONALARROW;
|
||||
} else if (CLASS[i] === "MJX-variant") {
|
||||
mml.variantForm = true;
|
||||
//
|
||||
// Variant forms come from AMSsymbols, and it sets up the
|
||||
// character mappings, so load that if needed.
|
||||
//
|
||||
if (!MathJax.Extension["TeX/AMSsymbols"])
|
||||
{MathJax.Hub.RestartAfter(MathJax.Ajax.Require("[MathJax]/extensions/TeX/AMSsymbols.js"))}
|
||||
} else if (CLASS[i].substr(0,11) !== "MJX-TeXAtom") {
|
||||
mml.mathvariant = CLASS[i].substr(3);
|
||||
//
|
||||
// Caligraphic and oldstyle bold are set up in the boldsymbol
|
||||
// extension, so load it if it isn't already loaded.
|
||||
//
|
||||
if (mml.mathvariant === "-tex-caligraphic-bold" ||
|
||||
mml.mathvariant === "-tex-oldstyle-bold") {
|
||||
if (!MathJax.Extension["TeX/boldsymbol"])
|
||||
{MathJax.Hub.RestartAfter(MathJax.Ajax.Require("[MathJax]/extensions/TeX/boldsymbol.js"))}
|
||||
}
|
||||
}
|
||||
} else {NCLASS.push(CLASS[i])}
|
||||
}
|
||||
if (NCLASS.length) {mml["class"] = NCLASS.join(" ")} else {delete mml["class"]}
|
||||
},
|
||||
|
||||
//
|
||||
// Add the attributes to the mml node
|
||||
//
|
||||
AddAttributes: function (mml,node) {
|
||||
mml.attr = {}; mml.attrNames = [];
|
||||
for (var i = 0, m = node.attributes.length; i < m; i++) {
|
||||
var name = node.attributes[i].name;
|
||||
if (name == "xlink:href") {name = "href"}
|
||||
if (name.match(/:/)) continue;
|
||||
if (name.match(/^_moz-math-((column|row)(align|line)|font-style)$/)) continue;
|
||||
var value = node.attributes[i].value;
|
||||
value = this.filterAttribute(name,value);
|
||||
var defaults = (mml.type === "mstyle" ? MML.math.prototype.defaults : mml.defaults);
|
||||
if (value != null) {
|
||||
if (value.toLowerCase() === "true") {value = true}
|
||||
else if (value.toLowerCase() === "false") {value = false}
|
||||
if (defaults[name] != null || MML.copyAttributes[name])
|
||||
{mml[name] = value} else {mml.attr[name] = value}
|
||||
mml.attrNames.push(name);
|
||||
}
|
||||
}
|
||||
},
|
||||
filterAttribute: function (name,value) {return value}, // safe mode overrides this
|
||||
|
||||
//
|
||||
// Create the children for the mml node
|
||||
//
|
||||
AddChildren: function (mml,node) {
|
||||
for (var i = 0, m = node.childNodes.length; i < m; i++) {
|
||||
var child = node.childNodes[i];
|
||||
if (child.nodeName === "#comment") continue;
|
||||
if (child.nodeName === "#text") {
|
||||
if ((mml.isToken || mml.isChars) && !mml.mmlSelfClosing) {
|
||||
var text = child.nodeValue;
|
||||
if (mml.isToken) {
|
||||
text = text.replace(/&([a-z][a-z0-9]*);/ig,this.replaceEntity);
|
||||
text = this.trimSpace(text);
|
||||
}
|
||||
mml.Append(MML.chars(text));
|
||||
} else if (child.nodeValue.match(/\S/)) {
|
||||
MATHML.Error(["UnexpectedTextNode",
|
||||
"Unexpected text node: %1","'"+child.nodeValue+"'"]);
|
||||
}
|
||||
} else if (mml.type === "annotation-xml") {
|
||||
mml.Append(MML.xml(child));
|
||||
} else {
|
||||
var cmml = this.MakeMML(child); mml.Append(cmml);
|
||||
if (cmml.mmlSelfClosing && cmml.data.length)
|
||||
{mml.Append.apply(mml,cmml.data); cmml.data = []}
|
||||
}
|
||||
}
|
||||
if (mml.type === "mrow" && mml.data.length >= 2) {
|
||||
var first = mml.data[0], last = mml.data[mml.data.length-1];
|
||||
if (first.type === "mo" && first.Get("fence") &&
|
||||
last.type === "mo" && last.Get("fence")) {
|
||||
if (first.data[0]) {mml.open = first.data.join("")}
|
||||
if (last.data[0]) {mml.close = last.data.join("")}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Clean Up the <math> source to prepare for XML parsing
|
||||
//
|
||||
preProcessMath: function (math) {
|
||||
if (math.match(/^<[a-z]+:/i) && !math.match(/^<[^<>]* xmlns:/)) {
|
||||
math = math.replace(/^<([a-z]+)(:math)/i,'<$1$2 xmlns:$1="http://www.w3.org/1998/Math/MathML"')
|
||||
}
|
||||
// HTML5 removes xmlns: namespaces, so put them back for XML
|
||||
var match = math.match(/^(<math( ('.*?'|".*?"|[^>])+)>)/i);
|
||||
if (match && match[2].match(/ (?!xmlns=)[a-z]+=\"http:/i)) {
|
||||
math = match[1].replace(/ (?!xmlns=)([a-z]+=(['"])http:.*?\2)/ig," xmlns:$1 $1") +
|
||||
math.substr(match[0].length);
|
||||
}
|
||||
if (math.match(/^<math/i) && !math.match(/^<[^<>]* xmlns=/)) {
|
||||
// append the MathML namespace
|
||||
math = math.replace(/^<(math)/i,'<math xmlns="http://www.w3.org/1998/Math/MathML"')
|
||||
}
|
||||
math = math.replace(/^\s*(?:\/\/)?<!(--)?\[CDATA\[((.|\n)*)(\/\/)?\]\]\1>\s*$/,"$2");
|
||||
return math.replace(/&([a-z][a-z0-9]*);/ig,this.replaceEntity);
|
||||
},
|
||||
|
||||
//
|
||||
// Remove attribute whitespace
|
||||
//
|
||||
trimSpace: function (string) {
|
||||
return string.replace(/[\t\n\r]/g," ") // whitespace to spaces
|
||||
.replace(/^ +/,"") // initial whitespace
|
||||
.replace(/ +$/,"") // trailing whitespace
|
||||
.replace(/ +/g," "); // internal multiple whitespace
|
||||
},
|
||||
|
||||
//
|
||||
// Replace a named entity by its value
|
||||
// (look up from external files if necessary)
|
||||
//
|
||||
replaceEntity: function (match,entity) {
|
||||
if (entity.match(/^(lt|amp|quot)$/)) {return match} // these mess up attribute parsing
|
||||
if (MATHML.Parse.Entity[entity]) {return MATHML.Parse.Entity[entity]}
|
||||
var file = entity.charAt(0).toLowerCase();
|
||||
var font = entity.match(/^[a-zA-Z](fr|scr|opf)$/);
|
||||
if (font) {file = font[1]}
|
||||
if (!MATHML.Parse.loaded[file]) {
|
||||
MATHML.Parse.loaded[file] = true;
|
||||
MathJax.Hub.RestartAfter(MathJax.Ajax.Require(MATHML.entityDir+"/"+file+".js"));
|
||||
}
|
||||
return match;
|
||||
}
|
||||
}, {
|
||||
loaded: [] // the entity files that are loaded
|
||||
});
|
||||
|
||||
/************************************************************************/
|
||||
|
||||
MATHML.Augment({
|
||||
sourceMenuTitle: /*_(MathMenu)*/ ["OriginalMathML","Original MathML"],
|
||||
|
||||
prefilterHooks: MathJax.Callback.Hooks(true), // hooks to run on MathML string before processing MathML
|
||||
DOMfilterHooks: MathJax.Callback.Hooks(true), // hooks to run on MathML DOM before processing
|
||||
postfilterHooks: MathJax.Callback.Hooks(true), // hooks to run on internal jax format after processing MathML
|
||||
|
||||
Translate: function (script) {
|
||||
if (!this.ParseXML) {this.ParseXML = this.createParser()}
|
||||
var mml, math, data = {script:script};
|
||||
if (script.firstChild &&
|
||||
script.firstChild.nodeName.toLowerCase().replace(/^[a-z]+:/,"") === "math") {
|
||||
data.math = script.firstChild;
|
||||
} else {
|
||||
math = MathJax.HTML.getScript(script);
|
||||
if (BROWSER.isMSIE) {math = math.replace(/( )+$/,"")}
|
||||
data.math = math;
|
||||
}
|
||||
var callback = this.prefilterHooks.Execute(data); if (callback) return callback;
|
||||
math = data.math;
|
||||
try {
|
||||
mml = MATHML.Parse(math,script).mml;
|
||||
} catch(err) {
|
||||
if (!err.mathmlError) {throw err}
|
||||
mml = this.formatError(err,math,script);
|
||||
}
|
||||
data.math = MML(mml);
|
||||
return this.postfilterHooks.Execute(data) || data.math;
|
||||
},
|
||||
prefilterMath: function (math,script) {return math},
|
||||
prefilterMathML: function (math,script) {return math},
|
||||
formatError: function (err,math,script) {
|
||||
var message = err.message.replace(/\n.*/,"");
|
||||
MathJax.Hub.signal.Post(["MathML Jax - parse error",message,math,script]);
|
||||
return MML.Error(message);
|
||||
},
|
||||
Error: function (message) {
|
||||
//
|
||||
// Translate message if it is ["id","message",args]
|
||||
//
|
||||
if (message instanceof Array) {message = _.apply(_,message)}
|
||||
throw MathJax.Hub.Insert(Error(message),{mathmlError: true});
|
||||
},
|
||||
//
|
||||
// Parsers for various forms (DOMParser, Windows ActiveX object, other)
|
||||
//
|
||||
parseDOM: function (string) {return this.parser.parseFromString(string,"text/xml")},
|
||||
parseMS: function (string) {return (this.parser.loadXML(string) ? this.parser : null)},
|
||||
parseDIV: function (string) {
|
||||
this.div.innerHTML =
|
||||
"<div>"+string.replace(/<([a-z]+)([^>]*)\/>/g,"<$1$2></$1>")+"</div>";
|
||||
var doc = this.div.firstChild;
|
||||
this.div.innerHTML = "";
|
||||
return doc;
|
||||
},
|
||||
parseError: function (string) {return null},
|
||||
createMSParser: function() {
|
||||
var parser = null;
|
||||
var xml = ["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.5.0",
|
||||
"MSXML2.DOMDocument.4.0","MSXML2.DOMDocument.3.0",
|
||||
"MSXML2.DOMDocument.2.0","Microsoft.XMLDOM"];
|
||||
for (var i = 0, m = xml.length; i < m && !parser; i++) {
|
||||
try {
|
||||
parser = new ActiveXObject(xml[i])
|
||||
} catch (err) {}
|
||||
}
|
||||
return parser;
|
||||
},
|
||||
//
|
||||
// Create the parser using a DOMParser, or other fallback method
|
||||
//
|
||||
createParser: function () {
|
||||
if (window.DOMParser) {
|
||||
this.parser = new DOMParser();
|
||||
return(this.parseDOM);
|
||||
} else if (window.ActiveXObject) {
|
||||
this.parser = this.createMSParser();
|
||||
if (!this.parser) {
|
||||
MathJax.Localization.Try(this.parserCreationError);
|
||||
return(this.parseError);
|
||||
}
|
||||
this.parser.async = false;
|
||||
return(this.parseMS);
|
||||
}
|
||||
this.div = MathJax.Hub.Insert(document.createElement("div"),{
|
||||
style:{visibility:"hidden", overflow:"hidden", height:"1px",
|
||||
position:"absolute", top:0}
|
||||
});
|
||||
if (!document.body.firstChild) {document.body.appendChild(this.div)}
|
||||
else {document.body.insertBefore(this.div,document.body.firstChild)}
|
||||
return(this.parseDIV);
|
||||
},
|
||||
parserCreationError: function () {
|
||||
alert(_("CantCreateXMLParser",
|
||||
"MathJax can't create an XML parser for MathML. Check that\n"+
|
||||
"the 'Script ActiveX controls marked safe for scripting' security\n"+
|
||||
"setting is enabled (use the Internet Options item in the Tools\n"+
|
||||
"menu, and select the Security panel, then press the Custom Level\n"+
|
||||
"button to check this).\n\n"+
|
||||
"MathML equations will not be able to be processed by MathJax."));
|
||||
},
|
||||
//
|
||||
// Initialize the parser object (whichever type is used)
|
||||
//
|
||||
Startup: function () {
|
||||
MML = MathJax.ElementJax.mml;
|
||||
MML.mspace.Augment({mmlSelfClosing: true});
|
||||
MML.none.Augment({mmlSelfClosing: true});
|
||||
MML.mprescripts.Augment({mmlSelfClosing:true});
|
||||
MML.maligngroup.Augment({mmlSelfClosing:true});
|
||||
MML.malignmark.Augment({mmlSelfClosing:true});
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
// Add the default pre-filter (for backward compatibility)
|
||||
//
|
||||
MATHML.prefilterHooks.Add(function (data) {
|
||||
data.math = (typeof(data.math) === "string" ?
|
||||
MATHML.prefilterMath(data.math,data.script) :
|
||||
MATHML.prefilterMathML(data.math,data.script));
|
||||
});
|
||||
|
||||
MATHML.Parse.Entity = {
|
||||
ApplyFunction: '\u2061',
|
||||
Backslash: '\u2216',
|
||||
Because: '\u2235',
|
||||
Breve: '\u02D8',
|
||||
Cap: '\u22D2',
|
||||
CenterDot: '\u00B7',
|
||||
CircleDot: '\u2299',
|
||||
CircleMinus: '\u2296',
|
||||
CirclePlus: '\u2295',
|
||||
CircleTimes: '\u2297',
|
||||
Congruent: '\u2261',
|
||||
ContourIntegral: '\u222E',
|
||||
Coproduct: '\u2210',
|
||||
Cross: '\u2A2F',
|
||||
Cup: '\u22D3',
|
||||
CupCap: '\u224D',
|
||||
Dagger: '\u2021',
|
||||
Del: '\u2207',
|
||||
Delta: '\u0394',
|
||||
Diamond: '\u22C4',
|
||||
DifferentialD: '\u2146',
|
||||
DotEqual: '\u2250',
|
||||
DoubleDot: '\u00A8',
|
||||
DoubleRightTee: '\u22A8',
|
||||
DoubleVerticalBar: '\u2225',
|
||||
DownArrow: '\u2193',
|
||||
DownLeftVector: '\u21BD',
|
||||
DownRightVector: '\u21C1',
|
||||
DownTee: '\u22A4',
|
||||
Downarrow: '\u21D3',
|
||||
Element: '\u2208',
|
||||
EqualTilde: '\u2242',
|
||||
Equilibrium: '\u21CC',
|
||||
Exists: '\u2203',
|
||||
ExponentialE: '\u2147',
|
||||
FilledVerySmallSquare: '\u25AA',
|
||||
ForAll: '\u2200',
|
||||
Gamma: '\u0393',
|
||||
Gg: '\u22D9',
|
||||
GreaterEqual: '\u2265',
|
||||
GreaterEqualLess: '\u22DB',
|
||||
GreaterFullEqual: '\u2267',
|
||||
GreaterLess: '\u2277',
|
||||
GreaterSlantEqual: '\u2A7E',
|
||||
GreaterTilde: '\u2273',
|
||||
Hacek: '\u02C7',
|
||||
Hat: '\u005E',
|
||||
HumpDownHump: '\u224E',
|
||||
HumpEqual: '\u224F',
|
||||
Im: '\u2111',
|
||||
ImaginaryI: '\u2148',
|
||||
Integral: '\u222B',
|
||||
Intersection: '\u22C2',
|
||||
InvisibleComma: '\u2063',
|
||||
InvisibleTimes: '\u2062',
|
||||
Lambda: '\u039B',
|
||||
Larr: '\u219E',
|
||||
LeftAngleBracket: '\u27E8',
|
||||
LeftArrow: '\u2190',
|
||||
LeftArrowRightArrow: '\u21C6',
|
||||
LeftCeiling: '\u2308',
|
||||
LeftDownVector: '\u21C3',
|
||||
LeftFloor: '\u230A',
|
||||
LeftRightArrow: '\u2194',
|
||||
LeftTee: '\u22A3',
|
||||
LeftTriangle: '\u22B2',
|
||||
LeftTriangleEqual: '\u22B4',
|
||||
LeftUpVector: '\u21BF',
|
||||
LeftVector: '\u21BC',
|
||||
Leftarrow: '\u21D0',
|
||||
Leftrightarrow: '\u21D4',
|
||||
LessEqualGreater: '\u22DA',
|
||||
LessFullEqual: '\u2266',
|
||||
LessGreater: '\u2276',
|
||||
LessSlantEqual: '\u2A7D',
|
||||
LessTilde: '\u2272',
|
||||
Ll: '\u22D8',
|
||||
Lleftarrow: '\u21DA',
|
||||
LongLeftArrow: '\u27F5',
|
||||
LongLeftRightArrow: '\u27F7',
|
||||
LongRightArrow: '\u27F6',
|
||||
Longleftarrow: '\u27F8',
|
||||
Longleftrightarrow: '\u27FA',
|
||||
Longrightarrow: '\u27F9',
|
||||
Lsh: '\u21B0',
|
||||
MinusPlus: '\u2213',
|
||||
NestedGreaterGreater: '\u226B',
|
||||
NestedLessLess: '\u226A',
|
||||
NotDoubleVerticalBar: '\u2226',
|
||||
NotElement: '\u2209',
|
||||
NotEqual: '\u2260',
|
||||
NotExists: '\u2204',
|
||||
NotGreater: '\u226F',
|
||||
NotGreaterEqual: '\u2271',
|
||||
NotLeftTriangle: '\u22EA',
|
||||
NotLeftTriangleEqual: '\u22EC',
|
||||
NotLess: '\u226E',
|
||||
NotLessEqual: '\u2270',
|
||||
NotPrecedes: '\u2280',
|
||||
NotPrecedesSlantEqual: '\u22E0',
|
||||
NotRightTriangle: '\u22EB',
|
||||
NotRightTriangleEqual: '\u22ED',
|
||||
NotSubsetEqual: '\u2288',
|
||||
NotSucceeds: '\u2281',
|
||||
NotSucceedsSlantEqual: '\u22E1',
|
||||
NotSupersetEqual: '\u2289',
|
||||
NotTilde: '\u2241',
|
||||
NotVerticalBar: '\u2224',
|
||||
Omega: '\u03A9',
|
||||
OverBar: '\u203E',
|
||||
OverBrace: '\u23DE',
|
||||
PartialD: '\u2202',
|
||||
Phi: '\u03A6',
|
||||
Pi: '\u03A0',
|
||||
PlusMinus: '\u00B1',
|
||||
Precedes: '\u227A',
|
||||
PrecedesEqual: '\u2AAF',
|
||||
PrecedesSlantEqual: '\u227C',
|
||||
PrecedesTilde: '\u227E',
|
||||
Product: '\u220F',
|
||||
Proportional: '\u221D',
|
||||
Psi: '\u03A8',
|
||||
Rarr: '\u21A0',
|
||||
Re: '\u211C',
|
||||
ReverseEquilibrium: '\u21CB',
|
||||
RightAngleBracket: '\u27E9',
|
||||
RightArrow: '\u2192',
|
||||
RightArrowLeftArrow: '\u21C4',
|
||||
RightCeiling: '\u2309',
|
||||
RightDownVector: '\u21C2',
|
||||
RightFloor: '\u230B',
|
||||
RightTee: '\u22A2',
|
||||
RightTeeArrow: '\u21A6',
|
||||
RightTriangle: '\u22B3',
|
||||
RightTriangleEqual: '\u22B5',
|
||||
RightUpVector: '\u21BE',
|
||||
RightVector: '\u21C0',
|
||||
Rightarrow: '\u21D2',
|
||||
Rrightarrow: '\u21DB',
|
||||
Rsh: '\u21B1',
|
||||
Sigma: '\u03A3',
|
||||
SmallCircle: '\u2218',
|
||||
Sqrt: '\u221A',
|
||||
Square: '\u25A1',
|
||||
SquareIntersection: '\u2293',
|
||||
SquareSubset: '\u228F',
|
||||
SquareSubsetEqual: '\u2291',
|
||||
SquareSuperset: '\u2290',
|
||||
SquareSupersetEqual: '\u2292',
|
||||
SquareUnion: '\u2294',
|
||||
Star: '\u22C6',
|
||||
Subset: '\u22D0',
|
||||
SubsetEqual: '\u2286',
|
||||
Succeeds: '\u227B',
|
||||
SucceedsEqual: '\u2AB0',
|
||||
SucceedsSlantEqual: '\u227D',
|
||||
SucceedsTilde: '\u227F',
|
||||
SuchThat: '\u220B',
|
||||
Sum: '\u2211',
|
||||
Superset: '\u2283',
|
||||
SupersetEqual: '\u2287',
|
||||
Supset: '\u22D1',
|
||||
Therefore: '\u2234',
|
||||
Theta: '\u0398',
|
||||
Tilde: '\u223C',
|
||||
TildeEqual: '\u2243',
|
||||
TildeFullEqual: '\u2245',
|
||||
TildeTilde: '\u2248',
|
||||
UnderBar: '\u005F',
|
||||
UnderBrace: '\u23DF',
|
||||
Union: '\u22C3',
|
||||
UnionPlus: '\u228E',
|
||||
UpArrow: '\u2191',
|
||||
UpDownArrow: '\u2195',
|
||||
UpTee: '\u22A5',
|
||||
Uparrow: '\u21D1',
|
||||
Updownarrow: '\u21D5',
|
||||
Upsilon: '\u03A5',
|
||||
Vdash: '\u22A9',
|
||||
Vee: '\u22C1',
|
||||
VerticalBar: '\u2223',
|
||||
VerticalTilde: '\u2240',
|
||||
Vvdash: '\u22AA',
|
||||
Wedge: '\u22C0',
|
||||
Xi: '\u039E',
|
||||
acute: '\u00B4',
|
||||
aleph: '\u2135',
|
||||
alpha: '\u03B1',
|
||||
amalg: '\u2A3F',
|
||||
and: '\u2227',
|
||||
ang: '\u2220',
|
||||
angmsd: '\u2221',
|
||||
angsph: '\u2222',
|
||||
ape: '\u224A',
|
||||
backprime: '\u2035',
|
||||
backsim: '\u223D',
|
||||
backsimeq: '\u22CD',
|
||||
beta: '\u03B2',
|
||||
beth: '\u2136',
|
||||
between: '\u226C',
|
||||
bigcirc: '\u25EF',
|
||||
bigodot: '\u2A00',
|
||||
bigoplus: '\u2A01',
|
||||
bigotimes: '\u2A02',
|
||||
bigsqcup: '\u2A06',
|
||||
bigstar: '\u2605',
|
||||
bigtriangledown: '\u25BD',
|
||||
bigtriangleup: '\u25B3',
|
||||
biguplus: '\u2A04',
|
||||
blacklozenge: '\u29EB',
|
||||
blacktriangle: '\u25B4',
|
||||
blacktriangledown: '\u25BE',
|
||||
blacktriangleleft: '\u25C2',
|
||||
bowtie: '\u22C8',
|
||||
boxdl: '\u2510',
|
||||
boxdr: '\u250C',
|
||||
boxminus: '\u229F',
|
||||
boxplus: '\u229E',
|
||||
boxtimes: '\u22A0',
|
||||
boxul: '\u2518',
|
||||
boxur: '\u2514',
|
||||
bsol: '\u005C',
|
||||
bull: '\u2022',
|
||||
cap: '\u2229',
|
||||
check: '\u2713',
|
||||
chi: '\u03C7',
|
||||
circ: '\u02C6',
|
||||
circeq: '\u2257',
|
||||
circlearrowleft: '\u21BA',
|
||||
circlearrowright: '\u21BB',
|
||||
circledR: '\u00AE',
|
||||
circledS: '\u24C8',
|
||||
circledast: '\u229B',
|
||||
circledcirc: '\u229A',
|
||||
circleddash: '\u229D',
|
||||
clubs: '\u2663',
|
||||
colon: '\u003A',
|
||||
comp: '\u2201',
|
||||
ctdot: '\u22EF',
|
||||
cuepr: '\u22DE',
|
||||
cuesc: '\u22DF',
|
||||
cularr: '\u21B6',
|
||||
cup: '\u222A',
|
||||
curarr: '\u21B7',
|
||||
curlyvee: '\u22CE',
|
||||
curlywedge: '\u22CF',
|
||||
dagger: '\u2020',
|
||||
daleth: '\u2138',
|
||||
ddarr: '\u21CA',
|
||||
deg: '\u00B0',
|
||||
delta: '\u03B4',
|
||||
digamma: '\u03DD',
|
||||
div: '\u00F7',
|
||||
divideontimes: '\u22C7',
|
||||
dot: '\u02D9',
|
||||
doteqdot: '\u2251',
|
||||
dotplus: '\u2214',
|
||||
dotsquare: '\u22A1',
|
||||
dtdot: '\u22F1',
|
||||
ecir: '\u2256',
|
||||
efDot: '\u2252',
|
||||
egs: '\u2A96',
|
||||
ell: '\u2113',
|
||||
els: '\u2A95',
|
||||
empty: '\u2205',
|
||||
epsi: '\u03B5',
|
||||
epsiv: '\u03F5',
|
||||
erDot: '\u2253',
|
||||
eta: '\u03B7',
|
||||
eth: '\u00F0',
|
||||
flat: '\u266D',
|
||||
fork: '\u22D4',
|
||||
frown: '\u2322',
|
||||
gEl: '\u2A8C',
|
||||
gamma: '\u03B3',
|
||||
gap: '\u2A86',
|
||||
gimel: '\u2137',
|
||||
gnE: '\u2269',
|
||||
gnap: '\u2A8A',
|
||||
gne: '\u2A88',
|
||||
gnsim: '\u22E7',
|
||||
gt: '\u003E',
|
||||
gtdot: '\u22D7',
|
||||
harrw: '\u21AD',
|
||||
hbar: '\u210F',
|
||||
hellip: '\u2026',
|
||||
hookleftarrow: '\u21A9',
|
||||
hookrightarrow: '\u21AA',
|
||||
imath: '\u0131',
|
||||
infin: '\u221E',
|
||||
intcal: '\u22BA',
|
||||
iota: '\u03B9',
|
||||
jmath: '\u0237',
|
||||
kappa: '\u03BA',
|
||||
kappav: '\u03F0',
|
||||
lEg: '\u2A8B',
|
||||
lambda: '\u03BB',
|
||||
lap: '\u2A85',
|
||||
larrlp: '\u21AB',
|
||||
larrtl: '\u21A2',
|
||||
lbrace: '\u007B',
|
||||
lbrack: '\u005B',
|
||||
le: '\u2264',
|
||||
leftleftarrows: '\u21C7',
|
||||
leftthreetimes: '\u22CB',
|
||||
lessdot: '\u22D6',
|
||||
lmoust: '\u23B0',
|
||||
lnE: '\u2268',
|
||||
lnap: '\u2A89',
|
||||
lne: '\u2A87',
|
||||
lnsim: '\u22E6',
|
||||
longmapsto: '\u27FC',
|
||||
looparrowright: '\u21AC',
|
||||
lowast: '\u2217',
|
||||
loz: '\u25CA',
|
||||
lt: '\u003C',
|
||||
ltimes: '\u22C9',
|
||||
ltri: '\u25C3',
|
||||
macr: '\u00AF',
|
||||
malt: '\u2720',
|
||||
mho: '\u2127',
|
||||
mu: '\u03BC',
|
||||
multimap: '\u22B8',
|
||||
nLeftarrow: '\u21CD',
|
||||
nLeftrightarrow: '\u21CE',
|
||||
nRightarrow: '\u21CF',
|
||||
nVDash: '\u22AF',
|
||||
nVdash: '\u22AE',
|
||||
natur: '\u266E',
|
||||
nearr: '\u2197',
|
||||
nharr: '\u21AE',
|
||||
nlarr: '\u219A',
|
||||
not: '\u00AC',
|
||||
nrarr: '\u219B',
|
||||
nu: '\u03BD',
|
||||
nvDash: '\u22AD',
|
||||
nvdash: '\u22AC',
|
||||
nwarr: '\u2196',
|
||||
omega: '\u03C9',
|
||||
omicron: '\u03BF',
|
||||
or: '\u2228',
|
||||
osol: '\u2298',
|
||||
period: '\u002E',
|
||||
phi: '\u03C6',
|
||||
phiv: '\u03D5',
|
||||
pi: '\u03C0',
|
||||
piv: '\u03D6',
|
||||
prap: '\u2AB7',
|
||||
precnapprox: '\u2AB9',
|
||||
precneqq: '\u2AB5',
|
||||
precnsim: '\u22E8',
|
||||
prime: '\u2032',
|
||||
psi: '\u03C8',
|
||||
rarrtl: '\u21A3',
|
||||
rbrace: '\u007D',
|
||||
rbrack: '\u005D',
|
||||
rho: '\u03C1',
|
||||
rhov: '\u03F1',
|
||||
rightrightarrows: '\u21C9',
|
||||
rightthreetimes: '\u22CC',
|
||||
ring: '\u02DA',
|
||||
rmoust: '\u23B1',
|
||||
rtimes: '\u22CA',
|
||||
rtri: '\u25B9',
|
||||
scap: '\u2AB8',
|
||||
scnE: '\u2AB6',
|
||||
scnap: '\u2ABA',
|
||||
scnsim: '\u22E9',
|
||||
sdot: '\u22C5',
|
||||
searr: '\u2198',
|
||||
sect: '\u00A7',
|
||||
sharp: '\u266F',
|
||||
sigma: '\u03C3',
|
||||
sigmav: '\u03C2',
|
||||
simne: '\u2246',
|
||||
smile: '\u2323',
|
||||
spades: '\u2660',
|
||||
sub: '\u2282',
|
||||
subE: '\u2AC5',
|
||||
subnE: '\u2ACB',
|
||||
subne: '\u228A',
|
||||
supE: '\u2AC6',
|
||||
supnE: '\u2ACC',
|
||||
supne: '\u228B',
|
||||
swarr: '\u2199',
|
||||
tau: '\u03C4',
|
||||
theta: '\u03B8',
|
||||
thetav: '\u03D1',
|
||||
tilde: '\u02DC',
|
||||
times: '\u00D7',
|
||||
triangle: '\u25B5',
|
||||
triangleq: '\u225C',
|
||||
upsi: '\u03C5',
|
||||
upuparrows: '\u21C8',
|
||||
veebar: '\u22BB',
|
||||
vellip: '\u22EE',
|
||||
weierp: '\u2118',
|
||||
xi: '\u03BE',
|
||||
yen: '\u00A5',
|
||||
zeta: '\u03B6',
|
||||
zigrarr: '\u21DD'
|
||||
};
|
||||
|
||||
MATHML.loadComplete("jax.js");
|
||||
|
||||
})(MathJax.InputJax.MathML,MathJax.Hub.Browser);
|
||||
@@ -1,60 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/annotation-xm;l.js
|
||||
*
|
||||
* Implements the CommonHTML output for <annotation-xml> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML;
|
||||
|
||||
MML["annotation-xml"].Augment({
|
||||
toCommonHTML: function (node) {
|
||||
var encoding = this.Get("encoding");
|
||||
node = this.CHTMLdefaultNode(node,{childOptions:{encoding:encoding}});
|
||||
if (this.CHTML.rscale !== 1) this.CHTML.rescale(1/this.CHTML.rscale);
|
||||
return node;
|
||||
}
|
||||
});
|
||||
|
||||
MML.xml.Augment({
|
||||
toCommonHTML: function (node,options) {
|
||||
var bbox = this.CHTML = CHTML.BBOX.zero();
|
||||
for (var i = 0, m = this.data.length; i < m; i++)
|
||||
{node.appendChild(this.data[i].cloneNode(true))}
|
||||
//
|
||||
// Warning: causes reflow
|
||||
//
|
||||
var w = node.offsetWidth, h = node.offsetHeight;
|
||||
var strut = CHTML.addElement(node,"mjx-hd-test",{style:{height:h+"px"}});
|
||||
bbox.d = bbox.b = (node.offsetHeight - h)/CHTML.em;
|
||||
bbox.w = bbox.r = w/CHTML.em; bbox.h = bbox.t = h/CHTML.em - bbox.d;
|
||||
node.removeChild(strut);
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML annotation-xml Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/annotation-xml.js");
|
||||
});
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/maction.js
|
||||
*
|
||||
* Implements the CommonHTML output for <maction> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML;
|
||||
|
||||
var currentTip, hover, clear;
|
||||
|
||||
//
|
||||
// Add configuration for tooltips
|
||||
//
|
||||
var CONFIG = CHTML.config.tooltip = MathJax.Hub.Insert({
|
||||
delayPost: 600, delayClear: 600,
|
||||
offsetX: 10, offsetY: 5
|
||||
},CHTML.config.tooltip||{});
|
||||
|
||||
|
||||
MML.maction.Augment({
|
||||
CHTMLtooltip: CHTML.addElement(document.body,"div",{id:"MathJax_CHTML_Tooltip"}),
|
||||
|
||||
toCommonHTML: function (node) {
|
||||
var selected = this.Get("selection");
|
||||
node = this.CHTMLcreateNode(node);
|
||||
this.CHTML = CHTML.BBOX.empty();
|
||||
this.CHTMLhandleStyle(node);
|
||||
this.CHTMLhandleScale(node);
|
||||
this.CHTMLaddChild(node,selected-1,{});
|
||||
this.CHTML.clean();
|
||||
this.CHTMLhandleSpace(node);
|
||||
this.CHTMLhandleBBox(node);
|
||||
this.CHTMLhandleColor(node);
|
||||
|
||||
var type = this.Get("actiontype");
|
||||
if (this.CHTMLaction[type] && this.CHTMLaction.hasOwnProperty(type))
|
||||
this.CHTMLaction[type].call(this,node,selected);
|
||||
|
||||
return node;
|
||||
},
|
||||
CHTMLcoreNode: function (node) {return this.CHTMLchildNode(node,0)},
|
||||
|
||||
//
|
||||
// Implementations for the various actions
|
||||
//
|
||||
CHTMLaction: {
|
||||
toggle: function (node,selection) {
|
||||
this.selection = selection;
|
||||
node.onclick = MathJax.Callback(["CHTMLclick",this,CHTML.jax]);
|
||||
node.style.cursor = "pointer";
|
||||
},
|
||||
|
||||
statusline: function (node,selection) {
|
||||
node.onmouseover = MathJax.Callback(["CHTMLsetStatus",this]);
|
||||
node.onmouseout = MathJax.Callback(["CHTMLclearStatus",this]);
|
||||
node.onmouseover.autoReset = node.onmouseout.autoReset = true;
|
||||
},
|
||||
|
||||
tooltip: function(node,selection) {
|
||||
if (this.data[1] && this.data[1].isToken) {
|
||||
node.title = node.alt = this.data[1].data.join("");
|
||||
} else {
|
||||
node.onmouseover = MathJax.Callback(["CHTMLtooltipOver",this,CHTML.jax]);
|
||||
node.onmouseout = MathJax.Callback(["CHTMLtooltipOut",this,CHTML.jax]);
|
||||
node.onmouseover.autoReset = node.onmouseout.autoReset = true;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Handle a click on the maction element
|
||||
// (remove the original rendering and rerender)
|
||||
//
|
||||
CHTMLclick: function (jax,event) {
|
||||
this.selection++;
|
||||
if (this.selection > this.data.length) this.selection = 1;
|
||||
var hover = !!jax.hover;
|
||||
jax.Update();
|
||||
if (hover) {
|
||||
var span = document.getElementById(jax.inputID+"-Span");
|
||||
MathJax.Extension.MathEvents.Hover.Hover(jax,span);
|
||||
}
|
||||
return MathJax.Extension.MathEvents.Event.False(event);
|
||||
},
|
||||
|
||||
//
|
||||
// Set/Clear the window status message
|
||||
//
|
||||
CHTMLsetStatus: function (event) {
|
||||
// FIXME: Do something better with non-token elements
|
||||
this.messageID = MathJax.Message.Set
|
||||
((this.data[1] && this.data[1].isToken) ?
|
||||
this.data[1].data.join("") : this.data[1].toString());
|
||||
},
|
||||
CHTMLclearStatus: function (event) {
|
||||
if (this.messageID) MathJax.Message.Clear(this.messageID,0);
|
||||
delete this.messageID;
|
||||
},
|
||||
|
||||
//
|
||||
// Handle tooltips
|
||||
//
|
||||
CHTMLtooltipOver: function (jax,event) {
|
||||
if (!event) event = window.event;
|
||||
if (clear) {clearTimeout(clear); clear = null}
|
||||
if (hover) clearTimeout(hover);
|
||||
var x = event.pageX; var y = event.pageY;
|
||||
if (x == null) {
|
||||
x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
|
||||
y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;
|
||||
}
|
||||
var callback = MathJax.Callback(["CHTMLtooltipPost",this,jax,x+CONFIG.offsetX,y+CONFIG.offsetY])
|
||||
hover = setTimeout(callback,CONFIG.delayPost);
|
||||
},
|
||||
CHTMLtooltipOut: function (jax,event) {
|
||||
if (hover) {clearTimeout(hover); hover = null}
|
||||
if (clear) clearTimeout(clear);
|
||||
var callback = MathJax.Callback(["CHTMLtooltipClear",this,80]);
|
||||
clear = setTimeout(callback,CONFIG.delayClear);
|
||||
},
|
||||
CHTMLtooltipPost: function (jax,x,y) {
|
||||
hover = null; if (clear) {clearTimeout(clear); clear = null}
|
||||
var tip = this.CHTMLtooltip;
|
||||
tip.style.display = "block"; tip.style.opacity = "";
|
||||
// tip.style.filter = CHTML.config.styles["#MathJax_CHTML_Tooltip"].filter;
|
||||
if (this === currentTip) return;
|
||||
tip.style.left = x+"px"; tip.style.top = y+"px";
|
||||
tip.innerHTML = '<span class="mjx-chtml"><span class="mjx-math"></span></span>';
|
||||
CHTML.getMetrics(jax);
|
||||
try {this.data[1].toCommonHTML(tip.firstChild.firstChild)} catch(err) {
|
||||
if (!err.restart) throw err;
|
||||
tip.style.display = "none";
|
||||
MathJax.Callback.After(["CHTMLtooltipPost",this,jax,x,y],err.restart);
|
||||
return;
|
||||
}
|
||||
currentTip = this;
|
||||
},
|
||||
CHTMLtooltipClear: function (n) {
|
||||
var tip = this.CHTMLtooltip;
|
||||
if (n <= 0) {
|
||||
tip.style.display = "none";
|
||||
tip.style.opacity = tip.style.filter = "";
|
||||
clear = null;
|
||||
} else {
|
||||
tip.style.opacity = n/100;
|
||||
tip.style.filter = "alpha(opacity="+n+")";
|
||||
clear = setTimeout(MathJax.Callback(["CHTMLtooltipClear",this,n-20]),50);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML maction Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/maction.js");
|
||||
});
|
||||
|
||||
@@ -1,317 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/menclose.js
|
||||
*
|
||||
* Implements the CommonHTML output for <menclose> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML;
|
||||
|
||||
var SVGNS = "http://www.w3.org/2000/svg";
|
||||
var ARROWX = 4, ARROWDX = 1, ARROWY = 2;
|
||||
|
||||
MML.menclose.Augment({
|
||||
toCommonHTML: function (node) {
|
||||
var values = this.getValues("notation","thickness","padding");
|
||||
if (values.thickness == null) values.thickness = ".075em";
|
||||
if (values.padding == null) values.padding = ".2em";
|
||||
//
|
||||
// Get DOM nodes
|
||||
//
|
||||
node = this.CHTMLdefaultNode(node,{childNodes:"mjx-box", forceChild:true});
|
||||
var child = node.firstChild, cbox = this.CHTMLbboxFor(0);
|
||||
//
|
||||
// Get the padding and rule thickness
|
||||
//
|
||||
var p = this.CHTMLlength2em(values.padding,1/CHTML.em); // padding for enclosure
|
||||
var t = this.CHTMLlength2em(values.thickness,1/CHTML.em); // thickness of lines
|
||||
t = Math.max(1,Math.round(t*CHTML.em))/CHTML.em;
|
||||
var SOLID = CHTML.Px(t)+" solid";
|
||||
var bb = {L:p, R:p, T:p, B:p, H:cbox.h+p, D:cbox.d+p, W:cbox.w+2*p};
|
||||
child.style.padding = CHTML.Em(p);
|
||||
//
|
||||
// Eliminate duplicate notations.
|
||||
//
|
||||
var notations = MathJax.Hub.SplitList(values.notation), notation = {};
|
||||
for (var i = 0, m = notations.length; i < m; i++) notation[notations[i]] = true;
|
||||
if (notation[MML.NOTATION.UPDIAGONALARROW]) delete notation[MML.NOTATION.UPDIAGONALSTRIKE];
|
||||
//
|
||||
// Add the needed notations
|
||||
//
|
||||
for (var n in notation) {
|
||||
if (notation.hasOwnProperty(n)) {
|
||||
if (this.CHTMLnotation[n] && this.CHTMLnotation.hasOwnProperty(n))
|
||||
this.CHTMLnotation[n].call(this,child,cbox,bb,p,t,SOLID);
|
||||
}
|
||||
}
|
||||
//
|
||||
// Adjust the bounding box
|
||||
//
|
||||
var BBOX = this.CHTML;
|
||||
BBOX.w += bb.L + bb.R; BBOX.r += BBOX.L; if (BBOX.w > BBOX.r) BBOX.r = BBOX.w;
|
||||
BBOX.h += bb.T; if (BBOX.h > BBOX.t) BBOX.t = BBOX.h;
|
||||
BBOX.d += bb.B; if (BBOX.d > BBOX.b) BBOX.b = BBOX.d;
|
||||
|
||||
return node;
|
||||
},
|
||||
//
|
||||
// The various notations and their implementations
|
||||
//
|
||||
CHTMLnotation: {
|
||||
|
||||
/********************************************************/
|
||||
|
||||
box: function (child,cbox,bb,p,t,SOLID) {
|
||||
p -= t;
|
||||
child.style.padding = CHTML.Em(p);
|
||||
child.style.border = SOLID;
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
roundedbox: function (child,cbox,bb,p,t,SOLID) {
|
||||
var r = Math.min(cbox.w,cbox.h+cbox.d+2*p)/4;
|
||||
CHTML.addElement(child.parentNode,"mjx-box",{
|
||||
style: {
|
||||
padding:CHTML.Em(p-t), border:SOLID, "border-radius":CHTML.Em(r),
|
||||
height:CHTML.Em(cbox.h+cbox.d), "vertical-align":CHTML.Em(-bb.D),
|
||||
width:CHTML.Em(cbox.w), "margin-left":CHTML.Em(-bb.W)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
circle: function (child,cbox,bb,p,t,SOLID) {
|
||||
var H = bb.H, D = bb.D, W = bb.W;
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"ellipse",{
|
||||
rx:CHTML.Px(W/2-t/2), ry:CHTML.Px((H+D)/2-t/2),
|
||||
cx:CHTML.Px(W/2), cy:CHTML.Px((H+D)/2)
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
left: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderLeft = SOLID;
|
||||
child.style.paddingLeft = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
right: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderRight = SOLID;
|
||||
child.style.paddingRight = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
top: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderTop = SOLID;
|
||||
child.style.paddingTop = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
bottom: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderBottom = SOLID;
|
||||
child.style.paddingBottom = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
actuarial: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderTop = child.style.borderRight = SOLID;
|
||||
child.style.paddingTop = child.style.paddingRight = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
madruwb: function (child,cbox,bb,p,t,SOLID) {
|
||||
child.style.borderBottom = child.style.borderRight = SOLID;
|
||||
child.style.paddingBottom = child.style.paddingRight = CHTML.Em(p-t);
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
verticalstrike: function (child,cbox,bb,p,t,SOLID) {
|
||||
CHTML.addElement(child.parentNode,"mjx-box",{
|
||||
style: {
|
||||
"border-left":SOLID,
|
||||
height:CHTML.Em(bb.H+bb.D), "vertical-align":CHTML.Em(-bb.D),
|
||||
width:CHTML.Em(cbox.w/2+p-t/2), "margin-left":CHTML.Em(-cbox.w/2-p-t/2)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
horizontalstrike: function (child,cbox,bb,p,t,SOLID) {
|
||||
CHTML.addElement(child.parentNode,"mjx-box",{
|
||||
style: {
|
||||
"border-top":SOLID,
|
||||
height:CHTML.Em((bb.H+bb.D)/2-t/2), "vertical-align":CHTML.Em(-bb.D),
|
||||
width:CHTML.Em(bb.W), "margin-left":CHTML.Em(-bb.W)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
updiagonalstrike: function (child,cbox,bb,p,t,SOLID) {
|
||||
var H = bb.H, D = bb.D, W = bb.W;
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"line",{
|
||||
x1:CHTML.Px(t/2), y1:CHTML.Px(H+D-t), x2:CHTML.Px(W-t), y2:CHTML.Px(t/2)
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
downdiagonalstrike: function (child,cbox,bb,p,t,SOLID) {
|
||||
var H = bb.H, D = bb.D, W = bb.W;
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"line",{
|
||||
x1:CHTML.Px(t/2), y1:CHTML.Px(t/2), x2:CHTML.Px(W-t), y2:CHTML.Px(H+D-t)
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
updiagonalarrow: function (child,cbox,bb,p,t,SOLID) {
|
||||
var H = bb.H + bb.D - t, W = bb.W - t/2;
|
||||
var a = Math.atan2(H,W)*(-180/Math.PI).toFixed(3);
|
||||
var R = Math.sqrt(H*H + W*W);
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
var g = this.CHTMLsvgElement(svg.firstChild,"g",{
|
||||
fill:"currentColor",
|
||||
transform:"translate("+this.CHTMLpx(t/2)+" "+this.CHTMLpx(H+t/2)+") rotate("+a+")"
|
||||
});
|
||||
var x = t * ARROWX, dx = t * ARROWDX, y = t * ARROWY;
|
||||
this.CHTMLsvgElement(g,"line",{
|
||||
x1:CHTML.Px(t/2), y1:0, x2:CHTML.Px(R-x), y2:0
|
||||
});
|
||||
this.CHTMLsvgElement(g,"path",{
|
||||
d: "M "+this.CHTMLpx(R-x)+",0 " +
|
||||
"L "+this.CHTMLpx(R-x-dx)+","+this.CHTMLpx(y) +
|
||||
"L "+this.CHTMLpx(R)+",0 " +
|
||||
"L "+this.CHTMLpx(R-x-dx)+","+this.CHTMLpx(-y),
|
||||
stroke:"none"
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
phasorangle: function (child,cbox,bb,p,t,SOLID) {
|
||||
var P = p, H = bb.H, D = bb.D;
|
||||
p = (H+D)/2;
|
||||
var W = bb.W + p - P; bb.W = W; bb.L = p;
|
||||
child.style.margin = "0 0 0 "+CHTML.Em(p-P);
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"path",{
|
||||
d: "M "+this.CHTMLpx(p)+",1 " +
|
||||
"L 1,"+this.CHTMLpx(H+D-t)+" L "+this.CHTMLpx(W)+","+this.CHTMLpx(H+D-t)
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
longdiv: function (child,cbox,bb,p,t,SOLID) {
|
||||
bb.W += 1.5*p; bb.L += 1.5*p;
|
||||
var H = bb.H, D = bb.D, W = bb.W;
|
||||
child.style.margin = "0 0 0 "+CHTML.Em(1.5*p);
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"path",{
|
||||
d: "M "+this.CHTMLpx(W)+",1 L 1,1 "+
|
||||
"a"+this.CHTMLpx(p)+","+this.CHTMLpx((H+D)/2-t/2)+" 0 0,1 1,"+this.CHTMLpx(H+D-1.5*t)
|
||||
});
|
||||
},
|
||||
|
||||
/********************************************************/
|
||||
|
||||
radical: function (child,cbox,bb,p,t,SOLID) {
|
||||
bb.W += 1.5*p; bb.L += 1.5*p;
|
||||
var H = bb.H, D = bb.D, W = bb.W;
|
||||
child.style.margin = "0 0 0 "+CHTML.Em(1.5*p);
|
||||
var svg = this.CHTMLsvg(child,bb,t);
|
||||
this.CHTMLsvgElement(svg.firstChild,"path",{
|
||||
d: "M 1,"+this.CHTMLpx(.6*(H+D)) +
|
||||
" L "+this.CHTMLpx(p)+","+this.CHTMLpx(H+D) +
|
||||
" L "+this.CHTMLpx(2*p)+",1 L "+this.CHTMLpx(W)+",1"
|
||||
});
|
||||
}
|
||||
|
||||
/********************************************************/
|
||||
|
||||
},
|
||||
|
||||
//
|
||||
// Pixels with no "px"
|
||||
//
|
||||
CHTMLpx: function (m) {
|
||||
m *= CHTML.em;
|
||||
if (Math.abs(m) < .1) return "0";
|
||||
return m.toFixed(1).replace(/\.0$/,"");
|
||||
},
|
||||
|
||||
//
|
||||
// Create the SVG element and position it over the
|
||||
// contents
|
||||
//
|
||||
CHTMLsvg: function (node,bbox,t) {
|
||||
if (!svg) {
|
||||
var svg = document.createElementNS(SVGNS,"svg");
|
||||
if (svg.style) {
|
||||
svg.style.width = CHTML.Em(bbox.W);
|
||||
svg.style.height = CHTML.Em(bbox.H+bbox.D);
|
||||
svg.style.verticalAlign = CHTML.Em(-bbox.D);
|
||||
svg.style.marginLeft = CHTML.Em(-bbox.W);
|
||||
}
|
||||
this.CHTMLsvgElement(svg,"g",{"stroke-width":CHTML.Px(t)});
|
||||
node.parentNode.appendChild(svg);
|
||||
}
|
||||
return svg;
|
||||
},
|
||||
//
|
||||
// Add an SVG element to the given svg node
|
||||
//
|
||||
CHTMLsvgElement: function (svg,type,def) {
|
||||
var obj = document.createElementNS(SVGNS,type); obj.isMathJax = true;
|
||||
if (def) {for (var id in def) {if (def.hasOwnProperty(id)) {obj.setAttributeNS(null,id,def[id].toString())}}}
|
||||
svg.appendChild(obj);
|
||||
return obj;
|
||||
}
|
||||
});
|
||||
|
||||
//
|
||||
// Just use default toCommonHTML for EI8
|
||||
//
|
||||
if (!document.createElementNS) delete MML.menclose.prototype.toCommonHTML;
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML menclose Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/menclose.js");
|
||||
});
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/mglyph.js
|
||||
*
|
||||
* Implements the CommonHTML output for <mglyph> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML,
|
||||
LOCALE = MathJax.Localization;
|
||||
|
||||
MML.mglyph.Augment({
|
||||
toCommonHTML: function (node,options) {
|
||||
var values = this.getValues("src","width","height","valign","alt");
|
||||
node = this.CHTMLcreateNode(node);
|
||||
this.CHTMLhandleStyle(node);
|
||||
this.CHTMLhandleScale(node);
|
||||
if (values.src === "") {
|
||||
var index = this.Get("index");
|
||||
this.CHTMLgetVariant();
|
||||
if (index && this.CHTMLvariant.style)
|
||||
this.CHTMLhandleText(node,String.fromCharCode(index),this.CHTMLvariant);
|
||||
} else {
|
||||
var bbox = this.CHTML;
|
||||
if (!bbox.img) bbox.img = MML.mglyph.GLYPH[values.src];
|
||||
if (!bbox.img) {
|
||||
bbox.img = MML.mglyph.GLYPH[values.src] = {img: new Image(), status: "pending"};
|
||||
bbox.img.img.onload = MathJax.Callback(["CHTMLimgLoaded",this]);
|
||||
bbox.img.img.onerror = MathJax.Callback(["CHTMLimgError",this]);
|
||||
bbox.img.img.src = values.src;
|
||||
MathJax.Hub.RestartAfter(bbox.img.img.onload);
|
||||
}
|
||||
if (bbox.img.status !== "OK") {
|
||||
var err = MML.Error(LOCALE._(["MathML","BadMglyph"],"Bad mglyph: %1",values.src));
|
||||
err.data[0].data[0].mathsize = "75%";
|
||||
this.Append(err); err.toCommonHTML(node); this.data.pop();
|
||||
bbox.combine(err.CHTML,0,0,1);
|
||||
} else {
|
||||
var img = CHTML.addElement(node,"img",{
|
||||
isMathJax:true, src:values.src, alt:values.alt, title:values.alt
|
||||
});
|
||||
var w = bbox.img.img.width/CHTML.em, h = bbox.img.img.height/CHTML.em;
|
||||
if (values.width !== "") img.style.width = CHTML.Em(this.CHTMLlength2em(values.width,w));
|
||||
if (values.height !== "") img.style.height = CHTML.Em(this.CHTMLlength2em(values.height,h));
|
||||
//
|
||||
// Warning: causes page reflows
|
||||
//
|
||||
bbox.w = bbox.r = img.offsetWidth/CHTML.em; bbox.h = bbox.t = img.offsetHeight/CHTML.em;
|
||||
if (values.valign) {
|
||||
bbox.d = bbox.b = -this.CHTMLlength2em(values.valign,h);
|
||||
img.style.verticalAlign = CHTML.Em(-bbox.d);
|
||||
bbox.h -= bbox.d; bbox.t = bbox.h;
|
||||
}
|
||||
}
|
||||
}
|
||||
this.CHTMLhandleSpace(node);
|
||||
this.CHTMLhandleBBox(node);
|
||||
this.CHTMLhandleColor(node);
|
||||
return node;
|
||||
},
|
||||
CHTMLimgLoaded: function (event,status) {
|
||||
if (typeof(event) === "string") status = event;
|
||||
this.CHTML.img.status = (status || "OK");
|
||||
},
|
||||
CHTMLimgError: function () {this.CHTML.img.img.onload("error")}
|
||||
},{
|
||||
GLYPH: {} // global list of all loaded glyphs
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML mglyph Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/mglyph.js");
|
||||
});
|
||||
|
||||
@@ -1,290 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/mmultiscripts.js
|
||||
*
|
||||
* Implements the CommonHTML output for <mmultiscripts> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML;
|
||||
|
||||
MML.mmultiscripts.Augment({
|
||||
toCommonHTML: function (node,stretch) {
|
||||
if (!stretch) {
|
||||
node = this.CHTMLcreateNode(node);
|
||||
this.CHTMLhandleStyle(node);
|
||||
this.CHTMLhandleScale(node);
|
||||
this.CHTMLgetVariant();
|
||||
}
|
||||
CHTML.BBOX.empty(this.CHTML);
|
||||
|
||||
//
|
||||
// Get base node
|
||||
//
|
||||
var base, bbox;
|
||||
if (stretch) {
|
||||
base = CHTML.getNode(node,"mjx-base");
|
||||
} else {
|
||||
this.CHTMLaddChild(node,0,{type:"mjx-base", noBBox:true, forceChild:true});
|
||||
base = node.firstChild;
|
||||
}
|
||||
bbox = this.CHTMLbboxFor(0);
|
||||
if (bbox.ic) {
|
||||
bbox.R -= bbox.ic; // remove IC (added by mo and mi)
|
||||
if (!stretch) base.style.marginRight = CHTML.Em(-bbox.ic);
|
||||
delta = 1.3*bbox.ic + .05; // make faked IC be closer to expeted results
|
||||
}
|
||||
|
||||
//
|
||||
// Collect scripts into horizontal boxes and add them into the node
|
||||
//
|
||||
var BOX = {}, BBOX = {};
|
||||
this.CHTMLgetScripts(BOX,BBOX,stretch,node);
|
||||
var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup;
|
||||
var sbox = BBOX.sub, Sbox = BBOX.sup, pbox = BBOX.presub, Pbox = BBOX.presup;
|
||||
if (!stretch) this.CHTMLaddBoxes(node,base,BOX);
|
||||
|
||||
//
|
||||
// Get the initial values for the variables
|
||||
//
|
||||
var values = this.getValues("scriptlevel","scriptsizemultiplier");
|
||||
var sscale = (this.Get("scriptlevel") < 3 ? values.scriptsizemultiplier : 1);
|
||||
var ex = CHTML.TEX.x_height, s = CHTML.TEX.scriptspace;
|
||||
var q = CHTML.TEX.sup_drop * sscale, r = CHTML.TEX.sub_drop * sscale;
|
||||
var u = bbox.h - q, v = bbox.d + r, delta = 0, p;
|
||||
var bmml = this.data[this.base];
|
||||
if (bmml && (bmml.type === "mi" || bmml.type === "mo")) {
|
||||
if (bmml.data.join("").length === 1 && bbox.rscale === 1 && !bbox.sH &&
|
||||
!bmml.Get("largeop")) {u = v = 0}
|
||||
}
|
||||
values = this.getValues("displaystyle","subscriptshift","superscriptshift","texprimestyle");
|
||||
values.subscriptshift = (values.subscriptshift === "" ? 0 : this.CHTMLlength2em(values.subscriptshift));
|
||||
values.superscriptshift = (values.superscriptshift === "" ? 0 : this.CHTMLlength2em(values.superscriptshift));
|
||||
|
||||
var dx = (presub ? s+pbox.w : presup ? s+Pbox.w-delta : 0);
|
||||
this.CHTML.combine(bbox,dx,0); var x = this.CHTML.w;
|
||||
|
||||
//
|
||||
// Place the scripts as needed
|
||||
//
|
||||
if (!sup && !presup) {
|
||||
v = Math.max(v,CHTML.TEX.sub1,values.subscriptshift);
|
||||
if (sub) v = Math.max(v,sbox.h-(4/5)*ex);
|
||||
if (presub) v = Math.max(v,pbox.h-(4/5)*ex);
|
||||
if (sub) this.CHTMLplaceSubOnly(sub,sbox,x,v,s);
|
||||
if (presub) this.CHTMLplacePresubOnly(presub,pbox,v,s);
|
||||
} else {
|
||||
if (!sub && !presub) {
|
||||
p = CHTML.TEX[(values.displaystyle ? "sup1" : (values.texprimestyle ? "sup3" : "sup2"))];
|
||||
u = Math.max(u,p,values.superscriptshift);
|
||||
if (sup) u = Math.max(u,Sbox.d+(1/4)*ex);
|
||||
if (presup) u = Math.max(u,Pbox.d+(1/4)*ex);
|
||||
if (sup) this.CHTMLplaceSupOnly(sup,Sbox,x,delta,u,s);
|
||||
if (presup) this.CHTMLplacePresupOnly(presup,Pbox,delta,u,s);
|
||||
} else {
|
||||
v = Math.max(v,CHTML.TEX.sub2);
|
||||
var t = CHTML.TEX.rule_thickness;
|
||||
var h = (sbox||pbox).h, d = (Sbox||Pbox).d;
|
||||
if (presub) h = Math.max(h,pbox.h);
|
||||
if (presup) d = Math.max(d,Pbox.d);
|
||||
if ((u - d) - (h - v) < 3*t) {
|
||||
v = 3*t - u + d + h; q = (4/5)*ex - (u - d);
|
||||
if (q > 0) {u += q; v -= q}
|
||||
}
|
||||
u = Math.max(u,values.superscriptshift);
|
||||
v = Math.max(v,values.subscriptshift);
|
||||
if (sup) {
|
||||
if (sub) {this.CHTMLplaceSubSup(sub,sbox,sup,Sbox,x,delta,u,v,s)}
|
||||
else {this.CHTMLplaceSupOnly(sup,Sbox,x,delta,u,s)}
|
||||
} else if (sub) {this.CHTMLplaceSubOnly(sub,sbox,x,v,s)}
|
||||
if (presup) {
|
||||
if (presub) {this.CHTMLplacePresubPresup(presub,pbox,presup,Pbox,delta,u,v,s)}
|
||||
else {this.CHTMLplacePresupOnly(presup,Pbox,delta,u,s)}
|
||||
} else if (presub) {this.CHTMLplacePresubOnly(presub,pbox,v,s)}
|
||||
}
|
||||
}
|
||||
this.CHTML.clean();
|
||||
this.CHTMLhandleSpace(node);
|
||||
this.CHTMLhandleBBox(node);
|
||||
this.CHTMLhandleColor(node);
|
||||
return node;
|
||||
},
|
||||
//
|
||||
// Get the subscript, superscript, presubscript, and presuperscript
|
||||
// boxes, with proper spacing, and computer their bounding boxes.
|
||||
//
|
||||
CHTMLgetScripts: function (BOX,BBOX,stretch,node) {
|
||||
if (stretch) {
|
||||
BOX.sub = CHTML.getNode(node,"mjx-sub");
|
||||
BOX.sup = CHTML.getNode(node,"mjx-sup");
|
||||
BOX.presub = CHTML.getNode(node,"mjx-presub");
|
||||
BOX.presup = CHTML.getNode(node,"mjx-presup");
|
||||
BBOX.sub = this.CHTMLbbox.sub;
|
||||
BBOX.sup = this.CHTMLbbox.sup;
|
||||
BBOX.presub = this.CHTMLbbox.presub;
|
||||
BBOX.presup = this.CHTMLbbox.presup;
|
||||
return;
|
||||
}
|
||||
this.CHTMLbbox = BBOX; // save for when stretched
|
||||
var state = {i:1, w:0, BOX:BOX, BBOX:BBOX}, m = this.data.length;
|
||||
var sub = "sub", sup = "sup";
|
||||
while (state.i < m) {
|
||||
if ((this.data[state.i]||{}).type === "mprescripts") {
|
||||
state.i++; state.w = 0;
|
||||
sub = "presub"; sup = "presup";
|
||||
} else {
|
||||
var sbox = this.CHTMLaddScript(sub,state);
|
||||
var Sbox = this.CHTMLaddScript(sup,state);
|
||||
var w = Math.max((sbox ? sbox.rscale*sbox.w : 0),(Sbox ? Sbox.rscale*Sbox.w : 0));
|
||||
this.CHTMLpadScript(sub,w,sbox,state);
|
||||
this.CHTMLpadScript(sup,w,Sbox,state);
|
||||
state.w += w;
|
||||
}
|
||||
}
|
||||
if (BBOX.sub) BBOX.sub.clean();
|
||||
if (BBOX.sup) BBOX.sup.clean();
|
||||
if (BBOX.presub) BBOX.presub.clean();
|
||||
if (BBOX.presup) BBOX.presup.clean();
|
||||
},
|
||||
//
|
||||
// Add a script to the proper box, creating the box if needed,
|
||||
// and padding the box to account for any <none/> elements.
|
||||
// Return the bounding box for the script for later use.
|
||||
//
|
||||
CHTMLaddScript: function (type,state) {
|
||||
var BOX, BBOX, data = this.data[state.i];
|
||||
if (data && data.type !== "none" && data.type !== "mprescripts") {
|
||||
BOX = state.BOX[type];
|
||||
if (!BOX) {
|
||||
BOX = state.BOX[type] = CHTML.Element("mjx-"+type);
|
||||
BBOX = state.BBOX[type] = CHTML.BBOX.empty();
|
||||
if (state.w) {
|
||||
BOX.style.paddingLeft = CHTML.Em(state.w);
|
||||
BBOX.w = BBOX.r = state.w; BBOX.x = state.w;
|
||||
}
|
||||
}
|
||||
data.toCommonHTML(BOX);
|
||||
BBOX = data.CHTML;
|
||||
}
|
||||
if (data && data.type !== "mprescripts") state.i++;
|
||||
return BBOX;
|
||||
},
|
||||
//
|
||||
// Add padding to the script box to make match the width of the
|
||||
// super- or subscript that is above or below it, and adjust the
|
||||
// bounding box for the script row. If these are pre-scripts,
|
||||
// right-justify the scripts, otherwise, left-justify them.
|
||||
//
|
||||
CHTMLpadScript: function (type,w,bbox,state) {
|
||||
if (!bbox) bbox = {w:0, fake:1, rscale:1};
|
||||
var BBOX = state.BBOX[type], dx = 0, dw = 0;
|
||||
if (BBOX) {
|
||||
if (bbox.rscale*bbox.w < w) {
|
||||
var BOX = state.BOX[type]; dw = w-bbox.rscale*bbox.w;
|
||||
var space = CHTML.Element("mjx-spacer",{style:{width:CHTML.Em(dw)}});
|
||||
if (type.substr(0,3) === "pre" && !bbox.fake) {
|
||||
BOX.insertBefore(space,BOX.lastChild);
|
||||
dx = dw; dw = 0;
|
||||
} else {
|
||||
BOX.appendChild(space);
|
||||
}
|
||||
}
|
||||
if (bbox.fake) {BBOX.w += dx} else {BBOX.combine(bbox,BBOX.w+dx,0)}
|
||||
BBOX.w += dw;
|
||||
}
|
||||
},
|
||||
//
|
||||
// Add the boxes into the main node, creating stacks when needed
|
||||
//
|
||||
CHTMLaddBoxes: function (node,base,BOX) {
|
||||
var sub = BOX.sub, sup = BOX.sup, presub = BOX.presub, presup = BOX.presup;
|
||||
if (presub && presup) {
|
||||
var prestack = CHTML.Element("mjx-prestack"); node.insertBefore(prestack,base);
|
||||
prestack.appendChild(presup); prestack.appendChild(presub);
|
||||
} else {
|
||||
if (presub) node.insertBefore(presub,base);
|
||||
if (presup) node.insertBefore(presup,base);
|
||||
}
|
||||
if (sub && sup) {
|
||||
var stack = CHTML.addElement(node,"mjx-stack");
|
||||
stack.appendChild(sup); stack.appendChild(sub);
|
||||
} else {
|
||||
if (sub) node.appendChild(sub);
|
||||
if (sup) node.appendChild(sup);
|
||||
}
|
||||
},
|
||||
//
|
||||
// Handle positioning the various scripts
|
||||
//
|
||||
CHTMLplaceSubOnly: function (sub,sbox,x,v,s) {
|
||||
sub.style.verticalAlign = CHTML.Em(-v);
|
||||
sub.style.marginRight = CHTML.Em(s); sbox.w += s;
|
||||
this.CHTML.combine(sbox,x,-v);
|
||||
},
|
||||
CHTMLplaceSupOnly: function (sup,Sbox,x,delta,u,s) {
|
||||
sup.style.verticalAlign = CHTML.Em(u);
|
||||
sup.style.paddingLeft = CHTML.Em(delta);
|
||||
sup.style.paddingRight = CHTML.Em(s); Sbox.w += s;
|
||||
this.CHTML.combine(Sbox,x+delta,u);
|
||||
},
|
||||
CHTMLplaceSubSup: function (sub,sbox,sup,Sbox,x,delta,u,v,s) {
|
||||
sub.style.paddingRight = CHTML.Em(s); sbox.w += s;
|
||||
sup.style.paddingBottom = CHTML.Em(u+v-Sbox.d-sbox.h);
|
||||
sup.style.paddingLeft = CHTML.Em(delta+(Sbox.x||0));
|
||||
sup.style.paddingRight = CHTML.Em(s); Sbox.w += s;
|
||||
sup.parentNode.style.verticalAlign = CHTML.Em(-v);
|
||||
this.CHTML.combine(sbox,x,-v);
|
||||
this.CHTML.combine(Sbox,x+delta,u);
|
||||
},
|
||||
CHTMLplacePresubOnly: function (presub,pbox,v,s) {
|
||||
presub.style.verticalAlign = CHTML.Em(-v);
|
||||
presub.style.marginLeft = CHTML.Em(s);
|
||||
this.CHTML.combine(pbox,s,-v);
|
||||
},
|
||||
CHTMLplacePresupOnly: function (presup,Pbox,delta,u,s) {
|
||||
presup.style.verticalAlign = CHTML.Em(u);
|
||||
presup.style.paddingLeft = CHTML.Em(s);
|
||||
presup.style.paddingRight = CHTML.Em(-delta);
|
||||
this.CHTML.combine(Pbox,s,u);
|
||||
},
|
||||
CHTMLplacePresubPresup: function (presub,pbox,presup,Pbox,delta,u,v,s) {
|
||||
presub.style.paddingLeft = CHTML.Em(s);
|
||||
presup.style.paddingBottom = CHTML.Em(u+v-Pbox.d-pbox.h);
|
||||
presup.style.paddingLeft = CHTML.Em(delta+s+(Pbox.x||0));
|
||||
presup.style.paddingRight = CHTML.Em(-delta);
|
||||
presup.parentNode.style.verticalAlign = CHTML.Em(-v);
|
||||
this.CHTML.combine(pbox,s,-v);
|
||||
this.CHTML.combine(Pbox,s+delta,u);
|
||||
},
|
||||
//
|
||||
// Handle stretchy bases
|
||||
//
|
||||
CHTMLstretchH: MML.mbase.CHTMLstretchH,
|
||||
CHTMLstretchV: MML.mbase.CHTMLstretchV
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML mmultiscripts Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/mmultiscripts.js");
|
||||
});
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
|
||||
/*************************************************************
|
||||
*
|
||||
* MathJax/jax/output/CommonHTML/autoload/ms.js
|
||||
*
|
||||
* Implements the CommonHTML output for <ms> elements.
|
||||
*
|
||||
* ---------------------------------------------------------------------
|
||||
*
|
||||
* Copyright (c) 2015 The MathJax Consortium
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
MathJax.Hub.Register.StartupHook("CommonHTML Jax Ready",function () {
|
||||
var VERSION = "2.6.0";
|
||||
var MML = MathJax.ElementJax.mml,
|
||||
CHTML = MathJax.OutputJax.CommonHTML;
|
||||
|
||||
MML.ms.Augment({
|
||||
toCommonHTML: function (node) {
|
||||
//
|
||||
// Create the node and handle its styles and scaling
|
||||
// Get the variant and an empty bounding box
|
||||
//
|
||||
node = this.CHTMLcreateNode(node);
|
||||
this.CHTMLhandleStyle(node);
|
||||
this.CHTMLhandleScale(node);
|
||||
this.CHTMLgetVariant();
|
||||
CHTML.BBOX.empty(this.CHTML);
|
||||
//
|
||||
// Get the quotes to use
|
||||
//
|
||||
var values = this.getValues("lquote","rquote","mathvariant");
|
||||
if (!this.hasValue("lquote") || values.lquote === '"') values.lquote = "\u201C";
|
||||
if (!this.hasValue("rquote") || values.rquote === '"') values.rquote = "\u201D";
|
||||
if (values.lquote === "\u201C" && values.mathvariant === "monospace") values.lquote = '"';
|
||||
if (values.rquote === "\u201D" && values.mathvariant === "monospace") values.rquote = '"';
|
||||
//
|
||||
// Add the left quote, the child nodes, and the right quote
|
||||
//
|
||||
var text = values.lquote+this.data.join("")+values.rquote; // FIXME: handle mglyph?
|
||||
this.CHTMLhandleText(node,text,this.CHTMLvariant);
|
||||
//
|
||||
// Finish the bbox, add any needed space and color
|
||||
//
|
||||
this.CHTML.clean();
|
||||
this.CHTMLhandleSpace(node);
|
||||
this.CHTMLhandleBBox(node);
|
||||
this.CHTMLhandleColor(node);
|
||||
//
|
||||
// Return the completed node
|
||||
//
|
||||
return node;
|
||||
}
|
||||
});
|
||||
|
||||
MathJax.Hub.Startup.signal.Post("CommonHTML ms Ready");
|
||||
MathJax.Ajax.loadComplete(CHTML.autoloadDir+"/ms.js");
|
||||
});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user