
Вот мой 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}
Я хотел бы, чтобы слово "текст" было по центру внутри узла. Я перепробовал все варианты, но это не сработало.
Кроме того, я хотел бы нарисовать идентичный узел справа от этого и соединить их стрелкой.
решение1
Вместо того, чтобы рисовать фигуры и затем размещать узел в центре, вы можете придать узлу желаемую форму, а затем разместить узел там, где хотите. Поскольку вы хотите, чтобы один и тот же узел повторялся, вы можете определить использование, style
которое tikzset
может использоваться в нескольких tikzpictures.
\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}