Я бы хотел, чтобы две строки текста справа от диагональных линий были выровнены по левому краю. Есть ли способ это сделать?
\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
Есть много способов сделать это, помимо методов сурка. Вот три из них (если найду, добавлю еще).
Метод 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}
Вы можете использовать полярные координаты вместо декартовых. Кроме того, этот способ вполне естественный (я предпочитаю этот способ) и не требует никаких TiкБиблиотеки Z. Однако это не совсем стандартный способ ( \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}
Таким образом, используйте стандартную команду для вставки строк в TiкZ pictures: \node
. Однако выравнивание текстов и контроль позиций не очень просты IMHO. Вам нужна 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
опцией.