Compreender um novo comando e editá-lo

Compreender um novo comando e editá-lo

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 \boxtocomando. Na solução postada, a cor é definida como um comando \fillcolComo 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 picsistema de coordenadas e o tikz remember picture with id=#1estilo.

A beamerclasse 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#3funciona.

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}

informação relacionada