我正在尝试找到一种方法来生成测验和考试的解决方案文件。这是我当前的工作流程。
我有一个文件quiz.tex
:
\documentclass[12pt]{article}
\newcommand{\solutionscolor}{white}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{color}
\usepackage{thmtools}
\theoremstyle{definition}
\newtheorem{problem}{Problem}
\declaretheoremstyle[
headfont=\color{\solutionscolor}\normalfont\bfseries,
bodyfont=\color{\solutionscolor}
]{colored}
\declaretheorem[
style=colored,
% style=phantom,
name=Solution,
numbered=no
]{solution}
\newcommand{\fillblank}[2]{\underline{\hspace{#1}{\color{\solutionscolor}#2}\hspace{#1}}}
\title{Quiz}
\author{Name \fillblank{1.25in}{Solutions}}
\date{}
\begin{document}
\maketitle
\begin{problem}
Let $f(x)=\cos(2\,x)$. Determine the concavity of $f(x)$ at $x=\pi$.
\end{problem}
\begin{solution}
The first derivative of $f(x)$ may be computed using the chain rule
\[
f^{\prime}(x)
= -\sin(2\,x)(2)
= -2\sin(2\,x)
\]
The second derivative of $f(x)$ may then be computed by using the chain rule
again
\[
f^{\prime\prime}(x)
= -2\cos(2\,x)(2)
= -4\cos(2\,x)
\]
It follows that
\[
f^{\prime\prime}(\pi)=-4\cos(2\pi)=-4<0
\]
Since $f^{\prime\prime}(\pi)<0$, $f(x)$ is \emph{concave down} at $x=\pi$.
\end{solution}
\begin{problem}
Fill in the blanks.
\begin{align*}
\sin(\pi) &= \fillblank{.25in}{0} &
\cos(\pi) &= \fillblank{.25in}{-1} &
\sin\left(\frac{\pi}{2}\right) &= \fillblank{.25in}{1} &
\cos(34\pi) &= \fillblank{.25in}{1}
\end{align*}
\end{problem}
\end{document}
编译此文档会产生quiz.pdf
:
如果我将 的值更改\solutionscolor
为blue
,结果将如下所示:
我的问题是我想要两个文件:(quiz.pdf
无解决方案)和quiz-solutions.pdf
(有解决方案)。目前我必须手动完成此操作。
有没有办法让我的自动输出生成两个文件?
答案1
根本问题是默认情况下,filename.tex
写入filename.pdf
。但有几种方法可以解决这个问题。第一步是\solutionscolor
从中删除新命令quiz.tex
。
最简单的方法是有两个单独的文件
student.tex
::
\newcommand{\solutionscolor}{white}
\input quiz
solutions.tex
:
\newcommand{\solutionscolor}{blue}
\input quiz
稍微好一点的想法可能是只使用两个命令:
pdflatex -jobname solutions "\newcommand{\solutionscolor}{blue}\input quiz"
pdflatex -jobname student "\newcommand{\solutionscolor}{white}\input quiz"
这两种方法都会使辅助文件和日志文件数量翻倍,并且需要您单独编译每个文档。但您可以让脚本为您运行这些操作,或者将您的命令合并为一个:
pdflatex student ; pdflatex solutions
pdflatex -jobname solutions "\newcommand{\solutionscolor}{blue}\input quiz" ; pdflatex -jobname student "\newcommand{\solutionscolor}{white}\input quiz"
(您应该知道白色文本仍然存在。以电子方式分发文档意味着人们可以访问您隐藏的数据。)