Die Koordinaten für einen Textknoten in Tikz geben die Mitte der Box an. Gibt es eine Möglichkeit, damit die linke Kante der Box anzugeben?

Die Koordinaten für einen Textknoten in Tikz geben die Mitte der Box an. Gibt es eine Möglichkeit, damit die linke Kante der Box anzugeben?

Ich möchte, dass die beiden Textzeilen rechts von den diagonalen Linien linksbündig ausgerichtet sind. Gibt es eine Möglichkeit, dies zu tun?

\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}

Bildbeschreibung hier eingeben

Antwort1

Sie können anchor=westdie Position der Box über ihren äußersten linken Punkt oder einfach mit angeben 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}

Bildbeschreibung hier eingeben

Antwort2

Neben den Methoden von Marmot gibt es noch viele andere Möglichkeiten, dies zu tun. Hier sind drei davon (ich werde weitere hinzufügen, wenn ich in Zukunft eine finde).

Methode 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}

Bildbeschreibung hier eingeben

Sie können Polarkoordinaten anstelle von kartesischen Koordinaten verwenden. Außerdem ist dieser Weg ziemlich natürlich (ich bevorzuge diesen Weg) und erfordert keine TikZ-Bibliotheken. Dies ist jedoch keine ganz standardmäßige Methode ( \drawso weit ich weiß, ist sie für diese Zwecke nicht vorgesehen).

Methode 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}

Bildbeschreibung hier eingeben

Verwenden Sie auf diese Weise den Standardbefehl zum Einfügen von Zeichenfolgen in TikZ Bilder: \node. Allerdings ist das Ausrichten der Texte und die Kontrolle der Positionen meiner Meinung nach nicht ganz einfach. Man braucht positioningeine Bibliothek.

Methode 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}

Bildbeschreibung hier eingeben

Auf diese Weise wird \coordinateein Befehl mit labelOption verwendet.

verwandte Informationen