samcarter
After reading https://www.texdev.net/2020/08/19/the-good-the-bad-and-the-ugly-creating-document-commands I'm now looking for an example how I would use `\NewDocumentCommand` to create an overlay-aware macro for beamer.
Top Answer
samcarter
Here an example with both the classic `\newcommand` syntax and `\NewDocumentCommand`. The key difference is that within the macro definition the `#1` needs to be surrounded by `<>`.
```
\documentclass{beamer}
\newcommand<>{\makered}[1]{{\color#2{red}#1}}
\renewenvironment<>{makegreen}{%
\color#1{green}%
}{}
\usepackage{xparse}
\NewDocumentCommand{\makeblue}{D<>{1-} m}{{\color<#1>{blue}#2}}
\NewDocumentEnvironment{makeyellow}{ D<>{1-} }{
\color<#1>{yellow}%
}{}
\begin{document}
\begin{frame}
\makered<2>{test}
\makeblue<2>{test}
\begin{makegreen}<2>
content...
\end{makegreen}
\begin{makeyellow}<2>
content...
\end{makeyellow}
\end{frame}
\end{document}
```