我需要调整矩阵内水平线的垂直位置。以下是可用的 MWE 代码:
\documentclass[11pt,letterpaper,twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\begin{document}
\begin{equation}
R = \left[ \begin{array}{ccc|ccc}
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
\hline
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C
\end{array} \right]\!.
\end{equation}
\end{document}
预览:
我不希望这条线在与垂直线相交处产生任何间隙,我需要保持\\[2ex]
矩阵中每个元素之间的垂直间距。那么,如何才能在不改变矩阵其余部分的情况下向上移动水平线呢?
答案1
用一个技巧
\documentclass[11p]{book}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{equation}
R = \left[ \begin{array}{ccc|ccc}
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[.65ex]
\hline
\rule[0pt]{2pt}{\heightof{A}+1ex}A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C
\end{array} \right]
\end{equation}
\end{document}
替换\rule[0pt]{2pt}{\heightof{A}+1ex}
为\rule[0pt]{0pt}{\heightof{A}+1ex}
。另外,[.65ex]
当使用该选项时,通过获取矩阵中的行间值,肯定可以以更好的方式计算\\[0ex]
。我不知道这个值。
为了精确控制,你可以使用
\documentclass[11p]{book}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{mathtools}
\begin{document}
\begin{equation}%
\renewcommand{\arraystretch}{0}%
R = \left[ \begin{array}{ccc|ccc}
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[1ex]
\hline
\rule[0pt]{2pt}{\heightof{A}+1ex}%
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C
\end{array} \right]
\end{equation}
答案2
另一种可能性是cellspace
:
\documentclass[11pt, letterpaper, twoside]{book}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[total={6in,10in},left=1.5in,top=0.5in,includehead,includefoot]{geometry}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage[math]{cellspace}
\setlength{\cellspacetoplimit}{1.6ex}
\setlength{\cellspacebottomlimit}{1.6ex}
\begin{document}
\begin{equation}
R = \left[ \begin{array}{ccc|>{$}Sc<{$}cc}
\multicolumn{6}{c} {}\\
\noalign{\vspace{-3.2ex}}
A & B & C & A & B &C \\
A & B & C & A & B &C \\
A & B & C & A & B &C \\
\hline
A & B & C & A & B &C \\
A & B & C & A & B &C \\
A & B & C & A & B &C \\[-0.6ex]
\end{array} \right].
\end{equation}
\end{document}
答案3
我认为可以使用nicematrix
包快速创建此代码。这里我使用array
环境添加了我的简陋版本。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\begin{document}
$\left(\begin{array}{@{}c|c@{}}
\begin{matrix}
A & B & C\\
A & B & C\\
A & B & C
\end{matrix}
& \begin{matrix}
A & B & C\\
A & B & C\\
A & B & C
\end{matrix} \\
\hline
\begin{matrix}
A & B & C\\
A & B & C\\
A & B & C
\end{matrix}&
\begin{matrix}
A & B & C\\
A & B & C\\
A & B & C
\end{matrix}
\end{array}\right)$
\end{document}
或者这个具有矩阵垂直空间的简单解决方案[.3cm]
。
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\begin{document}
$R=\left(\begin{array}{@{}c|c@{}}
\begin{matrix}
A & B & C\\[.3cm]
A & B & C\\[.3cm]
A & B & C
\end{matrix}
& \begin{matrix}
A & B & C\\[.3cm]
A & B & C\\[.3cm]
A & B & C
\end{matrix}\\[.1cm] \\[-.1cm]
\hline\\
\begin{matrix}
A & B & C\\[.3cm]
A & B & C\\[.3cm]
A & B & C
\end{matrix}&
\begin{matrix}
A & B & C\\[.3cm]
A & B & C\\[.3cm]
A & B & C
\end{matrix}
\end{array}\right).$
\end{document}
答案4
{bNiceMatrix}
的环境与的nicematrix
经典环境类似,但在用户可访问的数组下创建 PGF/Tikz 节点。{bmatrix}
amsmath
在这里我使用这些节点和 Tikz 来绘制垂直规则(未断开)和水平规则(带有yshift
)。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
\begin{equation}
R = \begin{bNiceMatrix}[margin]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C \\[2ex]
A & B & C & A & B &C
\CodeAfter
\tikz \draw (1-|4) -- (7-|4)
([yshift=4pt]4-|1) -- ([yshift=4pt]4-|7) ;
\end{bNiceMatrix}
\end{equation}
\end{document}
备注:您需要两次编译。
但是,在这种情况下,似乎使用 键cell-space-limits
就nicematrix
可以完成工作(无需使用 Tikz)。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{equation}
R = \begin{bNiceArray}{ccc|ccc}[margin,cell-space-limits=6pt]
A & B & C & A & B &C \\
A & B & C & A & B &C \\
A & B & C & A & B &C \\
\hline
A & B & C & A & B &C \\
A & B & C & A & B &C \\
A & B & C & A & B &C
\end{bNiceArray}
\end{equation}
\end{document}