![TIKZ-PGF:将两个文本节点左对齐](https://linux22.com/image/253748/TIKZ-PGF%EF%BC%9A%E5%B0%86%E4%B8%A4%E4%B8%AA%E6%96%87%E6%9C%AC%E8%8A%82%E7%82%B9%E5%B7%A6%E5%AF%B9%E9%BD%90.png)
我想在 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}