前言
做工程的人经常会有绘制图例和数学公式的需求,现在是数字化办公的时代,用笔和纸书写已经不是潮流,那么有没有好的工具方便我们在电脑撰写文档时把图例和公式又快又好的书写呢?
介绍
答案时有的,mermaid这个工具可以用来绘制流程图、时序图,十分简单、高效!而mathjax可以用来书写各种各样的的数学公式,在网页端通过简单文本的方法把图例和公式渲染出来,是广大软件工程师的必会神器👍👍👍
安装
mermaid
安装hexo-filter-mermaid
插件,安装前切换源下载更快一些
1 | npm config set registry https://registry.npmmirror.com |
替换markdown渲染器,默认的不能正常渲染
1 | npm uninstall hexo-renderer-marked --save |
mathjax
安装hexo-filter-mathjax
插件
1 | npm install hexo-filter-mathjax --save |
配置
mermaid
配置_config.yml
文件
1 | mermaid: |
禁止mermaid
高亮,否则渲染不出来
1 | highlight: |
在node_modules\主题名\layout\_partial\head.ejs
文件下加入以下内容
1 | <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script> |
mathjax
配置_config.yml
文件
1 | mathjax: |
在node_modules\主题名\layout\_partial\head.ejs
文件下加入以下内容
1 | <script> |
主题配置
1 | mathjax: |
图例
流程图
简单的流程图示范(横向)代码
1 | flowchart LR |
简单的流程图示范(横向)效果
flowchart LR
A[hexo] --> B[mermaid]
A --> C[latex]
复杂的流程图(纵向)代码
1 | graph TD |
复杂的流程图(纵向)效果
graph TD
A[启动导航] --> B[获取RTK定位数据]
B --> C{精度是否达标?}
C -->|是| D[生成作业路径]
C -->|否| E[等待信号改善]
D --> F[显示2D/3D视图]
F --> G[持续更新位置]
时序图
时序图示范代码
1 | sequenceDiagram |
时序图示范效果
sequenceDiagram
participant 用户
participant 系统
participant 定位模块
participant 作业规划模块
participant 显示模块
用户->>系统: 启动农机导航
系统->>定位模块: 请求定位数据
定位模块->>系统: 返回多模定位数据
系统->>系统: 卡尔曼滤波处理定位数据
系统->>作业规划模块: 输入定位数据和作业模式
作业规划模块->>系统: 生成作业路径
系统->>显示模块: 渲染2D/3D作业图
显示模块->>用户: 显示作业路径和农机位置
loop 实时更新
定位模块->>系统: 实时定位数据
系统->>显示模块: 更新作业图
end
用户->>系统: 选择智能辅助功能
系统->>系统: 执行避障/断点续航等功能
饼图
画一个比例饼代码
1 | pie |
比例饼效果
pie
title 研发人员
"硬件" : 45
"软件" : 30
"测试" : 25
类图
生成一个类的示意图代码
1 | classDiagram |
一个类的示意图效果
classDiagram
class Human {
+String name
+eat()
}
class Man {
+shaving()
}
Human <|-- Man
数学公式
积分
积分公式代码示例
1 | $$ |
积分公式效果
$$
\int_{0}^{\pi/2} \sin x \ dx = 1
$$
求导
求导代码示例
1 | $$ |
求导公式效果
$$
\ f’(x) = \frac{d}{dx} (\ln x) = \frac{1}{x}
$$
$$
f’’(x) = \frac{d}{dx} \left( \frac{1}{x} \right) = -\frac{1}{x^2}
$$
幂
幂函数代码示例
1 | $$ |
幂函数公式效果
$$
\ f(x) = x^3
$$
对数
对数函数代码示例
1 | $$ |
对数函数公式示例
$$
f(x) = \log_3 x
$$
指数
指数函数代码示例
1 | $$ |
指数函数公式效果
$$
f(x) = 2^x
$$
物理公式
牛顿第二定律
代码
1 | $$ |
公式
$$
\vec{F} = m \vec{a}
$$
质能方程
代码
1 | $$ |
公式
$$
E = mc^2
$$
万有引力定律
代码
1 | $$ |
公式
$$
\vec{F} = -G \frac{m_1 m_2}{r^2} \hat{r}
$$
欧拉公式
代码
1 | $$ |
示例
$$
e^{i\theta} = \cos\theta + i\sin\theta
$$
$$
e^{x + iy} = e^x (\cos y + i\sin y)
$$
麦克斯韦方程组
代码
1 | \begin{aligned} |
公式
$$
\begin{aligned}
\nabla \cdot \mathbf{E} &= \frac{\rho}{\varepsilon_0} \quad &\text{(高斯定律)} \
\end{aligned}
$$
$$
\begin{aligned}
\nabla \cdot \mathbf{B} &= 0 \quad &\text{(磁高斯定律)} \
\end{aligned}
$$
$$
\begin{aligned}
\nabla \times \mathbf{E} &= -\frac{\partial \mathbf{B}}{\partial t} \quad &\text{(法拉第定律)} \
\end{aligned}
$$
$$
\begin{aligned}
\nabla \times \mathbf{B} &= \mu_0 \mathbf{J} + \mu_0 \varepsilon_0 \frac{\partial \mathbf{E}}{\partial t} \quad &\text{(安培-麦克斯韦定律)}
\end{aligned}
$$