有什么方法可以实现矩阵的编号显示在矩阵本身下方而不是右侧?
我使用\equation
环境进行编号,\multicols
因为我想将矩阵并排放置。
这是我使用的代码:
\documentclass{article}
\usepackage{multicol}
\usepackage[table]{xcolor}
\begin{document}
\begin{multicols}{3}
\noindent
\begin{equation}
\left(\begin{array}{cccc}
\rowcolor{red!20}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\rowcolor{blue!20}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{equation}
\begin{equation}
\left(\begin{array}{>{\columncolor{olive!20}}cc>{\columncolor{yellow!20}}cc}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{equation}
\begin{equation}
\left(\begin{array}{>{\columncolor{red!20}}cc>{\columncolor{b!20}}cc}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{equation}
\end{multicols}
\end{document}
答案1
編輯 II为了解决行颜色的问题,我已将环境更改为gather
使用数学包裹
默认情况下,方程编号可以放在左侧或右侧,但不能放在下方。要做到这一点,您需要“手动”将它们放在那里。下面的代码定义了一个可以为您执行此操作的新环境。它实际上做的是将方程放在array
第一行中,方程编号作为第二行添加以产生:
編輯我如图所示,它与\label
和\ref
命令兼容,并且与超链接。诀窍在于\refstepcounter
用于增加方程计数器。
完整代码如下:
\documentclass{article}
\usepackage{multicol}
\usepackage{hyperref}
\usepackage{environ}
\usepackage{amsmath}% needed for gather
\usepackage[table]{xcolor}
\NewEnviron{Equation}{\refstepcounter{equation}%
\begin{gather*}\BODY\\(\theequation)\end{gather*}%
}
\begin{document}
\begin{multicols}{3}
\noindent
\begin{Equation}\label{one}
\left(\begin{array}{>{\columncolor{olive!20}}cc>{\columncolor{yellow!20}}cc}
\rowcolor{red!20}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\rowcolor{blue!20}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{Equation}
\begin{Equation}\label{two}
\left(\begin{array}{>{\columncolor{olive!20}}cc>{\columncolor{yellow!20}}cc}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{Equation}
\begin{Equation}
\left(\begin{array}{>{\columncolor{red!20}}cc>{\columncolor{olive!20}}cc}
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 \\
\end{array}\right)
\end{Equation}
\end{multicols}
Look at \ref{one} and \ref{two}.
\end{document}
編輯 III这是一个使用蒂克兹通过“辅助环境”为行和列着色ColouredMatrix
。输出类似:
这种方法的主要优点是可以稍微容易地指定行和列的颜色。缺点是您需要使用\&
作为列分隔符。以下是代码:
\documentclass{article}
\usepackage{multicol}
\usepackage{hyperref}
\usepackage{environ}
\usepackage{amsmath}
\usepackage[table]{xcolor}
\NewEnviron{Equation}{\refstepcounter{equation}%
\begin{gather*}\BODY\\(\theequation)\end{gather*}%
}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{
% short hands for colouring the rows and columns of the matrix
coloured row/.style args={#1,#2}{row #1/.style={nodes={fill=#2!20}}},
coloured col/.style args={#1,#2}{column #1/.style={nodes={fill=#2!20}}},
}
%usage: \begin{ColouredMatrix}[coloured row={row colour}, ...]\end{ColouredMatrix}
\NewEnviron{ColouredMatrix}[1][]{%
\tikzpicture[% adjust the size and placement of the delimiters as they are too big by default
every left delimiter/.style={xshift=0.65em,scale=0.9,yshift=0.4em},
every right delimiter/.style={xshift=-0.65em,scale=0.9,yshift=0.4em}]
\matrix [matrix of math nodes, left delimiter=(, right delimiter=),
ampersand replacement=\&, #1]
{ \BODY };
\endtikzpicture%
}
\begin{document}
\begin{multicols}{3}
\noindent
\begin{Equation}\label{one}
\begin{ColouredMatrix}[%
coloured row={1,red}, coloured row={3,blue},
coloured col={1,olive},coloured col={4,yellow}]
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
\end{ColouredMatrix}
\end{Equation}
\begin{Equation}\label{two}
\begin{ColouredMatrix}[%
coloured col={1,olive}, coloured col={4,yellow}]
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
\end{ColouredMatrix}
\end{Equation}
\begin{Equation}
\begin{ColouredMatrix}[%
coloured col={1,red}, coloured row={3,green}]
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
0 \& 0 \& 0 \& 0 \\
\end{ColouredMatrix}
\end{Equation}
\end{multicols}
Look at \ref{one} and \ref{two}.
\end{document}