上下文

上下文

上下文

我知道如何使用append after command在矩形内画一个十字(见下面的代码块和图像)

\documentclass[border=2]{standalone}

\usepackage{tikz}

\usetikzlibrary{shapes.misc, fit}

\tikzset{
  mystyle/.style = {
    rectangle,
    draw,
    append after command={
      node [
        fit = (\tikzlastnode),
        inner sep = -\pgflinewidth,
        cross out,
        draw = blue
      ] {}
    }
  },
}

\begin{document}
\begin{tikzpicture}

  \node [mystyle] {a};

\end{tikzpicture}
\end{document}

带有矩形边框的节点,节点内部的文本为“a”,矩形内部、文本上方有一个十字

如上图所示,蓝色十字线绘制在节点文本的上方。我想改变这种行为。我希望文本位于蓝色十字线的上方,这样文本就不会被任何东西覆盖。

问题

如何才能让节点的文本不被绘制的蓝色十字覆盖append after command

实现此目的的一种方法是让append after command“a”下方画一个十字。是否有可以传递的选项来append after command设置该行为?

答案1

您可以使用以下方式自定义节点“背景” path picture

在此处输入图片描述

\documentclass[border=2]{standalone}
\usepackage{tikz}

\tikzset{
    mybg/.style={
        path picture={
            \draw[blue] (path picture bounding box.north west) -- (path picture bounding box.south east)
            (path picture bounding box.north east) -- (path picture bounding box.south west);
        }
    },
}

\begin{document}
\begin{tikzpicture}
    \node [draw,mybg] {a};
\end{tikzpicture}
\end{document}

相关内容