tikz 中文本节点的坐标指定了框的中心。有没有办法让它指定框的左边缘?

tikz 中文本节点的坐标指定了框的中心。有没有办法让它指定框的左边缘?

我想让对角线右侧的两行文本左对齐。有什么办法吗?

\begin{tikzpicture}

\node[text] at (2,4) {/p/};

\draw (2.5,4) -- (5,5);
\draw (2.5,4) -- (5,3);

\node[text,align=left] at (7.2,5) {\textipa{[b]} / [+voice] \_\_ [+voice]};
\node[text,align=left] at (6.5,3) {[p] / elsewhere};

\end{tikzpicture}

在此处输入图片描述

答案1

您可以使用anchor=west通过框的最左边点来指定框的位置,或者仅仅使用right

\documentclass{article}
\usepackage{tikz}
\usepackage{tipa}
\begin{document}
\begin{tikzpicture}
 \node at (2,4) {/p/};
 \draw (2.5,4) -- (5,5) node[right,align=left] {\textipa{[b]} / [+voice] \_\_ [+voice]};
 \draw (2.5,4) -- (5,3) node[right,align=left] {[p] / elsewhere};
\end{tikzpicture}

\begin{tikzpicture}
 \node at (2,4) {/p/};
 \draw (2.5,4) -- (5,5) node[anchor=west,align=left] {\textipa{[b]} / [+voice] \_\_ [+voice]};
 \draw (2.5,4) -- (5,3) node[anchor=west,align=left] {[p] / elsewhere};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

除了 marmot 的方法外,还有很多方法可以做到这一点。下面是其中三种(如果我将来发现更多,我会添加)。

方法 1

\documentclass[tikz,margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[right] {Something} -- (-2,-1) node[left] {Dummy text} -- (0,-2) node[right] {Hello World};
\end{tikzpicture}
\end{document}

在此处输入图片描述

您可以使用极坐标代替笛卡尔坐标。此外,这种方式非常自然(我更喜欢这种方式),并且不需要任何 TiZ 库。但是,这不是一个标准方法(\draw据我所知,不应该这样做)。

方法 2

\documentclass[tikz,margin=3mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (x) {Something};
\node[below left=1cm and 2cm of x.south west] (o) {Dummy text};
\node[below right=1cm and 2cm of o.south east] (y) {Hello World};
\draw (x.west)--(o.east)--(y.west);
\end{tikzpicture}
\end{document}

在此处输入图片描述

这样就可以使用标准命令将字符串插入到 TiZ 图片:\node。但是,在我看来,对齐文本和控制位置并不容易。你需要positioning库。

方法 3

\documentclass[tikz,margin=3mm]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\coordinate[label=right: Something] (x);
\coordinate[label=right: Hello World,below=2cm of x] (y);
\coordinate[label=left: Dummy text,below left=1cm and 2cm of x] (o);
\draw (x)--(o)--(y);
\end{tikzpicture}
\end{document}

在此处输入图片描述

此方式使用\coordinate带选项的命令label

相关内容