Comprender un nuevo comando y editarlo

Comprender un nuevo comando y editarlo

Estoy intentando resaltar algunas líneas de pseudocódigo y estoy usando esta solución. bloque de pseudocódigo. Sin embargo, no he entendido el siguiente comando nuevo:

\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);
    }
}

¿Qué significan los símbolos <>delante de \newcommand?

Además, me gustaría pasar el color para rellenar el rectángulo como parámetro del \boxtocomando. En la solución publicada, el color se define como un comando. \fillcol¿Cómo hacer este cambio? ¿Alguien podría ayudarme?

¡Gracias!

Respuesta1

Solo por rapidez: no copié código innecesario de la pregunta vinculada, es decir, desactivé el picsistema de coordenadas y el tikz remember picture with id=#1estilo.

La beamerclase agrega una nueva versión de \newcommand, lo que permite generar comandos con especificación superpuesta, con

\newcommand<>{\cmdname}[number of args]{%...

% rest of code
}

Es importante saber que la especificación de superposición está dentro y que el comando de hecho tiene un argumento más que el especificado, es decir, en el ejemplo, hay 3 argumentos. El tercero está destinado a la superposición, por lo que el último argumento siempre está "oculto", pero se puede acceder a él.

Tenga en cuenta que los corchetes puntiagudos <1>pertenecen al último argumento, así es como \only#3funciona.

Para obtener más información sobre esto, consulte la sección 9.6 de la documentación actual del proyector.

\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}

información relacionada