矩阵、分段函数与对齐

矩阵与分段函数是数学排版中两个高频但结构特殊的场景:矩阵需要列对齐与自适应定界符,分段函数需要垂直堆叠与大括号。它们各自有专门的环境,掌握后能免去大量手工调整。本文覆盖矩阵环境家族、分段函数、通用二维对齐三个主题,并给出高频错误的对照修复表。三个主题共享同一套底层思想:把二维结构与定界符交给环境,你只写内容。

一、矩阵环境家族

数学宏包提供的矩阵环境把定界符选择交给环境名,写法极其规整:列用分隔符,行用换行符。这与「先写矩阵再手动加括号」的传统做法形成鲜明对比,也是语义化设计最直观的例子之一。

环境 定界符 典型用途
无定界版 无 自己加定界符或作为子块
圆括号版 圆括号 一般矩阵
方括号版 方括号 方阵、区间
花括号版 花括号 集合枚举
竖线版 竖线 行列式
双竖线版 双竖线 范数矩阵
行内小矩阵 无 行内小尺寸矩阵

业界还有一套扩展矩阵环境,支持给矩阵加边框、在某些行后加横线(类似表格的线)等进阶排版。这些扩展属于较新的宏包功能,行为细节以官方文档为准。日常论文用上面七个标准环境足够,扩展功能等真有需求再查——工具链的克制与排版风格的克制是同一种美德。

标准写法如下:

\documentclass{ctexart}
\usepackage{amsmath}
\begin{document}
\begin{equation}
  A = \begin{pmatrix}
        1 & 2 & 3 \\
        4 & 5 & 6
      \end{pmatrix},
  \det B = \begin{vmatrix}
        1 & 2 \\
        3 & 4
      \end{vmatrix}
\end{equation}
\end{document}

进阶技巧有三:省略号用横点、竖点、斜点命令表示矩阵内容省略;行内小矩阵有专门环境;分块矩阵直接把圆括号矩阵嵌套进另一矩阵的单元即可。

省略号的方向不是随便选的:横点省略行内元素,竖点省略列内元素,斜点省略对角线。三者配合能把「任意维矩阵」写得简洁准确。常见错误是全用横点,导致读者无法分辨省略的是行还是列——细节虽小,数学表达的正确性全在这类区分上。

分块矩阵的嵌套写法值得专门提醒:外层矩阵的某个单元里直接放一个完整的圆括号矩阵,编译时定界符大小会自动分级呈现层级感。这是矩阵环境比手工排版的又一处优势:嵌套间距与定界符粗细都有默认安排,不用操心撞线。初学者第一次写分块矩阵容易漏掉单元间的分隔符,养成「每个单元写完先补分隔符再写下一个」的习惯即可。

二、分段函数

分段函数的排版要素是:左侧大括号、右对齐的条件、自动调整的括号高度。专门环境把这三件事一次完成。

\begin{equation}
  f(x) = \begin{cases}
    x^2,      & x > 0 \\
    -x,       & x \leq 0
  \end{cases}
\end{equation}

写法规律:对齐标记前是函数表达式,标记后是条件,条件部分自动右对齐。初学者常犯的错是把逗号写在对齐标记后面,导致表达式与条件之间出现空洞。正确做法是逗号紧贴表达式。

分段函数环境的另一处省心之处是左大括号自动伸缩:无论你写两行还是五行,括号高度永远贴合内容。若手工用伸缩命令实现同样效果,换行处会报错——伸缩命令不能跨行,这就是分段环境存在的直接理由。理解了「环境=跨行的伸缩定界」,本文几个环境的设计逻辑就全通了。

复杂条件(分段条件本身含公式)可以继续嵌套分段环境或改用右括号版本。若对齐间距不满意,环境内还允许用字宽间隔手调。

分段函数的语义层面也值得注意:每行的条件必须互斥且覆盖全集,这是数学要求而非排版要求。但排版能帮你自查——若两行条件写成了重叠区间,编译出来的版式看起来就会「哪里不对」却说不清。把分段函数逐行读一遍核对互斥性,是交稿前值得做的一次低成本检查。

分段函数还能充当「优雅的分类讨论」排版器:把冗长的「当……时」文字叙述压缩成一屏看清的结构。数学写作中但凡出现连续的三段分类,都值得考虑改写成分段函数——读者的认知负担会显著下降,这是排版服务于理解的实例,也是数学写作者应有的自觉。

三、通用二维结构环境

底层二维结构环境常与自动伸缩定界配合实现非标准排版,例如方程组的大括号或自定义版式。它必须指定列格式:对齐字母控制对齐,竖线控制分隔线。

\[
\left\{
\begin{array}{r@{\quad}l}
  x + y &= 3 \\
  x - y &= 1
\end{array}
\right.
\]

这里的特殊列间插入表示在两列之间固定宽度,而不是默认的列间距。底层环境与表格环境的区别在于它只用于数学模式,列间距由专门长度参数控制(默认较窄)。修改行距倍数是让矩阵行距变宽松的正规做法。

数学模式里的列格式语法与正文表格几乎一致,这是设计上的延续。但注意:底层二维环境本身不带定界符,需要手工配合左右伸缩命令——这意味着它比语义化环境更容易在伸缩命令的配对上出错(单边括号要用空标记补位,见数学模式一章)。只有语义环境确实无法表达你的版式时才动用它。

列格式符 含义
左中右对齐 指定对齐方式
特殊列间 列间插入内容,吃掉默认间距
竖线 竖向分隔线
重复格式 重复若干次该格式

四、对齐工具的横向对比

三种环境的适用边界有时会模糊,下表按「要什么效果」给出选择建议。

需求 首选环境
标准矩阵 圆括号或方括号矩阵环境
行列式 竖线矩阵环境
分段函数 分段函数环境
方程组大括号 大括号加底层二维环境
公式按符号对齐 对齐环境(见多行公式一章)
纯文字二维对齐 表格环境(见表格一章)

通用原则:优先用语义化环境,底层环境只在语义环境无法表达定制需求时使用,因为前者自动处理了定界符大小与间距。

这条原则的深层原因是维护成本:语义环境写出来的源码可读性高,三个月后回来改公式,你能一眼看懂结构;底层环境堆砌的定制代码,自己都会怀疑是不是别人写的。写作中坚持「能用高级环境就不用底层」,能把精力留给真正需要的定制。

五、常见错误与日志关键词

排错集中在三类问题上,日志关键词具有明确指向。与对齐环境一样,这类报错大多看关键词就能定位,属于多行结构里最「讲道理」的一类。

日志关键词 根因 修法
对齐标记错位 行内对齐标记数量不一致 数好每行标记个数
多余括号 行末换行漏写或错写 检查换行
未定义命令 未加载数学宏包 导言区加载
定界符大小异常 手工排矩阵没用语义环境 换用矩阵环境

学完矩阵与分段函数,数学排版的主干就齐了。最后一个常见需求是定理与证明的排版,见「定理环境」一章;写作素材与公式片段的沉淀方法见本站Obsidian 指南,公式批量校对可参考正则表达式。

六、一段综合练习

把本文的环境集合在一段代码里集中过一遍,能快速检验掌握程度:

结构 你应当选
三行三列普通矩阵 圆括号矩阵环境
二阶行列式 竖线矩阵环境
带条件的分段函数 分段函数环境
四元方程组加大括号 底层二维环境配伸缩定界
行内提到二阶小矩阵 行内小矩阵环境

逐项写下命令再对照本文小节,错的地方就是你的薄弱点。矩阵类环境的共同点极高:会一个就会全部,本质都是「列分隔、行换行、定界符交给环境名」。分段函数与方程组看似不同,核心同样是「二维结构加条件对齐」。把这两个共性看穿,数学排版就没有新东西了。

最后的建议是建立自己的公式片段库:矩阵骨架、分段函数骨架各存一份,写新文档时复制改内容,比每回从头敲快得多。片段库的整理方式见本站Obsidian 指南的模板章节——这个习惯一旦养成,收益会贯穿你整个写作生涯。

延伸阅读