Estou tentando destacar algumas linhas de pseudocódigo e estou usando esta solução bloco de pseudocódigo. No entanto, não entendi o seguinte novo comando:
\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);
}
}
O que significam os símbolos <>
na frente \newcommand
?
Além disso, gostaria de passar a cor para preencher o retângulo como parâmetro do \boxto
comando. Na solução postada, a cor é definida como um comando \fillcol
Como fazer essa alteração? Alguém poderia me ajudar?
Obrigado!
Responder1
Só para acelerar: não copiei o código desnecessário da pergunta vinculada, ou seja, desabilitei o pic
sistema de coordenadas e o tikz remember picture with id=#1
estilo.
A beamer
classe adiciona uma nova versão do \newcommand
, possibilitando gerar comandos com especificação de sobreposição, com
\newcommand<>{\cmdname}[number of args]{%...
% rest of code
}
Importante saber é que a especificação de sobreposição está dentro e que o comando de fato possui um argumento a mais que o especificado, ou seja, no exemplo, existem 3 argumentos. O terceiro é destinado à sobreposição, portanto o último argumento está sempre 'oculto', mas pode ser acessado.
Observe que os colchetes <1>
pertencem ao último argumento, é assim que \only#3
funciona.
Para obter mais informações, consulte a seção 9.6 da documentação atual do projetor.
\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}