我怎样才能输入这样的矩阵?

我怎样才能输入这样的矩阵?

我正在尝试像这样输入这个矩阵 在此处输入图片描述

我试过

\documentclass{article}
\usepackage{amsmath}
\usepackage{fouriernc}
\begin{document}
\[
    \left( {\left| {\begin{array}{*{2}c}
                {a_2 } & {a_3 }  \\
                {b_2 } & {b_3 }  \\
        \end{array}} \right|;  \left| {\begin{array}{*{2}c}
                {a_3 } & {a_1 }  \\
                {b_3 } & {b_1 }  \\
        \end{array}} \right|;\left| {\begin{array}{*{2}c}
                {a_1 } & {a_2 }  \\
                {b_1 } & {b_2 }  \\
        \end{array}} \right|} \right).
\]
\end{document}

我有 在此处输入图片描述

我怎样才能获得像第一张图片那样的图像,即减小水平间距?

答案1

(有很多{stuff}地方不需要外括号。这实际上并没有造成多余的间距,但会使你的代码变得混乱。)

一个解决方法是添加足够的负间距\!以获得您想要的结果。一旦您了解如何操作,您就可以尝试使用列说明符。

但是由于您已经加载了 amsmath,因此您可以使用它们的矩阵环境:vmatrix将用 将其包围|

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{gather*}
    \left( {\left| {\begin{array}{*{2}c} % yours
                {a_2 } & {a_3 }  \\
                {b_2 } & {b_3 }  \\
        \end{array}} \right|;  \left| {\begin{array}{*{2}c}
                {a_3 } & {a_1 }  \\
                {b_3 } & {b_1 }  \\
        \end{array}} \right|;\left| {\begin{array}{*{2}c}
                {a_1 } & {a_2 }  \\
                {b_1 } & {b_2 }  \\
        \end{array}} \right|} \right).
\\
    \left( % mine
     \begin{vmatrix}
      a_2 & a_3 \\
      b_2 & b_3 \\
     \end{vmatrix}
     ;
     \begin{vmatrix}
      a_3 & a_1 \\
      b_3 & b_1 \\
     \end{vmatrix}
     ;
     \begin{vmatrix}
      a_1 & a_2 \\
      b_1 & b_2 \\
     \end{vmatrix}
    \right).
\end{gather*}

\end{document}

代码输出

答案2

您可以@{}在数组列规范的开始和结束处使用来删除这些列左侧和右侧的填充:

\documentclass{article}
\usepackage{amsmath}
\usepackage{fouriernc}
\begin{document}
\[
    \left( {\left| {\begin{array}{@{}*{2}c@{}}
                {a_2 } & {a_3 }  \\
                {b_2 } & {b_3 }  \\
        \end{array}} \right|;  \left| {\begin{array}{@{}*{2}c@{}}
                {a_3 } & {a_1 }  \\
                {b_3 } & {b_1 }  \\
        \end{array}} \right|;\left| {\begin{array}{@{}*{2}c@{}}
                {a_1 } & {a_2 }  \\
                {b_1 } & {b_2 }  \\
        \end{array}} \right|} \right).
\]
\end{document}

答案3

使用vmatrix,而不是array

我还建议为该任务定义一个命令,这可能看起来是多余的(我们在分号处拆分只是为了将它们添加回来)但事实并非如此,正如我稍后所展示的那样。

\documentclass{article}
\usepackage{amsmath}
\usepackage{fouriernc}

\ExplSyntaxOn

\NewDocumentCommand{\rowvec}{m}
 {
  \left(
  \seq_set_split:Nnn \l_tmpa_seq { ; } { #1 }
  \seq_use:Nn \l_tmpa_seq { ; }
  \right)
 }

\ExplSyntaxOff


\begin{document}

\[
\rowvec{x;y;z}+\rowvec{1;2;3}
\]

\[
\rowvec{
  \begin{vmatrix}
  a_2 & a_3 \\
  b_2 & b_3
  \end{vmatrix} ;
  \begin{vmatrix}
  a_3 & a_1 \\
  b_3 & b_1
  \end{vmatrix} ;
  \begin{vmatrix}
  a_1 & a_2 \\
  b_1 & b_2
  \end{vmatrix}
}
\]

\end{document}

在此处输入图片描述

现在,假设你的合著者发现分号后面的空格太小:你只需改变定义即可。例如,\;在分号后添加一个粗空格(并在其前面添加一个细空格)。

\documentclass{article}
\usepackage{amsmath}
\usepackage{fouriernc}

\ExplSyntaxOn

\NewDocumentCommand{\rowvec}{m}
 {
  \left(
  \seq_set_split:Nnn \l_tmpa_seq { ; } { #1 }
  \seq_use:Nn \l_tmpa_seq { \,;\; }
  \right)
 }

\ExplSyntaxOff


\begin{document}

\[
\rowvec{x;y;z}+\rowvec{1;2;3}
\]

\[
\rowvec{
  \begin{vmatrix}
  a_2 & a_3 \\
  b_2 & b_3
  \end{vmatrix} ;
  \begin{vmatrix}
  a_3 & a_1 \\
  b_3 & b_1
  \end{vmatrix} ;
  \begin{vmatrix}
  a_1 & a_2 \\
  b_1 & b_2
  \end{vmatrix}
}
\]

\end{document}

在此处输入图片描述

或者你改变主意,决定使用逗号代替分号。你只需要将代码改为

\seq_use:Nn \l_tmpa_seq { , }

并保持文档的其余部分原样,无需追逐分号。

答案4

如果我们使用 Plain-TeX,那么就没有问题:

$$
  \left(
     \left|\matrix{a_2 & a_3\cr b_2 & b_3}\right|; 
     \left|\matrix{a_3 & a_1\cr b_3 & b_1}\right|; 
     \left|\matrix{a_1 & a_2\cr b_1 & b_2}\right|
  \right) 
$$

\bye

给出所要求的结果。

相关内容