7

これが私がやろうとしていることです

    \begin{tikzpicture}
    [node distance = 1cm, auto,font=\footnotesize,
    % STYLES
    every node/.style={node distance=1.3cm},
    comment/.style={rectangle, inner sep= 5pt, text width=4cm, node distance=0.25cm, font=},
    module/.style={rectangle, drop shadow, draw, fill=black!10, inner sep=5pt, text width=3cm, text badly centered, minimum height=0.8cm, font=\bfseries\footnotesize\sffamily,rounded corners},
    selected/.style={fill=red!40}]

    \node [module] (nodeA) {node A};
    \node [module, below of=nodeA] (nodeA) {node B};

    \only<1>{
      \node [comment, text width=6cm, right=0.25 of nodeA] {short description of Node A};
      \node [comment, text width=6cm, right=0.25 of nodeB] {short description of Node B};
     }

    \only<2>{
      \node [selected] (nodeA) {};
      \node [comment, text width=6cm, right=0.25 of nodeA] {long description of node A};
    }
    \only<3>{
      \node [selected] (nodeB) {};
      \node [comment, text width=6cm, right=0.25 of nodeA] {long description of node B};
    }
    \end{tikzpicture}

問題は

      \node [selected] (nodeB) {};

新しいノードを作成しますが、既存のノードにスタイルを適用したいです。そうする方法はありますか?

もちろん、選択された状態と選択されていない状態のすべてのノードのコピーを作成することもできますが、実際には通常のソリューションが必要です。

4

4 に答える 4

4

ノードが描画されると、その外観を変更する方法がないため、これを希望どおりに実行できるとは思いません (質問を正しく理解していると仮定します)。Beamer の\altマクロを使用することをお勧めします。

\alt<2>{\node[module,selected] at (nodeA) {node A};}{\node[module] at (nodeA) {node A};}
\alt<3>{\node[module,selected] at (nodeB) {node B};}{\node[module] at (nodeB) {node B};}
\node[comment,text width=6cm,right=0.25 of nodeA]{\alt<2>{short description}{long description}};
\node[comment,text width=6cm,right=0.25 of nodeB]{\alt<3>{short description}{long description}};

またはそのようなもの(動作させるにはセミコロンをいじる必要があるかもしれませんが、現時点ではテストできません)。

別のオプションは、実際に新しいノードを描画することです。含める場合

\node[module,selected] at (nodeA) {node A};

inside \only<2>、ノード A の同じ位置に赤い背景を除いてノード A と同じように見えるノードを描画します。新しいノードは元のノード A を覆います。

于 2010-06-05T06:40:10.860 に答える