MarkdownPad2行内公式如何用$$
替代\\(\\)
—MathJax风格化配置
Motivation
对于写一些简单的报告或者说明文件,Markdown是一个极佳的选择。然而,Markdown编辑器选择也成了一个令人头疼的问题。没有最好,只有最适合。在接触Markdown之初,尝试多种最为普遍和受大众无脑鼓吹的几种编辑器,最后觉得马克飞象最合我心意。
马克飞象于我的主要吸引力在于:所见即所得,所得的风格化做得比较入我的眼,至少我看来是这样;能够自动导出md文件和pdf文件,让我省去了pandoc这道工序,大大提高了我的效率,更为重要的是,这款编辑器内置了MathJax数学公式渲染,而不需要通过浏览器来查看渲染效果,这不仅仅是效率的问题,而是在pdf输出时,能将公式渲染后的效果打印出来;默认配置同CSDN编辑环境,也就是说,在马克飞象上写的东西,几乎不需要任何任何修改,导入到CSDN编辑环境中,都能正常地显示,这对于经常写CSDN博文的我来说,十分便利;马克编辑器小巧玲珑,其界面简洁明了,这给了不喜欢花花绿绿、框框点点的我不少的好感;和在线印象笔记的即时同步功能,于抠门的我来说,虽是鸡肋,却也是一大亮点……
当然,马克飞象也是有极大的缺点的,比如说不能打开本地(非马克工作目录)的md文件,所以,我一般是通过记事本打开md,然后复制黏贴进来的。再一个,因为马克飞象的风格配置几乎是定死的,所以如果有跨页的大段代码,会在生成pdf时,也页面上留下大段空白,极其影响美观……
正是因为md文件不能关联马克飞象,故而我又下载了被B乎道友称为最好用的而我一直不屑一顾MarkdownPad 2,只为了能以最快的速度打开本地的md文件,也并没有想着用它做编辑。主要是我觉得它不符合我的审美,另有乱七八糟的按钮太多。此外,MP 2的公式渲染,要按F6在浏览器中显示,不仅不方便,还不能打印到pdf中。另外,其他的Atom等,不能说不好,只能说,适合你的才是最好的。
MarkdownPad 2风格化配置
- Markdown2风格设置我采用GitHub离线风格,这样表格能正常显示,并且三个反引号的行间代码标注方式能被识别。
- HTML Head预定义
使用如下一行代码,将mathjax在线引入,可以使TeX编码得以解释:
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
因为我习惯上都是用 $$
来表示行间公式,但MathJax的configuration使默认的 \\(\\)
来表示行间代码,所以形如 $x^2$
就识别不了,识别不了并不是因为 $$
不是MathJax所定义的。我们可以对MathJax进行风格化的配置,使得这两种行内数学公式写法都可以被接受。比如:
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true
},
displayAlign : "left",
TeX: {
equationNumbers: {
autoNumber: "all",
useLabelIds: true
}
},
"HTML-CSS": {
linebreaks: {
automatic: true
},
scale: 100,
styles: {
".MathJax_Display": {
"text-align": "left",
"width" : "auto",
"margin": "10px 0px 10px 0px !important",
"background-color": "#f5f5f5 !important",
"border-radius": "3px !important",
border: "1px solid #ccc !important",
padding: "5px 5px 5px 5px !important"
},
".MathJax": {
"background-color": "#f5f5f5 !important",
padding: "2px 2px 2px 2px !important"
}
}
},
SVG: {
linebreaks: {
automatic: true
}
}
});
</script>
<script type="text/javascript" src="https://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": { fonts: ["TeX"] }
});
</script>
</script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
这完全按照自己的喜好来,就很随性了。MarkPad 2的强大之处也就在于你可以随心所欲地配置你想要的外观,数学公式解释方式等等。
如果你想配置特有的其他风格,参见:
MarkDownPad 2的所见即所得的所得,并不能直接显示渲染后的公式。在线引入mathjax来解释数学公式后,貌似还需要按F6在浏览器中来查看效果。