当使用它tikzpicture
围绕矩阵元素的子集绘制一个矩形时,如何确保得到一个矩形,而不是一个具有不规则边的形状,因为它考虑到了元素的不同宽度?
例如:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes] (m)
{1 & 1 & 1 \\
1 & 1 & -2 \\
1 & 1 & 1 \\};
\draw[rounded corners,ultra thick][color=blue]
(m-2-2.north west) -- (m-1-2.north west)
-- (m-1-3.north east) -- (m-2-3.south east) -- (m-2-2.south west) -- (m-2-2.north west);
\end{tikzpicture}
\end{document}
...给出一个右侧边缘不平整的矩形。可以通过在顶行中间的 1 前添加一个白色减号 ( \color{white}-\color{black}1
) 来解决这个问题,但这个不美观的临时组合会弄乱 1 的位置!
感谢您提供的帮助。
更新
非常感谢 Heiko 的回答,它解决了给定的示例。但是,当中间行包含较长的内容时,仍然存在问题,例如
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,fit}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes] (m)
{1 & 1 & 1 \\
1 & 1.618034 & -2 \\
1 & 1 & 1 \\};
\node[draw=blue,inner sep=0pt,ultra thick,rounded corners,
fit=(m-1-2.north west) (m-1-3.north east)
(m-3-2.south west) (m-3-3.south east)
]{};
\end{tikzpicture}
\end{document}
答案1
图书馆fit
帮助:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,fit}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes] (m)
{1 & 1 & 1 \\
1 & 1 & -2 \\
1 & 1 & 1 \\};
\node[draw=blue,inner sep=0pt,ultra thick,rounded corners,
fit=(m-1-2.north west) (m-1-3.north east)
(m-2-2.south west) (m-2-3.south east)
]{};
\end{tikzpicture}
\end{document}
更新
north west
正如杰克所说,不需要规范和类似的东西,因为所有节点锚点都被使用了。如果节点面积较大,则使用所有节点或所有外部节点。 那么节点内部是什么就无关紧要了。
更新的示例文件:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,positioning,fit}
\begin{document}
\begin{tikzpicture}
\matrix [matrix of math nodes] (m)
{1 & 1 & 1 \\
1 & 1.618034 & -2 \\
1 & 1 & 1 \\};
\node[draw=blue,inner sep=0pt,ultra thick,rounded corners,
fit=(m-1-2) (m-1-3)
(m-2-2) (m-2-3)
(m-3-2) (m-3-3)
]{};
\end{tikzpicture}
\end{document}
进一步阅读:16.3 将节点拟合到一组坐标的钛钾Z 和 PGF 手册。