当某一部分没有填充时,多部分矩形颜色填充无法正常工作

当某一部分没有填充时,多部分矩形颜色填充无法正常工作

这可能是一个错误或版本问题,但是由两部分组成的矩形的第二部分的填充超出了框的范围。

或者我忽略了什么东西?

\documentclass[12pt,a4paper]{article}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\tikzset{
    llnode/.style = {
        draw,
        very thick,
        rectangle split,
        rectangle split parts = 2,
        rectangle split,
        rectangle split part fill = {none, orange},
        rectangle split empty part width = 0.15cm,
    }
}

\begin{document}


\usetikzlibrary {shapes.multipart}
\begin{tikzpicture}[transform shape, scale = 8]
    \fill[red] (0.25, 0) circle (0.3);
    \node [llnode] (-1, 0){A\nodepart{two}B};
    \node [llnode, rectangle split horizontal] at (1, 0) {C\nodepart{two}D};
\end{tikzpicture}

\end{document}

请注意,橙子超出了边界。

在此处输入图片描述

如果我填充第一部分,问题就解决了,但我需要第一部分是透明的。也许有办法用白色和零不透明度填充它。

答案1

这是pgflibraryshapes.multipart.code.tex库中的一个错误,它outer sep错误地使用了 。解决方法是设置outer sep0。您可能想要报告问题。

\documentclass[12pt,a4paper]{article}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\tikzset{
    llnode/.style = {
        draw,
        very thick,outer sep=0pt,
        rectangle split,
        rectangle split parts = 2,
        rectangle split part fill = {none, orange},
        rectangle split empty part width = 0.15cm,
    }
}

\begin{document}


\usetikzlibrary{shapes.multipart}
\begin{tikzpicture}[transform shape, scale = 8]
    \fill[red] (0.25, 0) circle (0.3);
    \node [llnode] (-1, 0){A\nodepart{two}B};
    \node [llnode, rectangle split horizontal] at (1, 0) {C\nodepart{two}D};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

嗯,如果可以将你不喜欢着色的节点的一部分涂成白色?在这种情况下,你可以获得:

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\tikzset{
    llnode/.style = {
        draw,
        very thick,
        rectangle split,
        rectangle split parts = 2,
        rectangle split part fill = {white, orange},
        rectangle split empty part width = 0.15cm,
    }
}

\begin{document}
    \begin{tikzpicture}[transform shape, scale = 4]
\fill[red] (-1, 0) circle (0.3);
%
\node [llnode] at (0, 0){A\nodepart{two}B};
\node [llnode, rectangle split horizontal] at (1, 0) {C\nodepart{two}D};
    \end{tikzpicture}
\end{document}

看来您选择的填充颜色none会导致节点彩色部分的填充发生偏移。这可能被视为错误。

编辑:如果你scaletikzpicture选项中删除,这个问题——错误——使用 rectangle split part fill = {none, orange}就会消失(在这种情况下transform shape没有意义)。

相关内容