TIKZ-PGF:将两个文本节点左对齐

TIKZ-PGF:将两个文本节点左对齐

我想在 tikz-figure 中绘制两个文本节点,其中文本左对齐而不是居中:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node at (1.0, 2.0) {veeeeeeeeeeery long text node};
    \node at (1.0, 1.0) {short text node};
  \end{tikzpicture}
\end{figure}

\end{document}

这里的位置定义了文本的中心。我想要做的是指定文本的左侧位置。谁来做这个?

答案1

如果我理解正确的话,您希望节点中的文本显示为左对齐。您可以使用anchor告诉 TikZ 将节点的哪个锚点放置在指定坐标处的选项:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node [anchor=west] at (1.0, 2.0) {veeeeeeeeeeery long text node};
\node [anchor=west] at (1.0, 1.0) {short text node};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

这很容易:只需用来\node[right]告诉TikZ从指定位置向右移动节点:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node[right] at (1.0, 2.0) {veeeeeeeeeeery long text node};
    \node[right] at (1.0, 1.0) {short text node};
  \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述


如果您希望文本之间的距离不要太远,则可以使用命名节点进行引用,而无需尝试:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node[right,inner sep=0,minimum height=0.6cm] (a) at (1.0, 2.0) {veeeeeeeeeeery long text node};
    \node[below right,inner sep=0,minimum height=0.6cm] (b) at (a.south west) {short text node};
    \node[below right,inner sep=0,minimum height=0.6cm] (c) at (b.south west) {another text node};
    \node[below right,inner sep=0,minimum height=0.6cm] (d) at (c.south west) {yet another text node};
  \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述


align=<key>如果对节点使用该选项,那么还可以使用\\节点内部进行换行,从而将所有内容放在单个节点中:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node[align=left] {veeeeeeeeeeery long text node\\ short text node\\ another text node\\yet another text node};
  \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述


如果换行的位置无所谓,您可以使用text width=<length>自动断行选项:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{figure}
  \begin{tikzpicture}
    \node[text width=5cm] {veeeeeeeeeeery long text node; short text node; another text node; yet another text node};
  \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述

相关内容