使用了这个插件: https://github.com/zyuzhi/MarkdownKatex-typecho ,下载了 v1.0.1,但是点击创建文章之后无法返回所有文章页面。另外博客首页也无法加载,禁用插件即恢复正常。懒的去追究原因了,索性不用插件改用其他方法。

我家里的一台机器也部署了 typecho,同样都是 docker compose 部署的,和当前 typecho 实例的区别大概就是 v1.2.0 vs v1.2.1 。家里机器上的 typecho 是 1.2.0,当前实例是 1.2.1,有可能是版本升级导致的原有插件失效,因为上述插件 GitHub 源代码是2018年左右最终打包到 release 发行的。

在 typecho v1.2.1 实例上测试如下方法可以为 typecho 博客添加 latex 支持。

方法参考: https://www.xrgzs.top/posts/typecho-use-mathjax-add-latex-support

修改当前主题的 footer.php

将以下代码添加到 footer.php </body> 关闭标签之前。我这个主题这个文件在 components/footer.php。我上面参考的博客将这段脚本引用放在了 index.php,可能会引起 DOM 渲染紊乱,比如图片被拉长,主页 footer 在页面中间渲染。放在 footer.php</body> 前,此时 DOM 已解析完成,图片布局已稳定,脚本加载不再影响初始渲染

<script async type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

修改当前主题的 header.php

将以下代码添加到 header.php 的适当位置。我这个主题这个文件在 components/header.php

<script async type="text/javascript"
    src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX", "output/HTML-CSS"],
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
      processEscapes: true
    },
    "HTML-CSS": { availableFonts: ["TeX"] }
    });
</script>

mardown + latex 测试

牛顿第二定律

物体所受合外力 $\mathbf{F}$ 与其加速度 $\mathbf{a}$ 满足:

$$ \mathbf{F} = m\mathbf{a} = \frac{d\mathbf{p}}{dt} $$

其中:

  • $m$ 为物体质量(单位:$\mathrm{kg}$)
  • $\mathbf{p} = m\mathbf{v}$ 为动量(单位:$\mathrm{kg \cdot m/s}$)
  • $t$ 为时间(单位:$\mathrm{s}$)

万有引力公式

两个质点间的引力大小:

$$ F = G\frac{m_1 m_2}{r^2} $$

式中普适常量: $G \approx 6.674 \times 10^{-11}\, \mathrm{m^3 \cdot kg^{-1} \cdot s^{-2}}$