Hexo数学公式显示问题
前言
周末在搬迁Hexo博客并且修复之前博客的bug,外加继续装修博客。整了一个周末终于弄好了。
总结一下遇到的最让我无语而且耗时最长的问题吧。
Latex数学公式+公式无法换行。首先呢这是两个问题,要先让hexo支持数学公式,再来才是不能换行的问题。自己找了许许多多的教程,先后折磨了快半天,才找到了较为完美的解决方案。可能是关于这方面的教程大多都太老了,版本迭代后不太适用吧。
关于Hexo和主题
这个问题实际与主题无关。最开始我一直纠结于主题不同解决方法是不是不一样,最后解决了发现不是。
我用的是hexo和butterfly截止目前的最新版本:
hexo:6.3.0
butterfly:4.4.0
让Hexo支持数学公式
这部分我跟着这篇文章搞的:Hexo如何显示latex公式_gorray的博客-CSDN博客_hexo latex公式
其实要做的步骤很少:
1.首先卸载hexo-math和hexo-renderer-marked。然而hexo应该是没有自带hexo-math的,所以只需要卸载第二个就行。以防万一还是可以直接执行:
1 | npm un hexo-math |
2.安装hexo-renderer-pandoc渲染器
1 | npm i hexo-renderer-pandoc |
好,到此为止,需要的包就迭代好了。
3.然后是配置主题配置下的mathjax设置。我用的是butterfly,那么对应路径是: _config.yml
1 | # MathJax |
Pandoc报错
理论上到这一步就可以用了对吧,一般的教程也都这样。就算再外加一步,我学习的那篇文章里提到,接下来还应该去Pandoc官网下载最新版本pandoc:Pandoc - About pandoc
关于pandoc下载安装教程随便查一下就有,这里就不说明了。然后再在环境配置配置了pandoc路径,直到你可以在cmd输入以下命令查看它的版本:
1 | pandoc -v |
我的输出:
1 | pandoc 2.19.2 |
有的朋友可能到这一步就发现不对了,不要慌,接下来才是重点。
一个莫名其妙的错误
先回到hexo目录,执行hexo -s,如果你没有出现这个报错:
\(\color{red}{pandoc~exited ~with ~code ~9: pandoc: Unknown~extension:~smart}\)
那么恭喜你,你的这个问题并不存在,可以选择跳过。但是如果你和我 一样报这个错误,可能就开始头疼了。不过我终于还是找到了解决方法。
首先我是找到了这篇文章:配置hexo时遇到的问题 - diralpo - 博客园 (cnblogs.com)
从这篇文章得知,导致该报错的原因是pandoc版本过低 ,而且还不是一般原因引起的版本过低,因为前面我们已经安装了最新版本的pandoc。但是最新版本的没起作用。于是我打开了everything查找电脑上存在的pandoc。然后发现位于Anaconda,真正问题也出在这儿。
是因为Anaconda安装的pandoc版本过低,而且hexo默认使用的是Anaconda的pandoc。
不信的话你去找找,那个pandoc居然是2017年的。在某一篇文章得知,pandoc版本应该在2.0以上,但那个pandoc好像是1.9。那接下来的就简单了,直接把新下载的pandoc.exe替换Anaconda里的pandoc.exe。
然后你在回去hexo -s,就没问题了。
换行问题
其实做到上一步,换行问题也已经随之解决了。不过这里还是提一下关于这个换行。
首先,想直接通过 ,end这种写法是做不到换行的,我最开始就是纠结于这个,然而这写法本来也不规范,例如:A B 是不能达到换行的。但是在加上规范的begin和end就可以了。其次,换行公式应该写成行间公式而非行内公式。
1 | $A \\ B$ 错误写法 |
\[ \begin{split} A\\B \end{split} \]
这篇文章是我做的hexo公式测试:Latex公式测试 | issey的博客
如果不是网速加载问题,那么显示应该是: