summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/interactiveworkbook
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/interactiveworkbook
Initial commit
Diffstat (limited to 'macros/latex/contrib/interactiveworkbook')
-rw-r--r--macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.pdfbin0 -> 71996 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.tex371
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/WS_FTP.LOG1
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/buttonappearance.eps356
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/checkclear.eps32
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/checksubmit.eps45
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques1.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques10.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques11.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques12.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques13.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques14.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques15.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques16.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques17.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques18.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques19.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques2.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques20.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques3.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques4.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques5.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques6.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques7.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques8.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/exerques9.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/fieldclear.eps34
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/fieldsubmit.eps44
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/ndex.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/next.eps21
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonechecktwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldone.eps19
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldtwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopuptwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofive.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofour.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradioone.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiothree.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiotwo.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreechecktwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldone.eps19
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldtwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopuptwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofive.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofour.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradioone.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiothree.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiotwo.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwochecktwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldone.eps19
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldtwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfive.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfour.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupone.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupthree.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopuptwo.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofive.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofour.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadioone.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiothree.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiotwo.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/popupclear.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/popupsubmit.eps42
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/prev.eps21
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/radioclear.eps33
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/radiosubmit.eps45
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/return.eps20
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/rightcheckcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/rightfieldcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/rightpopupcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/rightradiocorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/wrongcheckcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/wrongfieldcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/wrongpopupcorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/epsfiles/wrongradiocorrect.eps39
-rw-r--r--macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook-web.sty991
-rw-r--r--macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook.sty980
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/check.pdfbin0 -> 36683 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/check.tex36
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/field.pdfbin0 -> 33917 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/field.tex39
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/ndex.pdfbin0 -> 295074 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/ndex.tex58
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/popup.pdfbin0 -> 36575 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/popup.tex32
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/radio.pdfbin0 -> 40135 bytes
-rw-r--r--macros/latex/contrib/interactiveworkbook/samplefiles/radio.tex31
116 files changed, 5389 insertions, 0 deletions
diff --git a/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.pdf b/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.pdf
new file mode 100644
index 0000000000..f256d400a0
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.tex b/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.tex
new file mode 100644
index 0000000000..9e94e90eee
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/documentation/interactiveworkbookmanual.tex
@@ -0,0 +1,371 @@
+\documentclass[12pt]{article}
+\usepackage{epsf}
+\oddsidemargin=0in \evensidemargin=0in \textwidth=6in \topmargin=0.5in \headheight=0in
+\headsep=0in
+\textheight=8.5in % better for US Letter paper
+
+\font\bigbf=cmbx10 scaled \magstep5
+
+\sloppy \raggedbottom
+
+\begin{document}
+
+\noindent
+{\LARGE\bf Interactiveworkbook Software Package} \\ \\
+{J.R.D. Kuhn}, \\
+{6 June 1999}, \\
+{revised 18 July 2002}, \\
+{Mathematics and Physics Section}, {jkuhn@purduenc.edu} \\
+{Purdue University North Central, Westville, IN 46391--4197}
+
+
+\section{Introduction}
+
+\noindent The interactiveworkbook software package, along with
+other packages (dvips, epsfig, color, xspace, ifthen and a pstopdf
+converter), gives the user the ability to write \LaTeX\,\,
+documents which, ultimately, create interactive
+question--and--answer PDF--based tutorials. Interactiveworkbook is
+a major revision of the software package called pdfflash, written
+by Aaron Montgomery. The main advantage this package has over
+other similar packages is the ability to {\it easily} employ
+mathematical symbols in an automated interactive question and
+answer tutorial package. An earlier version of this package has
+been used in an Introductory Statistics course, given over the
+Internet and taught at Purdue University North Central. On the
+Internet, go to:
+\begin{center}
+ http://faculty.purduenc.edu/jkuhn/courses/previous/workbooks/301i/301i.html
+\end{center}
+Interactiveworkbook was created with the assistance of IHETS grant
+652 9395-2956 and so portions are copyrighted by Purdue University
+North Central.
+
+\section{What Is In The Interactiveworkbook Software Package}
+
+The interactiveworkbook software package consists of one style
+file, interactiveworkbook.sty, and eighty--six EPS files,
+including:
+\begin{itemize}
+ \item one big buttonappearance.eps file, written in Postscript, and
+ used to draw the outlines of the various buttons,
+ \item forty--five small ``button'' files, written with a kind of
+ Postscript called PDF and, more particularly, an set
+ of PDF commands which make the language ``interactive'', called PDFmarks, and include
+ \begin{itemize}
+ \item fifteen files related to different {\it check} box buttons
+ (each question can have up to five check boxes, where each check
+ box must appear on three pages--question page, correct response page and
+ incorrect response page), including
+ pageonecheckone.eps, pagetwocheckone.eps, pagethreecheckone.eps, \ldots
+ pageonecheckfive.eps, pagetwocheckfive.eps, pagethreecheckfive.eps,
+ \item fifteen files related to different text {\it field} buttons, including
+ pageonefieldone.eps, \ldots, pagethreefieldfive.eps,
+ \item fifteen files related to different {\it popup} menu buttons, including
+ pageonepopupone.eps, \ldots, pagethreepopupfive.eps,
+ \item fifteen files related to different {\it radio} buttons, including
+ pageoneradioone.eps, \ldots, pagethreeradiofive.eps,
+ \end{itemize}
+ \item three files related to the previous (question in the exercise),
+ index (of all questions in the exercise) and next (question in the exercise) buttons;
+ namely, prev.eps, ndex.eps, and next.eps, respectively, all of which use PDFmark
+ commands and Javascript (and which is also true of all the remaining files described
+ below),
+ \item twenty buttons related to the buttons which appear on the index
+ page and which link the index page of an
+ exercise to all of the questions in the exercise: exerques1.eps, \ldots, exerques20.eps
+ \item four submit (to see if correct or not) buttons:
+ checksubmit.eps, fieldsubmit.eps, popupsubmit.eps, radiosubmit.eps,
+ \item eight ``give--the--correct--answer'' (whether on the correct or incorrect
+ response page) buttons:
+ rightcheckcorrect.eps, wrongcheckcorrect.eps, and similar
+ files for ``field'', ``popup'' and ``radio'',
+ \item four ``clear--the--answer'' buttons:
+ checkclear.eps, fieldclear.eps, popupclear.eps, radioclear.eps,
+ \item and one return (from correct or incorrect response page to question
+ page) button, return.eps.
+\end{itemize}
+
+In addition to the files in interactiveworkbook software package
+and this \LaTeX\, Readme file with corresponding PDF file, there
+are five \LaTeX\, files, along with their corresponding
+interactive question--and--answer PDF files, including:
+\begin{itemize}
+ \item a sample index \LaTeX\, file, ndex.tex, and corresponding PDF
+ file, ndex.pdf,
+ \item \LaTeX\, and PDF files which demonstrate the use of interactive check boxes:
+ check.tex and check.pdf,
+ \item \LaTeX\, and PDF files which demonstrate the use of the interactive text fields:
+ field.tex and field.pdf,
+ \item \LaTeX\, and PDF files which demonstrate the use of the interactive popup menus:
+ popup.tex and popup.pdf
+ \item \LaTeX\, and PDF files which demonstrate the use of the interactive radio buttons:
+ radio.tex and radio.pdf.
+\end{itemize}
+The five PDF files are been tied together with the ndex.pdf file
+as a sample exercise.
+
+
+\section{Installation Of Interactiveworkbook Software Package}
+
+To {\it create} an interactive exercise, you must save the
+interactiveworkbook style file, interactiveworkbook.sty, in the
+style file location. For WinEdt 5.3, this is in the folder
+C:/texmf/tex/latex/graphics. Also, the eighty--size EPS files are
+located in the same directory as the five \LaTeX\, files listed
+previously.
+
+\section{Using The Sample Interactive PDF Exercise}
+
+To {\it run} (as opposed to create) the sample interactive PDF
+exercise, you will need to have Adobe Acrobat Reader version 4.0.
+Acrobat Reader is free and available to download at Adobe's
+web-site:
+\begin{center}
+ http://www.adobe.com
+\end{center}
+Click on any one of the five sample PDF files, ndex.pdf,
+check.pdf, popup.pdf, field. pdf or radio.pdf, to start.
+
+\section{Using Interactiveworkbook To Create Interactive Question--and--Answer PDF Exercises}
+
+The interactive question--and--answer PDF {\it sample} exercise
+was created running the five sample \LaTeX\, files, ndex.tex,
+check.tex, popup.tex, field.tex and radio.tex, using the MiKTeX
+version of \LaTeX2e on a Pentium II 16 Meg Ram, 6 Gig Hard disk,
+266 MHz Aptiva PC. One style file, interactiveworkbook.sty, is
+located in the /tex/latex/graphics directory and eighty--size EPS
+files are located in the same directory as the five \LaTeX\, files
+listed previously.
+
+The four \LaTeX\, files, check.tex, popup.tex, field.tex and radio.tex, are all very
+similar to one another. Consequently, only one, check.tex, will be discussed in
+detail here. Documentation included in the other three files will be assumed to
+suffice as enough explanation for these files. After discussing check.tex, the index
+file, ndex.tex, will be briefly described afterwards.
+
+\subsection{check.tex}
+
+The entire (short) check.tex program is given below.
+\begin{verbatim}
+ \documentclass[dvips]{article}
+ \usepackage{interactiveworkbook}
+
+ \begin{document}
+
+ \questionandresponses{check}
+ {ndex.pdf}{ndex.pdf}{popup.pdf}
+ {Question 1. $\;$ A multiple check box question. \\ \\
+ \noindent
+ \checkone Off \answercheckone{Off} \\
+ \checktwo On \answerchecktwo{On} \\
+ \checkthree {\it no} X \answercheckthree{Off} \\
+ \checkfour X \answercheckfour{On} \\
+ \checkfive {\it do not} click \answercheckfive{Off}
+ }
+ {Yes, correct.}
+ {No, try again.}
+
+ \end{document}
+\end{verbatim}
+
+The first thing to notice is that this program requires the use
+of the style file, interactiveworkbook, as given in the command
+``\verb+\+usepackage\{interactiveworkbook\}'', otherwise the special
+commands, described below, will not function.
+
+The command ``\verb+\+questionandresponses'' has {\it seven} arguments.
+(Notice that all seven arguments are enclosed with brackets, ``\{\}''.)
+\begin{itemize}
+ \item The first argument, ``check'', tells interactiveworkbook that the type
+ of question being asked in this case will involve check boxes. This first argument
+ may take on one of following four values:
+ \begin{center}
+ check, popup, field or radio
+ \end{center}
+ \item The second, third and fourth arguments, give the name of the PDF files
+ that a user jumps to when clicking on the Previous, Index and Next buttons,
+ respectively. In this case, a user jumps back to the Index file, ndex.pdf, when
+ clicking on either the Previous or Index buttons, but jumps to the popup.pdf
+ file, when clicking on the Next button.
+ \item The question asked is given in the fifth argument. In this case, it
+ is question 1, a check box question which uses five check boxes.
+
+ The five check boxes are called ``\verb+\+checkone'', through to ``\verb+\+checkfive''.
+ The twenty possible commands are:
+ \begin{itemize}
+ \item \verb+\+checkone, ..., \verb+\+checkfive, {\it or}
+ \item \verb+\+popupone, ..., \verb+\+popupfive, {\it or}
+ \item \verb+\+fieldone, ..., \verb+\+fieldfive, {\it or}
+ \item \verb+\+radioone, ..., \verb+\+radiofive.
+ \end{itemize}
+ There can only be five possible answers, all of one type for a
+ single question. This command {\it must} match up with the first argument of
+ ``\verb+\+questionandresponses''. For example, although it is possible to use
+ ``\verb+\+popupone'' in a ``popup'' type of question, it is not possible to use
+ this command, here, in a ``check'' type of question.
+
+ In addition to the check boxes, the question giver also provides the correct
+ answers to the check boxes. The five answers to the check boxes are called
+ ``\verb+\+answercheckone'', through to ``\verb+\+answercheckfive''. The twenty
+ possible commands are:
+ \begin{itemize}
+ \item \verb+\+answercheckone, ..., \verb+\+answercheckfive,
+ \item \verb+\+answerpopupone, ..., \verb+\+answerpopupfive,
+ \item \verb+\+answerfieldone, ..., \verb+\+answerfieldfive,
+ \item \verb+\+answerradioone, ..., \verb+\+answerradiofive.
+ \end{itemize}
+ In this case, the correct answer has check boxes two
+ and four ``On'' (or Xed), and check boxes one, three and five ``Off''. These
+ answers do not appear on the question page. They appear on either the correct
+ response page or incorrect response pages, if requested by the question taker.
+ \item Correct response and incorrect response comments are given in the sixth
+ and seventh arguments. The correct response comment, in this case is ``Yes, correct.'',
+ whereas the incorrect response comment is ``No, try again.''. These comments
+ appear below the question on the correct and incorrect pages of the interactive
+ PDF file.
+\end{itemize}
+
+\subsection{ndex.tex}
+
+The entire (short) check.tex program is given below.
+\begin{verbatim}
+ \documentclass[dvips]{article}
+ \usepackage{interactiveworkbook}
+
+ \begin{document}
+
+ \exerciseintroduction{Index. $\;$ This is an index of, at most, twenty questions:
+ a multiple check box question, a multiple popup question, a multiple text
+ field question and a radio button question.
+ }
+
+ \vspace{.2in}
+ \exerquessetupone{check.pdf}
+ \exerquessetuptwo{popup.pdf}
+ \exerquessetupthree{field.pdf}
+ \exerquessetupfour{radio.pdf}
+ \vdots
+ \exerquessetuptwenty{radio.pdf}
+
+ \begin{center}
+ \begin{tabular}{||lc|lc||} \hline
+ Q1. Check & \exerquesone & Q11. Field & \exerqueseleven \\ \hline
+ Q2. Popup & \exerquestwo & Q12. Radio & \exerquestwelve\\ \hline
+ Q3. Field & \exerquesthree & Q13. Check & \exerquesthirteen\\ \hline
+ Q4. Radio & \exerquesfour & Q14. Popup & \exerquesfourteen\\ \hline
+ Q5. Check & \exerquesfive & Q15. Field & \exerquesfifteen \\ \hline
+ Q6. Popup & \exerquessix & Q16. Radio & \exerquessixteen\\ \hline
+ Q7. Field & \exerquesseven & Q17. Check & \exerquesseventeen\\ \hline
+ Q8. Radio & \exerqueseight & Q18. Popup & \exerqueseighteen\\ \hline
+ Q9. Check & \exerquesnine & Q19. Field & \exerquesnineteen\\ \hline
+ Q10. Popup & \exerquesten & Q20. Radio & \exerquestwenty\\ \hline
+ \end{tabular}
+ \end{center}
+\end{verbatim}
+
+The introductory blurb to this sample PDF exercise is given in the argument
+of the command ``\verb+\+exerciseintroduction''. In this case, it starts,
+``Index. This is \ldots.''.
+The ``\verb+\+exerquessetupone'', through to ``\verb+\+exerquessetuptwenty'',
+give the names of the four (there can be as many as twenty) PDF questions in this exercise.
+The ``\verb+\+exerquesone'', through to ``\verb+\+exerquestwenty'' commands
+creates twenty (but can be fewer) index buttons.
+
+\section{What is an Interactive Question--and--Answer PDF Exercise?}
+
+A user (or question taker) submits an answer to an interactive PDF
+question and the computer responds as to whether or not the given
+answer is correct (matches a preset answer). An interactive index
+is a PDF file which not only lists all of the questions in the
+exercise, but also allows the question taker to jump from this
+index to any particular question on the list. An interactive
+question--and--answer PDF exercise is a series of interactive PDF
+questions tied together by an interactive index.
+
+A sample interactive question--and--answer PDF exercise has been
+included with this interactive software package. In addition to
+the PDF index, called ndex.pdf, there are four interactive PDF
+question--and--answer files, which demonstrate the four basic
+different question types, in this sample exercise. The four
+interactive PDF files are given below.
+\begin{itemize}
+ \item {\it check.pdf}. In this type of question, five (although less can be used)
+ check boxes are displayed as part of the question. The question taker answers the
+ question by choosing none, one or more of these check boxes.
+ \item {\it field.pdf}. Five (although less can be used)
+ text fields are displayed. The question taker answers this fill--in--the--blank
+ kind of question by typing answers into these text fields.
+ \item {\it popup.pdf} Five (although less can be used) popup menus are displayed.
+ Each of the five popup menu provides the question taker with nine choices, ``a'', ``b'',
+ \ldots, ``i''.
+ \item {\it radio.pdf}. Five (although less can be used) radio buttons are displayed.
+ The question taker answers the question by choosing one (and {\it only} one) of
+ these radio buttons.
+\end{itemize}
+Although these four button types have been positioned in a
+particular way for this sample exercise, they can, in fact, be
+positioned {\it anywhere} on the question page.
+
+Whether a check, field, popup or radio type of question, all
+interactive PDF files have three pages. The first page of the
+file displays the question, the second page displays information
+if the question taker gives a correct response to the question and
+the third page displays information if the question taker gives an
+{\it in}correct response to the question.
+
+The question page of each interactive PDF file has a number of
+different components. In addition to the question (check, field,
+popup or radio), there are five {\it navigational} buttons located
+at the bottom of this page.
+\begin{itemize}
+ \item {\it Clear}. This button, on the lower left of the question page, clears
+ the question page of any answers.
+ \item {\it Submit}. Clicking on this button on the lower right of the question
+ page both determines whether the given answer is correct or not and then jumps
+ to either to the correct response page or incorrect response page.
+ \item {\it Previous.} By clicking on this lower middle button, a jump is made
+ {\it outside} the present question to the previous question in the interactive
+ {\it exercise}.
+ \item {\it Index.} By clicking on this lower middle button, a jump is made
+ outside the present question to the index PDF file in the interactive
+ exercise.
+ \item {\it Next.} By clicking on this lower middle button, a jump is made
+ outside the present question to the {\it next} question in the interactive
+ exercise.
+\end{itemize}
+The position of the navigational buttons cannot be altered from
+the positions displayed in the sample interactive PDF exercise.
+
+The correct response and incorrect response pages of each
+interactive PDF file have a number of different components.
+First, a {\it blank} version of the question (check, field, popup
+or radio), given on the first page, is displayed on both of these
+two pages. Second, either a (blue colored) correct response
+comment or a (red colored) incorrect response comment are shown
+just below the (black colored) question. Third, there are five
+{\it navigational} buttons located at the bottom of this page. As
+on the question page, the Previous, Index and Next buttons are
+given in the lower middle of both the correct and incorrect
+response pages. In addition to these three buttons, there are two
+other buttons.
+\begin{itemize}
+ \item {\it Answer}. This button, on the lower left of the question page, fills
+ the blank question page with correct answers.
+ \item {\it Return}. Clicking on this button on the lower right of the question
+ page returns the user from either the correct response page or incorrect response
+ page back to the first (question) page of the current interactive
+ PDF question.
+\end{itemize}
+
+The sample interactive index PDF file, unlike the interactive
+question--and--answer PDF file, consists of one page. This page
+has two components. The first component consists of introductory
+remarks on the questions which make up the exercise. The second
+component consists of a list of twenty (although less can be used)
+buttons. Each of these buttons links to one of the four (although
+there could be as many as twenty) questions which make up this
+sample exercise. The index buttons can be positioned anywhere on
+the index page.
+
+\end{document}
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/WS_FTP.LOG b/macros/latex/contrib/interactiveworkbook/epsfiles/WS_FTP.LOG
new file mode 100644
index 0000000000..583046a316
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/WS_FTP.LOG
@@ -0,0 +1 @@
+99.06.08 12:46 B C:\MiKTeX\docs-research\interactiveworkbook\interactiveworkbookzip.exe --> www.purduenc.edu /jkuhn/distance-learning interactiveworkbookzip.exe
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/buttonappearance.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/buttonappearance.eps
new file mode 100644
index 0000000000..7ce134bfb8
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/buttonappearance.eps
@@ -0,0 +1,356 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON APPEARANCES: PREVIOUS, INDEX, NEXT, EXERQUES, RETURN, SUBMIT, CLEAR,
+% SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 1 1
+%%EndProlog
+
+% stops printout of postscript (pdfmark) commands
+
+/pdfmark where {
+ pop
+ /__pdfMark__ true def
+}{
+ /pdfmark {cleartomark} def
+ /__pdfMark__ false def
+} ifelse
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON OUTLINE APPEARANCES: SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% up outline of all buttons
+
+[/BBox [ 0 0 100 30 ] /_objdef {Button_Up} /BP pdfmark
+__pdfMark__ {
+% upper left
+ 1.0 setgray 0 0 moveto 0 30 lineto 100 30 lineto stroke
+ 0.9 setgray 1 1 moveto 1 29 lineto 99 29 lineto stroke
+ 0.8 setgray 2 2 moveto 2 28 lineto 98 28 lineto stroke
+ 0.7 setgray 3 3 moveto 3 27 lineto 97 27 lineto stroke
+ 0.6 setgray 4 4 moveto 4 26 lineto 96 26 lineto stroke
+ 0.5 setgray 5 5 moveto 5 25 lineto 95 25 lineto stroke
+% lower right
+ 0.5 setgray 5 5 moveto 95 5 lineto 95 25 lineto stroke
+ 0.4 setgray 4 4 moveto 96 4 lineto 96 26 lineto stroke
+ 0.3 setgray 3 3 moveto 97 3 lineto 97 27 lineto stroke
+ 0.2 setgray 2 2 moveto 98 2 lineto 98 28 lineto stroke
+ 0.1 setgray 1 1 moveto 99 1 lineto 99 29 lineto stroke
+ 0.0 setgray 0 0 moveto 100 0 lineto 100 30 lineto stroke
+% the corners
+ 0.5 setgray 0 0 moveto 5 5 lineto stroke
+ 100 30 moveto 95 25 lineto stroke
+} if
+[/EP pdfmark
+
+% down outline of all buttons
+
+[ /_objdef {Button_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+% upper left
+ 0.0 setgray 0 0 moveto 0 30 lineto 100 30 lineto stroke
+ 0.1 setgray 1 1 moveto 1 29 lineto 99 29 lineto stroke
+ 0.2 setgray 2 2 moveto 2 28 lineto 98 28 lineto stroke
+ 0.3 setgray 3 3 moveto 3 27 lineto 97 27 lineto stroke
+ 0.4 setgray 4 4 moveto 4 26 lineto 96 26 lineto stroke
+ 0.5 setgray 5 5 moveto 5 25 lineto 95 25 lineto stroke
+% lower right
+ 0.5 setgray 5 5 moveto 95 5 lineto 95 25 lineto stroke
+ 0.6 setgray 4 4 moveto 96 4 lineto 96 26 lineto stroke
+ 0.7 setgray 3 3 moveto 97 3 lineto 97 27 lineto stroke
+ 0.8 setgray 2 2 moveto 98 2 lineto 98 28 lineto stroke
+ 0.9 setgray 1 1 moveto 99 1 lineto 99 29 lineto stroke
+ 1 setgray 0 0 moveto 100 0 lineto 100 30 lineto stroke
+% the corners
+ 0.5 setgray 0 0 moveto 5 5 lineto stroke
+ 100 30 moveto 95 25 lineto stroke
+% the interior
+ 0.8 setgray 5 5 90 20 rectfill
+} if
+[/EP pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON OUTLINES WITH TEXT: PREVIOUS, INDEX, NEXT, EXERQUES
+% SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% previous button up
+
+[/_objdef {Prev_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto (Previous) show
+} if
+[/EP pdfmark
+
+% previous button down
+
+[/_objdef {Prev_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto (Previous) show
+} if
+[/EP pdfmark
+
+% index button up
+
+[/_objdef {Index_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Index) show
+} if
+[/EP pdfmark
+
+% index button down
+
+[/_objdef {Index_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Index) show
+} if
+[/EP pdfmark
+
+% next button up
+
+[/_objdef {Next_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Next) show
+} if
+[/EP pdfmark
+
+% next button down
+
+[/_objdef {Next_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Next) show
+} if
+[/EP pdfmark
+
+% exercise question button up (no words on button; used in exercise index)
+
+[/_objdef {ExerQues_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+} if
+[/EP pdfmark
+
+% exercise question button down
+
+[/_objdef {ExerQues_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+} if
+[/EP pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON OUTLINES WITH TEXT: RETURN, SUBMIT, CLEAR, ANSWER
+% SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% return button up
+
+[/_objdef {Return_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Return) show
+} if
+[/EP pdfmark
+
+% return button down
+
+[/_objdef {Return_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Return) show
+} if
+[/EP pdfmark
+
+% clear button up
+
+[/_objdef {Clear_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Clear) show
+} if
+[/EP pdfmark
+
+% clear button down
+
+[/_objdef {Clear_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Clear) show
+} if
+[/EP pdfmark
+
+% submit button up
+
+[/_objdef {Submit_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Submit) show
+} if
+[/EP pdfmark
+
+% submit button down
+
+[/_objdef {Submit_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Submit) show
+} if
+[/EP pdfmark
+
+% answer button up
+
+[/_objdef {Answer_Up} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Up} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Answer) show
+} if
+[/EP pdfmark
+
+% answer button down
+
+[/_objdef {Answer_Down} /BBox [ 0 0 100 30 ] /BP pdfmark
+__pdfMark__ {
+ [{Button_Down} /SP pdfmark
+ 0 setgray /Courier-Bold 16 selectfont 10 7 moveto ( Answer) show
+} if
+[/EP pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CHECK BOX APPEARANCE: SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% check boxes unselected
+
+[ /_objdef {UnChecked} /BBox [0 0 30 30] /BP pdfmark
+__pdfMark__ {
+ 0 setgray 0 0 moveto 0 30 lineto 30 30 lineto 30 0 lineto 0 0 lineto stroke
+ 1 1 moveto 1 29 lineto 29 29 lineto 29 1 lineto 1 1 lineto stroke
+} if
+[/EP pdfmark
+
+% check boxes selected
+
+[/_objdef {Checked} /BBox [0 0 30 30] /BP pdfmark
+__pdfMark__ {
+ 0 setgray 0 0 moveto 0 30 lineto 30 30 lineto 30 0 lineto 0 0 lineto stroke
+ 1 1 moveto 1 29 lineto 29 29 lineto 29 1 lineto 1 1 lineto stroke
+ /Courier-Bold 30 selectfont 5 5 moveto (X) show
+} if
+[/EP pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% POPUP MENU APPEARANCE: BOX AND TEXT FOR FIVE MENUS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% popup menu border
+
+[/_objdef {Popup_Menu} /BBox [ 0 0 60 30 ] /BP pdfmark
+__pdfMark__ {
+ 0 setgray 0 0 60 30 rectstroke 2 setlinewidth % rectangle low left (0,0) to up right (60,30)
+} if % linewidth 2
+[/EP pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TEXT FIELD APPEARANCE: BOX AND TEXT FOR FIVE FIELDS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% general text field appearance; here, so that it appears on screen
+
+[/_objdef {Text_Field} /BBox [0 0 300 30] /BP pdfmark
+__pdfMark__ {
+ [ 0 0 300 30 ] rectfill
+ 0.75 setgray 0 0 300 30 rectfill
+} if
+[/EP pdfmark
+
+% text field one
+
+[/_objdef {field1}
+ /Subtype /Widget % dummy widget not actually used, but required in objdef
+ /Rect [0 0 0 0] % dummy text area not actually used, but required in objdef
+ /DA (/CourB 11 Tf 0 g ) % black font (zero gray level), typed in text fields, first page
+/ANN pdfmark
+
+% text field two
+
+[/_objdef {field2}
+ /Subtype /Widget
+ /Rect [0 0 0 0]
+ /DA (/CourB 11 Tf 0 g )
+/ANN pdfmark
+
+% text field three
+
+[/_objdef {field3}
+ /Subtype /Widget
+ /Rect [0 0 0 0]
+ /DA (/CourB 11 Tf 0 g )
+/ANN pdfmark
+
+% text field four
+
+[/_objdef {field4}
+ /Subtype /Widget
+ /Rect [0 0 0 0]
+ /DA (/CourB 11 Tf 0 g )
+/ANN pdfmark
+
+% text field five
+
+[/_objdef {field5}
+ /Subtype /Widget
+ /Rect [0 0 0 0]
+ /DA (/CourB 11 Tf 0 g )
+/ANN pdfmark
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RADIO BUTTON APPEARANCE: SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% radio button unselected
+
+[ /_objdef {Radio_Button_UnSelected} /BBox [0 0 30 30] /BP pdfmark
+__pdfMark__ {
+ 0 setgray 15 15 14 0 360 arc closepath % start (0,0), radius 14, 360 degree arc (circle)
+ 2 setlinewidth stroke % line width 2, draw circle
+} if
+[/EP pdfmark
+
+% radio button selected
+
+[/_objdef {Radio_Button_Selected} /BBox [0 0 30 30] /BP pdfmark
+__pdfMark__ {
+ 0 setgray 15 15 14 0 360 arc closepath % start (0,0), radius 14, 360 degree arc (circle)
+ 2 setlinewidth stroke % line width 2, draw circle
+ 0 setgray 15 15 8 0 360 arc closepath % start (0,0), radius 8, 360 degree arc (circle)
+ 0 0 0 setrgbcolor % set color black
+ 0 setgray fill % fill inner circle with black color
+} if
+[/EP pdfmark
+
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/checkclear.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/checkclear.eps
new file mode 100644
index 0000000000..2764003cda
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/checkclear.eps
@@ -0,0 +1,32 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CLEAR CHECK BOXES
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Check_Clear_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % button, check type
+ /Ff 65540 % push button
+ /H /P
+ /AP << /N {Clear_Up} /D {Clear_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var thecheckbox = this.getField\(inName\);
+ if \(thecheckbox!=undefined\) thecheckbox.value = "Off";
+ }
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \("pageonecheck"+theCount!=undefined\) turnOff\("pageonecheck"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/checksubmit.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/checksubmit.eps
new file mode 100644
index 0000000000..ced008274f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/checksubmit.eps
@@ -0,0 +1,45 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CHECK SUBMIT BUTTON: COMPARE "GUESSED" QUESTION TAKER ANSWER WITH
+% "CORRECT" QUESTION GIVER ANSWER AND
+% THEN GO TO CORRECT RESPONSE (PAGE 1) OR
+% INCORRECT RESPONSE PAGE (PAGE 2) , ACCORDINGLY
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Check_Submit_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Submit_Up} /D {Submit_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ this.pageNum = 0;
+ var isRight = true;
+ var undefined;
+
+ function adjustIsRight\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ if \( theAnswerField.value != theCorrectField.value \) { isRight = false; }
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageonecheck"+theCount != undefined \)
+ adjustIsRight\("pageonecheck"+theCount, "checkanswer"+theCount\);
+ }
+
+ if \(isRight==true\) { this.pageNum = 1; } else { this.pageNum = 2; }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques1.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques1.eps
new file mode 100644
index 0000000000..b933bc2f18
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques1.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 1: MOVES FROM INDEX TO QUESTION 1
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def1} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques10.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques10.eps
new file mode 100644
index 0000000000..7820ec4564
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques10.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 10: MOVES FROM INDEX TO QUESTION 10
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def10} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques11.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques11.eps
new file mode 100644
index 0000000000..73afcbf5e3
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques11.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 11: MOVES FROM INDEX TO QUESTION 11
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def11}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques12.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques12.eps
new file mode 100644
index 0000000000..7feb20a406
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques12.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 12
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def12}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques13.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques13.eps
new file mode 100644
index 0000000000..c18a86e883
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques13.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 13
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def13}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques14.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques14.eps
new file mode 100644
index 0000000000..571cdc20b7
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques14.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 14
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def14}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques15.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques15.eps
new file mode 100644
index 0000000000..4d4a2efe58
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques15.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 15
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def15}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques16.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques16.eps
new file mode 100644
index 0000000000..36053cb2b8
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques16.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 16
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def16}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques17.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques17.eps
new file mode 100644
index 0000000000..c098de1f39
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques17.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 17
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def17}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques18.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques18.eps
new file mode 100644
index 0000000000..bbda903409
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques18.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 18
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def18}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques19.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques19.eps
new file mode 100644
index 0000000000..d0b3cfab7c
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques19.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 19
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def19}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques2.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques2.eps
new file mode 100644
index 0000000000..afe58f393d
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques2.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 2: MOVES FROM INDEX TO QUESTION 2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button2)
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def2} % pdfmark OBJ with exercise question location 2 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques20.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques20.eps
new file mode 100644
index 0000000000..bdfec16a99
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques20.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 20
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def20}
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques3.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques3.eps
new file mode 100644
index 0000000000..c4ec517f26
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques3.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 3: MOVES FROM INDEX TO QUESTION 3
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button3)
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def3} % pdfmark OBJ with exercise question location 3 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques4.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques4.eps
new file mode 100644
index 0000000000..50337e4c1c
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques4.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 4: MOVES FROM INDEX TO QUESTION 4
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button4)
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def4} % pdfmark OBJ with exercise question location 4 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques5.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques5.eps
new file mode 100644
index 0000000000..3b452f3fea
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques5.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 5: MOVES FROM INDEX TO QUESTION 5
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def5} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques6.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques6.eps
new file mode 100644
index 0000000000..5692ee0ec4
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques6.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 6: MOVES FROM INDEX TO QUESTION 6
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def6} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques7.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques7.eps
new file mode 100644
index 0000000000..6f3c7fd5a4
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques7.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 7: MOVES FROM INDEX TO QUESTION 7
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def7} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques8.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques8.eps
new file mode 100644
index 0000000000..420fb626e2
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques8.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 8: MOVES FROM INDEX TO QUESTION 8
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def8} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/exerques9.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques9.eps
new file mode 100644
index 0000000000..67985fed1f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/exerques9.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERCISE QUESTION BUTTON 9: MOVES FROM INDEX TO QUESTION 9
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 100 30
+%%EndProlog
+[
+ /T (Exercise_Question_Button1) % title: goes to exercise question 1
+ /Rect [0 0 100 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P %
+ /AP << /N {ExerQues_Up} /D {ExerQues_Down} >> % *no* words appears in button
+ /A {exerques_def9} % pdfmark OBJ with exercise question location 1 included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/fieldclear.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/fieldclear.eps
new file mode 100644
index 0000000000..1874860c12
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/fieldclear.eps
@@ -0,0 +1,34 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CLEAR TEXT FIELD BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Text_Field_Clear_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P % displays down position momentarily
+ /AP << /N {Clear_Up} /D {Clear_Down} >> % clear text in all fields
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function clearField\(inName\) {
+ var theField = this.getField\(inName\);
+ if \( theField != undefined \) theField.value = "";
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageonefield"+theCount != undefined \) clearField\("pageonefield"+theCount\);
+ }
+
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/fieldsubmit.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/fieldsubmit.eps
new file mode 100644
index 0000000000..5e62e291f5
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/fieldsubmit.eps
@@ -0,0 +1,44 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SUBMIT FIELD BUTTON: COMPARES TEXT_FIELD (USER) ANSWERS WITH
+% ANSWER_TEXT_FIELD (CORRECT) ANSWERS AND
+% IF MATCH, GOES TO CORRECT RESPONSE PAGE;
+% OTHERWISE, GOES TO INCORRECT RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Field_Submit_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Submit_Up} /D {Submit_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var isRight = true;
+ var undefined;
+
+ function adjustIsRight\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ if \( theAnswerField.value != theCorrectField.value \) { isRight = false; }
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageonefield"+theCount != undefined \)
+ adjustIsRight\("pageonefield"+theCount, "fieldanswer"+theCount\);
+ }
+
+ if \(isRight==true\) { this.pageNum = 1; } else { this.pageNum = 2; }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/ndex.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/ndex.eps
new file mode 100644
index 0000000000..c194674470
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/ndex.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INDEX BUTTON: RETURNS USER TO INDEX PAGE OF EXERCISE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Index_Button) % title: Index_Button; sends question taker to index of exercise
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P % button depresses momentarily
+ /AP << /N {Index_Up} /D {Index_Down} >> % "Index" appears in button, whether up or down
+ /A {ndex_def} % pdfmark OBJ with index location [1] included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/next.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/next.eps
new file mode 100644
index 0000000000..0218a1f6c0
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/next.eps
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NEXT BUTTON: MOVES FROM QUESTION PAGE OF ONE EXERCISE
+% TO QUESTION PAGE OF NEXT EXERCISE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Next_Button) % title: Next_Button
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % button
+ /Ff 65540 % push button
+ /H /P % highlight button
+ /AP << /N {Next_Up} /D {Next_Down} >> % word "Next" appears in button
+ /A {next_def} % pdfmark OBJ with next exercise location [1] included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfive.eps
new file mode 100644
index 0000000000..7f3190835f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE CHECK BOX FIVE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pageonecheck5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfour.eps
new file mode 100644
index 0000000000..4fbaba7969
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE CHECK BOX FOUR: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pageonecheck4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckone.eps
new file mode 100644
index 0000000000..8fdb7bc219
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE CHECK BOX ONE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pageonecheck1)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckthree.eps
new file mode 100644
index 0000000000..f2feddd7b7
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonecheckthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE CHECK BOX THREE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pageonecheck3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonechecktwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonechecktwo.eps
new file mode 100644
index 0000000000..62abf5c79f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonechecktwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE CHECK BOX TWO: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pageonecheck2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfive.eps
new file mode 100644
index 0000000000..db98b8d5d8
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE TEXT FIELD 5
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pageonefield5)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field5}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfour.eps
new file mode 100644
index 0000000000..9b9f7fa7c6
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE TEXT FIELD 4
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pageonefield4)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field4}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldone.eps
new file mode 100644
index 0000000000..7d1ccb14c9
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldone.eps
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE TEXT FIELD 1
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pageonefield1) % question taker
+ /Subtype /Widget
+ /FT /Tx % allows text typed in text field
+ /Rect [0 0 300 30] % gives length and width of text field
+ /F 4 % printable tex
+ /{field1} % prints question taker text in question page text field
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark % box outline for text field
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldthree.eps
new file mode 100644
index 0000000000..69fe32eee7
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE TEXT FIELD 3
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pageonefield3)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field3}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldtwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldtwo.eps
new file mode 100644
index 0000000000..98d1b7374b
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonefieldtwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE TEXT FIELD 2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pageonefield2)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field2}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfive.eps
new file mode 100644
index 0000000000..f4a6dfef2e
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE POPUP MENU FIVE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pageonepopup5)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfour.eps
new file mode 100644
index 0000000000..f0e23349ac
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE POPUP MENU FOUR: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pageonepopup4)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupone.eps
new file mode 100644
index 0000000000..1d0e603113
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE POPUP MENU ONE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pageonepopup1)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupthree.eps
new file mode 100644
index 0000000000..10cb26340a
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopupthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE POPUP MENU THREE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pageonepopup3)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopuptwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopuptwo.eps
new file mode 100644
index 0000000000..7e21f99d50
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageonepopuptwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE POPUP MENU TWO: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pageonepopup2)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofive.eps
new file mode 100644
index 0000000000..368fe47057
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofive.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE RADIO BUTTON FIVE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pageoneradio5)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pageoneradio1"\);
+ turnOff\("pageoneradio2"\);
+ turnOff\("pageoneradio3"\);
+ turnOff\("pageoneradio4"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofour.eps
new file mode 100644
index 0000000000..dc57594c7d
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiofour.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE RADIO BUTTON FOUR: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pageoneradio4)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pageoneradio1"\);
+ turnOff\("pageoneradio2"\);
+ turnOff\("pageoneradio3"\);
+ turnOff\("pageoneradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradioone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradioone.eps
new file mode 100644
index 0000000000..51e8dfe656
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradioone.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE RADIO BUTTON ONE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pageoneradio1)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pageoneradio2"\);
+ turnOff\("pageoneradio3"\);
+ turnOff\("pageoneradio4"\);
+ turnOff\("pageoneradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiothree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiothree.eps
new file mode 100644
index 0000000000..df3cedcdb5
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiothree.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE RADIO BUTTON THREE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pageoneradio3)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pageoneradio1"\);
+ turnOff\("pageoneradio2"\);
+ turnOff\("pageoneradio4"\);
+ turnOff\("pageoneradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiotwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiotwo.eps
new file mode 100644
index 0000000000..b1a1e58f0b
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pageoneradiotwo.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE ONE RADIO BUTTON TWO: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pageoneradio2)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pageoneradio1"\);
+ turnOff\("pageoneradio3"\);
+ turnOff\("pageoneradio4"\);
+ turnOff\("pageoneradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfive.eps
new file mode 100644
index 0000000000..25a0fca893
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE CHECK BOX FIVE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagethreecheck5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfour.eps
new file mode 100644
index 0000000000..274da2d086
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE CHECK BOX FOUR: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagethreecheck4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckone.eps
new file mode 100644
index 0000000000..a1d4df8261
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE CHECKBOX ONE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagethreecheck1)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckthree.eps
new file mode 100644
index 0000000000..88bb2ac480
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreecheckthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE CHECK BOX THREE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagethreecheck3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreechecktwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreechecktwo.eps
new file mode 100644
index 0000000000..c2957aceb0
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreechecktwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECKBOX THREE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagethreecheck2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfive.eps
new file mode 100644
index 0000000000..75c1e3323c
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE TEXT FIELD 5
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagethreefield5)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field5}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfour.eps
new file mode 100644
index 0000000000..ab7b41d600
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE TEXT FIELD 4
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagethreefield4)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field4}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldone.eps
new file mode 100644
index 0000000000..2664854d7e
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldone.eps
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE TEXT FIELD 1
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagethreefield1) % question taker
+ /Subtype /Widget
+ /FT /Tx % allows text typed in text field
+ /Rect [0 0 300 30] % gives length and width of text field
+ /F 4 % printable tex
+ /{field1} % prints question taker text in question page text field
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark % box outline for text field
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldthree.eps
new file mode 100644
index 0000000000..c7b21a683d
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE TEXT FIELD 3
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagethreefield3)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field3}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldtwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldtwo.eps
new file mode 100644
index 0000000000..d01d066ebe
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreefieldtwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE TEXT FIELD 2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagethreefield2)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field2}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfive.eps
new file mode 100644
index 0000000000..57b477bea9
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE POPUP MENU FIVE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagethreepopup5)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfour.eps
new file mode 100644
index 0000000000..cedd9a8c42
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE POPUP MENU FOUR: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagethreepopup4)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupone.eps
new file mode 100644
index 0000000000..b7c1766a7a
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE POPUP MENU ONE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagethreepopup1)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupthree.eps
new file mode 100644
index 0000000000..05f119e63e
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopupthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE POPUP MENU THREE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagethreepopup3)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopuptwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopuptwo.eps
new file mode 100644
index 0000000000..c291b612e7
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreepopuptwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE POPUP MENU TWO: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagethreepopup2)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofive.eps
new file mode 100644
index 0000000000..57c8b3b04d
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofive.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE RADIO BUTTON FIVE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagethreeradio5)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagethreeradio1"\);
+ turnOff\("pagethreeradio2"\);
+ turnOff\("pagethreeradio3"\);
+ turnOff\("pagethreeradio4"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofour.eps
new file mode 100644
index 0000000000..ae307916ef
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiofour.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE RADIO BUTTON FOUR: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagethreeradio4)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagethreeradio1"\);
+ turnOff\("pagethreeradio2"\);
+ turnOff\("pagethreeradio3"\);
+ turnOff\("pagethreeradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradioone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradioone.eps
new file mode 100644
index 0000000000..cc845694f6
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradioone.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE RADIO BUTTON ONE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagethreeradio1)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagethreeradio2"\);
+ turnOff\("pagethreeradio3"\);
+ turnOff\("pagethreeradio4"\);
+ turnOff\("pagethreeradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiothree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiothree.eps
new file mode 100644
index 0000000000..731ced5ab5
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiothree.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE RADIO BUTTON THREE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagethreeradio3)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagethreeradio1"\);
+ turnOff\("pagethreeradio2"\);
+ turnOff\("pagethreeradio4"\);
+ turnOff\("pagethreeradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiotwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiotwo.eps
new file mode 100644
index 0000000000..063a873581
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagethreeradiotwo.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE THREE RADIO BUTTON TWO: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagethreeradio2)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagethreeradio1"\);
+ turnOff\("pagethreeradio3"\);
+ turnOff\("pagethreeradio4"\);
+ turnOff\("pagethreeradio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfive.eps
new file mode 100644
index 0000000000..914e0b05a4
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECK BOX FIVE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagetwocheck5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfour.eps
new file mode 100644
index 0000000000..c9ff226f60
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECK BOX FOUR: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagetwocheck4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckone.eps
new file mode 100644
index 0000000000..39982431da
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECKBOX ONE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagetwocheck1)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckthree.eps
new file mode 100644
index 0000000000..2aeb11518d
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwocheckthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECK BOX THREE: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagetwocheck3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwochecktwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwochecktwo.eps
new file mode 100644
index 0000000000..0fce71f530
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwochecktwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO CHECK BOX TWO: "X" APPEARS FIRST CLICK, "X" DISAPPEARS SECOND CLICK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+
+[
+ /T (pagetwocheck2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % type, check box
+ /AP << /N << /On {Checked} /Off {UnChecked} >> >> % "X" appears when checked
+ /AS /Off
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfive.eps
new file mode 100644
index 0000000000..b342aa00ed
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO TEXT FIELD 5
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagetwofield5)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field5}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfour.eps
new file mode 100644
index 0000000000..a2abeec673
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO TEXT FIELD 4
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagetwofield4)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field4}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldone.eps
new file mode 100644
index 0000000000..18207837f2
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldone.eps
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO TEXT FIELD 1
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagetwofield1) % question taker
+ /Subtype /Widget
+ /FT /Tx % allows text typed in text field
+ /Rect [0 0 300 30] % gives length and width of text field
+ /F 4 % printable tex
+ /{field1} % prints question taker text in question page text field
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark % box outline for text field
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldthree.eps
new file mode 100644
index 0000000000..9a6632258f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO TEXT FIELD 3
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagetwofield3)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field3}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldtwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldtwo.eps
new file mode 100644
index 0000000000..3aa672707a
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwofieldtwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO TEXT FIELD 2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 300 30
+%%EndProlog
+[
+ /T (pagetwofield2)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [0 0 300 30]
+ /F 4
+ /{field2}
+/ANN pdfmark
+
+[{Text_Field} /SP pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfive.eps
new file mode 100644
index 0000000000..78a9c89ced
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfive.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO POPUP MENU FIVE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagetwopopup5)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfour.eps
new file mode 100644
index 0000000000..629d3b27f1
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupfour.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO POPUP MENU FOUR: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagetwopopup4)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupone.eps
new file mode 100644
index 0000000000..5a3979fd01
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupone.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO POPUP MENU ONE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagetwopopup1)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupthree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupthree.eps
new file mode 100644
index 0000000000..71c252d6c5
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopupthree.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO POPUP MENU THREE: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagetwopopup3)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopuptwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopuptwo.eps
new file mode 100644
index 0000000000..0903006c78
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetwopopuptwo.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO POPUP MENU TWO: CHOICES: A, B, ..., I
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 60 30
+%%EndProlog
+[
+ /T (pagetwopopup2)
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [ 0 0 60 30 ]
+ /F 4
+/ANN pdfmark
+
+[{Popup_Menu} /SP pdfmark % popup box border
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofive.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofive.eps
new file mode 100644
index 0000000000..eb898e9b5f
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofive.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO RADIO BUTTON FIVE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagetworadio5)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagetworadio1"\);
+ turnOff\("pagetworadio2"\);
+ turnOff\("pagetworadio3"\);
+ turnOff\("pagetworadio4"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofour.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofour.eps
new file mode 100644
index 0000000000..01b1c4d829
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiofour.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO RADIO BUTTON FOUR: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagetworadio4)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagetworadio1"\);
+ turnOff\("pagetworadio2"\);
+ turnOff\("pagetworadio3"\);
+ turnOff\("pagetworadio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadioone.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadioone.eps
new file mode 100644
index 0000000000..ca26771a28
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadioone.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO RADIO BUTTON ONE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagetworadio1)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagetworadio2"\);
+ turnOff\("pagetworadio3"\);
+ turnOff\("pagetworadio4"\);
+ turnOff\("pagetworadio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiothree.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiothree.eps
new file mode 100644
index 0000000000..a4a992fd9e
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiothree.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO RADIO BUTTON THREE: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagetworadio3)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagetworadio1"\);
+ turnOff\("pagetworadio2"\);
+ turnOff\("pagetworadio4"\);
+ turnOff\("pagetworadio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiotwo.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiotwo.eps
new file mode 100644
index 0000000000..70153ea129
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/pagetworadiotwo.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PAGE TWO RADIO BUTTON TWO: ONLY ONE OF FIVE RADIO BUTTONS CAN BE ON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 30 30
+%%EndProlog
+[
+ /T (pagetworadio2)
+ /F 4
+ /Subtype /Widget
+ /Rect [0 0 30 30]
+ /FT /Btn % button, radio type
+ /AP << /N << /On {Radio_Button_Selected} /Off {Radio_Button_UnSelected} >> >>
+ /AS /Off
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var otherradiobutton = this.getField\(inName\);
+ if\(otherradiobutton != undefined\) otherradiobutton.value = "Off";
+ }
+ turnOff\("pagetworadio1"\);
+ turnOff\("pagetworadio3"\);
+ turnOff\("pagetworadio4"\);
+ turnOff\("pagetworadio5"\);
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/popupclear.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/popupclear.eps
new file mode 100644
index 0000000000..09b4f99081
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/popupclear.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CLEAR POPUP MENU BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Clear_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % clear (not popup menu) button
+ /Ff 65540
+ /H /P
+ /AP << /N {Clear_Up} /D {Clear_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function clearPopup\(inName\) {
+ var thePopup = this.getField(inName);
+ if \( thePopup != undefined \) thePopup.value = "";
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \("pageonepopup"+theCount!=undefined\) clearPopup\("pageonepopup"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/popupsubmit.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/popupsubmit.eps
new file mode 100644
index 0000000000..808b722d45
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/popupsubmit.eps
@@ -0,0 +1,42 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% POPUP SUBMIT BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Popup_Submit_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Submit_Up} /D {Submit_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ this.pageNum = 0;
+ var isRight = true;
+ var undefined;
+
+ function adjustIsRight\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ if \( theAnswerField.value != theCorrectField.value \) { isRight = false; }
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageonepopup"+theCount != undefined \)
+ adjustIsRight\("pageonepopup"+theCount, "popupanswer"+theCount\);
+ }
+
+ if \(isRight==true\) { this.pageNum = 1; } else { this.pageNum = 2; }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/prev.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/prev.eps
new file mode 100644
index 0000000000..b42e0d2134
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/prev.eps
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PREVIOUS BUTTON: MOVES FROM QUESTION PAGE OF ONE EXERCISE
+% TO QUESTION PAGE OF PREVIOUS EXERCISE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Previous_Button) % title: Previous_Button
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4 % printable field
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P % button depresses momentarily
+ /AP << /N {Prev_Up} /D {Prev_Down} >> % word "Previous" appears in button
+ /A {prev_def} % pdfmark OBJ with previous exercise location [1] included
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/radioclear.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/radioclear.eps
new file mode 100644
index 0000000000..ce2eb0debc
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/radioclear.eps
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RADIO CLEAR BUTTON: CLEARS ALL RADIO BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Clear_Radio_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn % button, radio type
+ /Ff 65540 % push type
+ /H /P % highlight momentarily
+ /AP << /N {Clear_Up} /D {Clear_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function turnOff\(inName\) {
+ var radiobutton = this.getField\(inName\);
+ if \( radiobutton != undefined \) radiobutton.value = "Off";
+ }
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageoneradio"+theCount != undefined \) turnOff\("pageoneradio"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/radiosubmit.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/radiosubmit.eps
new file mode 100644
index 0000000000..dfa970114b
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/radiosubmit.eps
@@ -0,0 +1,45 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RADIO SUBMIT BUTTON: COMPARE "GUESSED" QUESTION TAKER ANSWER WITH
+% "CORRECT" QUESTION GIVER ANSWER AND
+% THEN GO TO CORRECT RESPONSE OR
+% INCORRECT RESPONSE PAGE, ACCORDINGLY
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /T (Radio_Submit_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Submit_Up} /D {Submit_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ this.pageNum = 0;
+ var isRight = true;
+ var undefined;
+
+ function adjustIsRight\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ if \( theAnswerField.value != theCorrectField.value \) { isRight = false; }
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pageoneradio"+theCount != undefined \)
+ adjustIsRight\("pageoneradio"+theCount, "radioanswer"+theCount\);
+ }
+
+ if \(isRight==true\) { this.pageNum = 1; } else { this.pageNum = 2; }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/return.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/return.eps
new file mode 100644
index 0000000000..aa300c404a
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/return.eps
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RETURN BUTTON: RETURNS USER TO QUESTION (ZERO) PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+[
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4 % printable field (?)
+ /FT /Btn % field choice type: button
+ /Ff 65540 % special flag signals button
+ /H /P % pushing return button displays down face momentarily
+ /AP << /N {Return_Up} /D {Return_Down} >> % "Return" appears in button, whether up or down
+ /Action << /Subtype /JavaScript /JS ( this.pageNum = 0; ) >> % returns to question (zero) page
+ /T (Return_Button) % returns user to question (zero) page
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/rightcheckcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/rightcheckcorrect.eps
new file mode 100644
index 0000000000..53db7e02b1
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/rightcheckcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS CHECKED OFF IN CHECK BOXES
+% WHEN ON CORRECT (RIGHT) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Right_Check_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagetwocheck"+theCount != undefined \)
+ showRightAnswer\("pagetwocheck"+theCount, "checkanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/rightfieldcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/rightfieldcorrect.eps
new file mode 100644
index 0000000000..559c3a39ed
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/rightfieldcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS ARE DISPLAYED IN TEXT FIELDS
+% WHEN ON CORRECT (RIGHT) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Right_Field_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagetwofield"+theCount != undefined \)
+ showRightAnswer\("pagetwofield"+theCount, "fieldanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/rightpopupcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/rightpopupcorrect.eps
new file mode 100644
index 0000000000..b45418e7ae
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/rightpopupcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS DISPLAYED IN POPUP MENUS
+% WHEN ON CORRECT (RIGHT) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Right_Popup_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagetwopopup"+theCount != undefined \)
+ showRightAnswer\("pagetwopopup"+theCount, "popupanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/rightradiocorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/rightradiocorrect.eps
new file mode 100644
index 0000000000..8362fa8532
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/rightradiocorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT RADIO BUTTON DISPLAYED
+% WHEN ON CORRECT (RIGHT) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Right_Radio_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagetworadio"+theCount != undefined \)
+ showRightAnswer\("pagetworadio"+theCount, "radioanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/wrongcheckcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongcheckcorrect.eps
new file mode 100644
index 0000000000..b4cabff954
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongcheckcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS CHECKED OFF IN CHECK BOXES
+% WHEN ON INCORRECT (WRONG) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Wrong_Check_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagethreecheck"+theCount != undefined \)
+ showRightAnswer\("pagethreecheck"+theCount, "checkanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/wrongfieldcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongfieldcorrect.eps
new file mode 100644
index 0000000000..5a80952127
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongfieldcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS ARE DISPLAYED IN TEXT FIELDS
+% WHEN ON INCORRECT (WRONG) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Wrong_Field_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagethreefield"+theCount != undefined \)
+ showRightAnswer\("pagethreefield"+theCount, "fieldanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/wrongpopupcorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongpopupcorrect.eps
new file mode 100644
index 0000000000..cd05a11685
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongpopupcorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWERS DISPLAYED IN POPUP MENUS
+% WHEN ON INCORRECT (WRONG) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Wrong_Popup_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagethreepopup"+theCount != undefined \)
+ showRightAnswer\("pagethreepopup"+theCount, "popupanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/epsfiles/wrongradiocorrect.eps b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongradiocorrect.eps
new file mode 100644
index 0000000000..8ac9e6063b
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/epsfiles/wrongradiocorrect.eps
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT RADIO BUTTON DISPLAYED
+% WHEN ON INCORRECT (WRONG) RESPONSE PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 90 30
+%%EndProlog
+
+[
+ /T (Wrong_Radio_Correct_Button)
+ /Rect [0 0 90 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /Ff 65540
+ /H /P
+ /AP << /N {Answer_Up} /D {Answer_Down} >>
+ /Action <<
+ /Subtype /JavaScript
+ /JS(
+ var undefined;
+ function showRightAnswer\(inAnswerName, inCorrectName\) {
+ var theAnswerField = this.getField\(inAnswerName\);
+ var theCorrectField = this.getField\(inCorrectName\);
+ if \( theAnswerField != undefined \) {
+ theAnswerField.value = theCorrectField.value;
+ }
+ }
+
+ for \(theCount = 1; theCount < 6; theCount++\) {
+ if \( "pagethreeradio"+theCount != undefined \)
+ showRightAnswer\("pagethreeradio"+theCount, "radioanswer"+theCount\);
+ }
+ )
+ >>
+/ANN pdfmark
+%%EOF
diff --git a/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook-web.sty b/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook-web.sty
new file mode 100644
index 0000000000..b4fbf96474
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook-web.sty
@@ -0,0 +1,991 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INTERACTIVEWORKBOOK STYLE FILE: put this file in /tex/latex/graphics file
+% if using MiKTeX for Windows
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{interactiveworkbook}[1999/06/04]
+
+\RequirePackage{epsfig} % allows text fields, to be placed anywhere on page
+\RequirePackage{color} % allows fonts to be colored
+\RequirePackage{xspace} % allows appropriate space after fieldone, say
+\RequirePackage{ifthen} % allows question taker to choose between clear, submit buttons
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON APPEARANCE: PREVIOUS, INDEX, NEXT, EXERQUES, SUBMIT, CLEAR, RETURN,
+% SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\AtBeginDocument{\epsfig{file=buttonappearance.eps,height=1bp,width=1bp}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% THREE PAGE OUTPUT FOR EACH QUESTION (ONE *EXERCISE* OFTEN HAS MANY QUESTIONS):
+% QUESTION (FIRST) PAGE, CORRECT (SECOND) PAGE, INCORRECT (THIRD) PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\questionandresponses}[7]{ % seven arguments
+ \setcounter{page}{1} % specifies "page one" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % put question, argument #5, on first page (of three) pages
+ \vfill
+ % locations of previous, index and next exercise files are [2], [3], [4], respectively
+ \prevsetup{#2} \ndexsetup{#3} \nextsetup{#4}
+ \begin{center} % Clear, argument #1, is either check, popup, field or radio
+ \clear{#1} \hfill \prev \ndex \next \hfill \submit{#1}
+ \end{center} % Previous, Index, Next, and Submit Buttons
+ % put correct response page on second page
+ \newpage
+ \setcounter{page}{2} % specifies "page two" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % repeat question, argument #5, on correct response page
+ \par\smallskip %
+ % blue correct answer hint is argument #6
+ \textcolor{blue}{#6} % give hint related to correct answer
+ \par\vfill %
+ % \correct (answer), argument #1, is either check, popup, field or radio
+ % \correct, argument #2, is found on the correct (response) page
+ \begin{center}
+ \correct{#1}{right} \hfill \prev \ndex \next \hfill \return
+ \end{center} % Return from response to question page
+ % put incorrect response page on third page
+ \newpage
+ \setcounter{page}{3} % specifies "page three" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % repeat question, argument #5, on incorrect response page
+ \par\smallskip %
+ % red incorrect answer hint is argument #7
+ \textcolor{red}{#7} % give hint related to correct answer
+ \par\vfill %
+ \begin{center} % \correct, argument #2, is found on the correct (response) page
+ \correct{#1}{wrong} \hfill \prev \ndex \next \hfill \return
+ \end{center} % Return from response to question page
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QUESTION *TAKER* ANSWERS: CHECK, FIELD, POPUP, RADIO
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% five check boxes, for question taker,
+% first click puts in "X" (button is "on"), second click removes "X" (button is "off")
+
+\newcommand{\checkone}{% check box one, for either page one, two or three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckone.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckone.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckone.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checktwo}{% check box two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonechecktwo.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwochecktwo.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreechecktwo.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkthree}{% check box three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckthree.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckthree.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckthree.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkfour}{% check box four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckfour.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckfour.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckfour.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkfive}{% check box five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckfive.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckfive.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckfive.eps,height=10bp}}{}
+ \relax\xspace%
+}
+
+% five text fields, for question taker
+
+\newcommand{\fieldone}{
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldone.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldtwo}{% text field two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldtwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldtwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldtwo.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldthree}{% text field three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldthree.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldfour}{% text field four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldfour.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldfive}{% text field five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldfive.eps,height=15bp}}{}
+ \relax\xspace%
+}
+
+% five popup menus, for question taker,
+% nine possible choices, a,b,c,d,e,f,g,h and i, each popup
+
+\newcommand{\popupone}{ % popup menu one, for pages one, two and three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupone.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popuptwo}{% popup menu two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopuptwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopuptwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopuptwo.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupthree}{% popup menu three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupthree.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupfour}{% popup menu four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupfour.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupfive}{% popup menu five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupfive.eps,height=15bp}}{}
+ \relax\xspace%
+}
+
+% five radio buttons, for question taker,
+% choose (only) one of five possible choices, a,b,c,d and e
+
+\newcommand{\radioone}{ % radio button one, 11by seems to be "right" height for radio button
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradioone.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadioone.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradioone.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiotwo}{% radio button two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiotwo.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiotwo.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiotwo.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiothree}{% radio button three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiothree.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiothree.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiothree.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiofour}{% radio button four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiofour.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiofour.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiofour.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiofive}{% radio button five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiofive.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiofive.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiofive.eps,height=11bp}}{}
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QUESTION *GIVER* ANSWERS, FOR CHECK, POPUP, FIELD, RADIO
+% DUMMY BUTTONS WHICH DO NOT APPEAR ON THE SCREEN
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% five check boxes, for question giver,
+% designates button "On" ("X") or "Off" (removes "X")
+
+\newcommand{\answercheckone}[1]{% check box answer one, argument [1] is "On" or "Off"
+ \special{ps::
+ [
+ /T (checkanswer1) % title is checkanswer1, used in checksubmit.eps
+ /Rect [0 0 30 30] % dummy check box print area, does not appear on screen
+ /Subtype /Widget % check box widget
+ /F 4 % printable, "X" or not "X"
+ /FT /Btn % type, check box
+ /V(#1) % argument #1 is value (when window first opened), which is "On" or "Off"
+ /DV(#1) % default value, if reset, is "On" or "Off", whatever argument #1 is
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerchecktwo}[1]{% check box answer two
+ \special{ps::
+ [
+ /T (checkanswer2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckthree}[1]{% check box answer three
+ \special{ps::
+ [
+ /T (checkanswer3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckfour}[1]{% check box answer four
+ \special{ps::
+ [
+ /T (checkanswer4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckfive}[1]{% check box answer five
+ \special{ps::
+ [
+ /T (checkanswer5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five popup menu answers, for question giver,
+% correct answers typed in tex files, as argument of "answerpopup..."
+
+\newcommand{\answerpopupone}[1]{% argument [1] text answer
+ \special{ps::
+ [
+ /T (popupanswer1) % question giver text *title* used in various submit.eps
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320] % dummy popup menu
+ /V (#1) % argument is question giver text
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopuptwo}[1]{
+ \special{ps::
+ [
+ /T (popupanswer2)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupthree}[1]{
+ \special{ps::
+ [
+ /T (popupanswer3)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupfour}[1]{
+ \special{ps::
+ [
+ /T (popupanswer4)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupfive}[1]{
+ \special{ps::
+ [
+ /T (popupanswer5)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five answers, for user,
+% correct answers typed in tex files, as argument of answerone, say
+
+\newcommand{\answerfieldone}[1]{% argument [1] text answer
+ \special{ps::
+ [
+ /T (fieldanswer1) % question giver text *title* used in various submit.eps
+ /Subtype /Widget
+ /FT /Tx % dummy text, required in definition of widget
+ /Rect [450 2290 750 2320] % dummy text field size
+ /F 4
+ /V (#1) % argument is question giver text
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldtwo}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer2)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldthree}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer3)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldfour}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer4)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldfive}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer5)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five radio button answers, for question giver,
+% only one of the five buttons may be "On", all others must be "Off"
+
+\newcommand{\answerradioone}[1]{ % radio button answer one, argument [1] is "On" or "Off"
+ \special{ps::
+ [
+ /T (radioanswer1) % title is radioanswer1, used in radiosubmit.eps
+ /Rect [0 0 30 30] % dummy radio button area
+ /Subtype /Widget % dummy radio button widget
+ /F 4 % printable, "On" or "Off"
+ /FT /Btn % type, radio button
+ /V(#1) % value (when window first opened) is "On" or "Off"
+ /DV(#1) % default value, if reset, is "On" or "Off", whatever argument #1 is
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiotwo}[1]{ % radio button answer two
+ \special{ps::
+ [
+ /T (radioanswer2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiothree}[1]{ % radio button answer three
+ \special{ps::
+ [
+ /T (radioanswer3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiofour}[1]{ % radio answer four
+ \special{ps::
+ [
+ /T (radioanswer4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiofive}[1]{% radio answer five
+ \special{ps::
+ [
+ /T (radioanswer5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PREVIOUS, INDEX, NEXT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% two newcommands required (because of difficulty of changing ps "real time") for "Prev" button
+% prevsetup newcommand uses ps, allows question giver input argument, [1]
+% prev newcommand uses eps, allows prev button to be placed anywhere on question page
+
+\newcommand{\prevsetup}[1]{% sets up previous action, allows question giver input, argument [1]
+ \special{ps::
+ [/_objdef {prev_def} /type /dict /OBJ pdfmark % defines previous button
+ [ {prev_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\prev}{% executes previous action (with argument [1]), prev button placed anywhere
+ \epsfig{file=prev.eps,height=15bp}%
+ \relax\xspace % spaces button properly with respect to other buttons, text
+}
+
+\newcommand{\ndexsetup}[1]{%
+ \special{ps::
+ [/_objdef {ndex_def} /type /dict /OBJ pdfmark
+ [ {ndex_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\ndex}{
+ \epsfig{file=ndex.eps,height=15bp}%
+ \relax\xspace
+}
+
+\newcommand{\nextsetup}[1]{% sets up next action, allows question giver input, argument [1]
+ \special{ps::
+ [/_objdef {next_def} /type /dict /OBJ pdfmark % defines next button
+ [ {next_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\next}{% executes next action (with argument [1]), next button placed anywhere
+ \epsfig{file=next.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERQUES BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\exerquessetupone}[1]{% sets up exerques1 action
+ \special{ps::
+ [/_objdef {exerques_def1} /type /dict /OBJ pdfmark
+ [ {exerques_def1} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwo}[1]{
+ \special{ps::
+ [/_objdef {exerques_def2} /type /dict /OBJ pdfmark
+ [ {exerques_def2} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupthree}[1]{
+ \special{ps::
+ [/_objdef {exerques_def3} /type /dict /OBJ pdfmark
+ [ {exerques_def3} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfour}[1]{
+ \special{ps::
+ [/_objdef {exerques_def4} /type /dict /OBJ pdfmark
+ [ {exerques_def4} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupfive}[1]{
+ \special{ps::
+ [/_objdef {exerques_def5} /type /dict /OBJ pdfmark
+ [ {exerques_def5} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupsix}[1]{
+ \special{ps::
+ [/_objdef {exerques_def6} /type /dict /OBJ pdfmark
+ [ {exerques_def6} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupseven}[1]{
+ \special{ps::
+ [/_objdef {exerques_def7} /type /dict /OBJ pdfmark
+ [ {exerques_def7} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeight}[1]{
+ \special{ps::
+ [/_objdef {exerques_def8} /type /dict /OBJ pdfmark
+ [ {exerques_def8} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupnine}[1]{
+ \special{ps::
+ [/_objdef {exerques_def9} /type /dict /OBJ pdfmark
+ [ {exerques_def9} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupten}[1]{
+ \special{ps::
+ [/_objdef {exerques_def10} /type /dict /OBJ pdfmark
+ [ {exerques_def10} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeleven}[1]{
+ \special{ps::
+ [/_objdef {exerques_def11} /type /dict /OBJ pdfmark
+ [ {exerques_def11} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwelve}[1]{
+ \special{ps::
+ [/_objdef {exerques_def12} /type /dict /OBJ pdfmark
+ [ {exerques_def12} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupthirteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def13} /type /dict /OBJ pdfmark
+ [ {exerques_def13} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfourteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def14} /type /dict /OBJ pdfmark
+ [ {exerques_def14} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfifteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def15} /type /dict /OBJ pdfmark
+ [ {exerques_def15} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupsixteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def16} /type /dict /OBJ pdfmark
+ [ {exerques_def16} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupseventeen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def17} /type /dict /OBJ pdfmark
+ [ {exerques_def17} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeighteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def18} /type /dict /OBJ pdfmark
+ [ {exerques_def18} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupnineteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def19} /type /dict /OBJ pdfmark
+ [ {exerques_def19} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwenty}[1]{
+ \special{ps::
+ [/_objdef {exerques_def20} /type /dict /OBJ pdfmark
+ [ {exerques_def20} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquesone}{% executes exerques1 action, button placed anywhere
+ \epsfig{file=exerques1.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwo}{
+ \epsfig{file=exerques2.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesthree}{
+ \epsfig{file=exerques3.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfour}{
+ \epsfig{file=exerques4.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesfive}{
+ \epsfig{file=exerques5.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquessix}{
+ \epsfig{file=exerques6.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesseven}{
+ \epsfig{file=exerques7.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseight}{
+ \epsfig{file=exerques8.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesnine}{
+ \epsfig{file=exerques9.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesten}{
+ \epsfig{file=exerques10.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseleven}{
+ \epsfig{file=exerques11.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwelve}{
+ \epsfig{file=exerques12.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesthirteen}{
+ \epsfig{file=exerques13.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfourteen}{
+ \epsfig{file=exerques14.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfifteen}{
+ \epsfig{file=exerques15.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquessixteen}{
+ \epsfig{file=exerques16.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesseventeen}{
+ \epsfig{file=exerques17.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseighteen}{
+ \epsfig{file=exerques18.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesnineteen}{
+ \epsfig{file=exerques19.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwenty}{
+ \epsfig{file=exerques20.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INDEX INTRODUCTION TO EXERCISE OF QUESTIONS
+% USED TO GROUP QUESTIONS TOGETHER INTO ONE EXERCISE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\exerciseintroduction}[1]{\textcolor{black}{#1}} % index introduction is argument #1
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SUBMIT (TEXT, POPUP, FIELD, RADIO) BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\checksubmit}{% button, when pressed, goes to either correct or incorrect page
+ \epsfig{file=checksubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\fieldsubmit}{
+ \epsfig{file=fieldsubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\popupsubmit}{
+ \epsfig{file=popupsubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\radiosubmit}{
+ \epsfig{file=radiosubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\submit}[1]{ % pick type of submit button
+ \ifthenelse{\equal{#1}{check}}{\checksubmit}{}%
+ \ifthenelse{\equal{#1}{popup}}{\popupsubmit}{}%
+ \ifthenelse{\equal{#1}{field}}{\fieldsubmit}{}%
+ \ifthenelse{\equal{#1}{radio}}{\radiosubmit}{}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWER (CHECK, FIELD, POPUP, RADIO) BUTTON
+% DISPLAYS CORRECT (QUESTION GIVER) ANSWERS
+% CORRECT (RIGHT) RESPONSE AND INCORRECT (WRONG) RESPONSE BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\rightcheckcorrect}{ % checks off correct (question giver) check boxes with answers
+ \epsfig{file=rightcheckcorrect.eps,height=15bp} % when on right (correct) response page
+ \relax\xspace%
+}
+\newcommand{\wrongcheckcorrect}{ % checks off correct (question giver) check boxes with answers
+ \epsfig{file=wrongcheckcorrect.eps,height=15bp} % when on wrong (correct) response page
+ \relax\xspace%
+}
+\newcommand{\rightfieldcorrect}{% fills in correct (question giver) text field answers
+ \epsfig{file=rightfieldcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongfieldcorrect}{% fills in incorrect (question giver) text field answers
+ \epsfig{file=wrongfieldcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\rightpopupcorrect}{% chooses correct (question giver) popup menu answers
+ \epsfig{file=rightpopupcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongpopupcorrect}{% chooses incorrect (question giver) popup menu answers
+ \epsfig{file=wrongpopupcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\rightradiocorrect}{% selects correct (question giver) radio button answer
+ \epsfig{file=rightradiocorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongradiocorrect}{% selects incorrect (question giver) radio button answer
+ \epsfig{file=wrongradiocorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\correct}[2]{ % arg #1 type of button, arg #2 correct or incorrect response page
+% if check button, then either right (correct) response page or wrong (incorrect) response page
+ \ifthenelse{ \equal{#1}{check} }
+ { \ifthenelse{\equal{#2}{right}}{\rightcheckcorrect}{\wrongcheckcorrect} }
+ {} % if *not* check button, then must be another type of button
+ \ifthenelse{ \equal{#1}{popup} }
+ { \ifthenelse{\equal{#2}{right}}{\rightpopupcorrect}{\wrongpopupcorrect} }
+ {}
+ \ifthenelse{ \equal{#1}{field} }
+ { \ifthenelse{\equal{#2}{right}}{\rightfieldcorrect}{\wrongfieldcorrect} }
+ {}
+ \ifthenelse{ \equal{#1}{radio} }
+ { \ifthenelse{\equal{#2}{right}}{\rightradiocorrect}{\wrongradiocorrect} }
+ {}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CLEAR (CHECK, FIELD, POPUP, RADIO) BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\checkclear}{% clears all check box answers
+ \epsfig{file=checkclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\fieldclear}{% clears user text field answers
+ \epsfig{file=fieldclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\popupclear}{% clears user popup menu answers
+ \epsfig{file=popupclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\radioclear}{% clears user radio button answers
+ \epsfig{file=radioclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\clear}[1]{ % pick type of clear button
+ \ifthenelse{\equal{#1}{check}}{\checkclear}{}
+ \ifthenelse{\equal{#1}{popup}}{\popupclear}{}
+ \ifthenelse{\equal{#1}{field}}{\fieldclear}{}
+ \ifthenelse{\equal{#1}{radio}}{\radioclear}{}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RETURN BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\return}{% button, when pressed, goes to question (first, zeroth) pg of question
+ \epsfig{file=return.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SCREEN VIEW PREFERENCES
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\special{ps::
+ [{Catalog}
+ << /ViewerPreferences <<
+ /HideToolbar true
+ /FitWindow true % also, set general preference "fit in window" in Acrobat Reader
+ /CenterWindow true
+ /PageLayout /SinglePage
+ /HideWindowUI true
+ >>
+ >>
+ /PUT pdfmark
+}%
+
+% defines given URL as base URL for all relative Internet links in document
+
+\special{ps::
+ [{Catalog}
+ << /URL <<
+ /Base (http://faculty.purduenc.edu/jkuhn/distance-learning/ndex.pdf)
+ >>
+ >>
+ /PUT pdfmark
+}%
+
+% set crop box for 4in by 4in page
+% this is specific to PS->PDF conversion (?)
+
+\special{ps::
+ [ /CropBox [ 0 432 360 792 ] /PAGES pdfmark
+}%
+
+% latex commands
+
+% shrink the page size
+
+\setlength\paperheight{5in}
+\setlength\paperwidth{5in}
+
+% eliminate the offsets
+
+\setlength{\hoffset}{-1in}
+\setlength{\voffset}{-1in}
+
+% 1/2 inch margin on left and top
+
+\setlength{\oddsidemargin}{0.3in}
+\setlength{\topmargin}{0.5in}
+
+% header takes up 1/2 inch
+
+\setlength{\headheight}{0.3in}
+\setlength{\headsep}{0.2in}
+
+% 1/2 margin on the bottom and right
+
+\setlength{\textheight}{4in}
+\setlength{\textwidth}{4.4in}
+
+% no margin paragraphs
+
+\setlength{\marginparsep}{0in}
+\setlength{\marginparwidth}{0in}
+
+% footer takes up 1/2 inch
+
+\setlength{\footskip}{0in}
+
+% pages not numbered
+
+\pagestyle{empty}
+
+\endinput
diff --git a/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook.sty b/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook.sty
new file mode 100644
index 0000000000..b866190584
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/interactiveworkbook.sty/interactiveworkbook.sty
@@ -0,0 +1,980 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INTERACTIVEWORKBOOK STYLE FILE: put this file in /tex/latex/graphics file
+% if using MiKTeX for Windows
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{interactiveworkbook}[1999/06/04]
+
+\RequirePackage{epsfig} % allows text fields, to be placed anywhere on page
+\RequirePackage{color} % allows fonts to be colored
+\RequirePackage{xspace} % allows appropriate space after fieldone, say
+\RequirePackage{ifthen} % allows question taker to choose between clear, submit buttons
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% BUTTON APPEARANCE: PREVIOUS, INDEX, NEXT, EXERQUES, SUBMIT, CLEAR, RETURN,
+% SELECTED (UP) AND UNSELECTED (DOWN)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\AtBeginDocument{\epsfig{file=buttonappearance.eps,height=1bp,width=1bp}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% THREE PAGE OUTPUT FOR EACH QUESTION (ONE *EXERCISE* OFTEN HAS MANY QUESTIONS):
+% QUESTION (FIRST) PAGE, CORRECT (SECOND) PAGE, INCORRECT (THIRD) PAGE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\questionandresponses}[7]{ % seven arguments
+ \setcounter{page}{1} % specifies "page one" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % put question, argument #5, on first page (of three) pages
+ \vfill
+ % locations of previous, index and next exercise files are [2], [3], [4], respectively
+ \prevsetup{#2} \ndexsetup{#3} \nextsetup{#4}
+ \begin{center} % Clear, argument #1, is either check, popup, field or radio
+ \clear{#1} \hfill \prev \ndex \next \hfill \submit{#1}
+ \end{center} % Previous, Index, Next, and Submit Buttons
+ % put correct response page on second page
+ \newpage
+ \setcounter{page}{2} % specifies "page two" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % repeat question, argument #5, on correct response page
+ \par\smallskip %
+ % blue correct answer hint is argument #6
+ \textcolor{blue}{#6} % give hint related to correct answer
+ \par\vfill %
+ % \correct (answer), argument #1, is either check, popup, field or radio
+ % \correct, argument #2, is found on the correct (response) page
+ \begin{center}
+ \correct{#1}{right} \hfill \prev \ndex \next \hfill \return
+ \end{center} % Return from response to question page
+ % put incorrect response page on third page
+ \newpage
+ \setcounter{page}{3} % specifies "page three" versions of check, popup, field and radio buttons
+ \textcolor{black}{#5} % repeat question, argument #5, on incorrect response page
+ \par\smallskip %
+ % red incorrect answer hint is argument #7
+ \textcolor{red}{#7} % give hint related to correct answer
+ \par\vfill %
+ \begin{center} % \correct, argument #2, is found on the correct (response) page
+ \correct{#1}{wrong} \hfill \prev \ndex \next \hfill \return
+ \end{center} % Return from response to question page
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QUESTION *TAKER* ANSWERS: CHECK, FIELD, POPUP, RADIO
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% five check boxes, for question taker,
+% first click puts in "X" (button is "on"), second click removes "X" (button is "off")
+
+\newcommand{\checkone}{% check box one, for either page one, two or three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckone.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckone.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckone.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checktwo}{% check box two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonechecktwo.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwochecktwo.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreechecktwo.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkthree}{% check box three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckthree.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckthree.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckthree.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkfour}{% check box four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckfour.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckfour.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckfour.eps,height=10bp}}{}
+ \relax\xspace%
+}
+\newcommand{\checkfive}{% check box five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonecheckfive.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwocheckfive.eps,height=10bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreecheckfive.eps,height=10bp}}{}
+ \relax\xspace%
+}
+
+% five text fields, for question taker
+
+\newcommand{\fieldone}{
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldone.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldtwo}{% text field two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldtwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldtwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldtwo.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldthree}{% text field three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldthree.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldfour}{% text field four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldfour.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\fieldfive}{% text field five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonefieldfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwofieldfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreefieldfive.eps,height=15bp}}{}
+ \relax\xspace%
+}
+
+% five popup menus, for question taker,
+% nine possible choices, a,b,c,d,e,f,g,h and i, each popup
+
+\newcommand{\popupone}{ % popup menu one, for pages one, two and three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupone.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupone.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popuptwo}{% popup menu two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopuptwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopuptwo.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopuptwo.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupthree}{% popup menu three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupthree.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupthree.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupfour}{% popup menu four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupfour.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupfour.eps,height=15bp}}{}
+ \relax\xspace%
+}
+\newcommand{\popupfive}{% popup menu five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageonepopupfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetwopopupfive.eps,height=15bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreepopupfive.eps,height=15bp}}{}
+ \relax\xspace%
+}
+
+% five radio buttons, for question taker,
+% choose (only) one of five possible choices, a,b,c,d and e
+
+\newcommand{\radioone}{ % radio button one, 11by seems to be "right" height for radio button
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradioone.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadioone.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradioone.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiotwo}{% radio button two
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiotwo.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiotwo.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiotwo.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiothree}{% radio button three
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiothree.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiothree.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiothree.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiofour}{% radio button four
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiofour.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiofour.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiofour.eps,height=11bp}}{}
+ \relax\xspace%
+}
+\newcommand{\radiofive}{% radio button five
+ \ifthenelse{\equal{\value{page}}{1}}{\epsfig{file=pageoneradiofive.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{2}}{\epsfig{file=pagetworadiofive.eps,height=11bp}}{}
+ \ifthenelse{\equal{\value{page}}{3}}{\epsfig{file=pagethreeradiofive.eps,height=11bp}}{}
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% QUESTION *GIVER* ANSWERS, FOR CHECK, POPUP, FIELD, RADIO
+% DUMMY BUTTONS WHICH DO NOT APPEAR ON THE SCREEN
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% five check boxes, for question giver,
+% designates button "On" ("X") or "Off" (removes "X")
+
+\newcommand{\answercheckone}[1]{% check box answer one, argument [1] is "On" or "Off"
+ \special{ps::
+ [
+ /T (checkanswer1) % title is checkanswer1, used in checksubmit.eps
+ /Rect [0 0 30 30] % dummy check box print area, does not appear on screen
+ /Subtype /Widget % check box widget
+ /F 4 % printable, "X" or not "X"
+ /FT /Btn % type, check box
+ /V(#1) % argument #1 is value (when window first opened), which is "On" or "Off"
+ /DV(#1) % default value, if reset, is "On" or "Off", whatever argument #1 is
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerchecktwo}[1]{% check box answer two
+ \special{ps::
+ [
+ /T (checkanswer2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckthree}[1]{% check box answer three
+ \special{ps::
+ [
+ /T (checkanswer3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckfour}[1]{% check box answer four
+ \special{ps::
+ [
+ /T (checkanswer4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answercheckfive}[1]{% check box answer five
+ \special{ps::
+ [
+ /T (checkanswer5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /DV(#1)
+ /V(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five popup menu answers, for question giver,
+% correct answers typed in tex files, as argument of "answerpopup..."
+
+\newcommand{\answerpopupone}[1]{% argument [1] text answer
+ \special{ps::
+ [
+ /T (popupanswer1) % question giver text *title* used in various submit.eps
+ /Subtype /Widget
+ /FT /Ch % popup (choice, list) menu
+ /Ff 393216 % popup list
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320] % dummy popup menu
+ /V (#1) % argument is question giver text
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopuptwo}[1]{
+ \special{ps::
+ [
+ /T (popupanswer2)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupthree}[1]{
+ \special{ps::
+ [
+ /T (popupanswer3)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupfour}[1]{
+ \special{ps::
+ [
+ /T (popupanswer4)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerpopupfive}[1]{
+ \special{ps::
+ [
+ /T (popupanswer5)
+ /Subtype /Widget
+ /FT /Ch
+ /Ff 393216
+ /Opt [ [(a)(a)] [(b)(b)] [(c)(c)] [(d)(d)] [(e)(e)] [(f)(f)] [(g)(g)] [(h)(h)] [(i)(i)] ]
+ /Rect [500 2290 560 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five answers, for user,
+% correct answers typed in tex files, as argument of answerone, say
+
+\newcommand{\answerfieldone}[1]{% argument [1] text answer
+ \special{ps::
+ [
+ /T (fieldanswer1) % question giver text *title* used in various submit.eps
+ /Subtype /Widget
+ /FT /Tx % dummy text, required in definition of widget
+ /Rect [450 2290 750 2320] % dummy text field size
+ /F 4
+ /V (#1) % argument is question giver text
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldtwo}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer2)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldthree}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer3)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1) % argument is question giver text
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldfour}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer4)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerfieldfive}[1]{
+ \special{ps::
+ [
+ /T (fieldanswer5)
+ /Subtype /Widget
+ /FT /Tx
+ /Rect [450 2290 750 2320]
+ /F 4
+ /V (#1)
+ /DV (#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+% five radio button answers, for question giver,
+% only one of the five buttons may be "On", all others must be "Off"
+
+\newcommand{\answerradioone}[1]{ % radio button answer one, argument [1] is "On" or "Off"
+ \special{ps::
+ [
+ /T (radioanswer1) % title is radioanswer1, used in radiosubmit.eps
+ /Rect [0 0 30 30] % dummy radio button area
+ /Subtype /Widget % dummy radio button widget
+ /F 4 % printable, "On" or "Off"
+ /FT /Btn % type, radio button
+ /V(#1) % value (when window first opened) is "On" or "Off"
+ /DV(#1) % default value, if reset, is "On" or "Off", whatever argument #1 is
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiotwo}[1]{ % radio button answer two
+ \special{ps::
+ [
+ /T (radioanswer2)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiothree}[1]{ % radio button answer three
+ \special{ps::
+ [
+ /T (radioanswer3)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiofour}[1]{ % radio answer four
+ \special{ps::
+ [
+ /T (radioanswer4)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+\newcommand{\answerradiofive}[1]{% radio answer five
+ \special{ps::
+ [
+ /T (radioanswer5)
+ /Rect [0 0 30 30]
+ /Subtype /Widget
+ /F 4
+ /FT /Btn
+ /V(#1)
+ /DV(#1)
+ /ANN pdfmark
+ }%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% PREVIOUS, INDEX, NEXT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% two newcommands required (because of difficulty of changing ps "real time") for "Prev" button
+% prevsetup newcommand uses ps, allows question giver input argument, [1]
+% prev newcommand uses eps, allows prev button to be placed anywhere on question page
+
+\newcommand{\prevsetup}[1]{% sets up previous action, allows question giver input, argument [1]
+ \special{ps::
+ [/_objdef {prev_def} /type /dict /OBJ pdfmark % defines previous button
+ [ {prev_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\prev}{% executes previous action (with argument [1]), prev button placed anywhere
+ \epsfig{file=prev.eps,height=15bp}%
+ \relax\xspace % spaces button properly with respect to other buttons, text
+}
+
+\newcommand{\ndexsetup}[1]{%
+ \special{ps::
+ [/_objdef {ndex_def} /type /dict /OBJ pdfmark
+ [ {ndex_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\ndex}{
+ \epsfig{file=ndex.eps,height=15bp}%
+ \relax\xspace
+}
+
+\newcommand{\nextsetup}[1]{% sets up next action, allows question giver input, argument [1]
+ \special{ps::
+ [/_objdef {next_def} /type /dict /OBJ pdfmark % defines next button
+ [ {next_def} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\next}{% executes next action (with argument [1]), next button placed anywhere
+ \epsfig{file=next.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% EXERQUES BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\exerquessetupone}[1]{% sets up exerques1 action
+ \special{ps::
+ [/_objdef {exerques_def1} /type /dict /OBJ pdfmark
+ [ {exerques_def1} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwo}[1]{
+ \special{ps::
+ [/_objdef {exerques_def2} /type /dict /OBJ pdfmark
+ [ {exerques_def2} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupthree}[1]{
+ \special{ps::
+ [/_objdef {exerques_def3} /type /dict /OBJ pdfmark
+ [ {exerques_def3} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfour}[1]{
+ \special{ps::
+ [/_objdef {exerques_def4} /type /dict /OBJ pdfmark
+ [ {exerques_def4} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupfive}[1]{
+ \special{ps::
+ [/_objdef {exerques_def5} /type /dict /OBJ pdfmark
+ [ {exerques_def5} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupsix}[1]{
+ \special{ps::
+ [/_objdef {exerques_def6} /type /dict /OBJ pdfmark
+ [ {exerques_def6} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupseven}[1]{
+ \special{ps::
+ [/_objdef {exerques_def7} /type /dict /OBJ pdfmark
+ [ {exerques_def7} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeight}[1]{
+ \special{ps::
+ [/_objdef {exerques_def8} /type /dict /OBJ pdfmark
+ [ {exerques_def8} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupnine}[1]{
+ \special{ps::
+ [/_objdef {exerques_def9} /type /dict /OBJ pdfmark
+ [ {exerques_def9} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupten}[1]{
+ \special{ps::
+ [/_objdef {exerques_def10} /type /dict /OBJ pdfmark
+ [ {exerques_def10} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeleven}[1]{
+ \special{ps::
+ [/_objdef {exerques_def11} /type /dict /OBJ pdfmark
+ [ {exerques_def11} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwelve}[1]{
+ \special{ps::
+ [/_objdef {exerques_def12} /type /dict /OBJ pdfmark
+ [ {exerques_def12} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupthirteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def13} /type /dict /OBJ pdfmark
+ [ {exerques_def13} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfourteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def14} /type /dict /OBJ pdfmark
+ [ {exerques_def14} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupfifteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def15} /type /dict /OBJ pdfmark
+ [ {exerques_def15} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupsixteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def16} /type /dict /OBJ pdfmark
+ [ {exerques_def16} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquessetupseventeen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def17} /type /dict /OBJ pdfmark
+ [ {exerques_def17} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupeighteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def18} /type /dict /OBJ pdfmark
+ [ {exerques_def18} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetupnineteen}[1]{
+ \special{ps::
+ [/_objdef {exerques_def19} /type /dict /OBJ pdfmark
+ [ {exerques_def19} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+\newcommand{\exerquessetuptwenty}[1]{
+ \special{ps::
+ [/_objdef {exerques_def20} /type /dict /OBJ pdfmark
+ [ {exerques_def20} << /Type /Action /S /Launch /F (#1) /NewWindow false >> /PUT pdfmark
+ }%
+}
+
+\newcommand{\exerquesone}{% executes exerques1 action, button placed anywhere
+ \epsfig{file=exerques1.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwo}{
+ \epsfig{file=exerques2.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesthree}{
+ \epsfig{file=exerques3.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfour}{
+ \epsfig{file=exerques4.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesfive}{
+ \epsfig{file=exerques5.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquessix}{
+ \epsfig{file=exerques6.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesseven}{
+ \epsfig{file=exerques7.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseight}{
+ \epsfig{file=exerques8.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesnine}{
+ \epsfig{file=exerques9.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesten}{
+ \epsfig{file=exerques10.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseleven}{
+ \epsfig{file=exerques11.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwelve}{
+ \epsfig{file=exerques12.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesthirteen}{
+ \epsfig{file=exerques13.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfourteen}{
+ \epsfig{file=exerques14.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesfifteen}{
+ \epsfig{file=exerques15.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquessixteen}{
+ \epsfig{file=exerques16.eps,height=15bp}%
+ \relax\xspace%
+}
+
+\newcommand{\exerquesseventeen}{
+ \epsfig{file=exerques17.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerqueseighteen}{
+ \epsfig{file=exerques18.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquesnineteen}{
+ \epsfig{file=exerques19.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\exerquestwenty}{
+ \epsfig{file=exerques20.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INDEX INTRODUCTION TO EXERCISE OF QUESTIONS
+% USED TO GROUP QUESTIONS TOGETHER INTO ONE EXERCISE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\exerciseintroduction}[1]{\textcolor{black}{#1}} % index introduction is argument #1
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SUBMIT (TEXT, POPUP, FIELD, RADIO) BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\checksubmit}{% button, when pressed, goes to either correct or incorrect page
+ \epsfig{file=checksubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\fieldsubmit}{
+ \epsfig{file=fieldsubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\popupsubmit}{
+ \epsfig{file=popupsubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\radiosubmit}{
+ \epsfig{file=radiosubmit.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\submit}[1]{ % pick type of submit button
+ \ifthenelse{\equal{#1}{check}}{\checksubmit}{}%
+ \ifthenelse{\equal{#1}{popup}}{\popupsubmit}{}%
+ \ifthenelse{\equal{#1}{field}}{\fieldsubmit}{}%
+ \ifthenelse{\equal{#1}{radio}}{\radiosubmit}{}%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CORRECT ANSWER (CHECK, FIELD, POPUP, RADIO) BUTTON
+% DISPLAYS CORRECT (QUESTION GIVER) ANSWERS
+% CORRECT (RIGHT) RESPONSE AND INCORRECT (WRONG) RESPONSE BUTTONS
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\rightcheckcorrect}{ % checks off correct (question giver) check boxes with answers
+ \epsfig{file=rightcheckcorrect.eps,height=15bp} % when on right (correct) response page
+ \relax\xspace%
+}
+\newcommand{\wrongcheckcorrect}{ % checks off correct (question giver) check boxes with answers
+ \epsfig{file=wrongcheckcorrect.eps,height=15bp} % when on wrong (correct) response page
+ \relax\xspace%
+}
+\newcommand{\rightfieldcorrect}{% fills in correct (question giver) text field answers
+ \epsfig{file=rightfieldcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongfieldcorrect}{% fills in incorrect (question giver) text field answers
+ \epsfig{file=wrongfieldcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\rightpopupcorrect}{% chooses correct (question giver) popup menu answers
+ \epsfig{file=rightpopupcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongpopupcorrect}{% chooses incorrect (question giver) popup menu answers
+ \epsfig{file=wrongpopupcorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\rightradiocorrect}{% selects correct (question giver) radio button answer
+ \epsfig{file=rightradiocorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\wrongradiocorrect}{% selects incorrect (question giver) radio button answer
+ \epsfig{file=wrongradiocorrect.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\correct}[2]{ % arg #1 type of button, arg #2 correct or incorrect response page
+% if check button, then either right (correct) response page or wrong (incorrect) response page
+ \ifthenelse{ \equal{#1}{check} }
+ { \ifthenelse{\equal{#2}{right}}{\rightcheckcorrect}{\wrongcheckcorrect} }
+ {} % if *not* check button, then must be another type of button
+ \ifthenelse{ \equal{#1}{popup} }
+ { \ifthenelse{\equal{#2}{right}}{\rightpopupcorrect}{\wrongpopupcorrect} }
+ {}
+ \ifthenelse{ \equal{#1}{field} }
+ { \ifthenelse{\equal{#2}{right}}{\rightfieldcorrect}{\wrongfieldcorrect} }
+ {}
+ \ifthenelse{ \equal{#1}{radio} }
+ { \ifthenelse{\equal{#2}{right}}{\rightradiocorrect}{\wrongradiocorrect} }
+ {}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CLEAR (CHECK, FIELD, POPUP, RADIO) BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\checkclear}{% clears all check box answers
+ \epsfig{file=checkclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\fieldclear}{% clears user text field answers
+ \epsfig{file=fieldclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\popupclear}{% clears user popup menu answers
+ \epsfig{file=popupclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\radioclear}{% clears user radio button answers
+ \epsfig{file=radioclear.eps,height=15bp}%
+ \relax\xspace%
+}
+\newcommand{\clear}[1]{ % pick type of clear button
+ \ifthenelse{\equal{#1}{check}}{\checkclear}{}
+ \ifthenelse{\equal{#1}{popup}}{\popupclear}{}
+ \ifthenelse{\equal{#1}{field}}{\fieldclear}{}
+ \ifthenelse{\equal{#1}{radio}}{\radioclear}{}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RETURN BUTTON
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\return}{% button, when pressed, goes to question (first, zeroth) pg of question
+ \epsfig{file=return.eps,height=15bp}%
+ \relax\xspace%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% SCREEN VIEW PREFERENCES
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\special{ps::
+ [{Catalog}
+ << /ViewerPreferences <<
+ /HideToolbar true
+ /FitWindow true % also, set general preference "fit in window" in Acrobat Reader
+ /CenterWindow true
+ /PageLayout /SinglePage
+ /HideWindowUI true
+ >>
+ >>
+ /PUT pdfmark
+}%
+
+% set crop box for 4in by 4in page
+% this is specific to PS->PDF conversion (?)
+
+\special{ps::
+ [ /CropBox [ 0 432 360 792 ] /PAGES pdfmark
+}%
+
+% latex commands
+
+% shrink the page size
+
+\setlength\paperheight{5in}
+\setlength\paperwidth{5in}
+
+% eliminate the offsets
+
+\setlength{\hoffset}{-1in}
+\setlength{\voffset}{-1in}
+
+% 1/2 inch margin on left and top
+
+\setlength{\oddsidemargin}{0.3in}
+\setlength{\topmargin}{0.5in}
+
+% header takes up 1/2 inch
+
+\setlength{\headheight}{0.3in}
+\setlength{\headsep}{0.2in}
+
+% 1/2 margin on the bottom and right
+
+\setlength{\textheight}{4in}
+\setlength{\textwidth}{4.4in}
+
+% no margin paragraphs
+
+\setlength{\marginparsep}{0in}
+\setlength{\marginparwidth}{0in}
+
+% footer takes up 1/2 inch
+
+\setlength{\footskip}{0in}
+
+% pages not numbered
+
+\pagestyle{empty}
+
+\endinput
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/check.pdf b/macros/latex/contrib/interactiveworkbook/samplefiles/check.pdf
new file mode 100644
index 0000000000..668305a3cb
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/check.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/check.tex b/macros/latex/contrib/interactiveworkbook/samplefiles/check.tex
new file mode 100644
index 0000000000..66e3544404
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/check.tex
@@ -0,0 +1,36 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% CHECK BOX LATEX FILE EXAMPLE: USES QUESTIONANDRESPONSES COMMAND, 7 ARGUMENTS
+% 1ST ARGUMENT INDICATES THIS IS "CHECK" TYPE QUESTION
+% 2ND, 3RD, 4TH ARGUMENTS GIVE NAMES OF PREVIOUS, INDEX, NEXT LINKING FILES
+% 5TH ARGUMENT GIVES QUESTION, WITH UP TO 5 CHECK BOXES, AND
+% WHETHER OR NOT THESE CHECK BOXES ARE "ON" OR "OFF"
+% ANY WHERE FROM NONE TO FIVE CHECK BOXES ARE ALLOWED TO BE "ON"
+% 6TH, 7TH ARGUMENTS GIVE RESPONSES IF USER ANSWER CORRECT OR INCORRECT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[dvips]{article}
+\usepackage{interactiveworkbook} % put in style directory; cannot appear in any other directory
+
+\begin{document}
+
+% question and responses has *seven* arguments
+\questionandresponses{check} % check box kind of question
+{ndex.pdf}{ndex.pdf}{popup.pdf} % previous, index and next files are 2nd, 3rd, 4th arguments
+{Question 1. $\;$ A multiple check box question. \\ \\ % question is 5th argument
+ % "checkbox..." is for question taker, "answercheck..." is for question giver
+ % "checkbox..." appears on screen; "answercheck..." does not appear on screen
+ % up to five check boxes can be "X"ed
+ \noindent
+ \checkone Off \answercheckone{Off} \\
+ % correct answer, next, has check box "On" ("X"ed)
+ \checktwo On \answerchecktwo{On} \\
+ % correct answer, next, "Off" (un"X"ed)
+ \checkthree {\it no} X \answercheckthree{Off} \\
+ \checkfour X \answercheckfour{On} \\
+ \checkfive {\it do not} click \answercheckfive{Off}
+} % end of 5th argument
+{Yes, correct.} % correct response hint is 6th argument
+{No, try again.} % incorrect response hint is 7th argument
+
+\end{document}
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/field.pdf b/macros/latex/contrib/interactiveworkbook/samplefiles/field.pdf
new file mode 100644
index 0000000000..97d13ecf66
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/field.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/field.tex b/macros/latex/contrib/interactiveworkbook/samplefiles/field.tex
new file mode 100644
index 0000000000..99dbd57be0
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/field.tex
@@ -0,0 +1,39 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TEXT FIELD LATEX FILE EXAMPLE: USES QUESTIONANDRESPONSES COMMAND, 7 ARGUMENTS
+% 1ST ARGUMENT INDICATES THIS IS "FIELD" TYPE QUESTION
+% 2ND, 3RD, 4TH ARGUMENTS GIVE NAMES OF PREVIOUS, INDEX, NEXT LINKING FILES
+% 5TH ARGUMENT GIVES QUESTION, WITH UP TO 5
+% BLANK TEXT FIELDS FOR QUESTION TAKER (USER); APPEAR ON SCREEN
+% ANSWER TEXT FIELDS FOR QUESTION GIVER; DO NOT APPEAR ON SCREEN
+% 6TH, 7TH ARGUMENTS GIVE RESPONSES IF USER ANSWER CORRECT OR INCORRECT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[dvips]{article}
+\usepackage{interactiveworkbook} % put in style directory; cannot appear in any other directory
+
+\begin{document}
+
+\questionandresponses{field} % tells style file choose fieldclear, fieldsubmit buttons
+{popup.pdf}{ndex.pdf}{radio.pdf} % previous, index and next files are 2nd, 3rd, 4th arguments
+{ % question and responses has *seven* arguments
+ Question 3. $\;$ A multiple text field question.
+ % question is 5th argument
+ \begin{center}
+ % "field..." shows blank text fields on screen; "answerfield..." not shown on screen
+ % question taker (user) types answer in "field..."; question giver uses "answer..."
+ % question taker types answer text "one" into argument of \answerfieldone{}
+ one \fieldone \answerfieldone{one} \\
+ two \fieldtwo \answerfieldtwo{two} \\ % question giver gives answer "two" in this case
+ three \fieldthree \answerfieldthree{three} \\
+ four \fieldfour \answerfieldfour{four} \\
+ five \fieldfive \answerfieldfive{five} % all five text fields do not have to be used
+ \end{center}
+} % end of first argument; "}" *must* appear after last line of question, with no blank lines
+{Yes, correct.} % correct response hint is 6th argument of questionandresponses command
+{No, at least one of the answers you typed in is not exactly the same
+as the preset question giver answers.} % incorrect response hint is 7th argument
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.pdf b/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.pdf
new file mode 100644
index 0000000000..054caf8ecc
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.tex b/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.tex
new file mode 100644
index 0000000000..173726af3b
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/ndex.tex
@@ -0,0 +1,58 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% INDEX LATEX FILE EXAMPLE
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[dvips]{article}
+\usepackage{interactiveworkbook} % put in style directory; cannot appear in any other directory
+
+\begin{document}
+
+\exerciseintroduction{Index. $\;$ This is an index of, at most, twenty questions:
+a multiple check box question, a multiple popup question, a multiple text
+field question and a radio button question.
+}
+
+\vspace{.2in}
+
+% locations of twenty question files for this exercise
+% "exerquessetupone", ..., "exerquessetuptwenty" commands defined in buttonappearance.eps
+\exerquessetupone{check.pdf}
+\exerquessetuptwo{popup.pdf}
+\exerquessetupthree{field.pdf}
+\exerquessetupfour{radio.pdf}
+\exerquessetupfive{check.pdf}
+\exerquessetupsix{popup.pdf}
+\exerquessetupseven{field.pdf}
+\exerquessetupeight{radio.pdf}
+\exerquessetupnine{check.pdf}
+\exerquessetupten{popup.pdf}
+\exerquessetupeleven{field.pdf}
+\exerquessetuptwelve{radio.pdf}
+\exerquessetupthirteen{check.pdf}
+\exerquessetupfourteen{popup.pdf}
+\exerquessetupfifteen{field.pdf}
+\exerquessetupsixteen{radio.pdf}
+\exerquessetupseventeen{check.pdf}
+\exerquessetupeighteen{popup.pdf}
+\exerquessetupnineteen{field.pdf}
+\exerquessetuptwenty{radio.pdf}
+
+% twenty (blank) question buttons
+% "exerquesone", ..., "exerquestwenty" commands defined in buttonappearance.eps
+\begin{center}
+\begin{tabular}{||lc|lc||} \hline
+ Q1. Check & \exerquesone & Q11. Field & \exerqueseleven \\ \hline
+ Q2. Popup & \exerquestwo & Q12. Radio & \exerquestwelve\\ \hline
+ Q3. Field & \exerquesthree & Q13. Check & \exerquesthirteen\\ \hline
+ Q4. Radio & \exerquesfour & Q14. Popup & \exerquesfourteen\\ \hline
+ Q5. Check & \exerquesfive & Q15. Field & \exerquesfifteen \\ \hline
+ Q6. Popup & \exerquessix & Q16. Radio & \exerquessixteen\\ \hline
+ Q7. Field & \exerquesseven & Q17. Check & \exerquesseventeen\\ \hline
+ Q8. Radio & \exerqueseight & Q18. Popup & \exerqueseighteen\\ \hline
+ Q9. Check & \exerquesnine & Q19. Field & \exerquesnineteen\\ \hline
+ Q10. Popup & \exerquesten & Q20. Radio & \exerquestwenty\\ \hline
+\end{tabular}
+\end{center}
+
+\end{document}
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/popup.pdf b/macros/latex/contrib/interactiveworkbook/samplefiles/popup.pdf
new file mode 100644
index 0000000000..1d4a40cc11
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/popup.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/popup.tex b/macros/latex/contrib/interactiveworkbook/samplefiles/popup.tex
new file mode 100644
index 0000000000..5d619c84d8
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/popup.tex
@@ -0,0 +1,32 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% POPUP MENU LATEX FILE EXAMPLE: USES QUESTIONANDRESPONSES COMMAND, 7 ARGUMENTS
+% 1ST ARGUMENT INDICATES THIS IS "POPUP" TYPE QUESTION
+% 2ND, 3RD, 4TH ARGUMENTS GIVE NAMES OF PREVIOUS, INDEX, NEXT LINKING FILES
+% 5TH ARGUMENT GIVES QUESTION, WITH UP TO 5 MENUS, AND
+% WHATEVER THESE MENUS ARE SET TO (A,B,C,D,E,F,G,H OR I)
+% 6TH, 7TH ARGUMENTS GIVE RESPONSES IF USER ANSWER CORRECT OR INCORRECT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[dvips]{article}
+\usepackage{interactiveworkbook} % put in style directory; cannot appear in any other directory
+
+\begin{document}
+
+% questionandresponses command has *seven* arguments
+
+\questionandresponses{popup} % popup menu kind of question, needed in style file
+{check.pdf}{ndex.pdf}{field.pdf} % previous, index and next files are 2nd, 3rd, 4th arguments
+{ Question 2. $\;$ A multiple popup question. % question is 5th argument
+ \begin{center}
+ a is correct \popupone \answerpopupone{a} $\quad$ % user gives "a" as the correct answer
+ try b \popuptwo \answerpopuptwo{b} $\quad$ % question giver gives "b" as the correct answer
+ c, not "c" \popupthree \answerpopupthree{c} \\ % "popupthree" is what question taker sees
+ g \popupfour \answerpopupfour{g} $\quad$
+ and i \popupfive \answerpopupfive{i}
+ \end{center}
+} % end of 5th argument
+{Yes, correct, because all choices correspond to the preset answers.} % correct response hint
+{No, try again.} % incorrect response hint is 7th argument
+
+\end{document}
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/radio.pdf b/macros/latex/contrib/interactiveworkbook/samplefiles/radio.pdf
new file mode 100644
index 0000000000..60f30fc048
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/radio.pdf
Binary files differ
diff --git a/macros/latex/contrib/interactiveworkbook/samplefiles/radio.tex b/macros/latex/contrib/interactiveworkbook/samplefiles/radio.tex
new file mode 100644
index 0000000000..79d2ca1dcc
--- /dev/null
+++ b/macros/latex/contrib/interactiveworkbook/samplefiles/radio.tex
@@ -0,0 +1,31 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% RADIO BUTTON LATEX FILE EXAMPLE: USES QUESTIONANDRESPONSES COMMAND, 7 ARGUMENTS
+% 1ST ARGUMENT INDICATES THIS IS "RADIO" TYPE QUESTION
+% 2ND, 3RD, 4TH ARGUMENTS GIVE NAMES OF PREVIOUS, INDEX, NEXT LINKING FILES
+% 5TH ARGUMENT GIVES QUESTION, WITH UP TO 5 BUTTONS, AND
+% WHETHER OR NOT THESE RADIO BUTTONS ARE "ON" OR "OFF"
+% ONE AND ONLY ONE RADIO BUTTON IS ALLOWED TO BE "ON"
+% 6TH, 7TH ARGUMENTS GIVE RESPONSES IF USER ANSWER CORRECT OR INCORRECT
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\documentclass[dvips]{article}
+\usepackage{interactiveworkbook} % put in style directory; cannot appear in any other directory
+
+\begin{document}
+
+\questionandresponses{radio} % radio button kind of question
+{popup.pdf}{ndex.pdf}{ndex.pdf} % previous, index and next files are 2nd, 3rd, 4th arguments
+{Question 4. $\;$ A multiple radio button question.
+ \begin{center}
+ not the one \radioone{} \answerradioone{Off} $\quad\quad$ % incorrect answer is "Off"
+ nope \radiotwo{} \answerradiotwo{Off} $\quad\quad$ % another incorrect answer
+ not yet \radiothree{} \answerradiothree{Off} \\ % radiothree has no argument {}
+ On \radiofour{} \answerradiofour{On} $\quad\quad$ % *one* of five radio buttons "On"
+ Off \radiofive{} \answerradiofive{Off} % radiofive{} appears on question and response pages
+ \end{center}
+}
+{Yes, correct.} % correct response hint is 6th argument of questionandresponses command
+{No, incorrect.} % incorrect response hint is 7th argument
+
+\end{document}