tikz节点中文本的垂直对齐

tikz节点中文本的垂直对齐

以下脚本的输出

\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\begin{document}
\begin{tikzpicture}
  \node(title)[text width = 0.25\textwidth, text height = 3 cm, draw]{title};
  \end{tikzpicture}
\end{document}

在此处输入图片描述

如何垂直对齐节点中的文本?

指定text depth

\node(title)[text width = 0.25\textwidth, text height = 1cm, text depth = 1 cm, draw]{
    title line 1\\
    title line 2\\
    title line 3};

不会导致文本垂直居中。

在此处输入图片描述

答案1

text heighttext depth明确指定您给出的文本的垂直尺寸。因此 TiZ 认为节点的文本具有恰好该高度并按照该高度绘制其框。

您可以使用minimum height来设置节点的最小垂直尺寸,并minimum width使用 来设置宽度(而text width在指定宽度处插入换行minimum width则不会)。结果将是一个文本居中的框,但该框必须至少具有这些尺寸。请注意,minimum height高度和深度都围绕文本(均匀分布)。如果您想要水平居中的换行文本,则可以使用text widthtext centered

比较以下内容:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance=2cm]
  \node(1)[text centered,text width = 0.25\textwidth, minimum height = 3 cm, draw]
    {title is very long and long};
  \node(2)[minimum width = 0.25\textwidth, minimum height = 3 cm,
    draw,below of=1,anchor=north]{title is very long and long};
  \node(3)[text centered,text width = 0.25\textwidth, text height = 3 cm,
    draw,below of=2,anchor=north]{title is very long and long};
  \node(4)[text centered,text width = 0.25\textwidth, text depth = 3 cm,
    draw,below of=3,anchor=north]{title is very long and long};
  \node(5)[text centered,text width = 0.25\textwidth, text depth = 1.5 cm, text
    height = 1.5cm, draw,below of=4,anchor=north]{title is very long and long};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容