这是我的 MWE:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[blue!20!black,fill=blue!20,rounded corners=10,thick] (0,0) rectangle (3,1) node {text};
\end{tikzpicture}
\end{document}
我想让“text”一词在节点内居中。我尝试了各种选项,但都没有成功。
另外,我想在这个节点的右边画一个相同的节点,并在两者之间画一个箭头。
答案1
您无需绘制形状然后将节点放置在中心,而是可以赋予节点所需的形状,然后将节点放置在所需的位置。由于您希望重复相同的节点,因此您可以定义一个可以在多个 tikzpicture 中使用的style
using 。tikzset
\tikzset{mynode/.style={draw=blue!20!black, fill=blue!20, rounded corners=10, thick, minimum width=3cm, minimum height=1cm}}
然后,您可以通过指定节点的坐标来手动放置节点。
但这里还有另外两种放置可能性。
使用positioning
:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{mynode/.style={draw=blue!20!black, fill=blue!20, rounded corners=10, thick, minimum width=3cm, minimum height=1cm}}
\begin{document}
\begin{tikzpicture}[node distance=10mm]
\node[mynode](A){Text 1};
\node[mynode, right=of A](B){Text 2};
\node[mynode, right=of B](C){Text 3};
\draw[thick, ->](A)--(B);
\draw[thick, ->](B)--(C);
\end{tikzpicture}
\end{document}
使用chains
:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains}
\tikzset{mynode/.style={draw=blue!20!black, fill=blue!20, rounded corners=10, thick, minimum width=3cm, minimum height=1cm}}
\begin{document}
\begin{tikzpicture}[start chain, node distance=10mm, every join/.style={->, thick}]
\node[on chain, mynode](A){Text 1};
\node[on chain=going right, mynode, join](B){Text 2};
\node[on chain=going right, mynode, join](C){Text 3};
\end{tikzpicture}
\end{document}
手动放置(间距略有不同,因为这将节点置于中心并且不考虑节点边框的厚度):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains}
\tikzset{mynode/.style={draw=blue!20!black, fill=blue!20, rounded corners=10, thick, minimum width=3cm, minimum height=1cm}}
\begin{document}
\begin{tikzpicture}
\node[mynode] at (0,0) (A){Text 1};
\node[mynode] at (4,0) (B){Text 2};
\node[mynode] at (8,0) (C){Text 3};
\draw[thick, ->](A)--(B);
\draw[thick, ->](B)--(C);
\end{tikzpicture}
\end{document}