Merck / simtrial

Clinical trial simulation for time-to-event endpoints
https://merck.github.io/simtrial/
GNU General Public License v3.0
16 stars 8 forks source link

Use KaTeX for pkgdown math rendering #263

Closed nanxstats closed 1 month ago

nanxstats commented 1 month ago

What's in this PR

This PR brings back beautiful math rendering to the pkgdown vignettes by switching the math rendering engine to KaTeX supported in pkgdown 2.1.0.

Before and after

This is what an example vignette section looks like before, current, and after this patch.

pkgdown 2.0.9 (old default, MathJax)

Click to expand screenshot mathjax

pkgdown 2.1.0 (new default, MathML)

Click to expand screenshot mathml

pkgdown 2.1.0 + KaTeX

Click to expand screenshot katex

Method

To make this work, I shipped the KaTeX math fonts using the pkgdown customization mechanism pkgdown/extra.css and pkgdown/assets/fonts/. This is because pkgdown 2.1.0 did not bundle them (not sure why) and the default math font rendering is subpar.

Alternative paths

Apparently, MathML doesn't render very well for our formulas. Although we can choose the old default MathJaX, the font bundling situation is a bit more challenging to fix using the same customization approach as the fonts were defining in JS (I successfully converted them to CSS). Considering that KaTeX is faster and simpler, I think it's the optimal choice.

xref: https://github.com/keaven/gsDesign/pull/161, https://github.com/Merck/gsDesign2/pull/437