*Here is our fourth interview with interesting people in the MathJax community. This time we had the pleasure to talk to Wonseok Shin (Stanford University) about jemdoc and jemdoc+MathJax.*

*You recently extended jemdoc to create jemdoc+MathJax. Can you tell us a bit about jemdoc and your work on it?*

jemdoc is an open-source static site generator that allows you to create simple websites. It is composed of just a single Python script, so it is extremely lightweight and portable.

jemdoc was developed by Jacob Mattingley while he was a Ph.D. student at Stanford University. I guess he developed jemdoc to create his personal academic website easily. In fact, jemdoc is most commonly used to create university professors’ personal websites that introduce their research and teaching experiences. (If you google “jemdoc”, you will see a bunch of professors’ websites.) It is also being widely used to create university course websites.

In addition to being lightweight and easy to use, the ability to load LaTeX equations has been one of the reasons for jemdoc’s popularity in academia. However, the original jemdoc loads LaTeX equations as PNG images, which can be pixelated on high-resolution displays or upon magnifying the webpage.

I have modified the original jemdoc to support MathJax. The modified jemdoc is called jemdoc+MathJax. If you are already a jemdoc user, you don’t have to change anything in your *.jemdoc files. By simply replacing jemdoc with jemdoc+MathJax and processing your *.jemdoc files again, you create a new website in which all PNG equation images are replaced with beautiful MathJax-rendered equations.

*Why choose jemdoc’s markup language over other lightweight markup solutions like markdown or textile and how does jemdoc fit into this ecosystem?*

To me, it made perfect sense to implement MathJax support in jemdoc than in other markup solutions, because jemdoc is already being widely used in academia, where mathematics is the primary language to communicate ideas and therefore equation rendering is highly demanded.

For general users, the biggest difference between jemdoc and other markup solutions could be that it creates an entire website (including a navigation sidebar) rather than a single webpage. Therefore, if you want to create an entire website from scratch, jemdoc can be a better choice than other markup solutions.

Being able to generate an entire website makes it very easy to migrate from one web server to another, because you can simply move the HTML files to the new web server. Again, this is a useful feature for people in academia. For example, if you create your personal website as an undergraduate in one university and seek for more advanced degrees in another university, you can easily move your entire website from old university’s web server to new university’s by moving the HTML files.

*Can you tell us a little bit about your background?*

I did my Ph.D. degree in Electrical Engineering at Stanford University, and I am currently a postdoctoral scholar in the same university. I have developed my programming skills through my previous experience as a software engineer at a startup company, and also through my doctoral research in which I studied electromagnetic phenomena by numerical simulation (which involved a lot of programming).

Around the time I was finishing up the Ph.D. degree, I felt a need for a neat personal website to introduce my research more efficiently to my fellow researchers. I tested several static site generators, and jemdoc stood out with the built-in LaTeX equation support because I needed to use equations to describe my research. However, I was disappointed with the quality of the rendered equations in jemdoc. I knew about MathJax already, and really wanted to use it, but failed to find an existing MathJax implementation in jemdoc. So I spent some time to implement MathJax in jemdoc myself.

Originally, the MathJax support was a personal project that I intended to use only for my personal website. I uploaded the modified code at Github anyway for my own convenience. One day a complete stranger who saw my Github repository contacted me and asked if I could teach him how to use MathJax in jemdoc. That was when I realized other people’s interest in using MathJax in jemdoc. So I polished the code, added concrete examples for the additional features I implemented, and named the project jemdoc+MathJax.

*Who do you see as the primary users for jemdoc+MathJax?*

The primary users would be the previous jemdoc users. As I mentioned earlier, you don’t have to change anything in your *.jemdoc files. By simply using jemdoc+MathJax instead of jemdoc to process your *.jemdoc files, you create a new website with nicer-looking equations.

People who want to create a simple website with lots of equations, such as mathematicians, scientists, and engineers in academia, will also find jemdoc+MathJax useful, even if they haven’t used jemdoc previously.

*Mathematical markup is not naturally “lightweight”. What are your thoughts on the future of mathematical markup on the web?*

I think mathematical markup will become more popular in the future. Massive open online courses (MOOCs) such as Coursera and EdX will be major driving forces. There, students need to submit their homework solutions on the web. However, assigning math and science homework problems is currently difficult in MOOCs, because most homework problems in these subjects require equations as answers, which are hard to input on the web. With an easy-to-use mathematical markup system, testing students’ knowledge on math and science subjects in MOOCs will become much easier.

*With static site generators, hosting becomes easy but web-based authoring isn’t straight forward. Any tips for jemdoc users who want the best of both worlds?*

Unfortunately, there is no web-based authoring system for jemdoc currently. Using jemdoc requires some familiarity with UNIX-like operating systems.

However, if you have a bit of experience on UNIX-like operating systems, using jemdoc is quite straightforward. You first write down the contents of webpages in jemdoc’s Markup language, which is similar to Markdown, and store them as text files, typically with “.jemdoc” as the filename extension. (Each .jemdoc file describes a single webpage in your website.) Then you process the .jemdoc files with jemdoc to convert them to HTML files. The generated HTML files constitute your website. You can simply upload the HTML files to your web server’s dedicated folder under your account to make your website running.

Detailed usage of jemdoc can be found in jemdoc’s official website at http://jemdoc.jaboc.net. Note that the official website itself is created completely by jemdoc.

*What are your (near or long) term plans for your work on jemdoc+MathJax?*

I use jemdoc+MathJax for my personal academic website, and I don’t see a particular feature that I need immediately, partly because jemdoc itself is already a pretty mature system with many useful features. There were some lacking features such as drawing underscores in the original jemdoc, and I have already added those features in jemdoc+MathJax, whose usage are explained in detail in the example files included in the jemdoc+MathJax package.

I will respond to any bug reports and feature suggestions as much as possible. Also, jemdoc+MathJax is open-source and the source code is publicly available as a GitHub project at https://github.com/wsshin/jemdoc_mathjax. I hope other people contribute to jemdoc+MathJax, as I did to the original jemdoc, to implement useful features.

]]>The majority of page authors and developers will not have to do anything — *http://cdn.mathjax.org* continues to work as expected.

However:

The MathJax CDN now provides SSL access at `cdn.mathjax.org`

.

**NOTE: The direct Rackspace address will be retired on July 31, 2014.**

If you have been using the address

https://c328740.ssl.cf1.rackcdn.com/…

you should switch to

https://cdn.mathjax.org/…

See the MathJax documentation for more information.

]]>Founded in 1899, the APS has long been furthering innovation in academic communication. As an influential supporter of SGML-based math notation in the 1990s and an early adopter of MathML, APS continues to push for innovation in electronic commmunication of math and science. APS is the largest society of professional physicists in the US and involved in several activities to advance and diffuse the knowledge of physics, including a strong publication program with landmark titles such as Physical Review Letters, the Physical Review journals, and Reviews of Modern Physics.

“APS will be launching full text HTML for our math-intensive journal content later this summer.” says Mark Doyle, Director of Journal Information Systems at APS. “MathJax is one of the key components we will be using and its maturity is now at the point where we can provide the high quality experience our readers expect.”

“As one of the original MathJax sponsors, APS has been providing both support and important feedback for our development at MathJax”, comments Peter Krautzberger, MathJax manager. “Thanks to the dedicated of sponsors such as APS, MathJax is able to deliver a reliable, high-quality solution for science and math on the web.”

We look forward to continuing the collaboration with APS, and welcome their ongoing support for the MathJax project.

]]>Cambridge University Press dates from 1534 and is part of the University of Cambridge. Following the University’s mission, CUP works to disseminate knowledge in the pursuit of education, learning and research at the highest international levels of excellence. The publishing program of CUP comprises of over 45,000 titles by authors from over 100 countries. Cambridge Journals employs MathJax to deliver high-quality, accessible mathematics in over 300 peer-reviewed journals.

“Cambridge is providing more and more of its content digitally and MathJax helps us ensure that our key titles in Mathematics are well displayed.” said Chris Fell, Digital Publishing Director at Cambridge University Press.

“As a MathJax sponsor, CUP provides the MathJax team with important support and feedback for our development,” comments Peter Krautzberger, MathJax manager. “Thanks to dedicated sponsors like CUP, we can keep MathJax the high-quality, reliable, and flexible rendering solution it is today.”

We look forward to continuing the collaboration with CUP, and welcome their ongoing support for the MathJax project.

]]>Founded in 1916, OSA is a leading scientific society in optics and photonics and home to thousands of accomplished academic, industry, and business leaders. Uniting220,000 scientists and professionals in 175 countries, OSA promotes research, real-world applications and achievements in the field. As part of its publishing program, OSA delivers high-quality, peer-reviewed content in a state-of-the-art and web-standards-compliant way, incorporating full-text HTML in all of its journals.

“As a long-term MathJax sponsor, OSA is providing important support and feedback for our development,” comments Peter Krautzberger, MathJax manager. “Thanks to the dedication of sponsors such as OSA, we can keep MathJax the reliable, high-quality rendering solution it is today.”

Scott Dineen, senior director of OSA’s journal production operations, adds that “OSA relies on MathJax for accurate display of the MathML equations in our online journals. We’re pleased to be a MathJax supporter and excited to be involved with the ongoing development of this valuable tool.”

The MathJax team looks forward to continuing the collaboration with OSA and welcomes their ongoing support for the MathJax project.

]]>MathJax v2.4 is available on the CDN, and for download from GitHub; see the documentation for details.

Version 2.4 is available on the CDN at

and **starting today** the files at the

address will be switched over the v2.4; it might take a few hours for the changes to propagate out to the distributed cloud servers.

During the time that the files are making their way out to the CDN’s servers, there may be a mixture of files in a browser cache, and so users may need to clear their cache and restart their browser in order to get a consistent version of the files.

If you are a page author and concerned about this, you can change (temporarily) to the `mathjax/2.4-latest`

URL instead of `mathjax/latest`

since that is a new address that will not have any cached older versions to worry about. You can switch back to `mathjax/latest`

in a few days when the new version has migrated to all the locations in the cloud.

See http://docs.mathjax.org/en/v2.4-latest/whats-new-2.4.html for details about the changes in v2.4. We anticipate a smooth upgrade from v2.3 to v2.4, but as always, let us know on the bug tracker if you experience problems with this new version of MathJax.

Thank you for your continued support.

The MathJax Team.

MathJax v2.4 is primarily a bug fix release. Numerous display bugs, line-breaking problems, and interface issues have been resolved; for a detailed listing please check the the documentation. The following are some of the highlights.

- #256 Enable Content Security Policy compatibility.

- #240 prevent two identical uses of
`\tag`

to cause identical element id. - #814 add TeX/Asciimath as annotation-xml to MathML output.

- #617 add linebreaking support for
`mmultiscript`

elements. - #687 improve forced line breaking alignment.
- #707 fix ignored line breaks between two
`mtext`

elements.

- #391 fix linebreaking within fractions in SVG output.
- #423, #460, #749 Zoom improvements
- #470 fix AMScd rendering in native MathML output.
- #699 fix table column spacing in NativeMathML output on Firefox.
- #770 add support for dotted borders to SVG output.

- #367 prevent
`\mmltoken`

from creating`annotation`

elements. - #377 improve
` `

handling. - #389 fix operating spacing in
`\split`

and`\multiline`

environments. - #477, #459 add
`\textsf`

and`\texttt`

macros and enable`mtextInheritFont`

for them. - #547 fix misalignment in nested fractions in HTML-CSS and SVG output.
- #624 fix AMScd on IE6–7.
- #632 fix
`\Big`

not accepting delimiters in braces - #667 fix loop in
`bbox`

. - #691 enable multiple
`\label`

in multiline environments like`align`

,`eqnarray`

, and`gather`

. - #739 fix
`\operatorname*`

and`\DeclareMathOperator*`

. - #793 allow unmatched groups in
`\begin`

\end` substitutions. - #794 fix spacing for
`\bmod`

.

- #353 add option for TeX-like
`\phi`

and`\varphii`

behavior. - #743 add
`mmlSpacing`

option and set to true. - #747 fix processing error with invisible grouping.

- #561 implement
`menclose`

notation`phaseorangle`

. - #691, #692 improve Content MathML extension
- #328 remove
`_moz-*`

-attributes and improve MathML processing in Firefox. - #460 fix default value of
`mo@symmetric`

. - #478 make
`mfenced`

element equivalent to its expanded form - #578 fix quote attributes for
`ms`

elements. - #684 fix handling of double primes in superscripts.

- #576 improve font matching.
- #681 fix MathJax font test breaking responsive layout.
- #711 detect new webfonts when locally installed.
- #501 add workaround for broken Fedora STIX fonts configuration.

- #753 update locales from translatewiki.net; add Vietnamese, Asturia, Polish, Catalan, Czech, Kannada locales.
- #777 fix menu orientation for RTL languages.

Elsevier is a world-leading provider of information solutions for science, health, and technology professionals. Elsevier provides web-based, digital solutions — among them ScienceDirect, Scopus, Elsevier Research Intelligence, and ClinicalKey — and publishes nearly 2,200 journals, including The Lancet and Cell, and over 25,000 book titles, including a number of iconic reference works. Through the Article of the Future program, Elsevier is advancing the format of the scientific article in very domain-specific ways to adapt to the needs of researchers in the digital age. By incorporating MathJax on ScienceDirect, Elsevier enables highest quality rendering of mathematical and scientific content on one of the largest publishing platforms.

Christopher Greenwell, Publishing Director Mathematical Sciences, comments: “Elsevier is delighted to continue supporting MathJax as part of our ongoing commitment to providing the mathematical sciences community with high-quality products and services. Employing MathJax is one of the ways in which we are continuously improving the online article presentation on ScienceDirect with the aim of offering a superior online reading experience by enriching usability and quality of content.”

“Elsevier has supported MathJax since the inception of the MathJax sponsorship program.”, said Peter Krautzberger, MathJax manager. “Thanks to this continued support we can improve MathJax long-term, working towards making mathematical and scientific content a first class citizen on the web.”

We look forward to continuing the collaboration with Elsevier and welcome their ongoing support for the MathJax project.

]]>Moritz Schubotz announced the official release of v2.0 of the Math extension for MediaWiki. New features include SVG and MathML generation, mathoid and LaTeXML integration, display style math support, id’s in math, as well as experimental MathML and Asciimath input.

The biggest news for LaTeX users who want to produce HTML is certainly that LaTeXML has finally, officially, irrevocably reached version 0.8.

Antenna House has released a MathML add on to AH Formatter v6.

Mozilla intern Jonathan Wei gave a talk on *air mozilla* about the state of Gecko/Firefox MathML accessibility support.

Letsfeedback has updated their MathJax integration to include live preview functionality.

Xcas Pad, the Android and iOS ports of the Xcas/Giac computer algebra system, are now open source, hosted on github.

Steven Waldrip let us know that he published two new, free Truss apps, Auto Truss — Hand Calcs and 3D Truss — Hand Analysis, which help solve statically determinate or indeterminate truss on a two dimensional plane.

Gitbook, the NodeJS app for building beautiful books using Git and Markdown, now comes with a default MathJax plugin. Also check out this great example for Gitbook with R Markdown.

Wonseok Shin has integrated MathJax into jemdoc, the lightweight markup language / Python static-site generater developed by Jacob Mattingley.

The lightweight markup language developed by KARAS (translation) adds some interesting ideas to the markup mix — and its JavaScript implemention comes with a MathJax plugin.

WYSIWYG form builder JotForm now provides a MathJax plugin so that you can include mathematical content in a form.

At the DataCamp blog, Dieter de Mesmaeker wrote a short post about combinging Angular.js with MathJax. You can also find good resources on Angular and MathJax over on Stackoverflow, e.g. this answer.

ilovefreesoftware has a nice overview over equation editors in the Chrome extension store.

Last but not least, here are some sweet examples of sites and apps leveraging MathJax.

- Puzzlet is a new platform for browser-based scientific computing, using their own flavor of CoffeeScript. For some MathJax examples, see this block diagram or the blab about SVG integration.
- praczone wants to help people learn math interactively. It provides a clean interface to organize lessons and exercises, neatly organized and easily edited.
- fisicalab provides a wealth of physics resources in Spanish, beautifully presented.
- Numerical.pk offers a educational resources for Pakistani students
- Michal Pešta has a great example of using Knitr to write on Survival data analysis.
- Ex Libris provides some great content examples such as this piece on the Fast Fourier Transform
- The book of proof collects mathematical proofs, written, vetted, and ranked by its users.
- At Mathématique du secondaire, Xavier Hubaut, emeritus of Université Libre de Bruxelles, collects wonderful short articles on mathematical concepts.
- Mathster offers a comprehensive mathematics assessment package for schools and teachers using the UK maths curriculum.

The beta is available via our CDN at beta.mathjax.org/mathjax/latest/MathJax.js which you can load it in place of the version you are currently using; **note** this address can be accessed as via both *http* and *https*.

Alternatively, you can get a ZIP archive to use locally or you can check out the `v2.4-beta`

branch of MathJax by using the commands

```
git clone git://github.com/mathjax/MathJax.git MathJax-2.4-beta
cd MathJax-2.4-beta
git checkout v2.4-beta
```

at an appropriate location on your server.

**Remember that this is still beta software**, so if you are not an experienced user, you may want to wait for the official 2.4 release. We do not recommend that you use the 2.4-beta version for production environments, but do encourage you to test your sites with it.

If you are linking to http://cdn.mathjax.org/mathjax/latest/MathJax.js, note that at the point of the official release of v2.4, the address will begin to serve MathJax v2.4. You can also continue to use v2.3 by linking to http://cdn.mathjax.org/mathjax/2.3-latest/MathJax.js instead — and you can change to that version at any point (it is available now). Once the official v2.4 release is made, the v2.4-beta address will be removed from the CDN.

The official release of v2.4 should occur within the next three weeks, but we want you to be able to start to test out the v2.4 features now. Please report any bugs you find to the issue tracker at https://github.com/mathjax/MathJax/issues.

Thanks for your continuing interest in MathJax. We hope that this release makes your MathJax experience even better.

The MathJax Team.

MathJax v2.4 is primarily a bug fix release. Numerous display bugs, line-breaking problems, and interface issues have been resolved; for a detailed listing please check the release milestone. The following are some of the highlights.

- #256 Enable Content Security Policy compatibility.

- #240 prevent two identical uses of
`\tag`

to cause identical element id. - #348 fix
`Show Math as`

window crashing in IE8. - #559 remove user cookie configuration.
- #623 fix localization on IE6–8.
- #685 fix MathMenu and MathZoom extensions loading when
`showMathMenu`

set to false. - #734 compress menu PNGs.

- #617 add linebreaking support for
`mmultiscript`

elements. - #687 fix forced line breaking aligning badly.
- #707 fix ignored line breaks between two
`mtext`

elements.

- #387 fix missing styling for
`merror`

in SVG output. - #391 fix linebreaking within fractions in SVG output.
- #423, #460, #749 Zoom improvements: fix zoom box overflow in mobile Safari, fix zoom box for widths in
`px`

, fix zoom box overlay in Chrome. - #470 fix AMScd rendering in native MathML output.
- #473 override
`text-ident`

of enclosing paragraph. - #476 improve big \Up/Downarrows.
- #580 prevent CSS from overriding MathJax’s em/ex detection.
- #619 fix: vertical stretching arrows in table cells can cause extra space between rows.
- #699 fix table column spacing in NativeMathML output on Firefox.
- #701 fix clipping of stretched delimiters in HTML-CSS output.
- #703 fix math axis not scaled in script sizes.
- #715 fix hat
`^`

too large with local STIX fonts in HTML-CSS. - #744 improve root symbol rendering in ever-changing but always buggy Chrome.
- #770 add support for dotted borders to SVG output.

- #367 prevent
`\mmltoken`

from creating`annotation`

elements. - #377 improve
` `

handling. - #389 fix operating spacing in
`\split`

and`\multiline`

environments. - #477, #459 add
`\textsf`

and`\texttt`

macros and enable`mtextInheritFont`

for them. - #547 fix misalignment in nested fractions in HTML-CSS and SVG output.
- #624 fix AMScd on IE6–7.
- #632 fix
`\Big`

not accepting delimiters in braces - #667 fix loop in
`bbox`

. - #691 enable multiple
`\label`

in multiline environments like`align`

,`eqnarray`

, and`gather`

. - #719 empty array lines should get correct height.
- #739 fix
`\operatorname*`

and`\DeclareMathOperator*`

. - #746 fix spacing for
`\left ... \right`

. - #793 allow unmatched groups in
`\begin`

\end` substitutions. - #794 fix spacing for
`\bmod`

.

- #353 add option for TeX-like
`\phi`

and`\varphii`

behavior. - #743 add
`mmlSpacing`

option and set to true. - #747 fix processing error with invisible grouping.

- #328 remove
`_moz-*`

-attributes and improve MathML processing in Firefox. - #460 fix default value of
`mo@symmetric`

. - #478 make
`mfenced`

element equivalent to its expanded form - #561 implement
`menclose`

notation`phaseorangle`

. - #578 fix quote attributes for
`ms`

elements. - #614 handle nested
`math`

elements better. - #684 fix handling of double primes in superscripts.
- #691, #692, update Content MathML extension: fix IE11, plus with leading negative number.
- #763 fix
`mglyph`

elements rendering too small.

- #501 add workaround for broken Fedora STIX fonts configuration.
- #517 reset min/max width for MathJax font test.
- #576 improve font matching.
- #615 check validity of font names.
- #681 fix MathJax font test breaking responsive layout.
- #711 detect new webfonts when locally installed.
- #697 fix bold-italic for new webfonts.

- #753 update locales from translatewiki.net; add Vietnamese, Asturia, Polish, Catalan, Czech, Kannada locales.
- #777 fix menu orientation for RTL languages.

- #586 add all input processors to
`default.js`

. - #658 fix IE 11 recognized as Firefox.
- #730 ignore rendering targets that have been removed from document.
- #735 work around webfont bug in Chrome 32+.
- #738 improve workaround for fixed position bug in old IE versions.
- #737 add third-party path variable (for centralized custom extension hosting).

Stack Exchange provides an ever-growing network of online communities, each dedicated to serving experts in a specific field. Among the 118 Stack Exchange sites, 26 integrate MathJax support to provide easy authoring and flawless rendering of mathematical content, including Mathematics Stack Exchange, Physics Stack Exchange and Math Educators Stack Exchange.

“MathJax continues to be an essential part of our math, tech, and science communities,” said David Fullerton, Vice President of Engineering. “We’ve been excited in the last year to work even more closely with the MathJax team to provide feedback and improve the MathJax engine. We look forward to continuing this partnership into the next year.”

MathJax development greatly benefits from Stack Exchange’s assistance with pre-release testing and we’re grateful to get rich feedback from their technical team as well as the community to ensure that MathJax flexible, open and robust.

We look forward to continuing the collaboration with Stack Exchange, and welcome their ongoing support for the MathJax project.

]]>