使用MathJax输入分块矩阵

最近一直在写关于线性代数的数学文章, 因此不可避免的要输入各种形式的矩阵, 我用的编辑器是typora, 因为内建MathJax支持所以还是很方便的. 但是尽管MathJax和Latex语法非常接近, 还是有一些不同的, 在输入某些特殊的分块矩阵的时候会出现问题.

首先是基础形式的分块矩阵, 这个没有什么很大的问题, MathJax和Latex的语法可以是完全一样的, 可以直接用 array 来解决, 代码如下

        
            $$
\left[
\begin{array}{c|cc}
a_{11} & a_{12} & \cdots & a_{1n}\\ \hline
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{n1} & a_{n2} & \cdots & a_{}nn
\end{array}
\right]
$$
        
    

渲染效果如下

然而如果想让上面的右下角那一块变成一行或者是一个大大的字符, 在latex里可以利用 \multicolumn 来解决, 但是在MathJax里面并没有这个特性,会出现报错, 不过我们可以稍微迂回一点, 采用下面的方式来解决

        
            $$
\left[
\begin{array}{c|c}
\begin{matrix} a_{11} \end{matrix} & \begin{matrix} a_{12} & \cdots & a_{1n} \end{matrix} \\ \hline
\begin{matrix} a_{21} \\ \vdots \\ a_{n1} \end{matrix} & \begin{matrix} \huge{M} \end{matrix}
\end{array}
\right]
$$
        
    

渲染效果如下:

基本思路就是把分块分出来的几个矩阵直接作为独立的 matrix 然后这一整个 matrix 再作为 array 中的一个元素. 因为要多输入好多字符, 所以算是一个比较迂回的解决方案, 不过至少显示效果可以接受. 当然, 如果你有更好的方案欢迎指教, 感谢!