具有 12 个参数的扩展数组

具有 12 个参数的扩展数组

我要输入一个文档,其中需要写入许多扩展数组,我想创建一个可以很好地完成此操作的函数,但不幸的是 ´\def´ 和 ´\newcommand´ 命令都只允许 9 个参数,而我有 12 个。有人能帮帮我吗?帮帮我?

(A|b)=\left(\begin{array}{ccc|c}
        2&1&-2&0\\
        -1&3&1&0\\
        2&1&1&z
        \end{array}\right)

答案1

我不认为

\extarray{2}{1}{-2}{0}{-1}{3}{1}{0}{2}{1}{1}{z}

是可维护的。

这是我的建议。

\documentclass{article}
\usepackage{amsmath}

\newenvironment{extarray}[1][3]{%
  \left(\begin{array}{@{}*{#1}{c}|c@{}}%
}{\end{array}\right)}

\begin{document}

\[
\begin{extarray}[1] A & b \end{extarray} =
\begin{extarray}
  2 & 1 & -2 & 0 \\
 -1 & 3 &  1 & 0 \\
  2 & 1 &  1 & z
\end{extarray}
\]

\[
\begin{extarray}[1] A & b \end{extarray} =
\begin{extarray}[4]
 3 &  2 & 1 & -2 & 0 \\
 4 & -1 & 3 &  1 & 0 \\
 5 &  2 & 1 &  1 & z \\
 0 &  0 & 0 &  1 & z
\end{extarray}
\]

\end{document}

请注意间距的均匀性以及拥有任意数量的列的可能性。

在此处输入图片描述

使用“内联”语法:

\documentclass{article}
\usepackage{amsmath}

\ExplSyntaxOn
\NewDocumentCommand{\extarray}{O{3}m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { ; } { #2 }
  \left(\begin{array}{@{} *{#1}{c} | c @{}}
  \seq_map_function:NN \l_tmpa_seq \__zaragosa_row:n
  \end{array}\right)
 }
\cs_new_protected:Nn \__zaragosa_row:n { \clist_use:nn { #1 } { & } \\ }
\ExplSyntaxOff

\begin{document}

\[
\extarray[1]{A,b}=
\extarray{2,1,-2,0 ; -1,3, 1,0 ; 2,1, 1,z}
\]

\[
\extarray[1]{A,b}=
\extarray[4]{
  3, 2,1,-2,0 ; 
  4,-1,3, 1,0 ;
  5, 2,1, 1,z ;
  0, 0,0, 1,z
}
\]

\end{document}

对于“增广矩阵”符号 (A|b),你可能需要定义

\newcommand{\augm}[2]{\begin{extarray}[1] #1 & #2 \end{extarray}}

首次实施

\newcommand{\augm}[2]{\extarray[1]{#1,#2}}

在任一情况下都可以expl3使用。\augm{A}{b}

答案2

我可能会谦虚地建议spalign您使用可以对齐中心c、左侧l和右侧的包r,并获得您得到的结果。

\documentclass[a4paper,12pt]{article}
\usepackage{amsmath,amssymb}

\usepackage{spalign}


\begin{document}
\[(A\mid b)=\spalignaugmatn[c]{1}{2 1 -2 0; -1 3 1 0; 2 1 1 z}\]
\[(A\mid b)=\spalignaugmatn[l]{1}{2 1 -2 0; -1 3 1 0; 2 1 1 z}\]
\[(A\mid b)=\spalignaugmatn[r]{1}{2 1 -2 0; -1 3 1 0; 2 1 1 z}\]

\[(A\mid b)=\spalignaugmatn[r]{1}{3 2 1 -2 0; 4 -1 3 1 0; 5 2 1 1 z; 0 0 0 1 z
}\]
\[(A\mid b)=\spalignaugmatn[l]{1}{3 2 1 -2 0; 4 -1 3 1 0; 5 2 1 1 z; 0 0 0 1 z
}\]
\[(A\mid b)=\spalignaugmatn[c]{1}{3 2 1 -2 0; 4 -1 3 1 0; 5 2 1 1 z; 0 0 0 1 z
}\]
\end{document}

在此处输入图片描述

相关内容