在 TikZ 節點文字中使用 \uncover

在 TikZ 節點文字中使用 \uncover

我無法\uncover在 TikZ 節點的文字內使用。這是我想做的:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
    \begin{frame}
        \begin{tikzpicture}[node distance=2cm]
            \node[align=center] (a) {test 1 \\ \uncover<2>{test 12345}};
            \node[align=center,right of=a] (b) {test 2};
            \path[->] (a) edge (b);
        \end{tikzpicture}
    \end{frame}
\end{document}

這會給出:“!包 tikz 錯誤:放棄這條路徑。你忘記了分號嗎?”

使用\onslide給出相同的結果。使用\only確實有效,但因為我的第二行更長,所以節點被放大,其他所有內容都改變了。

我很想知道為什麼\only有效但不起作用,但最重要的\uncover\onslide,我想知道是否有一種簡單的方法(例如比minipage在節點內部包含文字更簡單)來防止節點更改大小。

答案1

您需要另一組大括號:

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
    \begin{frame}
        \begin{tikzpicture}[node distance=2cm]
            \node[align=center] (a) {test 1 \\ {\uncover<2>{test 12345}}};  %wrapped \uncover into {}
            \node[align=center,right of=a] (b) {test 2};
            \path[->] (a) edge (b);
        \end{tikzpicture}
    \end{frame}
\end{document}

在此輸入影像描述

答案2

\documentclass{beamer}
\usepackage{tikz}

\begin{document}
    \begin{frame}
        \begin{tikzpicture}[node distance=2cm]
          \onslide<1>{%
            \node[align=center] (a) {test 1 \\ \phantom{test 12345}};}
          \onslide<2->{%
            \node[align=center] (a) {test 1 \\ test 12345};}
            \node[align=center,right of=a] (b) {test 2};
            \path[->] (a) edge (b);
        \end{tikzpicture}
    \end{frame}
\end{document}

虛幻文字...

相關內容