Typora/MWeb中简化数学公式输入

    2021/12/30 17:36 下午 标签: #编程

    场景

    通过Typora/MWeb做笔记非常舒适, 特别是理工科, 数学公式多, LaTeX写起来有点费劲. 但尽管如此, 某些情况下某些符号特别多时, 打起来相当麻烦, 但LaTeX却可以通过定义来实现简化, Markdown可以吗? 答案是肯定的.

    方法

    $ 定义 $(Typora)/``定义``(MWeb)中加入\newcommand\def定义相关符号, 在源码模式下可见, 但在普通模式下, 该命令不可见, 下文中使用所定义的命令时, 将自动替换相关符号. 需要注意的是, 如果另起一行再定义, 将会空出一行, 为此在段落结尾定义即可避免空行.

    例如, 我们先定义\(\newcommand{\abcd}{\mathcal{ABCD}}\)

    \newcommand{\abcd}{\mathcal{ABCD}}
    

    接下来在公式环境中通过\abcd引用. 结果如下:

    \(\abcd\)

    接下来批定义一些符号:

    $
    \def\Fp{\mathbb{F}_{p}}
    \def\Fq{\mathbb{F}_{q}}
    \def\Zp{\mathbb{Z}_{p}}
    \def\Zq{\mathbb{Z}_{q}}
    \def\Zk{\mathbb{Z}_{2^k}}
    \def\Zl{\mathbb{Z}_{2^\ell}}
    \newcommand{\PRG}[1]{\mathsf{PRG}(#1)}
    \newcommand{\PRF}[1]{\mathsf{PRF}(#1)}
    \newcommand{\LSB}[1]{\mathsf{LSB}(#1)}
    \newcommand{\MSB}[1]{\mathsf{MSB}(#1)}
    \newcommand{\ASS}[1]{\langle #1 \rangle}
    $
    

    \(\def\Fp{\mathbb{F}_{p}} \def\Fq{\mathbb{F}_{q}} \def\Zp{\mathbb{Z}_{p}} \def\Zq{\mathbb{Z}_{q}} \def\Zk{\mathbb{Z}_{2^k}} \def\Zl{\mathbb{Z}_{2^\ell}} \newcommand{\PRG}[1]{\mathsf{PRG}(#1)} \newcommand{\PRF}[1]{\mathsf{PRF}(#1)} \newcommand{\LSB}[1]{\mathsf{LSB}(#1)} \newcommand{\MSB}[1]{\mathsf{MSB}(#1)} \newcommand{\ASS}[1]{\langle #1 \rangle}\) 测试一下:

    \(\PRG{1}, \PRF{2},\LSB{1},\MSB{2},\ASS{1}\)

    \(\Fp,\Fq,\Zp,\Zq,\Zk,\Zl\)

    完全没问题!

    缺点

    自定义命令只能使用Markdown支持的公式符号. Typora/MWeb等Markdown工具最大的缺点是无法像LaTeX一样引用宏包, 因此会出现某些数学公式符号需要输入, Markdown却不支持. 但大多数情况下Markdown还是够用的, 至于哪种方法适合自己, 那就是见仁见智的事情了.