在一张用钛制成的桌子上钾z,我试图让第一行比其他行更暗,我想,这有点蛮力。碰巧我想要的边框必须是圆形的,而最极端的单元格(西北、东北、东南和西南)覆盖了它,如下图所示:
(较浅的青色有点难以看清,但仍然覆盖了边框)
如何解决这个问题?这是我的 MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[scale=.9]
\matrix[matrix of math nodes,minimum width=2.5cm,minimum height=6mm,column 1/.style={nodes={fill=cyan!7}}, column 2/.style={nodes={fill=cyan!7}}, row 1/.style={nodes={fill=cyan!45}}] (func) {
x & y = 2x + 1\\
-3&-5\\
-2&-3\\
-1&-1\\
0&1\\
1&3\\
2&5\\
3&7\\
};
\draw [rounded corners=5pt,thick] (func-1-1.north west) rectangle (func-8-2.south east);
\draw [thick] (func-1-1.south west) -- (func-1-2.south east);
\draw [thick] (func-1-1.north east) -- (func-8-1.south east);
\end{tikzpicture}
\end{document}
答案1
有东西为您工作!
我没有通过矩阵命令进行填充,而是事后使用圆弧来填充角。
代码需要,\usetikzlibrary{calc}
因为要计算相对坐标。另外,请注意我如何使用图层让填充位于矩阵文本后面。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[scale=.9]
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\matrix[matrix of math nodes,minimum width=2.5cm,minimum height=6mm,column 1/.style={nodes={fill=cyan!7}}, column 2/.style={nodes={fill=cyan!7}}, row 1/.style={nodes={fill=none}}] (func) {
x & y = 2x + 1\\
-3&-5\\
-2&-3\\
-1&-1\\
0&1\\
1&3\\
2&5\\
3&7\\
};
% Fill in top row
\begin{pgfonlayer}{background}
\filldraw [fill=cyan!45,thick] (func-1-1.south west) -- ($ (func-1-1.north west)+(0,-5pt)$ )
arc (180:90:5pt)
-- ($ (func-1-2.north east) + (-5pt,0) $)
arc (90:0:5pt)
-- (func-1-2.south east);
\end{pgfonlayer}
\draw [rounded corners=5pt,thick] (func-1-1.north west) rectangle (func-8-2.south east);
\draw [thick] (func-1-1.south west) -- (func-1-2.south east);
\draw [thick] (func-1-1.north east) -- (func-8-1.south east);
\end{tikzpicture}
\end{document}
路径从第一行的西南角开始。然后它向上延伸到左上角,刚好低于 5pt,这是圆角的半径。然后,我得到了 5pt 的圆弧,你会看到图案如何一直延伸到第一行的东南角。
我必须承认我对 tikz 不太熟悉,所以也许有更快捷的方法。无论如何,我认为这是一种非常通用的技术,而且也有一些优雅之处!
最后,我认为可以使用普通 TeX 获取此表。就我个人而言,我更喜欢将其用于文档中。如果您需要帮助,请问我。
答案2
带有({NiceTabular}
版本nicematrix
≥ 6.23)。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
$\begin{NiceArray}{c|c}[rounded-corners,hvlines,columns-width=20mm,color-inside]
\rowcolor{cyan!45}
x & y = 2x+1 \\
\Hline
\Block[fill=cyan!7]{*-1}{} % color for the first column
-3 & \Block[fill=cyan!7]{*-1}{} % color for the second column
-5 \\
-2 & -3 \\
-1 & -1 \\
0 & 1 \\
1 & 3 \\
2 & 5 \\
3 & 7 \\
\end{NiceArray}$
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。