考虑两个里面有长文本节点的圆圈:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1.5cm) node[text width=3cm] {This is a relatively long text};
\draw (5,0) circle (1.5cm) node[text width=3cm] {This is another very long text};
\end{tikzpicture}
\end{document}
我想让文本居中并包裹在每个圆圈中。到目前为止,我尝试了两种解决方案:
按照建议使用
label=center:<my_text>
内部node
这里。这会使文本居中,但不会换行。因此文本会超出圆圈。按照建议使用
pos=0.5
或midway
内部node
这里。这对于一个圆圈来说没问题,但对于两个圆圈来说就不行了。在第一个圆圈中,文本彼此叠放在一起。
我怎样才能实现我的愿望?
答案1
一种方法是将节点做成圆形,添加align=center
到文本中,并赋予其最小尺寸。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0)% circle (1.5cm)
node[align=center,minimum size=3cm,draw,circle]
{This is\\ a relatively\\ long text};
\draw (5,0)% circle (1.5cm)
node[align=center,minimum size=3cm,draw,circle]
{This is\\ another very\\ long text};
\end{tikzpicture}
\end{document}
您需要自己添加换行符,或者使用类似的方法parshape
来自动跟随圆圈的轮廓。
答案2
节点内的对齐由键决定align
。在这种情况下,您需要align=center
:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1.5cm) node[text width=3cm,align=center] {This is a relatively long text};
\draw (5,0) circle (1.5cm) node[text width=3cm,align=center] {This is another very long text};
\end{tikzpicture}
\end{document}