beamer - 揭示 qtree 语法树的部分内容

beamer - 揭示 qtree 语法树的部分内容

我正在使用qtree来绘制语法树(在有中文支持的beamer情况下,尽管我认为这不会影响这个问题)。我能够逐步显示树的不同级别,使用(请参阅下面的 MWE)。但此外,我希望能够以相同的方式发现树内的边缘(线)。(抱歉 - StackExchange 界面不允许我发布带有 CJK 字符的问题,所以我用每个字符替换了。)xeCJK\uncoverX

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[compress]{beamer}

\usepackage{qtree}      % allows syntax trees
\usepackage{textcomp}   % allows \textrightarrow
\usepackage[AutoFallBack=true]{xeCJK}

\begin{document}

\frame{
  \Tree [.{\uncover<3->{(V)-V}}
    [.{\uncover<2->{(V)-V}} [.V X\\ten ] [.N\textrightarrow V X\\day ] ]
    [.{\uncover<2->{(V)-V}} [.V X\\one ] [.V X\\{to rain} ] ]
    ]

\uncover<4->{\vskip12pt To rain once in ten days.}

}

\end{document}

幻灯片 1

幻灯片 2

幻灯片 3

(最后一张幻灯片省略)

答案1

我建议你换tikz-qtree这样你就可以使用 TikZ 的功能:

\documentclass[compress]{beamer}

\usepackage{tikz-qtree}      % allows syntax trees
\usepackage{textcomp}   % allows \textrightarrow
\usepackage[AutoFallBack=true]{xeCJK}

\tikzset{
  invisible/.style={opacity=0},
  visible on/.style={alt={#1{}{invisible}}},
  alt/.code args={<#1>#2#3}{%
    \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}}
  }
}

\begin{document}

\begin{frame}
\centering
\begin{tikzpicture}
  \Tree 
   [. \node[visible on=<3->] {(V)-V};\edge [visible on=<3->];
    [. \node[visible on=<2->] {(V)-V};\edge [visible on=<2->]; 
      [.V \node[align=center] {X\\ ten}; ] 
      \edge [visible on=<2->]; [.N\textrightarrow V \node[align=center] {X\\ day}; ] 
    ]
    \edge [visible on=<3->]; [.\node[visible on=<2->] {(V)-V};\edge [visible on=<2->]; 
      [.V \node[align=center] {X\\ one}; ] 
      \edge [visible on=<2->]; [.V \node[align=center] {X \\ to rain}; ] 
    ]
  ];
\end{tikzpicture}
\uncover<4->{\vskip12pt To rain once in ten days.}
\end{frame}

\end{document}

在此处输入图片描述

答案2

这能做到吗?

  • 是的,至少在一定范围内。例如,你当然可以顺着树的生长方向发现它,还有其他一些可能性。

我该这么做吗?

  • 可能不会。有更简单的方法、更好的软件包和方法。我现在绝不会尝试这样做。我只会使用forest

我想要这么做吗?

  • 除非你有明显的受虐倾向,否则可能不会。请参阅上一个答案。

我怎样才能做到这一点?

  • 查看前面的答案:你不应该问这个问题。

这样做危险吗?

  • 绝对如此。它会让你的思想感觉像是被彻底颠覆了一样——而且不是以一种好的方式。

这值得么?

  • 取决于你喜欢什么。你自己判断:

在 Beamer 中逐步揭开树

但实际上,我该怎么做呢?

  • 这是我做这件事的方式……或多或少。它比这更复杂一点,但这就是想法。别说我没有警告过你……

代码:

\documentclass[compress]{beamer}

\usepackage{qtree}      % allows syntax trees
\usepackage{textcomp}   % allows \textrightarrow
% uncover tableaux proofs incrementally by typesetting using the background colour for text and then resetting to normal
\mode<presentation>
{
  \newcommand<>{\cuddio}[1]{\color#2{bg}#1}
  \newcommand<>{\dangos}[1]{\color#2{fg}#1}
}
\mode<article>
{
  \def\cuddio<#1>#2{#2}
  \def\dangos<#1>#2{#2}
}

\begin{document}

\frame{
  \Tree [.{(V)-V} !{\cuddio<1>}
  [.{(V)-V} !{\cuddio<1>} [.V X\\ten ] [.N\textrightarrow V X\\day  ] !{\dangos<1>} ]
  [.{(V)-V} !{\cuddio<1-3>} [.V X\\one ] [.V X\\{to rain} ] !{\dangos<3>} ] !{\dangos<4>}
]

\uncover<4->{\vskip12pt To rain once in ten days.}

}

\end{document}

相关内容