因此,我想做的是:我创建了一个矩阵 C 和另一个矩阵 D。并且我标记了列和行。现在,我想将这两个矩阵合并在一起,保留标签。但我希望 - 我希望这是可能的 - 有一条虚线穿过矩阵,指示标签“TX^C”的结束位置和标签“TX^D”的开始位置。
这是我目前所拥有的:
\documentclass[a4paper12pt]{article}
\usepackage{geometry}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{graphicx}
\begin{document}
\[\mathbf{J} =
\begin{blockarray}{cccccc}
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
\begin{block}{(ccccc)c}
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{block}
\end{blockarray}
\]
\end{document}
只缺少虚线。或者,用浅色阴影遮盖上部矩阵的背景也不错。我刚刚读过一个类似的问题这里。但由于我不太了解 LaTeX,我不知道是否要通过使用 tikz 让事情变得过于复杂。
小编辑:如果我想要两个垂直标签怎么办?例如,我正在尝试这样做:
\[\mathbf{Pairs} =
\begin{blockarray}{cc}
Transmitter & Receiver \\
\begin{block}{c(cc)c}
TX_1^C & (x,y) & (x,y) & BS \\
TX_2^C & (x,y) & (x,y) & BS \\
&\vdots & \vdots \\
TX_{max}^C & (x,y) & (x,y) & BS \\
\BAhhline{......}
TX_1^D & (x,y) & (x,y) &RX_1^D \\
TX_2^D & (x,y) & (x,y) &RX_2^D \\
&\vdots & \vdots \\
TX_{ax}^D & (x,y) & (x,y) &RX_{max}^D \\
\end{block}
\end{blockarray}
\]
答案1
该包blkarray
已经为不同的行提供了几个命令。其中一个是\BAhhline
你可以定义行的类型
\documentclass[a4paper12pt]{article}
\usepackage{geometry}
\usepackage{blkarray}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{graphicx}
\begin{document}
\[\mathbf{J} =
\begin{blockarray}{cccccc}
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
\begin{block}{(ccccc)c}
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\BAhhline{......}
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{block}
\end{blockarray}
\]
\end{document}
答案2
使用{NiceMatrix}
,nicematrix
您有键first-row
、last-row
和first-col
来last-col
指定外部行和列,并且您可以使用它来添加虚线规则,\Hline[tikz=dashed]
使用 TikZ 绘制规则。
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\usepackage{nicematrix,tikz}
\begin{document}
\[\mathbf{J} =
\begin{pNiceMatrix}[first-row,last-col=6]
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\Hline[tikz=dashed]
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{pNiceMatrix}
\]
\end{document}
默认情况下,外部行和列中不绘制虚线。如果您还想在最后一列中绘制虚线,则必须使用另一种技术。使用{NiceArray}
和 直接在该 的前言中指定圆括号的位置{NiceArray}
。
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\usepackage{nicematrix,tikz}
\begin{document}
\[\mathbf{J} =
\begin{NiceArray}{(ccccc)c}[first-row]
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\Hline[tikz=dashed]
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{NiceArray}
\]
\end{document}
如果想要在虚线的两边留出更多空间,则必须使用total-width
命令键\Hline
。
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\usepackage{nicematrix,tikz}
\begin{document}
\[\mathbf{J} =
\begin{NiceArray}{(ccccc)c}[first-row]
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\Hline[tikz=dashed,total-width=2mm]
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{NiceArray}
\]
\end{document}
该软件包nicematrix
还提供了改进点式规则的工具。
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\usepackage{nicematrix,tikz}
\begin{document}
\NiceMatrixOptions{xdots/shorten=6pt}
\[\mathbf{J} =
\begin{NiceArray}{(ccccc)c}[first-row,renew-dots]
RB_1 & RB_2 & RB_3 & \dots & RB_m \\
1 & 0 & 1 & \dots & 0 & TX_1^C \\
0 & 1 & 0 & \dots & 0 & TX_2^C \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^C \\
\Hline[tikz=dashed,total-width=2mm]
1 & 0 & 1 & \dots & 0 & TX_1^D \\
0 & 1 & 0 & \dots & 0 & TX_2^D \\
\vdots & \vdots & \vdots & & \vdots & \\
& & & & & \\
0 & 0 & 0 & \dots & 1 & TX_{max}^D \\
\end{NiceArray}
\]
\end{document}