![如何将文本包装在云内的矩形中?](https://linux22.com/image/452245/%E5%A6%82%E4%BD%95%E5%B0%86%E6%96%87%E6%9C%AC%E5%8C%85%E8%A3%85%E5%9C%A8%E4%BA%91%E5%86%85%E7%9A%84%E7%9F%A9%E5%BD%A2%E4%B8%AD%EF%BC%9F.png)
我使用以下解决方案中的代码怎样才能在云图内写出完美居中的文字?:
\documentclass[border=0.2cm]{standalone} \usepackage{tikz} \usetikzlibrary{shapes.symbols} \begin{document} \begin{tikzpicture} \node[text width=0.8cm,inner sep=0pt] [execute at begin node=\setlength{\baselineskip}{8pt}, cloud, draw] (c) at (0,0) {\scriptsize{Lost\\Broker}}; \end{tikzpicture} \end{document}
我想在云内绘制额外的对齐矩形。是否可以像下面这样用矩形将文本包裹在云内,如果可能的话用灰色填充内部?
答案1
使用 tikz 库的另一种方法fit
:云节点适合矩形节点的大小
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols, fit}
\begin{document}
\begin{tikzpicture}
\node[text width=0.8cm, inner sep=1pt, fill=gray!50]
[node font=\setlength{\baselineskip}{8pt}\scriptsize, draw]
(c) at (0,0)
{Lost\\ Broker};
\node[draw, cloud, inner sep=-1pt, fit=(c)] {};
\end{tikzpicture}
\end{document}
更新:给云着色(填充):
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{backgrounds, shapes.symbols, fit}
\begin{document}
\begin{tikzpicture}
\node[text width=0.8cm, inner sep=1pt, fill=gray!50]
[node font=\setlength{\baselineskip}{8pt}\scriptsize, draw]
(c) at (0,0) {Lost\\ Broker};
\scoped[on background layer]
\node[draw, cloud, inner sep=-1pt, fit=(c), fill=cyan!30] {};
\end{tikzpicture}
\end{document}
答案2
您可以使用这样的标签
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{shapes.symbols}
\begin{document}
\begin{tikzpicture}
\node[cloud, draw, text width=0.6cm, label={[draw, text width=0.8cm, inner sep=2pt, font=\scriptsize]center:{Lost\\Broker}}] {};
\end{tikzpicture}
\end{document}
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{shapes.symbols}
\begin{document}
\begin{tikzpicture}
\node[cloud, fill=cyan, draw, text width=0.6cm, label={[draw, fill=pink, text width=0.8cm, inner sep=2pt, font=\scriptsize]center:{Lost\\Broker}}] {};
\end{tikzpicture}
\end{document}
答案3
您可以使用\fcolorbox
。但这不允许换行,因此您可以将文本放在 内\parbox
。您可能需要调整框宽度(9mm
在 MWE 中)以获得正确的换行。
还要注意,这\scriptsize
不是一个接受参数的命令,它是一个开关,它会改变字体大小,直到找到新的字体大小命令或直到组结束。因此,正确的语法\scriptsize Some text
是不是 \scriptsize{Some text}
。
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}
\begin{document}
\begin{tikzpicture}
\node[inner sep=0pt,cloud,draw] (c) at (0,0)
{\fcolorbox{black}{gray}{\parbox{9mm}{\scriptsize Lost Broker}}};
\end{tikzpicture}
\end{document}