当self_contained = TRUE时,如何在bookdown :: gitbook中正确地呈现数学方程式?

问题描述

我正在编写一个包含多个Rmd文件的GitBook样式的书本文档,在其中我使用选项self_contained = TRUE来制作独立的HTML页面(以便以后我可以将它们作为HTML文件而不是多个HTML文件分发HTML页面的文件与上面显示的图片分开)。当我尝试使用$ $标签放置数学方程式时,我得到了类似[WARNING] Could not convert TeX math '\frac{1}{\sum_{i=1}^{S} p_{i}^2}',rendering as TeX的东西,这些方程式没有正确呈现。

我从here看到self_contained = TRUE时MathJax可能无法工作,而从here看到了MathJax才能用HTML呈现数学。确实,我总是收到像MathJax doesn't work with self_contained when not using the rmarkdown "default" template这样的警告,如果我使用self_contained = FALSE,则方程式正确呈现。

因此,我想知道在self_contained = TRUE期间是否可以在GitBook样式的书本文档中正确呈现数学。

解决方法

我遇到了同样的问题,并找到了部分解决方案。在yaml标头后面的index.Rmd中,我包括了这个块:

<script>
(function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    var src = "true";
    if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
    if (location.protocol !== "file:") if (/^https?:/.test(src)) src = src.replace(/^https?:/,"");
    script.src = src;
    document.getElementsByTagName("head")[0].appendChild(script);
})();

</script>

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
        inlineMath: [['$','$']],displayMath: [['$$','$$']],}
});
</script>

现在,html输出显示方程式,但有两个警告:

  1. 显示方程式(带有$$。$$)可以正常工作,但是某些内联方程式($。$)表现出不同的样式:就我而言,警告中显示了一些方程式(“转换TeX数学”),然后看起来正常。其余的嵌入式方程式外观略有不同。

  2. 在Firefox和Safari上,方程式可以正确显示,但不幸的是,在Chrome上,方程式无法正确显示(我没有尝试使用其他浏览器)。

希望能有所帮助!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...