我目前在突出显示矩阵内的元素时遇到了问题。我在这里遇到了很多问题,我的问题是我有一个矩阵公式,{N}=[AB]{E},我想突出显示 [AB] 矩阵内的部分。我上传了一张图片来给你一个想法。到目前为止我的代码:
\documentclass[11pt,twoside]{report}
\usepackage{amsmath} %helps with mathematics
\usepackage{amssymb} %helps with mathematical symbols
\numberwithin{equation}{section} %numbers the equation like (2.1)
\begin{document}
\begin{equation}
\begin{Bmatrix}
N_x \\
N_y \\
N_{xy} \\
M_x \\
M_y \\
M_{xy}
\end{Bmatrix}
=
\begin{bmatrix}
A_{11} & A_{12} & A_{16} & B_{11} & B_{12} & B_{16} \\
A_{21} & A_{22} & A_{26} & B_{21} & B_{22} & B_{26} \\
A_{61} & A_{62} & A_{66} & B_{61} & B_{62} & B_{66} \\
B_{11} & B_{12} & B_{16} & D_{11} & D_{12} & D_{16} \\
B_{21} & B_{22} & B_{26} & D_{21} & D_{22} & D_{26} \\
B_{61} & B_{62} & B_{66} & D_{61} & D_{62} & D_{66} \\
\end{bmatrix}
\begin{Bmatrix}
\epsilon_x \\
\epsilon_y \\
\epsilon_{xy} \\
\kappa_x \\
\kappa_y \\
\kappa_{xy}
\end{Bmatrix}
\end{equation}
\end{document}
如果我尝试使用 tikzpictures,我会面临以下问题: - 无法按预期排列矩阵。它们将放置在彼此之下 - 使用 tikzpictures 时,方程编号将不会对齐方程高度的一半 我最好希望在矩阵的要突出显示部分后面有一个填充区域。
有人能帮我吗?
答案1
我将提出两种解决方案。第一种是通过简单地改变字体颜色来突出显示给定的元素,而第二种是通过改变背景颜色来突出显示元素。
字体颜色
这可能是最简单的。你可以使用xcolor
改变字体的颜色。由于矩阵的构造方式,颜色仅适用于该粒子元素。
由于要突出显示相当多的元素,我分别为\r
和定义了快捷方式和。因为我\b
\color{red}
\color{blue}
不要想要全局覆盖这些函数,我随后定义它们,之后将恢复\begin{equation}
原始\r
和函数\b
\end{equation}
\documentclass[11pt,twoside]{report}
\usepackage{amsmath} %helps with mathematics
\usepackage{amssymb} %helps with mathematical symbols
\numberwithin{equation}{section} %numbers the equation like (2.1)
\usepackage{xcolor}
\begin{document}
\begin{equation}\def\r{\color{red}}\def\b{\color{blue}}
\begin{Bmatrix}
N_x \\
N_y \\
N_{xy} \\
M_x \\
M_y \\
M_{xy}
\end{Bmatrix}
=
\begin{bmatrix}
A_{11} & A_{12} & \r A_{16} & \b B_{11} & \b B_{12} & \b B_{16} \\
A_{21} & A_{22} & \r A_{26} & \b B_{21} & \b B_{22} & \b B_{26} \\
\r A_{61} & \r A_{62} & A_{66} & \b B_{61} & \b B_{62} & \b B_{66} \\
\b B_{11} & \b B_{12} & \b B_{16} & D_{11} & D_{12} & \r D_{16} \\
\b B_{21} & \b B_{22} & \b B_{26} & D_{21} & D_{22} & \r D_{26} \\
\b B_{61} & \b B_{62} & \b B_{66} & \r D_{61} & \r D_{62} & D_{66} \\
\end{bmatrix}
\begin{Bmatrix}
\epsilon_x \\
\epsilon_y \\
\epsilon_{xy} \\
\kappa_x \\
\kappa_y \\
\kappa_{xy}
\end{Bmatrix}
\end{equation}
\end{document}
背景色
为了突出矩阵元素的背景,我使用了tikz
它有一个matrix
库,当与 Ti 的其他所有东西结合起来时,它非常强大钾Z 提供。
这里的关键是我不想在元素之间出现尴尬的间隙,可以通过设置为适当的值来避免。由于所有节点都具有相同的文本高度和深度(即基线上方和下方的距离),因此无需调整节点的高度和深度,但如果确实需要调整它们,则minimum width
必须以相同的方式进行设置。text height
text depth
minimum width
此外,如果某一列比其他列宽很多,则可以调整上述调整,使其仅适用于该列column <number>/.style={}
(当然,行也是如此)。予以适当修改)。
但最终,尽管采取了上述预防措施,每个矩阵元素之间仍然存在微小的白色间隙,可以通过将row sep
和设置column sep
为较小的负距离来避免。
最后,由于我们使用 Ti钾Z 矩阵与通常的数学矩阵相结合,我调整了inner sep
元素,使它们更接近,从而使矩阵具有相似的维度。默认情况下,Ti钾Z 矩阵比通常的数学矩阵稍大一些。
\documentclass[11pt,twoside]{report}
\usepackage{amsmath} %helps with mathematics
\usepackage{amssymb} %helps with mathematical symbols
\numberwithin{equation}{section} %numbers the equation like (2.1)
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{equation}
\begin{Bmatrix}
N_x \\
N_y \\
N_{xy} \\
M_x \\
M_y \\
M_{xy}
\end{Bmatrix}
=
\tikz [baseline=(m.center)]
\matrix (m) [
matrix of math nodes,
left delimiter={[},
right delimiter={]},
column sep=-0.1pt,
row sep=-0.1pt,
nodes={minimum width=2.4em, inner sep=2pt},
r/.style={fill=red!20},
b/.style={fill=blue!20}
] {
A_{11} & A_{12} & |[r]| A_{16} & |[b]| B_{11} & |[b]| B_{12} & |[b]| B_{16} \\
A_{21} & A_{22} & |[r]| A_{26} & |[b]| B_{21} & |[b]| B_{22} & |[b]| B_{26} \\
|[r]| A_{61} & |[r]| A_{62} & A_{66} & |[b]| B_{61} & |[b]| B_{62} & |[b]| B_{66} \\
|[b]| B_{11} & |[b]| B_{12} & |[b]| B_{16} & D_{11} & |[r]| D_{12} & |[r]| D_{16} \\
|[b]| B_{21} & |[b]| B_{22} & |[b]| B_{26} & |[r]| D_{21} & D_{22} & D_{26} \\
|[b]| B_{61} & |[b]| B_{62} & |[b]| B_{66} & |[r]| D_{61} & D_{62} & D_{66} \\
};
\begin{Bmatrix}
\epsilon_x \\
\epsilon_y \\
\epsilon_{xy} \\
\kappa_x \\
\kappa_y \\
\kappa_{xy}
\end{Bmatrix}
\end{equation}
\end{document}