Markdown与数学公式

news/2025/1/18 20:12:57/文章来源:https://www.cnblogs.com/PeterJXL/p/18338105

在写偏理科的文章的时候,多多少少会涉及到一些公式、函数的输入,本篇就来讲讲如何在 Markdown 中书写数学公式。

在此之前,我们先介绍下 LaTex 和 MashJax,Markdown 就是基于它们来实现数学公式的输入。

LaTex 简介

LaTex (读作 /ˈ lɑ ː tɛx/ 或 /ˈ leɪtɛx/ ),可以理解为是非常专业的排版工具,是国际上数学、物理、计算机等科技领域的专业排版工具,是科学文献交流和出版的事实标准。

LaTex 尤其适合处理篇幅较长、结构严谨的文档(例如学术论文),并且十分擅长处理复杂的表格和数学公式的排版,画个象棋图、分子结构式、电路图甚至乐谱都不在话下。

缺点:学习门槛高。如果不是数学、物理、计算机等领域的人来折腾这个,可能得一段时间才能上手。

简单介绍到这,如果你想深入了解下,不然看看这个教程:LaTeX 入门与进阶

MashJax 简介

MathJax 是一款运行在浏览器中的开源数学符号渲染引擎,使用 MathJax 可以方便的在浏览器中显示数学公式,不需要使用图片。

而 Typora 就是使用 MashJax 来解析 LaTex 的数学公式的,这一点也在文档里写了:

数学公式块

那么如何输入数学公式呢?数学公式比较特殊,得在数学公式块里才能正常渲染出结果,纯文本或者代码块是不行的。

在 Typora 中打开数学公式块的方法有:

  • 菜单栏 → 段落 → 公式块
  • 快捷键 Ctrl + Shift + M
  • 输入 $$ ,然后回车

效果:出现了一个输入框,后续就在这里输入公式

注意:

  • 并不是所有编辑器都支持(例如知乎和公众号就不行),如果遇到了不支持的情况很正常。
  • 在 VSCode 里也可以直接用这个数学公式块。

快速入门

直接看个例子,例如输入根号 2,语法为:

\sqrt{2}

效果:

\[\sqrt{2} \]

内联公式

如果你想输入的公式比较少,可以在一行内搞定,可以使用内联公式。首先在 Typora 中启用该设置:

启用后,建议重启下 Typora。

内联公式示例:

来输入一个根号2:$\sqrt{2}$

效果:来输入一个根号2:\(\sqrt{2}\)

接下来介绍一些常见的公式语法。

在线编辑器

如果你的 Markdown 编辑器不支持,但又想快速尝试下,可以使用 LaTex 在线编辑器,一搜一大堆,例如:https://www.latexlive.com

常用公式语法

这里列出部分公式语法,更多的请参考文末的“参考资料”。

常见运算符

作用 Markdown 代码 效果
上标 x^2 x2
下标 y_1 y1
分式 \frac{1}{2} \(\frac{1}{2}\)
省略号 \cdots \(\cdots\)
矢量 \vec{a} \(\vec{a}\)
积分 \int{x}dx \(\int{x}dx\)
积分(带范围) \int_{1}^{2}{x}dx \(\int_{1}^{2}{x}dx\)
极限 \lim{a+b} \(\lim{a+b}\)
极限(带范围) \lim_{n\rightarrow+\infty} \(\lim_{n\rightarrow+\infty}\)
累加 \sum{a} \(\sum{a}\)
累加(带范围) \sum_{n=1}^{100}{a_n} \(\sum_{n=1}^{100}{a_n}\)
累乘 \prod{x} \(\prod{x}\)
累乘(带范围) \prod_{n=1}^{99}{x_n} \(\prod_{n=1}^{99}{x_n}\)
向下取整 \lfloor x \rfloor \(\lfloor x \rfloor\)
向上取整 \lceil x \rceil \(\lceil x \rceil\)

三角函数

Markdown 代码 效果
\sin \(\sin\)
\cos \(\cos\)

其他符号以此类推,就不一一列举了

对数函数

Markdown 代码 效果
\ln2 \(\ln2\)
\log_28 \(\log_28\)
\lg10 \(\lg10\)

关系运算符

说明 Markdown 代码 效果
加减号 \pm \(\pm\)
乘(或笛卡尔积) \times \(\times\)
点乘 \cdot \(\cdot\)
\div \(\div\)
不等号 \neq \(\neq\)
等价 \equiv \(\equiv\)
小于等于 \leq \(\leq\)
大于等于 \geq \(\geq\)
并集 \cup \(\cup\)
交集 \cap \(\cap\)

其它特殊字符

Markdown 代码 效果
\forall \(\forall\)
\infty \(\infty\)
\emptyset \(\emptyset\)
\exists \(\exists\)
\nabla \(\nabla\)
\bot \(\bot\)
\angle \(\angle\)
\because \(\because\)
\therefore \(\therefore\)

空格,换行

示例:

a \quad b

效果:

\[a \quad b \]


也可以用一个斜线表示空格(注意反斜线后面要有空格)。语法:

a \  b

效果:

\[a \ b \]

换行

用两个反斜线表示换行(注意两个反斜线后面要有空格)。示例:

1 + 1 = 2
\\ 
2 + 2 = 4

效果:

\[1 + 1 = 2 \\ 2 + 2 = 4 \]

注意:有些 Markdown 编辑器还未支持该语法,例如本博客使用的 MathJax。

我查了下文档,说是还未实现该功能,但是马上就会实现了。

文档地址:Automatic Line Breaking — MathJax 3.2 documentation

花括号

示例:

c(u)=\begin{cases} \sqrt\frac{1}{N}, u=0\\ \sqrt\frac{2}{N}, u\neq0\end{cases}  

效果:

\[c(u)=\begin{cases} \sqrt\frac{1}{N}, u=0\\ \sqrt\frac{2}{N}, u\neq0\end{cases} \]

希腊字母

Markdown 代码 效果(大写) Markdown 代码 效果(小写)
A A \alpha \(\alpha\)
B B \beta \(\beta\)
\Gamma \(\Gamma\) \gamma \(\gamma\)
\Delta \(\Delta\) \delta \(\delta\)
E E \epsilon \(\epsilon\)
\varepsilon \(\varepsilon\)
Z Z \zeta \(\zeta\)
H H \eta \(\eta\)
\Theta \(\Theta\) \theta \(\theta\)
I I \iota \(\iota\)
K K \kappa \(\kappa\)
\Lambda \(\Lambda\) \lambda \(\lambda\)
M M \mu \(\mu\)
N N \nu \(\nu\)
\Xi \(\Xi\) \xi \(\xi\)
O O \omicron \(\omicron\)
\Pi \(\Pi\) \pi \(\pi\)
P P \rho \(\rho\)
\Sigma \(\Sigma\) \sigma \(\sigma\)
T T \tau \(\tau\)
\Upsilon \(\Upsilon\) \upsilon \(\upsilon\)
\Phi \(\Phi\) \phi \(\phi\)
\varphi \(\varphi\)
X X \chi \(\chi\)
\Psi \(\Psi\) \psi \(\psi\)
\Omega \(\Omega\) \omega \(\omega\)

矩阵

语法:

\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 
\end{matrix} \tag{1}

效果:

\[\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \tag{1} \]

带括号的矩阵:

\left[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 
\end{matrix} \right]\tag{2}

效果:

\[\left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]\tag{2} \]

Madoko

Markdown 和 Latex 代表了写作语言的两极:Markdown 追求极致的简洁,只有最少的格式控制;而 Latex 追求极致的可控,可以实现无限复杂的格式,也对语法有着严格的限制。

而这两极之间一直遗留着广阔的空白地带,是否有这样一种写作语言,在实现精美排版的同时,保持着足够的简洁和易用呢?Madoko 的便是为了这一目的而生。

Madoko 是一款开源的在线编辑器,当然你也可以通过 Node 的方式本地安装并运行。

GitHub 地址:https://github.com/koka-lang/madoko

中文翻译:https://github.com/HHpetra/MadokoReferenceChinese

发布注意事项

有些平台不支持 LaTex,那么如果想要发布带有 LaTex 公式的博客到这些平台,就得先处理下,例如截图。

为此,有人做了一个工具,将 Markdown 中的 LaTeX 转化为本地图片,这个工具叫 mdtex,开源在 GitHub:github.com/rreusser/mdtex-cli

具体步骤可以参考:Markdown 一次编辑全平台发布方案,支持 LaTeX 公式! - 知乎

我用的博客框架是 VuePress,使用了插件 markdown-it-mathjax3 后能正常渲染出结果(例如本文的数学公式都能正常显示),具体步骤可以参考我的另一篇博客:显示数学公式块

参考资料

107 页的PDF 文件:“一份不太简短的 LATEX2e 介绍” 3.1 节 数学公式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776496.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Intellij IDEA--选择圆括号(小括号)的内容的插件

简介 本文介绍Intellij IDEA选择圆括号(小括号)内的内容的插件。本插件支持这些括号: "<>", "[]", "{}", "()"。 Java星球:way2j.com(自学精灵) 问题描述 默认情况下,Idea只能双击大括号(花括号)选中里边的内容。其他的括…

7、31admin total budget开发

远程检查仓库状态 在测试平台部署运行 而不必执着于本地各种配置 如何申请服务,部署运行,在项目的主分支,副分支上运行 基于gitlab批量创建广告 映射(Maps)AdsTypeMap: 将广告类型字符串映射到整型数值,例如“Search Ads”映射到model.AdsTypeSearch的整型表示。CostType…

Python cv2库 批量压缩图片jpg、png 脚本

效果图: (1)压缩前:10.9M (2) 压缩后:1.46M(3) 直接上代码 ,# 设置压缩质量 0-100 ,0最差,100最好compression_params = [int(cv2.IMWRITE_JPEG_QUALITY), 50]import cv2 import osPATH = rF:\aa_jpg # 压缩该路径下的图片,压缩后会保存到原路径def resizeImage(fil…

染色法判定二分图

染色法判定二分图 二分图: 1.当且仅当图中无奇数环 2.能且只能用两种颜色染色#include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N = 100010, M = 200010;int n, m; int h[N], e[M], ne[M], idx; int color[N];//…

一个纯前端实现的头像生成网站

vue-color-avatar —— 一款基于 Vite + Vue3 实现的矢量风格头像的生成器,你可以搭配不同的素材组件,生成自己的个性化头像。大家好,我是 Java陈序员。 今天,给大家介绍一个纯前端实现的头像生成网站。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超2…

CSS + v-bind

学而不思则罔,思而不学则殆!

SillyTavern搭建

github地址 https://github.com/SillyTavern/SillyTavern/tree/release SillyTavern 是一个可以安装在电脑(和安卓手机)上的用户界面,让您可以与文本生成的人工智能互动,并与您或社区创建的角色聊天/玩角色扮演游戏。环境查看 系统环境# cat /etc/redhat-release Rocky Li…

BUUCTF [SCTF2019]babyre

记录一下脱花指令的过程 扔进ida中观察,发现有红字报错。像这种肯定是花指令用来干扰程序的,将loc_98Fnop掉即可,大概有四处这样的花指令 在最后发现一段smc,因为没有解密函数,因此推测直接解密即可按d全部转化为数据,然后再按c转化为代码又出现一个花指令这个nop明显是干…

Windows下下载编译boost库

下载boost库 链接:https://www.boost.org/下载最新的版本即可,因为最新的版本是兼容以前版本的。 编译boost库 下载后解压如果没有b2.exe就先双击一下booststrap.bat自动生成文件。然后在此目录打开cmd; 执行命令: .\b2.exe install --toolset=msvc-14.3 --build-type=comp…

生物实验室设备文件采集如何才能质量和效率双管齐下?

生物实验室的设备文件采集是实验室运营、科研活动和数据科学实践应用中不可或缺的一环。通过数据采集,实验室可以优化资源配置、提高实验结果的准确性和可靠性、支持科研水平的提升,并确保数据的安全性和可追溯性。因此,实验室应高度重视设备数据采集工作,并不断优化数据采…

传输限速的方案那么多,却都没有这一个全面!

在很多行业和领域,传输速度并不是无限制地越快越好,反而基于很多原因,在很多情况下,需要对传输的速度进行限制,原因如下: 带宽分配:在有限的网络资源下,对传输进行限速可以确保关键应用和服务的优先级,避免某些应用或用户过度占用带宽资源,影响其他用户或应用的正常使…

用了组合式 (Composition) API 后代码变得更乱了,怎么办?

组合式 (Composition) API 的一大特点是“非常灵活”,但也因为非常灵活,也可能导致我们的代码变得愈发混乱,最终到达无法维护的地步。前言 组合式 (Composition) API 的一大特点是“非常灵活”,但也因为非常灵活,每个开发都有自己的想法。加上项目的持续迭代导致我们的代码…