TikZ 图中节点的对齐

TikZ 图中节点的对齐

我正在尝试在 Tikz 中绘制图表。其结构与一般时间轴箭头的结构相同。我无法对齐节点(即节点中包含的书面文本)。更准确地说,最后的注释 - 带有 IPA 文本的节点 - 没有对齐,并且比它之前的更靠近主箭头。有人可以帮忙吗?

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{tipa} % IPA symbols

\begin{document}
\begin{center}
    \begin{minipage}{.8\textwidth}
        \begin{tikzpicture}
        \draw [->, thick] (1, 0) --(12, 0);
        \draw [thick] (1,.2) --(1, -.2);
        \draw [thick] (3,.2) --(3, -.2);
        \draw [thick] (5,.2) --(5, -.2);
        \draw [thick] (6.5,.2) --(6.5, -.2);
        \draw [thick] (7.5,.2) --(7.5, -.2);
        \draw [thick] (9,.2) --(9, -.2);
        \draw [thick] (10,.2) --(10, -.2);
        \draw [thick] (11,.2) --(11, -.2);
        \draw [thick] (1,-.2) node[below]{\small{Plosive}};
        \draw [thick] (3,-.2) node[below]{\small{Frikative}};
        \draw [thick] (5,-.2) node[below]{\small{Sonoranten}};
        \draw [thick] (5,-.6) node[below]{\small{(r, l, $\underbrace{\text{m, n}}_\text{Nasale}$)}};
        \draw [->, thick] (4.375, -1.2) --(4.375, -1.8);
        \draw [thick] (4.65, -1.2) --(4.65, -1.92);
        \draw [->, thick] (4.65, -2.3) --(4.65, -2.6);
        \draw [thick] (4.375, -1.8) node[below]{\footnotesize{Vibrant}};
        \draw [thick] (4.65, -2.6) node[below]{\footnotesize{Lateral}};
        \draw [thick] (6.5, -.2) node[below]{\small{\textipa{j}}};
        \draw [thick] (7.5,-.2) node[below]{\small{\textipa{i, y, u}}};
        \draw [thick] (9,-.2) node[below]{\small{\textipa{e, \o, o}}};
        \draw [thick] (10,-.2) node[below]{\small{\textipa{E, O}}};
        \draw [thick] (11,-.2) node[below]{\small{\textipa{a, A}}};
        \end{tikzpicture} \\
    \end{minipage}
\end{center}
\end{document}

答案1

原因是不同的节点具有不同的高度,因此它们的基线与“轴”的距离也不同。有几种方法可以解决这个问题,例如text height为所有节点设置相同的高度(例如)。不过,也许更简单的方法是在每个节点中node[below,text height=2ex] ...添加一个(例如)。\strutnode [below]{\strut ...}

其他一些评论:

  • \small不是接受参数的宏,而是影响同一组内后续文本的开关。因此,应将其用作{\small text},而不是\small{text}
  • 我认为minipage这里没有任何用处,所以我会删除它。此外,\\后面的\end{tikzpicture}也不需要。
  • 通过使用循环可以大大简化代码,见下面的示例。

enter image description here

\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{tipa} % IPA symbols

\begin{document}
\begin{center}
\begin{tikzpicture}
   \draw [->, thick] (1, 0) --(12, 0);
   \foreach [count=\i] \x/\txt in {1/Plosive,3/Frikative,5/Sonoranten,6.5/\textipa{j},7.5/\textipa{i, y, u},9/\textipa{e,\o,o},10/\textipa{E, O},11/\textipa{a, A}}
     \draw (\x,0.2) -- (\x,-0.2) node[below,font=\small] (n\i) {\strut\txt};

   \node [below,font=\small] (n3-1) at (n3.south) {(r, l, $\underbrace{\text{m, n}}_\text{Nasale}$)};
   \draw [thick,->] ([xshift=1.8em,yshift=3.3ex]n3-1.south west) -- ++(0,-1.4cm) node[below,font=\footnotesize] {Lateral};
   \draw [thick,->] ([xshift=0.9em,yshift=3.3ex]n3-1.south west) -- ++(0,-0.6cm) node[below,fill=white,inner sep=3pt,font=\footnotesize] {Vibrant};
\end{tikzpicture}
\end{center}
\end{document}

相关内容