새로운 명령 이해 및 편집

새로운 명령 이해 및 편집

일부 의사코드 줄을 강조표시하려고 하는데 이 솔루션을 사용하고 있습니다. 의사코드 블록. 그러나 다음과 같은 새로운 명령을 이해하지 못했습니다.

\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

간단히 말해서: 연결된 질문에서 불필요한 코드를 복사하지 않았습니다. 즉, 좌표계 pictikz 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}

관련 정보