rmarkdown 和 pkgdown 的 HTML 输出默认使用 MathJax 的 HTML-CSS 输出模式渲染数学公式。
这种模式对旧版本浏览器的兼容性较好,但是在我的机器上对于很多公式的输出效果都很差,以至于到了影响阅读的程度(想象一个长根号是用许多短横线拼接起来的,多个上标的位置存在偏移发生重叠……)。根本原因可能是和本地安装了 TeXLive (MacTeX) 而优先使用了本地字体有关。在公式上右键,选择 About MathJax,会显示 "using local STIX fonts"(渲染效果不正常),而在没有检测到系统字体时会显示 "using web TeX fonts"(渲染效果正常)。特别是在 Google Chrome 下存在这个问题,而在 Safari 下即使使用本地字体效果也是正常的。
所以我想通过切换成完全使用 web fonts 而效果更佳的 CommonHTML 输出模式解决这个问题。我简单尝试了一下在 body 中或 head 中加入 MathJax 的全局设定:
MathJax.Hub.Config({ jax: ["input/TeX", "output/CommonHTML"] });
但是好像并没有效果。
对于 rmarkdown::html_document()
输出,换一个渲染引擎,例如使用 math_method: "katex"
即可解决。但是 pkgdown 会在生成页面时✨去掉所有文档输出选项✨ ,最终的输出还是会被 MathJax 绑定,所以想求一个对输出类型通用的运行时解决方案。