我已经在 Latex 中使用矩阵一段时间了,但发现它们写起来有些乏味。是否可以在 Latex 中创建一个新命令 \nmatrix(例如),允许以以下形式编写矩阵:
\nmatrix{1,2;3,4}
并将产生以下矩阵:
我知道你可以定义类似的东西
\newcommand{\nmatrix}[4]{$ \begin{bmatrix} #1 & #2 \\ #3 & #4\\\end{bmatrix} $}
然而这需要花费一些精力去编写,理想情况下,我希望能够使用命令 \nmatrix 通过更改输入数量来编写任何 m x m 矩阵。例如 \nmatrix{1,2,3;4,5,6} 将产生一个 2 x 3 矩阵。
答案1
为 量身定制tabstackengine
,其中已经有这样的宏(和其他宏)。
\documentclass{article}
\usepackage{tabstackengine}
\setstackEOL{;}% row separator
\setstackTAB{,}% column separator
\setstacktabbedgap{1ex}% inter-column gap
\setstackgap{L}{1.0\normalbaselineskip}% inter-row baselineskip
\let\nmatrix\bracketMatrixstack
\begin{document}
\[
\nmatrix{1,2,3;4,5,6}
\]
\end{document}
存在可选参数来将列对齐设置为l
、c
或r
。
它还有一个\fixTABwidth{<T or F>}
宏可以将所有列设置为相同宽度(或不同),显示在之前和之后: