如何使用 Beamer 下的 tikz 将文本放置在幻灯片上的绝对位置

如何使用 Beamer 下的 tikz 将文本放置在幻灯片上的绝对位置

我想在beamer幻灯片上的图形旁边放置一些文本。问题是,如果我简单地使用tikzpicture环境,LaTeX 会将文本无论之前放置了什么,无论是隐藏的还是显示的。我怎样才能知道tikz使用页面坐标而不是从当前位置开始计算呢?

编辑: 最小工作示例。显然,这与我选择的列有关。

\documentclass[bigger]{beamer}
\usepackage{tikz}

\begin{document}

\begin{frame}
  \begin{columns}
    \begin{column}{0.6\textwidth}
      \only <1>{
        \begin{tikzpicture}
          \node at (0,0) {a};
        \end{tikzpicture}
      }
      \only <2>{
        \begin{tikzpicture}
          \node at (0,0) {b};
        \end{tikzpicture}
      }
      \only <3>{
        \begin{tikzpicture}
          \node at (0,0) {c};
        \end{tikzpicture}
      }
    \end{column}
  \end{columns}
\end{frame}
\end{document}

当我编译这个时,“a”,“b”和“c”并不出现在同一个位置,而是一个接一个地出现。

答案1

您的文本包含超出命令范围的空格\only,即最后一个括号后的换行符\only{...}。要删除这些,您需要添加最后一个%符号:

\only<1>{...
...}%

你的完整代码将会是这样的:

示例输出

\documentclass[bigger]{beamer}
\usepackage{tikz}

\begin{document}

\begin{frame}
  \begin{columns}
    \begin{column}{0.6\textwidth}
      \only <1>{
        \begin{tikzpicture}
          \node at (0,0) {a};
        \end{tikzpicture}
      }%
      \only <2>{
        \begin{tikzpicture}
          \node at (0,0) {b};
        \end{tikzpicture}
      }%
      \only <3>{
        \begin{tikzpicture}
          \node at (0,0) {c};
        \end{tikzpicture}
      }
    \end{column}
  \end{columns}
\end{frame}
\end{document}

相关内容