私はいくつかの疑似コード行を強調表示しようとしており、このソリューションを使用しています 疑似コードブロックただし、次の新しいコマンドは理解できませんでした。
\newcommand{\fillcol}{green!20}
\newcommand<>{\boxto}[1]{
\only#2{
\tikz[remember picture with id=#1]
\draw[line width=1pt,fill=\fillcol,rectangle,rounded corners]
(pic cs:#1) ++(8.2,-.1) rectangle (-3.4,-.1);
}
}
<>
の前の記号はどういう意味ですか\newcommand
?
さらに、コマンドのパラメータとして四角形を塗りつぶす色を渡したいと思います\boxto
。投稿されたソリューションでは、色はコマンドとして定義されています。\fillcol
この変更を行うにはどうすればよいでしょうか? 誰か助けてくれませんか?
ありがとう!
答え1
手っ取り早くするために、リンクされた質問から不要なコードをコピーしませんでした。つまり、pic
座標系とtikz remember picture with id=#1
スタイルを無効にしました。
このbeamer
クラスは の新しいバージョンを追加し\newcommand
、オーバーレイ仕様のコマンドを生成できるようにします。
\newcommand<>{\cmdname}[number of args]{%...
% rest of code
}
重要なのは、オーバーレイの仕様が内部にあり、コマンドには実際には指定された引数よりも 1 つ多い引数があることです。つまり、この例では引数が 3 つあります。3 番目はオーバーレイ用なので、最後の引数は常に「非表示」ですが、アクセスできます。
角括弧は<1>
最後の引数に属しており、そのよう\only#3
に動作することに注意してください。
詳細については、現在の Beamer ドキュメントのセクション 9.6 を参照してください。
\documentclass{beamer}
\usepackage{tikz}
\newcommand{\fillcol}{green!20}
\newcommand<>{\boxto}[2]{
\only#3{%
\tikz%[remember picture with id=#1]
\draw[line width=1pt,fill=#2,rectangle,rounded corners] (1,1) rectangle (2,2);
}%
}
\begin{document}
\begin{frame}{Foo frame}
\boxto<1>{1}{green}
\boxto<2>{1}{red}
\end{frame}
\end{document}