1//===============================================================================
2//
3// load-mathjax.js
4//
5// Script for configuring and loading MathJax in my web pages. See instructions
6// for "Configuring and Loading in One Script",
7//
8// https://docs.mathjax.org/en/latest/web/configuration.html
9//
10// and for hosting your own copy of MathJax on your server,
11//
12// https://docs.mathjax.org/en/latest/web/hosting.html
13//
14// Put this command in the <head> section of your html before loading the style sheet:
15//
16// <script src="../Scripts/load-mathjax.js" async></script>
17//
18//===============================================================================
19
20// Configure MathJax before you load it.
21window.MathJax =
22{
23 // Set both the default math delimiters \(...\) and the ones I prefer: $ and $$.
24 tex:
25 {
26 inlineMath: [['$', '$'], ['\\(', '\\)']]
27 },
28
29 // Make the font larger. This did not work for me, so I hacked a solution in my StyleSheet.css.
30 "HTML-CSS":
31 {
32 scale: 130,
33 minScaleAdjust: 120,
34 },
35
36 svg:
37 {
38 fontCache: 'global'
39 },
40} ;
41
42// Next, load MathJax.
43// -On my development machines and on my web server, load a local copy of MathJax.
44// -Otherwise load from the MathJax CDN server.
45(function() // Define a function and call it immediately.
46{
47 // Create a <script>...</script> html object.
48 var script = document.createElement( 'script' ) ;
49
50 // The file:/// protocol says the web site is hosted on the current machine's file system.
51 if (window.location.protocol.match( /file:/ ))
52 {
53 // Hosted on my macOS development computer.
54 if (window.location.pathname.match( /Users\/seanoconnor/ ))
55 {
56 // Use a local copy of MathJax. I downloaded MathJax as follows:
57 // cd WebSite
58 // git clone https://github.com/mathjax/MathJax.git mathjax
59 // cd mathjax
60 // git fetch --all --tag --prune
61 // git remote -vv
62 // origin https://github.com/mathjax/MathJax.git (fetch)
63 // origin https://github.com/mathjax/MathJax.git (push)
64 //
65 // You should be in the master branch by default,
66 // git branch
67 // * master
68 //
69 // Pull to get the latest updates
70 // git pull
71 //
72 // You can see which tags are available using
73 // git tag
74 // ...
75 // 3.1.4
76 // 3.2.0
77 //
78 // For local testing of MathJax versions, you can fetch a particular version,
79 // git checkout tags/3.2.0 -b v3.2.0
80 // git branch
81 // master
82 // v3.1.4
83 // * v3.2.0
84 //
85 // NOTE:
86 // If you want to host MathJax files on your own server, you only need to upload the mathjax/es5 directory.
87 //
88 script.src="/Users/seanoconnor/Desktop/Sean/WebSite/mathjax/es5/tex-chtml.js";
89
90 // In Firefox, open Tools->Web Developer->Web Console to see this message:
91 console.log( "Mac OS: Loading MathJax from local directory location " + script.src ) ;
92 }
93 // Hosted on my Ubuntu Linux development computer.
94 else if (window.location.pathname.match( /home\/seanoconnor/ ))
95 {
96 script.src="/home/seanoconnor/Desktop/Sean/WebSite/mathjax/es5/tex-chtml.js";
97
98 // In Firefox, open Tools->Web Developer->Web Console to see this message:
99 console.log( "Ubuntu Linux: Loading MathJax from local directory location " + script.src ) ;
100 }
101 // Can't figure it out? Load from CDN MathJax server.
102 else
103 {
104 // This recommended URL will load the latest version 3.x.x from the default CDN MathJax server.
105 script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js' ;
106 console.log( "Unknown Computer: Loading MathJax from CDN server location " + script.src ) ;
107 }
108 }
109 // Hosted on my web server.
110 else if (window.location.hostname.match( /seanerikoconnor.freeservers.com/ ))
111 {
112 // Load from a local copy of MathJax on my web server.
113 script.src="/mathjax/es5/tex-chtml.js";
114 console.log( "Freeservers Web Host: Loading MathJax from local directory location " + script.src ) ;
115 }
116 // Hosted on some other web server.
117 else
118 {
119 // This recommended URL will load the latest version 3.x.x from the default CDN MathJax server.
120 script.src = 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js' ;
121 console.log( "Unknown Web Host: Loading MathJax from CDN server location " + script.src ) ;
122 }
123
124 script.async = true ;
125
126 // Place the generated MathJax configuration and loading script into the html
127 // file in the <head>...</head> section.
128 document.head.appendChild( script ) ;
129
130})();