资讯专栏INFORMATION COLUMN

使用Markdown输出LaTex数学公式

Pink / 3434人阅读

摘要:如果我们需要输出的数学公式比较复杂,或者我们需要凸出并独立显示公式,这个时候我们就需要使用到公式的块状输出,块状输出的语法使用个美元符号数学公式,我们来看案例。

现在大数据、人工智能、数据分析等很多技术岗位都对数学有一定的要求,数学越来越重要,很多人也开始尝试学习数学,脑子里突然就有了结合Python编程来学习数学的想法。在网络上搜索了很多相关资料,看到非常多不错的尝试,但是国内在这方面的资料却比较少,于是就想到开一个技术专栏。

实践出一整套便于互联网传播分享的数学公式跨平台编辑、跨环境显示是非常有必要的,如果还是停留在Word或PDF时代,那数学就会被限制在文档或图片里而无法通过最流行的网页方式进行传播,而且Word、PDF等文件处理软件里的数学公式编辑既麻烦,而且最重要的是与编程脱节。

数学公式的编辑与显示

要将学习心得(尤其是数学公式等)写成文档在知乎、简书、微信公众号以及网站的网页上面展示出来,使用Markdown以及LaTex Math的结合我认为是最佳的方法。

与LaTex文档的比较
虽然很多数学学术论文整个文档就像使用Markdown一样是直接使用的LaTex语法来编辑的,但是仔细比对之后发现直接用LaTex语法来写整个文档来,它的效果和Markdown + LaTex Math 方式没有太大的区别。
但是LaTex的语法、编辑器、配置、中文支持等都要比Markdown要复杂的多,而且也不及Markdown已经非常成熟的生态(包括工具链、社区等)。

编辑器与插件
Markdown的编辑器非常多,对于很多初学者来说,个人比较推荐使用VS Code。

一是VS Code汉化比较方便,想让更多人学会使用Python来学数学,有一个中文界面还是比较重要的;而且VS Code是跨平台的,Mac、Windows都可以上手;

二是VS Code是一款极为优秀的代码编辑器,说起优秀,应该算是目前最为推荐的编辑器之一(可能没有之一);要用Python学数学,就不能用纯Markdown软件,代码编辑器是少不了的,使用VS Code编译Python和Markdown都极为舒适;

三是VS Code插件丰富,Python的编译、Markdown的编写与预览、LaTex Math的显示等工具链相当完备。比如Python插件,只需要安装插件集合Python Extension Pack,里面就包含了微软官方插件Python、MagicPython、Jupyter等优秀插件;而Markdown插件,推荐安装Markdown All in One,以及Markdown+Math。

LaTex Math的语法

LaTex Math的语法多且杂,我们是没法完全记住这些语法的,能记住也不提倡吧,我连Markdown语法都没能全记住。查询手册在手,天下我有,这里比较推荐名校莱斯Rice大学的一个语法手册,莱斯大学LaTex Math在线PDF手册。

当然安装了上述插件的VS Code也是有LaTex Math语法提示的。用英文字符反斜杠就可以为你提示。下面我们就结合这个PDF里LaTex Math的语法在Markdown里面进行实战,以及对这些语法的使用进行一些简单的讲解。

希腊字母
使用$LaTex希腊字母语法$,也就是将LaTex的希腊字母语法用两个美元符号围住即可。比如以下案例:

$Gamma$、$iota$、$sigma$、$phi$、$upsilon$、$Pi$、$Bbbk$、$heartsuit$、$int$、$oint$

输出的结果就是这样子啦~
$Gamma$、$iota$、$sigma$、$phi$、$upsilon$、$Pi$、$Bbbk$、$heartsuit$、$int$、$oint$

值得注意的是希腊字母有大写和小写之分,这个大小写是由LaTex的首字母是否大小写来控制的。

三角函数、对数、指数
三角函数、对数、指数的写法以及其他符号的语法和字母是一样的,也是使用$LaTex符号$,也就是将LaTex的希腊字母语法用两个美元符号围住即可,我们来看下面的案例:

$	an$、$sin$、$cos$、$lg$、$arcsin$、$arctan$、$min$、$max$、$exp$、$log$

输出的结果如下:
$ an$、$sin$、$cos$、$lg$、$arcsin$、$arctan$、$min$、$max$、$exp$、$log$

运算符
运算符的写法也是如此,不过要注意的是加号、减号、等于号、大于、小于的写法有点不同,是直接用符号即可,这个要注意一下。

$+$、$-$、$=$、$>$、$<$、$	imes$、$div$、$equiv$、$leq$、$geq$、$
eq$  

输出的结果就是:
$+$、$-$、$=$、$>$、$<$、$ imes$、$div$、$equiv$、$leq$、$geq$、$ eq$

集合符号
集合是高中数学就会学习的知识,也是非常重要的基础概念,集合的符号也比较多,所以会特地把它们多带带列出来,虽然它们的语法和上面没有区别。

$cup$、$cap$、$in$、$
otin$、$
i$、$subset$、$subseteq$、$supset$、$supseteq$、$infty$

输出的结果就是:
$cup$、$cap$、$in$、$ otin$、$ i$、$subset$、$subseteq$、$supset$、$supseteq$、$infty$

数学符号非常多,这里只是列举了一些常用的符号,更多符号细节既可以查看莱斯大学的PDF。

数学公式与Markdown Math

前面只是介绍了单一的数学符号显示问题,但是一段完整的数学公式则包含多个数学符号、数值,在介绍数学公式之前,我们需要先来了解一下内联与块状的概念。
内联输出与块状输出
前面我们在输出每个符号的时候,都用两个美元符号$$,这种方式就是内联,所谓内联就是我们可以把数学符号嵌入到文字段落里面,比如:

函数式:$f(x)=frac{P(x)}{Q(x)}$  

函数式:$f(x)=frac{P(x)}{Q(x)}$ ,我们可以看到这段公式在文字段落里面。
如果我们需要输出的数学公式比较复杂,或者我们需要凸出并独立显示公式,这个时候我们就需要使用到公式的块状输出,块状输出的语法使用4个美元符号$$数学公式$$,我们来看案例。

$$f(x)=frac{P(x)}{Q(x)}$$ 

使用块状输出,函数会居中显示,值得一提的是我们在使用块状输出数学公式时,在Markdown里需要换行来写公式。
$$f(x)=frac{P(x)}{Q(x)}$$

简单的四则运算
我们先来看简单的四则运算怎么用Markdown Math编写,

$2x - 5y =  8$  
$3x + 9y =  -12$
$7x 	imes 2y 
eq 3z$

注意这里的 imes是乘号, eq是不等于,输出的效果如下:
$2x - 5y = 8$
$3x + 9y = -12$
$7x imes 2y eq 3z$

指数输出
Markdown Math的指数运算符是^,这个在Python里位运算符,Python的指数运算符是**,这个注意区别即可。

$x^3+x^9$  
$x^y$  

输出的结果为:
$x^3+x^9$
$x^y$

n次方根输出
sqrt{}是开平方,注意数值使用大括号{}围住,而开n次方的语法是sqrt[n]{},n次方的n用中括号[]围住,我们来看下面的案例:

$sqrt{3x-1}+sqrt[5]{2y^5-4}$

输出的结果是:
$sqrt{3x-1}+sqrt[5]{2y^5-4}$

三角公式
三角公式通常括号、字母、符号、运算符混杂的比较厉害,所以书写的时候要特别注意,我们来看下面的例子:

$$cos (2	heta) = cos^2 	heta - sin^2 	heta$$

输出的结果如下:
$$cos (2 heta) = cos^2 heta - sin^2 heta$$

输出分数
输出带有分子分母的分数的语法为frac{分子}{分母},使用大括号把分子、分母都围住。

$$frac{x}{2y} +frac{x-y}{x+y} $$

输出的结果如下:
$$frac{x}{2y} +frac{x-y}{x+y} $$

求和输出
求和公式比较复杂,会涉及到上标和下标,在输出指数^时我们可以把它看成是上标,使用_来输出下标,我们来看具体案例:

$$sum_{n=1}^infty k$$

输出的结果如下:
$$sum_{n=1}^infty k$$

极限的输出
在我们了解了上下标的概念之后,输出极限就会使用到下标,

$$limlimits_{x 	o infty} exp(-x) = 0$$

输出的结果:
$$limlimits_{x o infty} exp(-x) = 0$$

阶乘的输出

$$frac{n!}{k!(n-k)!} = inom{n}{k}$$

输出的结果如下:
$$frac{n!}{k!(n-k)!} = inom{n}{k}$$

Markdown Math输出矩阵
使用egin{matrix}end{matrix}围住即可输出矩阵,矩阵之间用$来空格,用来换行。

$$
  egin{matrix}
   1 & 2 & 3 
   4 & 5 & 6 
   7 & 8 & 9
  end{matrix} 
$$

输出的结果是:

$$ egin{matrix} 1 & 2 & 3 4 & 5 & 6 7 & 8 & 9 end{matrix} $$

复杂数学公式

分段函数的编写
分段函数是非常复杂的,这时候会用到LaTex的cases语法,用egin{cases}end{cases}围住即可,中间则用来分段,具体我们来看下面的例子。

$$
X(m,n)=
egin{cases}
x(n),
x(n-1)
x(n-1)
end{cases}
$$

分段函数输出的结果如下:

$$ X(m,n)= egin{cases} x(n), x(n-1) x(n-1) end{cases} $$

Markdown Math也就是LaTex语法输出数学公式的基本用法,我们先介绍到这里,后面我们会在学习过程中接触到时再来研究。

Markdown Math的跨平台显示

让数学公式可以在知乎、简书、公众号等自媒体平台以及网页和博客系统Wordpress上优雅的显示,这样才有利于数学公式的阅读与传播。
知乎、简书、掘金上显示数学公式
简书的Markdown编辑器可以比较完美的支持Markdown语法以及Markdown Math语法,可以直接把用VS Code写的Markdown文件里的内容复制粘贴过去,然后进行一些简单的修改就可以了。
而知乎自带数学公式的插入,如果直接导入Markdown文件显示会出现一些问题,需要把数学公式用知乎自带的Tex编辑器重新书写,只需要把$$删除即可。

在网页上显示数学公式
由于我们的网页可以不用Markdown,用HTML替换Markdown排版语法就可以,所以我们只需要专注于如何在网页上显示数学公式即可。比较完美的解决方案是使用mathjax,我们只需要在标签内插入mathjaxjs即可。
比如下面的案例,大家只需要把下面的代码复制下来并保存为html文件即可,不过要注意的是内联式的语法会有些不同,不再是$符号与公式$,而是:(符号与公式)




  
  
  


当 (a e 0)时, (ax^2 + bx + c = 0) 会有两个解,它们是: $$x = {-b pm sqrt{b^2-4ac} over 2a}.$$

数学公式在公众号上的显示
微信公众号封闭且奇葩,美化微信公众号的排版虽然用的是html和css语法,但是有很多需要注意的地方,因此排版也相对来说比较麻烦,相比知乎、简书等自媒体平台来说,公众号的排版也可以做到更美观。不过要想让数学公式在公众号上显示就比较麻烦,微信公众号是不支持LaTex语法的,所以需要把公式做成图片,其他不支持LaTex的自媒体平台也可以这么处理。

公众号显示数学公式有一个比较简单好用的方法就是[Md2All]http://md.aclickall.com/,可以直接把VS Code编辑的Markdown文档粘贴到里面,还能进行精美的排版,但是这个方法有两个问题,一个是生成的图片比较模糊,有碍观瞻;第二就是如果数学公式过多,就需要用七牛云的CDN,配置的方法也比较简单,总体来说Md2All综合效果最佳的方案,相比于其他方法更方便,也能一梭子把Markdown文档以及数学公式进行优雅的公众号排版。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43383.html

相关文章

  • Python:线性代数-LaTeX用法(四十)

    摘要:使用将公式转为,兼容使用在前端页面中加入该引用使用方法默认的数学分隔符是和用于显示数学,而用于行内数学。请特别注意默认情况下不使用行内分隔符这是因为美元符号在非数学设置中经常出现,这可能导致某些文本被意外地视为数学。 在学习线性代数,需要写博客,遇到复杂的数学公式如向量、矩阵、微积分公式没法用普通的方法打印,所以,使用LaTeX解决了这个问题。 一、什么是LaTeX LaTeX, 是一...

    asoren 评论0 收藏0
  • 关于使用markdown的方法(引自CSDN教程)

    摘要:维基百科使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助。编辑器使用浏览器离线存储将内容保存在本地。浏览器兼容目前,本编辑器对浏览器支持最为完整。建议大家使用较新版本的。 欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简...

    RdouTyping 评论0 收藏0
  • 数学与Python有机结合及统计学、微积分、线性代数相关资源、图形软件

    摘要:微积分微积分的课程我们也同样是推荐和的课程。还有一个斯坦福大学的统计学习入门英文字幕相当不错。所以,除了绘制数学图形外,学习数学就应该完全与编程有机结合。 无论是三大数学软件Matlab(通信、控制等工程例外)、Maple、Mathematica,还是三大统计软件Spass、Stata、SAS,这些可视化的软件本身就是编程的一个体现,它们在一定程度上降低了我们使用数学的门槛,但另一方面...

    Java3y 评论0 收藏0
  • markdown的瑞士军刀

    摘要:两分钟提高的书写体验对于程序员来说时常温故知新写博客是十分有益的成为众多程序员写作的新宠不仅简洁而且优雅这里推荐一些提高书写效率并且美化排版的工具虽然说是两分钟也可以解决啦直接看下面文中插件插件名作用测试版本支持自定义预览样式以风格预览支 两分钟提高vscode的markdown书写体验 对于程序员来说,时常温故知新,写博客是十分有益的,markdown成为众多程序员写作的新宠,不仅简...

    tinylcy 评论0 收藏0
  • Markdown编辑器

    摘要:当你完成了一篇文章的写作在上方工具栏找到文章导出,生成一个文件或者文件进行本地保存。导入如果你想加载一篇你写过的文件或者文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,继续你的创作。 @TOC 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Mark...

    mykurisu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<