我试过
\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
给出所要求的结果。