Markdown中强大的自定义命令

\hspace{.5cm} 我想,有时候我们要重复运用很多东西。比如公式,排版之类的东西。如果我们有时候一个个去打字,有时候可能太过于繁琐,所以我们可以自定义一些命令,使得我们使用命令起来更加得心应手

简介

我们在上几次已经介绍过一些常用的命令,现在我们到了自由使用它们的时候了

基础的def命令

H e l l o , w o r l d ! \def\hello{Hello, world!} \hello Hello,world!

$\def\hello{Hello, world!}
\hello$

我们最开始从def命令介绍,这是最基本的自定义命令。这个def有点像我们Python中的def定义函数,在这个例子中,我们定义了hello命令
实际上,确实有点像函数的使用用法。因为我们在使用def命令的过程中,我们可以使用一些参数

H e l l o , C S D N u s e r ! \def\greet#1{Hello, #1!} \greet{CSDN user} Hello,CSDNuser!

$\def\greet#1{Hello, #1!}
\greet{CSDN user}$

我现在详细解释一下这个def命令,我们定义了一个greet命令。
然后我们通过#1 来表明我们这个命令有一个参数
然后我们在我们的hello后面跟着#1,告诉我们编译器:“待会儿我们使用这个命令时候,我们等一下会放入一些参数!”
然后我们使用greet命令的时候,使用这个大的花括号{},我们就传入这个参数。
我们这里的参数是csdn user 参数只能是“字符串

多参数示例
M y n a m e i s J o h n a n d I a m 30 y e a r s o l d . \def\introduce#1#2{My name is #1 and I am #2 years old.} \introduce{John}{30} MynameisJohnandIam30yearsold.

$\def\introduce#1#2{My name is #1 and I am #2 years old.}
\introduce{John}{30}$

我们这次使用两个参数,原理跟上面类似。
可能有朋友问,这样自定义命令可能很麻烦,明明一行就写完了,还要拆成两行?
实际上,这样代码利于我们阅读,便于维护。
即使我们传入参数的时候比较复杂,也不影响最开始怎么样自定义命令。可以说这是一种解耦吧

更灵活的newcommand命令

def命令不提供参数个数检查,也不会自动处理参数的格式,因此需要手动控制。
所以我们介绍一下newcommand命令

5 + 3 = 8 \newcommand{\mycommand}[3]{#1 + #2 = #3} \mycommand{5}{3}{8} 5+3=8

$$\newcommand{\mycommand}[3]{#1 + #2 = #3}
\mycommand{5}{3}{8}$$

我们使用newcommand定义了新的命令,我们叫什么都可以(只要不重复)
我们在这个例子当中,将其命名为mycommand,然后后面方括号[]表示我们要传入的参数个数
在这个例子当中就是需3个参数
井号1,2,3分别代表我在使用命令的时候,我们要传入参数的位置。这个很像C语言中的%d%f这些转义符号

我们再看复杂一点的例子

[ a b ⋯ 0 ] \newcommand{\mycommand}[4] {\begin{bmatrix} #1 & #2 & \cdots & 0 \end{bmatrix}} \mycommand{a}{b}{c}{d} [ab0]

$$\newcommand{\mycommand}[4] {\begin{bmatrix}  #1 & #2 & \cdots & 0 \end{bmatrix}}
\mycommand{a}{b}{c}{d}$$

这样我们写数组的时候我们就可以快速使用我们的模板。
虽然我们声明了四个参数,但是我们可以传入少一点。
我们可以根据使用情况灵活调整我们的参数

通过自定义命令排版

比如说,我们既要黄色背景,又想要Typewriter字体,并且我想要多次使用
text \newcommand{\mytext}[1]{\colorbox{yellow}{\texttt{#1}}} \mytext{text} text

$$\newcommand{\mytext}[1]{\colorbox{yellow}{\texttt{#1}}}
\mytext{text}$$

基础的排版命令我已经介绍过了,如果还不知道的朋友可以翻翻上期
[Markdown中进行更细致的排版]

我们的目的就是为了快速使用这个模板,这有点像C++中类模板的概念
那我们就可以将这个命令保存下来

\newcommand{\mytext}[1]{\colorbox{yellow}{\texttt{#1}}}

然后下次写的时候直接调用这个模板就好
reuse   it! \newcommand{\mytext}[1]{\colorbox{yellow}{\texttt{#1}}} \mytext{reuse it!} reuse it!

$$\newcommand{\mytext}[1]{\colorbox{yellow}{\texttt{#1}}}
\mytext{reuse it!}$$

数学公式补充

数学公式也是类似的,我们又一个公式比较常用,我们就把它定义一些参数,然后保存下来
这样我们不用每次都写然后又改
如果我们每次都用重复的命令,然后又再重复命令的基础上改来改去,就很头大ψ(*`ー´)ψ
就拿我们的数列求和公式举例子
S n = n ( a 1 + a n ) 2 S_{n}=\frac{n \left( a_{1}+a_{n}\right)}{2} Sn=2n(a1+an)

$$S_{n}=\frac{n \left( a_{1}+a_{n}\right)}{2}$$

这样我们如果以后要改a1an,只能很仔细去看
而且这样很多反斜杠(\) 我们在计算机领域中叫做倾斜牙签综合征
这样并不利于阅读。所以我们把这个命令拆成两行
我们不妨这样书写
S n = n ( b 1 + b n ) 2 \newcommand{\mysum}[2]{S_{n}=\frac{n \left( #1+#2 \right)}{2}} \mysum{b_{1}}{b_{n}} Sn=2n(b1+bn)

$$\newcommand{\mysum}[2]{S_{n}=\frac{n \left( #1+#2 \right)}{2}}
\mysum{b_{1}}{b_{n}}$$

总结

我们使用自定义命令进行排版,编写一些公式
就会比较灵活和方便。主旨是为了重复使用,如果不常用,或者说记得头大
那还是直接自己写好了|ू・ω・` )不用定义命令了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值