LaTeX中绘制分块矩阵(矩阵中绘制横竖线)

目前绘制分块矩阵有多种方法,比如利用pmat宏包、利用arydshln宏包等,但感觉后者更简便,故把使用方法记录在文章里。

目录

绘制竖实、虚线

绘制横实、虚线

调整虚线宽和虚线间距

出现的两类报错 


绘制竖实、虚线

首先,导入arydshln宏包,这是绘制横竖线的第一步。

\usepackage{arydshln}

绘制竖实线,如{cc|cc}

\left[\begin{array}{cc|cc}
a & b & c & d\\
a & b & c & d\\
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]

其中\begin{array}后每个c算一列,cc|cc即为在两列后添加竖线,得到的矩阵为:

 绘制竖虚线,如{cc:cc}

\left[\begin{array}{cc:cc}
a & b & c & d\\
a & b & c & d\\
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]

“:”表示在相应位置添加虚线,得到的矩阵为:

绘制横实、虚线

调用arydshln宏包之后,用\hline绘制横实线。

\left[\begin{array}{cccc}
a & b & c & d\\
a & b & c & d\\
\hline
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]

\hline放在指定的行间,得到的矩阵为:

 绘制横虚线用\hdashline

\left[\begin{array}{cccc}
a & b & c & d\\
a & b & c & d\\
\hdashline
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]

 \hdashline放在指定的行间,得到的矩阵为:

 可以同时添加横竖虚线,构成分块矩阵,如

\left[\begin{array}{cc:cc}
a & b & c & d\\
a & b & c & d\\
\hdashline
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]

 得到的分块矩阵为:

调整虚线宽和虚线间距

竖虚线间距这里设置;{1pt/3pt},注意这里是分号不是冒号,添加在\begin{array}后对应的两列间。其中大括号里前面的数是虚线宽,后面的数是虚线间距,可以根据需要更改。

 横虚线间距在\hdashline后用[3pt/1pt]标注,这里设置了虚线宽3pt,间距1pt。

\left[\begin{array}{cc;{1pt/3pt}cc}
a & b & c & d\\
a & b & c & d\\
\hdashline[3pt/1pt]
a & b & c & d\\ 
a & b & c & d\\ 
\end{array}\right]
\end{gather*}

 得到的矩阵为:

出现的两类报错 

编译过程中,一直出现以下两种报错,无法编译成公式

Undefined control sequence. \end{gather}

Illegal character in array arg. \end{gather}

研究查阅了很久,发现是因为没有调arydshln宏包导致无法识别绘制的虚线。添加了\usepackage{arydshln}后,问题得以解决。

### 解决LaTeX公式中过长矩阵的排版问题 当遇到矩阵宽度超出页面边界的情况时,可以采取多种方法来优化排版效果[^1]。 #### 方法一:调整字体大小 通过缩小整个矩阵中的字符尺寸,可以使矩阵适应页面布局。使用 `\small` 或者更小字号命令包裹住 `bmatrix` 环境: ```latex \documentclass{article} \usepackage{amsmath} \begin{document} {\small $ \begin{bmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n}\\ a_{2,1} & a_{2,2} & \cdots & a_{2,n}\\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{bmatrix} $ } \end{document} ``` #### 方法二:分块显示大型矩阵 对于特别大的矩阵,考虑将其分割成多个子矩阵展示。这不仅解决了长度超限的问题,还提高了可读性: ```latex \[ A = \left[\begin{array}{c|c} B & C\\ \hline D & E \end{array}\right] = \left[\begin{array}{cc|ccc} 1&0&0&\ldots&0\\ 0&1&0&\ldots&0\\\hline *&*&&&*\\ \vdots&\vdots&&M&\vdots\\ *&*&&&* \end{array}\right] \] ``` 这里用到了竖线(`|`)将上下部分隔开,并利用了 `array` 来定义自定义列宽和样式。 #### 方法三:旋转矩阵方向 如果向空间不足,则可以选择垂直排列元素或将整个结构顺时针转90度呈现给读者查看。后者可通过 `rotating` 宏包配合 `sideways` 命令完成: ```latex \documentclass{article} \usepackage{amsmath} \usepackage{rotating} \begin{document} \begin{turn}{90} $\displaystyle \begin{pmatrix} a_1&a_2&...&a_n\\ b_1&b_2&...&b_n\\ ...&...&...&... \end{pmatrix}$ \end{turn} \end{document} ``` 以上三种方式可以根据实际需求灵活选用或组合应用,从而有效改善因矩阵过大而导致的各种排版难题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值