![交错数组如何输入?](https://linux22.com/image/312751/%E4%BA%A4%E9%94%99%E6%95%B0%E7%BB%84%E5%A6%82%E4%BD%95%E8%BE%93%E5%85%A5%EF%BC%9F.png)
如何将交错数组输入为如下表达式:
表达式是六边形的。有针对这种情况的包吗?
谢谢。
答案1
在这里,我使用 TABstacks 来制作数据堆栈,并使用\scaleleftright[max-width]{left}{content}{right}
添加括号。请注意,在第二个矩阵中,我实际上使用了 -1pt 的小负“tabbedgap”(即列间隔)来稍微重叠列。相比之下,我在第一个矩阵中使用了 +1pt 间隙
\documentclass{article}
\usepackage{scalerel,tabstackengine,amssymb,amsmath}
\stackMath
\begin{document}
\[
\setstacktabbedgap{1pt}
A_h = \scaleleftright[1.5ex]{\langle}{\tabbedCenterstack{
&0&&0&\\
0&&0&&0\\
&0&&0&
}}{\rangle}
\text{, and }
\setstacktabbedgap{-1pt}
B_h =\scaleleftright[1.5ex]{\langle}{\tabbedCenterstack{
&-1&&-1&\\
-1&&6+\varepsilon^2&&-1\\
&-1&&-1&
}}{\rangle}
\]
\end{document}
虽然这里没有显示,但可以通过\fixTABwidth{T}
在堆栈之前发出来强制统一列宽。这样做时,相应地需要更改制表符间距。
如果某人确实讨厌输入 double &&
,那么此\active
替代方法允许使用 来#
表示&&
,从而产生相同的结果:
\documentclass{article}
\usepackage{scalerel,tabstackengine,amssymb,amsmath}
\stackMath
\begin{document}
\[
\catcode`#=\active \def#{&&}
\setstacktabbedgap{1pt}
A_h = \scaleleftright[1.5ex]{\langle}{\tabbedCenterstack{
&0#0&\\
0#0#0\\
&0#0&
}}{\rangle}
\text{, and }
\setstacktabbedgap{-1pt}
B_h =\scaleleftright[1.5ex]{\langle}{\tabbedCenterstack{
&-1#-1&\\
-1#6+\varepsilon^2#-1\\
&-1#-1&
}}{\rangle}
\]
\end{document}
答案2
\left<
标准和符号覆盖三条线\right>
。
这是一个hexagon
可以接收可选参数来设置单元格宽度(默认为 1em)的环境:
\documentclass{article}
\usepackage{amsmath,collcell}
\newcolumntype{h}{>{\collectcell\hd}c<{\endcollectcell}}
\newcolumntype{k}[1]{@{\hspace{-#1\hexawidth}}}
\newcommand{\hd}[1]{\makebox[\hexawidth]{$#1$}}
\newlength{\hexawidth}
\newenvironment{hexagon}[1][1em]
{\setlength{\hexawidth}{#1}
\left<
\begin{array}{k{.33333}*{4}{hk{.5}}hk{.33333}}}
{\end{array}\right>}
\begin{document}
\[
A_{h}=
\begin{hexagon}
& 0 && 0 \\
0 && 0 && 0 \\
& 0 && 0 \\
\end{hexagon}
\qquad
B_{h}=
\begin{hexagon}[4em]
& -1 && -1 \\
-1 && 6+\varepsilon^2 && -1 \\
& -1 && -1 \\
\end{hexagon}
\]
\end{document}
请注意,\\
最后一行是必需的,因为它决定了collcell
工作原理。
答案3
我不知道scalerel
该\scaleleftright
怎么做,所以我从 Steven 的回答中复制了内容。谢谢。
但我知道array
哪些也可以用于这些表达。
\documentclass{article}
\usepackage{scalerel,amsmath,array}
\usepackage{lmodern}
\begin{document}
\[
A_h = \scaleleftright[1.5ex]{\langle}{\begin{array}{@{}c@{}c@{}c@{}c@{}c@{}c@{}}
& 0 & & 0 & \\
0 & & 0 & & 0 \\
& 0 & & 0 &\\
\end{array}}{\rangle},
\text{and}\ B_h =
\scaleleftright[1.5ex]{\langle}{\begin{array}{@{}c@{}c@{}c@{}c@{}c@{}c@{}}
& -1 & & -1 & \\
-1 & & 6+\epsilon^2 & & -1 \\
& -1 & & -1 &\\
\end{array}}{\rangle}
\]
\end{document}