如何用latex编写矩阵(包括各类复杂、大型矩阵)?

矩阵是公式打印的时候操作最为繁琐的一类。常用word公式编辑器的同学应该能深刻体会到这一点。为了让大家更为方便地编辑矩阵,我们这次来一个长一点的内容,完整看一遍矩阵的各种输入方法。

一、矩阵的基本要素和编码方法

矩阵的本质就是一张表。只不过这个表没有表头。所有的元素都是放在对应的行和列里面。那么只要我们搞定行和列的排列,也就很容易搞定矩阵了。

在上一篇我们提到过如何排列方程组的问题,当时我们就提到用双反斜杠就是换行,而用&(and)符号就是区分列。

如果我们把对应行列当中的内容换成矩阵的元素,它就会变成这样

那么现在就还差一对括号。我们之前讲过,如果用\left \right 关键词,就可以让括号自动适应大小。那么利用这个特性其实就已经可以打出一个矩阵来了。

当然我们也可以改变括号的样式。

二、矩阵专有的关键词

latex作为专业的数学排版工具,自然也是为矩阵设计了专门的关键词的。直接用\begin{matrix} \end{matrix} 也可以实现上述的排列。只不过此时不再需要指定对齐方式。但这种方式只能打出元素的排列,括号还是要自己加。

实际上latex中是提供了带各种括号的矩阵的关键词,比如pmatrix 就是我们最常见到的圆括号矩阵

方括号矩阵

“大”括号矩阵

最有意思的是行列式,它叫vmatrix

范数“矩阵”叫做Vmatrix

三 、排出一个n乘n的矩阵

明白矩阵的这个排列之后,要写出我们常见的n乘n矩阵其实就不难了,只不过有的行和列要对应变成点而已。这里横三点是\cdots,竖三点为\vdots,而斜三点为\ddots。这时我们只要看清对应的点应该在第几行和第几列即可。

另外在matrix的环境下,某一位置如果什么都没有,直接空置就行了。

这种设定就方便我们打出对角矩阵和上、下三角矩阵了。

四 、矩阵内加划分线条

在矩阵内我们有时候需要加上各种线条,尤其在分块矩阵的时候特别管用。但这时如果还用matrix环境就比较麻烦了。通常我们用array的方式来实现。

我们先来看一下怎么加竖线。在array环境下,表示对齐方式的字母中间加上一个小竖线就可以在矩阵里面生成竖线了。

而横线则是在每一行的末尾(或者下一行的开头)加上\hline关键词。

不同的线型也有不同的打法。竖虚线是冒号,横实线是\hline,横虚线是\hdashline

五、大型矩阵的快速输入法

对于数值转成矩阵,我们有一套很笨的办法。用Excel来处理分列符:

另一种是助类似notepad++一类可以进行列操作的文本编辑器快速插入分列符:

另外,这里有位大佬还介绍了Vim编辑latex的智能填充功能 (张翼腾:Vim: 最好的 Latex 编辑器)。真的是特别厉害。不过目前我还没用过Vim,只有以后再测试了。

录自 张翼腾:Vim: 最好的 Latex 编辑器 https://zhuanlan.zhihu.com/p/92046022

六、其它说明

由于我们演示时用的是typora,实际上只包含了latex大部分的基本用法。而在完整版的latex中也有各种matrix相关的宏包,可以轻松打出各种漂亮的矩阵来。

比如用nicematrix就可以很轻松地打出这样的矩阵

连续打点的矩阵

异形分块矩阵

加上连续的方框

实现跨矩阵的连线等等。不过要强调的是,这些功能都必须要安装nicematrix包,所以必须要用支持完整latex功能的编译器才能实现。

另外好用的latex宏包也还有很多,欢迎大家评论补充!~


关注我们分享更多有趣有用的知识哟~

编辑于 2021-05-03 21:37
想来知乎工作?请发送邮件到 jobs@zhihu.com