일부 의사코드 줄을 강조표시하려고 하는데 이 솔루션을 사용하고 있습니다. 의사코드 블록. 그러나 다음과 같은 새로운 명령을 이해하지 못했습니다.
\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
}
알아야 할 중요한 점은 오버레이 사양이 내부에 있고 명령에 실제로 지정된 것보다 하나 더 많은 인수가 있다는 것입니다. 즉, 예에는 3개의 인수가 있습니다. 세 번째 인수는 오버레이용이므로 마지막 인수는 항상 '숨겨져 있지만' 액세스할 수 있습니다.
뾰족한 괄호는 <1>
마지막 인수에 속하므로 이것이 \only#3
작동하는 방식입니다.
이에 대한 자세한 내용은 현재 비머 문서의 섹션 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}