
我無法\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}