形状顶角的 TikZ 徽标不符合形状边界

形状顶角的 TikZ 徽标不符合形状边界

我想在tikz创建的流程图样式中包含 Bash/Python 图像,以便一目了然地看到该过程正在使用哪个程序(我当前的项目广泛使用这两个程序)。但是,我无法让图像遵守形状边界:

在此处输入图片描述

请问如何强制徽标始终位于形状的左上角?我可能需要改变形状的高度和宽度,并且不能声称对相对定位有很深的了解tikz,我尝试了自我回答由 @Zarko 添加到 Node,文本位于矩形的左上角和右下角但 LaTeX 抱怨说local name is not defined

\documentclass[border=0pt]{standalone}

\usepackage{tikz}
\usepackage{graphicx}

\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}[
    base/.style = {draw,
                  align=center,
                  inner sep=1mm,
                  },
    python/.style = {base,
                    align=center,
                    minimum height=1cm,
                    label={above left:
                    \includegraphics[height=3mm]{example-image-a}}
                    },
]
\node[python, text width=2cm] (test) {Testing image logo};
\end{tikzpicture}
\end{document}

答案1

label机制有一些您需要覆盖的自动化功能:

  • 通常,标签放置在其父级的外面。
  • 标签的锚点将会捕捉到八个主罗盘锚点之一(这里是东南锚点)。
  • 标签位置above left将被解释为角度 135。

您需要使用:

  • 标签位置(即父节点的north west实际锚点),north west
  • 标签锚点north west(覆盖自动的anchor = south east),并且,
  • 可能,inner sep = 0pt和/或outer sep = \pgflinewidth将标签整齐地推入角落,见下文。

需要注意的是,锚点位于父节点边界的外部,这将导致inner sep = 0pt
在此处输入图片描述


使用outer sep = 0pt创建此输出:
在此处输入图片描述

即使没有绘制边框,outer sep默认情况下也是如此。使用.5\pgflinewidthouter sep = auto在全球范围内解决这个问题0pt或者在节点未绘制时将其设置为。


最好的方法可能是将outer sep = \pgflinewidth标签推到边框内,但这仅当两个节点具有相同的线宽时才有效。
在此处输入图片描述

代码

\documentclass[border=0pt]{standalone}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
\begin{tikzpicture}[
    base/.style = {draw,
                  align=center,
                  inner sep=1mm,
                  },
    python/.style = {base,
                    align=center,
                    minimum height=1cm,
                    label={[inner sep=+0pt, outer sep=+\pgflinewidth,
                            anchor=north west]north west:
                    \includegraphics[height=3mm]{example-image-a}}
                    },
]
\node[python, text width=2cm] (test) {Testing image logo};
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容