TikZ 填充颜色:如何减少文本后面填充的空间大小?

TikZ 填充颜色:如何减少文本后面填充的空间大小?

假设我们有一些简单的代码来在文本后面显示text node彩色。fill


最小工作示例(MWE):

\documentclass[tikz,border=5mm]{standalone}

\begin{document}
    \begin{tikzpicture}
        \draw [fill=red] (0,0) -- (1,0) -- (1,1) -- (0,1) --cycle node [above right, xshift=0.25mm,yshift=2.5mm, fill=white] {Text};
    \end{tikzpicture}
\end{document}

结果截图:

结果截图


问题说明:

fill如您所见,文本两侧有大量空白。在某些情况下,这些空白的空间范围过大。

如何减少白色范围fill而不丢失文本居中对齐?我已经尝试过text width=XXXXalign=center但这只会改变右侧的空白,而文本将不再居中对齐。

如何才能减少fill左侧和右侧的范围,甚至是顶部和底部的范围?

答案1

一种更简单的方法:

\documentclass[tikz,border=5mm]{standalone}

\begin{document}
    \begin{tikzpicture}
    \node at (0,0) (a) {};
       \draw [fill = red] (-0.5,-0.5) rectangle (0.5,0.5);
        \node[draw = none,fill=white, inner sep = 0pt] at (a.center){Text};
    \end{tikzpicture}
\end{document}

这会给你:

在此处输入图片描述

当您绘制更复杂的图表时,这些类型的预定义节点定义会变得方便。

附言:谢谢您的@Vinzza善意提示!

正如@Vinzza前面提到的,您可以尝试inner sep = <size>调整间距。

答案2

如果您想要一个填充节点但带有白色背景上的文本,则可以使用带有居中标签的节点,而不是带有独立居中节点的填充路径:

\documentclass[tikz,border=2mm]{standalone} 

\begin{document}
\begin{tikzpicture}
\node[minimum size=2cm, fill=red, label={[fill=white, inner sep=0pt]center:Text}] {};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容