因为微信公众号不支持引入外部 CSS和JS脚本,所以不能引入MathJax或KaTeX来支持数学公式显示。目前只能通过插入公式图片(webp、png等格式)的方式来显示公式。一般情况下插入webp或png格式的图片,显示效果还可以。
存在的问题主要有:
文章中公式较多时首次加载慢,出现文章下来文字已经显示出来,公式图片还在加载中;
文章的字号改变后公式不能随之缩放;
单纯放大文章页面公式图片出现锯齿模糊的情况,使用尺寸更大的图片会改善锯齿情况,但这样造成加载速度变慢。
这时候矢量格式的 svg就成为首选了。之前也有人留言询问本公众号如何排版数学公式,但步骤多又需要一定编程基础不易使用。
现在 Markdown Nice(https://mdnice.com/)的最新版本已经实现了这个功能。现在可以很方便在微信公众号里展示数学公式了。Markdown Nice 排版功能很多,这里只说下数学公式的排版。
在左边的编辑框写入 markdown 的内容,编辑器的数学公式部分是基于 MathJax 3 开发的,数学公式采用 LaTeX 语法( MathJax 兼容的那部分):
行内公式:将公式插入到本行内,符号:$公式内容$,如:$xyz$
行间公式:将公式插入到新的一行内,并且居中,符号:$公式内容$,如:$xyz$
编辑器是实时渲染的,在右边可以实时看到效果。编辑完文章后点击上方工具栏的蓝色复制按钮,等出现如下图提示
就可以直接在微信公众号后台编辑器直接 Ctrl+v粘贴内容了。
如果对 LaTeX 语法不熟悉,可参考知乎问题:知乎上的公式是怎么打出来的?https://www.zhihu.com/question/31298277。为了优化微信公众号显示,LaTeX 公式书写建议:
\tag{xxx} 改为 \qquad (xxx)(避免公式被缩小);
长的行内公式改为行间公式(优化断行),并适当换行。不要直接使用 \\ 来换行,要使用 aligned 等对其环境。(避免公式被缩小);
公式中的 <后要加一个空格,即$a<b$改成$a< b$(不修改公式无法正常显示)。
需要注意的是:嵌入 svg 的文章在公众号后台二次编辑的时候很容易造成公式丢失。
传播数学,普及大众
欢迎把我们推荐给你身边的朋友