..png)
저는 exam
-class를 많이 사용하는데, 특히 솔루션 환경이 마음에 듭니다. 내 문서에는 질문과 솔루션이 포함되어 있지만 \printanswers
서문을 변경하면 솔루션 표시 여부를 쉽게 전환할 수 있습니다.
나도 같은 일을 하고 싶다힌트. 나는 다음과 같은 것을 원합니다:
\documentclass[11pt]{exam}
%\ifprintanswers
\ifprinthints
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
클래스를 기반으로 하지만 일부 패키지와 사용자 정의 명령을 로드하는 사용자 정의 클래스를 만들었습니다. exam
이 기능을 구현하려면 어떤 명령을 추가해야 합니까? 누군가 도와줄 수 있나요?
답변1
이를 수행하는 매우 쉬운 방법 중 하나는 다음을 사용하는 것입니다.버전패키지. 행을 추가하는 경우:
\newenvironment{hints}{\textbf{Hint}}{}
\excludeversion{hints}
그러면 힌트가 나타나지 않습니다. 주석을 달거나 \excludeversion{hints}
사용하면 \includeversion{hints}
마술처럼 다시 나타납니다. 전체 MWE는 다음과 같습니다.
\documentclass[11pt]{exam}
\usepackage{version}
\newenvironment{hints}{\textbf{Hint}}{}
\excludeversion{hints}% turn hints off
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
귀하의 질문에 더 가까운 두 번째 방법은 다음을 사용하는 것입니다.환경힌트 환경을 정의하는 패키지입니다. 이 접근 방식을 사용하면 먼저 새로운 if 문인 say 를 정의한 \ifhinting
다음 \hintingtrue
및 를 사용하여 \hintingfalse
힌트를 켜고 끕니다.
\documentclass[11pt]{exam}
\usepackage{environ}
\newif\ifhinting\hintingtrue % hints are on by defautl
\NewEnviron{hints}{\ifhinting\textbf{Hint} \BODY\fi}
\begin{document}
\begin{questions}
\question Prove $e^{i\pi} +1 = 0$.
\begin{hints}
Consider $e^{i\theta} = \cos \theta + i\sin \theta$.
\end{hints}
\begin{solution}
duh.
\end{solution}
\end{questions}
\end{document}
이 \NewEnviron
명령은 새로운 환경을 정의하지만 환경의 내용을 매크로에 넣기 때문에 true \BODY
인 경우 무시하는 등의 작업을 수행할 수 있습니다 .\hintingfalse
이 접근 방식의 한 가지 장점은 문서의 여러 부분에서 힌트를 켜고 끌 수 있다는 것입니다(모든 곳을 확인해야 하기 때문에 단점으로 보일 수도 있습니다!).