原始答案

原始答案

我在弄清楚如何将箭头放在我想要的位置时遇到了一些问题。

本质上,我想将箭头放在以下每棵树的中心,但它们却不断地乱窜,可能是因为页边距的原因。

有谁能想到解决办法吗?

\documentclass{article}
\usepackage{linguex}
\usepackage{qtree} 
\usepackage{multicol}
\usepackage{tikz}
\begin{document}
\begin{multicols}{3}
\ex. \small
\a. \Tree [.DP [.NP ]. NP ].DP
\b. \Tree [.DP [.NP ]. NP ].DP
\c. \Tree [.DP [.NP ]. NP ].DP

\end{multicols}

\begin{center}
\begin{tikzpicture}
\draw[->] (-2, 0) -- (-2, -0.5) node[anchor=north] {[bla]};
\draw[->] (3, 0) -- (3, -0.5) node[anchor=north] {[blu]};
\draw[->] (5, 0) -- (5, -0.5) node[anchor=north] {[bli]};   
\end{tikzpicture}
\end{center}

\end{document}

答案1

刚刚意识到,你实际上可以将一棵树放在 中\node。需要注意的一件重要事情是,树的最后一部分和节点的结束之间必须有一个空格};(对你来说可能很明显,但它一开始就吸引了我)。

\documentclass{article}
\usepackage{linguex}
\usepackage{qtree} 
\usepackage{multicol}
\usepackage{tikz}
\begin{document}
\begin{multicols}{3}
\ex. \small
\a. \begin{tikzpicture}
     \node (a) {\Tree [.DP [.NP ]. NP ].DP }; % space before }; is necessary
     \draw (a.south) -- +(0,-0.5) node[below] {[bla]};
    \end{tikzpicture}
\b. \begin{tikzpicture}
     \node (a) {\Tree [.DP [.NP ]. NP ].DP };
     \draw (a.south) -- +(0,-0.5) node[below] {[blu]};
    \end{tikzpicture}
\c. \begin{tikzpicture}
     \node (a) {\Tree [.DP [.NP ]. NP ].DP };
     \draw (a.south) -- +(0,-0.5) node[below] {[bli]};
    \end{tikzpicture}
% an empty line before \end{multicols} is necessary

\end{multicols}
\end{document}

在此处输入图片描述

原始答案

如果可以选择切换到,则可以按照以下方式tikz-qtree绘制箭头:tikzpicture\Tree

在此处输入图片描述

\documentclass{article}
\usepackage{linguex}
\usepackage{tikz-qtree}
\usepackage{multicol}
\usepackage{tikz}
\begin{document}
\begin{multicols}{3}
\ex. \small
\a. \begin{tikzpicture}[baseline]
     \Tree [.DP [.NP ] [.NP ] ]
    \draw [->] (current bounding box.south) -- +(0,-0.5) node[below] {[bla]};
    \end{tikzpicture}
\b. \begin{tikzpicture}[baseline]
    \Tree [.DP [.NP ] [.NP ] ]
    \draw [->] (current bounding box.south) -- +(0,-0.5) node[below] {[bla]};
    \end{tikzpicture}
\c. \begin{tikzpicture}[baseline]
    \Tree [.DP [.NP ] [.NP ] ]
    \draw [->] (current bounding box.south) -- +(0,-0.5) node[below] {[bla]};
    \end{tikzpicture}
\end{multicols}
\end{document}

答案2

这是一个 Forest 解决方案,它定义了一种新样式。add arrow=<text>这可以在树的前言中使用(在 Forest 树开始之后和树本身的规范之前)。它从树边界框底部的中心向下绘制一个箭头,指向包含用方<text>括号括起来的参数的节点。

\documentclass{article}
\usepackage{linguex}
\usepackage{multicol}
\usepackage[linguistics]{forest}
\forestset{%
  add arrow/.style={
    tikz+={%
      \draw [->] (current bounding box.south) -- +(0,-.5) node [anchor=north] {[#1]};
    },
  },
}
\begin{document}
\begin{multicols}{3}
  \ex. \small
  \a. \Forest{add arrow=bla [DP[NP][NP]]}
  \b. \Forest{add arrow=blu [DP[NP][NP]]}
  \c. \Forest{add arrow=bli [DP[NP][NP]]}

\end{multicols}
\end{document}

树下居中的箭头

作为额外奖励,您不必担心记住任何类型的右括号前的空格。(如果有空格,则无关紧要,因为它们会在 中qtree,但如果没有空格,它也不会在意。[在我看来,Forest 值得切换,即使只是为了这个功能!]

相关内容