From e30a75f6124a943629aa0fd1b1f58d388438710c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 9 Jul 2010 00:20:12 +0000 Subject: rm eqexam, author request git-svn-id: svn://tug.org/texlive/trunk@19295 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/eqexam/README | 49 - .../texmf-dist/doc/latex/eqexam/doc/README.TEXLIVE | 6 - Master/texmf-dist/doc/latex/eqexam/eqecus.opt | 17 - .../doc/latex/eqexam/examples/eqex_solnsonly.tex | 56 - .../doc/latex/eqexam/examples/eqexam.cfg | 7 - .../doc/latex/eqexam/examples/eqexami.cfg | 12 - .../texmf-dist/doc/latex/eqexam/examples/fig1.bb | 5 - .../texmf-dist/doc/latex/eqexam/examples/fig1.eps | Bin 834475 -> 0 bytes .../texmf-dist/doc/latex/eqexam/examples/fig1.jpg | Bin 33479 -> 0 bytes .../texmf-dist/doc/latex/eqexam/examples/fig1.pdf | Bin 12673 -> 0 bytes .../texmf-dist/doc/latex/eqexam/examples/hw01.tex | 159 - .../doc/latex/eqexam/examples/quiz01.tex | 104 - .../doc/latex/eqexam/examples/quiz02.tex | 67 - .../doc/latex/eqexam/examples/test01.tex | 428 --- .../doc/latex/eqexam/examples/test02.tex | 390 --- .../doc/latex/eqexam/examples/test_matching.tex | 68 - .../doc/latex/eqexam/examples/tex_survey.tex | 538 ---- .../doc/latex/eqexam/script/eqAttach.asp | 202 -- Master/texmf-dist/source/latex/eqexam/eqexam.drv | 37 - Master/texmf-dist/source/latex/eqexam/eqexam.dtx | 3049 -------------------- Master/texmf-dist/source/latex/eqexam/eqexam.ins | 63 - Master/texmf-dist/tex/latex/eqexam/eqalone.def | 40 - Master/texmf-dist/tex/latex/eqexam/eqexam.def | 774 ----- Master/texmf-dist/tex/latex/eqexam/eqexam.sty | 1755 ----------- 24 files changed, 7826 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/eqexam/README delete mode 100644 Master/texmf-dist/doc/latex/eqexam/doc/README.TEXLIVE delete mode 100644 Master/texmf-dist/doc/latex/eqexam/eqecus.opt delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/eqex_solnsonly.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/eqexam.cfg delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/eqexami.cfg delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/fig1.bb delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/fig1.eps delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/fig1.jpg delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/fig1.pdf delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/hw01.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/quiz01.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/quiz02.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/test01.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/test02.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/test_matching.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/examples/tex_survey.tex delete mode 100644 Master/texmf-dist/doc/latex/eqexam/script/eqAttach.asp delete mode 100644 Master/texmf-dist/source/latex/eqexam/eqexam.drv delete mode 100644 Master/texmf-dist/source/latex/eqexam/eqexam.dtx delete mode 100644 Master/texmf-dist/source/latex/eqexam/eqexam.ins delete mode 100644 Master/texmf-dist/tex/latex/eqexam/eqalone.def delete mode 100644 Master/texmf-dist/tex/latex/eqexam/eqexam.def delete mode 100644 Master/texmf-dist/tex/latex/eqexam/eqexam.sty (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/eqexam/README b/Master/texmf-dist/doc/latex/eqexam/README deleted file mode 100644 index f1a5240caba..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/README +++ /dev/null @@ -1,49 +0,0 @@ -The eqexam Package - -eqExam is a LaTeX package for writing exams, tests, quizzes, -homework assignments, etc. It is a stand alone package, yet is -tightly integrated with the AcroTeX eDucation Bundle (AeB). Highlights of -this package are as follows: - - 1. Can create exams (tests, quizzes, homework assignments) for - paper, with points in the left or right margins (or both), totals - for each page optionally shown at the bottom corner of each page. - Questions can be objective, fill-in, true false, or multiple - choice. - 2. Solutions can optionally be included in the source file, and - by changing options, can be displayed (for an answer key), in a - couple of different ways. A solutions only document can also be - generated. - 3. Can create mutli-part exams, as I often do for final exams, these - multiple exams are meant to be graded individually. - 4. The one thing that distinguishes this package from the other - exam package is its support for PDF, and this is where AeB comes - in. When you have AeB installed, and you select any of - several options (pdf, links, online or email), a variety of - things can happen. For example, in the case of the online or - email options, white space for solutions is converted into - multiline text field, spaces to fill in answers are converted to - text fields,multiple choice questions are converted into radio - button fields, etc. When the email option is used, a "Submit" - button is automatically created at the top of the first page of - the test. The student can take the test online (perhaps in a - testing lab) then submit responses to the instructor. The email - that is generated to the instructor attaches the FDF file of - form data, so the instructor gets a copy of all responses. - She/He can then open the file and view the responses of the - student. Get the latest AeB (AcroTeX eDucation Bundle, - web,exerquiz,etc) - -The home page for eqexam is - - http://www.math.uakron.edu/~dpstory/eqexam.html - -The home page for AeB is - - http://www.math.uakron.edu/~dpstory/webeq.html - -Comments and suggestions are always gratefully accepted and seriously -considered. - -D. P. Story -09/29/09 diff --git a/Master/texmf-dist/doc/latex/eqexam/doc/README.TEXLIVE b/Master/texmf-dist/doc/latex/eqexam/doc/README.TEXLIVE deleted file mode 100644 index 76724761e34..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/doc/README.TEXLIVE +++ /dev/null @@ -1,6 +0,0 @@ -The following files have been removed in the TeX Live installation of -the current package, typically due to duplication, lack of space, or -missing source code. You can find these files on CTAN. If questions or -concerns, email tex-live@tug.org. - - eqexamman.pdf diff --git a/Master/texmf-dist/doc/latex/eqexam/eqecus.opt b/Master/texmf-dist/doc/latex/eqexam/eqecus.opt deleted file mode 100644 index 51467e8cfda..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/eqecus.opt +++ /dev/null @@ -1,17 +0,0 @@ -% -% AcroTeX Software Development Teams -- 2006 -% http://www.acrotex.net -% -% The following options combination of options are special to the -% @EASE application. Do not change. -% -\DeclareOption{atbdbopts}{% - \ExecuteOptions{online} - \ExecuteOptions{forcolorpaper} - \ExecuteOptions{nosolutions} - \ExecuteOptions{nopoints} - \ExecuteOptions{nototals} - \ExecuteOptions{nospacetowork} - \ExecuteOptions{obeylocalversions} - \ExecuteOptions{myconfig} -} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/eqex_solnsonly.tex b/Master/texmf-dist/doc/latex/eqexam/examples/eqex_solnsonly.tex deleted file mode 100644 index e3b233a2d3f..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/eqex_solnsonly.tex +++ /dev/null @@ -1,56 +0,0 @@ -\documentclass{article} -\usepackage[fleqn]{amsmath} -\usepackage[pointsonleft,nototals,forpaper,nosolutions,useforms]{eqexam} -%\usepackage[pointsonleft,nototals,nosummarytotals,forpaper,useforms,solutionsonly,pdf]{eqexam} - -\subject[CA]{College Algebra} -\title[T1]{Test 1} -\author{Dr.\ D. P. Story} -\date{\thisterm, \the\year} -\duedate{10/01/09} -\keywords{MAC 1105, Exam \nExam, {\thisterm} semester, \theduedate, at NWFSC} - - -% -% Compile with the nosolutions option to create the .sol auxiliary file -% that contains a listing of all the solutions, then compile with the -% solutionsonly option. -% -\encloseProblemsWith{theseproblems} - -\begin{document} - -\maketitle - -\begin{exam}{myProblems} - -\ifsolutionsonly -\begin{instructions}[Solutions:] -The solutions to the test. -\end{instructions} -\else -\begin{instructions}[Instructions:] -Solve each problem and box in your final $\boxed{\text{answer}}$. -\end{instructions} -\fi - -\begin{theseproblems} - -\begin{problem}[5] -This is question 1 -\begin{solution} -This is the solution to question 1 -\end{solution} -\end{problem} - -\begin{problem}[5] -This is question 2 -\begin{solution} -This is the solution to question 2 -\end{solution} -\end{problem} - -\end{theseproblems} -\includeexersolutions -\end{exam} -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/eqexam.cfg b/Master/texmf-dist/doc/latex/eqexam/examples/eqexam.cfg deleted file mode 100644 index bc9a15aed60..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/eqexam.cfg +++ /dev/null @@ -1,7 +0,0 @@ -\renewcommand\maketitledesign -{% - \makebox[\textwidth]{\normalsize - \shortstack[l]{\strut\websubject\\\webauthor, \@date}\hfill - \shortstack[l]{\webtitle\\\strut}\hfill - \shortstack[l]{\strut\eq@ExamName\\\eq@SID}}% -} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/eqexami.cfg b/Master/texmf-dist/doc/latex/eqexam/examples/eqexami.cfg deleted file mode 100644 index 57511627ea3..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/eqexami.cfg +++ /dev/null @@ -1,12 +0,0 @@ -\renewcommand\maketitledesign -{% - \makebox[\textwidth]{\normalsize - \shortstack[l]{\strut\underbar{\websubject}\\\@date}\hfill - \shortstack[l]{\underbar{\webtitle}\\\strut}\hfill - \shortstack[l]{\strut\underbar{Due \theduedate}\\\webauthor}}% -} -\rhead{\webauthor} -\def\exrtnlabelformat{$\square$} -\def\exrtnlabelformatwp{} -\def\eq@sqslrtnlabel{} -\everymath{\displaystyle} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.bb b/Master/texmf-dist/doc/latex/eqexam/examples/fig1.bb deleted file mode 100644 index ac080e4eb19..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.bb +++ /dev/null @@ -1,5 +0,0 @@ -%%Title: ./fig1.jpg -%%Creator: ebb Version 0.5.2 -%%BoundingBox: 0 0 636 704 -%%CreationDate: Fri Feb 04 18:59:33 2005 - diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.eps b/Master/texmf-dist/doc/latex/eqexam/examples/fig1.eps deleted file mode 100644 index d40a7d65844..00000000000 Binary files a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.eps and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.jpg b/Master/texmf-dist/doc/latex/eqexam/examples/fig1.jpg deleted file mode 100644 index 27e8564dabb..00000000000 Binary files a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.jpg and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.pdf b/Master/texmf-dist/doc/latex/eqexam/examples/fig1.pdf deleted file mode 100644 index 054fe38f562..00000000000 Binary files a/Master/texmf-dist/doc/latex/eqexam/examples/fig1.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/hw01.tex b/Master/texmf-dist/doc/latex/eqexam/examples/hw01.tex deleted file mode 100644 index d1981f6d127..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/hw01.tex +++ /dev/null @@ -1,159 +0,0 @@ -\documentclass[12pt]{article} -\usepackage{amsmath,url} - -% This set of parameters are used to distribute the assignment to the class (in paper form) -% and for posting on the class web site (for those who missed the class). -% With the pdf option the information contained in the keys below are placed -% in the document info of the PDF document. If you don't have the AcroTeX Bundle -% installed, remove the pdf option. -\usepackage[pdf,forpaper,myconfigi,nopoints,nosolutions]{eqexam} - -% Note: When using a PDF option like pdf, you need to specify a driver -% that is passed to hyperref, web.sty etc. For example, -% \usepackage[pdf,pdftex,forpaper,myconfigi,nopoints,nosolutions]{eqexam} - -% This set of parameters are used to publish the solutions on the class web site, if -% desired. -% \usepackage[pdf,forpaper,myconfigi,pointsonleft,answerkey]{eqExam} - -% Note the use of the myconfigi parameter. This then inputs eqexami.cfg, there I -% have placed some definitions specific to a homework assignment. - -\subject[AC2]{Advanced Calculus II} -\title[HW1]{HW \#1} -\author{Dr.\ D. P. Story} -\date{Spring 2005} -\duedate{01/28/05} -\keywords{Homework due \theduedate} -\begin{document} - -\maketitle - -\begin{exam}{HW} - -\ifanswerkey -\begin{instructions}[Solutions] -Below, please find a set of solutions to this assignment. -\end{instructions} -\else -\begin{instructions}[] -Assignments should be neatly-written, well-organized and concise. -If you miss a class and need to get an assignment, see -$$ - \text{\url{http://www.math.uakron.edu/~dpstory/}} -$$ -All class assignments and other announcements will be posted on -this web site. -\end{instructions} -\fi - -\begin{eqComments}[]\S4.3, page 155\footnote{in the text}.\end{eqComments} - -\begin{problem}[4] -Problem 15. Use the definition to prove $f(x) = x^2$ is convex on -$\mathbb{R}$. -\begin{solution} -Let $[c,d]$ be any interval and let $t\in[0,1]$, we need to prove -\begin{equation} - f\bigl( (1-t)c + td \bigr) \le (1-t) f(c) + tf(d)\label{eq0} -\end{equation} -or, -\begin{equation} - \bigl( ( 1-t )c + td \bigr)^2 \le (1-t) c^2 + t d^2\label{eq2} -\end{equation} -We show that the right-side minus the left-side in \eqref{eq2} is nonnegative. Indeed, -\begin{align*} - (1-t) c^2 + &t d^2 - \left( ( 1-t )c + td \right)^2 \\& - = (1-t) c^2 + t d^2 - \left( ( 1-t )^2 c^2 + 2t(1-t)cd + t^2d^2 \right)\\& - = (1-t)[1-(1-t)]c^2 - 2t(1-t)cd + t(1-t)d^2\\& - = t(1-t)c^2 - 2t(1-t)cd + t(1-t)d^2\\& - = t(1-t)( c - d )^2 \ge 0 -\end{align*} -From the first and last lines we have $(1-t) c^2 + t d^2 - \left( ( 1-t )c + td \right)^2\ge0$. This is equivalent -to the desired inequality~\eqref{eq2}. \eqfititin{$\square$} - -\medskip\noindent\textit{Alternate Solution}: -We apply the \textbf{Cauchy-Schwartz Inequality}, page.~16, to the expression on the left side of line~\eqref{eq2}. -For convenience, I paraphrase the \textbf{Cauchy-Schwartz Inequality}: -$$ - \left(\sum_{k=1}^n a_k b_k \right)^2 \le \left(\sum_{k=1}^n a_k^2 \right) \left(\sum_{k=1}^n b_k^2 \right) -$$ -Applying this inequality, with $a_1 = \sqrt{1-t}$, $b_1 = -\sqrt{1-t}\,c$, $a_2 = \sqrt{t}$, $b_2 = \sqrt{t}\,d$ (here, -$n=2$, two terms), we obtain, -\begin{align*} -(1-t)^2 c^2 + t^2 d^2 & - \le \left( (\sqrt{1-t})^2 + (\sqrt{t})^2\right)\left((\sqrt{1-t}\,c)^2 + (\sqrt{t}\,d)^2\right)\\& - = (1-t)c^2 + td^2 -\end{align*} -Thus, -$$ - (1-t)^2 c^2 + t^2 d^2 \le (1-t)c^2 + td^2 -$$ -which is line~\eqref{eq2}, what we wanted to prove. -\end{solution} -\end{problem} - -\begin{problem}[3] -Problem 18. Prove the sum of two convex functions is convex. -\begin{solution} -Seems simple enough. Suppose $f$ and $g$ be convex on $I$. Let $[\,c,d\,]\subseteq$ and let $t\in[\,0,1\,]$. Then -\begin{align*} - (f+g)\bigl( (1-t) c + td \bigr) & - = f\bigl( (1-t) c + td \bigr) + g\bigl( (1-t) c + td \bigr)\\& - \le (1-t) f(c) + tf(d) + (1-t) g(c) + tg(d)\\& - = (1-t) (f+g)(c) + t(f+g)(d) -\end{align*} -Thus, $(f+g)\bigl( (1-t) c + td \bigr) \le (1-t) (f+g)(c) + t(f+g)(d)$, which is what we wanted to prove. -\end{solution} -\end{problem} - -\begin{problem}[2] -Problem 20. Give an example of a function that is convex and unbounded on $(0,1)$. -\begin{solution} -Let $ f(x) = 1/x $, $ x \in (0,1) $. This function is clearly unbounded and since $ f''(x) = 1/x^3\ge 0$ on $(0,1)$, -it is convex on $(0,1)$. -\end{solution} -\end{problem} - -\begin{problem}[4] -Problem 21. Define -$$ - f(x) = \begin{cases} - 2, & x = -1;\\ - x^2, & -1 < x < 2;\\ - 5, & x = 2 - \end{cases} -$$ -Show $f$ is convex on $[\,-1,2\,]$ but not continuous on $[\,-1,2\,]$. -\begin{solution} -Define $g(x) = x^2$, $x\in[\,-1,2\,]$. Then $g$ is twice differentiable on $[\,-1,2\,]$ and $ g''(x) = 2\ge 0$, hence, -$g$ is convex on $[\,-1,2\,]$. Note that $ g(x) \le f(x) $ for all $x\in[\,-1,2\,]$. - -Let $[\,c,d\,]\subseteq [\,-1,2\,]$, we need to show, $\forall t \in [\,0,1\,]$, -$$ - f\bigl( (1-t)c + td \bigr) \le (1-t) f(c) + tf(d) -$$ -This inequality is \emph{always true} for $t=0$ and $t=1$, so it suffices to assume -$t\in(0,1)$, this implies $(1-t)c \ne -1$ and $ td \ne 2$, hence, $(1-t)c + td\in(-1,2)$ . Thus, -$$ - f\bigl( (1-t)c + td \bigr) = g\bigl( (1-t)c + td \bigr)) \le (1-t) g(c) + tg(d) = (1-t) f(c) + tf(d) -$$ -As the assertion about the discontinuity of $f$ (at its endpoints) is obvious, this completes the proof. -\end{solution} -\end{problem} - -\begin{problem}[3] -Problem 23. Suppose $f$ is convex on $\mathbb R$, prove $f$ is continuous on $\mathbb R$. -\begin{solution} -This is an application of \textbf{Theorem~4.28}. Let $x\in\mathbb R$, enclose $x$ in a open -interval $(a,b)$, where $a$, $b\in\mathbb R$. Then $f$ is convex on $(a,b)$, since it is convex -on $\mathbb R$, so by \textbf{Theorem~4.28}, $f$ is continuous on $(a,b)$. Since $f$ is continuous -on $(a,b)$, it is, in particular, continuous at $x\in(a,b)$. - -We have shown that for any $x\in\mathbb R$, $f$ is continuous at -$x$, this means that $f$ is continuous on $\mathbb R$. -\end{solution} -\end{problem} -\end{exam} -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/quiz01.tex b/Master/texmf-dist/doc/latex/eqexam/examples/quiz01.tex deleted file mode 100644 index abedc62eab4..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/quiz01.tex +++ /dev/null @@ -1,104 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -\usepackage[myconfig,forpaper,pointsonleft,nosolutions]{eqexam} - -\examNum{1} -\forVersion a -\VersionAtext{Quiz~\nExam--003} -\VersionBtext{Quiz~\nExam--007} -\shortVersionAtext{Q{\nExam}s3} -\shortVersionBtext{Q{\nExam}s7} - -\title[\sExam]{\bfseries\Exam} -\author{D. P. Story} -\subject[C1]{Calculus I} -\date{Spring \the\year} -\keywords{Test~\nExam, Section \ifAB{003}{007}} -\email{dpstory@uakron.edu} - -\everymath{\displaystyle} - -\begin{document} - -\maketitle - -\begin{exam}{Part1} - -\begin{instructions}[Instructions:] -Solve each of the following problems without error. \textit{Show all details.} Box in your -$\boxed{\text{answers}}$. Use good notation, you \emph{will} be marked off for bad notation. -\textbf{Note:} The value of a limit can be a number, the symbol $+\infty$, the symbol $-\infty$, -or may be labelled DNE (for ``does not exist''). -\end{instructions} - -\begin{problem}[4] -Compute $ \ifAB{\lim_{x\to-1}\frac{4x^2+x}{x}}{\lim_{x\to2}\frac{1-3x}{x+1}}$ -\begin{solution}[2in] -As discussed in class, this is a ``Skill Level 0'' limit problem: -$$ -\ifAB{\lim_{x\to-1}\frac{4x^2+x}{x}}{\lim_{x\to2}\frac{1-3x}{x+1}} - = \ifAB{\frac{4(-1)^2+(-1)}{-1}}{\lim_{x\to2}\frac{1-3(2)}{2+1}} - = \boxed{\ifAB{-3}{-\frac{5}{3}}} -$$ -\end{solution} -\end{problem} - -\begin{problem}[3] -Define the function $ f(x) = \begin{cases} 2x^3 - 1 & x < -2\\ 2- x^2 & x \ge -2\end{cases}$. -Compute $\lim_{x\to\ifAB{-2^-}{-2^+}} f(x) $, show the details of your reasoning. - -\begin{solution}[2in] -We use standard techniques: -\begin{verA} -\begin{alignat*}{2} - \lim_{x\to-2^-} f(x) & - = \lim_{x\to-2^-} (2x^3-1) &&\qquad\text{since $ x < -2$}\\& - = 2(-2)^3 - 1&&\qquad\text{now a skill level 0 problem}\\& - = \boxed{-17} -\end{alignat*} -\end{verA} -\begin{verB} -\begin{alignat*}{2} - \lim_{x\to-2^+} f(x) & - = \lim_{x\to-2^+} (2- x^2) &&\qquad\text{since $ x < -2$}\\& - = 2 - (-2)^2&&\qquad\text{now a skill level 0 problem}\\& - = \boxed{-2} -\end{alignat*} -\end{verB} -\end{solution} -\end{problem} - -\begin{problem}[3] -Compute $\ifAB{\lim_{x\to2} \frac{1-x}{(x-2)^2}} - {\lim_{x\to3} \frac{x-2}{(3-x)^2}}$ - -\begin{solution}[1in] -\begin{verA} -Notice the denominator goes to zero, but the numerator does not; -this indicates a vertical asymptote usually. Because the -denominator is squared, it's always positive. When $x$ is -``close'' to $2$, $1 - x < 0$, that is, when $x$ is ``close'' to -$2$ the numerator is \emph{negative}. The ratio of the numerator and -denominator is \emph{negative} when $x$ is ``close'' to $2$. Thus, we -conclude, -$$ - \boxed{\lim_{x\to2} \frac{1-x}{(x-2)^2} = -\infty} -$$ -\end{verA} -\begin{verB} -Notice the denominator goes to zero, but the numerator does not; -this indicates a vertical asymptote usually. Because the -denominator is squared, it's always positive. When $x$ is -``close'' to $3$, $x - 2 > 0$, that is, when $x$ is ``close'' to -$3$ the numerator is \emph{positive}. The ratio of the numerator and -denominator is \emph{positive} when $x$ is ``close'' to $3$. Thus, we -conclude, -$$ - \boxed{\lim_{x\to3} \frac{x-2}{(3-x)^2} = +\infty} -$$ -\end{verB} -\end{solution} -\end{problem} - -\end{exam} -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/quiz02.tex b/Master/texmf-dist/doc/latex/eqexam/examples/quiz02.tex deleted file mode 100644 index cf6bbfde1e3..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/quiz02.tex +++ /dev/null @@ -1,67 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -\usepackage[myconfig,forpaper,pointsonleft,nosolutions]{eqexam} - -\examNum{2} -\forVersion a -\VersionAtext{Quiz~\nExam--003} -\VersionBtext{Quiz~\nExam--007} -\shortVersionAtext{Q{\nExam}s3} -\shortVersionBtext{Q{\nExam}s7} - -\title[\sExam]{\bfseries\Exam} -\author{D. P. Story} -\subject[C1]{Calculus I} -\date{Spring \the\year} -\keywords{Test~\nExam, Section \ifAB{003}{007}} -\email{dpstory@uakron.edu} - -\everymath{\displaystyle} - -\begin{document} - -\maketitle - -\begin{exam}{Part1} - -\begin{instructions}[Instructions:] -Do as well as you can under the circumstances. -\end{instructions} - -\begin{problem*}[3ea] -Do each of the following without error. -\begin{multicols}{2} - \begin{parts} - \item This this problem. - \begin{solution}[2in]\end{solution} - - \item This this problem. - \begin{solution}[2in]\end{solution} -\pushProblem -\end{multicols} -\par\noindent -\makebox[\linewidth][c]{\rule{.67\linewidth}{.4pt}} -\popProblem - \item Do this harder problem. - \begin{solution}[1in]\end{solution} - \end{parts} -\end{problem*} - -\begin{problem*}[\auto] -Do each of the following without error. - \begin{parts} - \item\PTs{3} This this problem. - \begin{solution}[1in]\end{solution} -\pushProblem -\begin{multicols}{2} -\popProblem - \item\PTs{4} This is a hard problem. - \begin{solution}[2in]\end{solution} - \item\PTs{4} Do this harder problem. - \begin{solution}[2in]\end{solution} - \end{parts} -\end{multicols} -\end{problem*} - -\end{exam} -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/test01.tex b/Master/texmf-dist/doc/latex/eqexam/examples/test01.tex deleted file mode 100644 index 4c9f7fa5c68..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/test01.tex +++ /dev/null @@ -1,428 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -\usepackage{graphicx} -%\usepackage[coverpage,forcolorpaper,pointsonboth,totalsonright]{eqexam} -%\usepackage[forcolorpaper,pointsonleft,nosolutions]{eqexam} -\usepackage[online,nosolutions,forcolorpaper,pointsonboth,totalsonright,noparttotals]{eqexam} - -\title[T1]{Test 1} -\author{D. P. Story} -\subject[C1]{Calculus I} -\date{Spring \the\year} -\keywords{Test~1, Section 001} - -\university -{% - THE UNIVERSITY OF AKRON\\ - Theoretical and Applied Mathematics -} -\email{dpstory@uakron.edu} - -\hfuzz = .7pt - -\begin{document} -\maketitle - - -\begin{exam}[Part I.]{Part1} - -\begin{instructions}[Part I.] -Solve each of the problems without error. If you make an error, -points will be subtracted from your total score. -\end{instructions} - -\begin{problem}[5] -This is an example of a objective question, the student fills in -his/her response in the space below. - -\begin{solution}[.5in] -The solution to the question. This solution will not appear when -the option \texttt{nosolutions} is specified. It will appear -immediately after the question with the \texttt{solutionsafter} -option, and appear at the end of the document if a solutions -option is not specified. -\end{solution} -\end{problem} - - -\begin{problem}[5] -An example of a fill-in question: -It is well known that \fillin{1in}{Newton} and -\fillin{1in}{Leibniz} are jointly credited as the founders of -modern calculus. - -\begin{solution} -It is well known that \underbar{Newton} and \underbar{Leibniz} are -jointly credited as the founders of modern calculus. - -\medskip\noindent\textbf{Notes.} Here the optional argument for -the \texttt{solution} environment is not specified, this implies -that no room should be left for the student to answer, seems -reasonable since this is a fill-in. -\end{solution} -\end{problem} - -\begin{problem*}[2ea] -\textit{True} or \textit{False}. No justification needed. - -% Comment out this next line to see the effect. -\fillinWidth\defaultTFwidth - -\begin{parts} - - \item[h] \TF{T} If triangles have $4$ sides, then all monkeys - are green. Now is the time for all good men to come to the aid - of their country. - -\begin{solution} - This is the solution, let's hope it's correct, or I would be - embarrassed to no end. Now is the time for all good men to - come to the aid of their country. - - \medskip\noindent\textbf{Notes.} This \texttt{\string\item} - has an optional argument `\texttt{[h]}', so the - solution will not appear at the end of the document when there - is no solutions option, but will appear when - \texttt{solutionsafter} is specified. The - \texttt{nohiddensolutions} option can override this feature. -\end{solution} - - \item[H] \TF{T} $1+1=3$ iff $\sqrt2$ is a rational number. Now - is the time for all good men to come to the aid of their - country. - -\begin{solution} - \textbf{Notes.} This \texttt{\string\item} has an optional - argument `\texttt{[H]}', so the solution will not appear at - the end of the document when there is no solutions option, nor - does it appear when \texttt{solutionsafter} is specified. The - \texttt{noHiddensolutions} option can override this feature. -\end{solution} - - \item[h] \TF{F} $(\forall x)(\exists y)(xy>1)$\hskip1em($x$, - $y$~real numbers). Now is the time for all good men to come to - the aid of their country. -\begin{solution} -This is a tough solution. -\end{solution} - - \item[h] \TF{F} $(\forall x)(\exists y)(\forall z)(z(x+y)>0)$, - \hskip1em($x$,~$y$, and~$z$ real numbers). -\begin{solution} -This is a tough solution. -\end{solution} - -\end{parts} -\end{problem*} - - -\begin{problem*}[\auto] -Here is an example of a auto calculate problem. It takes the -optional argument `\texttt{[\string\auto]}'. You specify the -points associated with each part using the \texttt{\string\PTs} -command. - -\begin{parts} - -\item \PTs{10} This a hard one! - -\begin{solution}[1in] -This is a tough solution. -\end{solution} - -\item \PTs{5} This one is ``half'' as hard. - -\begin{solution}[1in] -This solution is easy. -\end{solution} - -\end{parts} -\end{problem*} - -\begin{problem*}[\auto] -Select the correct answer for each of the following multiple -choice. There is only one correct answer. -\begin{parts} - \item\PTs{6} In what year did Columbus sail the ocean blue? - \begin{answers}{6} % specify tabular any with 6 columns - \bChoices - \Ans0 1490\eAns - \Ans0 1491\eAns - \Ans1 1492\eAns - \Ans0 1493\eAns - \eChoices - \end{answers} -\begin{solution} - Yes, Columbus sailed the ocean blue in 1492. -\end{solution} - - \item\PTs{4} In what year did Columbus sail the ocean blue? - \begin{answers}{1} % specify a list environment. - \bChoices - \Ans0 1490\eAns - \Ans0 1491\eAns - \Ans1 1492\eAns - \Ans0 1493\eAns - \eChoices - \end{answers} -\begin{solution} - Yes, Columbus sailed the ocean blue in 1492. -\end{solution} - -\end{parts} -\end{problem*} - - -\begin{problem}[5] -Which of the following best describes Augustin Cauchy? - -\sqForms % change this multiple choice to a forms style. - -\begin{multicols}{2} - -% use two columns - -\begin{answers}{1} % an argument of 1 means list style - -\bChoices - \Ans0 He developed the Calculus while his University was closed - for the plague.\eAns % Newton - - \Ans0 Given credit for first using the functional notation - $f(x)$.\eAns % Euler - - \Ans0 He created the ``bell-shaped curve'' and first used the - method of least squares.\eAns % Gauss - - \Ans1 He first formulated a precise definition of the limit - and continuity of a function.\eAns % Cauchy - - \Ans0 Gave a rigorous definition of the definite integral---an - integral that now bears his name.\eAns % Riemann - - \Ans0 His notation for the derivative and the integral is used - even to this day.\eAns % Leibnitz -\eChoices - -\end{answers} - -\end{multicols} - -\begin{solution} -This is a solution to a problem question. -\end{solution} - -\end{problem} - - -\begin{problem}[5] -Which of the following are primary colors? - \begin{manswers}{6} % specify tabular any with 6 columns - \bChoices - \Ans1 Blue\eAns - \Ans0 Green\eAns - \Ans1 Yellow\eAns - \Ans0 Orange\eAns - \Ans1 Red\eAns - \eChoices - \end{manswers} -\begin{solution} - Yes, Columbus sailed the ocean blue in 1492. -\end{solution} -\end{problem} - -\begin{problem}[3] -This is a question. Work \OnBackOfPage, and be quick about it! -\begin{solution}[1in] -This is the solution, let's hope it's correct, or I would be -embarrassed to no end. -\end{solution} -% -% This example illustrates the use of the work area. Place the -% \texttt{workarea} environment just below the \texttt{solution} environment, it's -% parameter must be the same as the one specified by \texttt{solution}. The material -% in the \texttt{workarea} environment will lay on top the vertical space generated above, -% when the \texttt{nosoutions} option is specified; otherwise, it does nothing. -% -\begin{workarea}[.5\linewidth]{1in} -Peter piper picked a peck of pickled peppers, how many pecks of pickled -peppers did Peter Piper pick? -% -\vfill\hfill\setlength{\fboxsep}{6pt}\fbox{Answer: \fillin[n]{1in}{17}} -\end{workarea} -\end{problem} - -% The previous solution works well for paper publications, however, when the online -% or email option is taken, a text field is created for the student to type into, -% the graphics and text are superimposed on top this text field, so the student -% types over these elements, not a good solution in this case. -% -% The next example illustrates a work around. It works for both paper and for online -% documents. - -\begin{problem}[5] -This is a question worth $5$ points. - -\sbox{\eqpanelbox}{\includegraphics[scale=.2]{fig1}} - -\begin{splitsolution}{\panelheight} -\begin{panel}{\panelwidth} -\includegraphics[scale=.2]{fig1} -\end{panel} -\begin{solution} -This a really good solution. I hope this solution is correct or I will be total -embarrassed to no end. Even if it is wrong, maybe the students will appreciate -my tremendous effort. You can see from the figure that the solution is obvious. -What is less obvious is why this works! -\end{solution} -\end{splitsolution} -\end{problem} - -% Here is the same layout, but without the computation of the figure width and height -% Here I set the width to 1in and the depth to 1.25in. - -\begin{problem}[7] -This is a question worth $7$ points. - -\begin{splitsolution}{1.25in} -\begin{panel}{1in} -\includegraphics[scale=.2]{fig1} -\end{panel} -\begin{solution} -This a really good solution. I hope this solution is correct or I will be total -embarrassed to no end. Even if it is wrong, maybe the students will appreciate -my tremendous effort. You can see from the figure that the solution is obvious. -What is less obvious is why this works! -\end{solution} -\end{splitsolution} -\end{problem} - - -% This example illustrates multiple part a question - -\begin{problem*}[10ea] -Answer each of the following questions. -\begin{parts} -\item This is a question. - -\sbox{\eqpanelbox}{\includegraphics[scale=.2]{fig1}} - -\begin{splitsolution}{\panelheight} -\begin{panel}[r]{\panelwidth} -\includegraphics[scale=.2]{fig1} -\end{panel} -\begin{solution} -This a really good solution. I hope this solution is correct or I will be total -embarrassed to no end. Even if it is wrong, maybe the students will appreciate -my tremendous effort. You can see from the figure that the solution is obvious. -What is less obvious is why this works! -\end{solution} -\end{splitsolution} - -\item This is a question. -\begin{solution}[.75in] -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -\end{solution} -\end{parts} -\end{problem*} - -% The next problem falls at the bottom of the the page, so I'll increment -% \nbaselineskip from 6\baselineskip, the default, to 7\baselineskip. -% This is enough to move the problem to the next page. - -\nbaselineskip{7} - -% This example illustrates multiple part a question using the multicol package - -\begin{problem*}[12] -Solve each of the following. Work \OnBackOfPage. -\begin{multicols}{2} - -\def\solnsp{1in} - -\begin{parts} -\item This is a question. Be sure you don't make any error, I'm watching. - -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} -\end{parts} -\end{multicols} -\end{problem*} - -\end{exam} - -\begin{exam}[Part II.]{Part2} - -\begin{instructions}[Part II.] -The following is a short review of previously mastered material. -\end{instructions} - -\begin{problem}[5] -This is a question. -\begin{solution}[.5in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[7] -This is a question. -\begin{solution}[.5in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[8] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[5] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[10] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[5] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[10] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} -\end{exam} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/test02.tex b/Master/texmf-dist/doc/latex/eqexam/examples/test02.tex deleted file mode 100644 index 224cff56339..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/test02.tex +++ /dev/null @@ -1,390 +0,0 @@ -\documentclass[10pt]{article} -\usepackage{amsmath} -\usepackage{graphicx} -\usepackage[coverpage,pointsonboth,totalsonright,nosolutions,forpaper]{eqexam} - -\title[T1]{Test 1} -\author{D. P. Story} -\subject[C1]{Calculus I} -\date{Spring \the\year} -\keywords{Test~1, Section 001} - -\university -{% - THE UNIVERSITY OF AKRON\\ - Theoretical and Applied Mathematics -} -\email{dpstory@uakron.edu} - -% The purpose of the test02.tex file is to demonstrated a fancier cover page. -% Here, \eqexcoverpagedesign is redefined to include a frame box at the bottom -% of the page in which the grader can place the score for each part of the test -% and the final grade. -\makeatletter -\let\oldeqexcoverpagedesign\eqexcoverpagedesign -\renewcommand\eqexcoverpagedesign -{% - \oldeqexcoverpagedesign - \vspace{\stretch{-1}} % this is to neutralize the \vfill at the end of \oldeqexcoverpagedesign - \bigskip - \fbox{% - \begin{minipage}[t]{.45\linewidth} - \begin{flushleft} - \expandafter\ifx\csname NumberOfParts\endcsname\relax - \else - \count2 = 0 - \medskip - \textbf{Exam Record}\par\parskip=\bigskipamount - \def\\##1{\advance\count2 by\csname ##1total\endcsname - \underbar{\makebox[0pt][l]{##1}\hspace*{1.5in}}% - / \csname ##1total\endcsname\space points\par} - \thePartNames - \fi - \underbar{\makebox[0pt][l]{Total:}\hspace{1.5in}}/ {\the\count2 } points\par - \underbar{\makebox[0pt][l]{Grade:}\hspace{1.5in}}\medskip - \end{flushleft} - \end{minipage}} - \par -} -\makeatother - -\begin{document} - -\maketitle - -\begin{exam}[Part I.]{Part1} - -\begin{instructions}[Part I.] -Solve each of the problems without error. If you make an error, -points will be subtracted from your total score. -\end{instructions} - -\begin{problem}[5] -This is an example of a objective question, the student fills in his/her response -in the space below. - -\begin{solution}[.5in] -The solution to the question. This solution will not appear when -the option \texttt{nosolutions} is specified. It will appear -immediately after the question with the \texttt{solutionsafter} -option, and appear at the end of the document if a solutions -option is not specified. -\end{solution} -\end{problem} - -\begin{problem}[5] -An example of a fill-in question: -It is well known that \fillin{1in}{Newton} and -\fillin{1in}{Leibniz} are jointly credited as the founders of -modern calculus. - -\begin{solution} -It is well known that \underbar{Newton} and \underbar{Leibniz} are -jointly credited as the founders of modern calculus. - -\medskip\noindent\textbf{Notes.} Here the optional argument for -the \texttt{solution} environment is not specified, this implies -that no room should be left for the student to answer, seems -reasonable since this is a fill-in. -\end{solution} -\end{problem} - -\begin{problem*}[3ea] -\textit{True} or \textit{False}. No justification needed. - -% Comment out this next line to see the effect. -\fillinWidth\defaultTFwidth - -\begin{parts} - - \item[h] \TF{T} If triangles have $4$ sides, then all monkeys - are green. Now is the time for all good men to come to the aid - of their country. - -\begin{solution} - This is the solution, let's hope it's correct, or I would be embarrassed to no end. - Now is the time for all good men to come to the aid - of their country. - - \medskip\noindent\textbf{Notes.} This \texttt{\string\item} - has an optional argument `\texttt{[h]}', so the - solution will not appear at the end of the document when there - is no solutions option, but will appear when - \texttt{solutionsafter} is specified. The - \texttt{nohiddensolutions} option can override this feature. -\end{solution} - - \item[H] \TF{T} $1+1=3$ iff $\sqrt2$ is a rational number. Now is the time for all good men to come to the aid - of their country. - -\begin{solution} - \textbf{Notes.} This \texttt{\string\item} has an optional argument `\texttt{[H]}', so - the solution will not appear at the end of the document when there is no solutions option, nor does - it appear when \texttt{solutionsafter} is specified. The - \texttt{noHiddensolutions} option can override this feature. -\end{solution} - - \item[h] \TF{F} $(\forall x)(\exists y)(xy>1)$\hskip1em($x$, $y$~real numbers). Now is the time for all good men to come to the aid - of their country. - - \item[h] \TF{F} $(\forall x)(\exists y)(\forall z)(z(x+y)>0)$, - \hskip1em($x$,~$y$, and~$z$ real numbers). - -\end{parts} -\end{problem*} - - -\begin{problem*}[\auto] -Here is an example of a auto calculate problem. It takes the optional -argument `\texttt{[\string\auto]}'. You specify the points associated with each part -using the \texttt{\string\PTs} command. - -\begin{parts} - -\item \PTs{10} This a hard one! - -\begin{solution}[1in] -This is a tough solution. -\end{solution} - -\item \PTs{5} This one is ``half'' as hard. - -\begin{solution}[1in] -This solution is easy. -\end{solution} - -\end{parts} -\end{problem*} - -\begin{problem*}[\auto]\sqForms -Select the correct answer for each of the following multiple choice. There is -only one correct answer. -\begin{parts} - \item\PTs{5} In what year did Columbus sail the ocean blue? - \begin{answers}{6} % specify 6 columns for a tabular environment - \Ans0 1490 &\Ans0 1491 &\Ans1 1492 &\Ans0 1493 - \end{answers} - \begin{solution} - Yes, Columbus sailed the ocean blue in 1492. - \end{solution} - - \item\PTs{6} In what year did Columbus sail the ocean blue? - \begin{answers}{1} % specify a list environment. - \Ans0 1490 - \Ans0 1491 - \Ans1 1492 - \Ans0 1493 - \end{answers} - \begin{solution} - Yes, Columbus sailed the ocean blue in 1492. - \end{solution} - -\end{parts} -\end{problem*} - - -\begin{problem}[5] -Which of the following best describes Augustin Cauchy? - -\sqForms % change this multiple choice to a forms style. - -\begin{multicols}{2} - -% use two columns - -\begin{answers}{1} % an argument of 1 means list style - -\Ans0 He developed the Calculus while his University was closed -for the plague. % Newton -\Ans0 Given credit for first using the functional notation -$f(x)$. % Euler -\Ans0 He created the ``bell-shaped curve'' and first used the -method of least squares. % Gauss - - -\Ans1 He first formulated a precise definition of the limit -and continuity of a function. % Cauchy -\Ans0 Gave a rigorous definition of the definite integral---an -integral that now bears his name. % Riemann -\Ans0 His notation for the derivative and the integral is used -even to this day. % Leibniz - -\end{answers} -\end{multicols} - - -\begin{solution} -This is a solution to a problem question. -\end{solution} - -\end{problem} - -\begin{problem}[3] -This is a question. Work \OnBackOfPage, and be quick about it! - -\begin{solution}[1in] -This is the solution, let's hope it's correct, or I would be embarrassed to no end. -\end{solution} -% -% This example illustrates the use of the work area. Place the -% \texttt{workarea} environment just below the \texttt{solution} environment, it's -% parameter must be the same as the one specified by \texttt{solution}. The material -% in the \texttt{workarea} environment will lay on top the vertical space generated above, -% when the \texttt{nosoutions} option is specified; otherwise, it does nothing. -% -\begin{workarea}[.5\linewidth]{1in} -Peter piper picked a peck of pickled peppers, how many pecks of pickled -peppers did Peter Piper pick? -% -\vfill\hfill\setlength{\fboxsep}{6pt}\fbox{Answer: \fillin[n]{1in}{17}} -\end{workarea} -\end{problem} - -\begin{problem}[7] -This is a question. Now is the time for all good men to come to -the aid of their country. Peter Piper picked a peck of pickled -peppers. Use the figure below. - - -\begin{solution}[1in] -This a really good solution. I hope this solution is correct or I will be -embarrassed to no end. Even if it is wrong, maybe the students will appreciate -my effort. You can see from the figure that the solution is obvious. -(You could also use commands from a figure wrapping package as well.) -\end{solution} -\begin{workarea}[\linewidth]{1in} -\hfill\includegraphics[scale=.2]{fig1} -\end{workarea} -\end{problem} - -% The previous solution works well for paper publications, however, when the online -% or email option is taken, a text field is created for the student to type into, -% the graphics and text are superimposed on top this text field, so the student -% types over these elements, not a good solution in this case. -% -% The next example illustrates a work around. It works for both paper and for online -% documents. - -\begin{problem}[5] -This is a question worth $5$ points. - -\begin{solution}[1.5in] -This a really good solution. I hope this solution is correct or I will be total -embarrassed to no end. Even if it is wrong, maybe the students will appreciate -my tremendous effort. You can see from the figure that the solution is obvious. -\end{solution} -\end{problem} - -% This example illustrates multiple part a question - -\begin{problem*}[10ea] -Answer each of the following questions. -\begin{parts} -\item This is a question. -\begin{solution}[1in] -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -\end{solution} -\item This is a question. -\begin{solution}[1in] -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -Now is the time for all good men to come to the aid of their country. -\end{solution} -\end{parts} -\end{problem*} - -% This example illustrates multiple part a question using the multicol package - -\begin{problem*}[12] -Solve each of the following. Work \OnBackOfPage -\begin{multicols}{2} - -\def\solnsp{1in} - -\begin{parts} -\item This is a question. Be sure you don't make any error, I'm watching. - -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} - -\item This is a question. -\begin{solution}[\solnsp] -This is the solution. -\end{solution} -\end{parts} -\end{multicols} -\end{problem*} - -\end{exam} - -\begin{exam}[Part II.]{Part2} - -\begin{instructions}[Part II.] -The following is a short review of previously mastered material. -\end{instructions} - -\begin{problem}[5] -This is a question. -\begin{solution}[.5in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[7] -This is a question. -\begin{solution}[.5in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[8] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -e $t$ is given by $\boxed{v=2t-5}$. -\end{solution} -\end{problem} - -\begin{problem}[5] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[10] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[5] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} - -\begin{problem}[10] -This is a question. -\begin{solution}[1in] -This is the solution to answer all questions. -\end{solution} -\end{problem} -\end{exam} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/test_matching.tex b/Master/texmf-dist/doc/latex/eqexam/examples/test_matching.tex deleted file mode 100644 index 92d1929b0ee..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/test_matching.tex +++ /dev/null @@ -1,68 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -\usepackage{graphicx} -%\usepackage[forpaper,pointsonleft]{eqexam} -\usepackage[forpaper,pointsonleft,nosolutions]{eqexam} -%\usepackage[online,forpaper,pointsonleft,answerkey]{eqexam} - -\title[T1]{Test 1} -\author{D. P. Story} -\subject[Eq]{EqExam} -\date{Spring \the\year} -\keywords{Test 1, Section 001} - -\university -{% - NORTHWEST FLORIDA STATE COLLEGE\\ - Department of Mathematics -} -\email{storyd@nwfsc.edu} - -\hfuzz = .7pt - -\begin{document} -\maketitle - - -\begin{exam}{Part1} - -\begin{instructions} -Solve each of the problems without error. If you make an error, -points will be subtracted from your total score. -\end{instructions} - - -\begin{problem*}[\auto] -Match each of names on the left, with the corresponding names on the right. - -\begin{multicols}{2} -\begin{parts} -\item\PTs*{2}\fillin{.5in}{\ref{george}} Washington -\item\PTs*{2}\fillin{.5in}{\ref{john}} Adams -\item\PTs*{2}\fillin{.5in}{\ref{thomas}} Jefferson - -\columnbreak - -\renewcommand{\thepartno}{\Alph{partno}} -\partsformat{\Alph{partno}.} - -% The above redefinitions are reset when we leave the group, when \end{parts} -% is completed. If the original definitions are needed to be reset before then -% execute the following commands: \defaultthepartno, \defaultpartsformat - -% \foritem{a} resets the partno counter back to 0, and displays (a), which -% has been redefined to A. - -\foritem{a}\label{john} John - -\item\label{thomas} Thomas - -\item\label{george} George - -\end{parts} -\end{multicols} -\end{problem*} - -\end{exam} - -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/examples/tex_survey.tex b/Master/texmf-dist/doc/latex/eqexam/examples/tex_survey.tex deleted file mode 100644 index b2c3dc62ad2..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/examples/tex_survey.tex +++ /dev/null @@ -1,538 +0,0 @@ -\documentclass{article} - -% -% AcroTeX eDucation Bundle required for the email option. -% -\usepackage[email,coverpage,forcolorpaper,nopoints,nosolutions,useforms]{eqexam} - -\title[TS]{\texorpdfstring{\TeX}{\textbackslash TeX} Usage Survey} -\author{D. P. Story} -\subject{\texorpdfstring{\sffamily eqExam}{eqExam} Demo} -\date{Spring, \the\year} -\keywords{TeX Usage Survey, eqExam, AcroTeX} - -\university -{% - THE UNIVERSITY OF AKRON\\ - Theoretical and Applied Mathematics -} -\email{dpstory@uakron.edu} - -\EmailSubject{TeX/LaTeX Survey Results} -\EmailCourseName{eqExam Demo} -\EmailExamName{TeX Usage Survey} -\ServerRetnMsg{Your TeX survey results have been received, thank you.} -\SubmitInfo{http://myWebSite/scripts/eqAttach.asp?nopath\#FDF}{myname@mymailprovider} - -\lhead{\textsf{eqExam} Demo} -\rhead{\TeX{} Usage Survey} - -\renewcommand\maketitledesign -{% - \parbox{\textwidth}{\normalsize - \makebox[\textwidth][c]{\bfseries\sffamily\Large\webtitle}\\[3ex] - \makebox[\textwidth][s]{An \textsf{eqExam} Demo \hfill\webauthor}} -} -\makeatletter -\renewcommand\eqexcoverpagedesign -{% - \thispagestyle{empty} - \addtolength\textwidth{\oddsidemargin} - \vspace*{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\bfseries\color{blue}\large\centering\webuniversity}} - \par\vspace{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\bfseries\color{blue}\large\centering\websubject}} - \par\vspace{\bigskipamount} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\bfseries\color{blue}\large\centering\webtitle}} - \par\vfill - \optionalpagematter - \par\vfill - \parindent0pt - \@date -} -\makeatother - -% -% From the Web package, part of the AcroTeX eDucation Bundle -% -\newNaviIcon[j]{\GoToSubmit}{20pt}{15pt}{\textcolor{webblue}{$\blacktriangleleft$}}{this.pageNum=1} -\def\optionalpagematter -{% - \begin{center}\setlength{\fboxrule}{1pt} - \fcolorbox{blue}{webyellow}{% - \begin{minipage}{.67\linewidth} - \noindent\textcolor{red}{\textbf{Instructions:}} First, thank - you very much for taking the time to fill out this survey of - \TeX/\LaTeX{} usage. I will summarize the results, and make - them publicly available. The survey has not been commissioned - by TUG ({\TeX} User's Group), but is a demo of some of - capabilities of my new {\LaTeX} package - \textsf{eqExam}.\par\medskip When you have finished, click on - the ``Submit'' button to record your responses.\par\medskip - \textbf{\textcolor{red}{Note:}} The \textcolor{webblue}{Adobe - Reader}, or an \textcolor{webblue}{Acrobat} application - (version 5.0 or later) is required to submit this - survey.\hfill\mbox{D. P. Story} - \end{minipage}} - \end{center} -} - -\begin{document} - -\maketitle - -\begin{exam}{Part1} - -\begin{instructions}[\TeX/\LaTeX.] -This first block of questions concerns your use of {\TeX/\LaTeX}. -\end{instructions} - -\begin{problem*} -Experience using \TeX/\LaTeX. -\begin{parts} -\item How would you describe yourself in terms of experience using \TeX/\LaTeX? -\begin{answers}{4} -\rowsep{1bp} -\bChoices - \Ans0 Novice\eAns - \Ans0 Intermediate\eAns - \Ans0 Experienced\eAns - \Ans0 Package Developer\eAns -\eChoices -\end{answers} - -\item I have used \TeX/\LaTeX{} for\dots -\begin{answers}{3} -\rowsep{1bp} -\bChoices - \Ans0 less than a year\eAns - \Ans0 one to two years\eAns - \Ans0 two to five years\eAns - \Ans0 five to ten years\eAns - \Ans0 ten to fifteen years\eAns - \Ans0 fifteen to twenty years\eAns - \Ans0 more than twenty years\eAns -\eChoices -\end{answers} - -\end{parts} -\end{problem*} - -\begin{problem} -Approximately how many hours do you spend using \TeX/\LaTeX{} in a typical week? -On a per week basis, I use \TeX/\LaTeX\dots -\begin{answers}{4} -\rowsep{1bp} -\bChoices - \Ans0 less than an hour\eAns - \Ans0 one to two hours\eAns - \Ans0 three to five hours\eAns - \Ans0 ten hours\eAns - \Ans0 more than ten hours\eAns -\eChoices -\end{answers} -\end{problem} - -\begin{problem} -There are many {\TeX} user's groups worldwide, are you a member of one or more? -\begin{answers}{4} -\bChoices - \Ans0 Yes\eAns - \Ans0 No\eAns -\eChoices -\end{answers} -\end{problem} - -\begin{problem*} -The following questions concern your preferred use of \TeX. -\begin{parts} -\item\label{whichTeX} Which styles to you predominately use? -\begin{answers}{4} -\rowsep{1bp} -\bChoices[2] - \Ans0 Plain \TeX\eAns - \Ans0 \LaTeX\eAns - \Ans0 Con\TeX t\eAns - \Ans0 Other, \makebox[0pt][l]{please specify \fillin{1.25in}{\empty}}\eAns -\eChoices -\end{answers} - -\item Based on your response to \hyperref[whichTeX]{(\ref*{whichTeX})}, -please explain why you made the choice you did. -\begin{solution}[.75in] -\end{solution} - - -\item There are many {\TeX} Systems available for use, commercial, -shareware, freeware. Which one do you primarily use? -\begin{answers}{4} -\rowsep{1bp} -\bChoices - \Ans0 A \TeX{} Live System\eAns - \Ans0 te\TeX\eAns - \Ans0 Mik\TeX\eAns - \Ans0 PC\TeX\eAns - \Ans0 Y\negthinspace{\scriptsize\&}\negthinspace Y \TeX{} System\eAns - \Ans0 Textures\eAns - \Ans0 CMac\TeX\eAns - \Ans0 True\TeX\eAns - \Ans0 Oz\TeX\eAns - \Ans0 Other, \makebox[0pt][l]{please specify \fillin{1.75in}{\empty}}\eAns -\eChoices -\end{answers} - -\item What is your favorite {\TeX} editor? Specify \fillin{1.75in}{\empty} - -\end{parts} -\end{problem*} - -\begin{problem*} -What operating systems (OS) do you use \TeX? - -\setlength\columnseprule{0pt} - -\begin{parts} - -\item What operating system (OS) runs on the machine you -most frequently use when working with \TeX/\LaTeX? Select one. -\begin{multicols}{2} -\begin{answers}{1} -\bChoices - \Ans0 Windows XP\eAns - \Ans0 Windows ME\eAns - \Ans0 Windows NT\eAns - \Ans0 Windows 2000\eAns - \Ans0 Windows 98\eAns - \Ans0 Windows 95\eAns - \Ans0 Macintosh OS X\eAns - \Ans0 Macintosh OS 9\eAns - \Ans0 Macintosh OS 8\eAns - \Ans0 Macintosh OS 7 or earlier\eAns - \Ans0 Unix or Linux\eAns - \Ans0 Other, please specify \fillin{1.25in}{\empty}\eAns - \Ans0 Don't know\eAns -\eChoices -\end{answers} -\end{multicols} - -\item Some people work on multiple platforms, what is your secondary -OS for working with \TeX/\LaTeX? -\begin{multicols}{2} -\begin{answers}{1} -\bChoices - \Ans0 Windows XP\eAns - \Ans0 Windows ME\eAns - \Ans0 Windows NT\eAns - \Ans0 Windows 2000\eAns - \Ans0 Windows 98\eAns - \Ans0 Windows 95\eAns - \Ans0 Macintosh OS X\eAns - \Ans0 Macintosh OS 9\eAns - \Ans0 Macintosh OS 8\eAns - \Ans0 Macintosh OS 7 or earlier\eAns - \Ans0 Unix or Linux\eAns - \Ans0 Other, please specify \fillin{1.25in}{\empty}\eAns - \Ans0 Don't use two systems.\eAns -\eChoices -\end{answers} -\end{multicols} - -\end{parts} - -\end{problem*} - - -\begin{eqComments}[Seeking Help.]\end{eqComments} - -\begin{problem*} -These questions concern any problems you may have with \TeX/\LaTeX{} and resources available to you. -\begin{parts} -\item Do you struggle on alone (with \TeX/\LaTeX ) if things are going wrong, or do you - seek help? - \begin{answers}{3} - \bChoices - \Ans0 Struggle on along\eAns - \Ans0 Seek help from a friend or colleague\eAns - \Ans0 Seek help from a public forum\eAns - \eChoices - \end{answers} - -\item Do you use on-line resources? - \begin{answers}{4} - \bChoices - \Ans0 No\eAns - \Ans0 Yes, I use \makebox[0pt][l]{\fillin{1.75in}{\empty}}\eAns - \eChoices - \end{answers} - -\goodbreak - -\item Do you seek help from \texttt{comp.text.tex}? - \begin{answers}{3} - \bChoices - \Ans0 No\eAns - \Ans0 Yes, I read the postings occasionally\eAns - \Ans0 Yes, I read the postings regularly\eAns - \Ans0 Yes, I even ask questions\eAns - \Ans0 Yes, I answer questions on occasion\eAns - \Ans0 Yes, I regularly answer questions\eAns - \eChoices - \end{answers} -\end{parts} -\end{problem*} - -\begin{problem*} -The \textsf{CTAN} Archive. -\begin{parts} -\item\label{CTAN} Do you know about \textsf{CTAN} (Central {\TeX} Archive Network)? - \begin{answers}{4} - \bChoices - \Ans0 No\eAns - \Ans0 Yes\eAns - \eChoices - \end{answers} - -\item If you answered ``Yes'' to question~\hyperref[CTAN]{(\ref*{CTAN})}, approximately, how often - do you use this archive? - \begin{answers}{3} - \bChoices - \Ans0 Once or twice a month\eAns - \Ans0 three to five times per month\eAns - \Ans0 More than five times per month\eAns - \eChoices - \end{answers} - -\end{parts} -\end{problem*} - -\begin{problem*} -The {\TeX} \textsf{FAQ} Resource. -\begin{parts} -\item\label{FAQ} Do you know there is a {\TeX} \textsf{FAQ} online resource? (\texttt{http://www.tex.ac.uk/faq}) - \begin{answers}{4} - \bChoices - \Ans0 No\eAns - \Ans0 Yes\eAns - \eChoices - \end{answers} - -\item\label{FAQ1} If you answered ``Yes'' to question, \hyperref[FAQ]{(\ref*{FAQ})} have you ever used the \textsf{FAQ}? - \begin{answers}{4} - \bChoices - \Ans0 No\eAns - \Ans0 Yes, \makebox[0pt][l]{how often? \fillin{1in}{\empty} per year.}\eAns - \eChoices - \end{answers} -\end{parts} -\end{problem*} - -\begin{problem} -In terms of paper publications, what are the titles of the books you use for a reference to your -work in \TeX/\LaTeX? Please list titles/authors in the space provided below. -\begin{solution}[1.8in] -\end{solution} -\end{problem} - -\goodbreak -\begin{eqComments}[Print and PDF.]\end{eqComments} - -\begin{problem} -What application do you use to create PDF? Adobe Distiller, ps2pdf, other. -\begin{answers}{3} -\rowsep{1bp} - \bChoices - \Ans0 Adobe Distiller\eAns - \Ans0 \textsf{ps2pdf} (\textsf{pdfwriter})\eAns - \Ans0 \textsf{pdftex}\eAns - \Ans0 \textsf{dvipdfm}\eAns - \Ans0 Other, \makebox[0pt][l]{please specify \fillin{1.75in}{\empty}}\eAns - \eChoices -\end{answers} -\end{problem} - -\begin{problem} -Describe the reasons you create PDF document from a \TeX/\LaTeX{} source. Is it for -distribution over the Internet; to create interactive, high -content materials; for business purposes? Please elaborate in the -space provided below. -\begin{solution}[.75in] -\end{solution} -\end{problem} - -\begin{problem} -Do you use {\TeX/\LaTeX} primarily for creating printable documents, or for creating -a PDF document suitable for publication on the Internet, or distribution to a colleague? -\begin{answers}{3} - \bChoices - \Ans0 Exclusively for print\eAns - \Ans0 Mostly for PDF\eAns - \Ans0 About half and half\eAns - \eChoices -\end{answers} -\end{problem} - -\begin{problem} -If you have any experience or knowledge of commercial publishing -houses that use a \TeX/\LaTeX{} or \textsf{pdftex} work flow for -prepress typesetting, please list publishing houses and countries -in the space provided below. -\begin{solution}[.75in] -\end{solution} -\end{problem} - -\begin{eqComments}[Population Demographics.] -The next set of questions concern you. -\end{eqComments} - -\begin{problem} -My gender is \dots -\begin{answers}{5} - \bChoices - \Ans0 Male\eAns - \Ans0 Female\eAns - \Ans0 \makebox[0pt][l]{Prefer not to disclose}\eAns - \eChoices -\end{answers} -\end{problem} - -\begin{problem} -I am \fillin{.75in}{\empty} years old. -\end{problem} - -\begin{problem} -Which of the following best describes your status as -an \TeX{} user today? Select one: - -\begin{answers}{1} - \bChoices - \Ans0 Use as a student\eAns - \Ans0 Use as an educator/trainer\eAns - \Ans0 Use at home for personal use or as a hobby\eAns - \Ans0 Use for a home-based business\eAns - \Ans0 Use in a company or business (non-home based)\eAns - \eChoices -\end{answers} -\end{problem} - -\begin{problem} -What is your country of residence? Select one: - -\setlength\columnseprule{0pt} - -\begin{multicols}{2} -\begin{answers}{1} - \bChoices - \Ans0 United States of America\eAns - \Ans0 Canada\eAns - \Ans0 Other Americas, \mbox{specify: \fillin{1.24in}{\empty}}\eAns - \Ans0 United Kingdom\eAns - \Ans0 France\eAns - \Ans0 Germany\eAns - \Ans0 Sweden\eAns - \Ans0 Netherlands\eAns - \Ans0 Other Europe, \mbox{specify: \fillin{1.25in}{\empty}}\eAns - \Ans0 Japan\eAns - \Ans0 Hong Kong/Taiwan\eAns - \Ans0 China\eAns - \Ans0 Other Asia, \mbox{specify: \fillin{1.25in}{\empty}}\eAns - \Ans0 Australia\eAns - \Ans0 New Zealand\eAns - \Ans0 Africa, \mbox{specify: \fillin{1.25in}{\empty}}\eAns - \eChoices -\end{answers} -\end{multicols} -\end{problem} - -\def\myDing{\makebox[0pt][r]{\textcolor{red}{\ding{042}}\enspace}} - -\begin{eqComments}[]% -\myDing If your company/organization uses \TeX/\LaTeX/\textsf{pdftex} in their business work flow, -please answer questions \textbf{\textcolor{blue}{\ref*{buss1}}} and \textbf{\textcolor{blue}{\ref*{buss2}}}. -\end{eqComments} - -\begin{problem}\label{buss1} -How many employees work at your company including all -sites? Select one: - -\setlength\columnseprule{0pt} -\begin{multicols}{3} -\begin{answers}{1} - \bChoices - \Ans0 One/work alone\eAns - \Ans0 2 - 9\eAns - \Ans0 10 - 49\eAns - \Ans0 50 - 99\eAns - \Ans0 100 - 499\eAns - \Ans0 500 - 999\eAns - \Ans0 1000 - 2999\eAns - \Ans0 3000 - 4999\eAns - \Ans0 5000 or more\eAns - \Ans0 Don't know\eAns - \eChoices -\end{answers} -\end{multicols} -\end{problem} - -\begin{problem}\label{buss2} -What is your company/organization's PRIMARY industry? Select one: - -\setlength\columnseprule{0pt} - -\begin{multicols}{2} -\begin{answers}{1} - \bChoices - \Ans0 Aerospace\eAns - \Ans0 Automotive\eAns - \Ans0 Computer hardware\eAns - \Ans0 Computer software\eAns - \Ans0 Education\eAns - \Ans0 Engineering\eAns - \Ans0 Financial services\eAns - \Ans0 Government\eAns - \Ans0 Graphic design/fine art\eAns - \Ans0 Healthcare/social services\eAns - \Ans0 Insurance\eAns - \Ans0 Legal\eAns - \Ans0 Manufacturing\eAns - \Ans0 Membership organizations - religious, nonprofit, trade unions\eAns - \Ans0 Military\eAns - \Ans0 Pharmaceuticals/bio tech\eAns - \Ans0 Professional services (documentation)\eAns - \Ans0 Professional services (technical/IT/Internet)\eAns - \Ans0 Printing and publishing\eAns - \Ans0 Public and protective services (police, fire)\eAns - \Ans0 Retail\eAns - \Ans0 Telecommunications\eAns - \Ans0 Transportation\eAns - \Ans0 Travel\eAns - \Ans0 Wholesale\eAns - \Ans0 Other, \mbox{please specify: \fillin{1.25in}{\empty}}\eAns - \eChoices -\end{answers} -\end{multicols} -\end{problem} - -\begin{eqComments}[Improvements in \TeX.]\end{eqComments} - -\begin{problem} -What you most like to see improved in \TeX/\LaTeX? Use the space provided -below: -\begin{solution}[2in] -\end{solution} -\end{problem} - - -\begin{eqComments}[Thank You] once again for participating in this survey.\end{eqComments} -\begin{eqComments}[\GoToSubmit] -Click on the left arrow to return to the first page to submit your responses.\end{eqComments} - - - -\end{exam} -\end{document} diff --git a/Master/texmf-dist/doc/latex/eqexam/script/eqAttach.asp b/Master/texmf-dist/doc/latex/eqexam/script/eqAttach.asp deleted file mode 100644 index f87f8b47c12..00000000000 --- a/Master/texmf-dist/doc/latex/eqexam/script/eqAttach.asp +++ /dev/null @@ -1,202 +0,0 @@ -<%@ LANGUAGE = VBScript%> -<% -' Copyright 2005 D. P. Story -' All Rights Reserved -' See eqexamman.pdf for some documentation - -' NOTICE: This program can redistributed and/or modified under -' the terms of the LaTeX Project Public License -' Distributed from CTAN archives in directory -' macros/latex/base/lppl.txt; either version 1 of the -' License, or (at your option) any later version. - -' This script is offered "as is", no guarantees are extended. -' eqRecord should be extensively tested on your own system -' until you are satisfied with its functionality and -' reliability. -' -' Note: You need to edit one line below. Search this file for the line that -' contains the string "mySMTP". Replace this string with your SMTP server. - -Response.buffer = True - -Dim DebugTxt, DebugFDF -Dim ErcStatus : ErcStatus = "Problems Reported: " -DebugTxt = False -DebugFDF = False - -' Send FDF file -If DebugTxt Then - Response.ContentType = "text/html" - Response.Write "Debug Info" & "
" -Else - Response.ContentType = "application/vnd.fdf" -End If - -On error Resume Next - -Dim silentMode : silentMode = False -Dim stripPath : stripPath = False - -If Request.QueryString("silent").Count > 0 Then silentMode = True -If Request.QueryString("nopath").Count > 0 Then stripPath = True - -Rem Create an FDF object -Set FdfAcx = Server.CreateObject("FdfApp.FdfApp") -Set FDFout = FdfAcx.FDFCreate - -Rem Parse Incoming Data -Set FDFin = FdfAcx.FDFOpenFromBuf (Request.BinaryRead(Request.TotalBytes)) - -Dim cPDFPath, pos - -If stripPath Then - If DebugTxt Then Response.Write "stripPath is true " & "
" - cPDFPath = FDFin.FDFGetFile - pos = InStrRev( cPDFPath, "/") - If pos <> 0 Then - If DebugTxt Then Response.Write "pos = " & pos & "
" - cPDFPath = Mid(cPDFPath, pos + 1, Len(cPDFPath) - pos ) - If DebugTxt Then Response.Write "cPDFPath = " & cPDFPath & "
" - FDFin.FDFSetFile cPDFPath - End If -End If - -Rem Declare some variables -Dim cBuf -Dim cTime : cTime = Now -Dim eqMail, cMailTo, cMailFrom, cMailSubject -Dim cCourseName, cExam, cStudent, cSID, strMessage, cRetnMsg, eqTab, eqCR -eqTab = chr(9) -eqCR = chr(10) - -' Get Required Info ------------------- -' The only thing we really need is the email address to send this data to -cMailTo = FDFin.FDFGetValue("IdInfo.mailTo") -' cMailFrom = cMailTo - -' Get Optional Info ------ - -On error Resume Next -cCourseName = "" : cCourseName = Trim(FDFin.FDFGetValue("IdInfo.courseName")) - -On error Resume Next -cExam = "" : cExam = Trim(FDFin.FDFGetValue("IdInfo.examName")) - -On error Resume Next -cStudent = "" : cStudent = Trim(FDFin.FDFGetValue("IdInfo.Name")) - -On error Resume Next -cSID = "" : cSID = Trim(FDFin.FDFGetValue("IdInfo.SID")) - -On error Resume Next -cMailFrom = "" : cMailFrom = Trim(FDFin.FDFGetValue("IdInfo.email")) -If Trim(cMailFrom) = "" Then cMailFrom = cMailTo - -On error Resume Next -cMailSubject = "" : cMailSubject = FDFin.FDFGetValue("IdInfo.subject") -If Trim(cMailSubject) = "" Then cMailSubject = "Exam Results: " & cExam & " of " & cCourseName - -On error Resume Next -cRetnMsg = "" : cRetnMsg = Trim(FDFin.FDFGetValue("IdInfo.retnmsg")) - -strMessage = "Summary Information:" -If cCourseName <> "" Then strMessage = strMessage & eqCR & eqTab & "Subject: " & cCourseName -If cExam <> "" Then strMessage = strMessage & eqCR & eqTab & "Title: " & cExam -If cStudent <> "" Then strMessage = strMessage & eqCR & eqTab & "Name: " & cStudent -strMessage = strMessage & eqCR & eqTab & "TimeOfQuiz: " & cTime - -If Trim(cRetnMsg) = "" Then - cBuf = "Exam results successfully sent to your instructor!" -Else - cBuf = cRetnMsg -End If - -If DebugFDF Then cBuf = cBuf & " " & ErcStatus - -If Not silentMode Then FDFout.FDFSetStatus cBuf - -' Construct and send e-mail - -'CDONTS -' Set eqMail = CreateObject("CDONTS.NewMail") 'cdots - -' CDOSYS -Set eqMail = Server.CreateObject("CDO.Message") -eqMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 -eqMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mySMTP" -eqMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 -eqMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 -' eqMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0 -eqMail.Configuration.Fields.Update - -eqMail.To = cMailTo -' See if there is a comma in the cMailFrom string, if yes, then we have multiple addresses -' that we are sending to. We extract the first e-mail address as the one we will put in -' the eqMail.From address. -position = InStr(1,cMailFrom,",",0) -If position <> 0 Then cMailFrom = Trim(Mid(cMailFrom,1,position-1)) -eqMail.From = cMailFrom -eqMail.Subject = cMailSubject - -' CDOSSYS or CDONTS -eqMail.TextBody = strMessage -' eqMail.Body = strMessage 'cdots - -Dim strTempFile -Dim strTempFolder -Dim strTemp -Dim fso - -Set fso = CreateObject("Scripting.FileSystemObject") -Set strTempfolder = fso.GetSpecialFolder(2) -strTempFile = fso.GetTempName() -strTempFile = left(strTempFile, len(strTempFile)-4) -strTemp = strTempFolder & "\" & strTempFile & ".fdf" -FDFin.FDFSaveToFile strTemp - -If DebugTxt Then Response.Write "strTemp = " & strTemp & "
" - -' CDOSSYS or CDONTS -eqMail.AddAttachment strTemp -' eqMail.AttachFile strTemp 'cdots - -eqMail.Send -Set eqMail = Nothing -' Send back to the browser -Response.BinaryWrite FDFout.FDFSaveToBuf - -' Delete temporary file -fso.DeleteFile strTemp -Set fso = nothing - -FDFin.FDFClose -FDFout.FDFClose -Set FdfAcx = Nothing -Set FDFin = Nothing -Set FDFout = Nothing - -If DebugTxt Then - Response.Write strMessage -End If - -Sub RecordError(field) - If Err.Number <> 0 And DebugFDF Then - ErcStatus = ErcStatus & " "&field&": " & Err.Description - End If - If Err.Number <> 0 And DebugTxt Then - Response.Write "Set Error: "&field&": " & Err.Description & "
" - End If - Err.Clear -End Sub - -Sub ReportError(ByRef localErr) - DebugMsg "Err.Description: ", localErr.Description - DebugMsg "Err.Number: ", localErr.Number - localErr.Clear -End Sub - -Sub DebugMsg(myText, myEval) - If DebugTxt Then Response.Write myText & myEval &"
" -End Sub -%> diff --git a/Master/texmf-dist/source/latex/eqexam/eqexam.drv b/Master/texmf-dist/source/latex/eqexam/eqexam.drv deleted file mode 100644 index 04cd89e6348..00000000000 --- a/Master/texmf-dist/source/latex/eqexam/eqexam.drv +++ /dev/null @@ -1,37 +0,0 @@ -%% -%% This is file `eqexam.drv', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eqexam.dtx (with options: `copyright,driver') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eqExam.sty package, 2005-02-05 %% -%% Copyright (C) 2005 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass{ltxdoc} -\usepackage[colorlinks,hyperindex]{hyperref} -\RecordChanges -\begin{document} - \GetFileInfo{eqexam.sty} - \title{eqExam: An Exam Construction Package} - \author{D. P. Story\\ - Email: \texttt{dpstory@uakron.edu}} - \date{Processed \today} - \maketitle - \tableofcontents - \let\Email\texttt - \DocInput{eqexam.dtx} -\PrintIndex -\end{document} -\endinput -%% -%% End of file `eqexam.drv'. diff --git a/Master/texmf-dist/source/latex/eqexam/eqexam.dtx b/Master/texmf-dist/source/latex/eqexam/eqexam.dtx deleted file mode 100644 index 6faa7208bd6..00000000000 --- a/Master/texmf-dist/source/latex/eqexam/eqexam.dtx +++ /dev/null @@ -1,3049 +0,0 @@ -% \iffalse -%<*copyright> -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eqExam.sty package, 2005-02-05 %% -%% Copyright (C) 2005 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%\NeedsTeXFormat{LaTeX2e} -%\ProvidesPackage{eqexam} -% [2009/09/28 v1.9a An Exam Construction Package (dps)] -%<*driver> -\documentclass{ltxdoc} -\usepackage[colorlinks,hyperindex]{hyperref} -%\pdfstringdefDisableCommands{\let\\\textbackslash}% -%\EnableCrossrefs -%\CodelineIndex -\RecordChanges -\begin{document} - \GetFileInfo{eqexam.sty} - \title{eqExam: An Exam Construction Package} - \author{D. P. Story\\ - Email: \texttt{dpstory@uakron.edu}} - \date{Processed \today} - \maketitle - \tableofcontents - \let\Email\texttt - \DocInput{eqexam.dtx} -\PrintIndex -\end{document} -% -% \fi -% -% \MakeShortVerb{|} -% \StopEventually{} -% -% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let} -% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi} -% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup} -% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} -% \DoNotIndex{\space,\@empty,\special} -% \newpage -% \section{Change History} -% -% \makeatletter -% \renewenvironment{theglossary}{% -% \let\efill=\relax -% \begin{itemize}}% -% {\end{itemize}} -% \global\c@GlossaryColumns = 1 -% \makeatother -% \PrintChanges -% \section{Introduction} -% This package is my attempt at writing a set of macros for creating exams. -% The package can be used with our without \textsf{web} or \textsf{exerquiz}. When used -% without, what is produced is a document suitable for printing. When \textsf{exerquiz} -% is used, the same document is produced, but with hypertext links to solutions. This -% may be useful for publishing solutions on the web, or publishing pretests with/without -% solutions. -% -% The package must be as flexible as possible vis-\`a-vis PDF. (1) \textsf{web} only does not add much, -% it does input hyperrref and test info such as \cs{title}, \cs{subject}, etc are placed in the -% Document Info fields of the PDF. (2) If \textsf{exerquiz} is also input (prior to \textsf{eqExam}), -% then hyperlinks will be created to the solutions to the test, if solutions are included at the end -% of the document. (3) If \textsf{web} and \textsf{exerquiz} are input, and the \texttt{online} option -% is taken, then the checkboxes will be come interactive, the space left to work the problems -% will be multi-line text boxes, fill-ins limited to True/False and simple text fill-in the blank will -% also become text boxes. -% -% When in \texttt{online} mode, the student can take the test in a computer lab, the completed exam -% can be printed and handed in, or perhaps submitted server-side script. -% -% \newpage -% \section{Package options and Process Options} -% Let us catalog the options of this package. -% -% \subsection{Options New to eqExam} -% -% Here are some options unique to this package. -% \begin{macrocode} -%<*package> -% \end{macrocode} -% \begin{macrocode} -\usepackage{keyval} -% \end{macrocode} -% \begin{macro}{myconfig} -% \begin{macro}{myconfigi} -% \begin{macro}{myconfigii} -% \begin{macro}{pointsonleft} -% \begin{macro}{pointsonright} -% \begin{macro}{nopoints} -% \begin{macro}{totalsonleft} -% \begin{macro}{totalsonright} -% \begin{macro}{pointsonboth} -% \begin{macro}{nototals} -% \begin{macro}{noparttotals} -% \begin{macro}{noseparationrule} -% \begin{macro}{nosummarytotals} -% \begin{macro}{coverpage} -% \begin{macro}{nospacetowork} -% \begin{macro}{answerkey} -% \begin{macro}{useforms} -% \begin{macro}{online} -% \begin{macro}{pdf} -% \begin{macro}{links} -% \begin{macro}{email} -% \begin{macro}{obeylocalversions} -% The following is the list of options that control the behavior of \textsf{eqExam}. -% \begin{macrocode} -\DeclareOption{myconfig}{\AtEndOfPackage{\eqemyconfig}} -\DeclareOption{myconfigi}{\AtEndOfPackage{\eqemyconfigi}} -\DeclareOption{myconfigii}{\AtEndOfPackage{\eqemyconfigii}} -\DeclareOption{pointsonleft}{\AtEndOfPackage{\PointsOnLeft}} -\DeclareOption{pointsonright}{\AtEndOfPackage{\PointsOnRight}} -\DeclareOption{nopoints}{\AtEndOfPackage{\NoPoints}} -\DeclareOption{totalsonleft}{\AtEndOfPackage{\TotalsOnLeft}} -\DeclareOption{totalsonright}{\AtEndOfPackage{\TotalsOnRight}} -\DeclareOption{pointsonboth}{\AtEndOfPackage{\PointsOnBothSides}} -\DeclareOption{nototals}{\AtEndOfPackage{\NoTotals}} -\DeclareOption{noparttotals}{\AtEndOfPackage{\let\eq@parttotals=n}} -\DeclareOption{noseparationrule}{% - \AtEndOfPackage{\let\separationrule\relax}} -\DeclareOption{nosummarytotals}{\let\eq@nosummarytotals=y} -\DeclareOption{coverpage}{\def\eqex@coverpage{\eqexcoverpage}} -\DeclareOption{nospacetowork}{% - \AtEndOfPackage{\let\eq@insertverticalspace=n}} -\newif\ifanswerkey \answerkeyfalse -\DeclareOption{answerkey}{\answerkeytrue\eq@proofingtrue - \eq@solutionsaftertrue} -\DeclareOption{useforms}{\AtEndOfPackage{\def\sqstar{*}}} -\DeclareOption{online}{\let\eq@online=y\ExecuteOptions{links}} -\DeclareOption{pdf}{\let\load@web=y} -\DeclareOption{links}{\let\load@web=y\let\load@exerquiz=y} -\DeclareOption{email}{\let\use@email=y\ExecuteOptions{online}} -\newif\ifeqobeylocalversion\eqobeylocalversionfalse -\DeclareOption{obeylocalversions}{\eqobeylocalversiontrue} -\DeclareOption{usexkv}{\let\eq@usexkeys=y} -\let\eq@usexkeys=n -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{allowrandomize} -% Use this option to randomize the choices of a multiple choice question. -% \begin{macrocode} -\DeclareOption{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}} -\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def} - {\typeout{inputting aebrandom.def}}{cannot find aebrandom.def}} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\let\eq@online=n -\let\use@email=n -\let\load@web=n -\let\load@exerquiz=n -\def\sqstar{} -\def\sqLinks{\def\sqstar{}} -\def\sqForms{\def\sqstar{*}} -\def\NoSpaceToWork{\let\eq@insertverticalspace=n} -\def\SpaceToWork{\let\eq@insertverticalspace=y} -\let\eq@nototals=n -\let\eq@nosummarytotals=n -\let\eq@parttotals=y -\let\eqx@separationrule=y -\let\eq@insertverticalspace=y -\let\eqex@coverpage=\relax -\def\@reportpoints{0} -\let\marginpoints=\@empty -\let\totalsbox=\hfil -% \end{macrocode} -% -% \subsection{Options from Exerquiz} -% -% Options from \textsf{exerquiz} that are useful for this package. -% \begin{macro}{forpaper} -% \begin{macro}{forcolorpaper} -% \begin{macro}{preview} -% \begin{macro}{nosolutions} -% \begin{macro}{nohiddensolutions} -% \begin{macro}{noHiddensolutions} -% \begin{macro}{solutionsafter} -% \begin{macro}{solutionsonly} -%\changes{v1.7b}{2007/21/07}{Added a \texttt{solutionsonly} option} -% \begin{macro}{proofing} -% Here is the list of options of \textsf{exerquiz} we plan to recognize. -% \begin{macrocode} -\DeclareOption{forpaper}{\eqforpapertrue - \PassOptionsToPackage{monochrome}{\eq@ColorPackage}} -\DeclareOption{forcolorpaper}{\eqforpapertrue} % for print -\DeclareOption{preview}{\previewtrue} -\DeclareOption{nosolutions}{\eq@nolinktrue\eq@nosolutionstrue} -\DeclareOption{nohiddensolutions}{\eq@globalshowsolutionstrue} -\DeclareOption{noHiddensolutions}% - {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}} -\DeclareOption{solutionsafter}{\eq@solutionsaftertrue} -\DeclareOption{solutionsonly}{\solutionsonlytrue\answerkeytrue - \AtEndOfPackage{\therearesolutionstrue\let\exerSolnsHeadnToc\relax}} -\DeclareOption{proofing}{\eq@proofingtrue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{showgrayletters} -%\changes{v1.7c}{2008/08/21} -%{ -% Added the \texttt{showgrayletters} option to eqexam (ported from exerquiz) -%} -% When this option is in effect, capital letters in gray appear under -% the multiple choice question boxes. -% \begin{macrocode} -\newif\ifaebshowgrayletters\aebshowgraylettersfalse -\DeclareOption{showgrayletters}% - {\AtEndOfPackage{\aebshowgrayletterstrue}} -% \end{macrocode} -% \end{macro} -% Set the driver dependent code, these are passed to web/exerquiz. -% \begin{macrocode} -\IfFileExists{xcolor.sty}% -{\def\eq@ColorPackage{xcolor}\PassOptionsToPackage{xcolor}{table}} -{\def\eq@ColorPackage{color}} -\DeclareOption{noxcolor}{\def\eq@ColorPackage{color}} -\def\eq@drivernum{5} -\def\eqDriverName{dvipsone} -% \end{macrocode} -% -% \subsection{Drivers Recognized} -% -% \begin{macro}{dvipsone} -% \begin{macro}{dvips} -% \begin{macro}{pdftex} -% \begin{macro}{dvipdfm} -% \begin{macro}{textures} -% A list of recognized drivers. -% \begin{macrocode} -\DeclareOption{dvipsone}{\def\eq@drivernum{0}\def\eqDriverName{dvipsone} - \PassOptionsToPackage{\eq@ColorPackage}{dvipsone}} -\DeclareOption{dvips}{\def\eq@drivernum{0}\def\eqDriverName{dvips} - \PassOptionsToPackage{\eq@ColorPackage}{dvips}} -\DeclareOption{pdftex}{\def\eq@drivernum{1}\def\eqDriverName{pdftex} - \PassOptionsToPackage{\eq@ColorPackage}{pdftex}} -\DeclareOption{dvipdfm}{\def\eq@drivernum{2}\def\eqDriverName{dvipdfm} - \PassOptionsToPackage{\eq@ColorPackage}{dvipdfm}} -\DeclareOption{textures}{\def\eq@drivernum{3}\def\eqDriverName{textures} - \PassOptionsToPackage{\eq@ColorPackage}{textures}} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\@ifpackageloaded{xcolor}% -{% - \@ifpackagelater{xcolor}{2004/07/04}{} - {% - \PackageError{eqexan}{% - *************************************************\MessageBreak - * Your Version of `xcolor.sty' is too old!\MessageBreak - * You need the version from 2004/07/04 or newer\MessageBreak - * or use: \string\usepackage[noxcolor]{eqexam}\MessageBreak - * or \string\documentclass[noxcolor]{article}\MessageBreak - *************************************************}{}% - }% -}{} -% \end{macrocode} -% If \textsf{exerquiz} is not loaded, when we need to define some of the switches that -% were defined in \textsf{exerquiz}. -% -% The following switches are used in the options above, and are also defined -% in web, exerquiz, or eforms. -% \begin{macrocode} -\newif\ifeq@solutionsafter \eq@solutionsafterfalse -\newif\ifsolutionsonly\solutionsonlyfalse -\newif\ifeq@hidesolution \eq@hidesolutionfalse -\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse -\newif\ifeq@nosolutions \eq@nosolutionsfalse -\newif\ifeq@proofing \eq@proofingfalse -\newif\ifeq@nolink \eq@nolinkfalse -\newif\ifpreview \previewfalse -\newif\ifeqforpaper \eqforpaperfalse -\def\eqemyconfig{\InputIfFileExists{eqexam.cfg}{}{}} -\def\eqemyconfigi{\InputIfFileExists{eqexami.cfg}{}{}} -\def\eqemyconfigii{\InputIfFileExists{eqexamii.cfg}{}{}} -% \end{macrocode} -% -% \subsection{Bring in Config Files} -% -% First read \texttt{web.cfg}, to possibly get the driver, then input \texttt{eqecus.opt}, -% which is used to create convenient custom options. -% \changes{v1.6e}{2006/05/07} -%{ -% Added a custom option feature. Just before the options are processed, -% the tex compiler looks for the file \texttt{eqecus.opt}. This file should -% contain one or more custom options. -%} -% -% Here is an example of usage for defining your own custom options, must be based on -% current options, this code would be in the file \texttt{eqecus.opt}. -%\begin{verbatim} -%\DeclareOption{atbdbopts} -%{% -% \ExecuteOptions{online} -% \ExecuteOptions{forcolorpaper} -% \ExecuteOptions{nosolutions} -% \ExecuteOptions{nopoints} -% \ExecuteOptions{nototals} -% \ExecuteOptions{nospacetowork} -% \ExecuteOptions{obeylocalversions} -% \ExecuteOptions{myconfig} -%} -%\end{verbatim} -% \begin{macrocode} -\InputIfFileExists{web.cfg}{}{} -\InputIfFileExists{eqecus.opt}{}{} -% \end{macrocode} -% -% \subsection{Process Options} -% -% Now process the options. -% \begin{macrocode} -\ProcessOptions -% \end{macrocode} -% -% \subsection{Save Switch Values} -% -% Now, save the current state of the switches defined above. When, and if, -% the packages web, \textsf{exerquiz} and \textsf{eforms} are loaded, they will overwrite the -% choices set by the author, so we save them. -% \begin{macrocode} -\let\savedeq@online\eq@online -\let\savedifeq@solutionsafter\ifeq@solutionsafter -\let\savedifeq@hidesolution\ifeq@hidesolution -\let\savedifeq@globalshowsolutions\ifeq@globalshowsolutions -\let\savedifeq@nosolutions\ifeq@nosolutions -\let\savedifeq@proofing\ifeq@proofing -\let\savedifeq@nolink\ifeq@nolink -\let\savedifpreview\ifpreview -\let\savedifeqforpaper\ifeqforpaper -\let\ifnosolutions\ifeq@nosolutions -% \end{macrocode} -% \section{Required Packages} -% The following are the required packages for \texttt{eqExam}. -% \begin{macrocode} -\RequirePackage{amstext,amssymb} -% \end{macrocode} -% Bring the \texttt{comment} package in early, before \texttt{verbatim}, these two -% clash a bit. -% \begin{macrocode} -\RequirePackage{comment} -% \end{macrocode} -% If user has specified one of the pdf options (pdf, links, online, email), we bring in -% the web package. -% \begin{macrocode} -\@ifpackageloaded{web}{\let\load@web=y} -{% - \ifx\load@web y - \ifnum\eq@drivernum=5 - \PackageError{eqexam}{****You have not selected a driver % - for eqExam****}{Specify dvipsone, dvips, pdftex, % - dvipdfm or textures in option list.} - \fi - \RequirePackage[\eqDriverName]{web} - \edef\@pdfcreator{\@pdfcreator, The eqExam Package} - - \fi -} -% \end{macrocode} -% If user has specified links, online or email, we bring in the exerquiz package. -% \begin{macrocode} -\@ifpackageloaded{exerquiz}{\let\load@exerquiz=y} -{% - \ifx\load@exerquiz y - \RequirePackage[nodljs]{exerquiz}[2005/1/23] -% \end{macrocode} -% We input \textsf{exerquiz} with the \texttt{nodljs}, we don't need all the JavaScript -% to process interactive shortquizzes or quizzes, but we do want the option of -% adding in document JavaScript, so after we input \textsf{exerquiz}, we set the -% switches to allow these features. -% \begin{macrocode} - \let\importdljs=y - \let\execjs=y - \fi -} -% \end{macrocode} -% Here is a fix to a problem I've been having previewing in dviwindo. I've traced -% the problem down to \cs{@pdfviewparams}, and changing the the following. Hope it -% causes no more problems. -% \begin{macrocode} -\def\eqDvipsone{dvipsone} -\ifx\eqDriverName\eqDvipsone -\@ifpackageloaded{hyperref} - {\renewcommand\@pdfviewparams{ null null null}}{} -\fi -% \end{macrocode} -% Now that we have possibly input web or exerquiz, we need to restore the authors options. -% \begin{macrocode} -\let\eq@online\savedeq@online -\let\ifeq@solutionsafter\savedifeq@solutionsafter -\def\ifsolutionsafter{\ifeq@solutionsafter} % user interface -\let\ifeq@hidesolution\savedifeq@hidesolution -\let\ifeq@globalshowsolutions\savedifeq@globalshowsolutions -\let\ifeq@nosolutions\savedifeq@nosolutions -\let\ifeq@proofing\savedifeq@proofing -\let\ifeq@nolink\savedifeq@nolink -\let\ifpreview\savedifpreview -\let\ifeqforpaper\savedifeqforpaper -% \end{macrocode} -% Other packages of interest. -% \begin{macrocode} -\RequirePackage{\eq@ColorPackage} -\RequirePackage{calc} -\RequirePackage{pifont} -% \end{macrocode} -% Here, I input the \texttt{verbatim} package after the comment package. -% \begin{macrocode} -\RequirePackage{verbatim} -% \end{macrocode} -% When constructing paper tests, I often use a multi-column format for some of -% the questions, so let's require this package -% \begin{macrocode} -\RequirePackage{multicol} -\setlength\columnseprule{.4pt} -\raggedcolumns\multicolsep=3pt -% \end{macrocode} -% \section{Page Layout} -% Here we provide a simple page layout, which yields a ``maximum'' amount of space for the test. -% \begin{macrocode} -\setlength{\headsep}{0pt} -\settowidth{\oddsidemargin}{\normalsize\normalfont\bfseries00.\ } -\setlength{\evensidemargin}{0pt} -\setlength{\marginparsep}{11pt} -\setlength{\marginparwidth}{35pt} -\setlength{\headheight}{12pt} -\setlength{\topmargin}{-.5in} -%\setlength{\topmargin}{0pt} -\setlength{\headsep}{20pt} -\setlength{\footskip}{\marginparsep} -% \end{macrocode} -% \begin{macro}{\eqExamPageLayout} -% Set the basic parameters of this exam page package -% \begin{macrocode} -\def\eqExamPageLayout -{% - \setlength\textwidth\paperwidth - \addtolength{\textwidth}{-2in} - \addtolength{\textwidth}{-\oddsidemargin} - \setlength\textheight{\paperheight} - \addtolength\textheight{-2in} - \addtolength\textheight{-\headheight} - \addtolength\textheight{-\headsep} - \addtolength\textheight{-\topmargin} - \addtolength\textheight{-\footskip} -} -\eqExamPageLayout -% \end{macrocode} -% \end{macro} -% A simple page layout scheme for this exam. -% \begin{macrocode} -\newcommand{\ps@eqExamheadings} -{% - \renewcommand{\@oddhead}{% - {% - \normalfont\normalsize - \ifnum\value{page}=1 \hfil - \else - \ifx\eqex@coverpage\relax - \eqExamRunHead - \else - \ifnum\value{page}=2 \hfil - \else - \eqExamRunHead - \fi - \fi - \fi - }% -} -\renewcommand{\@evenhead}{\@oddhead} -\renewcommand{\@oddfoot}{\settotalsbox} -\renewcommand{\@evenfoot}{\@oddfoot}} -\raggedbottom -% \end{macrocode} -% \section{Counters, Lengths and Tokens} -% Some counters to keep track of things. \DescribeEnv{eqpointsofar} -% \DescribeEnv{eqpointsthispage} The first two counters keep track, respectively, -% of the total points so far up the current page, and the number of points -% on the current page. \DescribeEnv{eq@numparts} The counter \texttt{eq@numparts} -% holds the number of parts of the multi-part question. -% \begin{macrocode} -\newcounter{eqpointsofar} -\newcounter{eqpointsthispage} -\newcounter{eq@numparts} -\newcounter{eq@count} -\newtoks\partNames \partNames={} -\newlength{\eq@tmplengthA} -\newbox{\eq@pointbox} -\newlength{\eq@pointboxtotalheight} -% \end{macrocode} -% Some scratch registers to do calc calculations. -% \begin{macrocode} -\newlength{\eqetmplengtha} -\newlength{\eqetmplengthb} -% \end{macrocode} -% \section{Some Macros to Support the Options} -% We make a few definitions to support various options. -% \begin{macrocode} -\def\eqbothmargins#1#2{\eqleftmargin{#1}{#2}\eqrightmarginbox{#1}{#2}} -\def\PointsOnLeft{\def\@reportpoints{1}\let\marginpoints=\eqleftmargin} -\def\PointsOnRight{\def\@reportpoints{2}\relax - \let\marginpoints=\eqrightmarginbox} -\def\PointsOnBothSides{\def\@reportpoints{3}\relax - \let\marginpoints=\eqbothmargins} -\def\NoPoints{\def\@reporttotals{0}\let\totalsbox=\hfil - \let\marginpoints=\@empty\let\eq@nosummarytotals=y} -\def\TotalsOnLeft{\def\@reporttotals{1}\def\totalsbox{\totalsboxleft}} -\def\TotalsOnRight{\def\@reporttotals{2}\def\totalsbox{\totalsboxright}} -\def\NoTotals{\def\@reporttotals{0}\let\totalsbox=\hfil} -\def\eoeTotalOff{\let\eq@parttotals=n} -\def\eoeTotalOn{\let\eq@parttotals=y} -\def\separationruleOn{\let\eqx@separationrule=y} -\def\separationruleOff{\let\eqx@separationrule=n} -% \end{macrocode} -% \begin{macro}{\encloseProblemsWith} -%\changes{v1.7b}{2007/21/07}{Added \cs{encloseProblemsWith} to -% support the \texttt{solutionsonly} option} -% \begin{macrocode} -\def\encloseProblemsWith#1{\ifsolutionsonly - \excludecomment{#1}\else - \includecomment{#1}\fi -} -% \end{macrocode} -% \end{macro} -% \section{Colors} -% \begin{macro}{\proofingsymbolColor} -% \begin{macro}{\instructionsColor} -% \begin{macro}{\eqCommentsColor} -% \begin{macro}{\universityColor} -% \begin{macro}{\titleColor} -% \begin{macro}{\authorColor} -% \begin{macro}{\subjectColor} -% \begin{macro}{\linkcolor} -% \begin{macro}{\nolinkcolor} -% Here we list commands for controlling colors. There are some other colors defined -% in the stand alone code. -% \changes{v1.6e}{2006/05/07} -% { -% Added easy user access to various colors, \cs{proofing\-symbol\-Color}, -% \cs{instructionsColor}, \cs{eqCommentsColor}, \cs{authorColor}, -% \cs{title\-Color}, \cs{universityColor} and \cs{subjectColor} -% } -% \begin{macrocode} -\providecommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}} -\proofingsymbolColor{red} -\providecommand{\instructionsColor}[1]{\def\@instructionsColor{#1}} -\instructionsColor{blue} -\providecommand{\eqCommentsColor}[1]{\def\@eqCommentsColor{#1}} -\eqCommentsColor{blue} -\providecommand{\universityColor}[1]{\def\webuniversity@color{#1}} -\universityColor{blue} -\providecommand{\titleColor}[1]{\def\webtitle@color{#1}} -\titleColor{black} -\providecommand{\authorColor}[1]{\def\webauthor@color{#1}} -\authorColor{black} -\providecommand{\subjectColor}[1]{\def\websubject@color{#1}} -\subjectColor{blue} -\providecommand{\linkcolor}[1]{\def\@linkcolor{#1}} -\linkcolor{blue} -\providecommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}} -\nolinkcolor{blue} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \section{Version Control} -% Here are some simple macros use to create two versions, -% version A and version B, of the same test. -% \begin{macro}{\examNum} -% Convenience macro for holding the exam number. It sets the -% value of \cs{nExam}. -% \begin{macrocode} -\def\examNum#1{\def\nExam{#1}} -\examNum{1} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\Exam} -% \begin{macro}{\sExam} -% Convenience macros for titling the exam. Usage: -%\begin{verbatim} -%\VersionAtext{Test~\nExam--Version A} -%\VersionBtext{Test~\nExam--Version B} -%\shortVersionAtext{T\nExam A} -%\shortVersionBtext{T\nExam B} -% -%\examNum{1} -%\forVersion{c} -%\subject[C3]{Calculus III} -%\title[\sExam]{\Exam} -%\author{Dr.\ D. P. Story} -%\end{verbatim} -% These next two definitions are overwritten by the two -% commands \cs{longTitleText} and \cs{shortTitleText}. -% \begin{macrocode} -\def\Exam{\ifAB{\eq@VersionAtext}{\eq@VersionBtext}} -\def\sExam{\ifAB{\eq@shortVersionAtext}{\eq@shortVersionBtext}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\VersionAtext} -% \begin{macro}{\VersionBtext} -% \begin{macro}{\shortVersionAtext} -% \begin{macro}{\shortVersionBtext} -% Convenience macros for entering the text for the title, long and short -% for versions A and B. -% \begin{macrocode} -\def\VersionAtext#1{\def\eq@VersionAtext{#1}} -\def\VersionBtext#1{\def\eq@VersionBtext{#1}} -\def\shortVersionAtext#1{\def\eq@shortVersionAtext{#1}} -\def\shortVersionBtext#1{\def\eq@shortVersionBtext{#1}} -\VersionAtext{Exam~\nExam--Version A} -\VersionBtext{Exam~\nExam--Version B} -\shortVersionAtext{Exam~\nExam A} -\shortVersionBtext{Exam~\nExam B} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% In this section we introduce a new set of commands that supersedes -% the commands defined above. Those commands were limited to only -% two versions. The ones below can handle up to $26$ versions. -% \begin{macrocode} -\newtoks\eqtemptokena -\newtoks\eqtemptokenb -% \end{macrocode} -% \begin{macro}{\numVersions} -% In the preamble, declare the number of versions for this document -% using \cs{numVersions}, e.g., |\numVersions{3}|. This sets the value -% of \cs{eq@nVersions} -% \begin{macrocode} -\def\numVersions#1{\ifnum#1>26\def\eq@nVersions{26}% - \PackageWarning{eqexam}{The value of \string\numVersions is too - large. \MessageBreak Choose a natural number less than 27.} - \else\def\eq@nVersions{#1}\fi} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\longTitleText} -% \begin{macro}{\endlongTitleText} -% \begin{macro}{\shortTitleText} -% \begin{macro}{\endshortTitleText} -% Next we state the long and short titles for our document, -% one for each of our declare number of versions given earlier. -% For example, we can use the value \cs{nExam} in out titles. Usage: -%\begin{verbatim} -%\longTitleText -% {Test~\nExam--Version A} -% {Test~\nExam--Version B} -% {Test~\nExam--Make Up} -%\endlongTitleText -%\shortTitleText -% {T\nExam A} -% {T\nExam B} -% {T\nExam MU} -%\endshortTitleText -%\end{verbatim} -% I've added markers that delimit the end of the arguments. In this -% way, the end of the list of titles can be detected, even though -% the number of titles is not the same as what is declared by the -% \cs{numVersions}. -% -% If there are more titles than what is declared, the rest are absorbed (gobbled). -% If there are fewer titles than declared, a {\LaTeX} package error is generated, -% and substitute titles are generated. -% \begin{macrocode} -\def\longTitleText -{% - \setcounter{eq@count}{0} - \eqtemptokena={} - \let\endtitleMarker\endlongTitleText - \@gatherTitleText{\Exam} -} -\def\endlongTitleText{l} -\def\shortTitleText -{% - \setcounter{eq@count}{0} - \eqtemptokena={} - \let\endtitleMarker\endshortTitleText - \@gatherTitleText{\sExam} -} -\def\endshortTitleText{s} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\def\@gatherTitleText#1#2{% - \def\eqe@argii{#2} - \if\endtitleMarker\eqe@argii -% \end{macrocode} -% Encountered the end marker. See if we have collected the -% correct number of titles declared. If we have collected too -% few, we note an warning in the log, and create titles. -% -% \begin{macrocode} - \ifnum\value{eq@count}>\eq@nVersions\let\eq@next\relax - \else\def\eq@next{\eq@shortTitlesFix{#1}}\fi - \else - \stepcounter{eq@count} - \eqtemptokenb=\expandafter{#2} - \xdef#1{\the\eqtemptokena\expandafter\noexpand - \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}} - \xdef\sExam{\the\eqtemptokena\expandafter\noexpand - \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}} - \eqtemptokena=\expandafter{#1} - \ifnum\value{eq@count}<\eq@nVersions - \def\eq@next{\@gatherTitleText{#1}}% - \else - \def\eq@next{% - \if\endtitleMarker\endlongTitleText - \expandafter\eqe@absorbTokensLong - \else - \expandafter\eqe@absorbTokensShort - \fi - }% - \fi - \fi - \eq@next -} -\long\def\eqe@absorbTokensLong#1\endlongTitleText{} -\long\def\eqe@absorbTokensShort#1\endshortTitleText{} -% \end{macrocode} -% We have reached \cs{endtitleMarker}, but the count is still less than \cs{eq@nVersions}, -% so we'll warn the user, and create titles for user. -% \begin{macrocode} -\def\eq@shortTitlesFix#1{% - \PackageWarning{eqexam}{You have defined an insufficient number - of titles for the number of versions declared in - \string\numVersions. Please fix the problem}% - \stepcounter{eq@count}% - \if\endtitleMarker\endlongTitleText - \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1} - {??---Title \# \the\value{eq@count}---??}% - \noexpand\endlongTitleText} - \else - \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1} - {T\#\the\value{eq@count}??}\noexpand\endshortTitleText} - \fi - \addtocounter{eq@count}{-1}% - \eqe@tmp -} -% \end{macrocode} -% Here, we define \cs{ifAB} so that document under the old system -% still work properly, I hope. Usage of \cs{ifAB} at this point -% is discouraged. -% \begin{macrocode} -\def\ifAB#1#2{\if\eq@selectedVersion A#1% - \else\if\eq@selectedVersion B#2% -\fi\fi} -\def\eq@replaceToken#1{#1} -% \end{macrocode} -% \begin{macro}{\forVersion} -% Here is the command that does all the work. It creates alternate -% text macros for each of the versions declared using \cs{numVersions}. -% -% For example, assuming |\numVersions{3}| appeared earlier, the -% command |\forVersion{a}| (or |\forVersion{A}|) defines $3$ text commands \cs{vA}, \cs{vB} and -% \cs{vC}, each taking one argument, the text you want to display: -%\begin{verbatim} -% Name the \vA{place}\vB{date}\vC{year} of the signing of the Declaration -% of independence. -%\end{verbatim} -% Since we said |forVersion{a}| only the \cs{vA} text -% is displayed, the others are gobbled up, etc. But wait, the \cs{forVersion} -% does more than that! It also creates a series of comment environments -% |\begin{verA}/\end{verA}|, |\begin{verB}/\end{verB}|, |\begin{verC}/\end{verC}|, etc., -% where only the version for which this compile applies will be typeset, -% the others are commented out. -%\begin{verbatim} -%\numVersions{3} -%\forVersion{b} -%... -%\begin{document} -%... -% Solve the equation for $\vA{x}\vB{y}\vC{z}$: -%\[ -%\begin{verA} -% 2x + 4 = 7 -%\end{verA} -%\begin{verB} -% 5y + 2 = 4 -%\end{verB} -%\begin{verC} -% 3z - 2 = 2 -%\end{verC} -%\] -%\end{verbatim} -% \changes{1.6b}{2006/04/03} -% { -% Changed the alphabet environments \texttt{A}, \texttt{B}, etc.\ due to a -% conflict with \cs{S}, the control sequence for the \textsf{amsmath} package -% for a section: \cs{S} expands to \S. Names changed to \texttt{verA}, \texttt{verB}, etc. -% } -% \changes{v1.6f}{2006/10/24} -% { -% Fixed a bug in the \cs{eqe@initializeMultiVersions} command, made sure that any -% already defined comment environments are set to relax. -% } -% \begin{macrocode} -\newif\ifeqglobalversion \eqglobalversionfalse -\newif\ifeqlocalversion \eqlocalversionfalse -\newif\if@templocalversion \@templocalversionfalse -\def\eqe@initializeMultiVersions{% - \let\save@message\message\let\message\@gobble - \@tfor\eqe@tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{% - \expandafter\let\csname v\eqe@tmp\endcsname\@gobble - \expandafter\excludecomment\expandafter{ver\eqe@tmp}% - \expandafter\let\csname Afterver\eqe@tmp Comment\endcsname\relax - }\let\message\save@message -} -\AtBeginDocument{\let\eqe@initializeMultiVersions\relax} -\def\forVersion#1% -{% - \eqe@initializeMultiVersions - \global\eqglobalversiontrue - \setcounter{eq@count}{0} - \uppercase{\def\eq@selectedVersion{#1}} - \@ifundefined{eq@nVersions}{\PackageInfo{eqexam}{% - \string\numVersions\space has not been declared, \MessageBreak - taking the number of versions to be 2.}\def\eq@nVersions{2}}{} - \loop - \stepcounter{eq@count} - \expandafter\if\Alph{eq@count}\eq@selectedVersion - \xdef\eq@nSelectedVersion{\the\value{eq@count}}% - \setcounter{eq@count}{27}\fi - \ifnum\value{eq@count}<26\repeat - \ifnum\eq@nSelectedVersion >\eq@nVersions - \PackageError{eqexam} - {The value of \string\forVersion - \space(\eq@selectedVersion)\MessageBreak - exceeds the value of \string\numVersions\space - (\eq@nVersions)} - {Decrease the value of \string\forVersion.} - \fi - \setcounter{eq@count}{0} - \let\save@message\message\let\message\@gobble - \loop - \stepcounter{eq@count} - \expandafter - \let\csname After\Alph{eq@count}Comment\endcsname\relax - \lowercase - {% - \if#1\alph{eq@count} - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@empty - \else - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@gobble - \fi - \if#1\alph{eq@count} - \edef\eq@next - {\noexpand\includecomment{ver\Alph{eq@count}}} - \else - \edef\eq@next - {\noexpand\excludecomment{ver\Alph{eq@count}}} - \fi - }\eq@next - \ifnum\value{eq@count}<\eq@nVersions\repeat - \let\message\save@message -} -% \end{macrocode} -% Let us assume version A initially, user with reset this in document. -%\changes{1.6c}{2006/05/02} -%{% -% At the end of the package, set the initial value of \cs{select\-Version} to -% \string\verb!*+\string\selectVersion{26}+ and set the initial value -% of \cs{forVersion} to \string\verb!*+\string\forVersion{A}+. -%} -% \begin{macrocode} -\AtEndOfPackage{\numVersions{26}\forVersion{A}} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\selectVersion} -% When an exam has questions in which the number of variations are not all the same, -% then you can locally change the version between problems. -% If the first argument is empty, the first variation is chosen. -% The syntax is -%\begin{verbatim} -%\selectVersion{2}{3} -%\end{verbatim} -%This command says that the next problem has 3 variations, and here we select the second one. -%\changes{1.6a}{2006/01/22} -% {% -% added \cs{selectVersion} command, fixed \cs{forVersion} so that it can be changed -% within the document, added switches to control new selection. -% Added option \texttt{ignorelocalversions} -% } -% \begin{macrocode} -\def\selectVersion#1#2% 1 \le #1 \le #2 -{% - \gdef\nLocalSelection{#1}% - \gdef\nLocalVersions{#2}% -% \end{macrocode} -% If \cs{eqglobalversion} is true, then a \cs{forVersion} has been executed. If the number -% of versions declared by \cs{numVersions} is greater than the number of local versions -% for this problem, then we perform modular arithmetic to get an appropriate alternative. -% It may be necessarily to temporarily put \cs{eqobeylocalversion} to true to accomplish, -% but we use change it back at the end. -% \begin{macrocode} - \ifeqglobalversion\ifnum\eq@nSelectedVersion>\nLocalVersions - {\count0=\eq@nSelectedVersion \count2=\count0 - \advance\count0by-1 \divide\count0by\nLocalVersions - \multiply\count0by\nLocalVersions \count2=\eq@nSelectedVersion - \advance\count2by-\count0 - \xdef\nLocalSelection{\the\count2\relax}% - \ifeqobeylocalversion\else - \global\@templocalversiontrue - \global\eqobeylocalversiontrue - \fi}% - \fi\fi - \ifeqobeylocalversion - \global\eqlocalversiontrue - \setcounter{eq@count}{0} - \ifx\nLocalSelection\@empty\def\nLocalSelection{1}\fi - \let\save@message\message\let\message\@gobble - \loop - \stepcounter{eq@count}\expandafter - \let\csname Afterver\Alph{eq@count}Comment\endcsname\relax - \lowercase - {% - \ifnum\value{eq@count}=\nLocalSelection - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@empty - \else - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@gobble - \fi - \ifnum\value{eq@count}=\nLocalSelection - \edef\eq@next{% - \noexpand\includecomment{ver\Alph{eq@count}}} - \else - \edef\eq@next{% - \noexpand\excludecomment{ver\Alph{eq@count}}} - \fi - }\eq@next - \ifnum\value{eq@count}<\nLocalVersions\repeat - \let\message\save@message - \fi - \if@templocalversion\global\eqobeylocalversionfalse\fi -} -% \end{macrocode} -% \end{macro} -% \section{Title Definitions from Web} -% \begin{macro}{\title} -% \begin{macro}{\subject} -% \begin{macro}{\author} -% \begin{macro}{\email} -% \begin{macro}{\keywords} -% \begin{macro}{\university} -% Make Title Definitions taken from the \texttt{Web} package. This is -% to maintain compatibility with \texttt{Web}. -% \begin{macrocode} -\@ifpackageloaded{web}{} -{ - \def\title{\@ifnextchar[{\@title}{\@title[\@empty]}} - \def\@title[#1]#2{\gdef\webtitle{#2}% - \ifx#1\@empty\gdef\shortwebtitle{#2}% - \else\gdef\shortwebtitle{#1}\fi} - \def\subject{\@ifnextchar[{\@subject}{\@subject[\@empty]}} - \def\@subject[#1]#2{\gdef\websubject{#2}% - \ifx#1\@empty\gdef\shortwebsubject{#2}% - \else\gdef\shortwebsubject{#1}\fi} - \def\author#1{\gdef\webauthor{#1}} - \def\email#1{\gdef\webemail{#1}} - \def\keywords#1{\gdef\webkeywords{#1}} - \def\university#1{\gdef\webuniversity{#1}} - \def\web@versionlabel{Version} - \def\web@toc{Table of Contents} - \def\web@continued{cont.} -% set some defaults - \title{}\author{}\email{}\subject{}\keywords{}\university{} - \def\optionalpagematter{} -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\date} -% {\LaTeX} (\TeX) defines a \cs{date} command that is also used by \textsf{eqExam}. -% \begin{macrocode} -\def\duedate#1{\def\theduedate{#1}} -\duedate{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\duedate} -% In addition to these, we also define a \cs{duedate} macro, may be useful for -% writing assignments with a due date. -% \begin{macrocode} -\def\duedate#1{\def\theduedate{#1}} -\duedate{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\thisterm} -% The command \cs{thisterm} can be used in the \cs{date} field to indicate the term -% of this test, for example, \verb!\date{\thisterm, \the\year}! This command may -% be redefined to conform to your own academic terms. -% \begin{macrocode} -\newcommand\thisterm -{% - \ifnum\the\month<6 - Spring% - \else - \ifnum\the\month<8 - Summer% - \else - % August or later - \ifnum\the\month>8 - % September or later - Fall% - \else - % month of August - \ifnum\the\day>25 - Fall% - \else - Summer% - \fi - \fi - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \section{Identification Information} -% We define a series of commands in support of building an exam: Lines to identify -% the student and his/her student id (SID), the instructors email address, the name of the -% test and the course. -%\par\medskip -%\noindent\DescribeMacro{\eqExamName}\DescribeMacro{\examNameLabel} provides a line for the student to enter his/her name into the -% exam. The command \cs{examNameLabel} can be used to define the name label, the default -% is \texttt{Name:} -% -% Will insert a text box as well if the \texttt{option} is taken in addition -% to \texttt{nosolutions} and with \texttt{solutionsafter} not taken. -% This macro defines \cs{eq@ExamName}, which actually contains the code. -% The first (optional) parameter is passed to \cs{insTxtFieldIdInfo}, and can be -% used to change the appearance of the text field created; the second required parameter -% is the width of the field. -% \begin{macrocode} -\newcommand\examNameLabel[1]{\gdef\@examNameLabel{#1}} -\examNameLabel{Name:} -\newcommand\eqExamName[2][]{\gdef\eq@ExamName{% - \bgroup\settowidth\eq@tmplengthA{\@examNameLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examNameLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.Name}% - \egroup}% -} -% \end{macrocode} -% Here we set the field to be a required field with width of $2.25$ inches -% \begin{macrocode} -\eqExamName[\Ff\FfRequired]{2.25in} -% \end{macrocode} -% \DescribeMacro{\eqSID} provides a line for the student to enter his/her ID number (SID). -% -% Will insert a text box as well if the \texttt{option} is taken in addition -% to \texttt{nosolutions} and with \texttt{solutionsafter} not taken. -% The first (optional) parameter is passed to \cs{insTxtFieldIdInfo}, and can be -% used to change the appearance of the text field created; the second required parameter -% is the width of the field. -% \begin{macrocode} -\newcommand\examSIDLabel[1]{\gdef\@examSIDLabel{#1}} -\examSIDLabel{SID:} -\newcommand\eqSID[2][]{\gdef\eq@SID{% - \bgroup\settowidth\eq@tmplengthA{\@examSIDLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examSIDLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.SID}% - \egroup}% -} -% \end{macrocode} -% Here we set the field to be a required field with width of $2.25$ inches -% \begin{macrocode} -\eqSID[\Ff\FfRequired]{2.25in} -% \end{macrocode} -% \DescribeMacro{\eqEmail} provides a line for the student -% to enter his/her email address. Useful for documents submitted by email, the -% instructor can reply. -% -% Will insert a text box as well if the \texttt{option} is taken in addition -% to \texttt{nosolutions} and with \texttt{solutionsafter} not taken. -% The first (optional) parameter is passed to \cs{insTxtFieldIdInfo}, and can be -% used to change the appearance of the text field created; the second required parameter -% is the width of the field. -% \begin{macrocode} -\newcommand\examEmailLabel[1]{\gdef\@examEmailLabel{#1}} -\examEmailLabel{Email:} -\newcommand\eqEmail[2][]{\gdef\eq@Email{% - \bgroup\settowidth\eq@tmplengthA{\@examEmailLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examEmailLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.email}% - \egroup}% -} -% \end{macrocode} -% Here we set the field to be a field with width of $2.25$ inches. (Not set to be a required field.) -% \begin{macrocode} -\eqEmail{2.25in} -% \end{macrocode} -% \DescribeMacro{\insTxtFieldIdInfo} The above macros (\cs{eqExamName}, \cs{eqSID} and \cs{eqEmail}) -% all call this macro, which inserts a Acroforms text field if the \texttt{option} is taken in addition -% to \texttt{nosolutions} and with \texttt{solutionsafter} not taken. -% -% The first (optional) parameter is used to change the appearance of the text field. -% The second parameter is the width of the field, and the third is the field name. -% \begin{macrocode} -\def\insTxtFieldIdInfo[#1]#2#3{% - \@ifundefined{@quiz}{}{\ifx\eq@online y\relax - \ifeq@nosolutions\ifeq@solutionsafter\else - \makebox[0pt][r]{\textField[\BC{}#1]{#3}{#2}{11bp}}% - \fi\fi\fi - }% -} -% \end{macrocode} -% \DescribeMacro{\SubmitInfo} is required when the \texttt{email} option is taken, -% and should appear in the preamble. The first argument is the URL to the \textsf{eqAttach.asp} -% code on the server, and the second is the email of the instructor is to receive the results. -% (Multiple recipients can be specified by separating each with a comma.) -% \begin{macrocode} -\def\SubmitInfo#1#2{% - \def\EqExam@SubmitURL{#1}\def\@EmailInstr{#2}% -} -% \end{macrocode} -% \DescribeMacro{\EmailCourseName} is used to specify the course name of the course. The default -% value for this is \cs{websubject}, obtained from the \cs{subject} macro used in the preamble; however, -% if you want a different name in the email, perhaps with more information included, you can redefine -% the value using this macro. -% \begin{macrocode} -\def\EmailCourseName#1{\def\@EmailCourseName{#1}} -% \end{macrocode} -% Here's the default value. -% \begin{macrocode} -\EmailCourseName{\websubject} -% \end{macrocode} -% \DescribeMacro{\EmailExamName} is used to specify the exam name of the course. The default -% value for this is \cs{webtitle}, obtained from the \cs{title} macro used in the preamble; however, -% if you want a different name in the email, perhaps with more information included, you can redefine -% the value using this macro. -% (Multiple recipients can be specified by separating each with a comma.) -% \begin{macrocode} -\def\EmailExamName#1{\def\@EmailExamName{#1}} -% \end{macrocode} -% Here's the default value. -% \begin{macrocode} -\EmailExamName{\webtitle} -% \end{macrocode} -% \DescribeMacro{\EmailSubject} The document author mail want a custom subject in the email, instead -% of the standard one. By using this macro, he can design his own email subject. -% \begin{macrocode} -\def\EmailSubject#1{\def\@EmailSubject{#1}} -% \end{macrocode} -% Here's the default value, which generates no custom subject line. -% \begin{macrocode} -\EmailSubject{} -% \end{macrocode} -% In this case \textsf{eqAttach.asp} inserts the standard one. -%\begin{verbatim} -%Exam Results: \webtitle of \websubject -%\end{verbatim} -% The email would read like ``\texttt{Exam Results:~Test 1 of Calculus I}'', for example. -% -% \DescribeMacro{\ServerRetnMsg} Unless submitted in \texttt{silent} mode, the \textsf{eqAttach.asp} -% returns a message acknowledging the receipt of the data. \cs{ServerRetnMsg} is used to customize -% this message. -% \begin{macrocode} -\def\ServerRetnMsg#1{\def\@ServerRetnMsg{#1}} -% \end{macrocode} -% Here's the default value, which generates no custom return message -% \begin{macrocode} -\ServerRetnMsg{} -% \end{macrocode} -% \noindent\DescribeMacro{\SubmitButtonLabel} is the label that appears on the submit button. -% \begin{macrocode} -\def\SubmitButtonLabel#1{\def\@SubmitButtonLabel{#1}} -% \end{macrocode} -% Here's the default value. -% \begin{macrocode} -\SubmitButtonLabel{Submit} -% \end{macrocode} -% \DescribeMacro{\SubmitButton} is the macro that provides the submit button -% when the \texttt{email} option is taken. It appears automatically at the top of -% the first page of the exam, and appears only if \texttt{nosolutions} has has been -% taken, and \texttt{solutionsafter} has not been taken. -% \begin{macrocode} -\let\priorSubmitJS\@gobble -\let\postSubmitJS\@empty -\def\SubmitButton -{% - \ifx\use@email y\ifeq@nosolutions\ifeq@solutionsafter\else - \makebox[0pt][l]{\pushButton - [\CA{\@SubmitButtonLabel}\A{\JS{% - var _eqEok2Submit = true;\r - var aSubmitFields = new Array("eqexam", "IdInfo");\r - \priorSubmitJS\r - if(_eqEok2Submit) this.submitForm("\EqExam@SubmitURL", - true, false, aSubmitFields);\r - \postSubmitJS - }}]{Submit}{1.5in}{16bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailInstr} - \V{\@EmailInstr}]{IdInfo.mailTo}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailCourseName} - \V{\@EmailCourseName}]{IdInfo.courseName}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailExamName} - \V{\@EmailExamName}]{IdInfo.examName}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailSubject} - \V{\@EmailSubject}]{IdInfo.subject}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@ServerRetnMsg} - \V{\@ServerRetnMsg}]{IdInfo.retnmsg}{11bp}{11bp}}% - \fi\fi\fi -} -% \end{macrocode} -% \begin{macrocode} -\def\thequizno{\if\probstar*\arabic{quizno}\else\alph{quizno}\fi} -\def\linkContentFormat{% - \if\probstar*\arabic{quizno}\else\alph{quizno}\fi} -\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\eqExam@Ans@sq@l{% - \leavevmode\stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \edef\fieldName{\if\probstar*% - eqexam.\curr@quiz.\theeqquestionnoi.part\alph{partno}\else - eqexam.\curr@quiz.\theeqquestionnoi\fi - }% - \ifx\eq@online y\relax - \makebox[0pt][l]{\radio@@Button{}{\fieldName}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% - {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}% - \else - \edef\@linkcolor{\@nolinkcolor}% - \fi - \ifeq@nosolutions\edef\@linkcolor{\@nolinkcolor}\fi - \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}% - \Ans@proofing{\eq@tmpdima}% -} -\def\eqExam@Ans@sq@f{% - \stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \ifx\eq@online n\previewtrue - \Ans@sq@f@driver - \else - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno} - \else - eqexam.\curr@quiz.\theeqquestionnoi - \fi - }\insertGrayLetters - \radio@@Button{}{\fieldName}{\RadioFieldSize}% - {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton - \every@sqRadioButton}% - \fi - \Ans@proofing{\RadioFieldSize}% -} -\def\eqExam@Ans@ck@sq@l{% - \leavevmode\stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno}.\alph{quizno} - \else - eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno} - \fi - }% - \ifx\eq@online y\relax - \makebox[0pt][l]{\check@@Box{}{\fieldName}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% - {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}% - \else - \def\@linkcolor{blue}% - \fi - \ifeq@nosolutions\def\@linkcolor{blue}\fi - \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}% - \Ans@proofing{\eq@tmpdima}% -} -\def\eqExam@Ans@ck@sq@f{% - \stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \ifx\eq@online n\previewtrue - \Ans@sq@f@driver - \else - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno}.\alph{quizno} - \else - eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno} - \fi - }% - \check@@Box{}{\fieldName}{\RadioFieldSize}% - {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton - \every@sqRadioButton}% - \fi - \Ans@proofing{\RadioFieldSize}% -} -\def\eqExamPriorVspace#1{\edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.% - \theeqquestionnoi.part\alph{partno}.solution - \else - eqexam.\curr@quiz.\theeqquestionnoi.solution - \fi - }% - \nobreak\textField[\Ff\FfMultiline\BC{}] - {\fieldName}{\linewidth}{#1}% - \@gobble -} -% \end{macrocode} -% -% Test to see if \texttt{exerquiz} is loaded. If not, we input -% the `stand alone', \texttt{eqalone.def}, followed by \texttt{eqexam.def}. The latter -% definition file is maintained in \texttt{exerquiz.dtx} under the \texttt{eqexam} option. -% -% \begin{macrocode} -\@ifpackageloaded{exerquiz}{% - \let\Ans@sq@l\eqExam@Ans@sq@l - \let\Ans@sq@f\eqExam@Ans@sq@f - \let\Ans@ck@sq@l\eqExam@Ans@ck@sq@l - \let\Ans@ck@sq@f\eqExam@Ans@ck@sq@f - \def\eqexheader@wrapper{\makebox[0pt][r]{% - \hypertarget{qex.\the@exno}{\eqexheader}}} - \ifx\eq@online y\relax - \newcounter{@cntfillin} - \let\eqPriorVspace=\eqExamPriorVspace - \fi -}% -{% - \input{eqalone.def} - \input{eqexam.def} - \def\eqexheader@wrapper{\makebox[0pt][r]{\eqexheader}} -} -% \end{macrocode} -% We define the appearance of the \texttt{partno} counter, defined in \texttt{eqexam.def} -% to include the question number and the part number. May be redefined. -% \begin{macrocode} -\renewcommand{\thepartno}{\theeqquestionnoi (\alph{partno})} -\newcommand{\defaultthepartno}{% - \renewcommand{\thepartno}{\theeqquestionnoi (\alph{partno})}% -} -% -% \end{macrocode} -% \section{Stand alone Code} -% -% \begin{macrocode} -%<*standalone> -% \end{macrocode} -% Now we begin the listing of the stand alone code. This code is necessary if -% \texttt{exerquiz} has not been loaded. -% -% Many of the following definitions are given in \texttt{eqforms}, which was recently separated -% from \texttt{exerquiz} and is now maintained as a separate package. -% \begin{macrocode} -\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{}% defined in eforms -\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} % defined in eforms -\def\RadioFieldSize{11bp} -% \end{macrocode} -% \begin{macrocode} -\newdimen\eqcenterWidget -% \end{macrocode} -% This macro is used to vertically center the response box on the line. Seems to -% work well. -% \begin{macrocode} -\def\centerWidget -#1{% - \eqcenterWidget=#1 - \eqcenterWidget=.5\eqcenterWidget - \advance\eqcenterWidget by -4bp -} -% \end{macrocode} -% The macro \cs{include@solutions} is defined in \texttt{eqexam.def} -% \begin{macrocode} -\AtEndDocument{\include@solutions} -% \end{macrocode} -% When the \texttt{preview} option has been used, draw a frame box -% around the bounding rectangle. -% \begin{macrocode} -\def\Bbox#1#2{\vbox{\hrule width #1 - \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}} -% \end{macrocode} -% \begin{macrocode} -\def\Rect#1{\textcolor{\@linkcolor}{#1}} -\def\ReturnTo#1#2{\eq@fititin{#2}} -\newcommand{\proofingsymbol}[1]{% - \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}} -\proofingsymbol{$\bullet$} -% \end{macrocode} -% This is the answers macro for the link-style and is called from the \texttt{eqexam.def} file. -% \begin{macrocode} -% -% \end{macrocode} -% \begin{macrocode} -%<*package> -% \end{macrocode} -% \section{The Main Code} -% We now continue with the main package. Mostly, we define macros specific to the -% \texttt{eqExam} package: define the \texttt{problem} and \texttt{problem*} environments, -% macros for calculating totals per page, etc. -% -% \begin{macrocode} -\def\Ans@sq@l@driver{% - \Rect{\makebox[\eq@tmpdima]{\linkContentWrapper}}% - \Ans@proofing{\eq@tmpdima}% -} -% \end{macrocode} -% This is the answers macro for the form-style and is called from the \texttt{eqexam.def} file. -% \begin{macrocode} -\def\Ans@sq@f@driver{% - \centerWidget\RadioFieldSize - \leavevmode\lower\eqcenterWidget\Bbox - {\RadioFieldSize}{\RadioFieldSize}% - \Ans@proofing{\RadioFieldSize}% -} -% \end{macrocode} -% Write quiz solutions to the exercise solutions file -% \begin{macrocode} -\def\eq@sqsllabel{\string\textbf{Solution to Quiz:}} -\def\sqsllabel{\eq@sqsllabel} -% \end{macrocode} -% We will right all solutions to the \texttt{.sol} auxiliary file. -% \begin{macrocode} -\let\quiz@solns=\ex@solns -\def\writetoSolns#1{% - \immediate\write\quiz@solns{\string\goodbreak\noindent - \string\hspace*{-\string\oddsidemargin}% - \string\textbf{#1}\par\string\medskip}% -} -% \end{macrocode} -% Turn off interactivity of short quiz. -\def\Ans@sq@l@Actions{} -\def\Ans@sq@f@Actions{} -% \begin{macrocode} -% \end{macrocode} -% This macro is defined in \texttt{exerquiz}, but has a little different definition for \texttt{eqExam}. -% \begin{macrocode} -\def\Ans@proofing -#1{% - \ifeq@proofing\if\Ans@choice1\relax - \llap{\rlap{\,\@proofingsymbol}\hskip#1\relax}% - \fi\fi -} -% \end{macrocode} -% This macro gets the page number of the last page of the exam. It is read in through -% a macro definition made and written to the \texttt{.aux} file. -% \begin{macrocode} -\def\eq@ExamLastPage{\csname eqExamLastPage\endcsname} -% \end{macrocode} -% \subsection{Running Heads, \cs{maketitle} and Cover Pages} -% We develop a series of macros for creating a running header for the exam, and a cover page, if -% desired. -% -% \begin{macro}{\lhead} -% \begin{macro}{\chead} -% \begin{macro}{\rhead} -% \begin{macro}{\runExamHeader} -% \begin{macro}{\eqExamRunHead} -% The running header of the exam, may be redefined. -% \begin{macrocode} -\newcommand{\lhead}[1]{\def\eq@lhead{#1}} -\lhead{\shortwebsubject/\shortwebtitle} -\newcommand{\chead}[1]{\def\eq@chead{#1}} -\chead{-- Page \arabic{page}\space of \eq@ExamLastPage\space--} -\newcommand{\rhead}[1]{\def\eq@rhead{#1}} -\rhead{\eq@ExamName} -\newcommand{\runExamHeader}{\eq@lhead\hfill\eq@chead\hfill\eq@rhead} -\newcommand\eqExamRunHead -{% - \addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth] - {\runExamHeader}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\lheadSol} -% \begin{macro}{\cheadSol} -% \begin{macro}{\rheadSol} -% \begin{macro}{\eqsolutionshook} -% The running header of the exam, when solutions are included at the end of the document, perhaps -% for posting the solutions to the exam, or publication of a ``pretest''. Note that \cs{eqsolutionshook} -% is defined in \texttt{exerquiz/eqexam.def}. May be redefined. -% \begin{macrocode} -\newcommand{\lheadSol}[1]{\def\eq@lheadSol{#1}} -\lheadSol{\shortwebsubject/\shortwebtitle} -\newcommand{\cheadSol}[1]{\def\eq@cheadSol{#1}} -\cheadSol{-- Page \arabic{page}\space of \eq@ExamLastPage\space--} -\newcommand{\rheadSol}[1]{\def\eq@rheadSol{#1}} -\rheadSol{SOLUTIONS} -\newcommand\runExamHeaderSol - {\eq@lheadSol\hfill\eq@cheadSol\hfill\eq@rheadSol} -\def\eqsolutionshook -{% - \gdef\eqExamRunHead{\addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth] - {\runExamHeaderSol}}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\maketitle} -% \begin{macro}{\maketitledesign} -% \begin{macro}{\altTitle} -% Standard {\LaTeX} macro, but this time it is used to create the header at the top of the first -% page of the exam. Typically, consisting of two rows of info. (1) first row has course name, exam name, and -% a place for the student to put his/her name. (2) second row has date and instructor. May be redefined. -% -% Modify the title by redefining \cs{maketitledesign}, the \cs{maketitle} command -% itself has {\LaTeX} commands in it that should not be changed. -% \changes{v1.6i}{2007/09/18} -%{ -% Added the command \cs{altTitle} as an alternate title for the exam -% document. This alternate title appear centered under the title -% of the document. -%} -% \begin{macrocode} -\newcommand\maketitledesign -{% - \makebox[\textwidth]{\normalsize - \shortstack[l]{\strut\websubject\\\@date}\hfill - \shortstack[c]{\webtitle\\\strut\@altTitle}\hfill - \shortstack[l]{\strut\eq@ExamName\\\webauthor}}% -} -\def\altTitle#1{\def\@altTitle{#1}} -\let\@altTitle\@empty -\def\maketitle -{% - \begingroup - \addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}% - \raisebox{.7in}[0pt][0pt]{\SubmitButton}% - \maketitledesign - \endgroup -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\eqexcoverpage} -% The \texttt{eqExam} package allows for the possibility of a cover page, if the \texttt{coverpage} -% option is taken. -% \begin{macrocode} -\def\eqexcoverpage -{% - \begingroup - \eqexcoverpagedesign - \endgroup\newpage -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\eqexcoverpagedesign} -% The \texttt{eqExam} package allows for the possibility of a cover page, if the \texttt{coverpage} -% option is taken. This macro can and should be redefined to fit your needs. The definition below -% is just a representative example. -% \begin{macro}{\coverpagesubject} -% \begin{macro}{\coverpageUniversityFmt} -% \begin{macro}{\coverpageSubjectFmt} -% \begin{macro}{\coverpageTitleFmt} -% The following four commands are used with the cover page. -% The \cs{coverpagesubject} is used to provide a special subject -% for the cover page, different from \cs{websubject}. The others -% are used for formatting. -%\changes{v1.9a}{2009/28/09}{Added these various Fmt commands for coverpage.} -% \begin{macrocode} -\newcommand{\coverpagesubject}[1]{\def\coverpage@subject{#1}} -\let\coverpage@subject\@empty -\def\eqexamsubject{\ifx\coverpage@subject\@empty\websubject - \else\coverpage@subject\fi} -\newcommand{\coverpageUniversityFmt}[1]{% - \def\eqex@coverpageUniversityFmt{#1}} -\coverpageUniversityFmt{\bfseries\large} -\newcommand{\coverpageSubjectFmt}[1]{% - \def\eqex@coverpageSubjectFmt{#1}} -\coverpageSubjectFmt{\bfseries\large} -\newcommand{\coverpageTitleFmt}[1]{% - \def\eqex@coverpageTitleFmt{#1}} -\coverpageTitleFmt{\bfseries\large} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% Now we present the definition of \cs{eqexcoverpagedesign}. -% \begin{macrocode} -\newcommand{\eqexcoverpagedesign} -{% - \thispagestyle{empty} - \addtolength\textwidth{\oddsidemargin} - \vspace*{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageUniversityFmt - \color{\webuniversity@color}% - \centering\webuniversity}} - \par\vspace{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageSubjectFmt - \color{\websubject@color}% - \centering\eqexamsubject}} - \par\vspace{\bigskipamount} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageTitleFmt - \color{\webtitle@color}% - \centering\webtitle}} - \par\vspace{\stretch{1}} - \optionalpagematter - \par\vspace{\stretch{1}}\parindent0pt - \eq@ExamName\\[2ex]\eq@SID\\[2ex] - \ifx\use@email y\eq@Email\\[2ex]\fi - \textcolor{\webauthor@color}{\webauthor}, \@date\par\vfill -} -% \end{macrocode} -% \end{macro} -% If the author takes the \texttt{coverpage} option, \cs{eqex@coverpage} is set equal -% to \cs{eqexcoverpagedesign}, otherwise, it is set equal to \cs{relax}. -% \begin{macrocode} -\AtBeginDocument{\eqex@coverpage} -% \end{macrocode} -% \subsection{Insert Points in Margins and Compute Page Totals} -% Here we attempt to place point values of a problem in the margins and -% to compute the page totals. -% -%\begin{macro}{\probvalue} -% This is a fundamental macro for keeping track of the points of the problem. -% It increments the counter \texttt{eqpointvalue}, which keeps a running total -% of the points of the current part of the quiz, puts the value in the margins, -% and sets a \texttt{mark}, so that at the end of the page, we can compute the -% number of points on the current page. This macro is used in several situations, -% for example, in the \texttt{problem} environment, \cs{manualcalcparts} and in -% \cs{autocaleparts}. \textbf{Should not be redefined}. -%\begin{flushleft} -%Parameters -%\begin{verbatim} -%#1 = total points for this problem -%#2 = 0 if total points, otherwise, #2 is the number of points each -% problem. -%\end{verbatim} -%\end{flushleft} -% \begin{macrocode} -\def\probvalue#1#2{% - \addtocounter{eqpointvalue}{#1}% - \marginpoints{#1}{#2}% - \mark{\theeqpointvalue\csname eqExam\endcsname\theeq@numparts}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\eqleftmarginbox} -% This macro places the problem value in the left margin, can be redefined, if you dare. -%\begin{flushleft} -% Parameters -%\begin{verbatim} -%#1 = total points for this problem -%#2 = 0 if total points, otherwise, #2 is the number of points each -% problem. -%\end{verbatim} -%\end{flushleft} -% Currently, this macro is not used. -% \begin{macrocode} -\def\eqleftmarginbox#1#2{\makebox[0pt][r]{% - \setlength\tabcolsep{0pt}% - \raisebox{-.5\height}[0pt][0pt]{\parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }}% - \hspace*{\oddsidemargin}\hspace*{\marginparsep}}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ptsLabel} -% \begin{macro}{\eachLabel} -% \begin{macro}{\pointsLabel} -% The following three convenience commands can be used to localize some of -% the strings to other languages. -% \begin{macrocode} -\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts} -\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt} -\newcommand{\eachLabel}[1]{\def\eq@eachLabel{#1}}\eachLabel{ea.} -\newcommand{\pointsLabel}[1]{% - \def\eq@pointsLabel{#1}}\pointsLabel{points} -\newcommand{\pointLabel}[1]{% - \def\eq@pointLabel{#1}}\pointLabel{point} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\marginpointtext} -% Creates the text for \cs{eqleftmargin} to use. Use can see from the macro, -% if \texttt{\#2} is 0, then we write the points for the problem, else, we write -% the points each for the problem. -% \begin{macrocode} -\newcommand\leftmarginPtsTxt[1]{(\small$#1^{\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}}$)} -\newcommand\leftmarginPtsEaTxt[1]{(\small$#1_{\text{% - \eq@eachLabel}}^{\text{\ifnum#1=1\relax - \eqptLabel\else\eqptsLabel\fi}}$)} -\def\marginpointtext#1#2{\ifnum#2=0\leftmarginPtsTxt{#1}\else - \leftmarginPtsEaTxt{#2}\fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\eqleftmargin} -% Places the number of points (or points each) in the left margin. Can be redefined as -% desired. This macro is used when author chooses the \texttt{pointsonleft} -% or \texttt{pointsonbothsides} option. -% \begin{macrocode} -\def\eqleftmargin#1#2{\makebox[0pt][r]{\marginpointtext{#1}{#2}% - \hspace*{\oddsidemargin}\hspace*{\marginparsep}}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\marginpointsboxtext} -% When the author selects \texttt{pointsonright} or \texttt{pointsonbothsides}, a box -% appears in the right margin containing problem totals, this is the text for the box. -% \begin{macrocode} -\newcommand{\marginpointsboxtext}[2]{\small$#1\,\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\eqrightmarginbox} -% When the author selects \texttt{pointsonright} or \texttt{pointsonbothsides}, a box -% appears in the right margin containing problem totals, this is the box that appears. -% \begin{macrocode} -\def\@insertPointsBoxPDF -{ - \def\fieldName{pointsgiven.\curr@quiz.page\thepage.% - \theeqquestionnoi}% - \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}] - {\fieldName}{\marginparwidth}{15pt}% -} -\def\@insertTotalsBoxPDF -{ - \def\fieldName{pagetotals.\curr@quiz.page\thepage}% - \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg} - \AA{\AACalculate{AFSimple_Calculate("SUM", - new Array("pointsgiven.\curr@quiz.page\thepage"));}}] - {\fieldName}{\marginparwidth}{15pt}% -} -\ifx\use@email y - \let\insertPointsBoxPDF=\@insertPointsBoxPDF - \let\insertTotalsBoxPDF=\@insertTotalsBoxPDF -\else - \let\insertPointsBoxPDF=\@empty - \let\insertTotalsBoxPDF=\@empty -\fi -\def\eqrightmarginbox#1#2{% - \makebox[0pt][l]{% - \setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-.5\height}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertPointsBoxPDF\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }% - }\hfil - }% -} -\def\eqeomarginbox#1#2{% - \makebox[0pt][l]{% - \setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-.5\height}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }% - }\hfil - }% -} -\setbox\eq@pointbox=\hbox{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{00}{0}}\\\hline - \end{tabular}% - }% -} -\setlength\eq@pointboxtotalheight{\dp\eq@pointbox+\ht\eq@pointbox} -% \end{macrocode} -% \end{macro} -% The macro \cs{probvalue}, defined above, says -%\begin{verbatim} -%\mark{\theeqpointvalue\csname eqExam\endcsname\theeq@numparts} -%\end{verbatim} -% so the \cs{botmark} contains the point value of this page and the part number for -% this page. -% \begin{macrocode} -\def\lastparttotaled{0} -% \end{macrocode} -% The \texttt{botmark} looks like \texttt{18\string\eqExam0}, where $18$ will be the total number of -% points accumulated for this text part. We need to retrieve these number, I don't remember why -% I save them this way. -% -% \DescribeMacro{\parsetotals} -% The \cs{parsetotals} macro is called in \cs{settotalsbox} to retrieve the ongoing point values -% from \cs{botmark}, and returns to two parameters, contained in \cs{argi} and \cs{argiii}. -% \DescribeMacro{\stripeqExam} -% Whereas, \cs{stripeqExam} just retrieves the first parameter only. -% \begin{macrocode} -\def\parsetotals#1\eqExam#2\end{\def\argi{#1}\def\argii{#2}} -\def\stripeqExam#1\eqExam{\def\argii{#1}} -% \end{macrocode} -% \begin{macro}{\settotalsbox} -% This is the box containing the page total, it may appear on the left or right side bottom -% corner. -% \begin{macrocode} -\def\settotalsbox{% - \expandafter\parsetotals\botmark\eqExam\end - \ifx\argi\@empty\hfil - \else\ifx\argii\@empty\hfil - \else - \expandafter\stripeqExam\argii -% \end{macrocode} -% Set \texttt{eqpointsthispage} equal to \cs{argi}, which should be the accumulated total -% for this part of the test so far. -% \begin{macrocode} - \setcounter{eqpointsthispage}{\argi}% -% \end{macrocode} -% This subtract \texttt{eqpointsfofar}, which should be the total for this test part through the -% previous page. The difference is the number of points for this page. -% \begin{macrocode} - \addtocounter{eqpointsthispage}{-\value{eqpointsofar}}% -% \end{macrocode} -% Now we set \texttt{eqpointsofar} to the new accumulated total \cs{argi}. -% \begin{macrocode} - \setcounter{eqpointsofar}{\argi}% -% \end{macrocode} -% And save to the auxiliary file for later usage. -% \begin{macrocode} - \xdef\lastparttotaled{\argii}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space Page\thepage total\string\endcsname - {\theeqpointsthispage}}% -% \end{macrocode} -% Finally, place the totals box. -% \begin{macrocode} - \totalsbox - \fi - \fi -} -% \end{macrocode} -% \end{macro} -% \DescribeMacro{\totalsboxtext} This is the text that appears in the totals boxes -% \begin{macrocode} -\newcommand\totalsboxtext{\small$\theeqpointsthispage\,\text{% - \ifnum\theeqpointsthispage=1\relax - \eqptLabel\else\eqptsLabel\fi}$} -% \end{macrocode} -% \DescribeMacro{\totalsboxleft}\DescribeMacro{\totalsboxright} There are two totals boxes, one for the left and one -% for the right side. These can be redefined as desired. -% \begin{macrocode} -\def\totalsboxleft{% - \makebox[0pt][r]{\setlength\tabcolsep{0pt}% - \raisebox{-\height-\marginparsep}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \parbox{\marginparwidth}{% - \strut\centering\totalsboxtext\strut}\\\hline - \end{tabular}% - }}\hspace*{\oddsidemargin}\hspace*{\marginparsep}% - \hspace*{\parindent}}\hfil -} -\def\totalsboxright -{% - \makebox[0pt][l]{\setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-\height-\marginparsep}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \parbox{\marginparwidth}{% - \strut\centering\totalsboxtext\strut}\\\hline - \end{tabular}% - }% - }% - }\hfil -} -% \end{macrocode} -% We begin the document by declaring the current part is part 0 with 0 points. This is the default, -% in case the author writes a document with no parts or points! -% \begin{macrocode} -\AtBeginDocument{\mark{0\csname eqExam\endcsname0}} -% \end{macrocode} -% At the end of the document, we write out the number of parts for this test, and -% the names of the parts the author has given each part. -% \begin{macrocode} -\AtEndDocument{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space NumberOfParts\string\endcsname - {\arabic{eq@numparts}}}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space thePartNames\string\endcsname - {\the\partNames}}% - \clearpage\addtocounter{page}{-1}\writelastpage - \addtocounter{page}{1}% -} -% \end{macrocode} -% \begin{macro}{\theGrandTotal} -% When an exam has multiple parts, the total of each part is computed -% and the grand total is computed with \cs{theGrandTotal}. -% \begin{macrocode} -\def\theGrandTotal{% - \begingroup - \count0=0\relax - \def\\##1{\advance\count0by\csname##1total\endcsname}% - \csname thePartNames\endcsname - \xdef\eqeGrandTotal{\the\count0 }% - \endgroup - \csname eqeGrandTotal\endcsname -} -% \end{macrocode} -% \end{macro} -%\subsection{Computing Number of Points within a Segment of the Exam} -% -% We add some commands for calculating number of points in a segment of the exam. -% A segment being defined subset of consecutive problems within an exam. We can -% define segments by placing markers (using \cs{placeMarkerHere}) between problems. We can -% then calculate the total number of points between markers. -% -% The counter below is a scratch counter for making the calculations. We assume the -% \texttt{calc} package is loaded, it does the work for us. -% -% \begin{macrocode} -\newcounter{markerCnt} -% \end{macrocode} -% \begin{macro}{\placeMarkerHere} -% Placed outside of any \texttt{problem}/\texttt{problem*} environment, this command -% takes one argument, the symbolic name for this marker. We write to the auxiliary file -% and define a command whose name is based on \texttt{\#1}, and whose value is -% the cumulative total \cs{theeqpointvalue}. -%\changes{v1.8}{2008/11/02} -%{ -% Added a set of commands \cs{placeMarkerHere}, \cs{calcFromMarkers}, -% and \cs{markerTotalFmt} to enable the calculation of totals of segments -% of the exam. -%} -% \begin{macrocode} -\def\placeMarkerHere#1{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space#1SaveTotalHere\string\endcsname - {\theeqpointvalue}}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\calcFromMarkers} -% Once the markers are in place, we can calculate the number of points defined between -% two such markers. The \cs{calcFromMarkers} takes three arguments, \texttt{\#2} and -% \texttt{\#3} are the symbolic names of the two markers. While, \texttt{\#1} is an optional -% argument for formatting the calculation. The default is \cs{@markerTotalFmt}, defined -% below in \cs{markerTotalFmt}. The value of the total is \cs{themarkerCnt}. -% \begin{macrocode} -\newcommand{\calcFromMarkers}[3][\@markerTotalFmt]{% - \@ifundefined{#2SaveTotalHere}{}% - {\@ifundefined{#3SaveTotalHere}{}{\setcounter{markerCnt}% - {\@nameuse{#2SaveTotalHere}-\@nameuse{#3SaveTotalHere}}% - \ifnum\value{markerCnt}<0\relax - \setcountertotalHereCnt{-\value{markerCnt}}\fi#1}}% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\markerTotalFmt} -% Used to set the global format of the marker totals. The value of the marker total -% is \cs{themarkerCnt}. The default follows the definition of \cs{markerTotalFmt} -% \begin{macrocode} -\newcommand{\markerTotalFmt}[1]{\def\@markerTotalFmt{#1}} -\markerTotalFmt{ (\themarkerCnt\space points)} -% \end{macrocode} -% \end{macro} -% \subsection{Useful Commands to Write Problems} -% \begin{macrocode} -\def\placeAtxy#1#2#3{% - \par\nointerlineskip - \ifeq@nosolutions\ifx\eq@insertverticalspace y% - \ifvmode - \makebox[0pt][l]{\hspace*{-\parindent}\hspace*{#1}% - \raisebox{#2}[0pt][0pt]{#3}} - \fi - \fi - \fi -} -\newsavebox{\workareasb} -\newenvironment{workarea}[2][\linewidth] -{% - \edef\workareadepth{\if\currhideopt H0pt\else#2\fi}% - \begin{lrbox}{\workareasb}\setlength{\eqetmplengtha}{#1}% - \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}\vspace*{3pt}% -}% -{% - \end{minipage}\end{lrbox}% -% \par\nointerlineskip\vspace{-\baselineskip}% - \par\ifeq@nosolutions\ifx\eq@insertverticalspace y% - \vspace{-\baselineskip}\fi\fi%\nointerlineskip - \ifeq@nosolutions\ifx\eq@insertverticalspace y% - \if\currhideopt H\else - \noindent\strut\smash{\usebox{\workareasb}}% - \fi\fi\fi -} -% \end{macrocode} -% \begin{environment}{splitsolution} -% This is a special solution environment designed for use with the \texttt{online} or \texttt{email} -% options. -% \begin{macrocode} -\newcommand\panelgap{3pt} -\newsavebox{\eqpanelbox} -\def\panelwidth{\the\wd\eqpanelbox}\def\panelheight{\the\ht\eqpanelbox}% -\newcounter{panel@cnt} -\newwrite\panel@write -\let\usepanelwidth=\relax -\makeatletter -\newenvironment{panel}[2][l] -{% - \gdef\ss@Argi{#1}\gdef\ss@Argiii{#2}% #1 r or l #2 width of panel - \stepcounter{panel@cnt}% - \immediate\openout \panel@write panel\thepanel@cnt.cut - % need to manage the h, H, and global overrides. - \if\currhideopt H% - \immediate\write\panel@write{\vfill}% - \immediate\closeout\panel@write - \gdef\ss@Argii{0pt}% - \else - \if\currhideopt h\ifeq@solutionsafter\else - \ifeq@globalshowsolutions\else - \immediate\write\panel@write{\vfill}% - \immediate\closeout\panel@write - \gdef\ss@Argii{0pt}% - \fi\fi - \fi - \fi - \begingroup - \let\verbatim@out=\panel@write - \verbatimwrite -} -{% - \endverbatimwrite - \immediate\closeout\panel@write - \endgroup - \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth - \else\noexpand\linewidth-\ss@Argiii-\panelgap\fi}% -} -\long\def\eqe@IW#1{% - \ifeq@solutionsafter - \let\eq@next=\@empty - \else - \def\eq@next{\immediate\write\verbatim@out{#1}}% - \ifeq@nosolutions\else - \if\currhideopt H% - \gdef\ss@Argii{0pt}\let\eq@next=\@empty - \else - \if\currhideopt h% - \ifeq@globalshowsolutions\else - \gdef\ss@Argii{0pt}\let\eq@next=\@empty - \fi - \fi - \fi - \fi - \fi - \eq@next -} -\newenvironment{@ssSolution}[1][\ss@Argii]% -{% - \xdef\eqe@depth{\ifeq@nosolutions\ss@Argii\else - \ifeq@solutionsafter\ss@Argii\else0pt\fi\fi}% - \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth\else - \noexpand\linewidth-\ss@Argiii-\panelgap\fi}% - \if\ss@Argi l% - \ifeq@solutionsafter - \def\eqe@lPanel{\parbox[b][\eqe@depth][t]{\ss@Argiii} - {\input{panel\thepanel@cnt.cut}\vfill}\hfill}% - \def\eqe@rPanel{\@empty}% - \else - \def\eqe@lPanel{\string\parbox[b][\string\eqe@depth]% - {\ss@Argiii}% - {\string\input{panel\thepanel@cnt.cut}\vfill}\hfill^^J}% - \def\eqe@rPanel{\@empty}% - \fi - \else - \ifeq@solutionsafter - \def\eqe@lPanel{\@empty}% - \def\eqe@rPanel{\hfill\parbox[b][\eqe@depth][t]{\ss@Argiii} - {\hfill\input{panel\thepanel@cnt.cut}\vfill}}% - \else - \def\eqe@lPanel{\@empty}% - \def\eqe@rPanel{\hfill\string\parbox[b][\string\eqe@depth]% - {\ss@Argiii}% - {\endgraf\string\noindent\hfill% - \string\input{panel\thepanel@cnt.cut}\vfill}}% - \fi - \fi - \let\verbatim@out=\ex@solns - \par\ifeq@solutionsafter\smallskip\fi\noindent\minipage{\linewidth}% - \if\ss@Argi l\noindent\parbox[b][\eqe@depth][t]{\ss@Argiii}% - {\vfill}\hfill\fi - \minipage[b][\eqe@depth][t]{\mp@Width}% - {\lccode`C=`\%\lowercase{\eqe@IW{\def\string\panelgap{\panelgap}% - \edef\string\eqe@depth - {\ifeq@nosolutions\ss@Argii\else\ss@Argii\fi}C}}}% - {\lccode`C=`\%\lowercase{\eqe@IW{% - \string\strut\string\par\string\nobreak\string\noindent% - \string\hbox\space to\string\linewidth\bgroup^^J% - \eqe@lPanel\string\minipage[b][\string\eqe@depth][t]% - {\string\linewidth-\ss@Argiii-\panelgap}C - }}}% - \ifeq@solutionsafter - \noindent\strut\hbox to\linewidth\bgroup - \eqe@lPanel - \minipage[b][\eqe@depth][t]{\linewidth-\ss@Argiii-\panelgap}% - \def\solutionsafterSkip{}% - \fi - \@sssolution[#1]% -}{% - \eqe@IW{\noexpand\endminipage\eqe@rPanel\egroup}% - \ifeq@solutionsafter\endminipage\eqe@rPanel\egroup\fi - \end@sssolution - \endminipage\endminipage -} -\newenvironment{splitsolution}[1] % #1 depth -{% - \gdef\ss@Argii{#1}% - \let\@sssolution = \solution - \let\end@sssolution = \endsolution - \let\solution = \@ssSolution - \let\endsolution = \end@ssSolution - \par\noindent\ignorespaces -}{% - \ifeq@solutionsafter\strut\par\fi - \edef\eqe@workwidth{\if\ss@Argi l\noexpand\ss@Argiii - \else\noexpand\linewidth\fi}% - \edef\eqe@workfill{\if\ss@Argi l\else\hfill\fi}% - \begin{workarea}[\eqe@workwidth]{\eqe@depth}% - \eqe@workfill\input{panel\thepanel@cnt.cut}% - \end{workarea} - \strut\par -} -% \end{macrocode} -% \end{environment} -% Redefine the \cs{paragraph} command -% \begin{macrocode} -\renewcommand{\paragraph} - {\@startsection{paragraph}{4}{0pt}{12pt}{-3pt}{\bfseries}} -% \end{macrocode} -% \begin{macro}{\defaultInstructions} -% For the \texttt{instructions} environment, defined next, the default string -% for the instructions is \cs{eq@default@Instructions}, this command is -% defined using \cs{defaultInstructions}. -% \begin{macrocode} -\newcommand{\defaultInstructions}[1]{\def\eq@default@Instructions{#1}} -\defaultInstructions{Instructions.} -% \end{macrocode} -% \end{macro} -% \begin{environment}{instructions} -% Each test, or a part of a test usually have instructions. This \texttt{instruction} -% environment is used in this purpose. Normally, the number of points for the part is -% displayed following the heading (the default is \textbf{Instructions.}). You can -% eliminate the total points from the instructions by taking the \texttt{nosummarytotals} -% option. -% \begin{macrocode} -\newenvironment{instructions}[1][\eq@default@Instructions] -{% - \leftskip-\oddsidemargin \rightskip-\evensidemargin - \def\eq@argi{#1}% - \paragraph*{\textcolor{\@instructionsColor}{#1}\normalcolor% - \ifx\eq@nosummarytotals y\else\ifx\eq@argi\@empty\else\ \fi - {\normalfont\summaryTotalsTxt}\ \fi}\hskip-\lastskip - \ifx\eq@nosummarytotals y\ifx\eq@argi\@empty\else\ \fi\fi - \ignorespaces -}{\par\vskip\medskipamount} -\newcommand\summaryPointTotal{\csname\thisexamlabel total\endcsname} -\newcommand\summaryTotalsTxt{($\summaryPointTotal\,\text{% - \@ifundefined{\thisexamlabel total}{\eq@pointsLabel}% - {\ifnum\summaryPointTotal=1\relax - \eq@pointLabel\else\eq@pointsLabel\fi}}$)} -% \end{macrocode} -% \end{environment} -% Make this definition for \texttt{hyperref}, so its anchors will be unique. Useful -% when there are multiple parts of the test. -% \begin{macrocode} -\ifx\hyper@anchor\@undefined\else - \renewcommand\theHeqquestionnoi - {\curr@quiz.\theeqquestionnoi} - \renewcommand\theHquizno{% - \if\probstar*\curr@quiz.% - \theeqquestionnoi.part\alph{partno}.\arabic{quizno}% - \else - \curr@quiz.% - \theeqquestionnoi.\arabic{quizno}% - \fi - } -\fi -% \end{macrocode} -% \begin{environment}{eqComments} -% Often, I want to make additional instructions between problems, you can use -% this comment environment. -% \begin{macrocode} -\newenvironment{eqComments}[1][\strut] -{% - \removelastskip\removelastskip - \vskip\medskipamount\leftskip-\oddsidemargin - \rightskip-\evensidemargin - \noindent\textbf{\textcolor{\@eqCommentsColor}{#1}}% -}{% - \vskip\medskipamount -} -% \end{macrocode} -% \end{environment} -% \subsection{The \texttt{exam} Environment} -% Each part of the exam is enclosed in an \texttt{exam} environment. The environment is -% a customized version of the \texttt{shortquiz} environment. -% \begin{macro}{\exambegdef} -% Some definitions that are executed at the beginning of each exam environment. -% \begin{macrocode} -\def\exambegdef -{% - \csname\thisexamlabel pagemark\endcsname - \expandafter - \ifx\csname\thisexamlabel pageno\endcsname\relax - \else - \expandafter - \ifx\csname pagenofirstprob\thisexamlabel\endcsname\relax - \else - \ifnum\csname\thisexamlabel pageno\endcsname - <\csname pagenofirstprob\thisexamlabel\endcsname - \else - \expandafter - \ifx\csname\thisexamlabel pagemark\endcsname\relax - \else - \ifnum\value{page}=% - \csname\thisexamlabel pageno\endcsname - \immediate\write\@auxout{% - \string\expandafter\string\gdef - \string\csname\space - \thisexamlabel pagemark\string\endcsname - {\string\newpage}}% - \fi - \fi - \fi - \fi - \fi - \setcounter{eqquestionnoi}{0}% - \setcounter{eqpointvalue}{0}% - \setcounter{eqpointsofar}{0}% - \setcounter{eqpointsthispage}{0}% - \setcounter{eq@count}{0}% - \stepcounter{eq@numparts}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space\thisexamlabel pageno\string\endcsname - {\thepage}}% - \let\sq@priorhook=\@empty - \settowidth{\labelwidth}{\normalfont\bfseries00.\ }% -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\examenddef} -% Some definitions that are executed at the end of each exam environment. -% We place a totals box to report the total since the last page. -% \begin{macrocode} -\def\examenddef -{% - \expandafter\ifx\csname NumberOfParts\endcsname\relax - \else - \ifnum\value{eq@numparts}<\NumberOfParts - \setcounter{eq@count}{\value{eqpointvalue}}% - \addtocounter{eq@count}{-\value{eqpointsofar}}% - \ifx\eq@parttotals y\relax -% \makeRoomForProb{0pt}{1}% -% \end{macrocode} -% See if there is enough room at the bottom of the page to place the end of exam -% totals, if not, forget it, and start a new page. -% \begin{macrocode} - \@actionsAtPageBreak{\global\let\@spacetobreak1} - {\global\let\@spacetobreak0}% - \ifx\@spacetobreak0\relax - \bgroup\@tempdima=\pagetotal - \advance\@tempdima32pt\relax - \ifdim\@tempdima>\pagegoal\aftergroup\newpage - \else - \ifnum\arabic{eq@count}>0 - \ifx\@reportpoints1\else\@checkSpacing\fi - \raisebox{0pt}[0pt][0pt]{% - \hspace*{-\parindent}% - \textcolor{blue}{\eqeomarginbox - {\arabic{eq@count}}{0}}}% - \fi - \ifx\eqx@separationrule y\separationrule\fi - \fi\egroup - \fi - \else\ifx\eqx@separationrule y\separationrule\fi - \fi - \fi - \fi - \writetotalstoaux - \writelastpage -} -\def\@actionsAtPageBreak#1#2{% - \bgroup\@tempdima\pagegoal\advance\@tempdima-\pagetotal - \@tempdimb\@fvsizeskip\vsize - \ifdim\@tempdima < \@tempdimb #1\else #2\fi\egroup -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\separationrule} -% For an exam with multiple parts, a separation rule is created, unless absorbed -% into a page break. The command \cs{separationrule} defines this separation rule, -% it can be redefined as desired. -% \changes{v1.7a}{2007/12/10} -%{ -% Added \cs{separationrule} so user's can redesign the separation rule -% that is created between two parts of an exam. -%} -% \begin{macrocode} -\newcommand{\separationrule}{\makebox[\linewidth]% - {\centering\rule{.67\linewidth}{.4pt}}} -% \end{macrocode} -% \end{macro} -% \begin{environment}{exam} -% Each part of the exam is enclosed in an \texttt{exam} environment. The one -% required parameter is the name of the part, for example, `Part1', `Part2'. -% These should be one word, no white spaces, just letters and possibly numbers. -% \begin{macrocode} -\def\setDefaultfvsizeskip#1{\def\default@fvsizeskip{#1}% - \def\@fvsizeskip{#1}} -\def\default@fvsizeskip{.3} -\edef\@fvsizeskip{\default@fvsizeskip} -\def\fvsizeskip#1{\def\@fvsizeskip{#1}} -\newenvironment{exam}[2][\@empty] -{% - \makeRoomForProb{\@fvsizeskip\vsize}{0}% - \xdef\@fvsizeskip{\default@fvsizeskip}% - \gdef\thisexamlabel{#2}\gdef\curr@quiz{#2}% - \edef\eq@tmp{\the\partNames}% - \global\partNames=\expandafter{\eq@tmp\\{#2}}% - \expandafter\ifx\csname NumberOfParts\endcsname\relax\else - \ifnum\csname NumberOfParts\endcsname=1\else - \ifx#1\@empty\writetoSolns{#2}\else\writetoSolns{#1}\fi\fi\fi - \exambegdef - \expandafter\shortquiz\sqstar[#2]% -}{% - \examenddef - \endshortquiz -} -% \end{macrocode} -% \end{environment} -% \begin{macrocode} -\def\writetotalstoaux{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space\thisexamlabel total\string\endcsname - {\theeqpointvalue}}% -} -\def\writelastpage{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space eqExamLastPage\string\endcsname{\arabic{page}}}% -} -\def\exlabel{} -\def\sqlabel{} -\def\exsolafter{\textit{Solution}:} -\def\sqsolafter{\textit{Solution}:} -\def\exlabelformat{\textbf{\theeqquestionnoi.\ }} -\def\exlabelformatwp{\exlabelformat}% -\def\exsllabelformat - {\string\llap{\string\textbf{\theeqquestionnoi.\ }}} -\def\exsllabelformatwp{\string\llap{% - \string\textbf{\theeqquestionnoi.\ }}\eq@partsformat\ }% -\ifeq@solutionsafter - \def\exrtnlabelformat{} - \def\exrtnlabelformatwp{} - \def\eq@sqslrtnlabel{} -\else - \def\exrtnlabelformat{$\square$} - \def\exrtnlabelformatwp{$\square$} - \def\eq@sqslrtnlabel{$\square$} -\fi -\def\sqslrtnlabel{\eq@sqslrtnlabel} -\def\exsectitle{\normalsize\hspace* - {-\oddsidemargin}Solutions to \webtitle} -\def\exsecrunhead{Solutions to \websubject}% -\def\eq@sqslsectitle{} -\def\eq@sqslsecrunhead{} -\def\eq@sqsllabel{{\string\llap{\string\textbf{\theeqquestionnoi.\ }}}} -\def\eq@sqlabel{} -\let\include@quizsolutions=\relax -\let\solnhspace=\@empty -% \end{macrocode} -% \subsection{\texttt{problem} Environments} -% A single question is posed with the \texttt{problem} environment, and a question with -% multiple parts with the \texttt{problem*} environment. -% \begin{macro}{\fillin} -% This macro is used for fill-in type questions. The first argument is the length -% of the underline blank to leave to fill-in, the second argument is the correct answer. -% \begin{macrocode} -\newcommand{\fillin}[3][u]{% - \ifx#1u\let\@fillinFmt=\underbar - \else\ifx#1b\let\@fillinFmt=\relax - \else\let\@fillinFmt=\relax\fi\fi - \ifeq@proofing - \@fillinFmt{\makebox[#2]{% - \strut\hfil\bfseries\color{red}#3\hfil}}% - \else - \@fillinFmt{\makebox[#2]{\strut\hfil}}% - \@ifundefined{@quiz}{}{% - \ifx\eq@online y\relax - \ifeq@nosolutions - \ifeq@solutionsafter\else - \ifx\eq@insertverticalspace y\relax - \stepcounter{@cntfillin}% - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.part\alph{partno}.% - fi\the@cntfillin - \else - eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.fi\the@cntfillin - \fi - }\makebox[0pt][r]{\textField[\BC{}]{% - \fieldName}{#2}{11bp}}% - \fi - \fi - \fi - \fi - }% - \fi\space\ignorespaces} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\TF} -% A specialized version of \cs{fillin} for True/False questions. -% \begin{macrocode} -%\newcommand\TF[1]{\fillin{30pt}{#1}} -\newcommand\defaultTFwidth{30pt} -\newcommand\TF[2][\defaultTFwidth]{% - \def\eq@next{\fillin{#1}{#2}}% - \ifdim\eq@extralabelsep=0pt\relax\else - \if\probstar*\relax\if\exerwparts@cols x - \def\eq@next{\makebox[0pt][r]{% - \fillin{#1}{#2}}\ignorespaces}% - \fi\fi\fi -\eq@next} -\def\fillinWidth#1{% - \if\probstar* - \settowidth{\eq@tmplengthA}{\normalfont\ }% - \addtolength{\eq@tmplengthA}{#1}% - \edef\eq@extralabelsep{\the\eq@tmplengthA}% - \fi -} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\Do..\of..} -% When I teach senior or graduate-level classes, I often give a problem with -% multiple parts (each of equal value) and ask them to ``do 3 of the following 5'' -% parts. -% \begin{macrocode} -\def\makeDoNum#1{\xdef\nDoNum{#1}% - \xdef\DoNum{\ifcase#1??\or one\or two\or three\or - four\or five\or six\or seven\or eight\or nine\or ten\fi}} -\def\makeOutOfNum#1{\xdef\nOutOfNum{#1}% - \xdef\OutOfNum{\ifcase#1??\or one\or two\or three\or - four\or five\or six\or seven\or eight\or nine\or ten\fi}} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\def\prob@Arg#1ea#2\end{\def\argi{#1}\def\argii{#2}} -\def\makeRoomForProb#1#2{% - \bgroup\@nobreakfalse\addpenalty{-500}% - \@tempdima \pagegoal \advance \@tempdima -\pagetotal - \ifdim \@tempdima < #1 \newpage\fi \egroup - \ifx1#2\ifnum\@reportpoints>1 \@checkSpacing\fi\fi -} -\def\@checkSpacing{\bgroup -%\typeout{\theeqquestionnoi : \the\pagetotal}% - \@tempdima = \lastPageTotal - \@tempdimb = \pagetotal - \ifdim\@tempdima < \@tempdimb - \advance\@tempdimb by-\@tempdima -% \typeout{difference: \the\@tempdimb} -% \ifdim\@tempdimb < 36pt\relax -% \@tempdima = 39pt\relax - \ifdim\@tempdimb < \eq@pointboxtotalheight - \@tempdima=\eq@pointboxtotalheight - \advance\@tempdima3pt\relax - \advance\@tempdima by-\@tempdimb - \vspace*{\@tempdima}% -%\typeout{\theeqquestionnoi : issuing vspace}% - \fi - \fi -\egroup} -\def\default@nbaselineskip{6} -\edef\@nbaselineskip{\default@nbaselineskip} -\def\nbaselineskip#1{\def\@nbaselineskip{#1}} -% \end{macrocode} -% \begin{environment}{problem} -% The \texttt{problem} is used to pose a single---non-multi-part---question. -% The optional argument is the number of points for this problem. -% \begin{macrocode} -\newenvironment{problem}[1][]{% - \makeRoomForProb{\@nbaselineskip\baselineskip}{1}% - \xdef\@nbaselineskip{\default@nbaselineskip}% - \gdef\probstar{x}% - \let\afterlabelhskip=\@empty - \ifx\marginpoints\@empty - \else - \def\numpoints{#1}% - \ifx\numpoints\@empty - \let\marginpoints\@empty - \else - \def\marginparpriorhook{\noindent\probvalue{#1}{0}}% - \fi - \fi - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \ifnum\value{eq@count}=1\relax - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space pagenofirstprob\thisexamlabel\string\endcsname - {\thepage}}% - \fi - \proofingsymbol{\ding{52}}% -% \renewcommand\proofingsymbol -% {\textcolor{\@proofingsymbolColor}{\ding{52}}}% - \begin{exercise}[eqquestionnoi]% -}{\end{exercise}% - \ifeqlocalversion\ifeqglobalversion - \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}% - \aftergroup\eqe@tmp - \fi\fi - \global\eqlocalversionfalse -} -% \end{macrocode} -% \end{environment} -% \begin{macro}{\PTs} -% \begin{macro}{\itemPTsTxt} -% \begin{macro}{\itemPTsFormated} -% When you specify \cs{auto} for the optional argument of the \texttt{problem*} -% environment, when each item must have the command \cs{PTs} to assign the -% value of that question. The \cs{PTs} has one optional star-parameter, and one -% required parameter. The required parameter is the number of points for this item, -% if the \texttt{*} is specified, then the point value is not typeset in the document. -% -% The command \cs{itemPTsTxt} has one argument, the number of points for this item. This -% argument is passed from the \cs{PTs} command. You can redefine the way the points appear -% in the document using \cs{itemPTsTxt}. As separate command \cs{itemPTsFormated} is used to -% put parentheses around \cs{itemPTsTxt}. If the \texttt{*} option is taken with \cs{PTs}, then -% you are free to place \cs{itemPTsTxt} anywhere in the problem statement. -% \changes{v1.6g}{2006/11/29} -%{ -% Added \cs{itemPTsTxt} and \cs{itemPTsFormated} to work with \cs{PTs}. -% Also added a \texttt{*} option, to \cs{PTs}, in this case the points -% are not typeset. -%} -% \begin{macrocode} -\newcommand\itemPTsTxt[1]{$#1\,\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$} -\newcommand{\itemPTsFormated}[1]{(#1)} -\def\PTs{\@ifstar{\@PTs{*}}{\@PTs{x}}} -\def\@PTs#1#2{% - \if\@reportpoints0\else - \addtocounter{eq@count}{#2}\if#1*\else - \itemPTsFormated{\itemPTsTxt{#2}}\fi - \fi -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\let\auto=\relax -\def\isItD@{\@ifnextchar\Do{\let\yest@D@=y\y@st@Do} - {\let\yest@D@=n\@gobblet@end}} -\let\yest@D@=n -\def\y@st@Do\Do#1\end{\gdef\D@Num{#1}} -\def\@gobblet@end#1\end{} -% \end{macrocode} -% \begin{environment}{problem*} -% The \texttt{problem*} environment is used to pose a multi-part question. -% The \texttt{parts} environment is used to enumerate the parts. -% \begin{macrocode} -\expandafter\def\csname problem*\endcsname{% - \@ifnextchar[{\pr@bl@m@star}{\pr@bl@m@star[\@empty]}} -\def\pr@bl@m@star[#1]{% - \@ifnextchar[{\pr@blem@star{#1}}{\pr@blem@star{#1}[\@empty]}} -\def\pr@blem@star#1[#2]{% - \makeRoomForProb{\@nbaselineskip\baselineskip}{1}% - \xdef\@nbaselineskip{\default@nbaselineskip}% - \proofingsymbol{\ding{52}}% - \gdef\probstar{*}% - \gdef\pr@b@secondarg{#2}% - \setcounter{eq@count}{0}% - \let\afterlabelhskip=\@empty - \global\let\probpointseach=\@empty - \ifx#1\auto\global\let\probpointseach\relax - \def\@next{\autocalcparts}% - \else - \ifx#2\@empty\else - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \@ifundefined{nPartsThisProb\thisexamlabel.\theeq@count} - {\makeOutOfNum{0}\makeDoNum{0}}% - {% - \expandafter\makeOutOfNum{% - \csname nPartsThisProb\thisexamlabel.% - \theeq@count\endcsname}% - \expandafter\makeDoNum{% - \csname DoNumThisProb\thisexamlabel.% - \theeq@count\endcsname}% - }% - \fi - \def\@next{\manualcalcparts{#1}}% - \fi\@next - \begin{exercise}[eqquestionnoi]*}% -\expandafter\def\csname endproblem*\endcsname{% - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space nPartsThisProb\thisexamlabel.\theeqquestionnoi - \string\endcsname{\arabic{partno}}}% - \ifx\probpointseach\@empty\else - \ifx\probpointseach\auto - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space prob\thisexamlabel.\theeqquestionnoi - \string\endcsname{\theeq@count}}% - \else - \setcounter{eq@count}{\value{partno}}% - \ifx\pr@b@secondarg\@empty\else - \bgroup\toks0 =\expandafter{\pr@b@secondarg}% - \expandafter\isItD@\the\toks0 \end - \ifx\yest@D@ y - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space DoNumThisProb\thisexamlabel.% - \theeqquestionnoi\string\endcsname{\D@Num}}% - \@tempcnta = \value{eq@count}% - \advance\@tempcnta -\D@Num - \global\advance\value{eq@count}-\@tempcnta - \fi - \egroup - \fi - \multiply\value{eq@count}\argi - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space prob\thisexamlabel.\theeqquestionnoi - \string\endcsname{\theeq@count}}% - \fi\fi - \end{exercise}% - \ifeqlocalversion\ifeqglobalversion - \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}% - \aftergroup\eqe@tmp - \fi\fi - \global\eqlocalversionfalse -} -% \end{macrocode} -% \end{environment} -% \begin{macro}{\pushProblem} -% \begin{macro}{\popProblem} -% There may be an occasion when a multi-part question needs to be broken between parts. -% use the \cs{pushProblem} and \cs{popProblem} for this purpose. The push saves the -% counter value, and ends the \texttt{parts} environment. The pop restarts the -% \texttt{parts}, and resets the parts counter. -% \changes{1.6b}{2006/3/12} -% { -% Added \cs{pushProblem} and \cs{popProblem} to grant the ability to interrupt -% a parts environment for, for example, a multicolumn environment. -% } -%\par\medskip\noindent -%In the example below, we have our parts in a \texttt{multicols} environment, we -%\cs{pushProblem}, close \texttt{multicols}, \cs{popProblem} and continue with -% the multi-parts in single column. -%\begin{verbatim} -%\item Compute $\lim_{x\to2^{\text{$-$}}} f(x)$ -%\begin{solution}[1in]\end{solution} -%\pushProblem -%\end{multicols} -%\popProblem -%\item What value(s) of $c$ make the function $f$ -%continuous at $x=2$? -%\begin{solution}[.5in]\end{solution} -%\end{parts} -%\end{verbatim} -% \begin{macrocode} -\def\pushProblem{\xdef\nlastItem{\arabic{partno}}\end{parts}} -\def\popProblem{\begin{parts}\setcounter{partno}{\nlastItem}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macrocode} -\def\lastPageTotal{0pt} -\def\marginparafterhook{\xdef\lastPageTotal{\the\pagetotal}} -\def\manualcalcparts#1{% - \expandafter\prob@Arg#1ea\end - \ifx\argii\@empty\def\numpoints{#1}% - \else - \gdef\probpointseach{x}% - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \expandafter - \ifx\csname prob\thisexamlabel.\theeq@count\endcsname\relax - \def\numpoints{\argi}% - \else - \def\numpoints{\expandafter - \csname prob\thisexamlabel.\theeqquestionnoi\endcsname}% - \fi - \fi - \ifx\marginpoints\@empty - % no points for this problem specified - \else - \ifx\argi\@empty - \let\marginpoints\@empty - \else - \ifx\argii\@empty - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{% - \noindent\probvalue{\numpoints}{0}% - }% - \fi - \else - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{% - \noindent\probvalue{\numpoints}{\argi}% - }% - \fi - \fi - \fi - \fi - \ifnum\value{eq@count}=1\relax - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space pagenofirstprob\thisexamlabel\string\endcsname - {\thepage}}% - \else - \goodbreak - \fi -} -\def\autocalcparts{% - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \expandafter - \ifx\csname prob\thisexamlabel.\theeq@count\endcsname\relax - \def\numpoints{0}% assume zero points until we get the total - \else - \edef\numpoints{\expandafter - \csname prob\thisexamlabel.\theeq@count\endcsname}% - \fi - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{\noindent\probvalue{\numpoints}{0}}% - \fi - \setcounter{eq@count}{0}% -} -% \end{macrocode} -% \begin{macro}{\forproblem} -% \begin{macro}{\foritem} -% When typing solutions from assigned problems in a textbook, the problems -% assigned are not consecutive. You can set the problem number before the problem -% environments by using the \cs{forproblem} command. The one required argument is -% the problem number: \verb!\forproblem{10)!. -% \changes{v1.6h}{2007/01/24} -% { -% Added \cs{forproblem}, \cs{foritem}, \cs{aNewPage} -% } -% \begin{macrocode} -\newcommand{\forproblem}[1]{\setcounter{eqquestionnoi}{#1 - 1}} -% \end{macrocode} -% A similar comment for \cs{item}. These are useful for making out solution -% sets to homework assignments where problems are assigned from the textbook -% and you want to give a solution to problem 12, part (b), An example of usage is -%\begin{verbatim} -%\forproblem{12} -%\begin{problem*} -%Factor each. -%\begin{parts} -% \foritem{b} $ x^2 + 2x + 1 = ( x + 1 )^2 $ -% \item $ x^2 - x - 2 = ( x - 2 )( x + 1) $ % this is part (c) -% \foritem{e} $ x^2 + 7x + 10 = ( x - 2 )( x + 7) $ -% \item ... % this will be part (f) -%\end{parts} -%\end{problem*} -%\end{verbatim} -% \begin{macrocode} -\newcommand{\foritem}[1]{% - \setcounter{partno}{0}% - \lowercase{\def\eq@selectedItem{#1}}% - \let\eq@initLoop=0 - \loop - \stepcounter{partno}% - \expandafter\if\alph{partno}\eq@selectedItem - \let\eq@initLoop=1 - \fi - \if\eq@initLoop0\repeat - \addtocounter{partno}{-1}% - \item -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\aNewPage} -% \begin{macro}{\qNewPage} -% A simple command for inserting \cs{newpage}, only if the \cs{answerkey} -% option has been taken. -% \changes{v1.6h}{2007/01/24} -% { -% Added \cs{aNewPage} and \cs{qNewPage} -% } -% \begin{macrocode} -\newcommand\aNewPage{\ifanswerkey\newpage\fi} -\newcommand\qNewPage{\ifanswerkey\else\newpage\fi} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \begin{macro}{\OnBackOfPage} -% -% In an effort to make maximum use of the paper, I sometimes ask the -% students to solve the problem on the back of a page. The following -% command is an automated instruction. Generally, we work on the back -% of the previous page, unless we are on page 1, in this case we work -% on the back of page 1. -% -% \begin{macrocode} -\newcounter{backofpage} -\newcommand\bopText{on the back of page~\boPage} -\newcommand\bopCoverPageText{\space(the cover page)} -\newcommand\OnBackOfPage[1][\bopText]{% - \refstepcounter{backofpage}\label{bop\thebackofpage} - \begingroup - \expandafter\ifx\csname r@bop\thebackofpage\endcsname\relax - \def\boPage{??}% - \else - \edef\temp{\csname r@bop\thebackofpage\endcsname}% - \ifx\hyper@anchor\@undefined - \edef\boPage{\expandafter\@secondoftwo\temp}% - \else - \edef\boPage{\expandafter\@secondoffive\temp}% - \fi - \c@eq@count\boPage - \advance\c@eq@count-1\relax -% \end{macrocode} -% If on page 1, we work on the back of page 1, otherwise, we work on the -% back of the previous page. -% \begin{macrocode} - \edef\boPage - {% - \ifx\eqex@coverpage\relax - \expandafter\ifnum\value{eq@count}=0\relax - 1% - \else - {\theeq@count}% - \fi - \else - \ifnum\value{eq@count}=1\relax - {\theeq@count}\bopCoverPageText - \else - {\theeq@count}% - \fi - \fi - }% - \fi - #1% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -\pagestyle{eqExamheadings} -% \end{macrocode} -% \newpage -% \subsection{\texttt{xkeyval} Extensions} -% -% We load this material if \texttt{xkeyval} exists, and if the document author has specified -% the \texttt{usexkv} option. -% -% \begin{macrocode} -\IfFileExists{xkeyval}{% - \if\eq@usexkeys y\RequirePackage{xkeyval}\else - \endinput\fi}{\endinput} -% \end{macrocode} -% We redefine selected commands if the user has \texttt{xkeyval}. -%\begin{verbatim} -% \fillin[ -% underline=true|false,u,b,boxed=true|false,boxpretext=, -% align=l|r|c,boxsize=\tiny|..\normalsize|\large|...|\Huge, -% color=,format=<\bfseries|\ttfamily|\Large|whatever> -% ]{}{} -%\end{verbatim} -% \DescribeMacro{underline}\DescribeMacro{u}\DescribeMacro{b} -% \DescribeMacro{boxed}\DescribeMacro{boxpretext}\DescribeMacro{boxsize} -% \DescribeMacro{align}\DescribeMacro{color}\DescribeMacro{format} -% Below are the \texttt{xkeyval} definitions of the keys recognized by \texttt{fillin}. -% \begin{macrocode} -\define@boolkey{eqFillin}{underline}[true]{} -\define@key{eqFillin}{u}[]{\KV@eqFillin@underlinetrue} -\define@key{eqFillin}{b}[]{\KV@eqFillin@underlinefalse} -\define@boolkey{eqFillin}{boxed}[true]{} -\define@key{eqFillin}{boxpretext}[]{\def\eq@fillintext{#1}} -\let\eq@fillintext\@empty -\define@choicekey+{eqFillin}{boxsize}{tiny,scriptsize,footnotesize,% - small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{% - \def\eq@eqFillin@boxsize{\text{\csname#1\endcsname\strut}}% -}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values - are tiny, scriptsize, footnotesize, small, normalsize, - large, Large, LARGE, huge and Huge. Try again}} -\def\eq@eqFillin@boxsize{\text{\normalsize\strut}} -\define@key{eqFillin}{color}[red]{\def\eq@fillin@color{#1}} -\define@choicekey+{eqFillin}{align}{l,r,c}[c]{% - \def\eq@eqFillin@align{#1}}{% - \PackageWarning{eqexam}{Bad choice for align, permissible values - are l, r, and c. Try again}} -\define@key{eqFillin}{format}[\bfseries]{\def\eq@fillin@format{#1}} -% \end{macrocode} -% \begin{macro}{\fillin} -% I've re-worked \cs{fillin} to have \texttt{xkeyval} in the optional first parameter. -% The syntax is illustrated above. -% \begin{macrocode} -\renewcommand{\fillin}[3][]{\begingroup% - \setkeys{eqFillin}{boxsize,underline=false,boxed=false,% - boxpretext,color,align,format}% - \protected@edef\eq@temp@exp{\noexpand\setkeys{eqFillin}{#1}}% - \eq@temp@exp - \ifKV@eqFillin@underline\let\@fillinFmt\underbar - \else\let\@fillinFmt\relax\fi - \ifeq@proofing - \ifKV@eqFillin@boxed - \ensuremath{\boxed{\eq@eqFillin@boxsize\eq@fillintext - \@fillinFmt{\makebox[#2][\eq@eqFillin@align]{% - \strut\eq@fillin@format\color{\eq@fillin@color}% - \ensuremath{#3}}}}}% - \else - \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\relax\fi - \@fillinFmt{\makebox[#2][\eq@eqFillin@align]{% - \strut\eq@fillin@format\color{\eq@fillin@color}% - \@eqmath{#3}}}% - \fi - \else - \ifKV@eqFillin@boxed - \ensuremath{\boxed{\eq@eqFillin@boxsize\eq@fillintext - \@fillinFmt{\makebox[#2]{\strut\hfil}}}}% - \else - \@fillinFmt{\makebox[#2]{\strut\hfil}}% - \fi - \@ifundefined{@quiz}{}{% - \ifx\eq@online y\relax - \ifeq@nosolutions - \ifeq@solutionsafter\else - \ifx\eq@insertverticalspace y\relax - \stepcounter{@cntfillin}% - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.part\alph{partno}.% - fi\the@cntfillin - \else - eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.fi\the@cntfillin - \fi - }\makebox[0pt][r]{\textField[\BC{}]{% - \fieldName}{#2}{11bp}}% - \fi - \fi - \fi - \fi - }% - \fi\endgroup\space\ignorespaces} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\TF} -% The \cs{TF} command depends on \cs{fillin}, so we make the appropriate changes. -% \begin{macrocode} -\renewcommand\TF[2][\defaultTFwidth]{% - \def\eq@next{\fillin[underline]{#1}{#2}}% - \ifdim\eq@extralabelsep=0pt\relax\else - \if\probstar*\relax\if\exerwparts@cols x - \def\eq@next{\makebox[0pt][r]{% - \fillin[underline]{#1}{#2}}\ignorespaces}% - \fi\fi\fi -\eq@next} -% \end{macrocode} -% \end{macro} -% \begin{macrocode} -% -% \end{macrocode} -\endinput diff --git a/Master/texmf-dist/source/latex/eqexam/eqexam.ins b/Master/texmf-dist/source/latex/eqexam/eqexam.ins deleted file mode 100644 index 3abfe28968c..00000000000 --- a/Master/texmf-dist/source/latex/eqexam/eqexam.ins +++ /dev/null @@ -1,63 +0,0 @@ -%% -%% This file will generate fast loadable files and documentation -%% driver files from the doc files in this package when run through -%% LaTeX or TeX. -%% -%% Copyright 1999-2006 D. P. Story -%% -%% This file is part of the `AcroTeX eDucation Bundle'. -%% ------------------------------------------- -%% -%% It may be distributed under the conditions of the LaTeX Project Public -%% License, either version 1.2 of this license or (at your option) any -%% later version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. -%% -%% --------------- start of docstrip commands ------------------ -%% -\def\filedate{2001/01/22} -\def\batchfile{eqexam.ins} -\input docstrip - -\ifx\generate\undefined - \Msg{**********************************************} - \Msg{*} - \Msg{* This installation requires docstrip} - \Msg{* version 2.4 or later.} - \Msg{*} - \Msg{* An older version of docstrip has been input} - \Msg{*} - \Msg{**********************************************} - \errhelp{Move or rename old docstrip.tex and get a newer one.} - \errmessage{Old docstrip in input path} - \batchmode - \csname @@end\endcsname\end -\fi - -\keepsilent -\askforoverwritefalse -%\askonceonly -%\usedir{tex/latex/hyperref} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\preamble -\endpreamble - -\generate{% - \file{eqexam.sty}{\from{eqexam.dtx}{copyright,package}} - \file{eqalone.def}{\from{eqexam.dtx}{copyright,standalone}} - \file{eqexam.drv}{\from{eqexam.dtx}{copyright,driver}} -} - -\Msg{***************************************************************} -\Msg{*} -\Msg{* \space To finish the installation you have to copy the files } -\Msg{*} -\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} -\Msg{*} -\Msg{***************************************************************} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\endinput diff --git a/Master/texmf-dist/tex/latex/eqexam/eqalone.def b/Master/texmf-dist/tex/latex/eqexam/eqalone.def deleted file mode 100644 index 901c87346d1..00000000000 --- a/Master/texmf-dist/tex/latex/eqexam/eqalone.def +++ /dev/null @@ -1,40 +0,0 @@ -%% -%% This is file `eqalone.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eqexam.dtx (with options: `copyright,standalone') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eqExam.sty package, 2005-02-05 %% -%% Copyright (C) 2005 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{}% defined in eforms -\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} % defined in eforms -\def\RadioFieldSize{11bp} -\newdimen\eqcenterWidget -\def\centerWidget -#1{% - \eqcenterWidget=#1 - \eqcenterWidget=.5\eqcenterWidget - \advance\eqcenterWidget by -4bp -} -\AtEndDocument{\include@solutions} -\def\Bbox#1#2{\vbox{\hrule width #1 - \hbox to#1{\vrule height#2\hfill\vrule height#2}\vfill\hrule}} -\def\Rect#1{\textcolor{\@linkcolor}{#1}} -\def\ReturnTo#1#2{\eq@fititin{#2}} -\newcommand{\proofingsymbol}[1]{% - \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}} -\proofingsymbol{$\bullet$} -\endinput -%% -%% End of file `eqalone.def'. diff --git a/Master/texmf-dist/tex/latex/eqexam/eqexam.def b/Master/texmf-dist/tex/latex/eqexam/eqexam.def deleted file mode 100644 index 273115a8f72..00000000000 --- a/Master/texmf-dist/tex/latex/eqexam/eqexam.def +++ /dev/null @@ -1,774 +0,0 @@ -%% -%% This is file `eqexam.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `eqexam') -%% -\newif\ifeq@noforms \eq@noformsfalse -\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse % dps new -\newif\ifeq@nocorrections \eq@nocorrectionsfalse -\newif\ifeq@nolink \eq@nolinkfalse -\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi} -\def\hidesymbol{h}\def\Hidesymbol{H} -\newif\iftherearesolutions \therearesolutionsfalse -\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue} -\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse} -\def\NoSpaceToWork{\let\eq@insertverticalspace=n} -\def\SpaceToWork{\let\eq@insertverticalspace=y} -\SpaceToWork -\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse -\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse -\def\turnOnRandomize{\eq@randomizeallChoicestrue} -\def\obeyLocalRandomize{\eq@randomizeallChoicesfalse} -\let\saveRandomSeed\relax -\let\inputRandomSeed\relax -\newcommand{\exsolafter}{\eq@exsolafterDefault} -\newcommand{\eq@exsolafterDefault}{\textit{Solution}:} -\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}} -\newcommand{\resetSolnAfterToDefault}{% - \def\exsolafter{\eq@exsolafterDefault}} -\ifsolutionsonly\else -\newwrite \ex@solns \immediate\openout \ex@solns \jobname.sol -\fi -\newwrite \quiz@solns \immediate\openout \quiz@solns \jobname.qsl -\newcounter{eqexno} \setcounter{eqexno}{0} -\newcounter{@exno} \setcounter{@exno}{0} % running exno -\newcounter{quizno} \setcounter{quizno}{0} -\renewcommand\thequizno{\alph{quizno}} -\newcounter{eqpointvalue} \setcounter{eqpointvalue}{0} -\newlength\eq@tmplength -\newcounter{eqquestionnoi} -\newcounter{eqquestionnoii} -\newcounter{eqquestionnoiii} -\newcount\@eqquestiondepth \@eqquestiondepth=0 -\newcounter{questionno} -\newcounter{partno} -\renewcommand\thepartno{\alph{partno}} -\def\verbatimwrite{\@bsphack - \let\do\@makeother\dospecials - \catcode`\^^M\active \catcode`\^^I=12 - \def\verbatim@processline{% - \immediate\write\verbatim@out - {\the\verbatim@line}}% - \verbatim@start} -\def\endverbatimwrite{\@esphack} -\providecommand\PBS[1]{\let\temp=\\#1\let\\=\temp} -\newcommand{\eqexerskip}[1]{\def\eq@exerskip{\vskip#1}} -\eqexerskip{\medskipamount} -\newcommand{\priorexskip}[1]{\def\eq@priorexskip{\vspace{#1}}} -\priorexskip{\medskipamount} -\let\eq@postexerciseHook\relax -\newcommand\eqafterexersolnskip{\string\medskip} -\def\marginparpriorhook{} % used to material before the exercise -\def\marginparafterhook{} % used to material after the exercise -\let\afterlabelhskip=\space -\let\exersolnheadhook=\@empty -\newcommand{\eqexheader} -{% - \hbox{\color{\@nolinkcolor}\if\exerstar*\exlabelformatwp\else - \exlabelformat\fi}% -} -\def\eqexheader@wrapper{\hypertarget{qex.\the@exno}{\eqexheader}} -\newcommand{\partsformat}[1]{\def\eq@partsformat{#1}} -\partsformat{(\hfil\alph{partno}\hfil)} -\newcommand{\defaultpartsformat}{% - \partsformat{(\hfil\alph{partno}\hfil)}} -\newcommand{\eqexlisttabheader} -{% - \color{\@nolinkcolor}\eq@partsformat -} -\newenvironment{exercise} -{% - \par\eq@priorexskip\noindent%\begingroup % set defaults - \def\eq@argi{eqexno}% % use eqexno counter - \if\eq@exerstarEnv*\def\exerstar{*}\else\def\exerstar{x}\fi - \def\currhideopt{x}% - \@ifnextchar[{\exercise@}{% - \if\exerstar*% - \def\eq@next{\@exercise}% - \else - \def\eq@next{\exercise@@}% - \fi\eq@next}% -}{\eq@postexerciseHook\par\global\eq@exerciseheadingtrue\eq@exerskip} -\def\exercise@[#1]{\def\eq@arg{#1}% - \if\eq@arg h% - \def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse - \fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H% - \edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse - \fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \def\currhideopt{x}% - \if\exerstar*% - \def\eq@next{\def\eq@argi{#1}\@exercise}% - \else - \def\eq@next{\def\eq@argi{#1}\exercise@@}% - \fi - \fi - \fi -\eq@next} -\def\exercise@@{\@ifstar{\def\exerstar{*}\@exercise}% was \exercise@@@ - {\exercise@@@}}% -\def\exercise@@@{% -\@ifnextchar[{\exercise@@@@}{\@exercise}} -\def\exercise@@@@[#1]{\def\eq@arg{#1}% - \if\eq@arg h% - \def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse - \fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H% - \edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \def\eq@next{\@exercise}% h, no *, no counter - \else - \def\currhideopt{x}% - \typeout{The option #1 is not recognized} - \let\eq@next=\relax - \fi - \fi -\eq@next} -\newif\ifeq@exerciseheading \eq@exerciseheadingtrue -\newcommand\exerSolnHeader[3] -{% - \ifeqforpaper\else\webnewpage\fi\markright{#1}\par\noindent% - #3% - \solnhspace -} -\let\eqEXt=\relax -\let\endeqEXt=\relax -\let\eq@writeexheader\@empty -\def\@exercise -{% - \let\verbatim@out=\ex@solns - \if\eq@argi0\else\refstepcounter{\eq@argi}\fi\stepcounter{@exno}% - \if\exerstar*% if exercise with parts - \eq@nolinktrue - \else - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide % - \ifeq@hidesolution\else - \gdef\eq@writeexheader{% - \set@display@protect - \immediate\write\verbatim@out{\protect\eqEXt - \protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}% - {\exsllabelformat}\exersolnheadhook\protect\relax}% - \set@typeset@protect}% - \fi - \fi - \fi - \fi - \ifvmode\ifdim\lastskip>\z@ - \vskip-\lastskip - \fi\fi - \if\exerstar*% - \let\solution=\solnexer@woparts - \let\endsolution=\endsolnexer@woparts - \let\parts=\exercise@parts - \let\endparts\endexercise@parts - \else - \let\solution=\solnexer@woparts - \let\endsolution=\endsolnexer@woparts - \let\parts=\relax - \let\endparts=\relax - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \fi - \ifeq@exerciseheading - \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper - \afterlabelhskip\marginparafterhook\ignorespaces - \fi -} -\long\def\setsolnspace#1{% - \def\newsolnspace{#1}% - \let\solnhspace\newsolnspace -} -\let\solnhspace\space -\def\solnexer@woparts{\def\bLeaveVspace{x}% = no vertical space added - \def\next{\@ifnextchar[{\solnexer@@woparts}% - {\solnexer@@woparts[\null]}}% - \ifx\endparts\endexercise@parts@tabular - \def\next{\solnexer@@@woparts}% - \fi - \next} -\let\eqPriorVspace\@gobble -\def\solnexer@@woparts[#1]{% - \ifx#1\null - \else - \xdef\sameVspace{#1}% - \ifeq@nosolutions - \ifeq@solutionsafter\else - \let\bLeaveVspace=\@empty - \def\leavevspace{% - \ifx\eq@insertverticalspace y\par\eqPriorVspace{#1}% - {\nobreak\parbox[b][#1][t]{\linewidth}{\vfill}}% - \fi - }% - \fi - \fi - \fi - \solnexer@@@woparts -} -\def\solutionsafterSkip{\smallskip} -\def\solnexer@@@woparts -{% - \def\exerwparts@cols{x}% - \let\verbatim@out=\ex@solns - \if\currhideopt H% - \let\procsoln=\comment - \let\endprocsoln=\endcomment - \def\eq@next{\procsoln}% - \else - \eq@ckglobalhide - \ifeq@hidesolution - \let\procsoln=\comment - \let\endprocsoln=\endcomment - \else - \ifx\bLeaveVspace\@empty\leavevspace\fi - \let\procsoln=\verbatimwrite - \let\endprocsoln=\endverbatimwrite - \fi - \def\eq@next{% - \ifeq@solutionsafter - \ifx\exsolafter\@empty\else - \par\solutionsafterSkip - \noindent\exsolafter\space\ignorespaces\fi - \else - \eq@writeexheader % write the solution header 11/03/05 - \global\let\eq@writeexheader\@empty - \global\therearesolutionstrue\expandafter\procsoln - \fi - }% - \fi -\eq@next} -\def\endsolnexerhook{} -\def\endsolnexerhookaux{} -\def\eq@fititin{\noindent\unskip\nobreak\hfill\penalty50 - \hskip2em\hbox{}\nobreak\hfill} -\let\eqfititin=\eq@fititin -\newcommand\eqExerSolnTrailer -{% - \string\ReturnTo{page.\the\c@page}% - {\hbox{\if\exerstar*\exrtnlabelformatwp\else\exrtnlabelformat\fi}}% - \string\endeqEXt\ifeqforpaper\string\par\eqafterexersolnskip\fi^^J -} -\def\endsolnexer@woparts -{% - \if\currhideopt H% - \csname endprocsoln\endcsname - \else - \ifeq@solutionsafter - \eq@fititin\hbox{\exrtnlabelformat}% - \else - \endprocsoln - \eq@ckglobalhide - \ifeq@hidesolution\else - \endsolnexerhookaux - \set@display@protect - \immediate\write\verbatim@out{\eqExerSolnTrailer}% - \set@typeset@protect - \fi - \fi - \fi -\endsolnexerhook} -\let\eq@exerstarEnv\relax -\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise} -{\endexercise} -\def\exercise@parts{\@@par\ifdim\parskip>\z@\vskip-\parskip\fi - \def\exerwparts@cols{x}\@ifnextchar[% - {\let\endparts=\endexercise@parts@tabular\exercise@parts@tabular@}% - {\let\endparts=\endexercise@parts@list\exercise@parts@list}} -\def\eq@extralabelsep{0pt} -\newenvironment{exercise@parts@list} -{\settowidth{\eq@tmplength}{\normalfont(d)}% -\eq@nolinkfalse -\begin{list}{\normalfont - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \gdef\eq@writeexheader{% - \set@display@protect - \immediate\write\verbatim@out{\protect\eqEXt - \protect\exerSolnHeader{\exsecrunhead}% - {ex.\the@exno\alph{partno}}{\exsllabelformatwp}\relax}% - \set@typeset@protect - }% - \fi - \fi - \fi - \fi - \makebox[\eq@tmplength]{\eqexlisttabheader}% -}{% - \usecounter{partno}% - \setlength{\topsep}{3pt}% - \setlength{\partopsep}{0pt plus 1pt minus 1pt}% - \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% - \setlength{\listparindent}{\parindent}% - \settowidth{\labelsep}{\normalfont\ }% - \addtolength{\labelsep}{\eq@extralabelsep}% - \settowidth{\labelwidth}{\normalfont(d)}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \let\eq@item=\item - \def\item{\def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse% - \@ifnextchar[\@ckhide\eq@item}}% -}{\end{list}} -\def\exercise@parts@tabular@[#1]{% - \def\exerwparts@cols{#1}\exercise@parts@tabular} -\newenvironment{exercise@parts@tabular} -{% - \setcounter{partno}{0}% - \settowidth{\eq@tmplength}{\normalfont(d)\ }\sbox{\eq@tmpbox}{(d)}% - \let\eq@item=\item@part@tabular - \def\item{\eq@hidesolutionfalse\eq@nolinkfalse - \@ifnextchar[\@ckhide\eq@item}\eq@nolinkfalse - \eq@tmpdima=\linewidth \divide\eq@tmpdima by\exerwparts@cols - \vskip\partopsep\noindent\normalbaselines\tabcolsep=0pt - \begin{tabular}{*{\exerwparts@cols}{p{\eq@tmpdima}}}% -}{\end{tabular}} -\def\item@part@tabular{\leavevmode\refstepcounter{partno}% - \eq@solutionsafterfalse % no solutionsafter are allowed - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else\ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \gdef\eq@writeexheader{% - \set@display@protect - \immediate\write\verbatim@out{% - \protect\eqEXt\string\exerSolnHeader{\exsecrunhead}% - {ex.\the@exno\alph{partno}}{\exsllabelformatwp}\relax}% - \set@typeset@protect - }% - \fi\fi\fi - \PBS\raggedright - \settowidth{\eq@tmplength}{\normalfont(d)\ }% - \sbox{\eq@tmpbox}{\normalfont(d)}% - \eq@tmpdima=\wd\eq@tmpbox - \addtolength\eq@tmplength{\eq@extralabelsep}% - \hangindent=\eq@tmplength\hangafter=1\relax - \makebox[\eq@tmpdima]{\eqexlisttabheader}\ \ignorespaces -} -\def\@ckhide[#1]{\def\eq@arg{#1}% - \def\currhideopt{x}% - \if\eq@arg H% - \eq@hidesolutiontrue\eq@nolinktrue% - \edef\currhideopt{\Hidesymbol}% - \else - \ifeq@globalshowsolutions\else - \if\eq@arg h% - \eq@hidesolutiontrue\eq@nolinktrue% - \def\currhideopt{h}% - \fi - \fi - \fi - \eq@item -} -\def\includeexersolutions -{% - \include@solutions\let\include@solutions\relax -} -\let\eqsolutionshook\@empty -\let\priorexsectitle\@empty -\let\priorexslinput\@empty -\def\exerSolnsHeadnToc{\section*{\exsectitle}% - \addcontentsline{toc}{section}{% - \@ifundefined{web@latextoc}{}{% - \ifx\web@latextoc y\else - \protect\numberline{}\fi}\exsectitle}} -\newcommand{\exerSolnInput} -{% - \let\webnewpage=\relax - \ifsolutionsonly\else\immediate\closeout\ex@solns\fi - \ifeq@nosolutions\else - % changed from \exsecrunhead, 6/1/05 - \iftherearesolutions\ifsolutionsonly\else\newpage\fi - \markright{\exsectitle}% - \ifx\webnewpage\relax - \def\webnewpage{\let\webnewpage\newpage}% - \fi - \priorexsectitle\exerSolnsHeadnToc\priorexslinput - \InputIfFileExists{\jobname.sol}{}{\PackageWarning{exerquiz} - {!!! Solutions to exercises not found}}% - \eqsolutionshook - \fi - \fi -} -\def\include@solutions -{% - \exerSolnInput -} -\newcommand{\prior@questionsHook}{} -\let\qMark@Hook\@empty -\let\aeb@titleQuiz\@empty -\newcommand{\post@questionsHook}{} -\renewcommand{\theeqquestionnoi}{\arabic{eqquestionnoi}} -\newcommand{\labeleqquestionnoi}{% - \color{blue}\bfseries\theeqquestionnoi.} -\renewcommand{\theeqquestionnoii}{\alph{eqquestionnoii}} -\newcommand{\labeleqquestionnoii}{% - \color{blue}\bfseries(\theeqquestionnoii)} -\renewcommand{\theeqquestionnoiii}{\roman{eqquestionnoiii}} -\newcommand{\labeleqquestionnoiii}{% - \color{blue}\bfseries(\theeqquestionnoiii)} -\newenvironment{questions} -{% - \ifnum\@eqquestiondepth>\tw@\@toodeep\else - \advance\@eqquestiondepth\@ne\fi - \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% - \begin{list}{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}% - \global\let\eqQT=\eq@na\makebox[\labelwidth][r]{\normalfont\bfseries - \csname label\@quesctr\endcsname}% - \post@questionsHook}% - {\usecounter{\@quesctr}% - \settowidth{\labelwidth}{\normalfont\bfseries00.\ }% - \setlength{\topsep}{3pt}\setlength{\parsep}{0pt}% - \setlength{\itemindent}{0pt}\setlength{\itemsep}{3pt}% - \setlength{\leftmargin}{\labelwidth}% - \settowidth{\labelsep}{\ }}% -}{\end{list}} -\def\pushquestions{% - \expandafter\xdef\csname save\@quesctr\endcsname{% - \expandafter\the\csname c@\@quesctr\endcsname}% - \end{questions}} -\def\popquestions{% - \begin{questions} - \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}} -\def\sq@priorhook{\medskip\noindent} -\def\@shortquizCnt{0} -\def\@sqGenBaseName{eqSqBn\@shortquizCnt} -\newenvironment{shortquiz} -{% - {\count0=\@shortquizCnt \advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0}}% - \goodbreak\@ifstar{\gdef\sqstar{*}\@shortquiz}% - {\gdef\sqstar{}\@shortquiz}% -}{\aeb@endshortquiz} -\newenvironment{shortquiz*} -{% - {\count0=\@shortquizCnt\advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0 }}% - \gdef\sqstar{*}\@shortquiz -}{\aeb@endshortquiz} -\def\@shortquiz{\@ifnextchar[% - {\@@shortquiz}{\@@shortquiz[\@sqGenBaseName]}} -\def\@@shortquiz[#1]{%\begingroup - \gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}% - \global\let\eqQuizType=s\let\@qzsolndest\@empty - \if\sqstar*\relax - \let\@Ans\Ans@sq@f - \ifx\oField\@empty - \typeout{^^JExerquiz: Base field name required when using - shortquiz with '*' option} - \typeout{Exerquiz: Assuming link style^^J} - \let\@Ans\Ans@sq@l - \fi - \else - \let\@Ans\Ans@sq@l - \fi - \setcounter{questionno}{0}% - \let\answers\answers@sq - \let\endanswers\endanswers@sq - \let\manswers\manswers@sq - \let\endmanswers\endmanswers@sq - \let\solution\solution@sq - \let\endsolution\endsolution@sq - \sq@priorhook\sqlabel\space\ignorespaces -} -\def\aftershortquizskip{\medskip} -\def\aeb@endshortquiz{\setcounter{quizno}{0}% - \global\let\sqlabel=\eq@sqlabel - \global\let\sqslrtnlabel=\eq@sqslrtnlabel - \global\let\sqsllabel=\eq@sqsllabel - \par\aftershortquizskip -} -\def\sqLinks{\gdef\sqstar{}}\sqLinks{} -\def\sqForms{\gdef\sqstar{*}} -\let\eq@tq@star\relax -\def\solution@sq{\let\eq@next=\relax - \ifx\@qzsolndest\@empty - \typeout{exerquiz: * Solutions unexpected here *}% - \typeout{exerquiz: * Will assume 'solutionsafter' option *}% - \eq@solutionsaftertrue - \fi - \ifeq@solutionsafter - \par\smallskip\noindent - \sqsolafter - \else - \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns - \set@display@protect - \immediate\write\verbatim@out{% - \ifx\eqQuizType q\string\eqQt\else\string\eqSQt\fi% - \string\quizSolnHeader\ifx\eqQuizType q\ifx\allow@peek n% - [{\curr@quiz}{\currQuizStartPage}]\fi\fi% - {\@qzsolndest}{\sqsllabel}\relax}% - \set@typeset@protect - \expandafter\verbatimwrite\fi -} -\def\solutionsAfterSkip{\par\bigskip} -\def\endsolution@sq -{% - \ifeq@solutionsafter - \eq@fititin\hbox{\sqslrtnlabel}\solutionsAfterSkip - \else - \endverbatimwrite - \ifx\@qzsolndest\@empty\else\set@display@protect - \immediate\write\verbatim@out{\eqSqSolnTrailer}% - \set@typeset@protect - \fi - \fi - \global\let\@qzsolndest=\@empty -} -\def\fpAfterSolutionsSkip{\par\medskip} -\newcommand\eqSqSolnTrailer{% - \ifx\eqQuizType q% - \string\ReturnTo{page.\the\c@page}% - {\hbox{\sqslrtnlabel}}\string\endeqQt - \else - \string\ReturnTo{page.\the\c@page}% - {\hbox{\sqslrtnlabel}}\string\endeqSQt - \fi - \ifeqforpaper\string\fpAfterSolutionsSkip\fi^^J% -} -\let\eqSQt\relax -\let\endeqSQt\relax -\let\eqQt\relax -\let\endeqQt\relax -\newcommand\quizSolnHeader[3][]{% - \ifeqforpaper\else\webnewpage\fi\noindent - #2% - \solnhspace -} -\newif\iftherearequizsolutions \therearequizsolutionsfalse -\let\aeb@FLOverride\relax -\def\includequizsolutions -{% - \include@quizsolutions - \let\include@quizsolutions=\relax -} -\def\answers@sq{\stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride l - \let\@Ans\Ans@sq@l - \else - \let\@Ans\Ans@sq@f - \fi - \else - \if\aeb@FLOverride f - \let\@Ans\Ans@sq@f - \else - \let\@Ans\Ans@sq@l - \fi - \fi - \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\def\manswers@sq{\stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride l - \let\@An\Ans@ck@sq@f - \fi - \else - \if\aeb@FLOverride f - \let\@An\Ans@ck@sq@f - \else - \let\@Ans\Ans@ck@sq@l - \fi - \fi - \def\aeb@answerType{c}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\let\sq@hwdest\@empty % hard-wired destination -\def\answers@@sq[#1]#2{% - \gdef\aeb@numCols{#2}% - \ifx\sq@hwdest\@empty - \xdef\@qzsolndest{#1}% - \else - \gdef\@qzsolndest{\sq@hwdest}% - \fi - \ifx#21\gdef\eq@listType{1}\expandafter\answers@sq@list\else - \gdef\eq@listType{0}\expandafter\answers@@sq@tabular\fi{#2}% -} -\def\eq@hspanner{\ } -\def\eq@hspanner@default{\ } -\def\eq@lw@l{\eq@l@l\eq@hspanner} -\def\setMClabelsep#1{\def\eq@hspanner{#1}} -\def\resetMClabelsep{\let\eq@hspanner\eq@hspanner@default} -\def\eq@l@l{\normalsize\normalfont(d)} -\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner} -\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}% - \xdef\Ans@choice{#2}\item\relax\if\eq@listType1% - \addtocounter{quizno}{-1}\refstepcounter{quizno}\fi} -\newenvironment{answers@sq@list}[1] -{% - \if\aeb@answerType r - \let\endanswers=\endanswers@sq@list - \else - \let\endmanswers=\endanswers@sq@list - \fi - \vskip\aboveanswersSkip - \begin{list}{\strut\@Ans}%\begin{list}{\strut\@Ans\ } - {% - \if\sqstar*\relax - \settowidth{\labelwidth}{\eq@lw@f}% - \else - \settowidth{\labelwidth}{\eq@lw@l}% - \fi - \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% - \setlength{\topsep}{0pt}\setlength{\partopsep}{0pt}% - \setlength{\listparindent}{\parindent}% - \setlength{\leftmargin}{\labelwidth}% - \setlength{\labelsep}{0pt}% - \def\Ans{\Ans@list}% - }% -}% -{\end{list}\setcounter{quizno}{0}} -\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}% - \xdef\Ans@choice{#2}\leavevmode\@Ans -} -\def\answers@@sq@tabular#1{% - \vskip\aboveanswersSkip\noindent\tabcolsep=0pt - \eq@tmpdima=\linewidth \divide \eq@tmpdima by#1 % - \def\Ans{\Ans@tabular}% - \begin{tabular}{*{#1}{p{\eq@tmpdima}}}}% -\def\endanswers@sq{\end{tabular}\setcounter{quizno}{0}}% -\def\endmanswers@sq{\end{tabular}\setcounter{quizno}{0}}% -\def\popiiictm{\special{CTM: pop pop pop}} -\def\linkContentFormat{% - \if\probstar*\arabic{quizno}\else\alph{quizno}\fi} -\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\Ans@sq@l{% - \leavevmode\if\eq@listType1\stepcounter{quizno}% - \else\refstepcounter{quizno}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \Ans@sq@l@driver -\eq@hspanner\ignorespaces} -\let\Ans@ck@sq@l=\Ans@sq@l -\def\Ans@sq@f{% - \if\eq@listType1\stepcounter{quizno}% - \else\refstepcounter{quizno}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \insertGrayLetters % 6.3d - \Ans@sq@f@driver -\eq@hspanner\ignorespaces} -\let\Ans@ck@sq@f=\Ans@sq@f -\newskip\aboveanswersSkip -\setlength\aboveanswersSkip{3pt} -\def\insertGrayLetters{\ifaebshowgrayletters - \rlap{\makebox[\RadioFieldSize]% - {\textcolor{gray}{\Alph{quizno}}}}\else\relax\fi} -\newcount\eq@tabColCnt -\define@key{bchoice}{nCols}{\def\bChoiceNumCols{#1}} -\@for\eqi:=1,2,3,4,5,6,7,8,9,10 \do{\edef\temp@expand@def{% - \noexpand\define@key{bchoice}{\eqi}[\eqi]{% - \noexpand\def\noexpand\bChoiceNumCols{\eqi}}% - }\temp@expand@def -} -\def\bChoiceNumCols{\aeb@numCols} -\define@key{bchoice}{random}[true]{% - \csname if#1\endcsname\eq@randomizeChoicestrue - \else\eq@randomizeChoicesfalse\fi -} -\def\bChoices{\@ifnextchar[{\@ansChoices}{\@ansChoices[\aeb@numCols]}} -\def\@ansChoices[#1]% -{% - \setkeys{bchoice}{#1}% - \global\eq@tabColCnt=0 - \ifnum\aeb@numCols=1 % list mode - \def\eq@next{\@layoutListAns}% - \else % tabular mode - \def\eq@next{\@layoutTabularAns{\bChoiceNumCols}}% - \fi - \eq@next -} -\let\eChoices\relax -\def\@layoutListAns{\@ifnextchar\Ans{\@getListAns}% - {\@lookforendansChoices{\@layoutListAns}}% -} -\long\def\@getListAns\Ans#1\eAns{% - \Ans#1\vspace{\@rowskip}% - \@layoutListAns -} -\long\def\@lookforendansChoices#1{% - \@ifnextchar\eChoices{\rowsep{\rowsep@default}% - \expandafter\@findendans\@gobble}{\expandafter#1\@gobble}% -} -\def\@layoutTabularAns#1{% - \let\eq@tabSep=\@empty - \xdef\numShortCols{#1}% - \ifnum#1>\aeb@numCols \xdef\numShortCols{\aeb@numCols}\fi - \@@layoutTabularAns -} -\def\@@layoutTabularAns{% - \@ifnextchar\Ans{\@getTabAns}% - {\@lookforendansChoices{\@@layoutTabularAns}}% -} -\def\rowsep#1{\gdef\@rowsep{[#1]}\gdef\@rowskip{#1}}% - \rowsep{\rowsep@default} -\def\rowsepDefault#1{\def\rowsep@default{#1}} -\def\rowsep@default{0pt} -\long\def\@getTabAns\Ans#1\eAns{% - \global\advance\eq@tabColCnt1 - \let\@save@tabSep=\eq@tabSep - \ifnum\eq@tabColCnt=\numShortCols - \global\eq@tabColCnt=0 - \xdef\eq@tabSep{\noexpand\\\noalign{\kern\@rowskip\relax}}% - \else - \gdef\eq@tabSep{&}% - \fi - \@ifnextchar\eChoices{\@save@tabSep\Ans#1\rowsep{\rowsep@default} - \expandafter\@findendans\@gobble}% - {\@save@tabSep\Ans#1\@@layoutTabularAns}% -} -\def\@findendans{\@ifnextchar\end{}{\expandafter\@findendans\@gobble}} -\def\graylettersOn{\aebshowgrayletterstrue} -\def\graylettersOff{\aebshowgraylettersfalse} -\def\aeb@exiii{\expandafter\expandafter\expandafter} -\def\REF{\@ifstar{\aeb@REFstar}{\aeb@REF}} -\def\aeb@REFstar#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref*{#1}\fi}% -} -\def\aeb@REF#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref{#1}\fi}% -} -\def\aeb@buildUpperCaseRef#1{% - \xdef\tmp@expand{\aeb@exiii\@firstoftwo\csname r@#1\endcsname}% - \xdef\tmp@expand{\uppercase{\tmp@expand}}\tmp@expand -} -\endinput -%% -%% End of file `eqexam.def'. diff --git a/Master/texmf-dist/tex/latex/eqexam/eqexam.sty b/Master/texmf-dist/tex/latex/eqexam/eqexam.sty deleted file mode 100644 index 3b6a403a6e2..00000000000 --- a/Master/texmf-dist/tex/latex/eqexam/eqexam.sty +++ /dev/null @@ -1,1755 +0,0 @@ -%% -%% This is file `eqexam.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eqexam.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eqExam.sty package, 2005-02-05 %% -%% Copyright (C) 2005 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{eqexam} - [2009/09/28 v1.9a An Exam Construction Package (dps)] -\usepackage{keyval} -\DeclareOption{myconfig}{\AtEndOfPackage{\eqemyconfig}} -\DeclareOption{myconfigi}{\AtEndOfPackage{\eqemyconfigi}} -\DeclareOption{myconfigii}{\AtEndOfPackage{\eqemyconfigii}} -\DeclareOption{pointsonleft}{\AtEndOfPackage{\PointsOnLeft}} -\DeclareOption{pointsonright}{\AtEndOfPackage{\PointsOnRight}} -\DeclareOption{nopoints}{\AtEndOfPackage{\NoPoints}} -\DeclareOption{totalsonleft}{\AtEndOfPackage{\TotalsOnLeft}} -\DeclareOption{totalsonright}{\AtEndOfPackage{\TotalsOnRight}} -\DeclareOption{pointsonboth}{\AtEndOfPackage{\PointsOnBothSides}} -\DeclareOption{nototals}{\AtEndOfPackage{\NoTotals}} -\DeclareOption{noparttotals}{\AtEndOfPackage{\let\eq@parttotals=n}} -\DeclareOption{noseparationrule}{% - \AtEndOfPackage{\let\separationrule\relax}} -\DeclareOption{nosummarytotals}{\let\eq@nosummarytotals=y} -\DeclareOption{coverpage}{\def\eqex@coverpage{\eqexcoverpage}} -\DeclareOption{nospacetowork}{% - \AtEndOfPackage{\let\eq@insertverticalspace=n}} -\newif\ifanswerkey \answerkeyfalse -\DeclareOption{answerkey}{\answerkeytrue\eq@proofingtrue - \eq@solutionsaftertrue} -\DeclareOption{useforms}{\AtEndOfPackage{\def\sqstar{*}}} -\DeclareOption{online}{\let\eq@online=y\ExecuteOptions{links}} -\DeclareOption{pdf}{\let\load@web=y} -\DeclareOption{links}{\let\load@web=y\let\load@exerquiz=y} -\DeclareOption{email}{\let\use@email=y\ExecuteOptions{online}} -\newif\ifeqobeylocalversion\eqobeylocalversionfalse -\DeclareOption{obeylocalversions}{\eqobeylocalversiontrue} -\DeclareOption{usexkv}{\let\eq@usexkeys=y} -\let\eq@usexkeys=n -\DeclareOption{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}} -\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def} - {\typeout{inputting aebrandom.def}}{cannot find aebrandom.def}} -\let\eq@online=n -\let\use@email=n -\let\load@web=n -\let\load@exerquiz=n -\def\sqstar{} -\def\sqLinks{\def\sqstar{}} -\def\sqForms{\def\sqstar{*}} -\def\NoSpaceToWork{\let\eq@insertverticalspace=n} -\def\SpaceToWork{\let\eq@insertverticalspace=y} -\let\eq@nototals=n -\let\eq@nosummarytotals=n -\let\eq@parttotals=y -\let\eqx@separationrule=y -\let\eq@insertverticalspace=y -\let\eqex@coverpage=\relax -\def\@reportpoints{0} -\let\marginpoints=\@empty -\let\totalsbox=\hfil -\DeclareOption{forpaper}{\eqforpapertrue - \PassOptionsToPackage{monochrome}{\eq@ColorPackage}} -\DeclareOption{forcolorpaper}{\eqforpapertrue} % for print -\DeclareOption{preview}{\previewtrue} -\DeclareOption{nosolutions}{\eq@nolinktrue\eq@nosolutionstrue} -\DeclareOption{nohiddensolutions}{\eq@globalshowsolutionstrue} -\DeclareOption{noHiddensolutions}% - {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}} -\DeclareOption{solutionsafter}{\eq@solutionsaftertrue} -\DeclareOption{solutionsonly}{\solutionsonlytrue\answerkeytrue - \AtEndOfPackage{\therearesolutionstrue\let\exerSolnsHeadnToc\relax}} -\DeclareOption{proofing}{\eq@proofingtrue} -\newif\ifaebshowgrayletters\aebshowgraylettersfalse -\DeclareOption{showgrayletters}% - {\AtEndOfPackage{\aebshowgrayletterstrue}} -\IfFileExists{xcolor.sty}% -{\def\eq@ColorPackage{xcolor}\PassOptionsToPackage{xcolor}{table}} -{\def\eq@ColorPackage{color}} -\DeclareOption{noxcolor}{\def\eq@ColorPackage{color}} -\def\eq@drivernum{5} -\def\eqDriverName{dvipsone} -\DeclareOption{dvipsone}{\def\eq@drivernum{0}\def\eqDriverName{dvipsone} - \PassOptionsToPackage{\eq@ColorPackage}{dvipsone}} -\DeclareOption{dvips}{\def\eq@drivernum{0}\def\eqDriverName{dvips} - \PassOptionsToPackage{\eq@ColorPackage}{dvips}} -\DeclareOption{pdftex}{\def\eq@drivernum{1}\def\eqDriverName{pdftex} - \PassOptionsToPackage{\eq@ColorPackage}{pdftex}} -\DeclareOption{dvipdfm}{\def\eq@drivernum{2}\def\eqDriverName{dvipdfm} - \PassOptionsToPackage{\eq@ColorPackage}{dvipdfm}} -\DeclareOption{textures}{\def\eq@drivernum{3}\def\eqDriverName{textures} - \PassOptionsToPackage{\eq@ColorPackage}{textures}} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}} -\@ifpackageloaded{xcolor}% -{% - \@ifpackagelater{xcolor}{2004/07/04}{} - {% - \PackageError{eqexan}{% - *************************************************\MessageBreak - * Your Version of `xcolor.sty' is too old!\MessageBreak - * You need the version from 2004/07/04 or newer\MessageBreak - * or use: \string\usepackage[noxcolor]{eqexam}\MessageBreak - * or \string\documentclass[noxcolor]{article}\MessageBreak - *************************************************}{}% - }% -}{} -\newif\ifeq@solutionsafter \eq@solutionsafterfalse -\newif\ifsolutionsonly\solutionsonlyfalse -\newif\ifeq@hidesolution \eq@hidesolutionfalse -\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse -\newif\ifeq@nosolutions \eq@nosolutionsfalse -\newif\ifeq@proofing \eq@proofingfalse -\newif\ifeq@nolink \eq@nolinkfalse -\newif\ifpreview \previewfalse -\newif\ifeqforpaper \eqforpaperfalse -\def\eqemyconfig{\InputIfFileExists{eqexam.cfg}{}{}} -\def\eqemyconfigi{\InputIfFileExists{eqexami.cfg}{}{}} -\def\eqemyconfigii{\InputIfFileExists{eqexamii.cfg}{}{}} -\InputIfFileExists{web.cfg}{}{} -\InputIfFileExists{eqecus.opt}{}{} -\ProcessOptions -\let\savedeq@online\eq@online -\let\savedifeq@solutionsafter\ifeq@solutionsafter -\let\savedifeq@hidesolution\ifeq@hidesolution -\let\savedifeq@globalshowsolutions\ifeq@globalshowsolutions -\let\savedifeq@nosolutions\ifeq@nosolutions -\let\savedifeq@proofing\ifeq@proofing -\let\savedifeq@nolink\ifeq@nolink -\let\savedifpreview\ifpreview -\let\savedifeqforpaper\ifeqforpaper -\let\ifnosolutions\ifeq@nosolutions -\RequirePackage{amstext,amssymb} -\RequirePackage{comment} -\@ifpackageloaded{web}{\let\load@web=y} -{% - \ifx\load@web y - \ifnum\eq@drivernum=5 - \PackageError{eqexam}{****You have not selected a driver % - for eqExam****}{Specify dvipsone, dvips, pdftex, % - dvipdfm or textures in option list.} - \fi - \RequirePackage[\eqDriverName]{web} - \edef\@pdfcreator{\@pdfcreator, The eqExam Package} - - \fi -} -\@ifpackageloaded{exerquiz}{\let\load@exerquiz=y} -{% - \ifx\load@exerquiz y - \RequirePackage[nodljs]{exerquiz}[2005/1/23] - \let\importdljs=y - \let\execjs=y - \fi -} -\def\eqDvipsone{dvipsone} -\ifx\eqDriverName\eqDvipsone -\@ifpackageloaded{hyperref} - {\renewcommand\@pdfviewparams{ null null null}}{} -\fi -\let\eq@online\savedeq@online -\let\ifeq@solutionsafter\savedifeq@solutionsafter -\def\ifsolutionsafter{\ifeq@solutionsafter} % user interface -\let\ifeq@hidesolution\savedifeq@hidesolution -\let\ifeq@globalshowsolutions\savedifeq@globalshowsolutions -\let\ifeq@nosolutions\savedifeq@nosolutions -\let\ifeq@proofing\savedifeq@proofing -\let\ifeq@nolink\savedifeq@nolink -\let\ifpreview\savedifpreview -\let\ifeqforpaper\savedifeqforpaper -\RequirePackage{\eq@ColorPackage} -\RequirePackage{calc} -\RequirePackage{pifont} -\RequirePackage{verbatim} -\RequirePackage{multicol} -\setlength\columnseprule{.4pt} -\raggedcolumns\multicolsep=3pt -\setlength{\headsep}{0pt} -\settowidth{\oddsidemargin}{\normalsize\normalfont\bfseries00.\ } -\setlength{\evensidemargin}{0pt} -\setlength{\marginparsep}{11pt} -\setlength{\marginparwidth}{35pt} -\setlength{\headheight}{12pt} -\setlength{\topmargin}{-.5in} -\setlength{\headsep}{20pt} -\setlength{\footskip}{\marginparsep} -\def\eqExamPageLayout -{% - \setlength\textwidth\paperwidth - \addtolength{\textwidth}{-2in} - \addtolength{\textwidth}{-\oddsidemargin} - \setlength\textheight{\paperheight} - \addtolength\textheight{-2in} - \addtolength\textheight{-\headheight} - \addtolength\textheight{-\headsep} - \addtolength\textheight{-\topmargin} - \addtolength\textheight{-\footskip} -} -\eqExamPageLayout -\newcommand{\ps@eqExamheadings} -{% - \renewcommand{\@oddhead}{% - {% - \normalfont\normalsize - \ifnum\value{page}=1 \hfil - \else - \ifx\eqex@coverpage\relax - \eqExamRunHead - \else - \ifnum\value{page}=2 \hfil - \else - \eqExamRunHead - \fi - \fi - \fi - }% -} -\renewcommand{\@evenhead}{\@oddhead} -\renewcommand{\@oddfoot}{\settotalsbox} -\renewcommand{\@evenfoot}{\@oddfoot}} -\raggedbottom -\newcounter{eqpointsofar} -\newcounter{eqpointsthispage} -\newcounter{eq@numparts} -\newcounter{eq@count} -\newtoks\partNames \partNames={} -\newlength{\eq@tmplengthA} -\newbox{\eq@pointbox} -\newlength{\eq@pointboxtotalheight} -\newlength{\eqetmplengtha} -\newlength{\eqetmplengthb} -\def\eqbothmargins#1#2{\eqleftmargin{#1}{#2}\eqrightmarginbox{#1}{#2}} -\def\PointsOnLeft{\def\@reportpoints{1}\let\marginpoints=\eqleftmargin} -\def\PointsOnRight{\def\@reportpoints{2}\relax - \let\marginpoints=\eqrightmarginbox} -\def\PointsOnBothSides{\def\@reportpoints{3}\relax - \let\marginpoints=\eqbothmargins} -\def\NoPoints{\def\@reporttotals{0}\let\totalsbox=\hfil - \let\marginpoints=\@empty\let\eq@nosummarytotals=y} -\def\TotalsOnLeft{\def\@reporttotals{1}\def\totalsbox{\totalsboxleft}} -\def\TotalsOnRight{\def\@reporttotals{2}\def\totalsbox{\totalsboxright}} -\def\NoTotals{\def\@reporttotals{0}\let\totalsbox=\hfil} -\def\eoeTotalOff{\let\eq@parttotals=n} -\def\eoeTotalOn{\let\eq@parttotals=y} -\def\separationruleOn{\let\eqx@separationrule=y} -\def\separationruleOff{\let\eqx@separationrule=n} -\def\encloseProblemsWith#1{\ifsolutionsonly - \excludecomment{#1}\else - \includecomment{#1}\fi -} -\providecommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}} -\proofingsymbolColor{red} -\providecommand{\instructionsColor}[1]{\def\@instructionsColor{#1}} -\instructionsColor{blue} -\providecommand{\eqCommentsColor}[1]{\def\@eqCommentsColor{#1}} -\eqCommentsColor{blue} -\providecommand{\universityColor}[1]{\def\webuniversity@color{#1}} -\universityColor{blue} -\providecommand{\titleColor}[1]{\def\webtitle@color{#1}} -\titleColor{black} -\providecommand{\authorColor}[1]{\def\webauthor@color{#1}} -\authorColor{black} -\providecommand{\subjectColor}[1]{\def\websubject@color{#1}} -\subjectColor{blue} -\providecommand{\linkcolor}[1]{\def\@linkcolor{#1}} -\linkcolor{blue} -\providecommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}} -\nolinkcolor{blue} -\def\examNum#1{\def\nExam{#1}} -\examNum{1} -\def\Exam{\ifAB{\eq@VersionAtext}{\eq@VersionBtext}} -\def\sExam{\ifAB{\eq@shortVersionAtext}{\eq@shortVersionBtext}} -\def\VersionAtext#1{\def\eq@VersionAtext{#1}} -\def\VersionBtext#1{\def\eq@VersionBtext{#1}} -\def\shortVersionAtext#1{\def\eq@shortVersionAtext{#1}} -\def\shortVersionBtext#1{\def\eq@shortVersionBtext{#1}} -\VersionAtext{Exam~\nExam--Version A} -\VersionBtext{Exam~\nExam--Version B} -\shortVersionAtext{Exam~\nExam A} -\shortVersionBtext{Exam~\nExam B} -\newtoks\eqtemptokena -\newtoks\eqtemptokenb -\def\numVersions#1{\ifnum#1>26\def\eq@nVersions{26}% - \PackageWarning{eqexam}{The value of \string\numVersions is too - large. \MessageBreak Choose a natural number less than 27.} - \else\def\eq@nVersions{#1}\fi} -\def\longTitleText -{% - \setcounter{eq@count}{0} - \eqtemptokena={} - \let\endtitleMarker\endlongTitleText - \@gatherTitleText{\Exam} -} -\def\endlongTitleText{l} -\def\shortTitleText -{% - \setcounter{eq@count}{0} - \eqtemptokena={} - \let\endtitleMarker\endshortTitleText - \@gatherTitleText{\sExam} -} -\def\endshortTitleText{s} -\def\@gatherTitleText#1#2{% - \def\eqe@argii{#2} - \if\endtitleMarker\eqe@argii - \ifnum\value{eq@count}>\eq@nVersions\let\eq@next\relax - \else\def\eq@next{\eq@shortTitlesFix{#1}}\fi - \else - \stepcounter{eq@count} - \eqtemptokenb=\expandafter{#2} - \xdef#1{\the\eqtemptokena\expandafter\noexpand - \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}} - \xdef\sExam{\the\eqtemptokena\expandafter\noexpand - \csname v\Alph{eq@count}\endcsname{\the\eqtemptokenb}} - \eqtemptokena=\expandafter{#1} - \ifnum\value{eq@count}<\eq@nVersions - \def\eq@next{\@gatherTitleText{#1}}% - \else - \def\eq@next{% - \if\endtitleMarker\endlongTitleText - \expandafter\eqe@absorbTokensLong - \else - \expandafter\eqe@absorbTokensShort - \fi - }% - \fi - \fi - \eq@next -} -\long\def\eqe@absorbTokensLong#1\endlongTitleText{} -\long\def\eqe@absorbTokensShort#1\endshortTitleText{} -\def\eq@shortTitlesFix#1{% - \PackageWarning{eqexam}{You have defined an insufficient number - of titles for the number of versions declared in - \string\numVersions. Please fix the problem}% - \stepcounter{eq@count}% - \if\endtitleMarker\endlongTitleText - \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1} - {??---Title \# \the\value{eq@count}---??}% - \noexpand\endlongTitleText} - \else - \edef\eqe@tmp{\noexpand\@gatherTitleText{\noexpand#1} - {T\#\the\value{eq@count}??}\noexpand\endshortTitleText} - \fi - \addtocounter{eq@count}{-1}% - \eqe@tmp -} -\def\ifAB#1#2{\if\eq@selectedVersion A#1% - \else\if\eq@selectedVersion B#2% -\fi\fi} -\def\eq@replaceToken#1{#1} -\newif\ifeqglobalversion \eqglobalversionfalse -\newif\ifeqlocalversion \eqlocalversionfalse -\newif\if@templocalversion \@templocalversionfalse -\def\eqe@initializeMultiVersions{% - \let\save@message\message\let\message\@gobble - \@tfor\eqe@tmp:=ABCDEFGHIJKLMNOPQRSTUVWXYZ\do{% - \expandafter\let\csname v\eqe@tmp\endcsname\@gobble - \expandafter\excludecomment\expandafter{ver\eqe@tmp}% - \expandafter\let\csname Afterver\eqe@tmp Comment\endcsname\relax - }\let\message\save@message -} -\AtBeginDocument{\let\eqe@initializeMultiVersions\relax} -\def\forVersion#1% -{% - \eqe@initializeMultiVersions - \global\eqglobalversiontrue - \setcounter{eq@count}{0} - \uppercase{\def\eq@selectedVersion{#1}} - \@ifundefined{eq@nVersions}{\PackageInfo{eqexam}{% - \string\numVersions\space has not been declared, \MessageBreak - taking the number of versions to be 2.}\def\eq@nVersions{2}}{} - \loop - \stepcounter{eq@count} - \expandafter\if\Alph{eq@count}\eq@selectedVersion - \xdef\eq@nSelectedVersion{\the\value{eq@count}}% - \setcounter{eq@count}{27}\fi - \ifnum\value{eq@count}<26\repeat - \ifnum\eq@nSelectedVersion >\eq@nVersions - \PackageError{eqexam} - {The value of \string\forVersion - \space(\eq@selectedVersion)\MessageBreak - exceeds the value of \string\numVersions\space - (\eq@nVersions)} - {Decrease the value of \string\forVersion.} - \fi - \setcounter{eq@count}{0} - \let\save@message\message\let\message\@gobble - \loop - \stepcounter{eq@count} - \expandafter - \let\csname After\Alph{eq@count}Comment\endcsname\relax - \lowercase - {% - \if#1\alph{eq@count} - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@empty - \else - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@gobble - \fi - \if#1\alph{eq@count} - \edef\eq@next - {\noexpand\includecomment{ver\Alph{eq@count}}} - \else - \edef\eq@next - {\noexpand\excludecomment{ver\Alph{eq@count}}} - \fi - }\eq@next - \ifnum\value{eq@count}<\eq@nVersions\repeat - \let\message\save@message -} -\AtEndOfPackage{\numVersions{26}\forVersion{A}} -\def\selectVersion#1#2% 1 \le #1 \le #2 -{% - \gdef\nLocalSelection{#1}% - \gdef\nLocalVersions{#2}% - \ifeqglobalversion\ifnum\eq@nSelectedVersion>\nLocalVersions - {\count0=\eq@nSelectedVersion \count2=\count0 - \advance\count0by-1 \divide\count0by\nLocalVersions - \multiply\count0by\nLocalVersions \count2=\eq@nSelectedVersion - \advance\count2by-\count0 - \xdef\nLocalSelection{\the\count2\relax}% - \ifeqobeylocalversion\else - \global\@templocalversiontrue - \global\eqobeylocalversiontrue - \fi}% - \fi\fi - \ifeqobeylocalversion - \global\eqlocalversiontrue - \setcounter{eq@count}{0} - \ifx\nLocalSelection\@empty\def\nLocalSelection{1}\fi - \let\save@message\message\let\message\@gobble - \loop - \stepcounter{eq@count}\expandafter - \let\csname Afterver\Alph{eq@count}Comment\endcsname\relax - \lowercase - {% - \ifnum\value{eq@count}=\nLocalSelection - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@empty - \else - \expandafter\let - \csname v\Alph{eq@count}\endcsname\@gobble - \fi - \ifnum\value{eq@count}=\nLocalSelection - \edef\eq@next{% - \noexpand\includecomment{ver\Alph{eq@count}}} - \else - \edef\eq@next{% - \noexpand\excludecomment{ver\Alph{eq@count}}} - \fi - }\eq@next - \ifnum\value{eq@count}<\nLocalVersions\repeat - \let\message\save@message - \fi - \if@templocalversion\global\eqobeylocalversionfalse\fi -} -\@ifpackageloaded{web}{} -{ - \def\title{\@ifnextchar[{\@title}{\@title[\@empty]}} - \def\@title[#1]#2{\gdef\webtitle{#2}% - \ifx#1\@empty\gdef\shortwebtitle{#2}% - \else\gdef\shortwebtitle{#1}\fi} - \def\subject{\@ifnextchar[{\@subject}{\@subject[\@empty]}} - \def\@subject[#1]#2{\gdef\websubject{#2}% - \ifx#1\@empty\gdef\shortwebsubject{#2}% - \else\gdef\shortwebsubject{#1}\fi} - \def\author#1{\gdef\webauthor{#1}} - \def\email#1{\gdef\webemail{#1}} - \def\keywords#1{\gdef\webkeywords{#1}} - \def\university#1{\gdef\webuniversity{#1}} - \def\web@versionlabel{Version} - \def\web@toc{Table of Contents} - \def\web@continued{cont.} - \title{}\author{}\email{}\subject{}\keywords{}\university{} - \def\optionalpagematter{} -} -\def\duedate#1{\def\theduedate{#1}} -\duedate{} -\def\duedate#1{\def\theduedate{#1}} -\duedate{} -\newcommand\thisterm -{% - \ifnum\the\month<6 - Spring% - \else - \ifnum\the\month<8 - Summer% - \else - % August or later - \ifnum\the\month>8 - % September or later - Fall% - \else - % month of August - \ifnum\the\day>25 - Fall% - \else - Summer% - \fi - \fi - \fi - \fi -} -\newcommand\examNameLabel[1]{\gdef\@examNameLabel{#1}} -\examNameLabel{Name:} -\newcommand\eqExamName[2][]{\gdef\eq@ExamName{% - \bgroup\settowidth\eq@tmplengthA{\@examNameLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examNameLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.Name}% - \egroup}% -} -\eqExamName[\Ff\FfRequired]{2.25in} -\newcommand\examSIDLabel[1]{\gdef\@examSIDLabel{#1}} -\examSIDLabel{SID:} -\newcommand\eqSID[2][]{\gdef\eq@SID{% - \bgroup\settowidth\eq@tmplengthA{\@examSIDLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examSIDLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.SID}% - \egroup}% -} -\eqSID[\Ff\FfRequired]{2.25in} -\newcommand\examEmailLabel[1]{\gdef\@examEmailLabel{#1}} -\examEmailLabel{Email:} -\newcommand\eqEmail[2][]{\gdef\eq@Email{% - \bgroup\settowidth\eq@tmplengthA{\@examEmailLabel\ }% - \@tempdima=#2 \advance\@tempdima by-\eq@tmplengthA - \underbar{\makebox[#2][l]{\@examEmailLabel}}% - \insTxtFieldIdInfo[#1]{\@tempdima}{IdInfo.email}% - \egroup}% -} -\eqEmail{2.25in} -\def\insTxtFieldIdInfo[#1]#2#3{% - \@ifundefined{@quiz}{}{\ifx\eq@online y\relax - \ifeq@nosolutions\ifeq@solutionsafter\else - \makebox[0pt][r]{\textField[\BC{}#1]{#3}{#2}{11bp}}% - \fi\fi\fi - }% -} -\def\SubmitInfo#1#2{% - \def\EqExam@SubmitURL{#1}\def\@EmailInstr{#2}% -} -\def\EmailCourseName#1{\def\@EmailCourseName{#1}} -\EmailCourseName{\websubject} -\def\EmailExamName#1{\def\@EmailExamName{#1}} -\EmailExamName{\webtitle} -\def\EmailSubject#1{\def\@EmailSubject{#1}} -\EmailSubject{} -\def\ServerRetnMsg#1{\def\@ServerRetnMsg{#1}} -\ServerRetnMsg{} -\def\SubmitButtonLabel#1{\def\@SubmitButtonLabel{#1}} -\SubmitButtonLabel{Submit} -\let\priorSubmitJS\@gobble -\let\postSubmitJS\@empty -\def\SubmitButton -{% - \ifx\use@email y\ifeq@nosolutions\ifeq@solutionsafter\else - \makebox[0pt][l]{\pushButton - [\CA{\@SubmitButtonLabel}\A{\JS{% - var _eqEok2Submit = true;\r - var aSubmitFields = new Array("eqexam", "IdInfo");\r - \priorSubmitJS\r - if(_eqEok2Submit) this.submitForm("\EqExam@SubmitURL", - true, false, aSubmitFields);\r - \postSubmitJS - }}]{Submit}{1.5in}{16bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailInstr} - \V{\@EmailInstr}]{IdInfo.mailTo}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailCourseName} - \V{\@EmailCourseName}]{IdInfo.courseName}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailExamName} - \V{\@EmailExamName}]{IdInfo.examName}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@EmailSubject} - \V{\@EmailSubject}]{IdInfo.subject}{11bp}{11bp}}% - \makebox[0pt][l]{\textField[\F\FHidden\DV{\@ServerRetnMsg} - \V{\@ServerRetnMsg}]{IdInfo.retnmsg}{11bp}{11bp}}% - \fi\fi\fi -} -\def\thequizno{\if\probstar*\arabic{quizno}\else\alph{quizno}\fi} -\def\linkContentFormat{% - \if\probstar*\arabic{quizno}\else\alph{quizno}\fi} -\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\eqExam@Ans@sq@l{% - \leavevmode\stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \edef\fieldName{\if\probstar*% - eqexam.\curr@quiz.\theeqquestionnoi.part\alph{partno}\else - eqexam.\curr@quiz.\theeqquestionnoi\fi - }% - \ifx\eq@online y\relax - \makebox[0pt][l]{\radio@@Button{}{\fieldName}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% - {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}% - \else - \edef\@linkcolor{\@nolinkcolor}% - \fi - \ifeq@nosolutions\edef\@linkcolor{\@nolinkcolor}\fi - \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}% - \Ans@proofing{\eq@tmpdima}% -} -\def\eqExam@Ans@sq@f{% - \stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \ifx\eq@online n\previewtrue - \Ans@sq@f@driver - \else - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno} - \else - eqexam.\curr@quiz.\theeqquestionnoi - \fi - }\insertGrayLetters - \radio@@Button{}{\fieldName}{\RadioFieldSize}% - {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton - \every@sqRadioButton}% - \fi - \Ans@proofing{\RadioFieldSize}% -} -\def\eqExam@Ans@ck@sq@l{% - \leavevmode\stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno}.\alph{quizno} - \else - eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno} - \fi - }% - \ifx\eq@online y\relax - \makebox[0pt][l]{\check@@Box{}{\fieldName}% - {\eq@tmpdima}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@l@check@driver}% - {\Ans@r@l@Defaults\every@RadioButton\every@qRadioButton}}% - \else - \def\@linkcolor{blue}% - \fi - \ifeq@nosolutions\def\@linkcolor{blue}\fi - \textcolor{\@linkcolor}{\makebox[\eq@tmpdima]{\link@@Content}}% - \Ans@proofing{\eq@tmpdima}% -} -\def\eqExam@Ans@ck@sq@f{% - \stepcounter{quizno}\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \ifx\eq@online n\previewtrue - \Ans@sq@f@driver - \else - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.\theeqquestionnoi.% - part\alph{partno}.\alph{quizno} - \else - eqexam.\curr@quiz.\theeqquestionnoi.\alph{quizno} - \fi - }% - \check@@Box{}{\fieldName}{\RadioFieldSize}% - {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton - \every@sqRadioButton}% - \fi - \Ans@proofing{\RadioFieldSize}% -} -\def\eqExamPriorVspace#1{\edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.% - \theeqquestionnoi.part\alph{partno}.solution - \else - eqexam.\curr@quiz.\theeqquestionnoi.solution - \fi - }% - \nobreak\textField[\Ff\FfMultiline\BC{}] - {\fieldName}{\linewidth}{#1}% - \@gobble -} -\@ifpackageloaded{exerquiz}{% - \let\Ans@sq@l\eqExam@Ans@sq@l - \let\Ans@sq@f\eqExam@Ans@sq@f - \let\Ans@ck@sq@l\eqExam@Ans@ck@sq@l - \let\Ans@ck@sq@f\eqExam@Ans@ck@sq@f - \def\eqexheader@wrapper{\makebox[0pt][r]{% - \hypertarget{qex.\the@exno}{\eqexheader}}} - \ifx\eq@online y\relax - \newcounter{@cntfillin} - \let\eqPriorVspace=\eqExamPriorVspace - \fi -}% -{% - \input{eqalone.def} - \input{eqexam.def} - \def\eqexheader@wrapper{\makebox[0pt][r]{\eqexheader}} -} -\renewcommand{\thepartno}{\theeqquestionnoi (\alph{partno})} -\newcommand{\defaultthepartno}{% - \renewcommand{\thepartno}{\theeqquestionnoi (\alph{partno})}% -} -\def\Ans@sq@l@driver{% - \Rect{\makebox[\eq@tmpdima]{\linkContentWrapper}}% - \Ans@proofing{\eq@tmpdima}% -} -\def\Ans@sq@f@driver{% - \centerWidget\RadioFieldSize - \leavevmode\lower\eqcenterWidget\Bbox - {\RadioFieldSize}{\RadioFieldSize}% - \Ans@proofing{\RadioFieldSize}% -} -\def\eq@sqsllabel{\string\textbf{Solution to Quiz:}} -\def\sqsllabel{\eq@sqsllabel} -\let\quiz@solns=\ex@solns -\def\writetoSolns#1{% - \immediate\write\quiz@solns{\string\goodbreak\noindent - \string\hspace*{-\string\oddsidemargin}% - \string\textbf{#1}\par\string\medskip}% -} -\def\Ans@sq@l@Actions{} -\def\Ans@sq@f@Actions{} -\def\Ans@proofing -#1{% - \ifeq@proofing\if\Ans@choice1\relax - \llap{\rlap{\,\@proofingsymbol}\hskip#1\relax}% - \fi\fi -} -\def\eq@ExamLastPage{\csname eqExamLastPage\endcsname} -\newcommand{\lhead}[1]{\def\eq@lhead{#1}} -\lhead{\shortwebsubject/\shortwebtitle} -\newcommand{\chead}[1]{\def\eq@chead{#1}} -\chead{-- Page \arabic{page}\space of \eq@ExamLastPage\space--} -\newcommand{\rhead}[1]{\def\eq@rhead{#1}} -\rhead{\eq@ExamName} -\newcommand{\runExamHeader}{\eq@lhead\hfill\eq@chead\hfill\eq@rhead} -\newcommand\eqExamRunHead -{% - \addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth] - {\runExamHeader}% -} -\newcommand{\lheadSol}[1]{\def\eq@lheadSol{#1}} -\lheadSol{\shortwebsubject/\shortwebtitle} -\newcommand{\cheadSol}[1]{\def\eq@cheadSol{#1}} -\cheadSol{-- Page \arabic{page}\space of \eq@ExamLastPage\space--} -\newcommand{\rheadSol}[1]{\def\eq@rheadSol{#1}} -\rheadSol{SOLUTIONS} -\newcommand\runExamHeaderSol - {\eq@lheadSol\hfill\eq@cheadSol\hfill\eq@rheadSol} -\def\eqsolutionshook -{% - \gdef\eqExamRunHead{\addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}\makebox[\textwidth] - {\runExamHeaderSol}}% -} -\newcommand\maketitledesign -{% - \makebox[\textwidth]{\normalsize - \shortstack[l]{\strut\websubject\\\@date}\hfill - \shortstack[c]{\webtitle\\\strut\@altTitle}\hfill - \shortstack[l]{\strut\eq@ExamName\\\webauthor}}% -} -\def\altTitle#1{\def\@altTitle{#1}} -\let\@altTitle\@empty -\def\maketitle -{% - \begingroup - \addtolength\textwidth{\oddsidemargin}% - \noindent\hspace*{-\oddsidemargin}% - \raisebox{.7in}[0pt][0pt]{\SubmitButton}% - \maketitledesign - \endgroup -} -\def\eqexcoverpage -{% - \begingroup - \eqexcoverpagedesign - \endgroup\newpage -} -\newcommand{\coverpagesubject}[1]{\def\coverpage@subject{#1}} -\let\coverpage@subject\@empty -\def\eqexamsubject{\ifx\coverpage@subject\@empty\websubject - \else\coverpage@subject\fi} -\newcommand{\coverpageUniversityFmt}[1]{% - \def\eqex@coverpageUniversityFmt{#1}} -\coverpageUniversityFmt{\bfseries\large} -\newcommand{\coverpageSubjectFmt}[1]{% - \def\eqex@coverpageSubjectFmt{#1}} -\coverpageSubjectFmt{\bfseries\large} -\newcommand{\coverpageTitleFmt}[1]{% - \def\eqex@coverpageTitleFmt{#1}} -\coverpageTitleFmt{\bfseries\large} -\newcommand{\eqexcoverpagedesign} -{% - \thispagestyle{empty} - \addtolength\textwidth{\oddsidemargin} - \vspace*{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageUniversityFmt - \color{\webuniversity@color}% - \centering\webuniversity}} - \par\vspace{.1\textheight} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageSubjectFmt - \color{\websubject@color}% - \centering\eqexamsubject}} - \par\vspace{\bigskipamount} - \noindent\hspace*{-\oddsidemargin}% - \makebox[\linewidth]{\parbox{\linewidth}% - {\eqex@coverpageTitleFmt - \color{\webtitle@color}% - \centering\webtitle}} - \par\vspace{\stretch{1}} - \optionalpagematter - \par\vspace{\stretch{1}}\parindent0pt - \eq@ExamName\\[2ex]\eq@SID\\[2ex] - \ifx\use@email y\eq@Email\\[2ex]\fi - \textcolor{\webauthor@color}{\webauthor}, \@date\par\vfill -} -\AtBeginDocument{\eqex@coverpage} -\def\probvalue#1#2{% - \addtocounter{eqpointvalue}{#1}% - \marginpoints{#1}{#2}% - \mark{\theeqpointvalue\csname eqExam\endcsname\theeq@numparts}% -} -\def\eqleftmarginbox#1#2{\makebox[0pt][r]{% - \setlength\tabcolsep{0pt}% - \raisebox{-.5\height}[0pt][0pt]{\parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }}% - \hspace*{\oddsidemargin}\hspace*{\marginparsep}}% -} -\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts} -\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt} -\newcommand{\eachLabel}[1]{\def\eq@eachLabel{#1}}\eachLabel{ea.} -\newcommand{\pointsLabel}[1]{% - \def\eq@pointsLabel{#1}}\pointsLabel{points} -\newcommand{\pointLabel}[1]{% - \def\eq@pointLabel{#1}}\pointLabel{point} -\newcommand\leftmarginPtsTxt[1]{(\small$#1^{\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}}$)} -\newcommand\leftmarginPtsEaTxt[1]{(\small$#1_{\text{% - \eq@eachLabel}}^{\text{\ifnum#1=1\relax - \eqptLabel\else\eqptsLabel\fi}}$)} -\def\marginpointtext#1#2{\ifnum#2=0\leftmarginPtsTxt{#1}\else - \leftmarginPtsEaTxt{#2}\fi -} -\def\eqleftmargin#1#2{\makebox[0pt][r]{\marginpointtext{#1}{#2}% - \hspace*{\oddsidemargin}\hspace*{\marginparsep}}% -} -\newcommand{\marginpointsboxtext}[2]{\small$#1\,\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$} -\def\@insertPointsBoxPDF -{ - \def\fieldName{pointsgiven.\curr@quiz.page\thepage.% - \theeqquestionnoi}% - \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg}] - {\fieldName}{\marginparwidth}{15pt}% -} -\def\@insertTotalsBoxPDF -{ - \def\fieldName{pagetotals.\curr@quiz.page\thepage}% - \calcTextField[\F\FHidden\BC{}\Q1\textColor{1 0 0 rg} - \AA{\AACalculate{AFSimple_Calculate("SUM", - new Array("pointsgiven.\curr@quiz.page\thepage"));}}] - {\fieldName}{\marginparwidth}{15pt}% -} -\ifx\use@email y - \let\insertPointsBoxPDF=\@insertPointsBoxPDF - \let\insertTotalsBoxPDF=\@insertTotalsBoxPDF -\else - \let\insertPointsBoxPDF=\@empty - \let\insertTotalsBoxPDF=\@empty -\fi -\def\eqrightmarginbox#1#2{% - \makebox[0pt][l]{% - \setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-.5\height}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertPointsBoxPDF\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }% - }\hfil - }% -} -\def\eqeomarginbox#1#2{% - \makebox[0pt][l]{% - \setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-.5\height}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{#1}{#2}}\\\hline - \end{tabular}% - }% - }\hfil - }% -} -\setbox\eq@pointbox=\hbox{% - \parbox{\marginparwidth}{% - \tabcolsep=0pt\relax - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\\\hline - \makebox[\marginparwidth]{% - \marginpointsboxtext{00}{0}}\\\hline - \end{tabular}% - }% -} -\setlength\eq@pointboxtotalheight{\dp\eq@pointbox+\ht\eq@pointbox} -\def\lastparttotaled{0} -\def\parsetotals#1\eqExam#2\end{\def\argi{#1}\def\argii{#2}} -\def\stripeqExam#1\eqExam{\def\argii{#1}} -\def\settotalsbox{% - \expandafter\parsetotals\botmark\eqExam\end - \ifx\argi\@empty\hfil - \else\ifx\argii\@empty\hfil - \else - \expandafter\stripeqExam\argii - \setcounter{eqpointsthispage}{\argi}% - \addtocounter{eqpointsthispage}{-\value{eqpointsofar}}% - \setcounter{eqpointsofar}{\argi}% - \xdef\lastparttotaled{\argii}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space Page\thepage total\string\endcsname - {\theeqpointsthispage}}% - \totalsbox - \fi - \fi -} -\newcommand\totalsboxtext{\small$\theeqpointsthispage\,\text{% - \ifnum\theeqpointsthispage=1\relax - \eqptLabel\else\eqptsLabel\fi}$} -\def\totalsboxleft{% - \makebox[0pt][r]{\setlength\tabcolsep{0pt}% - \raisebox{-\height-\marginparsep}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \parbox{\marginparwidth}{% - \strut\centering\totalsboxtext\strut}\\\hline - \end{tabular}% - }}\hspace*{\oddsidemargin}\hspace*{\marginparsep}% - \hspace*{\parindent}}\hfil -} -\def\totalsboxright -{% - \makebox[0pt][l]{\setlength\tabcolsep{0pt}% - \hspace*{\textwidth}\hspace*{\marginparsep}% - \raisebox{-\height-\marginparsep}[0pt][0pt]{% - \parbox{\marginparwidth}{% - \begin{tabular}{|c|}\hline - \vrule height15pt width0pt\insertTotalsBoxPDF\\\hline - \parbox{\marginparwidth}{% - \strut\centering\totalsboxtext\strut}\\\hline - \end{tabular}% - }% - }% - }\hfil -} -\AtBeginDocument{\mark{0\csname eqExam\endcsname0}} -\AtEndDocument{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space NumberOfParts\string\endcsname - {\arabic{eq@numparts}}}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space thePartNames\string\endcsname - {\the\partNames}}% - \clearpage\addtocounter{page}{-1}\writelastpage - \addtocounter{page}{1}% -} -\def\theGrandTotal{% - \begingroup - \count0=0\relax - \def\\##1{\advance\count0by\csname##1total\endcsname}% - \csname thePartNames\endcsname - \xdef\eqeGrandTotal{\the\count0 }% - \endgroup - \csname eqeGrandTotal\endcsname -} -\newcounter{markerCnt} -\def\placeMarkerHere#1{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space#1SaveTotalHere\string\endcsname - {\theeqpointvalue}}% -} -\newcommand{\calcFromMarkers}[3][\@markerTotalFmt]{% - \@ifundefined{#2SaveTotalHere}{}% - {\@ifundefined{#3SaveTotalHere}{}{\setcounter{markerCnt}% - {\@nameuse{#2SaveTotalHere}-\@nameuse{#3SaveTotalHere}}% - \ifnum\value{markerCnt}<0\relax - \setcountertotalHereCnt{-\value{markerCnt}}\fi#1}}% -} -\newcommand{\markerTotalFmt}[1]{\def\@markerTotalFmt{#1}} -\markerTotalFmt{ (\themarkerCnt\space points)} -\def\placeAtxy#1#2#3{% - \par\nointerlineskip - \ifeq@nosolutions\ifx\eq@insertverticalspace y% - \ifvmode - \makebox[0pt][l]{\hspace*{-\parindent}\hspace*{#1}% - \raisebox{#2}[0pt][0pt]{#3}} - \fi - \fi - \fi -} -\newsavebox{\workareasb} -\newenvironment{workarea}[2][\linewidth] -{% - \edef\workareadepth{\if\currhideopt H0pt\else#2\fi}% - \begin{lrbox}{\workareasb}\setlength{\eqetmplengtha}{#1}% - \begin{minipage}[b][\workareadepth][t]{\eqetmplengtha}\vspace*{3pt}% -}% -{% - \end{minipage}\end{lrbox}% - \par\ifeq@nosolutions\ifx\eq@insertverticalspace y% - \vspace{-\baselineskip}\fi\fi%\nointerlineskip - \ifeq@nosolutions\ifx\eq@insertverticalspace y% - \if\currhideopt H\else - \noindent\strut\smash{\usebox{\workareasb}}% - \fi\fi\fi -} -\newcommand\panelgap{3pt} -\newsavebox{\eqpanelbox} -\def\panelwidth{\the\wd\eqpanelbox}\def\panelheight{\the\ht\eqpanelbox}% -\newcounter{panel@cnt} -\newwrite\panel@write -\let\usepanelwidth=\relax -\makeatletter -\newenvironment{panel}[2][l] -{% - \gdef\ss@Argi{#1}\gdef\ss@Argiii{#2}% #1 r or l #2 width of panel - \stepcounter{panel@cnt}% - \immediate\openout \panel@write panel\thepanel@cnt.cut - % need to manage the h, H, and global overrides. - \if\currhideopt H% - \immediate\write\panel@write{\vfill}% - \immediate\closeout\panel@write - \gdef\ss@Argii{0pt}% - \else - \if\currhideopt h\ifeq@solutionsafter\else - \ifeq@globalshowsolutions\else - \immediate\write\panel@write{\vfill}% - \immediate\closeout\panel@write - \gdef\ss@Argii{0pt}% - \fi\fi - \fi - \fi - \begingroup - \let\verbatim@out=\panel@write - \verbatimwrite -} -{% - \endverbatimwrite - \immediate\closeout\panel@write - \endgroup - \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth - \else\noexpand\linewidth-\ss@Argiii-\panelgap\fi}% -} -\long\def\eqe@IW#1{% - \ifeq@solutionsafter - \let\eq@next=\@empty - \else - \def\eq@next{\immediate\write\verbatim@out{#1}}% - \ifeq@nosolutions\else - \if\currhideopt H% - \gdef\ss@Argii{0pt}\let\eq@next=\@empty - \else - \if\currhideopt h% - \ifeq@globalshowsolutions\else - \gdef\ss@Argii{0pt}\let\eq@next=\@empty - \fi - \fi - \fi - \fi - \fi - \eq@next -} -\newenvironment{@ssSolution}[1][\ss@Argii]% -{% - \xdef\eqe@depth{\ifeq@nosolutions\ss@Argii\else - \ifeq@solutionsafter\ss@Argii\else0pt\fi\fi}% - \xdef\mp@Width{\ifeq@solutionsafter\noexpand\linewidth\else - \noexpand\linewidth-\ss@Argiii-\panelgap\fi}% - \if\ss@Argi l% - \ifeq@solutionsafter - \def\eqe@lPanel{\parbox[b][\eqe@depth][t]{\ss@Argiii} - {\input{panel\thepanel@cnt.cut}\vfill}\hfill}% - \def\eqe@rPanel{\@empty}% - \else - \def\eqe@lPanel{\string\parbox[b][\string\eqe@depth]% - {\ss@Argiii}% - {\string\input{panel\thepanel@cnt.cut}\vfill}\hfill^^J}% - \def\eqe@rPanel{\@empty}% - \fi - \else - \ifeq@solutionsafter - \def\eqe@lPanel{\@empty}% - \def\eqe@rPanel{\hfill\parbox[b][\eqe@depth][t]{\ss@Argiii} - {\hfill\input{panel\thepanel@cnt.cut}\vfill}}% - \else - \def\eqe@lPanel{\@empty}% - \def\eqe@rPanel{\hfill\string\parbox[b][\string\eqe@depth]% - {\ss@Argiii}% - {\endgraf\string\noindent\hfill% - \string\input{panel\thepanel@cnt.cut}\vfill}}% - \fi - \fi - \let\verbatim@out=\ex@solns - \par\ifeq@solutionsafter\smallskip\fi\noindent\minipage{\linewidth}% - \if\ss@Argi l\noindent\parbox[b][\eqe@depth][t]{\ss@Argiii}% - {\vfill}\hfill\fi - \minipage[b][\eqe@depth][t]{\mp@Width}% - {\lccode`C=`\%\lowercase{\eqe@IW{\def\string\panelgap{\panelgap}% - \edef\string\eqe@depth - {\ifeq@nosolutions\ss@Argii\else\ss@Argii\fi}C}}}% - {\lccode`C=`\%\lowercase{\eqe@IW{% - \string\strut\string\par\string\nobreak\string\noindent% - \string\hbox\space to\string\linewidth\bgroup^^J% - \eqe@lPanel\string\minipage[b][\string\eqe@depth][t]% - {\string\linewidth-\ss@Argiii-\panelgap}C - }}}% - \ifeq@solutionsafter - \noindent\strut\hbox to\linewidth\bgroup - \eqe@lPanel - \minipage[b][\eqe@depth][t]{\linewidth-\ss@Argiii-\panelgap}% - \def\solutionsafterSkip{}% - \fi - \@sssolution[#1]% -}{% - \eqe@IW{\noexpand\endminipage\eqe@rPanel\egroup}% - \ifeq@solutionsafter\endminipage\eqe@rPanel\egroup\fi - \end@sssolution - \endminipage\endminipage -} -\newenvironment{splitsolution}[1] % #1 depth -{% - \gdef\ss@Argii{#1}% - \let\@sssolution = \solution - \let\end@sssolution = \endsolution - \let\solution = \@ssSolution - \let\endsolution = \end@ssSolution - \par\noindent\ignorespaces -}{% - \ifeq@solutionsafter\strut\par\fi - \edef\eqe@workwidth{\if\ss@Argi l\noexpand\ss@Argiii - \else\noexpand\linewidth\fi}% - \edef\eqe@workfill{\if\ss@Argi l\else\hfill\fi}% - \begin{workarea}[\eqe@workwidth]{\eqe@depth}% - \eqe@workfill\input{panel\thepanel@cnt.cut}% - \end{workarea} - \strut\par -} -\renewcommand{\paragraph} - {\@startsection{paragraph}{4}{0pt}{12pt}{-3pt}{\bfseries}} -\newcommand{\defaultInstructions}[1]{\def\eq@default@Instructions{#1}} -\defaultInstructions{Instructions.} -\newenvironment{instructions}[1][\eq@default@Instructions] -{% - \leftskip-\oddsidemargin \rightskip-\evensidemargin - \def\eq@argi{#1}% - \paragraph*{\textcolor{\@instructionsColor}{#1}\normalcolor% - \ifx\eq@nosummarytotals y\else\ifx\eq@argi\@empty\else\ \fi - {\normalfont\summaryTotalsTxt}\ \fi}\hskip-\lastskip - \ifx\eq@nosummarytotals y\ifx\eq@argi\@empty\else\ \fi\fi - \ignorespaces -}{\par\vskip\medskipamount} -\newcommand\summaryPointTotal{\csname\thisexamlabel total\endcsname} -\newcommand\summaryTotalsTxt{($\summaryPointTotal\,\text{% - \@ifundefined{\thisexamlabel total}{\eq@pointsLabel}% - {\ifnum\summaryPointTotal=1\relax - \eq@pointLabel\else\eq@pointsLabel\fi}}$)} -\ifx\hyper@anchor\@undefined\else - \renewcommand\theHeqquestionnoi - {\curr@quiz.\theeqquestionnoi} - \renewcommand\theHquizno{% - \if\probstar*\curr@quiz.% - \theeqquestionnoi.part\alph{partno}.\arabic{quizno}% - \else - \curr@quiz.% - \theeqquestionnoi.\arabic{quizno}% - \fi - } -\fi -\newenvironment{eqComments}[1][\strut] -{% - \removelastskip\removelastskip - \vskip\medskipamount\leftskip-\oddsidemargin - \rightskip-\evensidemargin - \noindent\textbf{\textcolor{\@eqCommentsColor}{#1}}% -}{% - \vskip\medskipamount -} -\def\exambegdef -{% - \csname\thisexamlabel pagemark\endcsname - \expandafter - \ifx\csname\thisexamlabel pageno\endcsname\relax - \else - \expandafter - \ifx\csname pagenofirstprob\thisexamlabel\endcsname\relax - \else - \ifnum\csname\thisexamlabel pageno\endcsname - <\csname pagenofirstprob\thisexamlabel\endcsname - \else - \expandafter - \ifx\csname\thisexamlabel pagemark\endcsname\relax - \else - \ifnum\value{page}=% - \csname\thisexamlabel pageno\endcsname - \immediate\write\@auxout{% - \string\expandafter\string\gdef - \string\csname\space - \thisexamlabel pagemark\string\endcsname - {\string\newpage}}% - \fi - \fi - \fi - \fi - \fi - \setcounter{eqquestionnoi}{0}% - \setcounter{eqpointvalue}{0}% - \setcounter{eqpointsofar}{0}% - \setcounter{eqpointsthispage}{0}% - \setcounter{eq@count}{0}% - \stepcounter{eq@numparts}% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space\thisexamlabel pageno\string\endcsname - {\thepage}}% - \let\sq@priorhook=\@empty - \settowidth{\labelwidth}{\normalfont\bfseries00.\ }% -} -\def\examenddef -{% - \expandafter\ifx\csname NumberOfParts\endcsname\relax - \else - \ifnum\value{eq@numparts}<\NumberOfParts - \setcounter{eq@count}{\value{eqpointvalue}}% - \addtocounter{eq@count}{-\value{eqpointsofar}}% - \ifx\eq@parttotals y\relax - \@actionsAtPageBreak{\global\let\@spacetobreak1} - {\global\let\@spacetobreak0}% - \ifx\@spacetobreak0\relax - \bgroup\@tempdima=\pagetotal - \advance\@tempdima32pt\relax - \ifdim\@tempdima>\pagegoal\aftergroup\newpage - \else - \ifnum\arabic{eq@count}>0 - \ifx\@reportpoints1\else\@checkSpacing\fi - \raisebox{0pt}[0pt][0pt]{% - \hspace*{-\parindent}% - \textcolor{blue}{\eqeomarginbox - {\arabic{eq@count}}{0}}}% - \fi - \ifx\eqx@separationrule y\separationrule\fi - \fi\egroup - \fi - \else\ifx\eqx@separationrule y\separationrule\fi - \fi - \fi - \fi - \writetotalstoaux - \writelastpage -} -\def\@actionsAtPageBreak#1#2{% - \bgroup\@tempdima\pagegoal\advance\@tempdima-\pagetotal - \@tempdimb\@fvsizeskip\vsize - \ifdim\@tempdima < \@tempdimb #1\else #2\fi\egroup -} -\newcommand{\separationrule}{\makebox[\linewidth]% - {\centering\rule{.67\linewidth}{.4pt}}} -\def\setDefaultfvsizeskip#1{\def\default@fvsizeskip{#1}% - \def\@fvsizeskip{#1}} -\def\default@fvsizeskip{.3} -\edef\@fvsizeskip{\default@fvsizeskip} -\def\fvsizeskip#1{\def\@fvsizeskip{#1}} -\newenvironment{exam}[2][\@empty] -{% - \makeRoomForProb{\@fvsizeskip\vsize}{0}% - \xdef\@fvsizeskip{\default@fvsizeskip}% - \gdef\thisexamlabel{#2}\gdef\curr@quiz{#2}% - \edef\eq@tmp{\the\partNames}% - \global\partNames=\expandafter{\eq@tmp\\{#2}}% - \expandafter\ifx\csname NumberOfParts\endcsname\relax\else - \ifnum\csname NumberOfParts\endcsname=1\else - \ifx#1\@empty\writetoSolns{#2}\else\writetoSolns{#1}\fi\fi\fi - \exambegdef - \expandafter\shortquiz\sqstar[#2]% -}{% - \examenddef - \endshortquiz -} -\def\writetotalstoaux{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space\thisexamlabel total\string\endcsname - {\theeqpointvalue}}% -} -\def\writelastpage{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space eqExamLastPage\string\endcsname{\arabic{page}}}% -} -\def\exlabel{} -\def\sqlabel{} -\def\exsolafter{\textit{Solution}:} -\def\sqsolafter{\textit{Solution}:} -\def\exlabelformat{\textbf{\theeqquestionnoi.\ }} -\def\exlabelformatwp{\exlabelformat}% -\def\exsllabelformat - {\string\llap{\string\textbf{\theeqquestionnoi.\ }}} -\def\exsllabelformatwp{\string\llap{% - \string\textbf{\theeqquestionnoi.\ }}\eq@partsformat\ }% -\ifeq@solutionsafter - \def\exrtnlabelformat{} - \def\exrtnlabelformatwp{} - \def\eq@sqslrtnlabel{} -\else - \def\exrtnlabelformat{$\square$} - \def\exrtnlabelformatwp{$\square$} - \def\eq@sqslrtnlabel{$\square$} -\fi -\def\sqslrtnlabel{\eq@sqslrtnlabel} -\def\exsectitle{\normalsize\hspace* - {-\oddsidemargin}Solutions to \webtitle} -\def\exsecrunhead{Solutions to \websubject}% -\def\eq@sqslsectitle{} -\def\eq@sqslsecrunhead{} -\def\eq@sqsllabel{{\string\llap{\string\textbf{\theeqquestionnoi.\ }}}} -\def\eq@sqlabel{} -\let\include@quizsolutions=\relax -\let\solnhspace=\@empty -\newcommand{\fillin}[3][u]{% - \ifx#1u\let\@fillinFmt=\underbar - \else\ifx#1b\let\@fillinFmt=\relax - \else\let\@fillinFmt=\relax\fi\fi - \ifeq@proofing - \@fillinFmt{\makebox[#2]{% - \strut\hfil\bfseries\color{red}#3\hfil}}% - \else - \@fillinFmt{\makebox[#2]{\strut\hfil}}% - \@ifundefined{@quiz}{}{% - \ifx\eq@online y\relax - \ifeq@nosolutions - \ifeq@solutionsafter\else - \ifx\eq@insertverticalspace y\relax - \stepcounter{@cntfillin}% - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.part\alph{partno}.% - fi\the@cntfillin - \else - eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.fi\the@cntfillin - \fi - }\makebox[0pt][r]{\textField[\BC{}]{% - \fieldName}{#2}{11bp}}% - \fi - \fi - \fi - \fi - }% - \fi\space\ignorespaces} -\newcommand\defaultTFwidth{30pt} -\newcommand\TF[2][\defaultTFwidth]{% - \def\eq@next{\fillin{#1}{#2}}% - \ifdim\eq@extralabelsep=0pt\relax\else - \if\probstar*\relax\if\exerwparts@cols x - \def\eq@next{\makebox[0pt][r]{% - \fillin{#1}{#2}}\ignorespaces}% - \fi\fi\fi -\eq@next} -\def\fillinWidth#1{% - \if\probstar* - \settowidth{\eq@tmplengthA}{\normalfont\ }% - \addtolength{\eq@tmplengthA}{#1}% - \edef\eq@extralabelsep{\the\eq@tmplengthA}% - \fi -} -\def\makeDoNum#1{\xdef\nDoNum{#1}% - \xdef\DoNum{\ifcase#1??\or one\or two\or three\or - four\or five\or six\or seven\or eight\or nine\or ten\fi}} -\def\makeOutOfNum#1{\xdef\nOutOfNum{#1}% - \xdef\OutOfNum{\ifcase#1??\or one\or two\or three\or - four\or five\or six\or seven\or eight\or nine\or ten\fi}} -\def\prob@Arg#1ea#2\end{\def\argi{#1}\def\argii{#2}} -\def\makeRoomForProb#1#2{% - \bgroup\@nobreakfalse\addpenalty{-500}% - \@tempdima \pagegoal \advance \@tempdima -\pagetotal - \ifdim \@tempdima < #1 \newpage\fi \egroup - \ifx1#2\ifnum\@reportpoints>1 \@checkSpacing\fi\fi -} -\def\@checkSpacing{\bgroup - \@tempdima = \lastPageTotal - \@tempdimb = \pagetotal - \ifdim\@tempdima < \@tempdimb - \advance\@tempdimb by-\@tempdima - \ifdim\@tempdimb < \eq@pointboxtotalheight - \@tempdima=\eq@pointboxtotalheight - \advance\@tempdima3pt\relax - \advance\@tempdima by-\@tempdimb - \vspace*{\@tempdima}% - \fi - \fi -\egroup} -\def\default@nbaselineskip{6} -\edef\@nbaselineskip{\default@nbaselineskip} -\def\nbaselineskip#1{\def\@nbaselineskip{#1}} -\newenvironment{problem}[1][]{% - \makeRoomForProb{\@nbaselineskip\baselineskip}{1}% - \xdef\@nbaselineskip{\default@nbaselineskip}% - \gdef\probstar{x}% - \let\afterlabelhskip=\@empty - \ifx\marginpoints\@empty - \else - \def\numpoints{#1}% - \ifx\numpoints\@empty - \let\marginpoints\@empty - \else - \def\marginparpriorhook{\noindent\probvalue{#1}{0}}% - \fi - \fi - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \ifnum\value{eq@count}=1\relax - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space pagenofirstprob\thisexamlabel\string\endcsname - {\thepage}}% - \fi - \proofingsymbol{\ding{52}}% - \begin{exercise}[eqquestionnoi]% -}{\end{exercise}% - \ifeqlocalversion\ifeqglobalversion - \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}% - \aftergroup\eqe@tmp - \fi\fi - \global\eqlocalversionfalse -} -\newcommand\itemPTsTxt[1]{$#1\,\text{% - \ifnum#1=1\relax\eqptLabel\else\eqptsLabel\fi}$} -\newcommand{\itemPTsFormated}[1]{(#1)} -\def\PTs{\@ifstar{\@PTs{*}}{\@PTs{x}}} -\def\@PTs#1#2{% - \if\@reportpoints0\else - \addtocounter{eq@count}{#2}\if#1*\else - \itemPTsFormated{\itemPTsTxt{#2}}\fi - \fi -} -\let\auto=\relax -\def\isItD@{\@ifnextchar\Do{\let\yest@D@=y\y@st@Do} - {\let\yest@D@=n\@gobblet@end}} -\let\yest@D@=n -\def\y@st@Do\Do#1\end{\gdef\D@Num{#1}} -\def\@gobblet@end#1\end{} -\expandafter\def\csname problem*\endcsname{% - \@ifnextchar[{\pr@bl@m@star}{\pr@bl@m@star[\@empty]}} -\def\pr@bl@m@star[#1]{% - \@ifnextchar[{\pr@blem@star{#1}}{\pr@blem@star{#1}[\@empty]}} -\def\pr@blem@star#1[#2]{% - \makeRoomForProb{\@nbaselineskip\baselineskip}{1}% - \xdef\@nbaselineskip{\default@nbaselineskip}% - \proofingsymbol{\ding{52}}% - \gdef\probstar{*}% - \gdef\pr@b@secondarg{#2}% - \setcounter{eq@count}{0}% - \let\afterlabelhskip=\@empty - \global\let\probpointseach=\@empty - \ifx#1\auto\global\let\probpointseach\relax - \def\@next{\autocalcparts}% - \else - \ifx#2\@empty\else - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \@ifundefined{nPartsThisProb\thisexamlabel.\theeq@count} - {\makeOutOfNum{0}\makeDoNum{0}}% - {% - \expandafter\makeOutOfNum{% - \csname nPartsThisProb\thisexamlabel.% - \theeq@count\endcsname}% - \expandafter\makeDoNum{% - \csname DoNumThisProb\thisexamlabel.% - \theeq@count\endcsname}% - }% - \fi - \def\@next{\manualcalcparts{#1}}% - \fi\@next - \begin{exercise}[eqquestionnoi]*}% -\expandafter\def\csname endproblem*\endcsname{% - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space nPartsThisProb\thisexamlabel.\theeqquestionnoi - \string\endcsname{\arabic{partno}}}% - \ifx\probpointseach\@empty\else - \ifx\probpointseach\auto - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space prob\thisexamlabel.\theeqquestionnoi - \string\endcsname{\theeq@count}}% - \else - \setcounter{eq@count}{\value{partno}}% - \ifx\pr@b@secondarg\@empty\else - \bgroup\toks0 =\expandafter{\pr@b@secondarg}% - \expandafter\isItD@\the\toks0 \end - \ifx\yest@D@ y - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space DoNumThisProb\thisexamlabel.% - \theeqquestionnoi\string\endcsname{\D@Num}}% - \@tempcnta = \value{eq@count}% - \advance\@tempcnta -\D@Num - \global\advance\value{eq@count}-\@tempcnta - \fi - \egroup - \fi - \multiply\value{eq@count}\argi - \immediate\write\@auxout{% - \string\expandafter\string\gdef\string - \csname\space prob\thisexamlabel.\theeqquestionnoi - \string\endcsname{\theeq@count}}% - \fi\fi - \end{exercise}% - \ifeqlocalversion\ifeqglobalversion - \xdef\eqe@tmp{\noexpand\forVersion{\eq@selectedVersion}}% - \aftergroup\eqe@tmp - \fi\fi - \global\eqlocalversionfalse -} -\def\pushProblem{\xdef\nlastItem{\arabic{partno}}\end{parts}} -\def\popProblem{\begin{parts}\setcounter{partno}{\nlastItem}} -\def\lastPageTotal{0pt} -\def\marginparafterhook{\xdef\lastPageTotal{\the\pagetotal}} -\def\manualcalcparts#1{% - \expandafter\prob@Arg#1ea\end - \ifx\argii\@empty\def\numpoints{#1}% - \else - \gdef\probpointseach{x}% - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \expandafter - \ifx\csname prob\thisexamlabel.\theeq@count\endcsname\relax - \def\numpoints{\argi}% - \else - \def\numpoints{\expandafter - \csname prob\thisexamlabel.\theeqquestionnoi\endcsname}% - \fi - \fi - \ifx\marginpoints\@empty - % no points for this problem specified - \else - \ifx\argi\@empty - \let\marginpoints\@empty - \else - \ifx\argii\@empty - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{% - \noindent\probvalue{\numpoints}{0}% - }% - \fi - \else - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{% - \noindent\probvalue{\numpoints}{\argi}% - }% - \fi - \fi - \fi - \fi - \ifnum\value{eq@count}=1\relax - \immediate\write\@auxout{\string\expandafter\string\gdef\string - \csname\space pagenofirstprob\thisexamlabel\string\endcsname - {\thepage}}% - \else - \goodbreak - \fi -} -\def\autocalcparts{% - \setcounter{eq@count}{\value{eqquestionnoi}}% - \addtocounter{eq@count}{1}% - \expandafter - \ifx\csname prob\thisexamlabel.\theeq@count\endcsname\relax - \def\numpoints{0}% assume zero points until we get the total - \else - \edef\numpoints{\expandafter - \csname prob\thisexamlabel.\theeq@count\endcsname}% - \fi - \ifx\marginpoints\@empty\else - \def\marginparpriorhook{\noindent\probvalue{\numpoints}{0}}% - \fi - \setcounter{eq@count}{0}% -} -\newcommand{\forproblem}[1]{\setcounter{eqquestionnoi}{#1 - 1}} -\newcommand{\foritem}[1]{% - \setcounter{partno}{0}% - \lowercase{\def\eq@selectedItem{#1}}% - \let\eq@initLoop=0 - \loop - \stepcounter{partno}% - \expandafter\if\alph{partno}\eq@selectedItem - \let\eq@initLoop=1 - \fi - \if\eq@initLoop0\repeat - \addtocounter{partno}{-1}% - \item -} -\newcommand\aNewPage{\ifanswerkey\newpage\fi} -\newcommand\qNewPage{\ifanswerkey\else\newpage\fi} -\newcounter{backofpage} -\newcommand\bopText{on the back of page~\boPage} -\newcommand\bopCoverPageText{\space(the cover page)} -\newcommand\OnBackOfPage[1][\bopText]{% - \refstepcounter{backofpage}\label{bop\thebackofpage} - \begingroup - \expandafter\ifx\csname r@bop\thebackofpage\endcsname\relax - \def\boPage{??}% - \else - \edef\temp{\csname r@bop\thebackofpage\endcsname}% - \ifx\hyper@anchor\@undefined - \edef\boPage{\expandafter\@secondoftwo\temp}% - \else - \edef\boPage{\expandafter\@secondoffive\temp}% - \fi - \c@eq@count\boPage - \advance\c@eq@count-1\relax - \edef\boPage - {% - \ifx\eqex@coverpage\relax - \expandafter\ifnum\value{eq@count}=0\relax - 1% - \else - {\theeq@count}% - \fi - \else - \ifnum\value{eq@count}=1\relax - {\theeq@count}\bopCoverPageText - \else - {\theeq@count}% - \fi - \fi - }% - \fi - #1% - \endgroup -} -\pagestyle{eqExamheadings} -\IfFileExists{xkeyval}{% - \if\eq@usexkeys y\RequirePackage{xkeyval}\else - \endinput\fi}{\endinput} -\define@boolkey{eqFillin}{underline}[true]{} -\define@key{eqFillin}{u}[]{\KV@eqFillin@underlinetrue} -\define@key{eqFillin}{b}[]{\KV@eqFillin@underlinefalse} -\define@boolkey{eqFillin}{boxed}[true]{} -\define@key{eqFillin}{boxpretext}[]{\def\eq@fillintext{#1}} -\let\eq@fillintext\@empty -\define@choicekey+{eqFillin}{boxsize}{tiny,scriptsize,footnotesize,% - small,normalsize,large,Large,LARGE,huge,Huge}[normalsize]{% - \def\eq@eqFillin@boxsize{\text{\csname#1\endcsname\strut}}% -}{\PackageWarning{eqexam}{Bad choice for boxsize, permissible values - are tiny, scriptsize, footnotesize, small, normalsize, - large, Large, LARGE, huge and Huge. Try again}} -\def\eq@eqFillin@boxsize{\text{\normalsize\strut}} -\define@key{eqFillin}{color}[red]{\def\eq@fillin@color{#1}} -\define@choicekey+{eqFillin}{align}{l,r,c}[c]{% - \def\eq@eqFillin@align{#1}}{% - \PackageWarning{eqexam}{Bad choice for align, permissible values - are l, r, and c. Try again}} -\define@key{eqFillin}{format}[\bfseries]{\def\eq@fillin@format{#1}} -\renewcommand{\fillin}[3][]{\begingroup% - \setkeys{eqFillin}{boxsize,underline=false,boxed=false,% - boxpretext,color,align,format}% - \protected@edef\eq@temp@exp{\noexpand\setkeys{eqFillin}{#1}}% - \eq@temp@exp - \ifKV@eqFillin@underline\let\@fillinFmt\underbar - \else\let\@fillinFmt\relax\fi - \ifeq@proofing - \ifKV@eqFillin@boxed - \ensuremath{\boxed{\eq@eqFillin@boxsize\eq@fillintext - \@fillinFmt{\makebox[#2][\eq@eqFillin@align]{% - \strut\eq@fillin@format\color{\eq@fillin@color}% - \ensuremath{#3}}}}}% - \else - \ifmmode\let\@eqmath\ensuremath\else\let\@eqmath\relax\fi - \@fillinFmt{\makebox[#2][\eq@eqFillin@align]{% - \strut\eq@fillin@format\color{\eq@fillin@color}% - \@eqmath{#3}}}% - \fi - \else - \ifKV@eqFillin@boxed - \ensuremath{\boxed{\eq@eqFillin@boxsize\eq@fillintext - \@fillinFmt{\makebox[#2]{\strut\hfil}}}}% - \else - \@fillinFmt{\makebox[#2]{\strut\hfil}}% - \fi - \@ifundefined{@quiz}{}{% - \ifx\eq@online y\relax - \ifeq@nosolutions - \ifeq@solutionsafter\else - \ifx\eq@insertverticalspace y\relax - \stepcounter{@cntfillin}% - \edef\fieldName{% - \if\probstar*eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.part\alph{partno}.% - fi\the@cntfillin - \else - eqexam.\curr@quiz.fillin.% - \theeqquestionnoi.fi\the@cntfillin - \fi - }\makebox[0pt][r]{\textField[\BC{}]{% - \fieldName}{#2}{11bp}}% - \fi - \fi - \fi - \fi - }% - \fi\endgroup\space\ignorespaces} -\renewcommand\TF[2][\defaultTFwidth]{% - \def\eq@next{\fillin[underline]{#1}{#2}}% - \ifdim\eq@extralabelsep=0pt\relax\else - \if\probstar*\relax\if\exerwparts@cols x - \def\eq@next{\makebox[0pt][r]{% - \fillin[underline]{#1}{#2}}\ignorespaces}% - \fi\fi\fi -\eq@next} -\endinput -%% -%% End of file `eqexam.sty'. -- cgit v1.2.3