记用hexo渲染Latex公式遇到的问题
一个问题
最近发现我hexo上公式好像没有渲染成功,换了各种引擎渲染依旧没有解决问题,看了一些教程,记录一下遇到的问题。
流程
网上大部分帖子是拿next主题讲的,所以一开始完全照做了。
1.卸载hexo-math和hexo-renderer-marked
2.安装hexo-renderer-pandoc
3.修改theme里面的config配置
4.本地安装pandoc
也遇到了一个报错pandoc exited with code 9: pandoc: Unknown extension: smart
查了一下是因为Anaconda\Scripts目录下还有pandoc,而hexo默认使用Anaconda的pandoc,此pandoc版本过低。
更换了exe文件之后不报错了。
但是换了pandoc之后遇到的问题就是,$$并没有成功渲染,反而把所有的$渲染成了\(
查了一些资料,其实一开始$和\(都可以用作公式的渲染,所以我怀疑是中间的转义出了什么问题,但是检查了一下并没发现有问题。
后来发现可能是我使用的Analoto主题和Next还是不太一样,在询问了主题作者的情况下,发现模板并没有使用math,所以之前修改config的时候我也发现好像没有集成math模块,因此修改可能是无效的,也有可能我中间哪一步做错了,导致出现了bug。
后来尝试在主题中手动添加js安装mathjax,好像并没有什么效果,也可能是那个时候没有卸载掉前面安装的包,导致渲染结果的一直不正确。
最后参考了一个博主写的方法
替换默认的渲染器,这块还是一样的,不过使用的包不一样了。
1 | npm un hexo-renderer-marked --save |
然后引入katex的样式文件,然后需要引入katex的样式文件,这里要注意官方的文档里用的还是0.9.0的老版本同样不支持换行,所以需要改成0.10.2的版本,这里使用字节的cdn,将其放入主题文件夹下的layout\_partials\head中。
1 | <link href="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/KaTeX/0.10.2/katex.min.css" rel="stylesheet"> |
最后记得要把前面安装的没成功的东西卸载了,要不然渲染的还是错的。
测试 落泪了T T
总结
其实我的博客里面有很多东西都没搭好,一方面是因为我懒,另一方面是我选Anatolo是因为它很简洁好看,但是一些功能可能就没有别的主题集成的那么好了,之后再慢慢加吧。感觉目前为止遇到的一些bug都可以通过查别人的技术帖解决的,不过还是要就帖论帖,直接无脑搬用大概率还是会出bug。