시험에 답안지를 첨부하고 싶습니다. 그러나 수동으로만 수행할 수 있었기 때문에 참조할 경우 충돌이 발생했습니다( \cref
예: with). 또한 문제의 점수를 변경할 때마다 답안지의 점수를 다시 조정해야 하는 경우도 있습니다. 이를 수행하는 적절한 방법이 있습니까?
\documentclass[addpoints, 12pt]{exam}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage[nameinlink]{cleveref}
\pagestyle{headandfoot}
\firstpageheader{\large\bfseries Astronomy Exam\\ \bigskip
\large\bfseries Last Name:\enspace\makebox[1.9in]{\hrulefill}}
{}
{\large\bfseries Univ ID: \makebox[2in]{\hrulefill} \\ \bigskip
\large\bfseries First Name:\enspace\makebox[2in]{\hrulefill}}
\runningheader{\large\bfseries Last Name:\enspace\makebox[1.9in]{\hrulefill}}
{}
{\large\bfseries First Name:\enspace\makebox[2in]{\hrulefill}}
\firstpagefooter{}{}{}
\runningfooter{}{\thepage}{}
\begin{document}
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer the questions in the spaces provided on the
answer sheets.}}}
\end{center}
\begin{questions}
\question[60] Explain Principle A
\question[40] Explain Principle B
\end{questions}
\newpage
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer sheet}}}
\end{center}
\bigskip
\begin{questions}
\question[60] Answer:
\vspace{\stretch{1}}
\question[40] Answer:
\vspace{\stretch{1}}
\end{questions}
\end{document}
답변1
안녕하세요. 답변을 수정했습니다.LaTeX를 올바른 위치에서 확장하는 방법은 무엇입니까?내 답안 책자를 위한 새로운 환경을 만들기 위해.
MWE를 사용하는 솔루션은 다음과 같습니다.
\documentclass[addpoints, 12pt]{exam}
\pagestyle{headandfoot}
\firstpageheader{\large\bfseries Astronomy Exam\\ \bigskip
\large\bfseries Last Name:\enspace\makebox[1.9in]{\hrulefill}}
{}
{\large\bfseries Univ ID: \makebox[2in]{\hrulefill} \\ \bigskip
\large\bfseries First Name:\enspace\makebox[2in]{\hrulefill}}
\runningheader{\large\bfseries Last Name:\enspace\makebox[1.9in]{\hrulefill}}
{}
{\large\bfseries First Name:\enspace\makebox[2in]{\hrulefill}}
\firstpagefooter{}{}{}
\runningfooter{}{\thepage}{}
\usepackage{verbatim}
\newenvironment{ex@skripts}[1]{#1}{}
\makeatletter
\newwrite\verbatim@outSkr % Define file.
\immediate\openout\verbatim@outSkr=\jobname.skr % Open file for writing.
\def\skript{
\@bsphack
\let\do\@makeother\dospecials
\catcode`\^^M\active
\def\verbatim@processline{%
\immediate\write\verbatim@outSkr{\the\verbatim@line}}%
\immediate\write\verbatim@outSkr{\string\begin{ex@skripts}{\expandafter\thequestion. (\expandafter\totalpoints \ points) Answer:\string\par}}
\verbatim@start}
\def\endskript{%
\immediate\write\verbatim@outSkr{\string\end{ex@skripts}}
\@esphack}
\newcommand*{\includeSkripts}{%
\immediate\closeout\verbatim@outSkr % Close file.
\InputIfFileExists{\jobname.skr}{}{}
\newwrite\verbatim@outSkr % Datei wird definiert
\immediate\openout\verbatim@outSkr=\jobname.skr % Open file for writing.
}
\makeatother
\begin{document}
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer the questions in the spaces provided on the
answer sheets.}}}
\end{center}
\begin{questions}
\question[60] Explain Principle A
\begin{skript}
\vspace{\stretch{1}}
\end{skript}
\question[40] Explain Principle B
\begin{skript}
\vspace{\stretch{1}}
\end{skript}
\end{questions}
\newpage
\begin{center}
\fbox{\fbox{\parbox{5.5in}{\centering
Answer sheet}}}
\end{center}
\bigskip
\includeSkripts
\end{document}
스크립트의 이름을 Answerbox와 같이 더 명확한 이름으로 바꿀 수 있습니다. 기본적으로 환경의 내용을 파일에 쓰고 \includeSkripts
호출될 때 출력합니다.