单元格颜色覆盖单元格圆角边框

单元格颜色覆盖单元格圆角边框

在一张用钛制成的桌子上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

有东西为您工作!

我没有通过矩阵命令进行填充,而是事后使用圆弧来填充角。

Tikz 彩色圆桌固定

代码需要,\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 节点)。

上述代码的输出

相关内容