생활을 더 쉽게 만들기 위해 해당 솔루션이 포함된 강의용 연습 시트를 만들고 싶습니다. 따라서 \newif
솔루션을 포함할지 여부를 제어하기 위해 a를 정의했습니다 . 그 안에 환경이 lstlisting
필요할 때까지는 잘 작동했습니다 . verbatim
다음 코드는 오류에 대한 최소한의 예이며, 함께 작동합니다 verbatim
.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\newif\ifsolution
\solutionfalse
\ifsolution
\newcommand{\solution}[1]{#1}
\else
\newcommand{\solution}[1]{}
\fi
\begin{document}
This is always shown.
\solution{The listing is only shown if ifsolution is true.
\begin{lstlisting}
Test
\end{lstlisting}
}
\end{document}
true로 설정하면 solution
오류가 발생합니다. 이 기능을 사용하여 명령이나 환경을 어떻게 정의할 수 있나요?
답변1
내 첫 평가는 틀렸지만 Gonzalo가 친절하게 지적한 것처럼
축어적 자료는 표준 명령의 인수에 나타날 수 없습니다.
작동하는 솔루션은 인수를 사용하지 않는 것입니다.
\ifsolution
\def\solution{\relax}
\else
\newcommand{\solution}[1]{}
\fi
그러나 패키지를 사용할 수도 있습니다 comment
. 특정 환경을 comment
.
\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{comment}
\excludecomment{solution}
%\includecomment{solution}
\begin{document}
This is always shown.
\begin{solution}
The listing is only shown if ifsolution is true.
\begin{lstlisting}
Test
\end{lstlisting}
\end{solution}
\end{document}
솔루션 은 \excludecomment{solution}
표시되지 않으며 \includecomment{solution}
대신 글을 쓰면 솔루션이 표시됩니다.