diff options
author | Norbert Preining <norbert@preining.info> | 2018-09-13 10:28:30 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2018-09-13 10:28:30 +0900 |
commit | 26f4947f509c2440ce28e625133a15f6a2446920 (patch) | |
tree | 8789ff207ced3a161133a246fca03446b24b3edc /texmf-dist/source/latex/acrotex/doc/aeb_man.tex | |
parent | 6ec0713f46508d1e4aa5741e30152add5e10776f (diff) |
update acrotex
Diffstat (limited to 'texmf-dist/source/latex/acrotex/doc/aeb_man.tex')
-rw-r--r-- | texmf-dist/source/latex/acrotex/doc/aeb_man.tex | 12333 |
1 files changed, 0 insertions, 12333 deletions
diff --git a/texmf-dist/source/latex/acrotex/doc/aeb_man.tex b/texmf-dist/source/latex/acrotex/doc/aeb_man.tex deleted file mode 100644 index d379907c..00000000 --- a/texmf-dist/source/latex/acrotex/doc/aeb_man.tex +++ /dev/null @@ -1,12333 +0,0 @@ -\RequirePackage[!use=preview,!use=usebw]{spdef} -\documentclass{article} -%\usepackage{makeidx,showidx} -\usepackage[fleqn]{amsmath} -\usepackage[% - web={centertitlepage,designv, - forcolorpaper,latextoc,pro}, - exerquiz={nocorrections},aebxmp, - dljslib={ImplMulti,limitArith,nodec,satisfyEq} -]{aeb_pro} -%\usepackage{myriadpro} -\usepackage[altbullet]{lucidbry} -\usepackage{aeb_mlink} -\usepackage{longtable,colortbl} -\usepackage{graphicx} -\usepackage{multicol} -\usepackage{collectbox} - -\newbox\aebbox - -\usepackage{acroman} -\usepackage[active]{srcltx} - -\setcounter{secnumdepth}{4} -\setcounter{tocdepth}{4} - - -\def\AcroBlog{{Acro\!\TeX} Blog} - -\makeatletter -\def\chgCurrLblName#1{\def\@currentlabelname{#1}} -\let\gob\@gobble -\renewcommand*\l@subsection{\@dottedtocline{2}{2em}{3.5em}} -\renewcommand*\l@subsubsection{\@dottedtocline{4}{5.5em}{1.5em}} -\renewcommand\@pnumwidth{2.55em} -\renewcommand*\l@section[2]{% - \ifnum \c@tocdepth >\z@ - \addpenalty\@secpenalty - \addvspace{1.0em \@plus\p@}% - \setlength\@tempdima{2em}%{1.5em}% - \begingroup - \parindent \z@ \rightskip \@pnumwidth - \parfillskip -\@pnumwidth - \leavevmode \bfseries - \advance\leftskip\@tempdima - \hskip -\leftskip - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par - \endgroup - \fi} -\makeatother - - -%\usepackage[usecmtt]{myriadpro} - -%\margins{.25in}{.25in}{24pt}{.25in} % left,right,top, bottom -%\screensize{4.19in}{4.67in} % height, width - -%\margins{.5in}{.25in}{24pt}{.25in} % left,right,top, bottom -%\screensize{4.19in}{4.92in} % height, width - -%\hoffset=20pt - -\setlongtables -\LTpre=0pt %\medskipamount -\LTpost=-2\medskipamount -%\LTpost=0pt %\medskipamount -\setlength{\mathindent}{20pt} - -\def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}} - - -%\usepackage{makeidx} -%\makeindex -%\usepackage[active]{srcltx} - -%\DeclareFontFamily{U}{wi}{} -%\DeclareFontShape{U}{wi}{m}{n}{<-> wingding}{} -%\DeclareFontFamily{U}{webd}{} -%\DeclareFontShape{U}{webd}{m}{n}{<-> webdings}{} - -%\font\zqacr=zqacr at 8pt - -\makeatletter - -\renewcommand\exlabelformat{{\exlabel\ \theeqexno.}} -\renewcommand\exlabelformatwp{{\exlabel\ \theeqexno.}} - -%\def\changelinkcolorto#1{\def\@linkcolor{#1}} -%\useFullWidthForPaper -\newdimen\totaltextwidth -\totaltextwidth=\fullscreenwidth -\advance\totaltextwidth\oddsidemargin -\renewcommand{\webheadwrapper}[1]{% - \hspace{-\oddsidemargin}% - \makebox[\totaltextwidth][s]{#1}\hss -} - -%\sectionLayout{indent=-62.5pt,fontsize=large} -%\subsectionLayout{indent=-31.25pt} -%\subsubsectionLayout{indent=0pt} - -\renewcommand\hproportionwebtitle{.75} -\universityLayout{fontsize=Large,fontfamily=sffamily} -\titleLayout{fontsize=LARGE,fontfamily=sffamily} -\authorLayout{fontsize=Large,fontfamily=sffamily} -\tocLayout{fontsize=Large,color=aeb,fontfamily=sffamily} -\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb,fontfamily=sffamily} -\subsectionLayout{indent=-31.25pt,color=aeb,fontfamily=sffamily} -\subsubsectionLayout{indent=0pt,color=aeb,fontfamily=sffamily} -\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}} -%\renewcommand{\paragraph} -% {\@startsection{paragraph}{4}{0pt}{12pt}{-3pt}{\bfseries}} -\renewcommand{\paragraph} - {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt} - {\normalfont\normalsize\bfseries}} -\renewcommand{\subparagraph} - {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}% - {\normalfont\normalsize\bfseries}} -\newcommand{\aebCng}{\@ifstar{\def\aeb@checked{*}\@aebCng}{\def\aeb@checked{x}\@aebCng}}% -\newcommand\@aebCng[1][]{} -%\newcommand{\aebCng}{\@ifstar{\def\aeb@checked{*}\@aebCng}{\def\aeb@checked{x}\@aebCng}}% -%\newcommand{\@aebCng}[1][]{% -% \if\aeb@checked*\def\aeb@marker{\textcolor{blue}{aeb}~\textcolor{red}{\ding{052}}\goodbreak}\else -% \def\aeb@marker{\textcolor{red}{aeb}}\fi -% \def\argi{#1}\ifx\argi\@empty -% \marginpar{\scriptsize\aeb@marker}% -% \else\marginpar{\scriptsize\aeb@marker\goodbreak\raggedright#1}\fi} - -%\makeindex - -%\widestNumber{00.00.} - -\hfuzz=1pt - -\pdfstringdefDisableCommands{\let\!\empty} - -%\setlongtables - -\def\AcroT{Acro\!\TeX}\def\cAcroT{\textcolor{blue}{\AcroT}} -\def\AcroEB{\AcroT{} eDucation Bundle}\def\cAcroEB{\textcolor{blue}{\AcroEB}} -\def\AcroB{\AcroT{} Bundle}\def\cAcroB{\textcolor{blue}{\AcroB}} -\def\AcroFLeX{% - AcroF\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX} -\def\APB{\textsf{APB}} -\def\cAPB{\textcolor{blue}{\APB}} -\def\AEB{\textsf{AeB}} -\def\cAEB{\textcolor{blue}{\AEB}} -\def\Web{\textsf{web}} -\def\PDF{\textsf{PDF}} -\def\bUrl{http://www.math.uakron.edu/~dpstory} -\definePath{\urlAcroTeXBlog}{http://www.acrotex.net/blog} - -%\newlength{\aebdimen} -\def\anglemeta#1{$\langle\textit{\texttt{#1}}\rangle$} -\def\meta#1{\textit{\texttt{#1}}} -\let\pkg\textsf -\let\env\texttt -\let\opt\texttt -\let\app\textsf -\def\AEB{\textsf{AeB}} -\def\AcroTeX{Acro\!\TeX} -\def\HTML{HTML}\def\FDF{FDF} -\def\PDF{PDF}\def\URL{URL} -\let\amtIndent\leftmargini -\def\bNH{\begin{NoHyper}}\def\eNH{\end{NoHyper}} -\def\nhnameref#1{\bNH\nameref{#1}\eNH} -\def\nhNameref#1{\bNH\Nameref{#1}\eNH} -\def\nhurl#1{\bNH\url{#1}\eNH} -\def\grayV#1{\textcolor{gray}{#1}} -\def\darg#1{\{#1\}} -\def\parboxValign{t} -\renewcommand*{\backrefalt}[4]{% - \ifcase #1\or - See page~#2.\else See pages~#2.\fi -} -\newenvironment{aebQuote} - {\list{}{\leftmargin\amtIndent}% - \item\relax}{\endlist} -\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{% - \raisebox{.5\baselineskip+#1}{% - \expandafter\parbox\expandafter[\parboxValign]% - {\marginparwidth}{\aebbkFmtMp#2}}}} -\def\aebbkFmtMp{\kern0pt\itshape\small - \ifusebw\color{gray}\else\color{blue}\fi - \raggedleft\hspace{0pt}}\newcommand{\BlogArticle}{% - \makebox[0pt][l]{\hspace{-1pt}\color{blue}\Pisymbol{webd}{254}% - }\raisebox{.5pt}{\ifusebw\color{black}\else - \color{red}\fi\ding{045}}} -\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}% - \kern-.6em \hbox{$\mathcal S$}}$} -\def\FitItIn{\eq@fititin} -\def\endredpoint{\FitItIn{{\large\ifusebw\color{black}\else\color{red}\fi$\blacktriangleleft$}}} - - -\hypersetup{linktocpage} - -\def\AmS{{\protect\usefont{OMS}{cmsy}{m}{n}% - A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} - -\def\latex/{{\protect\LaTeX}} -\def\amslatex/{{\protect\AmS-\protect\LaTeX}} -\def\tex/{{\protect\TeX}} -\def\amstex/{{\protect\AmS-\protect\TeX}} - -\definecolor{aeb}{rgb}{0.24,0.38,0.68}%bleu -\universityColor{aeb} -\tocColor{aeb} - -\makeatother - -\def\Y&Y{Y\kern-.2em{\footnotesize\&}\kern-.2emY} -\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}% - \kern-.6em \hbox{$\mathcal S$}}$} - -\title{\texorpdfstring{\LARGE -%---------------------------------% - The \AcroEB\space(AeB)% -}{%-------------------------------% - The AcroTeX eDucation Bundle for LaTeX, - Manual of Usage% -}} -\author{D. P. Story} -\subject{How to create on-line exercises and quizzes} -%\keywords{LaTeX, hyperref, PDF, exercises, quizzes} -\Keywords{LaTeX,hyperref,PDF,exercises,quizzes} -\university{{\AcroT} Software Development Team} -\email{dpstory@acrotex.net} -\versionLabel{Dated:} -\version{2018/03/01} -\copyrightyears{1999-\the\year} -\nocopyright -\prepared{2018/03/22} -\revisionLabel{Distribution Dated:} - -\copyrightStatus{True} -\copyrightNotice{Copyright (C) 1999-\the\year, D. P. Story} -\copyrightInfoURL{http://www.acrotex.net} -\authorTitle{Head of AcroTeX Developer} -\descriptionWriter{Senior Technical Writer of AcroTeX} - -%\noPartNumbers - -\DesignTitlePageTrailer -{% - ul=Copyright \copyright\ \webcopyrightyears, - ur=\thewebemail, - lr=\url{http://www.acrotex.net}, - raise=-25pt -} -\def\CMD#1{\textbackslash#1} -%\newcommand{\exPDF}[2][\expath/]{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi -\newcommand{\exPDF}[2][\bUrl/webeq_ex.html\#]{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi -\vskip\medskipamount\noindent\makebox[0pt][r] - {\raisebox{-2pt}{\color{red}\href{#1#2}{{\zqacr - b\hspace{9.5pt}}}}\enspace}\ignorespaces} - -\def\makeExBox#1{\href{run:\tutpathi/apb_#1.tex}{\scriptsize\fbox{#1}}} -\renewcommand\expoint[1]{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi -\vskip\medskipamount\noindent\makebox[0pt][r]{\makeExBox{#1}\enspace}\ignorespaces} - -\def\tutpath{doc/tutorial} -\def\tutpathi{tutorial} -\def\expath{../examples} - -\renewcommand{\theaebEx}{\arabic{aebEx}} -\renewcommand{\theHaebEx}{\arabic{aebEx}} - -\def\insMargin{} -\def\Ex{\par\medskip\noindent\refstepcounter{aebEx}\insMargin\gdef\insMargin{}\textbf{Example~\theaebEx:}} -\def\CmdLoc{\par\medskip\noindent\textbf{Command Location: }} -\def\EnvLoc{\par\medskip\noindent\textbf{Environment Location: }} -\def\KVP{\par\goodbreak\medskip\noindent\textbf{Key-Value Pairs: }} -\def\PD{\par\goodbreak\medskip\noindent\textbf{Parameter Description: }} -\def\Important{\par\medskip\noindent\textbf{Important: }} -\def\CmdDescription{\par\medskip\noindent\textbf{Command Description: }} - -\begin{insDLJS}[indefCompare]{compare}{Comparisons} -function indefCompare(a,b,c,F,G) { - var C, eqx; - with(Math) { - eqx = a; - if(isNaN(C = eval(F)-eval(G))) return -1; - eqx = c; - F = eval(F); - if(isNaN(G = eval(G))); - return abs( F - G - C ); - } -} -\end{insDLJS} - -\frenchspacing - -\definePath\bgPath{"C:/Users/Public/Documents/ManualBGs/Manual_BG_Print_AeB.pdf"} -\begin{docassembly} -\addWatermarkFromFile({ - bOnTop: false, - cDIPath: \bgPath -}) -\executeSave() -\end{docassembly} -\begin{document} - -\maketitle - -\newpage - -\changelinkcolorto{black} - -\tableofcontents - -\changelinkcolorto{webgreen} - -\part{Forward} - -\newtopic For the past several years (this year is \the\year), I've been writing a book -titled, -\begin{quote} -\AEBBook. -\end{quote} -The book~\cite{book:AEBB} covers {\AEB} and {\AEBP} in \emph{great detail} and includes many -examples to illustrate concepts and techniques. Numerous new examples are -available on the CD-ROM that accompanies the book. - -During the time of the writing, each of the packages covered was examined, -bugs were fixed, and many new and major features were created. Any new -features developed in the course of writing the book are documented in the -book; however, they are \emph{not included in this documentation}. You can -either buy the yet-to-be-submitted book sometime in the future, or discover -the features by studying the DTX documentation of the program files. Sorry, -it took me three years to write the book, I don't want to spend another year -on this documentation. \verb!:-{)! - -As noted in \textbf{\nhnameref{eq2db}} on page~\pageref{eq2db}, I've set up a -website that highlights the server-side scripts developed for the book (and -available on the accompanying CD-ROM). You are invited to visit them and -comment on them, if the spirit moves. - -\begin{flushright} -Dr. D. P. Story\\[3pt] -January 5, 2016 -\end{flushright} - -\part{Preface} - -%\section{Introduction} - -% ff, fi, fl, ffl - -The {\cAcroEB} (abbreviated {\cAEB} and read ``{\AcroT} Education -Bundle'') is a collection of {\LaTeX} macro files (briefly described -below) along with various support and sample files. The theme of {\cAEB} -is \textit{ePublication} in the \textit{education} sector using {\LaTeX} -as the authoring application and Adobe's Portable Document Format -(\textsf{PDF}) as the file format of the output document. The \cAcroB{} -should be useful to educators who want to post interactive materials for -their students on the \textsf{WWW}. - -\newtopic Currently, there are seven components to the bundle: - -\begin{questions} - -\item The \hyperref[s:web]{\pkg{web} package} is used to create an - attractive, easy-on-the-eye page layout suitable for the \textsf{WWW} - (or classroom/conference presentations). There is support for - background graphics; a {\Web} document can be re-purposed for - paper. -\item The \hyperref[s:exerquiz]{\pkg{exerquiz} package} makes - it very easy to create interactive exercises and quizzes. There are - numerous options, solutions at the end of the document, solutions - following the question, no solutions; quizzes are self marking, the - student can get immediate feedback, or get a final assessment after - the student finishes the quiz. -\item The \href{eformman.pdf#eformsPkg}{\pkg{eforms} package} provides support for - PDF form fields, and links with arbitrary actions. -\item The \href{eformman.pdf#insdljsPkg}{\pkg{insdljs} package} allows for the automatic - insertion of document level JavaScript. Document authors can use - \textsf{insdljs} to customize the processing of the - \textsf{exerquiz} quizzes. See the documentation that accompanies - the package (\texttt{insdljs.dtx}) and see also the sample file - \texttt{jqzspec.tex} for an extensive example of how to modify the - \textsf{exerquiz} macros. The \textsf{insdljs} package also has an - \texttt{execJS} environment which can be used to create executable - and ``discardable'' JavaScript; see the DTX file for - details. -% and the demo file \texttt{execJStst.tex}, which features -% an animation built completely from {\LaTeX} source lines. - Documentation for the \pkg{insdljs} package appears in the - \href{eformman.pdf#insdljsPkg}{\pkg{eforms}} reference manual - (on the Web, \href{\bUrl/eformman.pdf#insdljsPkg}{eformman.pdf}). -\item The \href{eformman.pdf#taborderPkg}{\pkg{taborder} package} supports the creation of the order - of tabbing between Acrobat annotations (fields, links, and comments). - See the part \textbf{Setting the Tab Order} in \href{eformman.pdf#taborderPkg}{eforms} - reference manual (on the Web, \href{\bUrl/eformman.pdf#taborderPkg}{eformman.pdf}) for more details. -\item The \hyperref[part:dljslib]{\pkg{dljslib} package} is used as a library of - JavaScript functions. Some types of question require special - processing. A JavaScript function written to process a - particular function can be stored in the library, then - retrieved as needed. - -% See the documentation contained in the -% file \texttt{\href{\bUrl/dljslib.dtx}{dljslib.dtx}}.% and try -% the test file for this package, -% \texttt{\href{\bUrl/jslib_ex.tex}{jslib\_ex.tex}}. -\item The \href{\bUrl/eqexam.html}{\pkg{eqexam} package} is a stand - alone {\LaTeX} package for creating exams, quizzes, homework - assignments. There are several options to re-purpose the source - document to produce a document with no solutions, solutions at end, - solutions after the questions, and solutions only. It can also be used - to create surveys, questionnaires, teacher evaluations, etc. The - package has an \texttt{email} mode and comes with a server-side script - that is used to send the data entered into the form fields to the - instructor. - -% See my \textsf{\href{\bUrl/eqexam/tex_survey.pdf}{\TeX/\LaTeX{} Survey}} for -% a demo of this feature. -\end{questions} -\handpoint The \pkg{web}, \textsf{exerquiz}, \textsf{eforms}, and \textsf{insdljs} -packages are stand alone packages, though they were designed to work -together. The \textsf{dljslib} package is a companion package to -\textsf{insdljs}. The \textsf{eqexam} package is stand alone, but uses -some code from the \textsf{exerquiz} package; \textsf{exerquiz} need not -be installed on your system to use \textsf{eqexam}, however. - -\begin{comment} -To play it safe, you should use the most recent version of -\pkg{hyperref} by Sebastian Rahtz and Heiko Oberdiek. The -\textsf{exerquiz} package makes extensive use of forms; Adobe -Reader 3.0 with Forms 3.5 at least is needed, Adobe Reader 4.0 or -above is preferred. -\end{comment} - -\handpoint Here is an important point that should be emphasized early in this -manual. \cAcroT{} only supports three ways of producing a -\textsf{PDF} file: (1) the \textcolor{blue}{Adobe Acrobat -Distiller} (version~5.0 or higher \emph{required}); (2) -\textsf{pdftex} (including \textsf{luatex}); or (3) \textsf{dvipdfm} -(including \textsf{dvipdfmx} and \textsf{xetex}). In the case of (1), you -probably use \texttt{dvips} to create a postscript file before -distilling. Some users have tried to use -\textcolor{blue}{Ghostscript} to produce a \textsf{PDF} -from \cAcroT; this will not work! (You will get the \textsf{PDF} -file, but not much functionality.) - -Please contact me at \url{dpstory@acrotex.net} should you encounter -any problems, or have suggestions to make. - -\redpoint See Section~\ref{s:start} on `\nhnameref{s:start}' below for -instructions on how to get up and running. - -\section{Getting Started}\label{s:start} - -The distribution for the {\cAcroB} comes in a single ZIP file - \texttt{acrotex.zip}. This ZIP file contains program files - (\pkg{web}, \pkg{exerquiz}, \pkg{eforms}, \pkg{insdljs}, - \pkg{dljslib}, \pkg{taborder}, and \texttt{aeb.js}), this manual, and the - \href{eformman.pdf}{\pkg{eforms}} reference manual - (\texttt{\href{\bUrl/eformman.pdf}{eformman.pdf}}). - -\subsection{Installing the Distribution} - -The following are the instructions for installing the \cAEB. - -\begin{questions} - -\item \textbf{Placement.} The ZIP file installs in a folder called - \texttt{acrotex}, so place the ZIP file in a directory in the search path - of your \LaTeX{} system where you want the \texttt{acrotex} folder to - reside. If you already have an \texttt{acrotex} folder, place the ZIP - files so that they unzip into this \texttt{acrotex} folder, \emph{unless - you are using MiK\TeX~2.8{} or later}. - -\item[] \textbf{MiK\TeX~2.8/2.9 Users.} {Mik\TeX}~2.8 (or later) provides - problems for {Acro\!\TeX} installations in that it is more particular - about where you install packages by hand. {MiK\TeX}~2.8, or later, - requires that you install the distribution in a local root TDS tree. - Review the {MiK\TeX} help page on this topic -\begin{quote} -% - \url{http://docs.miktex.org/manual/localadditions.html} -% -\end{quote} -Create a new {MiK\TeX} root folder, in my case, I created -\begin{quote} -% - \verb!C:\Users\Public\Documents\My TeX Files! -% -\end{quote} -Within the \texttt{My TeX Files} folder (you can name this folder anyway -you wish), create a \texttt{tex} folder, within the \texttt{tex} folder, -create a \texttt{latex} folder. Now copy the ZIP file to the -\texttt{latex} folder, for example, copy them into -\\[3pt]\hspace*{20pt} -% - \verb!C:\Users\Public\Documents\My TeX Files\tex\latex!\\[3pt] -% -Finally, you need to register your new root folder with MiK\TeX. Open the -{MiK\TeX} Options dialog box (accessible through the WinEdt toolbar, or -through\\[\topsep]\hspace*{20pt} -% -\texttt{Start > All Programs > MiKTeX 2.8 > Maintenance > Settings}\\[3pt]\hspace*{20pt} -\texttt{Start > All Programs > MiKTeX 2.9 > Maintenance > Settings}\\[\topsep] -% -Within this dialog box, select the \textbf{Roots} tab, then press -\textbf{Add}, and browse for your newly create \texttt{My TeX Files}. When -finished, the dialog should look like my own dialog box, as shown -in \hyperref[fig:rootstab]{Figure~\ref*{fig:rootstab}}, page~\pageref*{fig:rootstab}. - -\begin{figure}[hbt]\centering -\includegraphics[scale=.6]{figures/miktex_roots} -\caption{Roots tab of MiK{\TeX} Options}\label{fig:rootstab} -\end{figure} - -\item \textbf{Unzipping the Distribution.} Once you have found the -location to unzip the ZIP file, unzip it! - -% C:\Users\Public\Documents\My TeX Files\tex\latex - -%\item Unpack the \textsf{exerquiz} package by latexing \texttt{exerquiz.ins}. -%However, see \nameref{s:unpack} for important comments. - -\item \textbf{Unpacking the distribution.} The whole distribution can be -unpacked by latexing \texttt{acrotex.ins}. (The other \texttt{*.ins} files -are the installation files for the individual packages, -\texttt{acrotex.ins} is the combined installation file.) - -\item[] {MiK\TeX} users should not forget to refresh the file name database. - -% \item Unpack \texttt{insdljs.dtx} by latexing \texttt{insdljs.ins}. - -\end{questions} - - - -\subsection{Installing \texttt{aeb.js}} - - -The JavaScript file \texttt{aeb.js} is only needed if you use \textbf{Acrobat -Pro 8.1} or later and \textbf{Adobe Distiller} as the PDF creator. Increased -security in that version has made it necessary to install a folder JavaScript -file. The JavaScript within \texttt{aeb.js} raises the ``trust'' of certain -JavaScript methods used to import document JavaScript into the document just -after the distillation process and the newly created PDF is opened in -\textbf{Acrobat} for the first time. The installation of this file is not -needed if you use \textsf{pdftex}, or \textsf{dvipdfm} (or any of their -variations), or use a version of \textbf{Acrobat} prior to 8.1. - -The instructions for installing \texttt{aeb.js} are in the -\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, which resides in -the \texttt{doc} folder of the \texttt{acrotex} installation. If you use -\textbf{Distiller} as your PDF creator, please refer to that document. - -After you've installed the JavaScript files, as directed by the -\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, validate the -installation of the JavaScript files by navigating to the \texttt{examples} -subfolder and opening the file \texttt{test\_install.pdf} in \app{Acrobat}; -follow the directions contained on that one page document. - - -\begin{comment} -\paragraph*{Acrobat Pro~8.1 or later.} -Start \textbf{Acrobat Pro~8.1}\footnote{The file will cause no harm if you -install it in an earlier version of Acrobat, as early as version 7.} or -later, and open the console window \textsf{Advanced \texttt> JavaScript -\texttt> Debugger} (\texttt{Ctrl+J} for Windows or \texttt{Cmd+J} for Mac -OS). Copy and paste the following code into the window. -\begin{Verbatim}[xleftmargin=\amtIndent] -app.getPath("user","javascript"); -\end{Verbatim} -Now, with the mouse cursor on the line containing this script, press -the \texttt{Ctrl+Enter} key. This will execute this JavaScript. This -JavaScript method returns the path to where \texttt{aeb.js} should -be placed. For example, on my system, the return string is -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -/C/Documents and Settings/story/ - Application Data/Adobe/Acrobat/8.0/JavaScripts -\end{Verbatim} -Follow the path to this folder. If the \texttt{JavaScripts} folder -does not exist, create it. Finally, copy \texttt{aeb.js} -into this folder. The file is read each time Acrobat starts. - -\paragraph*{Acrobat Pro 10.1.1 for Windows only.} For this version of \textbf{Acrobat}, -things have tightened up even more. The user JavaScripts folder has moved to -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -%AppData%\Adobe\Acrobat\Privileged\10.0\JavaScripts -\end{Verbatim} -\exAeBBlogArticle{p=737}where \verb!%AppData%! is an environment variable defined by Acrobat. For details -of how to install the folder JavaScripts in the new location, see my blog -article \mlhref{http://www.acrotex.net/blog/?p=737}{Acrobat Security Changes in 10.1.1 and -Acro\!\TeX}. -\end{comment} - -\subsection{Language Localizations} - -Should you wish to customize {\cAEB} to a language other than the ones -already supported, open the file \texttt{template.def} and add in your -language customizations. - -%After reading the manual you are then ready to write your own set -%of tutorials, exams, exercises and quizzes.\enspace\dps - - -\subsection{Sample Files and Articles}\label{s:samplefiles} - -Test, example, and demo files have been moved to the \href{\bUrl/webeq_ex.html}{Example Files for -AeB} web page.\footnote{\url{\bUrl/webeq_ex.html}} References seen in this manual reside on this page; each -sample file is a PDF with the source file attached to the PDF. Files on -the \href{\bUrl/webeq_ex.html}{Example Files for AeB} web page are -referenced with the icon \raisebox{-1.5pt}{\color{red}\zqacr b\hspace{12pt}} is the margin. - -\paragraph*{{Acro\!\TeX} Blog.} The basic examples from the distribution are also available -from the {Acro\!\TeX| Blog, accessible from the page -\href{http://www.acrotex.net/blog/?cat=89}{AeB Demo Files}.\footnote{\url{http://www.acrotex.net/blog/?cat=89}} -There is another more recent collection of examples on -\href{\urlAcroTeXBlog}{\AcroTeX{} Blog}, these will be referenced in the margin using the icon %\exAeBBlogPDF -\mbox{\makebox[0pt][l]{\textcolor{blue}{\Pisymbol{webd}{254}}}% - \raisebox{-2pt}{\color{red}{{\zqacr b\hspace{9.5pt}}}}}\,, whereas -\mbox{\makebox[0pt][l]{\hspace{-1pt}\textcolor{blue}{\Pisymbol{webd}{254}}}% -\raisebox{.5pt}{\color{red}{\ding{045}}}} refers to a written blog -article. In all cases, the source file and any dependent resources are attached to the -PDF. - -% - -%\newcommand{\exAeBBlogArticle}[2][\urlAcroTeXBlog/]{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi -%\vskip\medskipamount\noindent\makebox[0pt][r]{% -% \makebox[0pt][l]{\textcolor{blue}{\Pisymbol{webd}{254}}}% -% \raisebox{.5pt}{\color{red}\href{#1?#2}{\ding{045}\hspace{8.5pt}}}\enspace}\ignorespaces} - -%\exPDF{indexofex} There are numerous sample/demo files that illustrate various -%features of the {\cAcroB}. View the \textsf{PDF} file -%\texttt{\href{indexofex.pdf}{indexofex.pdf}}, which is an ``Index of -%{\AcroT} Examples''. This document contains a list of all -%examples, a short description of each, and links to the \textsf{PDF} -%file and source file. - -\subsection{Package Requirements} - -If you use the Acrobat Distiller, as I do, to create a PDF document, the {\cAcroB} -now requires the use of version 5.0 or later. I've given up on trying to support -prior version of Acrobat. - -\newtopic In terms of \LaTeX, the following is a listing of package requirements: - -\begin{enumerate} - \item The \pkg{web} Package - \begin{itemize} - \item \texttt{color}: \texttt{color} is distributed with \LaTeX, but {\Web} - will use \texttt{xcolor}, if available, unless the - \texttt{noxcolor} global option is used. - \item \texttt{amssymb}: standard with \amslatex/ - \item \texttt{hyperref}: available from CTAN, get newer version - \item \texttt{eso-pic} and \texttt{everyshi}: available from CTAN - \end{itemize} - \item The \textsf{Exerquiz} Package - \begin{itemize} - \item \texttt{color}: distributed with \LaTeX - \item \texttt{verbatim}: distributed with \LaTeX - \item \texttt{hyperref}: available from CTAN, get newer version - \item \texttt{insdljs}: distributed with \AcroT - \end{itemize} - \item The \textsf{insdljs} Package - \begin{itemize} - \item \texttt{hyperref}: available from CTAN, get newer version - \item \texttt{verbatim}: distributed with \LaTeX - \item \texttt{everyshi}: available from CTAN - \end{itemize} - \item The \textsf{dljslib} Package - \begin{itemize} - \item \texttt{insdljs}: distributed with \AcroT - \end{itemize} -\end{enumerate} - -\subsection{\LaTeX ing Your First File} - -The functionality of the \texttt{shortquiz} and \texttt{quiz} -environments depends on JavaScript code that is placed at the -``document level'', to use Adobe's terminology. The applications -\textsf{pdftex} and \textsf{dvipdfm} offer direct support for -writing to this document level. For those who use the -\textcolor{blue}{Adobe Distiller}, things aren't quite so easy. - -In this section, we describe how to insert document level -Java\-Scripts into a \textsf{PDF} file, prepared from a -\LaTeX{} source that uses the \texttt{exerquiz} package. Even -though the handling and insertion of document level JavaScript is -done with the package \textsf{insdljs}, a little care must be -taken, at least in the Distiller case, when building your -{\PDF} document. - -%http://www.acrotex.net/blog/?p=803 - -\exAeBBlogPDF{p=803} Download \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} from the {\AcroBlog} -website. The source file \texttt{webeqtst.tex} is attached to the PDF, save -it to your local hard drive. \gob{\exPDF{webeqtst}}Open -\texttt{webeqtst.tex} in your favorite text editor. The top lines read: -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage{amsmath} -\usepackage[tight,designi]{web} -\usepackage{exerquiz} -\end{Verbatim} - -\subsubsection{For Non-\textsf{dvips} Users} - -Edit the third line by inserting your driver; the choices are -\texttt{pdftex}, \texttt{dvipdfm}, \texttt{dvipdfmx}, and \texttt{xetex}. For -example, if you use \textsf{dvipdfm}, the lines should read: -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage{amsmath} -\usepackage[dvipdfm,tight,designi]{web} -\usepackage{exerquiz} -\end{Verbatim} -For \textsf{dvipdfm}, you \LaTeX{} the document, then hit it with -\textsf{dvipdfm}, and your ready to review your \textsf{PDF} file. The -insertion of the document level JavaScript is automatic. - -For the \textsf{pdftex} and \textsf{xetex} applications, you simply -compile with that application, and you have your nice \textsf{PDF} file, ready for -review. The insertion of the document level JavaScript is automatic. - -\redpoint Both the \textsf{pdftex} and \textsf{xetex} applications are -automatically detected so there is no need to specify them in the option list -of \pkg{web}.\endredpoint - - -\subsubsection{For Distiller Users} - -If you use the distiller, as I do, the sophisticated features of -{\AcroB} require Acrobat 5.0 or higher. - -%I've discontinued my attempt at supporting Acrobat 4.0. - -Edit the optional parameters of the \pkg{web} package by inserting your driver; the choices are -\texttt{dvips} and \texttt{dvipsone}.\footnote{The choice of driver can be placed in he \texttt{web.cfg} configuration -file, in which -case, you need not specify the driver. See \Nameref{sss:driver}.} For example, if you use \textsf{dvips}, the -lines should read: -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage{amsmath} -\usepackage[dvips,tight,designi]{web} -\usepackage{exerquiz} -\end{Verbatim} - -\begingroup\raggedright -\noindent When you latex the source file, you create a DVI file and one or more FDF files.\footnote{The FDF files (for -example, \texttt{exerquiz.fdf}) contain the document level JavaScript that needs to be imported into your document. They -are imported when the newly -created document is opened is Acrobat for the first time.} -You then convert your \texttt{.dvi} to \texttt{.ps} using either -\textsf{dvips} or \textsf{dvipsone}, and distill. -\par\endgroup - -\newtopic\textcolor{red}{Important:} When you distill, \emph{save the -\emph{\texttt{.pdf}} back to the same folder} in which your source file -(\texttt{.tex}) resides as this is where the \texttt{.fdf} files -reside too. Insertion of document level JavaScripts automatically -takes place when you open your newly distilled document -in the \textsf{Acrobat} application. (It is actually -\textsf{Acrobat} that imports the scripts, not the -\textsf{Distiller}.) - -\handpoint When your document is opened in \textsf{Acrobat} for -the first time, the Java\-Script contained in the \texttt{.fdf} files -(for example, \texttt{exerquiz.fdf}) is imported into the document -and is stored at the document level. - -\redpoint \textcolor{red}{Important:} \emph{Save your document}. When you -save, the JavaScripts you just imported are also saved with the -document. At this point you can move your \textsf{PDF} to another -folder, or to the web. The document does not need the -\texttt{.fdf} files any more. - -\begin{comment} -\redpoint \textbf{For Distiller~4.0--4.05 Users.} Versions prior -to~5.0 of the Acrobat product cannot import document level -JavaScript contained in a \texttt{.fdf} file. The JavaScript needs -to be inserted ``by hand''. - -The procedure is as follows: Modify the preamble and insert the \texttt{acrobativ} -option for the \textsf{exerquiz} package: -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage{amsmath} -\usepackage[dvips,tight,designi]{web} -\usepackage[acrobativ]{exerquiz} %<- acrobativ option -\end{Verbatim} -\noindent This suppresses all the JavaScript code generation that is used in the case -of \textsf{pdftex}, \textsf{dvipdfm} or \textsf{Distiller~5.0$^+$}. After that -change, \LaTeX{} the document, and convert -the \texttt{.dvi} file to PostScript (using \texttt{dvips} or -\texttt{dvipsone}), and distill. Now, open the new \textsf{PDF} file - in \textsf{Acrobat} (formerly known as -\textsf{Exchange}). Click on \texttt{Document > Insert Pages}, -browse, and choose the \textsf{PDF} file \textsf{eq\_dljs.pdf}, -which comes with the \cAcroB. The file is now inserted. Next, click -on \texttt{Document > Delete Pages} and delete the page you just -inserted! \textcolor{red}{Important:} Do a ``\texttt{Save As}''; now you are done! - -The \textsf{PDF} file \textsf{eq\_dljs.pdf} contains all the -standard JavaScript that goes in at the document level. In all -the other situations discussed above, you can modify the -JavaScript from the preamble, for example, in the \textsf{exerquiz} -source code we have -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\checkColor{["RGB", 0, .6, 0]} -\end{Verbatim} -This command is expanded when the document level JavaScript is imported into the -\textsf{PDF} file. If \cs{checkColor} has been redefined -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\checkColor{["RGB", 1, 0, 0]} -\end{Verbatim} -it is this definition that is used in the expansion. This -convenience is lost for $\text{4.0} \le\text{\textsf{distiller}}\le\text{4.05}$. -You can edit \textsf{eq\_dljs.pdf} and make whatever changes you -please to the script, in terms of changing color. -\end{comment} - -There are several ways the Distiller workflow can be accomplished: -%\begin{itemize} -% \item \textbf{Through the {\LaTeX} Editor.} Some editors, WinEdt, in particular, have toolbars that can distill -% a PostScript file. (The default is to use Ghostscript, you'll have to change to Distiller.) From WinEdt, you -% can latex, convert to Postscript, and distill with a few presses of toolbar buttons. Very smooth and easy. -% \item \textbf{Do it yourself.} Some systems, most notably on Mac OS, do not have a convenient way of distilling. -% A Mac user sent in the following steps. -% \begin{enumerate} -% \item Drop the \texttt{.ps} file on Distiller. -% \item Drag the resulting .pdf file out of the folder it was -% compiled in (for example, to the desktop) -% \item Open the \texttt{.pdf} file in Acrobat. -% -% At this stage readers will be prompted for the location of the existing .fdf file for inclusion. -% -% Now, for contrast, try this: -% -% 1. Drop the .ps file on Distiller. -% 2. Open the .pdf file in Acrobat. -% 3. Save the .pdf file. -% 4. Drag the .pdf file out of the folder it was compiled in (for example, to the desktop) -% 5. Open the .pdf file. -% -% This will allow readers the opportunity to see what will happen if they fail to save the file before moving it -to another location, like the web. -% -% -% \end{enumerate} -%\end{itemize} - -\newtopic For distiller users, the -\href{http://www.math.uakron.edu/~dpstory/aeb_pro.html}{\AEB\ Pro package} -has many exciting features, functionality requires the document author use -Acrobat~7.0 or higher. - - - -\addtocontents{toc}{\protect\vspace{\medskipamount}} -\part{The Web Package}\label{s:web} - -\section{Introduction} - -The purpose of the \pkg{web} package is to create a page layout -for documents meant for screen presentation, whether over the -\textsf{WWW} or classroom/conference presentations, in -\textsf{PDF}. Such documents are \emph{not \emph{(necessarily)} -intended to be printed}; consequently, the page layout is, in some -sense, optimized for screen viewing. - -\subsection{Overview} - -The \pkg{web} package redefines \cs{maketitle} and -\cs{tableofcontents} in a more web friendly way; it colors the -section headings, and inserts \cs{bullet}s ($\bullet$) at the -\cs{subsubsection} level. This, to my eyes, is very attractive. -Additionally, certain navigation devices (a navigation bar and -some direction icons) are included in the package. - -There are options for a small collection of drivers: -\texttt{dvipsone}, \texttt{dvips}. \texttt{dvipdfm} and \texttt{pdftex}. The language -option redefines certain language dependent elements of the package -to other languages. Currently, the following options are supported: -\begin{quote} -\begin{tabular}{lll} -\texttt{dutch} & \texttt{french} & \texttt{german}\\ -\texttt{italian} & \texttt{norsk} & \texttt{russian}\\ -\texttt{spanish} & \texttt{dansk} & \texttt{polish}\\ -\texttt{finnish} & \texttt{czech} & \texttt{catalan}\\ -\texttt{brazil} & \texttt{turkish} -\end{tabular} -\end{quote} - -There is even an option for reformatting the \texttt{web} -style to a print format! - -The capabilities of the \pkg{web} package and its options are -discussed below. Any comments and suggested improvements (new -features) would be greatly appreciated. - -\subsection{Package Requirements} - -The \pkg{web} package was designed for screen presentations -tutorials, such as classroom or conference lectures, short technical -articles, etc.; consequently, the \texttt{article} class of \LaTeX{} -seems to be sufficient for these purposes. Though you can use -\pkg{web} with any of the standard classes that define the -\cs{section}, \cs{subsection} and \cs{subsubsection} commands, the -package is really meant to be used with the \texttt{article} -class. It is \textbf{strongly} suggested! - -The package heavily depends on Sebastian Rahtz' \pkg{hyperref} -package (now maintained and developed by Heiko Oberdiek). The -\pkg{web} package was developed using version 6.56 of -\pkg{hyperref}. Using prior versions of \pkg{hyperref} -\emph{may} lead to successful compilation, no guarantees offered. -It is best to work with the most recent version of -\pkg{hyperref}. - -The \textsf{color} and \textsf{amssymb} packages are also -required. The former is for obvious reasons, the later is to -provide certain navigation symbols when the \texttt{navibar} -option is invoked. - -Finally, to create quality PDF documents, type~1 fonts \emph{must} -be used. Fortunately, type~1 fonts in the Computer Modern font set -are freely available, and come with all the major -freeware, shareware and commercial \TeX{} systems. If you haven't -done so already, learn how to use the type~1 fonts. - -In this regard, I have written an article that may be of interest -to you entitled ``\textit{Using \LaTeX{} to Create Quality PDF Documents -for the WWW}'', see reference \cite{article:Story:LaTeX}. - -\section{Basic Package Options} - -To use the \pkg{web} package, insert into the preamble of -your document the following: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(other_options)]{web} -\end{Verbatim} -\noindent Replace \meta{other\_options} with any of the options recognized by -\pkg{web}; see \hyperref[s:ListofOpts]{Section~\ref*{s:ListofOpts}} -for a complete list of options. The first and optional argument -\meta{driver} above defines the driver to be used; for -example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[dvips]{web} -\end{Verbatim} - -\paragraph*{Driver options.}\label{para:webdrivers} Below is a list of \meta{driver} options -for the \pkg{web} package. -\bgroup\def\rf#1{{\normalfont#1}} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -dvips dvipsone textures % !rf((DVI)-to-(PS)) -pdftex % !rf(includes the !app(lualatex) application) -dvipdfm dvipdfmx xetex % !rf((DVI)-to-(PDF)) -\end{Verbatim} -\egroup\noindent -Currently, the \pkg{web} package supports five drivers: -\texttt{dvipsone}, the dvi-to-ps converter by \Y&Y, Inc.; \texttt{dvips}, -the freeware dvi-to-ps converter; \texttt{pdftex}, the -\texttt{tex}-to-\texttt{pdf} application; \texttt{dvipdfm}, -\texttt{dvipdfmx}, and \texttt{xetex} the \texttt{dvi}-to-\texttt{pdf} -applications by Mark Wicks and subsequent -developers;\footnote{\url{http://odo.kettering.edu/dvipdfm/}}${}^{\text{\scriptsize,}}$\footnote{\url{http://scripts.sil.org/xetex}} -and the -commercial {\TeX} system for the Mac, \texttt{textures} and -\href{http://www.uoregon.edu/~koch/texshop/texshop.html}{{\TeX}shop}. - -\handpoint\textbf{Automatic driver detection.} {\AEB} now has automatic driver detection for -\textsf{pdftex} (including \textsf{luatex}) and \textsf{xetex}. Specification of these options -is no longer needed. - -\newtopic {\AEB} is better at passing the driver between its components. -When the driver is specified in the \pkg{web} package, the driver is passed to -its components (\textsf{exerquiz}, \textsf{eforms}, \textsf{insdljs}). Similarly, if \pkg{web} is not used, -exerquiz passes the driver specified to \textsf{eforms} and \textsf{insdljs}. Finally, \textsf{eforms} passes the driver -specified to \textsf{insdljs}. - -\paragraph*{A note on \app{xetex}.} -The \app{xetex} application may be set to strip out named destinations that -are not referenced within the document as a target of a `hard-wired' actions. -\app{AeB} (in particular, \pkg{exerquiz}) sets a lot of destinations (or -targets) but, in many instances, `dynamic' links are employed using the -JavaScript method \texttt{\textsl{Doc}.gotoNamedDest(\anglemeta{target})}. In -such instances, \app{xetex} may strip out these targets; the link or button -action may not perform the jump to the destination because the destination -does not exist. If this becomes an issue for your \app{xetex} installation, -the \textbf{\app{Dvipdfmx} Compatibility Flags} need to be modified. Search -for the configuration file \texttt{dvipdfmx.cfg}, open the file. Scroll down -to the line `\texttt{\%C 0x0000}', beneath it insert `\texttt{C 0x0010}', -save and close the file.\footnote{MiK\TeX{} discourages the direct editing of -the file \texttt{dvipdfmx.cfg}, instead, on the command-line prompt type and -execute `\texttt{initexmf -{}-edit-config-file dvipdfmx}' enabling you to -edit a local version of the configuration file as described above; -just enter the line `\texttt{C 0x0010}', save and close.} The documentation -for this bit field is just above the referenced line and an explanation of -the `\texttt{C 0x0010}' setting is given. - -\redpoint The package has been tested using -\verb+\documentclass{article}+ and it is \emph{strongly} -recommended that this class be used; however, {\Web} does support the -\texttt{book} class as well.\endredpoint - -%\begin{comment} -% -%\redpoint The default paper setting for \textsf{dvips} is -%\texttt{A4}, but the cropping parameters assumes \texttt{letter} -%paper size. To get the cropping of the page correct, there are -%several procedures you can follow. -% -%\begin{questions} -%\item Use the command line switch \texttt{-t letter}. -%For example, -%\begin{Verbatim}[xleftmargin=\amtIndent] -%dvips.exe -j0 -Pcm -Pams -t letter -o <foo>.ps <foo>.dvi -%\end{Verbatim} -%\item Change the default paper setting of \textsf{dvips} to -%\texttt{letter} by placing the paper size for \texttt{letter} -%first in the \texttt{config.ps} file of \textsf{dvips}: -% -%\smallskip -%\leavevmode\begin{minipage}{.45\linewidth} -%Change these lines \dots -%\begin{Verbatim}[xleftmargin=\amtIndent] -%@ A4size 210mm 297mm -%@+ %%PaperSize: A4 -% -%@ letterSize 8.5in 11in -% -%@ letter 8.5in 11in -%@+ %%BeginPaperSize: Letter -%@+ letter -%@+ %%EndPaperSize -%\end{Verbatim} -%\end{minipage} -%\hfil -%\begin{minipage}{.45\linewidth} -%\dots to these. -%\begin{Verbatim}[xleftmargin=\amtIndent] -%@ letter 8.5in 11in -%@+ %%BeginPaperSize: Letter -%@+ letter -%@+ %%EndPaperSize -% -%@ A4size 210mm 297mm -%@+ %%PaperSize: A4 -% -%@ letterSize 8.5in 11in -% -%\end{Verbatim} -%\end{minipage} -% -%\end{questions} -% -% If you find changing the command line inconvenient, you can -%include the command -%\begin{Verbatim}[xleftmargin=\amtIndent] -% \hypersetup{pdfpagescrop=53 486 389 754} -%\end{Verbatim} -%in the preamble of your document. -% -%\end{comment} - -%\makeatletter\hy@bookmarksnumberedfalse\makeatother -%\subsubsection{\texorpdfstring{}{\textbullet\space}Setting the Driver Option} -%\makeatletter\hy@bookmarksnumberedtrue\makeatother - -\subsection{Setting the Driver Option}\label{sss:driver} - -You can set your driver option in one of three ways: -\begin{itemize} - \item Pass as a local option: %\\ %[3pt] - \cs{usepackage[\meta{driver}]\darg{web}} - \item Pass as a global option: %\\ %[3pt] - \cs{documentclass[\meta{driver}]\darg{article}} - \item Create the file \texttt{web.cfg} with the single command - in it:%\\ %[3pt] -\begin{quote} - \cs{ExecuteOptions\darg{\meta{driver}}} -\end{quote} - Place the file \texttt{web.cfg} in any folder where \LaTeX\ - looks for input files. Then, you need only type - \verb+\usepackage{web}+. -\end{itemize} -Where \meta{driver} is any of the following options listed in -the paragraph \textbf{\nameref{para:webdrivers}} on page~\pageref{para:webdrivers}. - -The macros of the \pkg{web} package have been extensively -tested using the \Y&Y\ \TeX\ System for the -\texttt{dvipsone} option and a MiK\TeX\ System -(\url{www.miktex.org}) for the \texttt{dvips}, \texttt{pdftex} (which includes lua(la)tex), -\texttt{dvipdfm}, \texttt{dvipdfmx}, and \texttt{xetex} - -%\subsubsection{The \texorpdfstring{\protect\texttt{pdftex}}{pdftex} Option} -% -% -%The \texttt{pdftex} option requires \pkg{hyperref} version 6.60 -%or greater. (The most recent version is preferred.) The -%\pkg{web} and \textsf{exerquiz} packages will probably run -%correctly with slightly earlier versions, but you may see -%`underfull hbox' error messages. -% -%The \pkg{web} package uses the AMS Font set for the -%black triangle that appears in the navigation bar, see -%\hyperref[ss:naviaids]{Section~\ref*{ss:naviaids}}. -% -%The AMS Font sets comes with Mik\TeX, if you don't have -%\textsf{pdftex} configured the use them, here are some -%instructions that work for the Mik\TeX{} system. -%\begin{questions} -%\item Copy the file \texttt{amsfonts.map} from the folder -%\texttt{texmf/dvips/ams} to the folder \texttt{texmf/pdftex/base}. -%(Mik\TeX{} may have restructured the directory tree since the time -%of this documentation.) -%\item Edit the file \texttt{pdftex.cfg} to include the lines: -%\begin{Verbatim}[xleftmargin=\amtIndent] -%map +amsfonts.map % to get AMSFonts -%map standard.map % to get dings -%\end{Verbatim} -% -%\item The \texttt{pdftex.cfg} file now looks like this: -%\begin{Verbatim}[xleftmargin=\amtIndent] -%output_format 1 -%compress_level 9 -%decimal_digits 2 -%page_width 210mm -%page_height 297mm -%horigin 1in % <-- important, see 4. -%vorigin 1in % <-- important, see 4. -%map standard.map -%map +cm.map -%map +amsfonts.map -%\end{Verbatim} -%\item Take note of the settings of \texttt{horigin} and -%\texttt{vorigin}. Set these two to 1\,in\@. This will align the -%text on the page where the cropping numbers expects the text to -%be; the result will be a properly cropped page. -%\end{questions} - - -\subsection{The \texttt{tight} Option}\label{sss:webtight} - -In an effort to compact more material per page, I've introduced a -\texttt{tight} option. When this option is used, many of the list -parameters are redefined so that there is not so much space around these -environments, and between items. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),tight,!meta(other_options)]{web} -\end{Verbatim} - -\subsection{The \texttt{usesf} Option}\label{usesf} - -For presentations, some people like a sans serif font. Using this option -make san serif the default font style. - -\subsection{The \texttt{draft} Option}\label{draft} - -When you take this option, graphic overlays are not allowed. This -is useful when you rely heavily on graphic overlays, but during the -development phase, don't need to read and re-read your overlays. The -defined background colors will be used instead. Remove this option -to build the final version of your document. - - -\subsection{The \texttt{nobullets} Option}\label{nobullets} - -Traditionally, the subsubsections have been denoted by a bullet, by -using this option, you can force the use of numbers for the -subsubsections, This option automatically executes the -\texttt{latextoc} option. - -There is another option \texttt{forceSubSubNumbers}, which does the same thing -as nobullets. This option is included for compatibility with the {\AcroT} -Presentation Bundle (\textsf{APB}). - -\subsection{The \texttt{unicode} Option}\label{web:unicode} - -This option is passed to \pkg{hyperref}, and is placed in {\Web} as a -convenience. If \textsf{eforms} is subsequently loaded, \textsf{eforms} (and -\textsf{exerquiz}) will accept {\LaTeX} markup in the optional argument -of the form fields. See the \href{eformman.pdf}{eforms manual} -for details. - -\subsection{The \texttt{useui} Option}\label{web:useui} - -This option is passed to \textsf{eforms}, and is placed in {\Web} as -a convenience. If \textsf{eforms} is subsequently loaded, -\textsf{eforms} loads the \textsf{xkeyval} package, and key-value pairs are -defined for use in the optional argument of form and link commands. -See the \href{eformman.pdf}{eforms manual} for details. - -\subsection{The \texttt{xhyperref} Option}\label{web:xhyperref} - -The \pkg{web} package requires \pkg{hyperref} and calls it with a particular -set of options, given below. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\RequirePackage[% - !ameta(driver), - bookmarks,bookmarksnumbered,bookmarksopen,% - colorlinks,\aeb@useunicode,linkcolor=webgreen,% - filecolor=webbrown,citecolor=webgreen,% - urlcolor=webbrown,pagebackref,pdfpagemode=UseNone,% - pdfstartview=Fit,pdfpagelayout=SinglePage,% - !ameta(addtoHyOpts)} -\end{Verbatim} -These option choices may be overridden using the \opt{addtoHyOpts} or -\opt{addtoHyOpts*} option, described in Section~\ref*{web:addtoHyOpts} below. - -Now, if this \opt{xhyperref} option is used, the \pkg{hyperref} package is -\emph{not automatically} included by the \pkg{web} package. It is assumed -that \pkg{hyperref} will be included in the document prior to \pkg{web}. Use -the \opt{xhyperref} option if you want to completely revamp the look of a -\pkg{web} document by custom choices of the \pkg{hyperref} options. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!ameta(Hy-options)]{hyperref} -\usepackage[xhyperref,!ameta(web-options)]{web} -... -\end{Verbatim} -This avoids possible ``option clashes'' when your choices conflict with those of \pkg{web}. - - -\subsection{The \texttt{addtoHyOpts} and \texttt{addtoHyOpts*} Options}\label{web:addtoHyOpts} - -To maximize the convenience of passing options to \pkg{hyperref}, the \pkg{web} package -provides the \opt{addtoHyOpts} option. -\bVerb\takeMeasure{\string\usepackage[\meta{web-options},addtoHyOpts=\darg{\meta{Hy-options}}]\darg{web}}% -\begin{dCmd}[commandchars=!()]{\bxSize} -\documentclass{article} -\usepackage[!meta(web-options),addtoHyOpts={!meta(Hy-options)}]{web} -... -\end{dCmd} -\eVerb The value of \opt{addtoHyOpts} is any combination of key-values that -\pkg{hyperref} offers as package options. For example, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!meta(web-options),addtoHyOpts={pdfencoding=auto}]{web} -... -\end{Verbatim} -The \texttt{pdfencoding=auto} is useful for authors writing in the latin1 character set. The -value of \texttt{pdfencoding}, by the way, overrides the \opt{unicode} option. - -There is another option that passes its value to the \cs{hypersetup} command. -\bVerb\takeMeasure{\string\usepackage[\meta{web-options},addtoHyOpts*=\darg{\meta{Hy-options}}]\darg{web}}% -\begin{dCmd}[commandchars=!()]{\bxSize} -\documentclass{article} -\usepackage[!meta(web-options),addtoHyOpts*={!meta(Hy-options)}]{web} -... -\end{dCmd} -\eVerb The value of \opt{addtoHyOpts*} is any combination of key-values that -\pkg{hyperref} offers as package options. For example, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!meta(web-options),addtoHyOpts={pdfencoding=auto}]{web} -... -\end{Verbatim} - -The \opt{addtoHyOpts} adds its value to the option list of \pkg{hyperref}, as -built by \pkg{web}, whereas \opt{addtoHyOpts*} passes its value to the -\cs{hypersetup} command. Both options \opt{addtoHyOpts} and -\opt{addtoHyOpts*} may appear in the option list of \pkg{web} at the same -time. - -\section{Setting Screen Size}\label{s:setscreensize} - -Beginning with version 2.0, the screen size can be set by the -author. There are two ways to do this: (1) use the macros -\cs{screensize} and \cs{margins} (These are the same -macros, slightly redefined, for setting the screen size used by -Radhakrishnan in his fine screen package \textsf{pdfscreen}.); or (2) use -a screen design option. The next two sections address each of -these in turn. - -\subsection{Custom Design}\label{cusDesign} - -There are six dimensions that need to be specified. As with -\textsf{pdfscreen}, the two commands \cs{screensize} and -\cs{margins} are used for doing so. - -The command \cs{screensize} takes two length parameters: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\screensize{!ameta(height)}{!ameta(width)} -\end{Verbatim} -\noindent The \ameta{width} and \ameta{height} parameters are the desired -screen size of the page. The screen version of this manual uses -\begin{Verbatim}[xleftmargin=\amtIndent] -\screensize{3.72in}{4.67in} -\end{Verbatim} -\noindent The other command, \cs{margins}, which determines the desired -margins, takes four length parameters: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\margins[!ameta(panel_width)]{!ameta(left)}{!ameta(right)}{!ameta(top)}{!ameta(bottom)} -\end{Verbatim} -\newtopic The values of \cs{textheight} and \cs{textwidth} are computed -based on the screen size and the margins. The margin settings for -this document are given below: -\begin{Verbatim}[xleftmargin=\amtIndent] -\margins{.25in}{.25in}{30pt}{.25in} -\end{Verbatim} -\newtopic The optional first parameter \ameta{panel\_width} is used to set -the width of the panel, if there is one. The default is \texttt{1in}. - -\begin{redpoint}\space\ignorespaces -An important comment about the third parameter -\ameta{top} is the following: as with \textsf{pdfscreen}, we put -\cs{@Topmargin=\ameta{top}}. The running header fits within the top -margin (this varies from standard \LaTeX{} practice). The -\pkg{web} package dimension \cs{web@Topmargin} is the distance -from the top of the screen down to the top of the running header. Thus, -\begin{Verbatim}[xleftmargin=\amtIndent] -\@Topmargin = \web@Topmargin + \headheight + \headsep -\end{Verbatim} -\noindent Also, \cs{web@Topmargin} can be used to adjust the -positioning of a running header, which is specified in the -\cs{margins} command. The default value of \cs{headheight} is -\texttt{8pt}, so the value of \cs{headsep} is determined by the -above equation. See the \textsf{web.dtx} file for more details. -\end{redpoint} - -\subsection{Screen Design Options}\label{sss:designoptions} - -For your convenience, I've included nine options, \texttt{designi}, -\texttt{designii},\dots \texttt{designix}. The first one roughly -corresponds to the original screen dimensions of \pkg{web}. The -dimensions of these designs options are\medskip -\begingroup\par\noindent\hfuzz=3pt\small -\begin{tabular*}{\linewidth}{>{\ttfamily}l>{\ttfamily}lc|>{\ttfamily}l>{\ttfamily}lc} -\multicolumn{1}{c}{Design Option}&\multicolumn{1}{c}{width $\times$ height}&\multicolumn{1}{c|}{AR}&% -\multicolumn{1}{c}{Design Option}&\multicolumn{1}{c}{width $\times$ height}&\multicolumn{1}{c}{AR}\\\hline -designi & {4.67in} $\times$ {3.736in}&5:4&designv &{6in} $\times$ {4.5in}&4:3\\ -designii &{5in} $\times$ {4.5in}&10:9&designvi &{4.67in} $\times$ {4.17in}&28:25\\ -designiii &{6in} $\times$ {5in}&6:5&designvii &{10in} $\times$ {7.5in}&4:3\\ -designiv &{5in} $\times$ {4in}&5:4&designviii&{6.67in} $\times$ {3.75in}&16:9\\ -&&&designix&3.75in $\times$ 6in&16:10 -\end{tabular*} -\endgroup -\newtopic Most of these design values were chosen for their visual appeal, or for some particular need. -The designs \texttt{designv} and \texttt{designvii} have an aspect ratio of 4:3, this is a standard for video displays, -while \texttt{designviii} is another one with a standard aspect ratio for wide screen computer monitors. - -\newtopic To select a particular design for your document, simply include its name amongst the option -list for the \pkg{web} package; for example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[designv]{web} -\end{Verbatim} -creates a document with dimensions of \texttt{designv}, $6\,\text{in} \times 4.5\,\text{in}$. - -\redpoint When you specify a screen design, the macros -\cs{screensize} and \cs{margins} are redefined to gobble up -their parameters. To define a custom screen size, therefore, do -not specify a screen design option for \pkg{web}.\endredpoint - -\subsection{\texorpdfstring{\protect\cs{setScreensizeFromGraphic}}{\CMD{setScreensizeFromGraphic}}}\label{setScreensizeFromGraphic} - -If a design is \emph{not specified} in the option list of \Web, you -can use a graphic to set the screen size with -\Com{setScreensizeFromGraphic}. The command takes two parameters -that correspond to the parameters of \cs{includegraphics}, and are -just passed to \cs{includegraphics}. This is useful if you have a -graphic to be used for a template but cannot be deformed to fit one -of the standard designs. The solution is to create a screen size -matching the graphic, then using that graphic as a template. Example -usage, -\begin{Verbatim}[xleftmargin=\amtIndent] -\margins{1in}{1in}{24pt}{.25in} -\setScreensizeFromGraphic{acro_30} -\template{acro_30} -\end{Verbatim} -It may become necessary with some graphics to use the -\texttt{hiresbb} option for the command \cs{includegraphics}, both in -\cs{setScreensizeFromGraphic} and \cs{template} like so, -\begin{Verbatim}[xleftmargin=\amtIndent] -\margins{1in}{1in}{24pt}{.25in} -\setScreensizeFromGraphic[hiresbb]{acro_30} -\template[hiresbb]{acro_30} -\end{Verbatim} -\newtopic This command should not be used with a panel option for the text screen -size will be adjusted for the panel, and the graphic will be -re-scaled appropriately. - -\subsection{Using \texorpdfstring{\protect\cs{addtoWebHeight} and \protect\cs{addtoWebWidth}} -{\CMD{addtoWebHeight} and \CMD{addtoWebWidth}}} - -There may be an occasion when you've chosen your design dimensions -(\texttt{designi}, \texttt{designii}, etc.), but you have determined the -dimensions provided by the selected design are not quite \emph{wide} or \emph{high} enough. -You can make adjustments to the width and height without explicitly specifying -the commands \cs{margins} and \cs{screensize} by using \cs{addtoWebHeight} and/or -\cs{addtoWebWidth}. The syntax for each is -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\addtoWebHeight{!ameta(length)} -\addtoWebWidth{!ameta(length)} -\end{Verbatim} -These two can only be executed in the preamble, and they add (or subtract) -the specified \ameta{length} to the height and width of the page. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\addtoWebHeight{1in} -\end{Verbatim} -adds one inch to the height of the page. This -command is roughly equivalent to executing, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\screensize{!ameta(current_height)+1in}{!ameta(current_width)} -\end{Verbatim} - - -\subsection{Using a panel option} - -When the \texttt{rightpanel} or \texttt{leftpanel} option is used -the page is divided into the text screen and a panel (either on the -left or right of the page). The default width of the panel is 1in -and the minimum width of the panel is 1in. - -When designing the screen using \cs{screensize} and \cs{margins}, -the panel width of the panel can be set by the first optional -parameter of \cs{screensize}, as described in -section~\ref{cusDesign}, page~\pageref*{cusDesign}. When using one -of the standard design options, the panel width is set to the -default value of 1in. To set the panel width to another value, use -\cs{panelwidth} in the preamble. \verb!\panelwidth{1.25in}! sets the -panel width to 1.25 inches. - -If you set the panel width to a length less than the minimal panel -width, the minimal panel width (1in) will be used. You can reset the -minimal panel width using \Com{minPanelWidth}. See -section~\ref{panelscreentemplate}, -page~\pageref*{panelscreentemplate}, for more details on this command. - -\section{Hyperref Options} - -The \pkg{web} package loads \pkg{hyperref} into the document -and sets some selected options of that package; therefore, -including the \pkg{hyperref} package is not needed in the -preamble of your own document. - -Any additional \pkg{hyperref} options that are needed can be -introduced into the package using \pkg{hyperref}'s -\cs{hypersetup} macro, for example, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!ameta(options)]{web} -% Declare additional hyperref options using \hypersetup -\hypersetup{pdfpagemode=UseNone,bookmarksopen=false} -\end{Verbatim} -An alternate approach is to use the \opt{addtoHyOpts} option of \pkg{web}: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!ameta(options),addtoHyOpts={pdfpagemode=UseNone, - bookmarksopen=false}]{web} -\end{Verbatim} -The \opt{addtoHyOpts*} option of \pkg{web} may also be used: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\documentclass{article} -\usepackage[!ameta(options),addtoHyOpts*={pdfpagemode=UseNone, - bookmarksopen=false}]{web} -\end{Verbatim} -The \opt{addtoHyOpts} option adds its value to the \pkg{hyperref} option of -as built by \pkg{web}, whereas, \opt{addtoHyOpts*} passes its value to the -argument of a \cs{hypersetup} command. - - -\noindent Documentation of the options that \pkg{hyperref} -recognizes can be had by either \LaTeX ing the file -\texttt{hyperref.dtx}, or by getting a copy of the \textsl{The -\LaTeX\ Web Companion} \cite{book:Goossens3} by Michel Goossens, -{\textsl{et al}}. - -\redpoint The \pkg{web} option \texttt{xhyperref} bypasses the inclusion -of the \pkg{hyperref} package. It is expected that the document author inputs -\pkg{hyperref} prior to \pkg{web}. - -\section{Running Headers and Footers} - -There are convenience commands setting the running headers and -footers; they are \cs{lheader}, \cs{cheader}, \cs{rheader}, -\cs{lfooter}, \cs{cfooter}, and \cs{rfooter}. Each of these takes a -single argument, which is the text for the header or footer in the -position desired. In the standard setup for {\Web}, \cs{lheader}, -\cs{rheader} and \cs{cfooter} are used for, respectively, the -current section title, the current page and the navigation bar (if -activated). - -You can set some basic formatting styles for the header and footer using -\Com{header\-format} and \cs{footerformat}. For example, executing -\begin{Verbatim}[xleftmargin=\amtIndent] -\headerformat{\bfseries\color{red}} -\end{Verbatim} -causes the running header to appear in bold red color. - -There are a couple of hooks for the header and footers, these are -\Com{webheadwrapper} and \Com{webfootwrapper}. These commands can be -use to stylize the entire header or footer. They can be defined to have -one argument. The argument is the content of the header or footer. For example, -\begin{Verbatim}[numbers=left,xleftmargin=\amtIndent,fontsize=\small] -\headerformat{\bfseries\color{red}} -\footerformat{\bfseries\color{red}} -\renewcommand{\webheadwrapper}[1]{\fcolorbox{red}{yellow}{% - \makebox[\linewidth-2\fboxsep-2\fboxrule][s]{#1}}} -\renewcommand{\webfootwrapper}[1]{\fcolorbox{red}{yellow}{% - \makebox[\linewidth-2\fboxsep-2\fboxrule][s]{#1}}} -\end{Verbatim} -\newtopic Lines~(1) and~(2) makes declares bold font for the header and footer. -Lines~(3) and~(4) defines a \cs{fcolorbox} with hideous red and yellow colors; -lines~(5) and~(6). Note that adjustment in the width to account for the \cs{fcolorbox} -rule width and the space surrounding the text in the \cs{fcolorbox}. - -\newtopic On occasion you may want to have no running headers at all, this can -be accomplished by saying in the preamble, or anywhere, -\verb!\lheader{}!, \verb!\cheader{}!, and/or \verb!\rheader{}!. -Another solution is to use the commands \cs{clearHeaders} and -\cs{restoreHeaders}. The command \cs{clearHeaders} first saves the current -definitions of the headers then sets the headers to the empty -header. The command \cs{restoreHeaders} restores the definitions that were in -effect when the last \cs{clearHeaders} was executed. - -\newtopic\textbf{No running headers on section pages.} -One user did not like a running header that includes a section title -on the same page where the section begins. The default behavior is -to create a running header where the section title does not appear -in the header on the same page as the section is inserted, on -subsequent pages, the section head appears, I hope. - -The two commands control this behavior, the default is \emph{to not -show} the section heading (\cs{lheader}) on the page where the -section begins. Use \Com{headersOnSectionPage} to place headers on -the same page as the beginning of a section. You can also change back to -the default behavior using \Com{noHeadersOnSectionPage} (the default). - - -\section{The Title Page and TOC} - -The title page is constructed from the values of the macros: -\cs{title}, \cs{author}, \cs{uni\-ver\-sity}, \cs{email}, and -\cs{version}. The values of some of the macros \cs{title} and -\cs{author} are also transferred to the PDFDocInfo section of the -Acrobat/Adobe Reader. (Press \texttt{Ctrl+D} while viewing a \PDF{} document -to see this information.) - -Additionally, the values of \cs{subject} and \cs{keywords}---which -do not appear on the title page---are inserted into the PDFDocInfo -section. - -\newtopic The colors of the text corresponding to \cs{title}, \cs{author} and \cs{university} on the title -page can be set by using \cs{titleColor}, \cs{authorColor} and \cs{universityColor}. -Each takes a single argument, a named color. The defaults are -\begin{Verbatim}[xleftmargin=\amtIndent] -\universityColor{blue} -\titleColor{black} -\authorColor{black} -\end{Verbatim} -For more information on defining named \textsf{colors}, see the documentation -of the color or \textsf{xcolor} packages. A simple example would be -\begin{Verbatim}[xleftmargin=\amtIndent] -\definecolor{MyOwnColor}{rgb}{0.945,0.87,0.518} -\end{Verbatim} - -\redpoint When the \texttt{extended} option is used, all colors can be -specified with \cs{selectColors}, see -\Nameref{designColor}.\endredpoint - -\subsection{Basic Information Commands}\label{ss:BIM} - -The basic information commands allows you a convenient way to enter the title and author -of the document, as well as other information. To enter this basic information, -just fill in the values of all the basic macros briefly described below. - -For example, the following is a copy of the title information for this document: -\begin{Verbatim}[xleftmargin=\amtIndent] -% \title,\author,\subject,\keywords are sent to DocInfo -\title{The Web and Exerquiz Packages Manual of Usage} -\author{D. P. Story} -\subject{How to create on-line exercises and quizzes} -\keywords{LaTeX,hyperref,PDF,exercises,quizzes} -\end{Verbatim} - -\begin{Verbatim}[xleftmargin=\amtIndent] -% \university,\email,\version are used only on title page -\university{Northwest Florida State College\\ - Department of Mathematics} -\email{dpstory@acrotex.net} -\version{1.0} -\copyrightyears{1999-2010} -\end{Verbatim} -You can optionally specify the \cs{date}. The web packages uses the value of \cs{date} -at the bottom of the title page. There is says, ``Last Revision Date: \ameta{date}''. If -the \cs{date} command is not used, the current date is used. - -\redpoint The \cs{title}, \cs{author}, \cs{subject}, \cs{keywords} -are a convenient way of entering information in the Document -Information fields---see -\begin{equation*} -\texttt{File > Document Info > General... (Ctrl+D)} -\end{equation*} -in the Acrobat/Adobe Reader.\endredpoint - -\newtopic\indent If \cs{title} contains control sequences that do not expand to the -Standard PDFDocEncoding character set, Distiller will be thrown -into a tailspin; \pkg{hyperref} defines the \cs{texorpdfstring} -macro\footnote{The code for handling PDFDocEncoding for -\pkg{hyperref} is due to Heiko Oberdiek} to avoid these kinds -of problems. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\title{The \texorpdfstring{$e^x$}{EXP} Function} -\end{Verbatim} -\noindent The first argument is the one that is typeset (on the title page, -the title of the document will be `The $e^x$ Function'); the -second argument is the one that is sent to the title field of -DocInfo in the Adobe Reader (and will read `The EXP Function'). - -Of all the \nameref{ss:BIM}, as listed on page~\pageref*{ss:BIM}, -use \cs{texorpdfstring} only with the \cs{title} and \cs{author}; -these are the only two that are both typeset and placed in the -DocInfo field of the Adobe Reader. - -\redpoint \cs{texorpdfstring} works for \cs{section}, -\cs{subsection}, etc\@. as well.\par\medskip - -\newtopic Having entered the values of the basic information -commands, you can now type the standard sort of \LaTeX\ commands of -\cs{maketitle} and \cs{tableofcontents}: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{document} -\maketitle -\tableofcontents -... -... -\end{document} -\end{Verbatim} - -\exAeBBlogPDF{p=803}\gob{\exPDF{webeqtst}} Use the source file for -\texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} as a prototype or -template for your own document. - -\redpoint When the \texttt{extended} option is in effect, the basic document -information just described can be entered through the -\cs{DeclareDocInfo} command, see page~\pageref{docinfo}.\endredpoint - -\subsection{Title Page Structure} - -The title page is divided into three parts: top, middle and bottom. -\begin{itemize} -\item \textbf{Title Top:} The content of the top is determined by the \Com{top\-Titl\-ePage} -command. (This command can be redefined, but it is not recommended.) The -\cs{topTitlePage} command expands to three elements: the university (affiliation), the title, -and the author(s), in that order vertically. These are the values of the commands \cs{university}, -\cs{title} and \cs{author} discussed in the previous section. - -\item \textbf{Title Middle:} The \Com{optionalPageMatter} command -is used to enter content into this part of the title page. This -middle part is optional; if \cs{optionalPageMatter} does -not appear in the preamble, this part of the title page is -empty. Here is an example of usage: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\optionalPageMatter{% - \begin{center} - \fcolorbox{blue}{webyellow}{ - \begin{minipage}{.67\linewidth} - \noindent\textcolor{red}{\textbf{Abstract:}} This - file attempts to teach you how to create a simple - \LaTeX\ document. - \end{minipage}} - \end{center}} -\end{Verbatim} -The above definition will create the framed box seen below. - - \begin{center} - \fcolorbox{blue}{webyellow}{ - \begin{minipage}{.67\linewidth} - \noindent\textcolor{red}{\textbf{Abstract:}} This file - attempts to teach you how to create a simple \LaTeX\ document. - \end{minipage}} - \end{center} - -The \cs{optionalPageMatter} appears just below the \cs{webauthor} -and above the directory listing if there is any. - -The syntax \cs{optionalPageMatter} is\dots -\bVerb\takeMeasure{\cs{optionalPageMatter[\ameta{vspace}]\darg{\ameta{content}}}} -\begin{dCmd}[commandchars=!()]{\bxSize} -\optionalPageMatter[!ameta(vspace)]{!ameta(content)} -\end{dCmd} -\eVerb where \ameta{content} content to be displayed in middle title region, and -\texttt{[\ameta{vspace}]} consists of one (or more) \cs{vspace} commands. The default -is -\begin{Verbatim}[xleftmargin=\amtIndent] -\minimumskip\vspace{\stretch{1}} -\end{Verbatim} -The command \cs{minimumskip} expands to \cs{medskip}. - -\item \textbf{Title Bottom:} Bottom of the title page is controlled -by the contents of the command \cs{titlepageTrailer} and consists of -the values of the commands \cs{email}, \cs{version}, \texttt{copyrightyears} -Below is a rough figure depicting the location of the elements found -in the title page trailer. - -{\setlength{\tabcolsep}{0pt} -\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lr} -\anglemeta{copyright notice} & \cs{thewebemail}\\ -\anglemeta{revision} & \cs{webversion} -\end{tabular*}} -\newtopic The definition of these elements are as follows: -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\def\maketitle@trailer@ul{\web@copyright\ \web@copyright@symbol\ - \webcopyrightyears} -\def\maketitle@trailer@ll{\web@revision\ \@date} -\def\maketitle@trailer@ur{\thewebemail} -\def\maketitle@trailer@lr{\webversion} -\end{Verbatim} - -\begin{description} -% -% ?? The ul corner not accurate, need to address this. -% -\item The \texttt{ul} corner: The macro \cs{web@copyright} expands to `Copyright', it can be redefined, or removed by - executing \Com{nocopyright}. \cs{webcopyrightyears} expands to the argument of \cs{copyrightyears}. - -%the final element in the upper left is the email address. -%To make everything go away except for the email address, executed \Com{nocopyrightNotice}. - -\item The \texttt{ll} corner: The \anglemeta{revision} expands to -\cs{web@revision} followed by \cs{@date}. The \cs{web@revision} expands to -``Last Revision Date:'', and can be changed by using \cs{revisionLabel} -(for example \verb!\revisionLabel{Published:}!). The \cs{@date} expands to -the argument of the \cs{date} command, or if this was not used, expands -to the current date. - -\item The \texttt{ur} corner: The upper-right corner goes the email address, as enter through -the \cs{email} command. - -\item The \texttt{lr} corner: The \cs{webversion} command goes into the - lower-right corner. It expands to - \cs{web@versionlabel\;\anglemeta{version\_number}}, while, in turn, - the command \cs{web@versionlabel} expands to ``Version''. This label can be - changed by using \Com{versionLabel} (for example, - \verb!versionLabel{Attempt}!). Finally, the variable - \anglemeta{version\_number} is the number entered through the - \cs{version} command. -\end{description} -\end{itemize} - -\newtopic The font size of the title page trailer - is set by the command \cs{trailerFontSize}, the default is -\cs{footnotesize}. This command must be re-defined in the usual -way: for example, \verb!\renewcommand{\trailerFontSize}{\small}!. - - -\redpoint When using the pro option, the elements of the title page trailer -can be entered by using \Com{DesignTitlePageTrailer}, see -\Nameref{trailer}.\endredpoint - -\subsection{Redefining -\texorpdfstring{\protect\cs{maketitle}}{\textbackslash maketitle}} - -The arguments of the \Nameref{ss:BIM} macros, as just discussed, -are used to define text macros with no parameters; for example, -when you type \verb+\title{Web Package}+, the macro \cs{title} -takes its argument and defines a macro \cs{webtitle} that expands -to `Web Package'. - -You can redesign the title page to suit your needs simply by -redefining \cs{maketitle}: rearrange the macros listed in the -second column of \hyperref[table:BIM]{Table~\ref*{table:BIM}} on -the page, or include a graphic, or change the background color. -To redefine \cs{maketitle}, use the commands: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\maketitle{...your design...} -\end{Verbatim} -\noindent See the definition of \cs{maketitle} in the \texttt{web.sty} file -for an example. - -\begin{table}[hbt] -\begin{center} -\begin{tabular}{|l|l|} -\hline -\multicolumn1{|l|}{This macro} & -\multicolumn1{l|}{defines this macro} \\ -\hline -\cs{title} & \cs{webtitle} \\ -\cs{author} & \cs{webauthor} \\ -\cs{subject} & \cs{websubject} \\ -\cs{keywords} & \cs{webkeywords}\\ -\cs{university} & \cs{webuniversity} \\ -\cs{email} & \cs{webemail} \\ -\cs{version} & \cs{webversion} \\ -\cs{copyrightyears} & \cs{webcopyrightyears} \\ -\hline -\end{tabular} -\caption{The Basic Information Macros}\label{table:BIM} -\end{center} -\vspace{-\baselineskip} -\end{table} - -When making the design, it is useful to know that the {\Web} -package uses the command \cs{hypertarget} to create a named destination, -`\texttt{webtoc}', in the table of contents. Use this -\texttt{webtoc} to jump to the table of contents using -the macro \cs{hyperlink}. - -\redpoint When the \texttt{extended} option is in effect, a slight redefinition -of \cs{maketitle} occurs. See the details in section~\ref{maketitlepro}, -\Nameref{maketitlepro}. - -\subsection{The Title Page Directory}\label{titlepagedir} - -When the \texttt{usedirectory} option is taken, a directory listing -appears on the title page. The default structure of the directory is - -\makeatletter - \vbox{\begin{flushleft}{\web@formatWordDirectory\web@directory}% - \vspace{-3pt}% - \begin{itemize}\setlength{\itemsep}{-3pt}\web@formatDirectoryItems - \if\web@removeDirTOC y\else\item\relax\dirTOCItem\fi - \if\web@removeDirArticle y\else\item\relax\dirArticleItem\fi - \web@addtoDirList - \end{itemize} - \end{flushleft}} -\makeatother -There are several commands that can be used to modify the directory. -\settowidth{\aebdimen}{\cs{dirContentLink\darg{Begin \string\hyperlink\darg{\string\web@Start.1}\darg{Article}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\directoryName{Directory} -\tocName{Table of Contents} -\dirContentLink{Begin \hyperlink{\web@Start.1}{Article}} -\end{dCmd} -\newtopic These three define the default text strings -that appear. In the case of \cs{dirContentLink}, -there is a built-in \cs{hyperlink} to the start of -the article. -\settowidth{\aebdimen}{\cs{formatWordDirectory\darg{\string\bfseries\string\large}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\formatWordDirectory{\bfseries\large} -\formatDirectoryItems{\bfseries} -\end{dCmd} -\newtopic The formatting of the \cs{directoryName} can be set by \cs{formatWordDirectory}, -the default definition is given above. The (global) formatting for the listing of the -items can be set using \cs{formatDirectoryItems}, the default is shown above. -\settowidth{\aebdimen}{\cs{removeDirTOC\quad\string\removeDirArticle}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\removeDirTOC!quad\removeDirArticle -\end{dCmd} -\newtopic These two commands remove the ``Table of Contents'' and -the ``Begin Article'' items from the list, respectively. - - -\settowidth{\aebdimen}{\cs{addtoDirList\darg{\meta{new\_item}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\addtoDirList{!meta(new_item)} -\dirTOCItem -\dirArticleItem -\end{dCmd} -\newtopic To add a new item to the end of the directory list, use \cs{addtoDirList}, the argument -is the new item. The other two commands \cs{dirTOCItem} and \cs{dirArticleItem} are commands -representing the first two default items. For example, typing -\begin{Verbatim}[xleftmargin=\amtIndent] -\addtoDirList{My home page is \url{www.example.com}} -\end{Verbatim} -in the preamble, adds this item to the end of the list. Should you want your home page listed first, you could do the -following - -\begin{Verbatim}[xleftmargin=\amtIndent] -\removeDirTOC -\removeDirArticle -\addtoDirList{My home page is \url{www.example.com}} -\addtoDirList{\dirTOCItem} -\addtoDirList{\dirArticleItem} -\end{Verbatim} - -\newtopic The following are for creating some special effects around the directory, -such as putting the directory into a multicolumn format. - -\settowidth{\aebdimen}{\cs{priorDirMatter\darg{\meta{text/commands}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\priorDirMatter{!meta(text/commands)} -\afterDirMatter{!meta(text/commands)} -\priorDirList{!meta(text/commands)} -\afterDirList{!meta(text/commands)} -\end{dCmd} - -Below is a partial listing of the definition of \cs{webdirectory}, the internal name -for the directory. We present the code so you can see where the prior/after commands -write to. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\web@priorDirMatter -\begin{flushleft}{\web@formatWordDirectory\web@directory}% -\web@priorDirList -\vspace{\vspaceAfterDirName}% -\begin{itemize} - !anglemeta(directory listing) -\end{itemize} -\web@afterDirList -\end{flushleft} -\web@afterDirMatter -\end{Verbatim} -\newtopic Contained within the code is another command, \Com{vspaceAfterDirName}, not mentioned before. -It is used to adjust vertical spacing after the directory name and -the beginning of the itemize list. - -A final command that may be useful is \Com{directoryhook}. It is used for manipulating -the directory as a whole. - -\bgroup\obeyspaces % -\settowidth{\aebdimen}{\ttfamily{ \anglemeta{code that manipulates \#1}}}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\directoryhook{ - !anglemeta(code that manipulates #1) -} -\end{dCmd} -\egroup -\newtopic The argument of \cs{directoryhook} is some \LaTeX{} code that manipulates \texttt{\#1}, within -the argument \texttt{\#1} refers to \cs{webdirectory}, the internal name of the directory. -The following example places a colored box around the directory, and centers it on the title page. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\directoryhook{% - \begin{center} - \setlength{\topsep}{0pt}% - \fcolorbox{red}{webyellow}{% - \parbox{.4\linewidth}{#1}}% - \end{center} -} -\end{Verbatim} - -\exAeBBlogPDF{p=283} See the file -\texttt{\href{\urlAcroTeXBlog/?p=283}{multicol\_dir.pdf}} -for examples of many of these commands. This file is posted on the -\href{\urlAcroTeXBlog}{\AcroBlog}. - - -%\directoryhook - - -\subsection{The TOC for Web} - -The \pkg{web} style comes with its own table of contents format, -as seen in the table of contents for the screen version of this document. -The amount of indentation can be adjusted using \cs{tocindent}. The default is -\begin{Verbatim}[xleftmargin=\amtIndent] -\tocindent{20pt} -\end{Verbatim} -There is another relevant parameter, \cs{widestNumber}. The value of the -argument of this command declaration sets the amount of indentation for the -subsection numbers. The default is -\begin{Verbatim}[xleftmargin=\amtIndent] -\widestNumber{0.0.} -\end{Verbatim} -This is a template for the subsection numbers, the default is a one digit -section number and a one digit subsection number. In the preamble of this -document, I've set \cs{widestNumber\darg{0.00.}}, since some subsection -numbers have two digits. - -\newtopic The color of the heading of the table of contents is set through -\settowidth{\aebdimen}{\cs{tocColor\darg{\meta{named\_color}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\tocColor{!meta(named_color)} -\end{dCmd} -Specifying a color through this command at any time before the creation of the table of contents -will change the color of the heading. The default is blue. - - -\redpoint If you prefer the standard {\LaTeX}, the -\texttt{\hyperref[sss:latextoc]{latextoc}} option can be used.\endredpoint - -\subsection{The -\texorpdfstring{\protect\texttt{usedirectory}}{usedirectory} -Option}\label{sss:nodir} - -When the \texttt{usedirectory} option is specified, a short -directory appears on the first page, see \Nameref{titlepagedir} for -more details. - -\redpoint \textbf{\textcolor{red}{Important Note:}} In previous versions -of {\Web}, the directory automatically appeared, and there was a -\texttt{nodirectory} option to make it go away. Now, the directory -does not appear by default, and the option \texttt{usedirectory} -makes it appear. The \texttt{nodirectory} option is still defined, -but does nothing.\endredpoint - - -\subsection{The \texorpdfstring{\protect\texttt{latextoc}}{latextoc} -Option}\label{sss:latextoc} - -If you don't like the default design for the table of contents, -you can always recover the standard \LaTeX\ table of contents by -using the \texttt{latextoc} option with the \pkg{web} -package: -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[latextoc]{web} -\end{Verbatim} -\noindent Should you want to go with this option, you might consider -including -\begin{Verbatim}[xleftmargin=\amtIndent] -\hypersetup{linktocpage} -\end{Verbatim} -\noindent Look at the table of contents with and without this -\pkg{hyperref} option to decide which you prefer. - -\subsection{The \texttt{centertitlepage} Option}\label{centertitle} - -Beginning with version 5.0, there is a \texttt{centertitlepage} option -that attempts to center the title page better when the \texttt{forpaper} option -is taken. The \cs{textwidth} of the document is preserved. - -\subsection{The \texttt{centertitlepagefull} Option}\label{centertitlefull} - -When the \texttt{centertitlepagefull} option is used, the content of the title -page is centered on the page when the \texttt{forpaper} option -is taken. The \cs{textwidth} is \cs{paperwidth} minus \texttt{2\cs{coverpagemargin}}. -The default value of the \emph{command} \cs{coverpagemargin} is \texttt{1\,in}. - - -\subsection{The \texorpdfstring{\protect\cs{makeinlinetitle}}{\CMD{makeinlinetitle}} Command}\label{inlinetitle} - \aebCng[makeinlinetitle] - -For some short documents,\footnote{Short documents such as white -papers, homework assignments, for example.} a formal title page may -not be needed or desirable. In this case, use \cs{makeinlinetitle}, -the ``in-line'' title. - -\settowidth{\aebdimen}{\cs{makeinlinetitle}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\makeinlinetitle -\end{dCmd} - -\newtopic The command, which can be redefined to your needs, has the following design: -\begin{center}\setlength{\tabcolsep}{0pt} -\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}lcr} - & \cs{webtitle} &\\ -\cs{webuniversity} & \cs{webauthor} & \cs{webemail}\\ -\texttt{date} & & \cs{webversion} -\end{tabular*} -\end{center} -The table above extends the entire \cs{linewidth}. The values of \cs{webtitle}, -\cs{web\-uni\-ver\-sity}, \cs{webauthor}, \cs{webmail} and \cs{web\-ver\-sion} -are populated by their command counterparts, see \hyperref[table:BIM] -{Table~\ref*{table:BIM}}, page~\pageref*{table:BIM}. The \texttt{date}, -as appears in the lower left row, will expand to the current date, -or the value specified by the \cs{date} command. - -\newtopic Below are notes in the case the \texttt{extended} option is in effect: -\begin{itemize} - \item The basic information above can be entered through - \cs{DeclareDocInfo} command as described in - section~\ref*{docinfo}, entitled \Nameref{docinfo}. - \item If the value of the \texttt{prepared} key is not specified, then - \texttt{date} is the current date, otherwise, \texttt{date} is the one specified - as the value of the \texttt{prepared} key. - \item If the value of the \texttt{talksite} key is not specified, then - \cs{webversion} is used; but if \texttt{talksite} is specified, the value of this - key is used instead of \cs{webversion}. -\end{itemize} - -\section{Template Options}\label{ss:templates} - -The \pkg{web} Package has three options (and supporting -commands) for creating colored backgrounds, graphics backgrounds, -and various overlays. - -\subsection{The \texttt{usetemplates} Option} - -The \texttt{usetemplates} option activates the mechanism for -creating colored backgrounds and graphic overlays. A complete -discussion of the commands related to this option can be found -in the section entitled \Nameref{ss:templagemagement}. - -\redpoint See the demo file \texttt{bgtest.tex} for examples. - -\subsection{The \texttt{leftpanel} and \texttt{right\-panel} Options}\label{ss:lrpanel} - -When either of these two options is specified, a vertical panel -is created. See the section entitled \Nameref{ss:templagemagement} -for a complete discussion of the commands related to these options. - -\redpoint See the demo file \texttt{bgtest.tex} for examples. - -\subsection{The \texttt{leftpanelprt} and \texttt{right\-panelprt} Options}\label{ss:lrpanelprt} - -These two options are the same as \texttt{leftpanel} and -\texttt{right\-panel} \emph{when there is no paper option} (\texttt{forpaper}, -\texttt{forcolorpaper}). When a paper option is taken, these options do -nothing. The options are useful for creating a paneled PDF for the -screen, but the paper version that has no panel. - -\section{Navigation Aids}\label{ss:naviaids} - -The \pkg{web} package offers a couple of navigation aids to -help you move around: the \texttt{navibar} Option, and some -\hyperref[sss:diricons]{direction icons}. - -\subsection{A Navigation Bar}\label{sss:navibar} - -Use the \texttt{navibar} option of \pkg{web} to add a -navigation toolbar, as seen at the bottom of this page. -Usage: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),navibar]{web} -\end{Verbatim} -The result is the navigation bar you see at the bottom of the -page. - -\NaviBarOn\AddToShipoutPicture*{\NaviBarOff} - -\begin{comment} -\redpoint Here is (almost) the preamble of this document. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage[dvipsone,navibar]{web} % <- navibar option - -\hypersetup{pdfpagemode=None,bookmarksopen=false} - -\title{The Web and Exerquiz Packages Manual of Usage} -\author{D. P. Story} -\subject{How to create on-line exercises and quizzes} -\keywords{LaTeX, hyperref, PDF, exercises, quizzes} -\version{1.30}\copyrightyears{1999-2000} -\email{dpstory@uakron.edu} -\university{THE UNIVERSITY OF AKRON\\ - Mathematics and Computer Science} -\end{Verbatim} -\end{comment} - -\redpoint The toolbar can be turned on or off by the following -commands: \cs{Navi\-Bar\-On}\sCom{NaviBarOn} and -\cs{Navi\-Bar\-Off}\sCom{NaviBarOff}. The navigation toolbar at -the bottom of the page was generated by the \cs{NaviBarOn}. -\cs{NaviBarOff} was placed on the next page to turn off the bar. The -exact code used on this page is -\begin{Verbatim}[xleftmargin=\amtIndent] -\NaviBarOn\AddToShipoutPicture*{\NaviBarOff} -\end{Verbatim} - -\newtopic The colors for the navigation bar can be set with commands -\Com{navibarTextColor} and \Com{navibarBgColor}. Each take a single -argument, a named color. The default colors are \texttt{webblue} and -\texttt{webgray}, respectively. - - -\subsection{\texorpdfstring{\protect\cs{newNaviIcon}} - {\textbackslash newNaviIcon}}\label{ss:newnaviicon} - -The \cs{newNaviIcon} can be used to define a navigation icon. -The action of the icon can be to execute a menu item, perform a -hyper-jump, or execute the JavaScript code. It takes six -parameters: - -\medskip\noindent Parameters -\begin{Verbatim}[xleftmargin=\amtIndent] -#1 = m, j, or l -#2 = command name of the new navigation icon -#3 = width of icon -#4 = height of icon -#5 = text to appear in the center of the icon. -#6 = if m: named menu action, e.g., NextPage, PrevPage, etc. - if j: execute JavaScript - if l: \hyperlink{arg} or \href{arg} -\end{Verbatim} -\noindent Once the \cs{newNaviIcon} command is executed, a new icon is -defined. The name of this new icon is the value of parameter \#2. - -\redpoint \textcolor{blue}{Example:} -\begin{Verbatim}[xleftmargin=\amtIndent] -\newNaviIcon[m]{\myNext}{34pt}{10pt}{Next}{NextPage} -\newNaviIcon[j]{\jsWarning}{34pt}{10pt}{Hi}{app.alert("Hi there")} -\newNaviIcon[l]{\linkJump}{34pt}{10pt}{Go}{\hyperlink{page.1}} -\end{Verbatim} - -\newNaviIcon[m]{\myNext}{34pt}{10pt}{Next}{NextPage} -\newNaviIcon[j]{\jsWarning}{34pt}{10pt}{Hi}{app.alert("Hi there")} -\newNaviIcon[l]{\linkJump}{34pt}{10pt}{Go}{\hyperlink{page.1}} - -\noindent By typing \verb+\myNext\ \jsWarning\ \linkJump+, we get -\[ - \myNext\ \jsWarning\ \linkJump -\] -The colors for the navigation bar can be set with commands -\cs{navibarTextColor} and \cs{navibarBgColor}. - -\subsection{Direction Icons}\label{sss:diricons} - -The up arrow you see in the upper right-hand corner was -constructed using colored rules and the AMS symbol font, -\texttt{amssymb}. The uparrow icon was produced by the command: -\begin{Verbatim}[xleftmargin=\amtIndent] -\insertnaviiconhere{\ArrowUp{\hyperlink{webtoc}}} -\end{Verbatim} -The definition of \cs{ArrowUp}, which be found in the \textsf{web.dtx} file is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\ArrowUp[1] -{% - \setlength{\fboxsep}{6pt}\normalsize - \raisebox{-\depth}[0pt][0pt]{% - #1{\web@colorbox@w@transparency{\web@directionIconBgColor}% - {\textcolor{\web@directionIconTextColor}{$\bigl\Uparrow$}}}}% -} -\end{Verbatim} - -\noindent Or, more generally, -\begin{Verbatim}[xleftmargin=\amtIndent] -\insertnaviiconhere{\ArrowUp{link_command}} -\insertnaviiconhere{\ArrowDown{link_command}} -\end{Verbatim} -\noindent This will insert direction icons on the current page (I -hope). - -\insertnaviiconhere{\ArrowUp{\hyperlink{toc.1}}} - -\medskip - -If you want a running direction icon you can use -\begin{Verbatim}[xleftmargin=\amtIndent] -\insertnaviiconhereafter{\ArrowUp{link_command}} -\end{Verbatim} -\noindent or -\begin{Verbatim}[xleftmargin=\amtIndent] -\insertnaviiconhereafter{\ArrowDown{link_command}} -\end{Verbatim} - - -\redpoint To discontinue a running arrow icon type -\begin{equation*} -\cs{defaultpageheader} -\end{equation*} -on the page you want the arrow(s) to disappear. - -\newtopic The colors of the direction icons by using -the commands \Com{directionIconTextColor} and -\Com{directionIconBgColor}. Each command takes a named color as its argument; -the default values are \texttt{webblue} and \texttt{webgray}, respectively. - -\subsection{\texorpdfstring{\protect\cs{panelNaviGroup}} - {\textbackslash panelNaviGroup}}\label{ss:panelnavigroup} - -When the \texttt{\hyperref[ss:lrpanel]{leftpanel}} or -\texttt{\hyperref[ss:lrpanel]{rightpanel}} options are chosen, a -(navigation) panel is created. The command \cs{panelNaviGroup} -can be used to create the standard navigation panel. - -%\exPDF{bgtest} See the sample file \texttt{bgtest.tex} for an example of usage. - -\exAeBBlogPDF{p=877} See the file \texttt{\href{\urlAcroTeXBlog/?p=877}{bgtest.pdf}}. -The source file \texttt{bgtest.tex}, attached to the PDF, offers an example -of \cs{panelNaviGroup}. This article is posted on the -\href{\urlAcroTeXBlog}{\AcroBlog}. - - -\section{The Language Options}\label{web:langopts} - -The language options redefine all of the language dependent text -macros that appear on the title page, in the table of contents, and -in the running headers. Invoke these options in the usual -way: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(lang_opt)]{web} -\end{Verbatim} -Here, \texttt{\meta{lang\_opt}} is one of the following values: -\begin{quote} -\begin{tabular}{lll} -\texttt{dutch} & \texttt{french} & \texttt{german}\\ -\texttt{italian} & \texttt{norsk} & \texttt{russian}\\ -\texttt{spanish} & \texttt{dansk} & \texttt{polish}\\ -\texttt{finnish} & \texttt{czech} & \texttt{catalan}\\ -\texttt{brazil} & \texttt{turkish} -\end{tabular} -\end{quote} - -The \pkg{web} and \textsf{exerquiz} packages seem to be -compatible with the \textsf{babel} package; you can use -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage[french]{babel} -\usepackage[dvips,french]{web} -\usepackage{exerquiz} -\end{Verbatim} -subject to the usual restrictions on these language packages. -(Don't use characters declared active by these languages within a -\cs{label}, or as a field name for a quiz.) - -\section{Paper Related Options and Commands}\label{paperoptions} - -In this section, several paper options are discussed, and one command. - -\subsection{The -\texorpdfstring{\protect\texttt{forpaper}}{forpaper} -Option}\label{sss:webforpaper} - -Some people may want to create exercises using the -\texttt{exercise} environment for a paper document. The -\texttt{forpaper} option can be used to remove the color from the -document, and to restore the standard \cs{textheight} of a standard -\texttt{article} class \LaTeX{} document. - -The \cs{textwidth} is determined from the \cs{screensize} and -\cs{margins} parameters or by the design option (see -\nameref{sss:designoptions}), \emph{if any are given}; consequently, -the line breaks are the same for the ``web'' version and the -``print'' version. If the screen dimensions are not set (by a design -option or by the \cs{screensize} and \cs{margins} commands) when -using the \texttt{forpaper} option, the standard {\LaTeX} page -layout dimensions are used for the class. - -Using the \texttt{forpaper} option with the \texttt{latexlayout} -option will give you the standard \LaTeX{} \cs{textwidth}. - -The \texttt{forpaper} option also changes the \cs{newpage} command -to \cs{par}\cs{medskip} at the end of each solution---we don't -want to waste paper now, do we? - -Finally, there is a Boolean switch \verb+\ifeqforpaper+, which you -are free to use to refine the look your \texttt{forpaper} version. - -\subsection{The -\texorpdfstring{\protect\texttt{forcolorpaper}}{forcolorpaper} -Option}\label{forcolorpaper} - -Same as the \hyperref[sss:webforpaper]{\texttt{forpaper}} option, -but the color operators are not turned off. - - -\subsection{The -\texorpdfstring{\protect\texttt{latexlayout}}{latexlayout} -Option}\label{sss:weblatexlayout} - -For those who want to go ``totally native,'' use the -\texttt{latexlayout} and \texttt{forpaper} options together. When the -\texttt{latexlayout} option is used, the page layout redefinitions of -\pkg{web} are bypassed, leaving the original layout values of the -\texttt{article} class of \LaTeX. - -\redpoint If the \texttt{latexlayout} option is taken, all templates -are turned off, and the \texttt{for\-color\-option} is executed. To remove -color, you need to explicitly take the \texttt{forpaper} option. - -\subsection{The -\texorpdfstring{\protect\texttt{uselatexparts}}{uselatexparts} -and \texorpdfstring{\protect\texttt{uselatexchapters}}{uselatexchapters} -Options} - -As described in \hyperref[partsChaptersDots]{section~\ref*{partsChaptersDots}}, -page~\pageref*{partsChaptersDots}, the {\Web} package redefines the \cs{part} -and \cs{chapter} commands for the purpose of allowing easier access to redefining -how these section elements are to appear in the document and in the table of contents. -You can bypass these definitions by using \texttt{uselatexparts} and -the \texttt{uselatexchapters} options. This may be useful if you want to use AeB -to create a paper document and you want to use that standard definitions, or perhaps -want to use another package to define the look of the table of contents or -of the \cs{part} and \cs{chapter} commands. (The other sectioning comments can be overridden -as well, but any controls provided by the \texttt{extended} option will be lost.) - -\subsection{The \texorpdfstring{\protect\cs{useFullWidthForPaper}} - {\CMD{useFullWidthForPaper}} Command} - -We introduce a command of resetting the page layout paper \emph{when -the \emph{\texttt{forpaper}} option is in effect}. The primary use -is to create standard documents for academics such as homeworks, -syllabuses or any handout to the student. - -This command is used to set the page layout to its maximum width, given -a 1 inch margin. The height is maximized after taking into account -other page parameters that effect it. The parameters \cs{marginparwidth} -and \cs{marginparsep} are set to zero; for this layout, there are no -marginal comments. The command may be redefined as desired. - -\newtopic The command should be used in the preamble, otherwise, it -has no effect. - -\section{Formatting for screen and paper} - -As we learned in \hyperref[paperoptions] -{Section~\ref*{paperoptions}}, {\Web} can format a document in a for -screen or for paper. The {\Web} package provides several commands and -environments for changing content as needed. - -When the \texttt{forpaper} option is used, the switch -\cs{ifeqforpaper}\sCom{ifeqforpaper} is set to true. You can use -this switch, to get different content for the printed page or the -screen page, or you can use the convenience command \cs{prtscr}: - -\settowidth{\aebdimen}{\cs{prtscr\darg{\meta{print\_text}}\darg{\meta{screen\_text}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\prtscr{!meta(print_text)}{!meta(screen_text)} -\end{dCmd} -\CmdDescription This command expands to \meta{print\_text} if the \texttt{forpaper} option -is taken and to \meta{screen\_text} if not. - -The \cs{prtscr} command is useful for small changes in content, not -involving verbatim text or paragraph breaks. {\Web} defines two additional environments, -\texttt{forpaper} and \texttt{forscreen}. -\settowidth{\aebdimen}{\cs{begin\darg{forscreen}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\begin{forscreen} -.... -.... -.... -\end{forscreen} -\end{dCmd} - -\EnvLoc Anywhere. - -\newtopic Use the \texttt{forscreen} environment to insert commands or content meant only for -the screen. - -\settowidth{\aebdimen}{\cs{begin\darg{forpaper}}} -\begin{dCmd}{\aebdimen+2\fboxsep+2\fboxrule} -\begin{forpaper} -.... -.... -.... -\end{forpaper} -\end{dCmd} - -\EnvLoc Anywhere. - -\newtopic Use the \texttt{forpaper} environment to insert commands -or content meant only for the paper document. - -\newtopic Another command, \cs{NewPage}, is useful for formatting -the same document for print as well as screen - -\settowidth{\aebdimen}{\cs{NewPage}} -\begin{dCmd}{\aebdimen+2\fboxsep+2\fboxrule} -\NewPage -\end{dCmd} - -\CmdLoc Anywhere. - -\CmdDescription This command expands to \cs{newpage} if the -\texttt{forpaper} option is \emph{not taken}, and does nothing, -otherwise. Useful for inserting page breaks in the screen version -that are not needed in the paper version. - -\section{Template Building and Management}\label{ss:templagemagement} - -The {\Web} package has a template building capability. -You can conveniently create backgrounds for your page, insert an -arbitrary number of graphic overlays, create a left or right -(navigation) side panel, define your own navigation icons that -appear in the panel, and write material that will appear in a -panel. - -%\exPDF{bgtest} The demo file for the template feature is \texttt{bgtest.tex}. - -\exAeBBlogPDF{p=877} See the file \texttt{\href{\urlAcroTeXBlog/?p=877}{bgtest.pdf}}. -The source file \texttt{bgtest.tex}, attached to the PDF, -is demo file for the template feature. This article -is posted on the \href{\urlAcroTeXBlog}{\AcroBlog}. - - -\subsection{Template options} - -As with pdfscreen by Radhakrishnan C. V., we shall have the two -options, \texttt{leftpanel} and \texttt{rightpanel}. In addition to -these two, there is the \texttt{usetemplates} option. Use the -option \texttt{usetemplates} if you want to use colored backgrounds -or overlays without a left or right panel. - -The template, or overlay, capability of the \textsf{Web Package} -requires the use of two \LaTeX{} Packages: \texttt{everyshi.dtx}, -by Martin Schr\"oder, and \texttt{eso-pic.dtx}, by Rolf -Niepraschk. If any of the three template options -(\texttt{usetemplates}, \texttt{leftpanel} or -\texttt{rightpanel}) are used, the \textsf{eso-pic package} is -automatically included by \pkg{web}. The \textsf{eso-pic -package}, in turn, inputs the \textsf{everyshi} package. These two -packages need to be present on your system, unpacked, and in the -search path of \LaTeX. - -Templates, or overlays, are available for the all driver options. - -\subsection{Text Screen Template} - -You can specify a graphic that will be overlaid onto the text -screen, that portion of the screen to which {\LaTeX} content is -written. If a panel option has not been specified, this is the -whole screen; otherwise, it is that portion of the screen outside -the panel. - -If one of the options \texttt{usetemplates}, \texttt{leftpanel} or -\texttt{rightpanel} is specified, the commands -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\template{!meta(graphics_file_name)} -\textBgColor{!meta(named_color)} -\end{Verbatim} -insert a background graphic and a background color, -respectively, onto the text screen region. The \cs{template} command -will rescale the graphic to cover the entire text screen region. - -Additional graphics can be overlayed with the \cs{AddToTemplate} -command. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\AddToTemplate{!meta(template_name)} -\end{Verbatim} -The command takes one argument, the \meta{template\_name}. -Define an overlay, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\newcommand\myTemplate -{% - !anglemeta(commands to insert an overlay) -} -\end{Verbatim} -\noindent the \meta{template\_name} for this template is \texttt{myTemplate}. (Note that there -is no backslash.) To add this template to the list graphics to be overlayed onto the page, -we would type -\begin{Verbatim}[xleftmargin=\amtIndent] -\AddToTemplate{myTemplate} -\end{Verbatim} - -\redpoint \textcolor{blue}{Example:} Insert the ``\AcroT'' logo in lower-left corner, offset by~36pt -in the $x$ and $y$ directions. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\AEBLogo -{% - \put(36,36){\includegraphics{acrotexlogo}}% -} -\AddToTemplate{AEBLogo} -\end{Verbatim} -\noindent Because the \textsf{Web Package} uses \textsf{eso-pic}, the -commands will be executed within a \texttt{picture} environment. -Within the \texttt{picture} environment, the reference point of the text -screen is the lower-left corner. The above code puts the -``\AcroT'' logo at coordinates of \texttt{(36,36)} relative to the -lower-left corner. The units are measured in (\TeX) points. - -\redpoint \textcolor{blue}{Example:} Center the logo within the text screen region. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\AEBLogoCenter -{% - \ifnum\arabic{page}>1\relax - \parbox[b][\paperheight][c]{\textscreenwidth} - {\centering\includegraphics{acrotexlogo}}% - \fi -} -\AddToTemplate{AEBLogoCenter} -\end{Verbatim} - -\noindent -See the section titled \Nameref{sss:templatemanage} for details of -how to manage your templates. - -\subsection{Panel Screen Template}\label{panelscreentemplate} - -When the \texttt{leftpanel} or \texttt{rightpanel} -option is specified, a (navigation/logo) panel is created. The commands -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\paneltemplate{!meta(graphics_file_name)} -\panelBgColor{!meta(named_color)} -\end{Verbatim} -\noindent set the overlay graphic and the background color, respectively. -The graphic is rescaled to fit the panel region. - -Once the panel and its background have been defined, contents and -form elements can be placed on top of the panel. The command \cs{buildpanel} can -be used for this purpose. For example, from the sample file -\texttt{bgtest.tex}, -\begin{Verbatim}[xleftmargin=\amtIndent] -\buildpanel -{% - \href{http://www.math.uakron.edu/} - {\includegraphics[scale=.4]{uakron}} - \par\vspace{\stretch{1}} - \href{http://www.math.uakron.edu/~dpstory/acrotex.html} - {\rotatebox{-90}{\aebLogo}} - \par\vspace{\stretch{1}} - \panelNaviGroup % defined in web -} -\end{Verbatim} -\noindent The content of the panel is stacked from top to bottom.\footnote{The command \cs{aebLogo} -is defined in the file, \texttt{bgtest.tex}.} - -\redpoint Additional overlays can be added with -\cs{AddToPanelTemplate}. The command may not be as useful as the panel overlay can -always be rebuilt using \cs{buildpanel}.\endredpoint - -\newtopic The minimal width for the panel is set through the \aebCng[minPanelWidth] -\Com{minPanelWidth} command, the default size is 1in; that is, -\verb!\minPanelWidth{1in}! is executed by the package at start up. - -\settowidth{\aebdimen}{\cs{minPanelWidth\darg{\meta{length}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\minPanelWidth{!meta(length)} -\end{dCmd} - -\CmdLoc You can reset the minimal width by executing the -command in the preamble before the \cs{screenwidth} and \cs{margins} -commands. Or, place it in the \texttt{web.cfg}. - -\subsection{Template Management}\label{sss:templatemanage} - -In order to change backgrounds or templates, on any page, re-issue -any one of the commands \cs{template} or \cs{textBgColor} (for the -screen text region), or \cs{paneltemplate} or \cs{textBgColor} -(for the panel region). - -The panel overlay can be redesigned with \cs{buildpanel}, or some of the -command components that make up the panel overlay can be redefined. - -Templates that are inserted into the output stream using -either \cs{AddToTemplate} or \cs{AddToPanelTemplate} can also be -redefined on any page. - -Templates, created by either \cs{AddToTemplate} or -\cs{AddTo\-Panel\-Template}, can also be \emph{disabled} or \emph{enabled} -individually. For example, if the \texttt{AEBLogoCenter} template -has been overlayed using the command -\begin{Verbatim}[xleftmargin=\amtIndent] -\AddToTemplate{AEBLogoCenter} -\end{Verbatim} -\noindent the template can be disabled (turned off) by typing -\begin{Verbatim}[xleftmargin=\amtIndent] -\disableTemplate{AEBLogoCenter} -\end{Verbatim} -\noindent on any page. (\textcolor{red}{Note:} The effects of this command -may be not be seen until the following page.) Turn the template -on by typing -\begin{Verbatim}[xleftmargin=\amtIndent] -\enableTemplate{AEBLogoCenter} -\end{Verbatim} -\noindent on any page. - -For the panel region, there are commands for \emph{disabling} -(\cs{disablePanelTemplate}) and \emph{enabling} (\cs{enablePanelTemplate}) as -well. Each of these takes a \meta{template\_name} as an argument. - -There are a number of commands for \emph{clearing} backgrounds and -templates. -\begin{Verbatim}[xleftmargin=\amtIndent] -\ClearTextTemplate -\ClearPanelTemplate -\end{Verbatim} -\noindent These two clear background colors and background graphics. -\begin{Verbatim}[xleftmargin=\amtIndent] -\ClearBuildPanel -\end{Verbatim} -\noindent This command will clear the build panel as well as the graphics -and field elements that lay on top of the panel created by the -\cs{buildpanel} command. -\begin{Verbatim}[xleftmargin=\amtIndent] -\ClearAllTemplates -\end{Verbatim} -\noindent The command \cs{ClearAllTemplates} is equivalent to executing \cs{ClearTextTemplate} and -\cs{ClearPanelTemplate}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\ClearTextTemplateBuffer -\ClearPanelTemplateBuffer -\end{Verbatim} -\noindent The commands will clear all overlays, including overlays created by -\cs{Add\-To\-Template} and \cs{Add\-To\-Panel\-Template}. - -\redpoint See the documentation file, \texttt{web.dtx}, for exact definitions of the -commands in this section. - -% \subsubsection{Parameters used in Template Building}\label{sss:partemp} - -\section{The \texttt{extended} or \texttt{pro} Option}\label{webpro} - -Version 5.0 of {\Web} introduces the \texttt{pro}, which encompasses many new -features. The \opt{pro} option has a preferred alias of \opt{extended}. The -\opt{extended} option uses the very fine package \texttt{xkeyval} by -Hendri Adriaens, which enables developers to create commands with key-value -pairs. - -\newtopic The following new features are provided by the \texttt{extended} option: -\begin{questions} - \item \cs{DeclareDocInfo}: A data structure for setting various document properties. - \item A slightly re-designed \cs{maketitle}. Also, increased control over - the placement of the elements of the title page. - \item Extensive control over the display of \cs{section}, \cs{subsection}, - \cs{subsubsection} headings. Now color, fonts, size and so on can easily - be set. - \item A choice of using section numbers (the default) or no sections, or dings. - \item A single data structure to set virtually all colors. -\end{questions} -Details provided in subsequent sections. - -\subsection{\texorpdfstring{\protect\cs{DeclareDocInfo}}{\CMD{DeclareDocInfo}}}\label{docinfo} - -The preamble of your document should contain a number of keys that -identify the document, including the title and author of the -document. Some of this information is used to construct the -title page, some is placed in the {\PDF}, to be displayed in the -`Description' tab of the \textbf{Document Properties} dialog box, which -is accessed through the \texttt{Ctrl+D} accelerator key, or through -the menu system \texttt{File > Document Properties...} (for version 8, -this is \texttt{File > Properties...}). - -Information is passed through the \cs{DeclareDocInfo} command which -takes a number of key-value pairs. This is a simple \textsf{xkeyval} -interface to many of the text macros that are defined in \Web. - -\settowidth{\aebdimen}{\cs{DeclareDocInfo\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\DeclareDocInfo{!meta(KV-pairs)} -\end{dCmd} - -\CmdLoc Place in the preamble. - -\KVP The following is a description of the key value pairs. -\begin{enumerate} - \item \texttt{title}: The title of the document. - \item \texttt{author}: The author or authors of the document. - \item \texttt{subject}: The subject of the presentation. Optional, this appears only in the - `Description' tab of the \textbf{Document Properties}. - \item \texttt{keywords}: A list of keywords that describe your document. Optional, this appears only in the - `Description' tab of the \textbf{Document Properties}. Some search engines use this field. - \item \texttt{university}: The university or company the author represents. - \item \texttt{email}: The email address of the author. This appears on the title page, and becomes - an email link. - \item \texttt{version}: The version number of the document. - \item \texttt{versionLabel}: Text that precedes the version number. The default is \texttt{Version}. - \item \texttt{talkdate}: Date of the presentation. - - The fields \texttt{version} and \texttt{talkdate} occupy the - same position on the title page. If the \texttt{talkdate} is - specified, then the talk date will appear on the title page, if - \texttt{talkdate} is not specified, then \texttt{version} will - appear. Both \texttt{version} and \texttt{talkdate} can be - specified, but in this case, it is \texttt{talkdate} that will - appear. The \texttt{version} can be used for version - management. - - \item \texttt{talkdateLabel}: Text that precedes the date of the document. The default text for the talkdate label - is \texttt{Presented:}. - \item \texttt{talksite}: Site of the presentation. This field can be used for generally anything, for - example, you could specify your web site. - \item \texttt{copyrightyears}: Year(s) of the copyright of this publication, defaults to this year. - \item \texttt{prepared}: The date of preparation of the - document, defaults to the day the file was compiled (\LaTeX ed). - This was formerly the last revision date. - \item \texttt{preparedLabel}: The label that precedes the date \texttt{prepared}. The default string - value is \texttt{Prepared:}. The old default was \texttt{Last Revision Date:}, and will remain so - if the \texttt{extended} option is not taken. - \item \texttt{copyrightStatus}: If the \textsf{aebxmp} package is loaded for advanced metadata, - this key allows you to set the copyright status. Possible - values \texttt{True}, \texttt{False}, or blank (no value, or the key not listed at all) - corresponding to \textsf{Copyrighted}, \textsf{Public Domain} and - \textsf{Unknown}, respectively. The values of this key are case sensitive, so you must enter - \texttt{True} and \texttt{False}, with the first letter capitalized. If \textsf{aebxmp} is - not loaded, specifying this key does nothing. - \item \texttt{copyrightNotice}: If the \textsf{aebxmp} package is loaded for advanced metadata, - this key allows you to set copyright notice, short text describing the copyright, perhaps, -\begin{Verbatim}[xleftmargin=\amtIndent] -copyrightNotice={Copyright D. P. Story, 2009--2012} -\end{Verbatim} - If \textsf{aebxmp} is not loaded, specifying this key does nothing. - \item \texttt{copyrightInfoURL}: If the \textsf{aebxmp} package is loaded for advanced metadata, - this key allows you to set the copyright info url, a url to - a page on the web containing a more detailed description of the copyright. If \textsf{aebxmp} is - not loaded, specifying this key does nothing. - \item \texttt{authors}: A list of authors, \emph{each enclosed in braces}. - Names of individual authors can be accessed using the JavaScript \texttt{info.Authors} - property: the first author is \texttt{info.Authors[0]}; the second - author is \texttt{info.Authors[1]}, etc. -\begin{Verbatim}[xleftmargin=\amtIndent] -authors={D. P. Story}{J\u00FCrgen Gilg} -\end{Verbatim} -Notice the use of unicode to create a u-umlaut (\"{u}). - \item \texttt{Keywords}: Similar to keywords, but note the capital `K'. Then - \texttt{Keywords} is used to list the keywords, they are inserted into the - metadata as an array. The individual keywords can be accessed through a special - JS function, \texttt{aKeywords()}, defined by the \textsf{aebxmp} package. The syntax - is the same as \texttt{keywords}: -\begin{Verbatim}[xleftmargin=\amtIndent] -Keywords={AcroTeX.Net,XMP,E4X,Adobe Acrobat,JavaScript} -\end{Verbatim} -If you execute \texttt{aKeywords(0)}, the string \texttt{"AcroTeX.Net"} is returned. -Executing \texttt{aKeywords(4)} returns \texttt{"JavaScript"}, while executing -\texttt{aKeywords(5)} returns \texttt{undefined}. - \item \texttt{authortitle}: The \texttt{authortitle} is a field that appears - on the \textsf{Additional Metadata} dialog box. It can be used for whatever purpose you wish. -\begin{Verbatim}[xleftmargin=\amtIndent] -authortitle={Programming and Development, AcroTeX.Net} -\end{Verbatim} - \item \texttt{descriptionwriter}: This key fills a field on the -\begin{Verbatim}[xleftmargin=\amtIndent] -descriptionwriter={A good, well-liked guy} -\end{Verbatim} - \textsf{Additional Metadata} dialog box. For example - \item \texttt{customProperties}: Acrobat allows for the creation of - custom properties which are accessible through the \texttt{info} - object. The value of this key consists of one or more property - definition(s) enclosed in braces. Each property definition has two - required key-value pairs, \texttt{name} and \texttt{value}. The - \texttt{name} needs to be a simple name consisting of letters and - numbers (not starting with a number). The \texttt{value} string - can be any string. See the example following: -\begin{Verbatim}[xleftmargin=\amtIndent] -customProperties={name=Developer,value={D. P. Story, Esq.}} - {name=Motivator,value=J\u00FCrgen Gilg} -\end{Verbatim} -Executing \texttt{this.info.Developer} returns the value of -\texttt{"D. P. Story, Esq."}, while, \texttt{this.info.Motivator} returns -\texttt{"J\"{u}rgen Gilg"}. - -\end{enumerate} - -\Ex\label{exDeclareDocInfo} Example of usage of \Com{DeclareDocInfo} can -be found in -\hyperref[fig:declaredocinfo]{Figure~\ref*{fig:declaredocinfo}}, -page~\pageref*{fig:declaredocinfo}. -\paragraph*{Discussion of \texttt{keywords} versus \texttt{Keywords}.} \texttt{Keywords} will overwrite -\texttt{keywords}; the value of \texttt{keywords} is passed to -\pkg{hyperref} which enters them as a single string, while -\texttt{Keywords} enters the keywords. as an array. There is no need to -have both \texttt{keywords} and \texttt{Keywords}. -\paragraph*{Discussion of \texttt{author} versus \texttt{authors}.} Similarly, -\texttt{authors} overwrites \texttt{author}, individual authors names can -be accessed; however, unlike \texttt{keywords}/\texttt{Keywords}, it may -make sense to use both \texttt{author} and \texttt{authors}. The -\pkg{web} package takes a copy of the value of \texttt{author} and uses -it in the title page. It is possible to have two versions of the author's -names, one for presentation and one for the PDF info. -\begin{Verbatim}[xleftmargin=\amtIndent] -author={Dr. D. P. Story, Herr J. Gilg}, -authors={D. Story,J. Gilg}, -\end{Verbatim} -You can do the same thing, with the \texttt{author} key only by using -the \cs{texorpdfstring} command of \texttt{hyperref}: -\begin{Verbatim}[xleftmargin=\amtIndent] -author={\texorpdfstring{Dr. D. P. Story, Herr J. Gilg} - {D. Story,J. Gilg}}, -\end{Verbatim} -The difference is that with \texttt{authors}, individual authors are accessible -through the JavaScript command \texttt{this.info.Authors}. -\begin{figure}[ht] -\footnotesize\centering -\begin{dCmd*}{.9\linewidth} -\DeclareDocInfo -{ - title=My First Presentation, - author=D. P. Speaker, - university=My University, - email=dpspeaker@myu.edu, - talkdate={Dec.\ 17, \the\year}, - talksite=The Talking University, - subject=On the Theory of AcroTeX, - keywords={AcroTeX.Net,XMP,E4X,Adobe Acrobat,JavaScript}, - copyrightStatus=False, - copyrightNotice={Copyright D. P. Story, 2009--\the\year}, - copyrightInfoURL=http://www.acrotex.net, - authors={D. P. Story}{J\u00FCrgen Gilg}, - Keywords={AcroTeX.Net,XMP,E4X,Adobe Acrobat,JavaScript}, - authortitle={Programming and Development, AcroTeX.Net}, - descriptionwriter={A good, well-liked guy}, - customProperties={name=Developer,value={D. P. Story, Esq.}} - {name=Motivator,value=J\u00FCrgen Gilg} -} -\end{dCmd*} -\caption{The \protect\cs{DeclareDocInfo} Command}\label{fig:declaredocinfo} -\end{figure} - -\handpoint \textbf{Two tricks of importance:} When the value contains a -comma, then the whole value should be delimited by matching braces, -as in the \texttt{talkdate} key-value in the -\textbf{Example~\ref*{exDeclareDocInfo}} above. The \pkg{hyperref} -command \Com{texorpdfstring} is handy for giving alternate wording, when -some of the {\LaTeX} commands do not transfer to the {\PDF}'s \textbf{Document Properties}. -For example, the title might have been ``A Discussion of $e^x$''; this title should appear -in \cs{DeclareDocInfo} as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -title=A Discussion of \texorpdfstring{$e^x$}{exp(x)}, -\end{Verbatim} -\noindent Now the phrase, ``A Discussion of exp(x)'' will appear in -the `Title' field of the \textbf{Document Properties}. - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates this command. - -\exAeBBlogPDF{p=1112} Download \texttt{\href{\urlAcroTeXBlog/?p=1112}{web\_pro.pdf}} -from the {\AcroBlog} website. The source file \texttt{web\_pro.tex} is -attached to the PDF, illustrates this command. - - -\subsection{\texorpdfstring{\protect\cs{DeclarePageLayout}}{\CMD{DeclarePageLayout}}}\label{pagelayout} - -The \Com{DeclarePageLayout} command gathers together many page -layout parameters, both for {\LaTeX} and for {\Web}, into one -convenient package of key-value pairs. - -\CmdLoc Place in the preamble. - -\KVP The following is a description of the key value pairs. -\begin{enumerate} -\item \texttt{design}: This key sets the \texttt{screensize} - according to preset dimensions, permissible values are - \texttt{designi}, \texttt{designii}, \texttt{designiii}, - \texttt{designiv}, \texttt{designv}, \texttt{designvi}, - \texttt{designvii}, \texttt{designviii}, and \texttt{designix}. These correspond to the - package options of the same names. This key is ignored if one of the - design options was taken as a {\Web} option. This key sets both the - \cs{screensize} and \cs{margins} commands. -\item \texttt{screensizeOf}: This key sets the \texttt{screensize} - only (does not change the margins), possible values are - \texttt{designi}, \texttt{designii}, \texttt{designiii}, - \texttt{designiv}, \texttt{designv}, \texttt{designvi}, - \texttt{designvii}, \texttt{designviii}, and \texttt{designix}. Use this key, in - combination with the \texttt{margins} key, to use a standard design - \texttt{screensize}, but with different margins. -\item \texttt{screensize}: Sets the \texttt{screensize} by executing - the \cs{screensize} command. The key takes two dimensions as - parameters: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -screensize={!meta(height)}{!meta(width)} -\end{Verbatim} -The \texttt{screensize} key sets the screen to a height of -\meta{height} and a width of \meta{width}. This key is -ignored if a design option has been taken in the {\Web} option list, -or if the \cs{screensize} command has already been executed. -\item \texttt{margins}: Sets the dimensions of the margins of the - screen page. The key takes four dimensions as parameters: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -margins={!meta(left)}{!meta(right)}{!meta(top)}{!meta(bottom)} -\end{Verbatim} -Here \meta{left}, \meta{right}, \meta{top}, and -\meta{bottom} are the dimensions of the margins of the screen -page. These are the same arguments as the \cs{margins} command. This -key is ignored if a design option has been taken in the {\Web} -option list, or if the \cs{margins} command has already been -executed. -\item \texttt{headheight}: Sets the standard page layout parameter - \cs{headheight}. The default is \texttt{8pt}. -\item \texttt{topmargin}: Sets the position of the running header. - The default is 8pt for screen sizes, and the {\LaTeX} default is the - \texttt{forpaper} option is taken. You can say -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -topmargin=\prtscr{!meta(paper_dim)}{!meta(screen_dim)} -\end{Verbatim} -To get a \texttt{topmargin} value that works for paper and screen. -(Perhaps you have a border running around the page, and you need to -reposition the header below the border.) This repositioning differs -depending on whether you compile with the \texttt{forpaper} option, -or not. - -\item \texttt{additionalheadsep}: Additional separation between the - running header and the beginning of the text. This parameter - modifies \cs{headsep}, which is computed automatically by the - \pkg{web} package. Use \texttt{additionalheadsep} to add in a - little bit more, if the calculation does not yield good results. The default - value is 0pt. - -\item \texttt{marginparsep}: The horizontal distance between body and - marginal notes. The default is 11pt. When the page size is designed for - viewing on a computer, the margins are often times quite small, and - marginal notes are typically not used. You can use a conditional to give - two values one for screen and one for paper. See the \texttt{topmargin} - key. - -\item \texttt{marginparwidth}: The width of marginal notes. The default is .25in. - When the page size is designed for viewing on a computer, - the margins are often times quite small, and marginal notes are typically not used. - You can use a conditional to give two values one for screen and one for paper. - See the \texttt{topmargin} key. - -\item \texttt{marginparpush}: The minimal vertical space between - successive marginal notes. The default is 5pt. - -\item \texttt{footskip}: Vertical distance separating the baseline - of the last line and the baseline of the footer. The default is - 30pt. - -\item \texttt{webfootskip}: Same as \texttt{footskip}, but the - \texttt{webfootskip} is measured up from the bottom edge of the - document. The default is 4pt. - -\item \texttt{panelwidth}: Sets the panel width. If not specified, - the minimal panel width of 1in is used. Panels appear when either - \texttt{leftpanel} or \texttt{rightpanel} is taken in the option - list of \Web. This key executes the \cs{panelwidth} command. - -\item \texttt{panelsep}: Sets the separation between the text screen - and the panel. The default is 10pt. -\end{enumerate} - -\subsection{The Title Page: - \texorpdfstring{\protect\cs{maketitle}}{\CMD{maketitle}}}\label{maketitlepro} - -In this section, we described the enhanced features for controlling the title page. - -\subsubsection{The Title Page Structure} - -The title page is divided into three parts: top, middle and bottom. -\begin{itemize} -\item \textbf{Title Top:} The content of the top is determined by the \Com{top\-Titl\-ePage} -command. (This command can be redefined, but it is not recommended.) The -\cs{topTitlePage} command expands to three elements: the university (affiliation), the title, -and the author(s), in that order vertically. These are the values of the keys \texttt{university}, -\texttt{title} and \texttt{author} that appear in the \cs{Declare\-Doc\-Info} command. - -\item \textbf{Title Middle:} The \Com{optionalPageMatter} command -is used to enter content into this part of the title page. This middle -part is optional; if \cs{optionalPageMatter} does not -appear in the preamble, then this part of the title page is empty. - -\item \textbf{Title Bottom:} Bottom of the title page is controlled by the contents -of the command \cs{titlepageTrailer} and consists of some of the -document information entered in the \cs{Declare\-DocInfo} command. -By default, \cs{titlepageTrailer} lists the values of the -\cs{DeclareDocInfo} keys \texttt{email}, \texttt{talkdate}, -\texttt{talksite}, and \texttt{copy\-right\-years}, as described above. The -font size of this bottom part is set by the command \cs{trailerFontSize}, the -default is \cs{footnotesize}. This command can be re-defined in the -usual way, for example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\trailerFontSize}{\scriptsize} -\end{Verbatim} -\end{itemize} - -\newtopic \hyperref[fig:titlepage]{Figure~\ref*{fig:titlepage}}, page~\pageref*{fig:titlepage}, shows the basic -composition of the title page of an {\AEB} document. The title page elements are described as they relate to the -key-values of \nameref{docinfo}, described on page~\pageref{docinfo}. -\begin{itemize} - \item At the very top is the value of the \Indextt{university} key. The color of this - element can be set using the \Indextt{universityColor} key of \hyperref[designColor]{\Com{selectColors}}, - page~\pageref{designColor}. - \item Next comes the value of \Indextt{title}, its color is controlled using the \Indextt{titleColor} - key of \hyperref[designColor]{\cs{selectColors}}. - - \item The author follows, which is the value of \Indextt{author}. The color is set by - \Indextt{authorColor} of \hyperref[designColor]{\cs{selectColors}}. - \item The {\AEB} logo is inserted using \Com{optionalPageMatter}. Normally, - this macro does nothing unless it is defined. In this example, we have -\begin{Verbatim}[fontsize=\small] -\optionalPageMatter -{% - \begin{center} - \begin{minipage}{.67\linewidth} - \centering\includegraphics[scale=.5]{AeB_Logo} - \end{minipage} - \end{center} -} -\end{Verbatim} - \item Finally comes the \Com{titlepageTrailer}, a macro that can - be redefined (see the package file \texttt{web.dtx} for its definition. This - macro places the other elements at the bottom of the page: - \begin{itemize} - \item The copyright year and email address, as given by - \Com{email}. The color of the email address is set by - \Indextt{urlColor} through the command - \hyperref[designColor]{\cs{selectColors}}. This color - actually sets the color of all external \textsf{URL}s. - \item To the right, on the first line of the title page trailer is the value of \Com{talksite}. - The color is the default color for text. - \item In the lower left is the date of the last revision of the document. The color is the default color for - text. - \item In the lower right is the date the talk was given. The color is the default color for text. - \end{itemize} -\end{itemize} -Not shown in Figure~\ref*{fig:titlepage} is the title page directory, which is turned off by default. - -\begin{figure}[ht] -\setlength{\fboxsep}{0pt} -\centering\fbox{\includegraphics[width=.5\linewidth]{figures/titlepage1}} -\caption{The Title Page}\label{fig:titlepage} -\end{figure} - -\newtopic The title page layout is, of course, defined by the standard -\Com{maketitle} command, which has been redefined by the \texttt{extended} option. -In {\Web}, the \cs{maketitle} has different behaviors, one for screen and one for paper. - -\subsubsection{Greater Control of the Top Title Page}\label{top} - -The three elements of the top title page are the values of the keys -\texttt{university}, \texttt{title} and \texttt{author}. Values of these keys -are declared in the command \cs{DeclareDocInfo}. The \texttt{extended} option -defines three commands \cs{universityLayout}, \cs{titleLayout}, and -\cs{authorLayout}, to format these three keys in a variety of ways. - -%\handpoint A working example of the commands that follow can be found in \texttt{aebpro\_ex2.tex}. - -\exAeBBlogPDF{p=1242} See the file -\texttt{\href{\urlAcroTeXBlog/?p=1242}{aebpro\_ex2.pdf}}. The source file -\texttt{aebpro\_ex2.tex}, attached to the PDF, is a working example of the -commands that follow. - -\settowidth{\aebdimen}{\cs{universityLayout\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\universityLayout{!meta(KV-pairs)} -\titleLayout{!meta(KV-pairs)} -\authorLayout{!meta(KV-pairs)} -\end{dCmd} - -\CmdLoc Place these optional commands in the preamble. - -\KVP Each of these commands have a number of key-value pairs. The -first thirteen are the same that appear in the description of -\cs{sectionLayout}, \mlNameref{secHead}. The rest are unique to -these three commands. In the descriptions below, the word `element' -refers to the values of the keys \texttt{university}, -\texttt{title} and \texttt{author}. - -\begin{enumerate} -\item \texttt{fontfamily}: Font family to use with this element, - permitted values are \texttt{rmfamily}, \texttt{sffamily}, \texttt{ttfamily}. - -\item \texttt{fontseries}: Font series to use, possible values are \texttt{bfseries} and \texttt{mdseries}. - -\item \texttt{fontshape}: Font shape to use: \texttt{upshape}, \texttt{itshape}, \texttt{scshape}, \texttt{slshape}. - -\item \texttt{fontsize}: Font size to use with this element, recognized values are \texttt{tiny}, - \texttt{script\-size}, -\texttt{footnotesize}, \texttt{small}, \texttt{normalsize}, - \texttt{large}, \texttt{Large}, \texttt{LARGE}, \texttt{huge}, \texttt{Huge}. - -\item \texttt{halign}: Alignment of this element within its enclosing \cs{parbox}, permissible - values are \texttt{l} (left aligned), \texttt{c} (centered), \texttt{r} (right aligned). See \hyperref[tutex17] - {Example~\ref*{tutex17}} for a visualization of the effects of the \texttt{halign} key. - -\item \texttt{color}: The color of the section title, this can be any named color. The default is blue -for \texttt{title}, and black otherwise. - -\item \texttt{special}: Through this key, you can a specify predefined layout for the title elements. Permissible - values are \texttt{shadow}, \texttt{framebox}, \texttt{colorbox}, \texttt{fcolorbox}, - \texttt{frame\-box\-fit}, \texttt{color\-box\-fit}, \texttt{fcolor\-box\-fit}, \texttt{custom}, \texttt{default}. - -\item[] Custom titles can be created by specifying a value of - \texttt{custom}. In this case, {\Web} uses - \Com{customUniversity}, \Com{customTitle} and \Com{customAuthor}. - These are macros that take one argument, the code for designing the - title. The title is referred to as \texttt{\#1}. Depending on how - these custom titles are defined, the other keys may not be - obeyed. - -\item \texttt{framecolor}: The color of the frame surrounding the subject when the \texttt{special} - key has a value of \texttt{framebox}, \texttt{fcolorbox} \texttt{frameboxfit} or \texttt{fcolorboxfit}. - -\item \texttt{bgcolor}: The background (fill color) of the box enclosing this element, when - \texttt{special} has a value of \texttt{colorbox}, \texttt{fcolorbox}, \texttt{colorboxfit} - or \texttt{fcolorboxfit}. - -\item \texttt{shadowcolor}: The color of the shadow, when \texttt{special} has a value of \texttt{shadow}. - -\item \texttt{beforeskip}: The amount of skip before the title element. - -\item \texttt{afterskip}: The amount of skip after the title element. - -\item \texttt{usefont}: Through this key it is possible to specify -an arbitrary font and font size. The key takes five parameters, for -example, -\begin{Verbatim}[xleftmargin=\amtIndent] -usefont={OT1}{cmdh}{m}{n}{{16}{16pt}} -\end{Verbatim} -The first four are the arguments of the {\LaTeX}'s \cs{usefont}, encoding, family, series and shape. The last argument -are the arguments of the {\LaTeX}'s \cs{fontsize}, size and baselineskip. - -\item[] If the fifth parameter is empty, no font size is specified, the current default sizes are used. - - -%\item \texttt{reset}: This key attempts to reset changes to their defaults. Permissible values are -% \texttt{font} (to reset the font changes only), or \texttt{all} (to reset all the keys). - -\item \texttt{hproportion}: Each of the three elements (university, title, author) lie in their own -\cs{parbox}, the width of this box is determined by the value of this key, as a proportion of the -total \cs{linewidth}. The default for all three is .7. This value can be set to get more or less -``natural'' line breaks, without having to insert a new line with a `\verb!\\!'. See \hyperref[tutex17] -{Example~\ref*{tutex17}} for a visualization of the effects of the \texttt{hproportion} key. - -\item \texttt{xhalign}: The \cs{parbox} of each of the three elements are also placed in a \cs{makebox}, additional -control over positioning can be had by setting this key, which sets the positioning parameter of \cs{makebox}. -The default value for \texttt{xhalign} is \texttt{c}, the element is centered. See \hyperref[tutex17] -{Example~\ref*{tutex17}} for a visualization of the effects of the \texttt{xhalign} key. -\end{enumerate} - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates this command. - -%\exPDF{webpro_titlepg} The file \texttt{webpro\_titlepg} shows the structure of the title page. - -\newtopic Just above the \textbf{Title Top} is a skip that can be \aebCng[aboveTopTitleSkip] -used to push the top down. The default value of this skip is -\texttt{0pt}, but this can be changed through -\cs{aboveTopTitleSkip}. - -\settowidth{\aebdimen}{\cs{aboveTopTitleSkip\darg{\meta{skip}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\aboveTopTitleSkip{!meta(skip)} -\end{dCmd} - -\newtopic There is one other title page parameter that effects the layout. - -\settowidth{\aebdimen}{\cs{topTitlePageProportion\darg{0..1}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\topTitlePageProportion{0..1} -\end{dCmd} - -\CmdLoc Place this (optional) command in the preamble. - -\PD The top part of the title page is enclosed in a big \cs{parbox} -with depth set to a proportion of \cs{textheight}. -\cs{topTitlePageProportion} is used to set this proportion. The -argument of this command should be a number between 0 and 1, -obviously a value of 0 makes no sense. The default value is set by -the {\Web} package to .33, i.e., the default is -\verb!\topTitlePageProportion{.33}!. - -\begin{figure}[ht] -\setlength{\fboxsep}{0pt} -\centering\fbox{\includegraphics[width=.5\linewidth]{figures/titlepage}} -\caption{The Title Page Layout Structure}\label{fig:titlepage1} -\end{figure} - -\Ex\label{tutex17} \hyperref[fig:titlepage1]{Figure~\ref*{fig:titlepage1}} -gives a representation of the page layout of the title page. The -big \cs{parbox} of depth equal to the proportion of -\cs{textheight} set by \cs{topTitlePage\-Proportion} is -shown as a blue box. Each of the three top title elements are -enclosed in a \cs{makebox}, shown in yellow. Inside this -\cs{makebox}, the top title elements are placed in a \cs{parbox}, -shown in gray. The image shown in -\hyperref[fig:titlepage1]{Figure~\ref*{fig:titlepage1}} came about -as a result of the following commands in the preamble: -\begin{pCmd*}{fontsize=\small}{254pt} -\topTitlePageProportion{.5} -\universityLayout{halign=l,color=red} -\titleLayout{halign=r,xhalign=r,hproportion=.4} -\authorLayout{color=webbrown} -\end{pCmd*} - -\medskip -In \hyperref[fig:titlepage1] -{Figure~\ref*{fig:titlepage1}}, notice that the -\texttt{university} is left aligned within its \cs{parbox}. For -\texttt{title}, the proportion is changed from the default of .7 -to .4, this is manifested by the shorter gray box (which -represents the underlying \cs{parbox}); \texttt{halign} and -\texttt{xhalign} are both set to \texttt{r}, so the title appears -right aligned within its \cs{parbox}, and the \cs{parbox} is right -aligned within its \cs{makebox}, understand? Finally, for the -\texttt{author} key, we change only the color. Swave! - -\subsubsection{Greater Control over Title Page Trailer}\label{trailer} \aebCng[trailer] - -The pro option defines the command \Com{DesignTitlePageTrailer} that takes a -number of key-value pairs to describe the title page trailer. The use of this -command is not needed unless you want something in the trailer other than the default -information.\settowidth{\aebdimen}{\cs{DesignTitlePageTrailer\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\DesignTitlePageTrailer{KV-pairs} -\end{dCmd} - -\KVP The key-value pairs are described below: -\begin{enumerate} - \item \texttt{ul}: The text in the upper left corner of the trailer, the default is -\begin{Verbatim}[xleftmargin=\amtIndent] -\web@copyright\ \web@copyright@symbol\ - \webcopyrightyears\ \thewebemail -\end{Verbatim} - \item \texttt{ur}: The text in the upper right corner of the trailer, - the default is \cs{aeb@talksite}, as defined by the \cs{talksite} - command or the \texttt{talksite} key of the \cs{DeclareDoc\-Info} - command. - \item \texttt{ll}: The text in the lower left corner of the trailer, - the default is \cs{aeb@Prepared}, as defined by the \cs{prepared} - command or the \texttt{prepared} key of the \cs{De\-clare\-Doc\-Info} - command. - \item \texttt{lr}: The text in the lower right corner of the trailer, - the default is \cs{webversion}, as defined by the \cs{version} - command, by the \texttt{version} key, or by the \texttt{talkdate} key. - If \texttt{version} and \texttt{talkdate} both have values, - \texttt{talkdate} is used. - \item \texttt{textColor}: The default color of the text. The default is black. - \item \texttt{bgColor}: The background of the trailer. This is a named color. The default is there is no color. - \item \texttt{borderColor}: The border color of the trailer. This is a named color. If specified, then - \texttt{bgColor} must have a named color too, otherwise, this - key does nothing. The default is that there is no border color. - \item \texttt{fboxsep}: The previous two keys use \cs{colorbox} and \cs{fcolorbox}. You can adjust - the parameters \cs{fboxsep} through this key. The default is 3pt. - \item \texttt{fboxrule}: The width of the rule created when there are values for - \texttt{bgColor} and for \texttt{borderColor}. This key sets the value of \cs{fboxrule}. The default - is .4pt. - \item \texttt{graphic}: The value of this key is the base name of a graphic to be used as the background - of the trailer. The graphic is rescaled to the width and the height of the trailer. It also reduces - \cs{linewidth} so that the text is \cs{fboxsep} from the borders. The default is no graphic. - If the key graphic is specified, then \texttt{bgColor} and \texttt{borderColor} are ignored. - - \item[] If the \textsf{graphicxbox} package is loaded, AeB uses this package to place the graphic. - In this case, the \texttt{borderColor} key is obeyed; whereas, it is not obeyed without the - \textsf{graphicxbox} package. - - \item \texttt{namedgraphic}: This key requires the use of \textsf{graphicxsp}, and Acrobat Distiller. - Use \textsf{graphicxsp} to embed a graphic and give it a symbolic name \anglemeta{mygraphic}. - If you then say \texttt{namedgraphic=\anglemeta{mygraphic}}, the graphic is used without re-embedding the graphic. - The advantage of this method is that the graphic can be used and re-used in the document, without - significantly increasing file size. - - \item[] If the \textsf{graphicxbox} package is loaded, AeB uses this package to place the named graphic. - In this case, the \texttt{borderColor} key is obeyed; whereas, it is not obeyed without the - \textsf{graphicxbox} package. - - \item \texttt{raise}: A key that takes a dimension as its value. The trailer will be raised or - lowered by the amount specified. For example, \texttt{raise=-10pt} lowers the trailer 10pt from its natural - position. - - \item \texttt{fontSize}: Set the font size of the text, the default is \cs{footnotesize}. This key - simply redefines \cs{trailerFontSize}. - - \item \texttt{formatting}: Any additional formatting you wish - that does not cause trouble; for example, - \verb!formatting=\bfseries!. -\end{enumerate} - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates this command. - -\exAeBBlogPDF{p=1112} The demo file \texttt{\href{\urlAcroTeXBlog/?p=1112}{web\_pro.pdf}} -illustrates this command. - - -\subsection{The Table of Contents} - -The pro option also defines \Com{tocLayout} for controlling the -title of the table of contents. - -\settowidth{\aebdimen}{\cs{tocLayout\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\tocLayout{!meta(KV-pairs)} -\end{dCmd} - -\newtopic The key-value pairs are the same as layout commands for the section titles, see -\mlNameref{secHead}. - -\CmdLoc Place this command in the preamble. - -\settowidth{\aebdimen}{\cs{selectTocDings\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\selectTocDings{!meta(KV-pairs)} -\end{dCmd} - -\newtopic When the \cs{noSectionNumbers} command is used (\Nameref{secHead}), the entries in the table of -contents have no section number. You can define a ding for each of the three -levels of the table of contents with this command. The key-value entries in the -\cs{selectTocDings} command are ignored if \cs{noSectionNumbers} is not in effect. - -\CmdLoc Place this (optional) command in the preamble. - -\KVP The following are the recognized key-value pairs: - -\begin{enumerate} -\item \texttt{dDing}: The ding for the first (section) level entry.\\Example, -\verb!dDing=\ding{072}!. -\item \texttt{ddDing}: The ding for the second (subsection) level entry. -\item \texttt{dddDing}: The ding for the third (subsubsection) level entry. -\item \texttt{dDingColor}: The (named) color for the ding of the first level entry. The default is red. -\item \texttt{ddDingColor}: The (named) color for the ding of the first level entry. The default is blue. -\item \texttt{dddDingColor}: The (named) color for the ding of the first level entry. The default is webgreen. - -\end{enumerate} - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates this command. - -\exAeBBlogPDF{p=1112} The demo file \texttt{\href{\urlAcroTeXBlog/?p=1112}{web\_pro.pdf}} -illustrates this command. - - -\subsection{Selecting Colors}\label{designColor} - -The \cs{selectColors} command can be used to set the color of most all elements of -the document that have a color attribute. - -\settowidth{\aebdimen}{\cs{selectColors\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\selectColors{!meta(KV-pairs)} -\end{dCmd} - -\CmdLoc There are no restrictions on this command. In the preamble, -it will set the defaults for the entire document. - -\KVP Each of the following keys take a named color. Many of these keys have a -command interface as well, these are also noted. -\begin{enumerate} -\item \texttt{universityColor}: The color of the value of the \cs{university} - declaration (refer to page~\pageref{docinfo}). The value of - \cs{university} appears on the title page. The default is blue. -\item \texttt{titleColor}: The color of the value of the \cs{title} declaration - (see page~\pageref{docinfo}). - The value of \cs{title} appears on the title page. The default is black. -\item \texttt{authorColor}: The color of the value of the \cs{author} declaration - (see page~\pageref{docinfo}). - The value of \cs{author} appears on the title page. The default is black. -\item \texttt{textBgColor}: The background color of the text screen. The default is white. -\item \texttt{panelBgColor}: The background color of the navigation panel. The default is white. -\item \texttt{urlColor}: The color of an \textsf{URL} link. The default is webbrown. -\item \texttt{linkColor}: The color of a link. The default is webgreen. -\item \texttt{fileColor}: The color of a link to a local file. The default is webbrown. -\end{enumerate} -There are several other colors as well, these can be set through their interface, see -\hyperref[secHead]{Section~\ref*{secHead}}, page~\pageref*{secHead}, for a discussion of -the commands \cs{sectionLayout}, \cs{sub\-sec\-iion\-Layout} and \cs{sub\-sub\-sec\-tion\-Layout}. - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates this command. - -\exAeBBlogPDF{p=1112} The demo file \texttt{\href{\urlAcroTeXBlog/?p=1112}{web\_pro.pdf}} -illustrates this command. - - -\subsection{Section Headings}\label{secHead} - -The {\Web} package uses the section heading commands \cs{section}, \cs{subsection}, and \cs{sub\-sub\-section}, but the -\texttt{extended} option modifies their definitions so that the document author can easily design how the section titles -look. - -\settowidth{\aebdimen}{\cs{noSectionNumbers}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\noSectionNumbers -\end{dCmd} -\newtopic The command \Com{noSectionNumbers} causes {\Web} to remove the usual -numbering system for a {\LaTeX} document. This may be useful when -preparing a document for presentation, and a numbering system is not -needed. The default is to use section numbers. - -\CmdLoc The use of this command is restricted to the preamble. The -decision must be made for the whole document at the beginning of the -document. - -\settowidth{\aebdimen}{\cs{subsubsectionLayout\darg{\meta{KV-pairs}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\sectionLayout{!meta(KV-pairs)} -\subsectionLayout{!meta(KV-pairs)} -\subsubsectionLayout{!meta(KV-pairs)} -\end{dCmd} - -\CmdLoc No restriction on the use of this command. In the preamble, you set the layout -for sections for the whole document. In the body of the document, changes occur immediately -starting with the next relevant section. - -\KVP Each of these takes the same key-value pairs. -\begin{enumerate} -\item \texttt{fontfamily}: Font family to use for section titles, - permitted values are \texttt{rmfamily}, \texttt{sffamily}, \texttt{ttfamily}. -\item \texttt{fontseries}: Font series to use for the section title, values are \texttt{bfseries} and - \texttt{mdseries}. -\item \texttt{fontshape}: Font shapes to use for the section title, values are \texttt{upshape}, \texttt{itshape}, - \texttt{scshape}, \texttt{slshape}. -\item \texttt{fontsize}: Font size of the section title, permissible values are \texttt{tiny}, \texttt{scriptsize}, -\texttt{foot\-note\-size}, \texttt{small}, \texttt{normalsize}. - \texttt{large}, \texttt{Large}, \texttt{LARGE}, \texttt{huge}, \texttt{Huge}. -\item \texttt{halign}: Alignment of the section title, permissible - values are \texttt{l} (left aligned), \texttt{c} (centered), \texttt{r} (right aligned). -\item \texttt{ding}: You can specify a ding to display where the section number is usually placed; e.g., - \verb+ding=\ding{066}+. - -\item \texttt{color}: The color of the section title, this can be any named color. The default is blue. - -\item \texttt{special}: Through this key, you can a specify predefined layout for the section titles. Permissible - values are \texttt{shadow}, \texttt{framebox}, \texttt{colorbox}, \texttt{fcolorbox}, - \texttt{frame\-box\-fit}, \texttt{color\-box\-fit}, \texttt{fcolorbox\-fit}, \texttt{custom}, \texttt{default}. - -\item[] Custom section heads can be used by specifying a value of \texttt{custom}. In this - case, {\Web} uses the values of \Com{customSecHead}, \Com{custom\-Sub\-sec\-Head} and - \Com{custom\-Sub\-sub\-sec\-Head}. Each of these macros take one argument, the code for designing - the title. The title is referred to as \texttt{\#1}. Depending on how these custom section titles - are defined, the other keys may not be obeyed. - -% See an \hyperref[customHeadEx] -% {Example~\ref*{customHeadEx}} below; there are other examples in the demo files. - -\item \texttt{framecolor}: The color of the frame surrounding the subject when the \texttt{special} - key has a value of \texttt{framebox}, \texttt{fcolorbox} \texttt{frameboxfit} or \texttt{fcolorboxfit}. - -\item \texttt{bgcolor}: The background (fill color) of the box enclosing the section title, when - \texttt{special} has a value of \texttt{colorbox}, \texttt{fcolorbox}, \texttt{colorboxfit} - or \texttt{fcolorboxfit}. - -\item \texttt{shadowcolor}: The color of the shadow, when \texttt{special} has a value of \texttt{shadow}. - -\item \texttt{beforeskip}: The amount of skip before the section title. - -\item \texttt{afterskip}: The amount of skip after the section title. - -\item \texttt{usefont}: Through this key it is possible to specify -an arbitrary font and font size. The key takes five parameters, for -example, -\begin{Verbatim}[xleftmargin=\amtIndent] -usefont={OT1}{cmdh}{m}{n}{{16}{16pt}} -\end{Verbatim} -The first -four are the arguments of the {\LaTeX}'s \cs{usefont}, encoding, -family, series and shape. The last argument are the arguments of the -{\LaTeX}'s \cs{fontsize}, size and baselineskip. - -\item[] If the fifth parameter is empty, no font size is specified, the current default sizes are used. - -\item \texttt{numdingcolor}: The color of the section number or ding, if defined. The default is blue. - -\item \texttt{reset}: This key attempts to reset changes to their defaults. Permissible values are - \texttt{font} (to reset the font changes only), or \texttt{all} (to reset all the keys). -\end{enumerate} - -\Ex\label{tutex7} The following example sets the section -title with shadows: text is red and shadow is blue. We center the -title horizontally, and specify an after skip of \texttt{12pt}. -\begin{dCmd*}{.5\linewidth} -\sectionLayout{% - afterskip=12pt, - halign=c, - color=red, - shadowcolor=blue, - special=shadow -} -\end{dCmd*} -\noindent Similarly for \Com{subsectionLayout} and \Com{subsubsectionLayout}. - -% \expoint{ex7} Use \texttt{apb\_ex7.tex} to explore the section layout commands. - -\settowidth{\aebdimen}{\cs{subsubsectionLayout\darg{\meta{length}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\shadowhoffset{!meta(length)} -\shadowvoffset{!meta(length)} -\end{dCmd} -\newtopic When \texttt{$\text{special} = \text{shadow}$}, shadowing is -obtained by typesetting the text twice with different colors. The -amount of horizontal and vertical offset are controlled by these two -commands. The defaults are \verb!\shadowhoffset{.2ex}! and -\verb!\shadowvoffset{-.2ex}!. - -\newtopic The interface for writing custom section layouts are the following three -commands. - -\settowidth{\aebdimen}{\cs{customSubsubsecHead\darg{\anglemeta{tex\_code}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\customSecHead{!anglemeta(tex_code)} -\customSubsecHead{!anglemeta(tex_code)} -\customSubsubsecHead{!anglemeta(tex_code)} -\end{dCmd} -\CmdLoc Use in the preamble or before a section head. - -\PD These three commands are used to write custom section, -subsection and subsubsection layouts. Here, the parameter \anglemeta{tex\_code} is -{\TeX} code for laying out the section titles, and should use -\texttt{\#1} to represent the section title. - -\Ex\label{customHeadEx} The following definitions can appear -anywhere, they are global unless appearing in a group. -This puts a colored box around the section title, which -is assumed to appear in one line. We use the internal color names -for the \texttt{color} (\cs{aeb@sectioncolor}) and \texttt{bgcolor} -(\cs{aeb@sectionbgcolor}) keys, in this way, the title will obey the -values of these keys. This particular custom head obeys the -\texttt{halign} key as well. -\begin{dCmd*}{\linewidth} -\makeatletter -\customSecHead{\vbox{\colorbox{\aeb@sectionbgcolor} - {\color{\aeb@sectioncolor}#1}}} -\sectionLayout{% - special=custom, - halign=l, - bgcolor=red, - color=white -} -\makeatother -\end{dCmd*} -\noindent The above code is a simplified version of the \texttt{colorboxfit}, -a value of the \texttt{special} key. - -%\exPDF{web_pro} The demo file \texttt{web\_pro} illustrates these commands. - -\exAeBBlogPDF{p=1112} The demo file \texttt{\href{\urlAcroTeXBlog/?p=1112}{web\_pro.pdf}} -illustrates these commands. - -%\expoint{ex7} See \texttt{apb\_ex7.tex} for a working example of custom section -%head layout. - -%\Important It is important to remark that between slides \texttt{@} -%is made into a `letter', and reset to `other' at the beginning of -%the next slide. This makes it convenient to make these definitions -%between slides. In the preamble, however, such a definition must be -%between \cs{makeatletter} and \cs{makeatother}. - -\section{On Parts, Chapters, and Final Dots}\label{partsChaptersDots} - -The {\Web} package has several commands for customizing the \cs{part} and -\cs{chapter} commands. - -\subsection{The \texorpdfstring{\protect\cs{part}}{\CMD{part}} command} - -The appearance of the part title can be controlled by \cs{formatPartTitle}. - -\settowidth{\aebdimen}{\cs{customSubsubsecHead\darg{\anglemeta{tex\_code}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\formatPartTitle{!anglemeta(tex_code)} -\noPartNumbers -\end{dCmd} - -\newtopic The argument of \anglemeta{tex\_code} consists of formatting commands; within the -argument \texttt{\#1} represents the title. The command \cs{noPartNumbers} -is a convenience macro to turn off all part number, if you want to create -a document that has no part numbers, such as this document. - -The default argument for \cs{formatPartTitle} - -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\large\bfseries - \ifnum \c@secnumdepth >\m@ne - \partname~\thepart:\space -\fi#1 -\end{Verbatim} -\newtopic This typesets as {\large\bfseries Part I: The Web Package}, for example. You can -modify the basic definition to introduce colors, fonts, sizes of your choice, and -even special effects; for example, the declaration -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\formatPartTitle{\fbox{\large\bfseries - \ifnum \c@secnumdepth >\m@ne - \partname~\thepart:\space -\fi#1}} -\end{Verbatim} -gives a part title like this, {\large\bfseries\fbox{Part I: The Web Package}} - -\newtopic -A companion comment for changing the format of a part title, is \cs{tocPartTitle}, -which modifies how the part title appears in the table of contents. - -\settowidth{\aebdimen}{\cs{tocPartTitle\darg{\cs{thepart}\cs{hspace\darg{1em}\#1}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\tocPartTitle{!anglemeta(tex_code)} -\tocPartTitle{\thepart\hspace{1em}#1} -\end{dCmd} - -\newtopic Again, within the argument of \cs{tocPartTitle}, \texttt{\#1} refers to the -text of the part title. The default definition is given above also. - -\redpoint Finer control over the formatting of the \cs{part} command can be obtained by redefining -\cs{web@makeparthead} or \cs{web@makesparthead}, the latter one for \cs{part*}.\endredpoint - -\subsection{The \texorpdfstring{\protect\cs{chapter}}{\CMD{chapter}} command} - -The \cs{chapter} command is available in the \texttt{book} and \texttt{report} classes. -There are several defined in the {\Web} package for getting a little control over these. - - -\long\def\formatChapterNumber#1{\def\web@formatChapterNumber{#1}} -\formatChapterNumber{\large\bfseries - \@chapapp\space\thechapter\par\nobreak} -\long\def\formatChapterTitle#1{\def\web@formatChapterTitle##1{#1}} -\formatChapterTitle{% - \interlinepenalty\@M - \noindent\hspace{1em}\large\bfseries#1\par\nobreak -} - -\settowidth{\aebdimen}{\cs{formatChapterNumber\darg{\anglemeta{tex\_code}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\formatChapterNumber{!anglemeta(tex_code)} -\formatChapterTitle{!anglemeta(tex_code)} -\end{dCmd} - -\newtopic The argument of \ameta{tex\_code} consists of formatting commands; within the -argument \texttt{\#1} represents the title. - -The default definitions for these are - -\begin{dCmd*}{.85\linewidth} -\formatChapterNumber{\large\bfseries - \@chapapp\space\thechapter\par\nobreak} -\formatChapterTitle{% - \interlinepenalty\@M - \noindent\hspace{1em}\large\bfseries#1\par\nobreak -} -\end{dCmd*} -\newtopic These are slighly modified versions of what is found in \texttt{book.cls}. - -\redpoint A finer control can be obtained over the \cs{chapter} command -formatting by redefining \cs{web@makechapterhead} or -\cs{web@makeschapterhead}, the latter one is used for \cs{chapter*}.\endredpoint - -\subsection{The \texorpdfstring{\protect\cs{noFinalDot}}{\CMD{noFinalDot}} Command}\label{nofinaldot} - -The default behavior for the {\Web} package is to place a dot (.) at the end of the section -number in both the body of the document and in the table of contents. Thus, -this section is numbered as \textcolor{blue}{\ref*{nofinaldot}.} (note the final dot following -the section number). This section will appear in the table of contents the same way. The default -behavior of all (that I know of) standard {\LaTeX} classes is not to place this final -dot (.) at the end of the section number. To revert to this behavior, use the -\Com{noFinalDot} command in the preamble. - -%---------------------- Exerquiz -----------------------------------% - -\addtocontents{toc}{% - \par\vskip6pt\vskip0pt plus .25\vsize\penalty-1000 \vskip0pt plus-.25\vsize} - -%\addtocontents{toc}{\par\protect\vspace{\bigskipamount}\kern0pt\vspace{-\medskipamount}} -\part{The Exerquiz Package}\label{s:exerquiz} - -%The \textsf{exerquiz} package contains a series of macros for -%creating on-line exercises, short quizzes (with or without -%solutions), and longer quizzes that are graded using JavaScript. - -%\section{Overview} - -The \textsf{exerquiz} package provides environments for creating -the following interactive elements in a \textsf{PDF} file. - -\begingroup -\def\mylabel#1{\hfil\hyperref[#1]{\large$\bullet$}\ } -\begin{list}{} -{\usecounter{questionno}\setlength{\parsep}{0pt}\setlength{\topsep}{0pt} -\renewcommand{\makelabel}{\mylabel} -\settowidth{\labelwidth}{\normalfont\bfseries00.\ }% -\setlength{\itemindent}{0pt}\setlength{\labelsep}{0pt}}% - -\item[ss:online] \begin{NoHyper}\nameref{ss:online}\end{NoHyper}: -Macros for creating on-line exercises. - -\item[ss:QuizIR] \begin{NoHyper}\nameref{ss:QuizIR}\end{NoHyper}: -Macros for creating interactive quizzes with immediate feedback. - - -%\item[ss:QuizS] \begin{NoHyper}\nameref{ss:QuizS}\end{NoHyper}: -%Macros for creating quizzes with immediate feedback -%and a link to the solutions to the quizzes. - -\item[ss:GradedQuizzes] -\begin{NoHyper}\nameref{ss:GradedQuizzes}\end{NoHyper}: -Macros for creating quizzes graded by Java\-Script, with an option -to have the quizzes corrected using JavaScript. - -\end{list} -\endgroup - -\noindent In each of the quiz environments, you can pose multiple -choice, math fill-in, or text fill-in questions. - -The \textsf{exerquiz} provides the above listed environments for -the \texttt{dvips\-one}, \texttt{dvips}, \texttt{textures}, \texttt{pdftex} (including -lua(la)tex), \texttt{dvipdfm}, \texttt{dvipdfmx}, and \texttt{xetex} options. The package -automatically detects \textsf{pdftex} and \textsf{xetex}, and passes the driver name to -all subordinate packages, \textsf{eforms} and \textsf{insdljs}. - -There are options for reformatting the exercises to a print -format, for excluding the solutions to the exercises, for writing -the solutions to the exercises so they follow the question, and -for different languages, and much more. - -The \textsf{exerquiz} also allows you to rearrange the order and -location of the solutions to the exercises and quizzes, to -redefine many running headers, to customize the exercises and -quizzes, and to use the \texttt{exercise} environment to create -a new environment with its own counter, or with no counter at all. - -All the above mentioned macros and the options of the package are -discussed in this section. - -\section{\protect\textsf{Exerquiz} and Acrobat JavaScript} - -\textsf{Exerquiz} now uses the \textsf{insdljs} Package to insert -Document level Java\-Scripts into the \textsf{PDF} file. The quizzes -created using the \texttt{shortquiz} or \texttt{quiz} environment are -graded, marked and scored using these inserted JavaScript functions. - -Because the package \textsf{insdljs} is already loaded, it is easy -for the document author to develop JavaScripts that can be called -from the standard \textsf{Exerquiz} commands. The ability to write -JavaScript, therefore, right in the \LaTeX{} document gives a -unique programming flair to \textsf{Exerquiz}. - -\section{Package Requirements} - -The \textsf{exerquiz} package is independent of the \pkg{web} -package; however, \textsf{exerquiz} utilizes \pkg{hyperref} -just as \pkg{web} does. Use the latest version of -\pkg{hyperref}. In addition to the \textsf{color} package, -also used by \pkg{web}, \textsf{exerquiz} also uses the -\textsf{verbatim} package. This is used to write verbatim -solutions to exercises and quizzes to certain auxiliary files. - -Results from the quizzes created by the \texttt{shortquiz} and -\texttt{quiz} environments are evaluated using document level -JavaScripts. These JavaScripts are inserted into the final -\textsf{PDF} file using the \textsf{insdljs} package. This package -makes it easy for the package writer or document author to write -JavaScripts. - -The \textsf{exerquiz} package uses \emph{form features} of -\textsf{PDF} that \pkg{web} does not use. For the interactive -features to properly work, use \textcolor{blue}{Adobe Reader -5.0} or higher. - -\section{Basic Package Options}\label{ss:exbasicusage} - -Place in the preamble of your document -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage{exerquiz} -\end{Verbatim} - -\redpoint to use \textsf{exerquiz} with the \pkg{web} package, specify, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(web_options)]{web} -\usepackage[!meta(eq_options)]{exerquiz} -\end{Verbatim} -A complete list of the options recognized by \textsf{exerquiz} can be -found in \hyperref[s:ListofOpts]{Section~\ref*{s:ListofOpts}}, page~\pageref*{s:ListofOpts}; they are -also discussed below. - -The driver options for the \pkg{web} package are \texttt{dvipsone}, -\texttt{dvips}, \texttt{pdftex}, \texttt{dvipdfm} and \texttt{textures}. -No driver option with \textsf{exerquiz} is needed if you are using the -\pkg{web} package, \textsf{exerquiz} inherits the driver option from -the \pkg{web} package. - -For the \texttt{dvipdfm} option to work properly you -will need \textsf{dvipdfm}, version 0.12.7b or later, and -\pkg{hyperref}, version 6.68a or later. - -\redpoint To use \pkg{hyperref} and \textsf{exerquiz} with -\texttt{dvips}, specify, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[dvips,!meta(hy_options)]{hyperref} -\usepackage[dvips,!meta(eq_options)]{exerquiz} -\end{Verbatim} - -\redpoint To use \pkg{hyperref} and \textsf{exerquiz} with -\texttt{pdftex} or \texttt{xetex}, specify, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(hy_options)]{hyperref} -\usepackage[!meta(eq_options)]{exerquiz} -\end{Verbatim} -Both \pkg{hyperref} and \pkg{exerquiz} automatically detect the \app{pdflatex} -and \app{xelatex} applications so specification of the driver is not required. - -\redpoint To use \pkg{hyperref} and \textsf{exerquiz} with -any other driver, specify, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(hy_options)]{hyperref} -\usepackage[!meta(driver),!meta(eq_options)]{exerquiz} -\end{Verbatim} -the \meta{driver} for both \pkg{hyperref} and \pkg{exerquiz}. - -\redpoint To use \pkg{hyperref} and \textsf{exerquiz}, specify, -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[!meta(pdfs_options)]{pdfscreen} -\usepackage{exerquiz} -\end{Verbatim} -\makebox[0pt][r]{\raisebox{-2pt}{\color{red}\href{{\bUrl/tutorial/webeq/eq_pdfs.zip}}{{\zqacr - b\hspace{9.5pt}}}}\enspace}\ignorespaces -See the sample file \texttt{eq\_pdfs.tex} already set up for use -with \textsf{pdfscreen}, obtained by downloading the zipped file -\texttt{\href{\bUrl/tutorial/webeq/eq_pdfs.zip}{eq\_pdfs.zip}}. - - -\paragraph*{Some \app{xetex} issues.} -In recent versions of \app{xetex}, the application may be set to strip out -named destinations that are not referenced within the document as a target of -a `hard-wired' link; this is an optimization feature. The \pkg{exerquiz} -package sets a lot of destinations (or targets) but, in some instances, -`dynamic' links are employed using the JavaScript method -\texttt{\textsl{Doc}.gotoNamedDest(\anglemeta{target})}. In such instances, -\app{xetex} may strip out these targets; the link or button action may not -perform the jump to the destination because the destination does not exist. -If this becomes an issue for your \app{xetex} installation, the -\textbf{\app{Dvipdfmx} Compatibility Flags} needs to be modified. Search for -the configuration file \texttt{dvipdfmx.cfg} and open the file. Scroll down -to the line `\texttt{\%C 0x0000}', beneath it insert `\texttt{C 0x0010}', -save and close the file.\footnote{MiK\TeX{} discourages the direct editing of -the file \texttt{dvipdfmx.cfg}, instead, execute the line of code -`\texttt{initexmf -{}-edit-config-file dvipdfmx}' at the \app{Windows} -command-line prompt, and edit a local version of the configuration file as -described above.} The documentation for this bit field is just above the -referenced line and an explanation of the `\texttt{C 0x0010}' setting is -given. - - -\begin{comment} -\subsection{The \texorpdfstring{\protect\texttt{pdftex}}{pdftex} -Option}\label{ss:pdftexerquiz} - -The \textsf{exerquiz} package is independent of the \pkg{web} -package. Therefore, you can create your own page layout package -and use \textsf{exerquiz} to help you create exercises and -quizzes. Of course, \pkg{hyperref} must be used. - -%\redpoint Using \textsf{exerquiz} with \pkg{hyperref} or -%\textsf{pdfscreen} - -Should you want to use the \textsf{exerquiz} package using -\textsf{pdftex} without the \pkg{web} package, use the -\texttt{pdftex} option: -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[pdftex,<more options>]{hyperref} -\usepackage[pdftex]{exerquiz} -\end{Verbatim} -\noindent In particular, -\textsf{pdfscreen}\footnote{CTAN:macros/latex/contrib/supported/pdfscreen}, -a screen design package written for \textsf{pdftex} by C. V. -Radhakrishnan, has been tested and works correctly with -\textsf{exerquiz}. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[screen,article,sidebar]{pdfscreen} -\usepackage[pdftex]{exerquiz} -\end{Verbatim} -\noindent See the sample file \texttt{eq\_pdfs.tex} already set up for use -with \textsf{pdfscreen}, obtained by downloading the zipped file -\texttt{\href{\bUrl/tutorial/webeq/eq_pdfs.zip}{eq\_pdfs.zip}}. - -\subsection{The \texttt{dvipdfm} Option}\label{ss:dvipdfm} - -Should you want to use the \textsf{exerquiz} package without -the \pkg{web} package, in this case, the usage is -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[dvipdfm,<more_options>]{hyperref} -\usepackage[dvipdfm]{exerquiz} -\end{Verbatim} - -%\subsection{The \texttt{dvi\-windo} Option}\label{ss:dviwindo} -% -%Beginning with version 1.3 of \pkg{web} and \textsf{exerquiz}, -%\textsf{dviwindo} (the \texttt{.dvi} previewer by -%\href{http://www.yandy.com/}{\Y&Y, Inc.}) is supported. This -%means that hypertext links will be active from within the -%\textsf{dviwindo} previewer---as well as from within the Adobe -%Reader after the file has been converted to \textsf{pdf}. -% -%Should you want to use the \textsf{exerquiz} package without -%the \pkg{web} package, in this case, the usage is -%\begin{Verbatim}[xleftmargin=\amtIndent] -% \usepackage[dviwindo,<more_options>]{hyperref} -% \usepackage[dviwindo]{exerquiz} -%\end{Verbatim} - - -\redpoint \textbf{\textcolor{red}{Important Note:}} \emph{Only} -the \texttt{exercise} environment (this is the material described in -\hyperref[ss:online]{Section~\ref*{ss:online}}) is supported by -these two options. None of the quiz environments can be used with -these two options at this time. \Y&Y{} users need to use the -\texttt{dvipsone} option if the quiz environment is needed. -\end{comment} - -\subsection{The Language Option}\label{sss:exerquizlangopts} - -The \hyperref[web:langopts]{language option}, available in the -\pkg{web} package, can be invoked even when the \pkg{web} package is -not used.\footnote{Otherwise, the language option is introduced as an -option of the \pkg{web} package.} Currently, language options supported are -\begin{quote} -\begin{tabular}{lll} -\texttt{dutch} & \texttt{french} & \texttt{german}\\ -\texttt{italian} & \texttt{norsk} & \texttt{russian}\\ -\texttt{spanish} & \texttt{dansk} & \texttt{polish}\\ -\texttt{finnish} & \texttt{czech} & \texttt{catalan}\\ -\texttt{brazil} & \texttt{turkish} -\end{tabular} -\end{quote} -For example, with \pkg{hyperref}, you could use: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(hy_options)]{hyperref} -\usepackage[!meta(driver),french]{exerquiz} -\end{Verbatim} -\meta{driver} is any of the supported drivers. - -\redpoint\textbf{\textcolor{red}{Unicode required for \texttt{turkish} and \texttt{russian} options:}} When using the -\texttt{turkish} or the \texttt{russian} option, without using the \pkg{web} -package, use the \texttt{unicode} option for \pkg{hyperref}, like so,\footnote{The -\pkg{web} package passes the \texttt{unicode} option to -\pkg{hyperref} when using the \texttt{turkish} or \texttt{russian} option through the \pkg{web} -option list so there is no need to explicitly use the \texttt{unicode} -option.}\def\1{\hspace*{-\amtIndent}} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(hy_options),unicode]{hyperref} -\usepackage[!meta(driver),turkish]{exerquiz} -!1or -\usepackage[!meta(driver),russian]{exerquiz} -\end{Verbatim} -%\noindent This is because the word for ``Table of Contents'' is ``{\.I}{\c -%c}indekiler'' in Turkish. For {\.I}\c{c}indekiler to appear -%correctly in the bookmarks, hyperref needs the \texttt{unicode} -%option.\footnote{The glyph {\.I} (latin capital letter I with dot above) is in the Latin Extended-A group, -%unicode \texttt{U+0130}.} - -\subsection{The -\texorpdfstring{\protect\texttt{forpaper{\protect\normalfont\protect\space and }forcolorpaper}}{forpaper and -forcolorpaper} - Options}\label{sss:exquizforpaper} - -The \texttt{forpaper} or \texttt{forcolorpaper} option, also available in the -\textsf{\hyperref[sss:webforpaper]{web}} package, is needed in the -\textsf{exerquiz} package if you are are using \textsf{exerquiz} -without \pkg{web}. The option is invoked in the usual way. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!meta(driver),!meta(hy_options)]{hyperref} -\usepackage[!meta(driver),forpaper]{exerquiz} -\end{Verbatim} -\noindent See the discussion of the \texttt{\hyperref[sss:webforpaper]{forpaper}} on -page~\pageref{sss:webforpaper} given earlier. - -\subsection{The \texttt{preview} Option}\label{sss:preview} - -The \textsf{exerquiz} package can generate a large number of form -fields: buttons, check boxes, radio buttons, and text fields. These -are PDF objects and cannot be seen in a dvi previewer. By using -the \texttt{preview} option, the bounding rectangles of the form -objects are surrounded with rules, which outline the form fields -and make their positions visible. - -This option may help you to fine tune the positions of the form -fields. The option is for developmental use only. When you are -satisfied with the positioning and are ready to publish, remove -this option. - -\redpoint This option is not useful with the \texttt{pdftex} option, as -\textsf{pdftex} does not (normally) produce a dvi file. - -\subsection{The \texttt{nodljs} Option}\label{sss:nodljs} - -If you are creating a document that is meant to be printed or your -document only has exercises and solutions in it (which do not -require JavaScript), the size of the document can be reduced -significantly by using the \texttt{nodljs} option. This option is -just passed on to the \textsf{insdljs} package. - -% \subsubsection{The \texttt{acrobativ} Option}\label{sss:acrobativ} -% -% If the document author is using the \texttt{dvips} or the \texttt{dvipsone} option -% but has only Acrobat~4.0 or~4.05, then the document level JavaScripts need -% to be inserted manually. Therefore, we need to turn off the automatic inclusion of JavaScript. -% This option does exactly that; it is equivalent to the \texttt{nodljs} option. - -\subsection{The \texttt{exercisesonly} Option}\label{sss:noquizzes} - -If the document author only uses the \texttt{exercise} environment, then all -the document level JavaScripts of \texttt{exerquiz} are not needed. Use either -one of these two equivalent options to exclude the insertion of the JavaScripts. - -This is a convenience option that simply calls the \texttt{nodljs} option described above. - -\begin{comment} -\subsection{The \texttt{de\-bug} Option}\label{sss:debug} - -Developing JavaScript functions can be tricky. Quite often, it is -useful to insert some code lines that will help you in debugging a -particular function or a set of functions. For example, you might -want to verify that the parameters being passed to a function are -the correct ones, or that the return value is correct. You can -have Acrobat write the values to its console like so: -\begin{Verbatim}[xleftmargin=\amtIndent] -console.println("Function myFunc"); -console.println("Parameters: x = " x + ", y = " + y ); -console.println("Return Value: retnValue = " + retnValue); -\end{Verbatim} -\noindent In the above code, I have used the -\texttt{console.println()} method, which is only available in the -Acrobat application, not the Reader. For the Reader, one could -use \texttt{app.alert()}, but this method is not well-suited for -monitoring values of a large number variables as the script -executes. If you don't have the full Acrobat, the \texttt{debug} -option will not be useful. - -\textsf{Exerquiz} just passes this option on to the -\textsf{insdljs} package. Additional details on the debug option -can be found there. Within the \texttt{insDLJS} environment, you -can place debugging code lines as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -function myFunc(x,y) -{ - retnValue = x + y; -\db console.println("Function myFunc");\db% -\db console.println("Parameters: x = " x + ", y = " + y );\db% -\db console.println("Return Value: retnValue = " + retnValue);\db% - return retnValue; -} -\end{Verbatim} -\noindent Any line that begins with \cs{db} and ends with \cs{db} is a -debugging line. These lines will be included if the \texttt{debug} option -is taken; otherwise they are removed. The `\texttt{\%}', is -the comment character within the \texttt{insDLJS} environment, and prevents, -in this case, the introduction of a carriage return. -\end{comment} - -\subsection{The \texttt{allowrandomize} Option}\label{ss:allowrandomize} - -Use this option to load in the macros to randomize the choices -of a multiple choice question. See \hyperref[s:random]{Section~\ref*{s:random}}, -\Nameref{s:random} for details. - -\subsection{The \texttt{unicode} Option}\label{eq:unicode} - -This option is passed to \pkg{hyperref}, and is placed in {\Web} as a -convenience. If \textsf{eforms} is subsequently loaded, \textsf{eforms} (and -\textsf{exerquiz}) will accept {\LaTeX} markup in the optional argument -of the form fields. See the \href{eformman.pdf}{eforms manual} -for details.\footnote{eforms manual on Web: \url{\bUrl/eformman.pdf}}\edef\fnEForms{\thefootnote} - -\subsection{The \texttt{useui} Option}\label{eq:useui} - -This option is passed to \textsf{eforms}, and is placed in {\Web} as -a convenience. If \textsf{eforms} is subsequently loaded, -\textsf{eforms} loads the \pkg{xkeyval} package, and key-value pairs are -defined for use in the optional argument of form and link commands. -See the \href{eformman.pdf}{eforms manual} for details.${}^\text{\fnEForms}$ - -\subsection{The \texttt{usesumrytbls} Option}\label{eq:usesumrytbls} - -When this option is taken, the code for creating quiz summary tables is input. -See \hyperref[s:sumrytbl]{Section~\ref*{s:sumrytbl}}, page~\pageref*{s:sumrytbl} for details. - -\subsection{The \texttt{contsolns} Option}\label{eq:contsolns} - -When this option is taken, a message appears in the right running footer -that a solution has crossed the page boundary and that the solution -continues on the next page. Further documentation can be found in -\texttt{contsolns.pdf} in the \texttt{doc} folder, the demo file for this -feature is \texttt{contsolns\_ex.tex}, found in the \texttt{examples} -folder. - -\section{The \texttt{exercise} Environment}\label{ss:online} - -The \textsf{exerquiz} package defines \texttt{exercise} and -\texttt{solution} environments, the latter being nested inside the -former. With these environments, you can create questions -(exercises) with solutions. Solutions are written -\texttt{verbatim} to the auxiliary file \cs{jobname.sol}, then -input back in near the end of the document. A hypertext link is -created to connect the exercise with the solution. - -An exercise with \hyperref[sss:exwparts]{multiple parts} can also -be defined, with hypertext links to the solutions of the -individual parts of the exercise. - -The \texttt{exercise} environment has its own counter -(\texttt{eqexno}), but there is an \hyperref[sss:eqexno]{option} -for using another counter, or no counter at all. This may be -useful for creating a numbered example environment. - -There is an option for placing the -\hyperref[sss:solutionsafter]{solutions immediately after} the -statement of the problem. This, again, may be useful for an -example environment where you want the solution to the example to -follow the statement, rather than being hypertext-linked to the -solution. - -Finally, there is an option for \hyperref[sss:hide]{hiding -solutions}, in the following sense: When the hidden option is -used, the solutions are commented out rather then being written to -the \verb+\jobname.sol+ file. Additionally, there is a global -option, \texttt{nohiddensolutions}; in this case, when you -re-\LaTeX, the solutions are written to \verb+\jobname.sol+, and -input back into the document. - -\subsection{Basic Usage}\label{ss:basicexer} - -The syntax for the \texttt{exercise} and \texttt{solution} -environments is as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise} -Your Question. -\begin{solution} -The Solution to Your Question -. . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . -\end{solution} -\end{exercise} -\end{Verbatim} -\noindent Here is an example of the usage. - -\begin{exercise}\label{ex:int}% -Evaluate the integral \(\displaystyle\int x^2 e^{2x}\,dx\). -\begin{solution} -We evaluate by \textit{integration by parts}: -\begin{alignat*}{2} - \int x^2 e^{2x}\,dx & - = \frac12 x^2 e^{2x} - \int x e^{2x}\,dx &&\quad - \text{$u=x^2$, $dv=e^{2x}\,dx$}\\& - = \frac12 x^2 e^{2x} - - \left[\frac12 x e^{2x}-\int \frac12 e^{2x}\,dx\right] &&\quad - \text{integration by parts}\\& - = \frac12 x^2 e^{2x} - \frac12 x e^{2x} + \frac12\int e^{2x}\,dx &&\quad - \text{$u=x^2$, $dv=e^{2x}\,dx$}\\& - = \frac12 x^2 e^{2x} - \frac12 x e^{2x} + \frac14 e^{2x} &&\quad - \text{integration by parts}\\& - = \frac14(2x^2-2x+1)e^{2x} &&\quad - \text{simplify!} -\end{alignat*} -\end{solution} -\end{exercise} - -The code for this is - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise}\label{ex:int}% -Evaluate the integral \(\displaystyle\int x^2 e^{2x}\,dx\). -\begin{solution} -We evaluate by \texttt{integration by parts}: -\begin{alignat*}{2} - \int x^2 e^{2x}\,dx & - = \frac12 x^2 e^{2x} - \int x e^{2x}\,dx &&\quad - \text{$u=x^2$, $dv=e^{2x}\,dx$}\\& -... lines removed ... - = \frac14(2x^2-2x+1)e^{2x} &&\quad - \text{simplify!} -\end{alignat*} -\end{solution} -\end{exercise} -\end{Verbatim} -\exAeBBlogPDF{p=803} See the source file for the PDF -\texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} for a complete -listing of this exercise. - - -%\noindent See the demo file \textsf{webeqtst.tex} for a complete listing of this exercise. - - -\redpoint Questions and solutions are kept together \textit{\`a la -Knuth}. The solutions are written to the file -\cs{jobname.sol} verbatim then input back using -\cs{includeexersolutions}. - - -\redpoint You can redefine the counter to include the section -number. For example, the code -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\theeqexno}{\thesection.\arabic{eqexno}} -\end{Verbatim} -\noindent can be placed in the preamble of your document. In this -case, the above exercise would appear as -\textsf{Exercise~\thesection.\ref*{ex:int}}. - -\redpoint The usual cross-referencing mechanisms for \LaTeX, i.e., -using \cs{ref} and \cs{pageref}, work as expected. - -\medskip\noindent -For example, the label `\verb+\label{ex:int}+' was placed -just after the \verb+\begin{exercise}+ on the previous page. Let us now -reference Exercise~\ref{ex:int}, on page~\pageref{ex:int}. -\begin{quote} -\begin{Verbatim}[xleftmargin=\amtIndent] -let us now reference Exercise~\ref{ex:int}, -on~\pageref{ex:int}. -\end{Verbatim} -\end{quote} -\noindent Of course, the nicer looking variations can be done as well. -For example, see \hyperref[ex:int]{\textsf{Exercise~\ref*{ex:int}}}. -\begin{center} -\verb+\hyperref[ex:int]{\textsf{Exercise~\ref*{ex:int}}}+ -\end{center} -\noindent The \texttt*-form of \cs{ref} was used to turn off the -redundant link creation. (\pkg{hyperref} would normally make -the \cs{ref} macro into a link.) - -\redpoint An `\textsf{Exercise}' that is also a hypertext link -appears in the default color \textcolor{webgreen}{green}; if an -`\textsf{Exercise}' is not a link, it appears in \textcolor{blue} -{blue}. (The word `\textsf{Exercise}' is not a link if it is an -\hyperref[sss:exwparts]{exercise with parts}, or if the -\texttt{\hyperref[sss:nosolutions]{nosolutions}} option is used. -Finally, if the \texttt{web} option -\texttt{\hyperref[sss:webforpaper]{forpaper}} is used, color is -turned off and `\textsf{Exercise}' appears in black. - -\redpoint\textbf{\textcolor{red}{Caveat:}} There is one problem -you might watch for. There is an optional argument to the -\texttt{solution} environment. When \LaTeX{} searches the source -looking for the optional parameter, which may not exist, it expands -macros looking for a `\texttt['. This causes problem when you have -a solution that begins with a math display environment and \LaTeX{} -prematurely expands such an environment. - -\begin{exercise} -Write an equation of a line that crosses the $x$- and $y$-axes at 1. -\begin{solution}[] -\begin{equation*} -\boxed{x+y=1} -\end{equation*} -\end{solution} -\end{exercise} - -\noindent To prevent \LaTeX{} errors that will stop the compilation, -just place the empty optional argument `\texttt{[]}' prior to the math environment. The code for -the previous exercise is -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise} -Write an equation of a line that crosses -the $x$- and $y$-axes at 1. -\begin{solution}[] -\begin{equation*} -\boxed{x+y=1} -\end{equation*} -\end{solution} -\end{exercise} -\end{Verbatim} - - -\noindent This is only necessary if the solution \textbf{does not} begin with text. - -\subsubsection{Exercises with Parts: The \texttt{exercise*} Environment}\label{sss:exwparts} - -Beginning with version 6.07, the \texttt{exercise*} environment is used to create exercises with multiple -parts.\footnote{For users of exerquiz, this is equivalent -to the \texttt*-option with the \texttt{exercise} environment. The \texttt{exercise*} environment is the preferred form -but the \texttt*-option works as before.} - -A companion environment to \texttt{exercise*} is the -\texttt{parts} environment, used to enclose the multiple parts of -the question. The \texttt{parts} environment takes one optional -argument, the number of columns to be used. The argument must be a -positive integer greater than 1, in this case, a tabular -environment is used, with the number of columns equal to the -specified argument. If no optional parameter is given, then a list -environment is used. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise*} -Preamble for your multi-parted question. -\begin{parts} % begin listing of the parts -\item First question. -\begin{solution} -Solution to first question. -\end{solution} -... -... -\item Final question. -\begin{solution} -Solution to the final question. -\end{solution} -\end{parts} % end listing of parts -\end{exercise*} -\end{Verbatim} - -\exAeBBlogPDF{p=803} The following exercise illustrates this option. -This example appears in \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}}. - - -%\noindent The following exercise illustrates this option. \texttt{\href{\bUrl/webeq_ex.html\#webeqtst}{webeqtst.tex}}. - -\begin{exercise*} -Suppose a particle is moving along the $s$-axis, and that its position -at any time $t$ is given by $s=t^2 - 5t + 1$. -\begin{parts} -\item Find the velocity, $v$, of the particle at any time -$t$.\label{item:part} -\begin{solution} -Velocity is the rate of change of position with respect to time. In -symbols: -\[ - v = \frac{ds}{dt} -\] -For our problem, we have -\[ - v = \frac{ds}{dt} =\frac d{dt}(t^2 - 5t + 1) = 2t-5. -\] -The velocity at time $t$ is given by $\boxed{v=2t-5}$. -\end{solution} -\item Find the acceleration, $a$, of the particle at any time $t$. -\begin{solution} -Acceleration is the rate of change of velocity with respect to time. -Thus, -\[ - a = \frac{dv}{dt} -\] -For our problem, we have -\[ - a = \frac{dv}{dt} =\frac d{dt}(2t-5)=2. -\] -The acceleration at time $t$ is constant: $\boxed{a=2}$. -\end{solution} -\end{parts} -\end{exercise*} - -\noindent There is also an option for listing multi-parts questions in tabular form. - -%\makeatletter -%\@ifundefined{@xtabularcr}{\let\save@@xtabularcr\@xarraycr} -% {\let\save@@xtabularcr\@xtabularcr} -%\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr} -% {\eqe@tab@parts@rowsep}}% -%\def\eqe@tab@parts@rowsep{\save@@xtabularcr[\eqparts@tabrowsep]}% -%\def\eqe@tab@parts@rowsep{\save@@xtabularcr -% \noalign{\expandafter\kern\eqparts@tabrowsep}}% -% -%\makeatother - -\begin{exercise*}\relax\label{ex:tabular} -Simplify each of the following expressions in the complex number system. -\textit{Note}: $\bar z$ is the conjugate of $z$; $\operatorname{Re} z$ is the real -part of $z$ and $\operatorname{Im} z$ is the imaginary part of $z$. - -\begin{parts}[2] -\item $i^2$ -\begin{solution} -$i^2 = -1$ -\end{solution} -& -\item $i^3$ -\begin{solution} -$i^3 = i i^2 = -i$ -\end{solution} -\\ -\item $z+\bar z$ -\begin{solution} -$z+\bar z=\operatorname{Re} z$ -\end{solution} -& -\item $1/z$ -\begin{solution} -$\displaystyle\frac{1}{z}=\frac{1}{z}\frac{\bar{z}}{\bar{z}} - =\frac{\bar{z}}{z\bar{z}}=\frac{\bar{z}}{|z|^2}$ -\end{solution} -\end{parts} -\end{exercise*} - -\noindent The syntax is the same as an exercise with multiparts. -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise*} % <- star indicates multipart -Simplify each... -\begin{parts}[2] % <- optional argument indicates tabular -\item $i^2$ -\begin{solution}[] $i^2 = -1$ \end{solution} -& -\item $i^3$ \begin{solution}[] $i^3 = i i^2 = -i$\end{solution} -\\ -\item $z+\bar z$ -\begin{solution}[] $z+\bar z=\operatorname{Re} z$\end{solution} -& -... -\end{solution} -\end{parts} -\end{exercise*} -\end{Verbatim} - -\redpoint This problem style does not obey the -\texttt{solutionsafter} option. (See the section entitled -\Nameref{sss:solutionsafter}). - -\exAeBBlogPDF{p=803} The demo PDF -\texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} -contains this particular example. - - -%\exPDF{webeqtst} The sample file -%\texttt{\href{\bUrl/webeq_ex.html\#webeqtst.tex}{webeqtst.tex}} -%contains this particular example. - -\subsection{Options of the \texttt{exercise} Environment} - -\subsubsection{Leaving Vertical Space instead of a -Solution}\label{sss:leavevspace} - -The \texttt{exercise} environment can be used for test -construction. Initially, you may want to pose a questions and -leave space beneath for the student to write in an answer. - -\newtopic The \texttt{solutions} environment has an optional parameter for -inserting a vertical space. -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise} -This is the question. -\begin{solution}[1in] % <-- optional vertical skip -This is the solution. -\end{solution} -\end{exercise} -\end{Verbatim} - -\noindent This vertical space only appears when the -\texttt{\hyperref[sss:nosolutions] {nosolutions}} option is in -effect. - -Within the context of test construction, write the test (including -the solutions), then publish it with the \texttt{nosolutions} -option (leaving vertical spaces as appropriate), then publish the -key with the \texttt{\hyperref[sss:solutionsafter] -{solutionsafter}} option.\footnote{If \texttt{solutionsafter} and -\texttt{nosolutions} both appear in the option list, -\texttt{solutionsafter} overrides \texttt{nosolutions}.} - -\redpoint The optional parameter for the solution is ignored for -exercises with parts having a tabular format -(\hyperref[ex:tabular]{Example~\ref{ex:tabular}} is an example of -a tabular multipart exercise). - - -\subsubsection{Hiding some Solutions}\label{sss:hide} - -A subset of the solutions can be hidden by using the `\texttt{h}' -option. This option is an option of the \texttt{exercise} -environment, as well as an option of \cs{item}, when there is an -exercise with parts. For example, the following code -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise}[h] % <- hide solution -Give an example of a set that is \textit{clopen}. -\begin{solution} -The real number line is both closed and open in the -usual topology of the real line. -\end{solution} -\end{exercise} -\end{Verbatim} -\noindent -yields the following exercise. - -\begin{exercise}[h] % <- hide solution -Give an example of a set that is \textit{clopen}. -\begin{solution} -The real number line is both closed and open in the -usual topology of the real line. -\end{solution} -\end{exercise} - -Notice that there is no hypertext link to the solution; indeed, -the solution was not even written to the \cs{jobname.sol} file. - -The `\texttt{h}' option works with exercises with parts as well. -Just apply the `\texttt{h}' option to the \cs{item}: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise*} -A particle has position $s=t^2 - 5t + 1$ at time $t$. -\begin{parts} - -\item Find the velocity, $v$, at time $t$. -\begin{solution} -$v = 2t-5$. -\end{solution} - -% This solution will not be included in the solutions -% section at the end of the document. -\item[h] Find the acceleration, $a$, at time $t$. -\begin{solution} -$a = 2$. -\end{solution} -\end{parts} -\end{exercise*} -\end{Verbatim} - -\noindent The results of this code follow: - -\begin{exercise*} -A particle has position $s=t^2 - 5t + 1$ at time $t$. -\begin{parts} - -\item Find the velocity, $v$, at time $t$. -\begin{solution} -$v = 2t-5$. -\end{solution} - -\item[h] Find the acceleration, $a$, at time $t$. -\begin{solution} -$a = 2$. -\end{solution} -\end{parts} -\end{exercise*} - -Part (a) is hypertext linked to its solution, whereas part (b) is -blue, indicating there is no link there. - -\redpoint Multipart exercises in the tabular format behave the same way; use -\cs{item[h]} to ``hide'' a solution. - -\redpoint There is also an `\texttt{H}' option as well. Specifying -`\texttt{H}' also hides the solutions. See the next two sections for a discussion -of revealing the solutions marked by either `\texttt{h}' or `\texttt{H}' to understand -the distinction between the two. - - -\subsubsection{The \texttt{nohiddensolutions} Option}\label{sss:nohideopt} - -Hidden solutions can be included in the document by either -removing the `\texttt{h}' option everywhere and re-\LaTeX ing, or -by simply using the \texttt{nohiddensolutions} of -\textsf{exerquiz}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[nohiddensolutions]{exerquiz} -\end{Verbatim} - -\noindent This option overrides the local `\texttt{h}' option throughout the -document. - -\redpoint When the \texttt{solutionsafter} option of \textsf{exerquiz} is invoked, -the hidden solutions are also revealed. To keep the solutions hidden, in this case, -you should use `\texttt{H}' option instead of `\texttt{h}'. See the next section. - -\subsubsection{The \texttt{noHiddensolutions} Option}\label{sss:noHideopt} - -In addition to the `\texttt{h}', you can also use the `\texttt{H}' -option with exercises. The solution will be hidden with -`\texttt{H}', but will not be revealed when either the -\texttt{nohiddensolutions} or the \texttt{solutionsafter} -options are used. - -The `\texttt{H}' option can be overridden by using the -\texttt{noHiddensolutions} of \textsf{exerquiz}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[noHiddensolutions]{exerquiz} -\end{Verbatim} -This option overrides the `\texttt{H}' and `\texttt{h}' options throughout -the document. - -\subsubsection{The \protect\texttt{exercise} environment Counter}\label{sss:eqexno} - -The counter for the \texttt{exercise} environment is \texttt{eqexno}, -and will number your exercises consecutively throughout the -document. Should you want the counter to be reset after each -\texttt{section}, place in the preamble of your document -the following lines: -\begin{Verbatim}[xleftmargin=\amtIndent] -\makeatletter -\@addtoreset{eqexno}{section} -\makeatother -\end{Verbatim} - -\subsubsection{The -\texorpdfstring{\protect\texttt{nosolutions}}{nosolutions} -Option}\label{sss:nosolutions} - -Some educators may initially want to post a series of exercises on the -Web without the solutions. Then, at a later date, repost the -exercises with the solutions included. For this application there -is the \texttt{nosolutions} option for the \textsf{exerquiz} -package. -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage[pdftex]{web} % dvipsone, dvips or dvipdfm -\usepackage[nosolutions]{exerquiz} -\end{Verbatim} -\noindent For this kind of application, it might make sense to publish the exercises -with the \texttt{forpaper} option. - - -\subsubsection{The -\texorpdfstring{\texttt{solutions\-after}}{solutionsafter} -Option}\label{sss:solutionsafter} - -For additional flexibility with how you want the solutions to the -exercises presented, there is a \texttt{sol\-u\-tions\-af\-ter} option -with \textsf{exerquiz}. Should you invoke this option, -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass{article} -\usepackage[dvipsone]{web} % dvips or pdftex -\usepackage[solutionsafter]{exerquiz} -\end{Verbatim} -\noindent the solutions to the exercises appear just \emph{after} the -exercise question. For example, - -\SolutionsAfter -\begin{exercise} -Let $V$ be a vector space, show that the zero vector, $\mathbf 0$, is -unique. -\begin{solution} -Let $\mathbf 0'$ be a vector that satisfies the axiom of being a -zero of the vector space $V$. We want to show $\mathbf 0=\mathbf -0'$. Since $\mathbf 0$ is a zero, we have $\mathbf 0 + \mathbf 0'=\mathbf -0'$. But we are assuming $\mathbf 0'$ is a zero vector as well, -hence, $\mathbf 0' + \mathbf 0=\mathbf 0$. Finally, -\[ - \mathbf0' = \mathbf0 + \mathbf0' = \mathbf0' + \mathbf0 = \mathbf0 -\] -and this completes the proof. -\end{solution} -\end{exercise} -\SolutionsAtEnd - -As you can see in the above example, the word \textit{Solution:} is typeset -at the beginning of the solutions. The command \Com{renameSolnAfterTo} can be used -for conveniently changing the solution after label, for example, -\verb!\renameSolnAfterTo{\textbf{Proof:}}! changes the label to \textbf{Proof:}, -and \verb!\renameSolnAfterTo{}! produces no label. These changes will be local -to the group in which they are made, or global of there they are not made in a group. - -The command \cs{resetSolnAfterToDefault} sets the label text back to -the default. The default label is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\eq@exsolafterDefault}{\textit{Solution}:} -\end{Verbatim} - - -\newtopic The option \texttt{solutionsafter} is global; all exercises are -typeset this way---unless you change it within the document using -the macros \cs{SolutionsAfter} and \cs{Solutions\-At\-End}. This -manual was typeset without the \texttt{solutionsafter} option. The -above example was typeset as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\SolutionsAfter % show solution following exercise -\begin{exercise} -Let $V$ be a vector space, show ... -\begin{solution} -............ -\end{solution} -\end{exercise} -\SolutionsAtEnd % turn back on solutions at end of document -\end{Verbatim} - -\noindent Normally, a typical document might have all solutions at the end -of the document (the default behavior), or all solutions following -each exercise (\texttt{solutionsafter} option). Mixtures of these two -types can be obtained by using the two commands -\cs{Solutions\-After} and \cs{Solutions\-At\-End}. - -\newtopic This feature might be an easy way of typsetting examples. See the example -in the section entitled \Nameref{sss:redesignex}. - -\redpoint The \texttt{solutionsafter} option has no effect on -multipart exercises in \textit{tabular form}; I haven't been -able to find a convenient way of displaying the solutions after -the questions when the questions are in tabular form.\endredpoint - -%\exPDF{webeqtst} See the file \texttt{\href{\bUrl/webeq_ex.html\#webeqtst}{webeqtst.pdf}} for examples. - -\exAeBBlogPDF{p=803} See the file \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} from the {\AcroBlog} -website for examples. - - -\subsubsection{Moving the Solution Set} - -The solution set, by default, comes last in the file. You can -move its positioning by including the command -\cs{includeexersolutions} at any point \emph{after} the last -exercise. You'll note that I have moved the solutions in this -file \emph{before} the \nameref{references} section, as indicated, for -example, by its position in the table of contents. - -\subsubsection{Grouping the solutions at end}\label{ss:grpEx} - -Historically, solutions to exercises appearing at the end of the file -\emph{are not grouped}. This means that a color change or a definition made -in one solution, for example, may affect all subsequent solutions. - -You can now declare \cs{makeExSolnsLocalOn} or \cs{makeExSolnsLocalOff} -anywhere in the document to turn on grouping for all exercises that follow, -or to turn off this feature again. The default is \cs{makeExSolnsLocalOff}. - - -\subsection{Redesigning the -\texorpdfstring{\protect\texttt{exercise}}{exercise} -Environment}\label{sss:redesignex} - -You can customize the \texttt{exercise} environment to suit your -own needs. To customize, you need to change some or all of the -following six commands. In the listing below, the \LaTeX{} definition -of each follows a short description. -\begin{questions} - \item \cs{exlabel}: This command expands to the name of the exercise label, - the default string is `Exercise'. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exlabel{Exercise} -\end{Verbatim} - \item \cs{exlabelformat}: Typesets the exercise - label; use it to introduce additional type style such as - boldface, italic, small caps, etc. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exlabelformat{% - {\scshape\exlabel\ \theeqexno.}} -\end{Verbatim} - \item \cs{exlabelsol}: Expands to the name of the exercise - label in the solutions section. Usually its value is the same - as \cs{exlabel}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exlabelsol{\exlabel} -\end{Verbatim} - \item \cs{exsllabelformat}: The format of the solutions label, - \verb+\bfseries\exlabel+ is the default. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exsllabelformat - {\noexpand\textbf{\exlabelsol\ \theeqexno.}} -\end{Verbatim} - \item \cs{exrtnlabelformat}: This is the label you click on to - return from the solution of the exercise. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exrtnlabelformat{\exlabelsol\ \theeqexno} -\end{Verbatim} - \item \cs{exsectitle}: The section title of the solutions to - the exercises. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exsectitle{Solutions to \exlabel s} -\end{Verbatim} - \item \cs{exsecrunhead}: The running header for the solution - section for the exercises. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\exsecrunhead{\exsectitle} -\end{Verbatim} -\end{questions} - -\redpoint The counter \texttt{eqexno} is used to count exercises. -When an \texttt{exercise} environment starts, this counter is -incremented. The value of this counter is used in -the definitions of \cs{exlabelformat}, \cs{exsllabelformat} and -\cs{exrtnlabelformat}. Still, the use of \texttt{eqexno} is -optional; for example, you might want to state a problem just as `Special -Exercise', without an associated exercise number. - -Below is an example of redefining the \texttt{exercise} -environment. We define a \texttt{problem} environment based on -the \texttt{exercise} environment. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\newenvironment{problem}{% -\renewcommand\exlabel{Problem} -\renewcommand\exlabelformat{\textbf{\exlabel\ \theeqexno.}} -\renewcommand\exsllabelformat - {\noexpand\textbf{\exlabel\ \theeqexno}} -\renewcommand\exrtnlabelformat{$\blacktriangleleft$} -\renewcommand\exsecrunhead{\exsectitle} -\begin{exercise}}{\end{exercise}} -\end{Verbatim} - -\newenvironment{problem}{% -\renewcommand\exlabel{Problem} -\renewcommand\exlabelformat{\textbf{\exlabel\ \theeqexno.}} -\renewcommand\exsllabelformat - {\noexpand\textbf{\exlabel\ \theeqexno.}} -\renewcommand\exrtnlabelformat{$\blacktriangleleft$} -\renewcommand\exsecrunhead{Solutions to Problems} -\begin{exercise}}% -{\end{exercise}} - -\noindent See any standard \LaTeX{} reference on how to define a new -environment, for example \cite{book:Goossens1}. - -\newtopic Here is an example of the new \texttt{problem} environment:\medskip - -\begin{problem} -This is a question. -\begin{solution} -This is the solution. -\end{solution} -\end{problem} - -\noindent -The code for this problem was simply: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{problem} -This is a question. -\begin{solution} -This is the solution. -\end{solution} -\end{problem} -\end{Verbatim} - -\redpoint Two of these commands, \cs{exsllabelformat} and -\cs{exrtnlabelformat}, must be handled with special care. Formatting such -as \cs{textbf} or \cs{scseries} must be preceded by a \cs{noexpand}. These -commands are written to a file, and must be prevented from expanding. - -When you use the \texttt{exercise} environment, the counter -\texttt{eqexno} is automatically incremented by default. The -\texttt{exercise} does have an optional argument for inserting -your own counter. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{exercise}[!ameta(ctr)] -....................... -\end{exercise} -\end{Verbatim} -\noindent Where \ameta{ctr} is a counter already defined. This option is -useful if you want to use the \texttt{exercise} environment to -create a new environment with its own numbering scheme, as the -following example illustrates. - -This example demonstrates how to define an \texttt{example} -environment with its own counter. For examples, we don't want the -solutions to appear at the end of the file, so we'll use -the commands \cs{SolutionsAfter} and \cs{SolutionsAtEnd}. All changes are -local. -\begin{Verbatim}[xleftmargin=\amtIndent] -% put a counter in preamble -\newcounter{exampleno} -\newenvironment{example}{% -\renewcommand\exlabel{Example} -\renewcommand\exlabelformat - {\textbf{\exlabel\ \theexampleno.}} -\renewcommand\exrtnlabelformat{$\square$} -\SolutionsAfter -\begin{exercise}[exampleno]}% -{\end{exercise} -\SolutionsAtEnd} -\end{Verbatim} - - -\newcounter{exampleno} -\newenvironment{example}{% -\renewcommand\exlabel{Example} -\renewcommand\exlabelformat{\textbf{\exlabel\ \theexampleno.}} -\renewcommand\exrtnlabelformat{$\square$} -\SolutionsAfter -\begin{exercise}[exampleno]}% -{\end{exercise} -\SolutionsAtEnd} - -\noindent Now we simply type -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{example} -What is $2+2$? -\begin{solution} -It is well known that $2+2=4$. -\end{solution} -\end{example} -\end{Verbatim} -\newtopic to obtain - -\begin{example} -What is $2+2$? -\begin{solution} -It is well known that $2+2=4$. -\end{solution} -\end{example} - -\noindent The changes are local to the new \texttt{example} environment. If -we have another exercise, we get a correctly numbered exercise. - - -\begin{exercise} -What is $2+2$? -\begin{solution} -It is well known that $2+2=4$. -\end{solution} -\end{exercise} - -\redpoint The command \cs{exsolafter} typesets the solution label -to the exercise in the case the \texttt{solutionsafter} option is in effect. -The default definition of \cs{exsolafter} is `\verb+\textit{Solution}:+'. -You can redefine it as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\exsolafter{\textit{L\"osung}:} -\end{Verbatim} -\noindent The command \cs{renameSolnAfterTo} is a convenience macro for changing this label. -We can redefine the label above like so: -This redefinition yields: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renameSolnAfterTo{\textit{L\"osung}:} -\end{Verbatim} - -\renewenvironment{example}{% -\renewcommand\exlabel{Example} -\renewcommand\exsolafter{\textit{L\"osung}:} -\renewcommand\exlabelformat{\textbf{\exlabel\ \theexampleno. }} -\renewcommand\exrtnlabelformat{$\square$} -\SolutionsAfter -\begin{exercise}[exampleno]}% -{\end{exercise} -\SolutionsAtEnd} - -\begin{example} -What is $2+2$? -\begin{solution} -It is well known that $2+2=4$. -\end{solution} -\end{example} - -\redpoint There is a special option to the \texttt{exercise} -environment as well, -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{exercise}[0] -....................... -\end{exercise} -\end{Verbatim} -When the optional argument is \texttt{0} rather than a counter. In -this case, no counter is associated with the environment. For -example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\newenvironment{project}{% -\renewcommand\exlabel{Project} -\renewcommand\exlabelformat{\textbf{\exlabel. }} -\renewcommand\exsllabelformat - {\noexpand\textbf{\exlabel\ Hint:}} -\renewcommand\exrtnlabelformat{$\blacktriangleleft$} -\begin{exercise}[0]}% -{\end{exercise}} -\end{Verbatim} - -\newenvironment{project}{% -\renewcommand\exlabel{Project} -\renewcommand\exlabelformat{\textbf{\exlabel. }} -\renewcommand\exsllabelformat - {\noexpand\textbf{\exlabel\ Hint:}} -\renewcommand\exrtnlabelformat{$\blacktriangleleft$} -\renewcommand\exsecrunhead{Hints to Projects} -\begin{exercise}[0]}% -{\end{exercise}} - -\noindent Thus, we obtain, - -\begin{project} -Find a shorter proof of \textsf{Fermat's Last Theorem}. Do not -look at the project hints until you have finished the -project. -\begin{solution} -There, you didn't need my help after all. -\end{solution} -\end{project} - -\noindent The code: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{project} -Find a shorter proof of \textsf{Fermat's Last Theorem}. Do not -look at the project hints until you have finished the project. -\begin{solution} -There, you didn't need my help after all. -\end{solution} -\end{project} -\end{Verbatim} - -\noindent Note that the solutions are typeset at the end of the file in the -`Solutions to Exercises' section. At this time, there is no -feature for sorting out these different types of environments; -they are all \texttt{exercise} environments, which is what they are. - -\section{The \texttt{shortquiz} Environment}\label{ss:QuizIR} - -The \texttt{shortquiz} environment is used to create multiple -choice question and math/text fill-in questions with immediate -response. The discussion of math and text fill-in questions is -post-phoned to \hyperref[s:oQ]{Section~\ref*{s:oQ}}, entitled -\nameref{s:oQ}. The environment allows redefinition to customize -the look of your quizzes. (See -\mlNameref{sss:redefinesq}.) - -% The presentation of the answers will either be in a \texttt{list} -% or a \texttt{tabular} environment, depending on the parameter -% \texttt{num\_cols}. (A \texttt{list} is used if \texttt{num\_col} -% is set to~1.) - -\subsection{Basic Usage}\label{BasicUsage} - -The syntax for the environment (\texttt{tabular} version) is as -follows: - -\def\T#1{\makebox[0pt][l]{\hspace*{200pt}\% #1}} -\def\1{\T{begin shortquiz}} -\def\2{\T{begin proposed answers}} -\def\3{\T{a wrong answer}} -\def\4{\T{the right answer}} -\def\5{\T{end listing of answers}} -\def\6{\T{end shortquiz}} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -!1\begin{shortquiz}[!meta(base_name)] -...Question goes here... -!2\begin{answers}{!meta(num_cols)} -... -!3\Ans0 !anglemeta(an incorrect answer) & -... -!4\Ans1 !anglemeta(a correct answer) & -... -!5\end{answers} -!6\end{shortquiz} -\end{Verbatim} -The optional \meta{base\_name} is used to build names of the form fields associated with -this quiz; if one is not provided, a \meta{base\_name} is automatically created. The name -must be unique to the entire document. - -The parameter \meta{num\_cols} is the number of -columns you want to typeset for your multiple choice responses. The -environment sets up a \texttt{tabular} environment if -\meta{num\_cols} is greater than~1, and a \texttt{list} -environment if \texttt{num\_cols} is~1. - -This type of quiz is suitable for asking a short series of -question of the reader, perhaps after explaining some concept. -Quizzes can be used to direct the reader's attention to an -important point. - -\redpoint Here is an example of the \texttt{shortquiz} -environment. Responses are graded without comment using -JavaScript. - -\begin{shortquiz} -Which of the following is the $\dfrac{d}{dx}{\sin(x^3)}$? -\begin{answers}{4} -\Ans0 $\sin(3x^2)$ & \Ans0 $\cos(x^3)$ & \Ans1 $3x^2\cos(x^3)$ & -\Ans0 $3x^2\cos(3x^2)$ \\ -\end{answers} -\end{shortquiz} - -\noindent The verbatim listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{shortquiz} % begin shortquiz environment -Which of the following is the $\dfrac{d}{dx}{\sin(x^3)}$? -\begin{answers}{4} % 4 columns of answers - \Ans0 $\sin(3x^2)$ & % \Ans0 is a false answer - \Ans0 $\cos(x^3)$ & - \Ans1 $3x^2\cos(x^3)$ & % \Ans1 is the correct answer - \Ans0 $3x^2\cos(3x^2)$ -\end{answers} % end answers environment -\end{shortquiz} % end shortquiz environment -\end{Verbatim} -If \texttt{num\_cols} is greater than 1, the -\texttt{answers} sets up a \texttt{tabular} environment, -\texttt{p\darg{\meta{width}}} to sets up the column widths. The \cs{parbox}es are -typeset ragged right. - - -\redpoint Below is a two-column example in which the posed -alternatives are rather long. The \texttt{answers} environment -produces is a nicely aligned set of paragraphs. - -\goodbreak -\begin{shortquiz} -Which of the following best describes Augustin Cauchy? -\begin{answers}{2} -\Ans0 He developed the Calculus while his University was closed -for the plague. & % Newton -\Ans0 Given credit for first using the functional notation -$f(x)$.\\ % Euler -\Ans0 He created the ``bell-shaped curve'' and first used the -method of -least squares. & % Guass -\Ans1 He first formulated a precise -definition of the limit and continuity of a function. \\ % Cauchy -\Ans0 Gave a rigorous definition of the definite integral---an -integral -that now bears his name. & % Riemann -\Ans0 His notation for the derivative and the integral is used -even to this day. % Leibniz -\end{answers} -\end{shortquiz} - -\noindent Here is the same example in which the \texttt{num\_cols} is set -to~1; in this case, a \texttt{list} environment is used. - -\begin{shortquiz} -Which of the following best describes Augustin Cauchy? -\begin{answers}{1} -\Ans0 He developed the Calculus while his University was closed -for the plague. % Newton -\Ans0 Given credit for first using the functional notation -$f(x)$. % Euler -\Ans0 He created the ``bell-shaped curve'' and first used the -method of -least squares. % Guass -\Ans1 He first formulated a precise -definition of the limit and continuity of a function. % Cauchy -\Ans0 Gave a rigorous definition of the definite integral---an -integral -that now bears his name. % Riemann -\Ans0 His notation for the derivative and the integral is used -even to this day. % Leibniz -\end{answers} -\end{shortquiz} - -%\exPDF{webeqtst} See the sample file -%\texttt{\href{\bUrl/webeq_ex.html\#webeqtst} {webeqtst.tex}} for -%examples. - -\exAeBBlogPDF{p=803} See the file \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} from the {\AcroBlog} -website for examples. - - -\newtopic\indent The space between the label and the text of a multiple -choice question change be adjusted using two commands, -\Com{setMClabelsep} and \Com{resetMClabelsep}. The default -horizontal space between the label and text is a hard space `\verb!\ !'. -The first command takes as its argument -anything that creates a horizontal white space, for example, -\verb!\setMClabelsep{\quad}! or \verb!\setMClabelsep{\kern20pt}!. If -\cs{setMClabelsep} is set in a group, its value will revert to the -default on exit from the group. The second command -\cs{resetMClabelsep} resets the space back to its default `\verb!\ !'. - -The space above the beginning of the \texttt{answer} environment can be -adjusted using the length \Com{aboveanswersSkip}. The default value for -this is -\begin{Verbatim}[xleftmargin=\amtIndent] -\setlength\aboveanswersSkip{3pt} -\end{Verbatim} -and this can be reset to any desired vertical skip. - - -\subsubsection{\texttt{shortquiz} with Radio Buttons}\label{sqwRadio} - -The short quizzes (with multiple choices) can also be laid out using -radio buttons rather than typeset lettering. Use a -\texttt{shortquiz*} environment, with an optional argument the value -of which is a unique name (which will be used to construct the -titles of the radio buttons).\footnote{In previous versions of \textsf{exerquiz}, there was a -\texttt*-option that was use to signal the use of radio buttons. This option is still -available, but the shortquiz* environment is preferred.} If you do not provide an optional -argument name, one will programmatically be provided for you. - -\newtopic For example, the following code - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{shortquiz*}[KublaKhan1] -Was it in Xanadu did Kubla Kahn a stately pleasure dome decree? -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} -\end{shortquiz*} -\end{Verbatim} -\noindent yields the following question: - -\begin{shortquiz*}[KublaKhan2] -Was it in Xanadu did Kubla Kahn a stately pleasure dome decree? -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} -\end{shortquiz*} -\noindent Check the functionality of this question, and contrast it with -the same question. - -\sqTurnOffAlerts \sqCorrections - -\begin{shortquiz*}[KublaKhan3] -Was it in Xanadu did Kubla Kahn a stately pleasure dome decree? -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} -\end{shortquiz*} -\noindent We have inserted two new commands prior to this last -short quiz \cs{sqTurnOffAlerts} and \cs{sqCorrections} to change -response feedback. The former turns off the alerts and the latter -turns on the corrections: check for a correct answer and an cross -for an incorrect answer. (It doesn't make sense to -\cs{sqTurnOffAlerts} without \cs{sqCorrections}; -\cs{sqCorrections} can be used without turning off the alerts.) - -\redpoint These two commands only apply to a short quiz that uses radio buttons. -You can reverse these two commands with \cs{sqTurnOnAlerts} and -\cs{sqNoCorrections}, respectively. These settings are the -defaults of the \texttt{shortquiz} with check boxes. - -\subsubsection{\texttt{shortquiz} with Solutions}\label{ss:QuizS} - -Another type of quiz that is easy to implement in PDF is the -multiple choice quiz with immediate response with solution given. -This too is a \texttt{shortquiz} environment: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{shortquiz} -...Question goes here... -\begin{answers}!anglemeta(dest){!meta(num_cols)} -... -\Ans0 !anglemeta(an incorrect answer) & -... -\Ans1 !anglemeta(a correct answer) & -... -\end{answers} -\begin{solution} - !anglemeta(solution to correct answer) -\end{solution} -\end{shortquiz} -\end{Verbatim} - -\newtopic The \anglemeta{name} takes on two forms, in either case, it is used to create a hypertext jump to -the solution. The first form of \anglemeta{name} is an explicit named -definition `\texttt{[\meta{named\_dest}]}', where \meta{named\_dest} is a -word selected by the document author for a ``named destination.'' The other -form is the star-form `\texttt{*}', when the star-form is used, -\textsf{exerquiz} automatically generates the name. Use the -`[\meta{named\_dest}]' form when you want to refer to a solution in another -part of the document; otherwise, use `\texttt{*}' for convenience. - -\newtopic As before, \meta{num\_cols} is the number of columns to -typeset the answers in. - -\newtopic The following example illustrates the quiz with -solution. - -%\renewcommand\sqslrtnlabel{\string\raisebox{1pt}{$\blacktriangleleft$}Return to Quiz} - -\begin{shortquiz} -Define a function $f(s)=4s^3$ and another function -$F(t)=t^4$. Is $F$ an antiderivative of $f$? -\begin{answers}[quiz:anti]{4} -\Ans1 Yes &\Ans0 No -\end{answers} -\begin{solution} -The answer is `Yes'. The definition requires that -\[ - F'(x) = f(x) \quad\text{for all $x$,} -\] -well, let's check it out. - -The definition of $f$ is $f(s)=4s^3$ and so $f(x)=4x^3$. -The definition of $F$ is $F(t)=t^4$ and so, by the rules of -differentiation, $F'(t)=4t^3$. Thus, $F'(x)=4x^3$. Therefore, -\[ - F'(x) = 4x^3 = f(x)\quad\text{for all $x$,} -\] -as required by the definition. -\end{solution} -\end{shortquiz} - -\newtopic The verbatim listing that uses the explicit form of the destination, shown -in bold font. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{shortquiz} -Define a function $f(s)=4s^3$ and another -function $F(t)=t^4$. Is $F$ an antiderivative of $f$? -\begin{answers}!textbf([quiz:anti]){4} -\Ans1 Yes &\Ans0 No -\end{answers} -...solution not shown... -\end{solution} -\end{shortquiz} -\end{Verbatim} - -\newtopic Here is a listing of the same quiz using the \texttt{*} to -automatically assign a destination label. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{shortquiz} -Define a function $f(s)=4s^3$ and another -function $F(t)=t^4$. Is $F$ an antiderivative of $f$? -\begin{answers}!textbf(*){4} -\Ans1 Yes &\Ans0 No -\end{answers} -...solution not shown... -\end{solution} -\end{shortquiz} -\end{Verbatim} - - - -\subsubsection{The \texorpdfstring{\protect\cs{bChoices}/\-\protect\cs{eChoices}} - {\textbackslash bChoices/\textbackslash eChoices} Commands}\label{bChoices} - - -Beginning with \textsf{exerquiz} version~6.03, the command pair -\cs{bChoices} and \cs{eChoices} are defined to help lay out -the list of choices for a multiple choice question. This pair of -macros is not really an environment, the \cs{eChoices} really -does nothing other than to act as an ending marker. The idea -behind this pair of macros is twofold: -\begin{questions} - -\item To provide a convenient way of listing alternate choices for -a multiple choice questions, the ``environment'' makes it easy to -change the number of columns, or to change from tabular to list -(or visa-versa); - -\item To lay out the alternatives in a uniform manner, which will -make it easy to develop techniques of randomizing the -alternatives. - -\end{questions} -Here is an example of usage: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{answers}{4} %<- 4 columns -\bChoices[2] %<- use only first 2 columns - \Ans0 a choice\eAns %<- choices delimited by - \Ans1 another choice\eAns % \Ans...\eAns - \Ans0 still another choice\eAns - \Ans0 another\eAns - \Ans0 incoming\eAns - \Ans0 more choices\eAns - \Ans0 another still\eAns - \Ans0 too many\eAns - \Ans0 choices\eAns -\eChoices -\end{answers} -\end{Verbatim} -\noindent Note that the choices begin with the \cs{Ans} macro -followed by a 0 or 1, as described in the previous pages. The -end of the choice is delimited by the \cs{eAns} command (which is -undefined, but is used as a argument delimiter). Note that it is -not necessary (and would be a mistake) to place the column -delimiter~`\texttt\&', or the end of line -command~`\texttt{\string\\}', this is done by the \cs{bChoices} -command. - -The commands \cs{bChoices} and \cs{eChoices} can be used within -the \texttt{answers} environment as part of a \texttt{shortquiz} or a -\texttt{\hyperref[ss:GradedQuizzes]{quiz}} environment. - -Concerning the example above, the argument of the \texttt{answers} -environment is 4 which means we are going to use the tabular -environment with 4 columns. Now within those 4 columns we are -going to only use the first 2 columns (this is the optional -argument of \cs{bChoices}). If the optional argument is removed -from \cs{bChoices}, the choices are typeset in the with 4 -columns. - -If the argument of \texttt{answers} or \texttt{manswers} is changed to 1, the -optional argument of \cs{bChoices} is ignored, and the -alternatives are typeset in a one column list environment. - -By changing the two parameters (the one for \cs{answers} and the -one for \cs{bChoices}) you can easily modify how the -alternatives are typeset. - -\redpoint \cs{rowsep}: Space between rows (or items in list environment) -can be adjusted with the \cs{rowsep} command. If you -say \verb+\rowsep{3pt}+, an additional \texttt{3pt} space is added -between rows or items in a list environment. The default is \texttt{0pt}. The default is -controlled through the command \cs{rowsepDefault}, like so, -\begin{Verbatim}[xleftmargin=\amtIndent] -\rowsepDefault{0pt} -\end{Verbatim} -\noindent For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{answers}{4} -\rowsep{3pt} -\bChoices[2] - \Ans0 a choice\eAns - \Ans1 another choice\eAns - \Ans0 still another choice\eAns - \Ans0 another\eAns - \Ans0 incoming\eAns -\eChoices -\end{answers} -\end{Verbatim} -\noindent Do not place this command inside the -\cs{bChoices}/\cs{eChoices} pair, the above example shows -the optimal placement, just before \cs{bChoices}. This -separation {\cs{rowsep}} is reset to the default at the end of the -listing. To get a uniform separation between rows across the -document, redefine \cs{rowsepDefault} in the preamble, like so, -\begin{Verbatim}[xleftmargin=\amtIndent] -\rowsepDefault{3pt} -\end{Verbatim} - - -\redpoint No commands should appear \textit{between} the pair -\cs{bChoices} and \cs{eChoices} and \textit{outside} an -\cs{Ans} and \cs{eAns} pair. All such tokens are gobbled up. - -\newtopic\textcolor{red}{Limitations:} The command \cs{eAns} acts as -a macro parameter delimiter: Everything between \cs{Ans} and \cs{eAns} -is taken in as the argument of a macro; therefore, verbatim content -generated by \cs{verb} is not permitted by {\LaTeX}. If you want -your choices to contain verbatim text, use the style as described in -\Nameref{BasicUsage}. - -\subsubsection{The -\texorpdfstring{\protect\texttt{questions}}{questions} Environment} - -The \texttt{questions} environment was designed to work with the -\texttt{quiz} environment---taken up in -\hyperref[ss:GradedQuizzes]{Section~\ref*{ss:GradedQuizzes}} -below---but it works equally well with \texttt{shortquiz}. - -Using the \texttt{questions} environment, quizzes defined by -\texttt{shortquiz}, with/without solutions, can be -mixed together and combined to make a ``mini-quiz''. For example, - -\begin{shortquiz} Determine the LCD for each of the following. -\begin{questions} -\item $\dfrac{3x}{2y^2z^3}-\dfrac2{xy^3 z^2}$. -\begin{answers}{2} -\bChoices - \Ans0 $\text{LCD}=2xy^5z^5$\eAns - \Ans0 $\text{LCD}=2y^3 z^3$\eAns - \Ans1 $\text{LCD}=2x y^3 z^3$\eAns - \Ans0 $\text{LCD}=2 x y^3 z^5$\eAns -\eChoices -\end{answers} -\item $\dfrac{x+y}{3 x^{3/2}y^2}-\dfrac{x^2+y^2}{6 x y^4}$. -\begin{answers}[quiz:LCB]{2} -\bChoices - \Ans0 $\text{LCD}=18 x^{3/2}y^4$\eAns - \Ans1 $\text{LCD}=6x^{3/2}y^4$\eAns - \Ans0 $\text{LCD}=18 x y^4$\eAns - \Ans0 $\text{LCD}=6 x y^4$\eAns -\eChoices -\end{answers} -\begin{solution} -If you erred on this one, more than likely it was on the -appropriate multiplicative constant: 6 not 18. At least -that's what I'm betting on. - -The instructions of the LCD Algorithm said to \textit{completely -factor the denominator}. Here's a list of the factors -\[\def\us#1#2{\underbrace{#2}_{\text{#1 term}}} - \us{first}{3, x^{3/2}, y^2}\,,\,\us{second}{2, 3, x, y^4} -\] -Let's rearrange them -\[ - 2, 3, 3, x, x^{3/2}, y^2, y^4 -\] -Now drop duplicate factors---that's the 3. Oops! I did mention -dropping identical factors, didn't I? -\[ - 2, 3, x, x^{3/2}, y^2, y^4 -\] -Now, group together all terms which have the same base, then drop, -from each of these groups all terms but the one with the highest -power. We obtain then, -\[ - 2, 3, x^{3/2}, y^4 -\] -The LCD is the product of same: -\[ - \text{LCD}=(2)(3) x^{3/2} y^4 = 6 x^{3/2} y^4. -\] -{\it Solution Notes\/}: Alternative (a) will work as a common -denominator, but it is not the least common denominator. If you -use (a), you will be working with larger numbers than is really -necessary. -\end{solution} -\end{questions} -\end{shortquiz} - -\noindent The first question is given without a solution, the second has a -solution attached to it. An abbreviated verbatim listing follows. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{shortquiz} -Determine the LCD for each of the following. -\begin{questions} -\item $\dfrac{3x}{2y^2z^3}-\dfrac2{xy^3 z^2}$. -\begin{answers}{2} -... -\end{answers} -\item $\dfrac{x+y}{3 x^{3/2}y^2} - -\dfrac{x^2+y^2}{6 x y^4}$. -\begin{answers}[quiz:LCB]{2} -... -\end{answers} -\begin{solution} -If you erred on this one, ... ... -\end{solution} -\end{questions} -\end{shortquiz} -\end{Verbatim} - -\Important The questions environment can be nested three deep. - -\newtopic Between items, you can say \Com{pushquestions}, make a comment, to continue -with more questions, type \Com{popquestions}. Here is an example without using \texttt{shortquiz} environment. - -\begin{questions} - \item This is my first question. - \item This is my second question. -\pushquestions -We now begin a multipart question. -\popquestions - \item Answer each of the following: - \begin{questions} - \item First part of the question. -\pushquestions -Be sure to concentrate on this next question, its a hard one; recall that $1+1=2$. -\popquestions - \item Second part of the question. - \begin{questions} - \item This is a subpart of this part. -\pushquestions -The questions environment can be nested up to three deep. -\popquestions - \item This is a second subpart of this part. - \end{questions} - \end{questions} - \item This is the fourth question. -\end{questions} -The color of the item labels is set by the command \cs{quesNumColor}. The command take one -argument, a named color. The default is \verb!\quesNumColor{blue}!. - - -\newtopic A partial listing of the above environment is presented below. -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{questions} - \item This is my first question. - \item This is my second question. -\pushquestions -We now begin a multipart question. -\popquestions - \item Answer each of the following: -... -\end{questions} -\end{Verbatim} - -\subsection{Options of the \texttt{shortquiz} Environment}\label{sq:opts} - -\subsubsection{The -\texorpdfstring{\protect\texttt{forpaper}}{forpaper} Option} - -The \texttt{forpaper} option has already been described. The -solutions to \texttt{short\-quiz} questions are not typeset on -separate pages, but are separated by a \cs{medskip}. - -Following up on the pre-test angle discussed in -``\mlnameref{sss:redefinesq}'', page~\pageref*{sss:redefinesq}, a single -document can be constructed that can be published on-line, or -published for paper distribution. This feature may be useful to -some educators. - - - -\subsubsection{The \texttt{solutionsafter} Option} - -The \texttt{solutionsafter} option works as described for the -\texttt{exercise} environment. The option just sets a Boolean -switch. This switch can be controlled with -\cs{Solutions\-After} and \cs{SolutionsAtEnd}. Here is a simple -example. - -\SolutionsAfter -\begin{shortquiz} -In what year did Columbus sail the ocean blue? -\begin{answers}[qz:columbus2]{4} -\Ans0 1490 &\Ans0 1491 &\Ans1 1492 &\Ans0 1493 -\end{answers} -\begin{solution} -Columbus sailed the ocean blue in 1492. Some say he discovered -San Salvatore, others say he first sited Cat Island in the -Bahamas. -\end{solution} -\end{shortquiz} -\SolutionsAtEnd -In the example above, \cs{SolutionsAfter} was placed before the \texttt{shortquiz} environment and -the \cs{SolutionsAtEnd} was placed just after. - -This option may be useful in publishing an answer key to a multiple -choice quiz. The quiz and solutions can be created together. The -quiz can be published, then later, the quiz with complete -solutions. - - -\subsubsection{The \texorpdfstring{\texttt{proof\-ing}}{proofing} -Option}\label{sss:proofing} - -For proofreading, use the \texttt{proofing} option of -\textsf{exerquiz}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[proofing]{exerquiz} -\end{Verbatim} - -\noindent When used, a symbol, defined by the command \cs{proofingsymbol}, -will mark the correct answers, as defined in your source file. The -command \cs{proofingsymbol} may be redefined, its definition is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\proofingsymbol{\textcolor{webgreen}{$\bullet$}} -\end{Verbatim} -\noindent -This option works for the -\texttt{\hyperref[ss:GradedQuizzes]{quiz}} environment defined -below -(\hyperref[ss:GradedQuizzes]{page~\pageref*{ss:GradedQuizzes}}), -as well. - -\subsubsection{The \texttt{showgrayletters} Option}\label{showgraylettersOpt} \aebCng[showgrayletters] - -When \texttt{showgrayletters} is used, the form field check boxes -that appear in a \texttt{quiz} or in a \texttt{shortquiz} will have a gray capital letter -\texttt{A}, \texttt{B}, \texttt{C}, etc. underneath it. This letter -can then be referred to in the text or the solution. - -This option is global and is controlled by a switch, \cs{ifaebshowgrayletters}. The gray letter feature can be turned on -and off locally: To turn on this feature, insert the command \Com{graylettersOn} at some appropriately chosen point in -the document; to turn off the gray letter feature insert \Com{graylettersOff}. - -\newtopic In support of the \texttt{showgrayletters} option is a new command \Com{REF}. -\cs{REF} acts like the {\LaTeX} command \cs{ref} with the hyperref modifications, but it converts -the reference to uppercase. When \cs{ref} would typeset the letter `a', for example, \cs{REF} -would typeset the letter `A'. \cs{REF}, like \cs{ref}, typesets a hyperref link. Hyperref defines a -\texttt{*} version of \cs{ref}; \cs{ref*} typesets the reference, but does not create a link; -\cs{REF*} does the same. When \cs{aebshowgraylettersfalse} is in effect, \cs{REF} does not capitalize -the reference. - -The \texttt{showgrayletters} feature and the \cs{REF} command work equally -well for the \texttt{quiz} environment. - -\redpoint Below is an example of this. - -\graylettersOn - -\begin{shortquiz*}[TestSQ] -Answer this if you can! -\begin{answers}{2} -\bChoices - \Ans0\label{testsqFirst} This is a possible answer.\eAns - - \Ans1\label{testsqSecond} Try this one (the correct one)\eAns - - \Ans0 This is an answer.\eAns - - \Ans0 Another alternative.\eAns -\eChoices -\end{answers} -\end{shortquiz*} - -\noindent Reference both (\REF{testsqFirst}) and (\REF*{testsqSecond}). - -\graylettersOff - -\newtopic The code is -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\graylettersOn -\begin{shortquiz*}[TestSQ] -Answer this if you can! -\begin{answers}{2} -\bChoices - \Ans0\label{testsqFirst} This is a possible answer.\eAns - \Ans1\label{testsqSecond} Try this one (the correct one).\eAns - \Ans0 This is an answer.\eAns - \Ans0 Another alternative.\eAns -\eChoices -\end{answers} -\end{shortquiz*} -\noindent Reference both (\REF{testsqFirst}) and (\REF*{testsqSecond}). -\graylettersOff -\end{Verbatim} -\newtopic Notice that the gray letters was not turned to off -until after the usage of \cs{REF}. - -\textcolor{red}{\Important} The gray letters are typeset into the document. Do not -use a background color for the checkboxes as this color will cover -up the gray letters. The default background color checkboxes is -transparent, keep it that way. - -\newtopic The command \Com{insertGrayLetters} is used to insert the gray letters; -this command can be redefined as desired. See the source file \texttt{exerquiz.dtx}. -Also see the definition of \Com{bottomOfAnsfStack}. - -\subsubsection{Moving the Solution Set} - -The solution set, by default, comes last in the file. You can move -its positioning by including the command \cs{includequizsolutions} -at any point \emph{after} the last quiz (created by the \texttt{shortquiz} and \texttt{quiz} environments). You'll note -that I -have moved the solutions in this file before the -\nameref{references} section, as indicated, for example, by its -position in the table of contents. - -\subsubsection{Grouping the solutions at end}\label{ss:grpQzs} - -Historically, solutions to quizzes (created by the \env{shortquiz} and -\env{quiz} environments) appearing at the end of the file \emph{are not -grouped}. This means that a color change or a definition made in one solution -may affect all subsequent solutions. - -You can now declare \cs{makeQzSolnsLocalOn} or \cs{makeQzSolnsLocalOff} -anywhere in the document to turn on grouping for all quizzes that follow, or -to turn off this feature again. The default is \cs{makeQzSolnsLocalOff}. - -\subsection{Redesigning the -\texorpdfstring{\protect\texttt{shortquiz}}{shortquiz} -Environment}\label{sss:redefinesq} - -The \texttt{shortquiz} environment can be redesigned to better suit -your needs. In the paragraphs below, we describe how you can change -titles and form elements. - - -\subsubsection{Changing Titles} - -You can temporarily change the title for the \texttt{shortquiz} -environment by redefining the macro \cs{sqlabel}; for example, the -default definition of this macro is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\sqlabel{\textcolor{red}{Quiz.}} -\end{Verbatim} -\noindent The syntax for redefining \cs{sqlabel} is -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\sqlabel{...new code goes here...} -\end{Verbatim} -\noindent You can redefine the \textit{default} label as well; the -default label is the title label that \texttt{short\-quiz} uses when -\cs{sqlabel} is \textit{not present}. The default label is -\verb+\eq@sqlabel+ and must be redefined using the macro -\cs{renewcommand}. The best place for this to be done is the -preamble. The syntax: -\begin{Verbatim}[xleftmargin=\amtIndent] -\makeatletter % make `at'=@ a normal letter -\renewcommand\eq@sqlabel{...new code goes here...} -\makeatother % make `at'=@ something special(other) -\end{Verbatim} -\noindent To change the entire document to use `Exam' instead of `Quiz', -make the following changes in the preamble: -\begin{Verbatim}[xleftmargin=\amtIndent] -\makeatletter -% change default quiz title to 'Exam' -\renewcommand\eq@sqlabel{\textcolor{red}{Exam.}} -% change quiz solutions return label -\renewcommand\eq@sqslrtnlabel{End Soln} -% change solutions label -\renewcommand\eq@sqsllabel{% - \string\textbf{Solution to Exam:}} -\renewcommand\eq@sqslsectitle{Solutions to Exams} -% change default running header for solutions -\renewcommand\eq@sqslsecrunhead{Solutions to Exams} -\makeatother -\end{Verbatim} - -% ?? Did not document \sqsolafter - -\redpoint The above commands are `global'---they are in effect -throughout the entire document. You can temporarily change these -labels using the \cs{sqlabel}, \cs{sqslrtnlabel}, \cs{sqsllabel} and -\cs{sqslsectitle}. Note that you cannot temporarily change the running label -\cs{eq@qslsecrunhead}, this should be set in the -preamble. - -Should you want to make a series of multiple choice questions -(using the \texttt{questions} environment) and combine them into a -sort of review or pretest, a useful idea would be to number the -solutions. The counter that maintains the question number is -called \texttt{questionno}. You can then, for example, define -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\eq@sqsllabel{% - \string\textbf{Solution to Question \thequestionno:}} -\end{Verbatim} - -%\exPDF{webeqtst} See the sample file -%\texttt{\href{\bUrl/webeq_ex.html\#webeqtst}{webeqtst.tex}} -%for examples. - -\exAeBBlogPDF{p=803} See the file \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} from the {\AcroBlog} -website for examples. - - -\subsubsection{Modifying Form Elements}\label{sqMFE1} - -For quizzes that use radio buttons (see page~\pageref{sqwRadio} -above), the appearance of the radio buttons can be controlled -using the ``every'' mechanism as described in the document -\href{eformman.pdf}{eFormMan.pdf} on -\textit{\href{eformman.pdf}{eForm Support}} for the \cAcroB. -The radio buttons can be modified using the command \cs{everysqRadioButton}. - -Prior to the short quiz below, the following command was executed - -\begin{Verbatim}[xleftmargin=\amtIndent] -\everysqRadioButton{\BC{.690 .769 .871}\BG{.941 1 .941}} -\end{Verbatim} - -\sqTurnOffAlerts \sqCorrections -\everysqRadioButton{\BC{.690 .769 .871}\BG{.941 1 .941}} - -\begin{shortquiz*}[KublaKhan3] -Was it in Xanadu did Kubla Kahn a stately pleasure dome decree? -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} -\end{shortquiz*} - -\everysqRadioButton{} -\sqTurnOnAlerts\sqNoCorrections - -\noindent Return to the defaults, if desired, by then emitting -\begin{Verbatim}[xleftmargin=\amtIndent] -\everysqRadioButton{} -\end{Verbatim} - -\redpoint The short quiz can also have fill-in questions and -various other controls, these are described in -Section~\ref{s:oQsq}, \nameref{s:oQsq}. There too, methods of -modifying the appearance of the form elements are discussed. - -\subsection{\texorpdfstring{\protect\cs{titleQuiz}}{\CMD{titleQuiz}} - and \texorpdfstring{\protect\cs{fancyQuizHeaders}}{\CMD{fancyQuizHeaders}}}\label{titleQuizSQ} - -%\exPDF{title_quiz}The demo file for these features is \texttt{title\_quiz.tex}. - -\exAeBBlogPDF{p=908} See the file \texttt{\href{\urlAcroTeXBlog/?p=908}{title\_quiz.pdf}} from the {\AcroBlog} -website for examples. - - - -\subsubsection{\texorpdfstring{\protect\cs{titleQuiz}}{\CMD{titleQuiz}}} - -To assign a title to your short quiz use \Com{titleQuiz}. This title -appears just after the typeset word ``Quiz''. - -\fancyQuizHeaders -\titleQuiz{Two Question MC} -\begin{shortquiz}\label{myCoolSQ} -Answer each of these to the best of your ability. -\begin{questions} -\item Math is fun. -\begin{answers}*{4} -\Ans1 True & \Ans0 False\\ -\end{answers} -\begin{solution} - The answer is true, of course, math is fun! -\end{solution} - -\item Statistics is fun. -\begin{answers}*{4} -\Ans0 True & \Ans1 False\\ -\end{answers} -\begin{solution} - The answer is false, statistics is interesting but not fun. -\end{solution} -\end{questions} -\end{shortquiz} - -\noindent The partial verbatim code for the above quiz follows: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\titleQuiz{Two Question MC} -\begin{shortquiz}\label{myCoolSQ} -Answer each of these to the best of your ability. -\begin{questions} -... -\end{questions} -\end{shortquiz} -\end{Verbatim} - -\restoreDefaultQuizHeaders - -\noindent The format of the title is controlled by the command \Com{titleQuizfmt}, -the default definition is \verb!\newcommand\titleQuizfmt{\bfseries}!. The value -of the \cs{titleQuiz} command can act as an argument for \cs{titleQuizfmt} if you redefine -\cs{titleQuizfmt} to have an argument. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\titleQuizfmt[1]{\bfseries(#1)} -\end{Verbatim} -Now, the title will appear in a set of parentheses. The title and formatting are enclosed -in a \cs{mbox}, so font and style changes are localized to that \cs{mbox}. - -\newtopic If a quiz does not have a title, as defined by \cs{titleQuiz}, the title defaults to -an empty title. - -\newtopic The definition of \cs{titleQuiz} is such that the command \cs{makeatletter} is executed -before the argument for \cs{titleQuiz} is read. This means that the special character -`\texttt{@}' can be used within the argument of \cs{titleQuiz}. For example, the \texttt{shortquiz} -environment maintains a text macro \cs{@shortquizCnt} which contains the current short quiz -count number. Thus you can say \verb!\titleQuiz{Short Quiz \@shortquizCnt}!, the title of -the short quiz will include a short quiz number as well. - -The \cs{titleQuiz} is used for quizzes as well as with short quizzes. It is possible to have -different formatting for each of these two environments by using the \Com{ifQuizType} -command. The command takes two arguments: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\ifQuizType{!anglemeta(quiz_code)}{!anglemeta(shortquiz_code)} -\end{Verbatim} -For example, we could define \cs{titleQuizfmt} as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\titleQuizfmt{\ifQuizType{\bfseries}{\slshape}} -\end{Verbatim} -or with an argument, as mentioned above, you could define \cs{titleQuizfmt} with an argument, -like so, -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\titleQuizfmt}[1]{% - \ifQuizType{\bfseries(#1)}{\slshape[#1]}} -\end{Verbatim} - -\subsubsection{\texorpdfstring{\protect\cs{titleQuiz*}}{\CMD{titleQuiz*}}} - -For \texttt{shortquiz} environment---not for the \texttt{quiz} -environment---there is a `\texttt*' optional first parameter. When -the `\texttt*' option is taken, the quiz label (\cs{sqlabel}) is -redefined to be the title of the quiz text. - -%\exPDF{title_quiz} The \texttt{title\_quiz.tex} demo file illustrates the `\texttt{*}' option. - -\exAeBBlogPDF{p=908} See -\texttt{\href{\urlAcroTeXBlog/?p=908}{title\_quiz.pdf}} demo file illustrates -the `\texttt{*}' option. - - -\newtopic Thus, if we title a quiz with the `\texttt{*}', we get - -\titleQuiz*{My Cool Quiz} -\begin{shortquiz} -Answer each of these to the best of your ability. -\begin{questions} -\item Math is fun. -\begin{answers}{4} -\Ans1 True & \Ans0 False\\ -\end{answers} -\item Statistics is fun. -\begin{answers}{4} -\Ans0 True & \Ans1 False\\ -\end{answers} -\end{questions} -\end{shortquiz} -The formatting is that defined by the \cs{titleQuizfmt}, which is \cs{bfseries}. In addition -to the \Com{ifQuizType} command, there is also the \cs{ifstaroption} command. It takes two -parameters -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\ifstaroption{!ameta(code if \titleQuiz*)}{!ameta(otherwise)} -\end{Verbatim} -This allows us to not only format for quizzes, but for short quizzes, with or without -the `\texttt*' option. If we redefine \cs{titleQuizfmt} to be -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\titleQuizfmt}{\ifQuizType{\bfseries}% - {\ifstaroption{\color{red}}{\bfseries}}} -\end{Verbatim} -we format the quiz title as \cs{bfseries} is either a quiz or a -short quiz without `\texttt*' option, and as \verb!\color{red}! with -a short quiz with the `\texttt*' option. The results are seen in the next quiz, -with this redefinition: - -\renewcommand{\titleQuizfmt}{\ifQuizType{\bfseries}% - {\ifstaroption{\color{red}}{\bfseries}}} - -\titleQuiz*{My Swave Quiz} -\begin{shortquiz} -Answer each of these to the best of your ability. -\begin{questions} -\item Math is fun. -\begin{answers}{4} -\Ans1 True & \Ans0 False\\ -\end{answers} -\item Statistics is fun. -\begin{answers}{4} -\Ans0 True & \Ans1 False\\ -\end{answers} -\end{questions} -\end{shortquiz} - -\subsubsection{Cross-Referencing} - -Quizzes and shortquizzes conform to the cross-referencing system of -{\LaTeX}. For example, we used the label \verb!\label{myCoolSQ}! in the -last quiz, the one on page~\pageref{myCoolSQ}. The title of the quiz is -\nameref{myCoolSQ}. The code for the past two sentences is -\begin{Verbatim}[xleftmargin=\amtIndent] -For example, we used the label \verb!\label{myCoolSQ}! in the -last quiz, the one on page~\pageref{myCoolSQ}. The title of -the quiz is \nameref{myCoolSQ}. -\end{Verbatim} -%\noindent If the shortquiz does not have a title, as defined by the \cs{titleQuiz} command, a generic label of -%`Quiz' is generated. The default label name is -%\begin{Verbatim}[xleftmargin=\amtIndent] -% \newcommand\eq@defaultShortQuizLableName{Quiz} -%\end{Verbatim} -%\noindent This definition can be change using \cs{renewcommand}. - - -\subsubsection{\texorpdfstring{\protect\cs{fancyQuizHeaders}}{\CMD{fancyQuizHeaders}}} - -The \Com{fancyQuizHeaders} command, a companion feature to \Com{titleQuiz}, enhances -the labeling of the quiz in the solutions section of the document. If -\cs{fancyQuizHeaders} is executed in the preamble, or prior to a quiz, the solution header has the -following default format: - -\newtopic{\color{blue}Two Question MC: Question 1.} The answer is true, of course, math is fun! - -\newtopic The above assumes the title of the quiz is the one given in the previous section. - -\newtopic When a quiz has no title, the header reverts to -\textcolor{blue}{Solution to Quiz:} followed by the question number. - -\redpoint You can turn off fancy quiz headers by using -\Com{restoreDefaultQuizHeaders}. - -\newtopic You can modify the fancy headers with a combination of setting \Com{setsolnspace} -and/or redefining the command \Com{eq@fancyQuizHeadersfmt}. First -\cs{setsolnspace}: This is a hook into the space immediately -following the header. To insert a \cs{medskip} after the header, for example, you -can say \verb!\setsolnspace{\par\medskip\noindent}! a -\cs{medskip} is created after the solution header and the solution -above appears as - -\newtopic{\color{blue}Two Question MC: Question 1.}\par\medskip\noindent The answer is true, of course, math is fun! - -\newtopic The definition of \cs{eq@fancyQuizHeadersfmt} is -\begin{Verbatim}[xleftmargin=\amtIndent] -\def\eq@fancyShrtQuizHeadersfmt{\eq@fancyQuizHeadersfmt} -\end{Verbatim} -The \Com{eq@fancyQuizHeadersfmt} is the \texttt{quiz} counterpart to -this \texttt{shortquiz} construct. The fancy short quiz solutions header -defaults to the same header used for a quiz. You can copy -and paste the definition of \cs{eq@fancyQuizHeadersfmt} into the definition -of the command \cs{eq@fancyShrtQuizHeadersfmt}, then modify as described in -\Nameref{fancyQuizHeadersQ}. - -%See the section \Nameref{fancyQuizHeadersQ} for a full discussion of this topic. - -% \subsection{Graded Quizzes using JavaScript} -\section{The \texttt{quiz} Environment}\label{ss:GradedQuizzes} - -Use the \texttt{quiz} environment to create graded quizzes. In -this case, several (many) questions are bundled together. The -student takes the quiz and responses are recorded by -JavaScript. Upon completion of the quiz, the total score is -reported to the student. - -The \texttt{quiz} environment can generate multiple choice -questions and math/text fill-in questions. The discussion of math -and text fill-in questions is postponed to \hyperref[s:oQ] -{Section~\ref*{s:oQ}} on page~\pageref*{s:oQ} - - -There are two types of quizzes, the -\hyperref[sss:QuizwLinks]{link-style} and -\hyperref[sss:QuizwChecks]{form-style}. -In \hyperref[ss:correct]{Section~\ref*{ss:correct}}, we see that -the \texttt{quiz} environment can also correct the quizzes. - -The quiz environment takes one required parameter, the -\meta{base\_name}, which is a string. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{quiz}{!meta(base_name)} -... -\end{quiz} -\end{Verbatim} -\textcolor{red}{\Important} The \pkg{exerquiz} package uses the -\meta{base\_name} to build Acrobat form fields, and also JavaScript -variables; therefore, there are restrictions on the choice of the -name. The name must be a (JavaScript) \emph{identifier}, the rules to -be an identifier are these. -\begin{quote} -The first character shall be a letter, an underscore (\texttt{\_}), -or a dollar sign (\texttt{\$}); subsequent characters may be any -letter or digit, or an underscore or a dollar sign. -\end{quote} -Do not use other symbols, like a colon (\texttt{\:}) or a period as part of the field name, -these will confuse the JavaScript interpreter, and may cause the quiz not to function as -designed. - - -The \texttt{quiz} environment consists of a series of nested -environments. Inside the \texttt{quiz} environment is the -\texttt{questions} environment (an enumerated list), and within -that environment is the \texttt{answers} environment. -Symbolically, we can express this as -\[ - \mbox{\texttt{quiz}} \supseteq - \mbox{\texttt{questions}} \supseteq - \mbox{\texttt{answers}} -\] -The term `answers' is, perhaps, not sufficiently descriptive; -`alternatives' would be more appropriate, but it requires more -typing. \verb!{:-{)! - -\redpoint The \texttt{answers} environment requires one parameter, -the \texttt{num\_cols}. If \texttt{num\_cols} is~1, a -\texttt{list} environment is created; otherwise, a -\texttt{tabular} environment is used. - -This (\texttt{tabular}) environment has the following syntax: - -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{quiz}{!meta(base_name)} -The preamble to the questions goes here. -\begin{questions} -\item State first question.... -\begin{answers}{4} % <- num_cols = 4 -\Ans0 ... &\Ans1 ... &\Ans0 ... &\Ans0 ... -\end{answers} -... -\item n th question.... -\begin{answers}{4} % <- 4 column format -\Ans0 ... &\Ans1 ... &\Ans0 ... &\Ans0 ... -\end{answers} -\end{questions} -\end{quiz} -\end{Verbatim} - -\redpoint Following the quiz, or anywhere in the document, place -the macro \cs{ScoreField}, defined in \textsf{exerquiz}, to -display the results of the quiz: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\ScoreField{!meta(base_name)} -\end{Verbatim} -\noindent\textcolor{red}{\bfseries Important.} The value of the parameter of -the macro \cs{ScoreField} must match the \meta{base\_name} -defined in the argument of the \texttt{quiz} environment. - -\redpoint There is a convenience macro, \cs{currQuiz}, that holds the name -of the current quiz. Thus, we could have instead typed: -\begin{Verbatim}[xleftmargin=\amtIndent] -\ScoreField\currQuiz -\end{Verbatim} - -\noindent Read the paragraph entitled \Nameref{sss:scorefield} for more -details on this macro. - -%An alternative to \cs{ScoreField} is to use \cs{TextField}. -%a macro defined by \pkg{hyperref}. See more details later. %?? - -\begin{comment} -The \textsf{exerquiz} macro \cs{eqScore} is a text macro that -expands to the phrase `Score:'. (It expands to `Punkte:' with the -\texttt{german} language option and `Score :' with the -\texttt{french}.) - - -The \cs{TextField} macro takes two arguments, we need only the -first---the second is left empty. This \cs{TextField} can be -modified by changing the options; the layout of the field can be -changed as well using the \cs{LayoutTextField}. For more -information see the paragraphs on \nameref{ss:modoutputfield} -beginning on page~\pageref{ss:modoutputfield}. There are -extensive examples on how to set up the \cs{TextField} in the -paragraph \nameref{sss:modtextfield} on -page~\pageref{sss:modtextfield}, with examples following on -page~\pageref{sss:exampltextfield}. -\end{comment} - -\subsection{Options of the \texttt{quiz} Environment} - -In addition to the options listed in the section \ref{sq:opts}, page \pageref*{sq:opts}, the following is -designed for quizzes. - -\subsubsection{The option -\texorpdfstring{\protect\texttt{noquiz\-solutions}}{noquizsolutions}}\label{sss:noquizsolutions} - -For online quizzing, where results are stored in some way (database, -e-mail, text file) the presence of the solutions in the same file as the -questions is a breach in security of the quiz. Using the -\texttt{noquizsolutions} removes the solutions to a \texttt{quiz} and -\texttt{shortquiz} from the document under construction. - - -\subsection{The \texttt{answers} Environment}\label{answersQuiz} - -The simplest type of question that can be posed is the multiple choice question. -For this question type, the \texttt{answers} environment is used. The basic syntax -is - -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\item A question -\begin{answers}!anglemeta(dest){!meta(num_cols)} -\Ans[!meta(partial_pts)]{0|1}.... -\end{answers} -\end{Verbatim} - -\newtopic The \anglemeta{dest}, an optional argument, is a name used to create a hypertext jump to -the solution; it has two forms: \texttt{[\meta{named\_dest}]}, an explicit -``named destination.''; and the \texttt{*}-form, \textsf{exerquiz} automatically -generates the name. Use \meta{named\_dest} when you want to refer to a solution -in another part of the document; otherwise, use \texttt{*}, for convenience. - -If either the \texttt{[\meta{named\_dest}]} or \texttt{*} is used, a -\texttt{solution} environment should follow. - -\newtopic The \meta{num\_cols} is the number of columns to -typeset the answers in. When \meta{num\_cols} is 1, the answers are set -in a list environment; otherwise, a tabular environment is used. In the latter case, -the usual table syntax is used. (Use \texttt{\&} to separate columns, and \verb!\\! to -terminate a row.) - -\newtopic The \cs{Ans} command has one required argument, a 1 to mark that this -answer is a correct answer, and a 0 to mark that this answer is not true. \cs{Ans} -also has an optional argument to pass partial points rewarded for a wrong answer. - -\newtopic This environment is illustrated extensively in this section. See also the -\texttt{manswers} environment, \Nameref{manswersQuiz}, for posting questions with multiple -correct answers. - -\subsection{Basic Usage} - -In this section we discuss the two \texttt{quiz} styles: -\nameref{sss:QuizwLinks} and \nameref{sss:QuizwChecks}. - -A paragraph is devoted to some modifications that can be made at -the beginning and end of the quiz. In addition, a -\texttt{\hyperref[sss:proofing]{proofing}} option is also -described. - -\subsubsection{Link-Style Quiz}\label{sss:QuizwLinks} - -%\renewcommand\bqlabel{Begin Exam} -%\renewcommand\eqlabel{End Exam} - -%There are actually two variations on this type of quiz, one uses -%links, the other uses radio button fields. - -This style uses links to record the choices to the alternatives. -The link method takes up less space in the pdf file than does the -form-style. - -Below is an example of a link-style quiz. Instructions should be -given to guide the student in operating the quiz correctly. - -\medskip\noindent\textcolor{red}{Instructions.} You must click on -`Begin Quiz' to initialize the quiz. Not doing so brings forth -an error message. When finished, click on `End Quiz'. - -\begin{quiz}{qzdiscrl} -Using the discriminant, $b^2-4ac$, respond to each of the -following questions. -\begin{questions} -\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? -\begin{answers}{4} -\Ans0 Yes &\Ans1 No -\end{answers} -\item Is the quadratic polynomial $2x^2 - 4x + 3 $ irreducible? -\begin{answers}{4} -\Ans1 Yes &\Ans0 No -\end{answers} -\item How many solutions does the equation $2x^2 - 3x - 2= 0$ have? -\begin{answers}{4} -\Ans0 none &\Ans0 one &\Ans1 two -\end{answers} -\end{questions} -\end{quiz}\par -\ScoreField\currQuiz -%\TextField[name=qz:discr,width=3in,default=\eqScore]{} - -\redpoint While you are taking the test, and before you click on -`End Quiz', you can change your answers. - -%A message box comes out, -%gives you your original choice, and asks you whether you really -%want to change your answer. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz}{qzdiscrl} % qzdiscrl=base_name -Using the discriminant, $b^2-4ac$, respond to each of the -following questions. -\begin{questions} -\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? -\begin{answers}{4} -\Ans0 Yes &\Ans1 No -\end{answers} -\item Is the quadratic polynomial $2x^2-4x+3$ irreducible? -\begin{answers}{4} -\Ans1 Yes &\Ans0 No -\end{answers} -\item How many solutions does the equation $2x^2-3x-2=0$ have? -\begin{answers}{4} -\Ans0 none &\Ans0 one &\Ans1 two -\end{answers} -\end{questions} -\end{quiz}\par -\ScoreField\currQuiz % matching quiz field name -\end{Verbatim} - -\redpoint The convenience text macro, \cs{currQuiz}, contains the name -of the current quiz. This macro can be used as the argument of -\cs{ScoreField}. - -\subsubsection{Form-Style Quiz}\label{sss:QuizwChecks} - -You may be thinking that such a quiz format---one in which the -student cannot see the choices made---is not very good. It is -perhaps adequate for two or three quick questions. For a longer -quiz format, one would like to see a ``checkbox'' format. -A quiz with a checkbox format can be obtained using the -\texttt{quiz*} environment:\footnote{In previous versions of \textsf{exerquiz}, there was a \texttt*-option -for this purpose. The \texttt{quiz*} has replaced the \texttt*-option and is the preferred method, though -the \texttt*-option is still defined so as not to break previous code.} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{quiz*}{!meta(base_name)} -... -...same format as before... -... -\end{quiz*} -\end{Verbatim} - -\noindent Here is the same sample quiz with the form-style option. The only -change in the code is the insertion of the \texttt*-option. - -\medskip\noindent\textcolor{red}{Instructions.} You must click on -`Begin Quiz' to initialize the quiz. Not doing so, brings forth -an error message. When finished, click on `End Quiz'. - - -\begin{quiz*}{qzdiscrf} -Using the discriminant, $b^2-4ac$, respond to each of the -following questions. -\begin{questions} -\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? -\begin{answers}4 -\Ans0 Yes &\Ans1 No -\end{answers} -\item Is the quadratic polynomial $2x^2 - 4x + 3 $ irreducible? -\begin{answers}4 -\Ans1 Yes &\Ans0 No -\end{answers} -\item How many solutions does the equation $2x^2 - 3x - 2= 0$ have? -\begin{answers}4 -\Ans0 none &\Ans0 one &\Ans1 two -\end{answers} -\end{questions} -\end{quiz*} - -\ScoreField{qzdiscrf} - -\redpoint Before completing the quiz, a student can easily change -alternatives. - -\redpoint This type is more suitable for longer quizzes. The -choices the student makes are visually recorded for the student to -review and change before clicking on `End Quiz'. A partial -verbatim listing: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz*}{qzdiscrf} -Using the discriminant, $b^2-4ac$, respond to each of the -following questions. -\begin{questions} -............. -............. -\end{questions} -\end{quiz*}\par -\ScoreField{qzdiscrf} -\end{Verbatim} - -%\exPDF{webeqtst} See the sample file -%\texttt{\href{\bUrl/webeq_ex.html\#webeqtst} {webeqtst.tex}} -%and for examples. - -\exAeBBlogPDF{p=803} See the file \texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}} from the {\AcroBlog} -website for examples. - - -\subsubsection{Using Circular Radio Buttons with MC Questions} - -As seen with the examples of the previous section, the form-type quizzes -have a rectangular check box for the user to make his selection. Acrobat also -offers a circular radio button that can be used to make a multiple choice. - -To create circular radio buttons for a MC question execute \Com{useMCCircles} before -the quiz, or, perhaps, in the preamble of your document. - -To return to the default rectangular choice boxes, execute \Com{useMCCRects}. This -setting is the default, there is no need to executed it unless -\cs{useMCCircles} has already been executed. - -Executing \cs{useMCCircles} does not affect the \texttt{manswers} -environment, page~\pageref*{manswersQuiz}), so you can have circular radio -buttons for multiple choice, and rectangular choice boxes for multiple -selection problems. - -%\exPDF{quiz_w_circ} The sample file \texttt{quiz\_w\_circ.tex} illustrates these two commands. - - -\exAeBBlogPDF{p=914} The demo file \texttt{\href{\urlAcroTeXBlog/?p=914}{quiz\_w\_circ.pdf}} -illustrates these two commands. - - - -\subsubsection{Overriding the `quiztype' Parameter} - -You can globally declare that all quizzes to be a link-type or -form-type by using the command \Com{quiztype}. Placing -\verb+\quiztype{f}+ in the preamble (or prior to any quiz) will -cause all quizzes following that command to be form-type quizzes. -Similarly, executing \verb+\quiztype{l}+ will produce all link-type quizzes. - -You can make the environments revert back to their normal behavior by using -the command \Com{defaultquiztype}, which cancels out the \cs{quiztype} command. - -%\exPDF{quizpts} The sample file \texttt{\href{\bUrl/webeq_ex.html\#quizpts} -%{quizpts.tex}} illustrates these collections of commands. - -\exAeBBlogPDF{p=1054} The demo file \texttt{\href{\urlAcroTeXBlog/?p=1054}{quizpts.pdf}} -illustrates these collections of commands. - - - -\newtopic \emph{Within a quiz}, you can say \Com{useForms}, to change the style to a visible checkbox -for multiple choice or multiple selection questions; use \Com{useLinks} to change -the style to links with alphabetized alternatives. Using \cs{restoreFLTypeDefault} -restores the next multiple choice/selection question back to the default determined -by the quiz environment (\texttt{quiz} versus \texttt{quiz*}), or as set by the -\cs{quiztype} command. - -\subsubsection{The BeginQuiz and EndQuiz Form Buttons}\label{sss:FormButton} - -The default setup the \texttt{quiz} environment is to have -hypertext links for the `Begin Quiz' and `End Quiz'. You can also -redefine this linking and use a form button instead -Prior to your quiz, use the following code, if desired. -\begin{Verbatim}[xleftmargin=\amtIndent] -\useBeginQuizButton -\useEndQuizButton -\end{Verbatim} - -\useBeginQuizButton\useEndQuizButton -%\makeatletter -%\renewcommand\eq@beginQuiz{\eq@BeginQuizButton} -%\renewcommand\eq@endQuiz{\eq@EndQuizButton} -%\makeatother - - -\begin{quiz}{qzTeXf} Answer each of the following. Passing -is 100\%. -\begin{questions} -\item Who created \TeX? -\begin{answers}4 -\Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\item Who originally wrote \LaTeX? -\begin{answers}4 -\Ans0 Knuth &\Ans1 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\end{questions} -\end{quiz}\quad\ScoreField{qzTeXf} - -\medskip -\noindent Revert back to link-style as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\useBeginQuizLink -\useEndQuizLink -\end{Verbatim} - -\useBeginQuizLink\useEndQuizLink - -\noindent The commands \cs{useBeginQuizButton} and \cs{useEndQuizButton} each -have an optional argument that can be used to modify the appearance -of the buttons. -\begin{Verbatim}[xleftmargin=\amtIndent] -\useBeginQuizButton[\textColor{0 0 1}] -\end{Verbatim} -\noindent would create a `Begin Quiz' button with blue text for the button label. - -\subsubsection{The \texorpdfstring{\texttt{proof\-ing}}{proofing} -Option}\label{ss:proofing} - -For proofreading, use the \texttt{proofing} option of -\textsf{exerquiz}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\usepackage[proofing]{exerquiz} -\end{Verbatim} -\noindent When used, a symbol, defined by the command \cs{proofingsymbol}, -will mark the correct answers, as defined in your source file. The -command \cs{proofingsymbol} can be redefined, its definition is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\proofingsymbol{\textcolor{webgreen}{$\bullet$}} -\end{Verbatim} -\noindent -This option works for the \texttt{\hyperref[ss:QuizIR]{shortquiz}} -environments defined above -(\hyperref[ss:QuizIR]{page~\pageref*{ss:QuizIR}}), as well. - -\subsubsection{The \texttt{showgrayletters} Option} \aebCng[showgrayletters] - -The showgrayletters option is valid for the \texttt{quiz} and \texttt{shortquiz} environments. -See the section entitled \Nameref{showgraylettersOpt} for a detailed explanation -of this option. - -\subsubsection{Setting the Threshold}\label{threshold} - -The default behavior of the \texttt{quiz} environment is that a -student can begin the quiz and finish the quiz without answering -any or all of the questions. This is called a \texttt{lowThreshold} -and is the default behavior. - -The document author can set a \texttt{highThreshold} by re-defining -the \cs{minQuizResp} macro. The default definition is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\minQuizResp{lowThreshold} -\end{Verbatim} -\noindent However, if you make the definition -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\minQuizResp{highThreshold} -\end{Verbatim} -\noindent the student is required to answer all the questions of a -quiz. - -Actually, \texttt{lowThreshold} and \texttt{highThreshold} are -JavaScript functions that are called when the ``End -Quiz'' button is clicked. If the threshold is not met, an alert box -appears informing the user of this. - -The document author can write a custom threshold function and place -its name in the \cs{minQuizResp} macro. See the \textsf{exerquiz} -source code---in either \textsf{exerquiz.dtx} or -\textsf{exerquiz.sty}---for the \texttt{highThreshold()} function -for an example of how to do this. - -\subsection{The \texttt{manswers} Environment}\label{manswersQuiz} - -Beginning with \textsf{Exerquiz} v.6.2, the \texttt{manswers} -environment is defined to support multiple selection questions. -(\texttt{manswers} stands for multiple answers). This is in contrast -with the \texttt{answers} environment in which there is only one -correct answer; for \texttt{manswers}, there are several correct -answers. - -%\exPDF{manswers} See the example file for this feature is \texttt{manswers.tex}. - -\exAeBBlogPDF{p=903} See the example file for this feature is \texttt{\href{\urlAcroTeXBlog/?p=903}{manswers.pdf}}. - -\newtopic\indent The syntax is the same as that of the \texttt{answers} environment, -\mlNameref{answersQuiz}. Below is example fragment, taken from \texttt{manswers.tex} - - -\begin{Verbatim}[xleftmargin=\amtIndent] -\item\PTs{5} Select which people were the President - of the United States. -\begin{manswers}{4} - \bChoices[2] - \Ans[-1]{0} Henry Clay\eAns - \Ans[-1]{0} Ben Franklin\eAns - \Ans[1.5]{1} Andrew Jackson\eAns - \Ans[1.5]{1} Ronald Reagan\eAns - \Ans[-1]{0} George Meade\eAns - \Ans[2]{1} Grover Cleveland\eAns - \Ans[-1]{0} John Jay\eAns - \Ans[-1]{0} Paul Revere\eAns - \eChoices -\end{manswers} -\end{Verbatim} - -\newtopic The arguments of the \cs{Ans} command is the same as -those of \cs{Ans} in the \texttt{answers} environment. - -\newtopic When the \cs{ScoreField} is used to display results, a manswers -question is correct if and only if all correct answers are checked, and none -of the incorrect answers are checked. - -When the \cs{PointsField} is used (see \Nameref{sss:asignPts}), and -points are assigned, as in the above code fragment, the optional -argument of \cs{Ans} is used to assign points for each response (if -there is no optional argument, it defaults to 0). When a student -selects a choice, the point value in the optional argument is added -to the point score. In the case of choosing \texttt{Ronald Reagan}, -1.5 points are added to the point score, while -1 point is added to -the point score for choosing \texttt{John Jay}. The minimal point -score for each question is zero, unless \cs{negPointsAllowed} command -is executed in the preamble, see \Nameref{negPtsAllowed}. - - -\subsection{Correcting the Quizzes with JavaScript}\label{ss:correct} - -%\makeatletter\eq@nocorrectionsfalse\makeatother -\CorrectionsOn - -Beginning with \textsf{exerquiz}, version 1.2, you can now correct -quizzes created by the \texttt{quiz} environment. To correct the -quizzes, simply include an additional element into your quiz, a -correction button. The correction button with -\cs{CorrButton}. - -\redpoint The following is a link-style quiz. - -% \begin{center} -% \noindent\fcolorbox{blue}{webyellow}{% -% \begin{minipage}{.965\linewidth}% -% \noindent\textcolor{red}{\textbf{Instructions:}} Click on -% `\textcolor{webgreen}{Begin Quiz}' to initialize the quiz. -% When finished, click on `\textcolor{webgreen}{End Quiz}'. -% Then, click on the `Correct' button. -% % To grade your quiz, press the `Correct' button. -% \end{minipage} -% }% -% \end{center} - -\begin{quiz}{qzdiscr1l} Using the discriminant, $b^2-4ac$, -respond to each of the following questions. -\begin{questions} -\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? -\begin{answers}4 -\Ans0 Yes &\Ans1 No -\end{answers} -\item Is the quadratic polynomial $2x^2 - 4x + 3 $ irreducible? -\begin{answers}4 -\Ans1 Yes &\Ans0 No -\end{answers} -\item How many solutions does the equation $2x^2 - 3x - 2= 0$ have? -\begin{answers}4 -\Ans0 none &\Ans0 one &\Ans1 two -\end{answers} -\end{questions} -\end{quiz}\par -\ScoreField{qzdiscr1l}\CorrButton{qzdiscr1l}% - -\medskip -%\fcolorbox{blue}{webyellow}{% -% \begin{minipage}{.975\linewidth}% - \noindent\textcolor{red}{\textbf{Legend:}} - A \textcolor{webgreen}{\ding{52}} indicates a - correct response; a \textcolor{red}{\ding{56}}, indicates an - incorrect response, in this case, the correct answer is marked - with a \textcolor{webgreen} {\ding{108}}. -% \end{minipage}} - -\begin{comment} - \begin{center} - \fcolorbox{blue}{webyellow}{% - \begin{minipage}{.95\linewidth} - \noindent\textcolor{red}{\textbf{Legend:}} - A \textcolor{red}{\ding{52}} indicates that the student gave the - correct response; a \textcolor{red}{\ding{56}}, indicates an - incorrect response, in this case, the correct answer is marked - with a \textcolor{webgreen} {\ding{108}}. - \end{minipage}} - \end{center} -\end{comment} - -\medskip -A partial verbatim listing of this quiz follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz}{qzdiscr1l} Using the discriminant, $b^2-4ac$, -respond to each of the following questions. -\begin{questions} -............................ -............................ -............................ -\end{questions} -\end{quiz} - -\ScoreField{qzdiscr1l}\CorrButton{qzdiscr1l} -\end{Verbatim} - - -\redpoint The macro \cs{CorrButton} is used to create a nice -``correction'' button. JavaScript is used to correct the quiz. -The only required argument is the field label that uniquely -defines the field in which the total score is placed. See the -section entitled \mlNameref{sss:CorrButton} for more details on how -to use this macro. - -\redpoint The \cs{CorrButton} will not work until the user has -clicked on `End Quiz'. The user can re-take the quiz simply by -clicking on `Begin Quiz', the form fields and JavaScript variables -will be cleared. - -\redpoint It is possible to take this form data and submit it to a -CGI script for processing. (The data can be saved to a database, -for example.) However, there is no built-in capability for this -in the \textsf{exerquiz} package. - -\symbolchoice{check} - -\medskip - -\noindent The same quiz can be written in form-style simply by inserting the -\texttt*-option. - -\medskip\noindent\textcolor{red}{Instructions.} You must click on -`Begin Quiz' to initialize the quiz. Not doing so, brings forth -an error message. When finished, click on `End Quiz'. - -\begin{quiz*}{qzdiscr1f} Using the discriminant, $b^2-4ac$, -respond to each of the following questions. -\begin{questions} -\item Is the quadratic polynomial $x^2-4x + 3$ irreducible? -\begin{answers}4 -\Ans0 Yes &\Ans1 No -\end{answers} -\item Is the quadratic polynomial $2x^2 - 4x + 3 $ irreducible? -\begin{answers}4 -\Ans1 Yes &\Ans0 No -\end{answers} -\item How many solutions does the equation $2x^2 - 3x - 2= 0$ have? -\begin{answers}4 -\Ans0 none &\Ans0 one &\Ans1 two -\end{answers} -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz - -\redpoint In the partial verbatim listing that follows, notice the field -name has been changed from \texttt{qzdiscr1l}, which is the name of the -quiz previous to his one, to \texttt{qzdiscr1f}. Different quizzes must -have unique field names. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz*}{qzdiscr1f} Using the discriminant, $b^2-4ac$, -respond to each of the following questions. -\begin{questions} -............................ -............................ -............................ -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz -\end{Verbatim} - -\redpoint Notice that in this example, the \cs{ScoreField} and the -\cs{CorrButton} are positioned following the `End Quiz'; this makes -the design more compact and nicer looking. - -\subsubsection{The -\texorpdfstring{\protect\texttt{nocorrections}}{nocorrections} -Option}\label{sss:nocorrections} - -Including the corrections adds quite a bit more JavaScript code to -the \texttt{.pdf} document, this feature is `on' by default. If -you have a document in which you do not want to have the option of -offering corrected quizzes, then just specify -\texttt{nocorrections} in the option list of \textsf{exerquiz}. - -There are also a couple of macros you can use to override the option switch, they are -\cs{CorrectionsOn} and \cs{CorrectionsOff}. Each remains in -effect until the other is invoked. - -\redpoint If the \texttt{nocorrections} option is taken, then the \cs{CorrButton} -does not appear for a quiz. - -\subsubsection{Showing Partial Credit Markup}\label{showcreditmarkup} - -When a quiz is corrected, it is possible to show how much credit was given. - -%\exPDF{pc_test} The demo file for this feature is \texttt{pc\_test.tex}. - -\exAeBBlogPDF{p=881} The demo file for this feature is -\texttt{\href{\urlAcroTeXBlog/?p=881}{pc\_test.pdf}}. - - -%\exPDF{pc_test1} The example file \texttt{pc\_test1.tex} illustrates -%how to have a multiple selection problem and a grouped problem with -%no partial credit. The student must get all parts correct to get -%full credit for that problem, otherwise, no credit is assigned. - -\exAeBBlogPDF{p=884} The example file -\texttt{\href{\urlAcroTeXBlog/?p=884}{pc\_test1.pdf}} illustrates -how to have a multiple selection problem and a grouped problem with -no partial credit. The student must get all parts correct to get -full credit for that problem, otherwise, no credit is assigned. - - -\newtopic Place the command \Com{showCreditMarkup} before a quiz you want the -partial credit markup. The command \Com{hideCreditMarkup} hides this -markup (it switches off the previous \cs{show\-Credit\-Mark\-up}); place -this command before a quiz for which you don't want the markup. The -default is not to show any partial credit markup. - -When a question item introduces a series of question, but poses no question itself, -place \Com{multipartquestion} prior to that item, for example -\begin{Verbatim}[xleftmargin=\amtIndent] -\multipartquestion -\item\PTs{6} Answer each of these questions -\begin{question} - \item\PTs{3} Answer this - \item\PTs{3} Answer that -\end{question} -\end{Verbatim} -Other relevant commands are \cs{aeb@creditmarkup} and -\cs{aeb@creditmarkupfmt}; the first one defines a little text field to -hold the partial-credit data and the second one sets the placement of the -text field. These can be redefined if the default definitions are not to -your liking. The markup in red that appears in the left margin shows the -number of points the student received for that problem, for example -\texttt{\textcolor{red}{3\,pts}}. The string \texttt{pts} (and its singular -counterpart, \texttt{pt}) is language dependent, in English it refers to -``points'' (or ``point''). You can change this string to an abbreviation -of points (point) using the commands commands \Com{ptsLabel} and -\Com{ptLabel}. The default definitions are \verb!\ptsLabel{pts}! and -\verb!\ptLabel{pt}!, respectively. - -\newtopic\textbf{\textcolor{red}{Important:}} Adobe Reader 5.0 or -later is required for this feature. - -\subsection{Quizzes with Solutions} - -In addition to scoring and marking the quizzes, you can also -(optionally) provide solutions as well. To enter a solution to a -multiple choice question, use a \texttt{solution} environment, and -attach a named destination to the \texttt{answers} environment. -A partial verbatim listing follows the next example. - -%\ifeqforpaper\else\NoPeeking\fi - - -\begin{quiz*}{qzTeXl} Answer each of the following. Passing -is 100\%. - -\begin{questions} - -\hfuzz=2pt - -\item Who created \TeX? -\begin{answers}[knuth]{4}% -\Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\begin{solution} -Yes, Donald Knuth was the creator of \TeX. -\end{solution} - -\item Who originally wrote \LaTeX? -\begin{answers}[lamport]{4} -\Ans0 Knuth &\Ans1 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\begin{solution} -Yes, Leslie Lamport was the creator of \LaTeX. -\end{solution} -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz - -\AllowPeeking - -After the quiz is completed and the corrections button is pressed, -the corrections appear. The correct answer has a green filled -circle or a green check; this circle is now outlined by a green -rectangle to indicate that this is a link to the solution. Click on -the green dot and jump to the solution! - -Solutions do not have to appear. Some problems can have solutions, -while others do not. The ones with the solutions have the green -boundary to indicate a link to the solution. - -Here is a partial listing of the above example. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz*}{qzTeXl} Answer each of the following. -Passing is 100\%. -\begin{questions} -\item Who created \TeX? -\begin{answers}[knuth]4 -\Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\begin{solution} -Yes, Donald Knuth was the creator of \TeX. -\end{solution} -.... -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz -\end{Verbatim} - -\redpoint Notice that in the \texttt{answers} environment, an -optional parameter \texttt{[knuth]} appears. The value of this -parameter is a unique name for the solution to the quiz. Notice as well that -the \texttt{solution} environment follows, and is not nested -within the \texttt{answers} environment. - - -\subsection{How to Modify the \texttt{quiz} Environment} - -There are four ways the appearance of the quizzes can change: - -\begingroup -\def\mylabel#1{\hfil\hyperref[#1]{\large$\bullet$}\ } -\begin{list}{} -%{\normalfont\bfseries\arabic{questionno}.\ }% -{\usecounter{questionno}\setlength{\parsep}{0pt}\setlength{\topsep}{0pt} -\renewcommand{\makelabel}{\mylabel} -\settowidth{\labelwidth}{\normalfont\bfseries00.\ }% -\setlength{\itemindent}{0pt}\setlength{\labelsep}{0pt}}% -\item[sss:quiztitles] change the titles -\item[sss:ckappear] change the `check' appearance -\item[sss:scorefield] change the text field in which the score appears, -\item[sss:CorrButton] change the appearance of the `Correction' button. -\end{list} -\par\endgroup - -\noindent This section discusses each of these four in turn. - -\subsubsection{The Quiz Titles}\label{sss:quiztitles} - -It is possible to redefine the quiz titles and other labels if -desired. - -\redpoint Locally: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\bqlabel{Begin Exam} -\renewcommand\eqlabel{End Exam} -\end{Verbatim} - -\redpoint Globally: -\begin{Verbatim}[xleftmargin=\amtIndent] -\makeatletter -\renewcommand\eq@bqlabel{Begin Exam} -\renewcommand\eq@eqlabel{End Exam} -\makeatother -\end{Verbatim} - -\subsubsection{The check appearance}\label{sss:ckappear} - -The appearance of the `check' can be chosen using the -\cs{symbolchoice} macro of the \textsf{exerquiz} package. The -permissible values for the argument of \cs{symbolchoice} are -\texttt{check} (the default), \texttt{circle}, \texttt{cross}, -\texttt{diamond}, \texttt{square}, and \texttt{star}. - -This quiz was generated by inserting -\verb+\symbolchoice{diamond}+ before the quiz. The multiple choice field -is actually a radio button field. The appearance of these radio buttons can -be modified using the command \cs{everyqRadioButton}. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\symbolchoice{diamond} -\everyqRadioButton{\textColor{0 0 1} - \BC{.690 .769 .871}\BG{.941 1 .941}} -\end{Verbatim} - -\symbolchoice{diamond} -\everyqRadioButton{\symbolchoice{diamond}\textColor{0 0 1}\BC{.690 .769 .871}\BG{.941 1 .941}} - - -\begin{quiz*}{qzTeX} Answer each of the following. Passing -is 100\%. -\begin{questions} -\item Who created \TeX? -\begin{answers}4 -\Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\item Who originally wrote \LaTeX? -\begin{answers}4 -\Ans0 Knuth &\Ans1 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\end{questions} -\end{quiz*}\quad\ScoreField{qzTeX}\CorrButton{qzTeX} - -\noindent If desired, we can return to the defaults: -\begin{Verbatim}[xleftmargin=\amtIndent] -\symbolchoice{check} % restore the default -\everyqRadioButton{} -\end{Verbatim} - -\symbolchoice{check} % restore the default -\everyqRadioButton{} - -\redpoint The \cs{symbolchoice} can also be introduced into the flow of the code through -the \cs{every\-qRadio\-Button}: -\begin{Verbatim}[xleftmargin=\amtIndent] -\everyqRadioButton{\symbolchoice{diamond}\textColor{0 0 1} - \BC{.690 .769 .871}\BG{.941 1 .941}} -\end{Verbatim} -\noindent After the quiz, we could return to the defaults by -\begin{Verbatim}[xleftmargin=\amtIndent] -\everyqRadioButton{} -\end{Verbatim} - -\redpoint See the document \texttt{\href{eformman.pdf}{eformman.pdf}} for complete -documentation on how to modify a field using the optional first argument, and -how to use the ``every'' command.\footnote{eforms manual on Web: -\url{\bUrl/eformman.pdf}}\xdef\fnEFormi{\thefootnote} - -\subsubsection{Change color of Correction Marks} - -The colors used to mark the quiz can be changed by redefining the -commands \cs{check\-Color}, \cs{crossColor} and \cs{correctColor} in -the \textit{preamble} or before. Below are the -defaults: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\checkColor{["RGB", 0, .6, 0]} -\renewcommand\crossColor{color.red} -\renewcommand\correctColor{["RGB", 0, .6, 0]} % webgreen -\end{Verbatim} -\noindent The colors are inserted into the field using JavaScript, so the color definitions -are in the color space of the JavaScript object model. - - -\subsubsection{The `Correction' Button}\label{sss:CorrButton} - -The `Correction' button is defined by the \cs{CorrButton} has two -parameters. -\begin{Verbatim}[xleftmargin=\amtIndent] -\CorrButton[mod_appear]{field_name} -\end{Verbatim} -The second parameter is the field name that contains the total score for the -quiz (see the above examples). It also has one optional argument that can be -used to modify the appearance of the button. - -Also defined is the \cs{eqButton} command, which performs the same function as -\cs{CorrButton}; use of \cs{eqButton} is discouraged in favor of \cs{CorrButton}. - -In addition to the optional parameter to modify the appearance of -\cs{CorrButton}, there is also a ``global'' mechanism for modifying the -appearance of the button field. These are - -\paragraph*{Global Modification:} \cs{everyButtonField} and \cs{everyCorrButton} - -\newtopic The first one modifies the appearance of every quiz button field, the second can be used -to modify all \cs{CorrButton}s. - -\redpoint See the document \texttt{\href{eformman.pdf}{eformman.pdf}} for complete -documentation on how to modify a field using the optional first argument, and -how to use the ``every'' command.${}^{\text{\fnEFormi}}$\def\fnEFormi{\thefootnote} - - - -% \begin{table}[hbt] -% \setlength{\extrarowheight}{1mm} -% \setlength{\tabcolsep}{2mm} -% \begin{center} -% \makeatletter -% \begin{tabular}{|l|l|l|l|} -% \hline -% \multicolumn1{|l|}{Local} & -% \multicolumn1{l|}{Global} & -% \multicolumn1{l|}{Default} & -% \multicolumn1{l|}{Description}\\ -% \hline -% \cs{BC} &\cs{eq@BC} & 1 0 0 & border color\\ -% \cs{BG} &\cs{eq@BG} & .7529 .7529 .7529 & face color\\ -% \cs{CA} &\cs{eq@CA} & Correct & button text\\ -% \cs{RC} &\cs{eq@RC} & My Answers! & rollover\\ -% \cs{AC} &\cs{eq@AC} & Please! & pushed text \\ -% \cs{DA} &\cs{eq@DA} & /Helv 10 Tf 0 g & text format\\ -% \cs{BS} &\cs{eq@BS} & /W 1 /S /B & button spec\\ -% \hline -% \end{tabular} -% \caption{\protect\cs{CorrButton} Parameters}\label{table:CorrButton} -% \end{center} -% \vspace{-\baselineskip} -% \end{table} -% -% -% The macros listed in the first column of \autoref{table:CorrButton} -% are permitted in the optional parameter field of -% \cs{CorrButton}---there is not parameter checking, \TeX\ or -% Distiller/Reader will find the errors. -% -% The meaning of these values is beyond the scope of this manual. -% Refer to the internet article ``Pdfmarks: Links and Forms'', -% \cite{article:Story:Pdfmarks}, for details; in particular, see the -% ``Forms'' article. - -\subsubsection{The Score Field}\label{sss:scorefield} - -The score field is the text field to which the quiz (and its -underlying JavaScript) reports the score. This field can be -constructed using the \cs{ScoreField} macro -\begin{Verbatim}[xleftmargin=\amtIndent] -\ScoreField[mod_appear]{field_name} -\end{Verbatim} -\noindent In the simplest case, \cs{ScoreField} takes one argument, as above, -the \texttt{field\_name} of the associated quiz. The expansion of \cs{ScoreField} -produces a \texttt{read-only} text field that is 1.5 inches in -width with a red border. The initial text that appears in the -field is the expansion of the macro \cs{eqScore}. The expansion of -\cs{eqScore} depends on the language option: \cs{eqScore} expands -to `Score:' by default, to `Punkte:' for the \texttt{german} -option and to `Score :' for the \texttt{french} option. - -The macro \cs{ScoreField} also has an optional parameter that can -be used to modify the appearance of the text field. Should the -document author want to change the basic look of the text field produced -by \cs{ScoreField}, just introduce the changes through this -optional parameter. - -In addition to the optional parameter for modifying the appearance of -the text field, \cs{Score\-Field}, there is also a ``global'' mechanism for -modifying the appearance of the button field. These are - -\newtopic\textbf{Global Modification:} \cs{everyeqTextField} and \cs{everyScoreField} - -\newtopic The first one modifies the appearance of every quiz text field, the second can be used -to modify all \cs{ScoreField}s. - -\redpoint See the document \texttt{\href{eformman.pdf}{eformman.pdf}} for complete -documentation on how to modify a field using the optional first argument, and -how to use the ``every'' command.${}^{\text{\fnEFormi}}$\def\fnEFormi{\thefootnote} - - -\begin{quiz*}{qzTeXc} Answer each of the following. Passing -is 100\%. -\begin{questions} -\item What \TeX\ System does Thomas Esser maintain? -\begin{answers}4 -\Ans0 MiK\TeX &\Ans0 cs\TeX &\Ans1 te\TeX &\Ans0 fp\TeX -\end{answers} -\item What \TeX\ System does Fabrice Popineau maintain? -\begin{answers}4 -\Ans0 MiK\TeX &\Ans0 cs\TeX &\Ans0 te\TeX &\Ans1 fp\TeX -\end{answers} -\item What \TeX\ System does Christian Schenk maintain? -\begin{answers}4 -\Ans1 MiK\TeX &\Ans0 cs\TeX &\Ans0 te\TeX &\Ans0 fp\TeX -\end{answers} -\end{questions} -\end{quiz*}\quad% -\ScoreField[\BC{0 0 1}]{qzTeXc}% - \CorrButton[\BC{0 0 1}% blue border color - \CA{TeX}% Button text - \RC{Users}% rollover text - \AC{Group}% pushed text - \textFont{TiRo}% text font: Times Roman - \textSize{10}% text size: 10 point - \textColor{0 0 1}% times roman, 10 pt, blue text - \W{1}\S{I}% border width 1, inset button - ]{qzTeXc} - -\noindent The new part is the customized scoring and correction button. Here -is a verbatim listing of the \cs{ScoreField} and \cs{CorrButton} -macros. -\begin{Verbatim}[xleftmargin=\amtIndent] -\ScoreField[\BC{0 0 1}]{qz:TeXc}% - \CorrButton[\BC{0 0 1} % blue border color - \CA{TeX} % Button text - \RC{Users} % rollover text - \AC{Group} % pushed text - \textFont{TiRo} % text font: Times Roman - \textSize{10} % text size: 10 point - \textColor{0 0 1} % blue text - \W{1}\S{I} % border width 1, inset button - ]{qz:TeXc} -\end{Verbatim} - -%\exPDF{webeqtst} This example---as well as others---appears in -%\texttt{\href{\bUrl/webeq_ex.html\#webeqtst}{webeqtst.tex}}, a -%test file that accompanies the \cAcroB. - -\exAeBBlogPDF{p=803} This example---as well as others---appears in -\texttt{\href{\urlAcroTeXBlog/?p=803}{webeqtst.pdf}}, a demo file from the -{\AcroBlog} - - - -\subsection{\texorpdfstring{\protect\cs{titleQuiz}}{\CMD{titleQuiz}} - and \texorpdfstring{\protect\cs{fancyQuizHeaders}}{\CMD{fancyQuizHeaders}}}\label{titleQuiz} - -%\exPDF{title_quiz} The demo file for these features is \texttt{title\_quiz.tex}. - -\exAeBBlogPDF{p=908} The demo file for these features is -\texttt{\href{\urlAcroTeXBlog/?p=908}{title\_quiz.pdf}}. - - -\subsubsection{\texorpdfstring{\protect\cs{titleQuiz}}{\CMD{titleQuiz}}} - -To assign a title to your quiz use \Com{titleQuiz}. This title appears just after -the `Begin Quiz' button - -\fancyQuizHeaders -\titleQuiz{Two Question MC} -\begin{quiz}{MyMCQuiz}\label{MyMCQuiz} -Answer each of these to the best of your ability. -\begin{questions} -\item Math is fun. -\begin{answers}*{4} -\Ans1 True & \Ans0 False\\ -\end{answers} -\begin{solution} - The answer is true, of course, math is fun! -\end{solution} - -\item Statistics is fun. -\begin{answers}*{4} -\Ans0 True & \Ans1 False\\ -\end{answers} -\begin{solution} - The answer is false, statistics is interesting but not fun. -\end{solution} -\end{questions} -\end{quiz}\quad\ScoreField\currQuiz\CorrButton\currQuiz - -\noindent The partial verbatim code for the above quiz follows: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\titleQuiz{Two Question MC} -\begin{quiz}{MyMCQuiz}\label{MyMCQuiz} -Answer each of these to the best of your ability. -\begin{questions} -... -\end{questions} -\end{quiz}\quad\ScoreField\currQuiz\CorrButton\currQuiz -\end{Verbatim} - -\restoreDefaultQuizHeaders - -\noindent The format of the title is controlled by the command \Com{titleQuizfmt}, -the default definition is \verb!\newcommand\titleQuizfmt{\bfseries}!. The value -of the \cs{titleQuiz} command can act as an argument for \cs{titleQuizfmt} if you redefine -\cs{titleQuizfmt} to have an argument. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\titleQuizfmt[1]{\bfseries(#1)} -\end{Verbatim} -Now, the title will appear in a set of parentheses. The title and formatting are enclosed -in a \cs{mbox}, so font and style changes are localized to that \cs{mbox}. - -\newtopic If a quiz does not have a title, as defined by \cs{titleQuiz}, the title defaults to -an empty title. - -\newtopic The definition of \cs{titleQuiz} is such that the command \cs{makeatletter} is executed -before the argument for \cs{titleQuiz} is read. This means that the special character -`\texttt{@}' can be used within the argument of \cs{titleQuiz}. For example, the \texttt{quiz} -environment maintains a text macro \cs{\@quizCnt} which contains the current quiz -count number. Thus you can say \verb!\titleQuiz{Quiz \@quizCnt}!, the title of -the quiz will include a short quiz number as well. - - -\newtopic The \cs{titleQuiz} is used for short quizzes as well as -with quizzes. It is possible to have different formatting for each -of these two environments by using the \Com{ifQuizType} command. The -command takes two arguments: -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\ifQuizType{!anglemeta(quiz_code)}{!anglemeta(shortquiz_code)} -\end{Verbatim} -For example, we could define \cs{titleQuizfmt} as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\titleQuizfmt{\ifQuizType{\bfseries}{\slshape}} -\end{Verbatim} -or with an argument, as mentioned above, you could define \cs{titleQuizfmt} with an argument, -like so, -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\titleQuizfmt}[1]{% - \ifQuizType{\bfseries(#1)}{\slshape[#1]}} -\end{Verbatim} - -\subsubsection{Cross-Referencing} - -Quizzes and short-quizzes conform to the cross-referencing system -of {\LaTeX}. For example, we used the label \verb!\label{MyMCQuiz}! in the last quiz, the one -on page~\pageref{MyMCQuiz}. The title of the quiz is \nameref{MyMCQuiz}. The code for the past -two sentences is -\begin{Verbatim}[xleftmargin=\amtIndent] -For example, we used the label \verb!\label{MyMCQuiz}! in the -last quiz, the one on page~\pageref{MyMCQuiz}. The title of the -quiz is \nameref{MyMCQuiz}. -\end{Verbatim} -\noindent If the quiz does not have a title, as defined by the \cs{titleQuiz} command, a generic label of -`Quiz' is generated. The default label name is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\eq@defaultQuizLableName{Quiz} -\end{Verbatim} -\noindent This definition can be change using \cs{renewcommand}. - -\subsubsection{\texorpdfstring{\protect\cs{fancyQuizHeaders}}{\CMD{fancyQuizHeaders}}}\label{fancyQuizHeadersQ} - -The \Com{fancyQuizHeaders} command, a companion feature to \Com{titleQuiz}, enhances -the labeling of the quiz in the solutions section of the document. If -\cs{fancyQuizHeaders} is executed in the preamble, or prior to a quiz, the solution header has the -following default format: - -\begin{quote} -\newtopic{\color{blue}Two Question MC: Question 1.} The answer is true, of course, math is fun! -\end{quote} - - -\newtopic The above assumes the title of the quiz is the one given in the previous section. - -\newtopic When a quiz has no title, the header reverts to -\textcolor{blue}{Solution to Quiz:} followed by the question number. - -\redpoint You can turn off fancy quiz headers by using -\Com{restoreDefaultQuizHeaders}. - -\newtopic You can modify the fancy headers with a combination of setting \Com{setsolnspace} -and/or redefining the command \Com{eq@fancyQuizHeadersfmt}. First -\cs{setsolnspace}: This is a hook into the space immediately -following the header. To insert a \cs{medskip} after the header, for example, you -can say \verb!\setsolnspace{\par\medskip\noindent}! a -\cs{medskip} is created after the solution header and the solution -above appears as - -\begin{quote} -\newtopic{\color{blue}Two Question MC: Question 1.}\par\medskip\noindent The answer is true, of course, math is fun! -\end{quote} - - -\newtopic The definition of \cs{eq@fancyQuizHeadersfmt} is -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\def\eq@fancyQuizHeadersfmt{{\protect\color{blue}\protect - \textbf{\ifx\aebTitleQuiz\@empty\ifnum\@eqquestiondepth>0 - Solution to Quiz:\fi\else - \aebTitleQuiz:\protect\ - \ifnum\@eqquestiondepth=0\else - Question\fi - \fi\space - \ifcase\@eqquestiondepth - \ifx\aebTitleQuiz\@empty Solution to Quiz:\fi\or - \arabic{eqquestionnoi}.\or - \arabic{eqquestionnoi}(\alph{eqquestionnoii})\or - \arabic{eqquestionnoi}(\alph{eqquestionnoii})% - (\roman{eqquestionnoiii})% - \fi}}% -} -\end{Verbatim} -Ugly isn't it. We need to set the header in all cases: with or without a title; -multiple questions within a \texttt{questions} environment, or a single question -with no \texttt{questions} environment. - -\newtopic A simple re-definition might be -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\def\eq@fancyQuizHeadersfmt{{\protect\color{blue}\protect - \textbf{\ifx\aebTitleQuiz\@empty - \ifnum\@eqquestiondepth>0 - Solution to Quiz\fi\else - \aebTitleQuiz\protect\ - \ifnum\@eqquestiondepth=0\else\\Question% - \fi\fi\space - \ifcase\@eqquestiondepth - \ifx\aebTitleQuiz\@empty Solution to Quiz\fi - \or\arabic{eqquestionnoi}.\or - \arabic{eqquestionnoi}(\alph{eqquestionnoii})\or - \arabic{eqquestionnoi}(\alph{eqquestionnoii})% - (\roman{eqquestionnoiii})% - \fi}}% -} -\end{Verbatim} - -\noindent The colons (\texttt{:}) are removed and a \verb!\\! inserted in the fourth -line; that line now reads, in part, \verb!\else\\Question\fi!, instead of -\verb!\else Question\fi!. - -\newtopic The results of these changes, in combination with the earlier -change of -\begin{Verbatim}[xleftmargin=\amtIndent] -\setsolnspace{\par\medskip\noindent} -\end{Verbatim} -\noindent are - -\begin{quote} -\newtopic{\color{blue}Two Question MC\\Question 1.}\par\medskip\noindent The answer is true, of course, math is fun! -\end{quote} - -\newtopic Other (minor) changes such as color, style, font can be done in this way. - -\newtopic As a reminder, you can use the web package's switch, \Com{ifeqforpaper} to further -refine these headers. You can have one style of solution headers for paper, and another -style for the screen. - -\subsection{Adding Points to a Quiz}\label{sss:asignPts} - -%The discussion of this topic can be found in \Nameref{sss:asignPts}. - -%\subsubsection{Assigning Points}\label{sss:asignPts} - -The questions on a quiz, especially a quiz meant for credit, may -not have the same weight. A point scheme, therefore, has been -created; several additional text fields in support have also been -defined. - -Here is a simple two question example to illustrate: - -\begin{quiz*}{mathquiz} Answer each of the following. Passing -is 100\%.\hfill\smash{\GradeField[\rectH{30bp}\rectW{30bp}\textSize{0}]\currQuiz} - -\begin{questions} - -\PTsHook{($\eqPTs^{\text{pts}}$)} - -\item\PTs{4} If $\lim_{x\to a} f(x) = f(a)$, then we say that $f$ is\dots -\begin{answers}{4} -\Ans0 differentiable &\Ans1 continuous &\Ans0 integrable -\end{answers} - -\item\PTs{6} Name \emph{one} of the two people recognized as a founder of -Calculus.\\[1ex] -\RespBoxTxt{0}{0}{4}{Isaac Newton}{Newton}{Gottfried Leibniz}{Leibniz}% -\CorrAnsButton{Isaac Newton or Gottfried Leibniz} - -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz - -\noindent -Answers: \AnswerField\currQuiz - -\medskip\noindent -Points: \PointsField\currQuiz\ Percent: \PercentField\currQuiz - -%\exPDF{quizpts} See the sample file -%\href{\bUrl/webeq_ex.html\#quizpts}{quizpts.tex} for a more -%elaborate version of this question, as well as the source code. - -\exAeBBlogPDF{p=1054} See source file for the PDF -\texttt{\href{\urlAcroTeXBlog/?p=1054}{quizpts.pdf}} for a more elaborate -version of this question, as well as the source code. - - -\begin{questions} -\item \verb+\PTs#1+: This macro takes one argument, the number of -points to be assigned to the current problem. Place this command -immediately after the \cs{item} in the \textsf{questions} environment. -For example, in the above quiz we had -\begin{Verbatim}[xleftmargin=\amtIndent] -\item\PTs{6} Name \emph{one} of the two people recognized - as a founder of Calculus. -\end{Verbatim} -\item \verb+\PTsHook#1+: This macro, which takes one argument, can -be used to typeset the points assigned. and is called by -\cs{PTs}. The argument is what is to be typeset. The value -assigned the current problem by \cs{PTs} is contained within the -macro \cs{eqPTs}. In the quiz above, we had -\begin{Verbatim}[xleftmargin=\amtIndent] -\PTsHook{($\eqPTs^{\text{pts}}$)} -\end{Verbatim} - -\item There are three other commands that create text fields to -display results from a quiz with points assigned: -\begin{itemize} - \item \verb+\PointsField[#1]#2+: The number of points earned for the quiz, the - total points are also reported. The parameter \texttt{\#2} is the base name - of the quiz. - \item \verb+\PercentField[#1]#2+: The percentage score for the - quiz. The parameter \texttt{\#1} is the base name of the quiz. - \item \verb+\GradeField[#1]#2+: The letter grade of the - performance on the quiz. The parameter \texttt{\#2} is the - base name of the quiz. The values placed in this field are determined - by the macro \cs{eqGradeScale}. -\end{itemize} -\item \cs{eqGradeScale}: This macro sets the grade scale of a quiz, the default -definition is -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\eqGradeScale{"A",[90, 100],"B",[80,90], - "C",[70,80],"D",[60,70],"F",[0,60]} -\end{Verbatim} -\noindent The ways things are defined now, there can be only one grade scale -per document. The value of \cs{eqGradeScale} is a matrix with an -even number of elements. The odd numbered elements are the grades; -the even number elements are intervals of percentages (percentages -of the total number of points on the quiz). If the percentage of -the score falls into a particular range, the corresponding grade -is assigned. - -\item[] Note, obviously, you can redefine this command. The -letter grades do not actually have to be grades, they can be little -messages to the student upon completion of the quiz. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\eqGradeScale{% - "Excellent Work.",[90, 100], - "Solid Effort.",[80,90], - "Fair.",[70,80], - "Needs improvement, better work expected.",[60,70], - "Learning still in progress.",[0,60] -} -\end{Verbatim} -\end{questions} - -\subsubsection{\texorpdfstring{\protect\cs{negPointsAllowed}}{\CMD{negPointsAllowed}}}\label{negPtsAllowed} - -The \texttt{answers} and \texttt{manswers} environments allow for partial credit, -and even assigning of negative points for wrong answers (see \Nameref{manswersQuiz}); -consequently, it is possible for a student taking a quiz to get a -negative points for the quiz. By default \textsf{exerquiz} reports a point score of zero -to \cs{PointsField} if the points are negative. - -If you want exerquiz to report the true point score, use the command -\cs{neg\-Points\-Allowed} in the preamble. This will allow the reporting -of a negative point total. - -%\exPDF{manswers} See the example file for this feature \texttt{manswers.tex}. -%Compare the results of when the default behavior is used, versus -%the results when \cs{negPointsAllowed} is used in the preamble. - -\exAeBBlogPDF{p=903} See the source file for the PDF \texttt{\href{\urlAcroTeXBlog/?p=903}{manswers.pdf}}. -Compare the results of when the default behavior is used, versus -the results when \cs{negPointsAllowed} is used in the preamble. - -\subsection{Floating a Quiz}\label{floatQuiz} - -The quiz structure is to have a `Begin Quiz' button or link at the -beginning of the quiz and an `End Quiz' button or link at the end. -In some settings, you might want to place the `Begin Quiz' button on -another page, with, perhaps, some instructions. For this purpose -\textsf{exerquiz} defines five commands \Com{DeclareQuiz}, -\Com{floatQuiz}, \Com{startQuizHere}, \Com{endQuizHere} and -\Com{dockQuiz}. - -The \cs{DeclareQuiz} command takes one argument, which is the name -of the quiz, for example \verb!\DeclareQuiz{myQuiz}!. This command -takes it argument and creates a text macro \cs{currQuiz}, which -expands to the quiz name. \cs{currQuiz} can then be used in the -\texttt{quiz} environment command argument for the quiz name. This -makes it easy to change the names without having to search through -and make all changes. - -The command \cs{floatQuiz} declares the current quiz, as set by the -\cs{DeclareQuiz} command, is floating, which means the `Begin Quiz' and -`End Quiz' link-text or buttons are separated from their usual placement -and are allowed to ``float.'' The third command \cs{startQuizHere} -inserts the `Begin Quiz' link text or form button, while the -\cs{endQuizHere} command inserts the `End Quiz' link or form button. - -\newtopic For example, - -\DeclareQuiz{myQuiz} -\useBeginQuizButton[\CA{Start}\RC{the}\AC{Quiz}\BC{}\W0] -\useEndQuizButton[\CA{End}\RC{the}\AC{Quiz}\BC{}\W0] -\floatQuiz - -\begin{flushleft} -\fcolorbox{blue}{webyellow}{\begin{minipage}{.67\linewidth} -Solve each of the following problems. To begin the quiz, -click on the \startQuizHere\space button. -\end{minipage}} -\end{flushleft} - -\begin{quiz}{\currQuiz} -Answer these questions truthfully. -\begin{questions} - \item Do you understanding the concept of \cs{floatQuiz}? - \begin{answers}{4} - \Ans1 Yes & \Ans0 No - \end{answers} - \item Do you understanding the concept of \cs{dockQuiz}? - \begin{answers}*{4} - \Ans0 Yes & \Ans1 No - \begin{solution} - You can't understand it until I explain it! - \end{solution} - \end{answers} -\end{questions} -\end{quiz}\ScoreField\currQuiz\CorrButton\currQuiz - -\begin{flushleft} -\fcolorbox{blue}{webyellow}{\begin{minipage}{.67\linewidth} -After you have finished the quiz, click on the -\endQuizHere\space button. Click the\ \smash[b]{\CorrButton[\CA{Correct}\RC{the}\AC{Quiz}\S{S}\BC{}\W0]\currQuiz}\ button -if you -wish and your quiz will be marked. Click on the choice with -the green border to jump to the solution. -\end{minipage}} -\end{flushleft} -\dockQuiz - -\newtopic To return to the default behavior of the quiz environment -place \cs{dockQuiz} following the quiz. Quizzes that come -after the \cs{dockQuiz} will then have the standard quiz format. - -%\exPDF{floatquiz} See the example file \texttt{floatquiz.tex} for the {\LaTeX} code of the above example. - -\exAeBBlogPDF{p=897} See the source file for the PDF -\texttt{\href{\urlAcroTeXBlog/?p=897}{floatquiz.pdf}} for the {\LaTeX} code -of the above example. - - -\section{Objective Style Questions}\label{s:oQ} - -Beginning with version~2.0 of \textsf{exerquiz}, objective style -questions can be posed. Single questions can be posed in the -\texttt{\hyperref[ss:oquestion]{oQuestion}} environment, -multiple questions can be placed in either the \texttt{shortquiz} -or the \texttt{quiz} environments. This section discusses this -type of question and all of its supporting commands. - - -\subsection{Math and Text Questions} - -\textsf{Exerquiz} distinguishes between two types of open ended or objective -questions: -\begin{questions} -\item A mathematical question that requires a mathematical expression -as the answer. -\item A question that requires a text answer. -\end{questions} - -\redpoint The demo file \texttt{jquiztst.tex} is an important -source of examples and instruction for the mathematical type -question; additionally, the file \texttt{jtxttst.tex} has many -examples for the text type question. - - -\subsubsection{The Mathematical Question} - -At this stage in the development of \textsf{exerquiz}, a -(mathematical) question can be posed that requires an answer that -is a function of one or more declared variables $x$, $y$, $z$, etc. -Thus, when the declared variables $x$, $y$, $z$ are given a value, -the answer is reduced to a number. -%\begin{questions} -%\item A question that has a numerical value. -%\item A question that has a symbolic answer in one variable, $x$. -%The symbolic answer must reduce, however, to a numerical value -%when $x$ is given a numerical value. -%\end{questions} -%Thus, only questions whose answers can be reduced to numerical -%values can be posed. - -For example, the answer to the question ``Differentiate $\frac -d{dx} \sin^2(x)$'', is a function in one variable $x$, it can be -evaluated numerically and can, therefore, be posed: - -\begin{oQuestion}{ex1} -\redpoint Differentiate $\dfrac d{dx} \sin^2(x) = -$\space\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1} -\end{oQuestion} - -\smallskip -See \Nameref{ss:respbox} for details. - -In contrast, consider the question: ``Name the probability -distribution popularly referred to as the `bell-shaped curve' ''. -The answer to this question cannot be reduced to a numerical -value. This question can be posed as an \hyperref[sss:oTxtQ]{text -objective question}, or, it does lend itself to a multiple choice -question, however. - -\subsubsection{The Text Question}\label{sss:oTxtQ} - -You can also pose questions that require a text answer: - -\redpoint\begin{oQuestion}{exTxt2} -Name the probability -distribution popularly referred to as the ``bell-shaped curve''.\\ -\RespBoxTxt{0}{0}{4}{Normal}{Normal Distribution}{Gaussian}{Gaussian Distribution} -\end{oQuestion} - -See \Nameref{ss:respboxtxt} for details. - -\subsection{The \texttt{oQuestion} Environment}\label{ss:oquestion} - -The \texttt{oQuestion} environment is a very simple environment -for posing a \textit{single} question and will be used in this -section to discuss in detail the macros for posing mathematical -and text open questions. - -The syntax for the \texttt{oQuestion} environment is -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{oQuestion}{!ameta(field_name)} - !ameta(A math or text open ended question.) -\end{oQuestion} -\end{Verbatim} -\noindent The environment takes one required argument, a unique name for the question. -This name, \texttt{field\_name}, is used by other supporting -macros. - -\subsubsection{\texorpdfstring{\protect\cs{RespBoxMath}} -{\textbackslash RespBoxMath}: The Math Question}\label{ss:respbox} - -%\subsubsection{\texorpdfstring{\protect\cs{RespBox}, -%\protect\cs{Resp\-BoxNT}}{\textbackslash RespBox, \textbackslash -%RespBoxNT}} - -The \cs{RespBoxMath} command is used for posing an objective -question. This command must appear in the \texttt{oQuestion}, -\texttt{short\-quiz} or \texttt{quiz} environments. In this -section we discuss only the \texttt{oQuestion} environment. - -The following is a \hypertarget{minExample}{minimal example}. -Additional enhancements will be discussed in subsequent sections. - -\begin{oQuestion}{sine1} -\redpoint Differentiate $\dfrac d{dx} \sin^2(x) = -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{[0,1]}$ -\end{oQuestion} -\par\medskip\noindent -The code for the above example is -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{sine1} -\redpoint Differentiate $\dfrac d{dx} \sin^2(x) = -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{[0,1]}$ -\end{oQuestion} -\end{Verbatim} -\noindent The \cs{RespBoxMath} need not appear in math mode. The definition -of the \cs{redpoint} command, a command written for this document follows. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\redpoint{\par\removelastskip\vskip\medskipamount - \noindent\makebox[\parindent][l]{\large - \color{red}$\blacktriangleright$}} -\end{Verbatim} - -\newtopic You can also pose multivariate questions as well, for example - -\begin{oQuestion}{multivariate} -\redpoint $\dfrac{\partial}{\partial y} {4 x^2 y^3 } - = \RespBoxMath{12*x^2*y^2}(xy){4}{.0001}{[0,1]x[0,1]}$ -\end{oQuestion} -\par\medskip\noindent -The code for the above example is -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{multivariate} -\redpoint $\dfrac{\partial}{\partial y} {4 x^2 y^3 } - = \RespBoxMath{12*x^2*y^2}(xy){4}{.0001}{[0,1]x[0,1]}$ -\end{oQuestion} -\end{Verbatim} -\noindent See the file \texttt{multivar.tex} for more examples -quizzes involving multivariate problems. - -The algorithm used for determining the correctness of the answer -entered by the user is very simple: The user's answer and the -correct answer are evaluated at randomly selected points in an -interval, then compared. If any of the comparisons differ by more -than a pre-selected amount, an $\epsilon$ value, if you will, the -user's answer is declared incorrect; otherwise, it is considered -correct.\footnote{The idea for evaluating user input in this way -comes from Drs.\ Wlodzimierz Bryc and Stephan Pelikan of The -University of Cincinnati.} - -\newtopic The command \cs{RespBoxMath} takes ten parameters, -five optional and five required:%\hypertarget{respboxargs}{} -\begin{dCmd}{.67\linewidth} -\RespBoxMath[#1]#2(#3)[#4]#5#6#7#8[#9]*#10 -\end{dCmd} -\paragraph*{Parameters:}\label{paraRespBox} -\begin{description} -\item[\ttfamily\#1 :] Optional parameter used to modify the appearance of the - text field. See the section entitled \nameref{sss:CorrButton} for examples, and \textsf{exerquiz.dtx} - for a listing of all controlling macros. -\item[\ttfamily\#2 :] The correct answer to the question. - This must be a numerical value, or a function of one or more variable(s). - -\item[\ttfamily\hypertarget{paraRespBoxThree}{\#3} :] An optional parameter, \textit{delimited by -parentheses}, that defines the independent variable; \texttt{x}, -is the default value. Note that this parameter is set off by -parentheses. For a multivariate question, just list the variables -in juxtaposition, \texttt{(xyz)}. - -Beginning with version 5.5 of \textsf{exerquiz}, an alternate -method is to delimit with commas \texttt{(x,y,n)} and include the -type of the variables \texttt{(r:x,r:y,i:n)}, where \texttt{"r"} -means a real variable and \texttt{"i"} means an integer variable. -When a type is not specified explicitly, \texttt{"r"} is assumed. -The variables must be either of the old style (no commas, no -typing) or the new style. Do not mix the styles. - -See the \hyperlink{exofT}{example} in \Nameref{enhancements} -of the section below and see the demo file \texttt{integer\_test.tex} to -demonstrate the new method for specifying variables, found in the -\texttt{dljslib\_examples} folder. - -\textbf{Multi-letter variables.} Beginning with v8.0 (2017/08/08) support for -multi-letter variables and appearance replacement is added. Within the -\texttt{\#3}, use the following notation: -\begin{Verbatim}[xleftmargin=\amtIndent] -(x\rpl{alpha}{y}z) -\end{Verbatim} -This declares three variables, \texttt{x}, \texttt{alpha}, and \texttt{z}. -What in fact is taking place is that \texttt{alpha} is replaced by \texttt{y} -and processing continues from there. - -\textbf{Alternate appearances.} Additionally, there is now a scheme for -replacing the variables with alternate appearances. -\begin{Verbatim}[xleftmargin=\amtIndent] -(x\rpl{alpha->\\u03B1}{y}z) -\end{Verbatim} -The arrow notation (\texttt{->}) tells \pkg{exerquiz} to replace -\texttt{alpha} with the unicode character \verb~\u03B1~ (note the double -backslash above), which is the Greek letter alpha ($\alpha$). You can -separate the variables with commas and use the type specification as well. -But as noted above, use either the old style (no commas) or the new style -(with commas), \emph{never mix the two together in one argument.} - -Below is a simple example of multi-letter variables with appearance replacement. Enter -\texttt{alpha} for $\alpha$ and \texttt{theta} for $\theta$. -\begin{oQuestion}{oQ2} -\begin{equation*} - \dfrac{\partial}{\partial\theta}\alpha \sin(\theta)= - \RespBoxMath[\rectW{1.5in}]{alpha cos(theta)}(\rpl{alpha->\\u03B1}{x}\rpl{theta->\\u03B8}{y}) - {3}{0.0001}{[0,3.14]x[0,3.14]} -\end{equation*} -\end{oQuestion} -The verbatim listing for this question follows: -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\begin{oQuestion}{oQ2} -\begin{equation*} - \dfrac{\partial}{\partial\theta}\alpha \sin(\theta)= - \RespBoxMath[\rectW{1.5in}] - {alpha cos(theta)} - (\rpl{alpha->\\u03B1}{x}\rpl{theta->\\u03B8}{y}) - {3}{0.0001}{[0,3.14]*2} -\end{equation*} -\end{oQuestion} -\end{Verbatim} - -\exAeBBlogPDF{p=1330} See the file -\texttt{\href{\urlAcroTeXBlog/?p=1330}{ml-vars.pdf}} for a demonstration of -multi-letter variables and alternate appearances. - - -\item[\ttfamily\#4 :] Optional, a named destination to the solution to the - question. There are two forms: the \texttt{[mydest]} an explicit - destination for the solution to the problem, or a `\texttt*', in which - case, the name is \texttt{[\string\curr@quiz.\string\thequestionno]} is - automatically assigned. - -If this parameter appears, a solution must follow the -question, enclosed in a \texttt{solution} environment. - - -\item[\ttfamily\#5 :] The number of samples points to be used, usually 3 or 4 is -sufficient. -\item[\ttfamily\#6 :] Precision required, a \emph{non-negative} - ``$\epsilon$'' value, if you will. If the precision is set to zero, - \texttt{reldiffCompare} is used as the default compare, and the precision - is set to a small positive value, \text{1E-14}, by default. The small - value is may reset with \cs{defaultRDPrecision}. The default definition, - \verb!\defaultRDPrecision{1E-14}!. - -\item[\ttfamily\#7 :] Parameters \#7 and \#8 are used to define the interval - from which to draw the sample points. There are two forms: (1) \#7 is the - left-hand endpoint of the interval and \#8 is the right-hand endpoint - (the use of \#7 and \#8 in this form is deprecated); (2) the interval is - defined by standard interval notation, \texttt{[a,b]}. For a multivariate - question---one where parameter \#2 lists more than one variable---separate - the intervals for each variable by a `\texttt{x}', - \texttt{[0,2]x[1,2]x[3,4]}. - - -\textbf{Interval repetition.} Beginning with v8.0 (2017/08/08), -\pkg{exerquiz} allows \emph{interval repetition}. It is not unusual that the -cartesian product of the same interval is needed, eg, -\texttt{[0,1]x[0,1]x[0,1]}; rather than typing those repetitive interval -specifications, you can simple use the notation \texttt{[0,1]*3}. The general -syntax for an interval is now \texttt{\ameta{interval}*\ameta{num}}; the -`\texttt{*\ameta{num}}' portion is optional, \ameta{num} is an positive -integer. Note that `\texttt{*\ameta{num}}' follows the interval -specification, this is \emph{vitally important} for the correct parsing of -the expression. - -The notation may be mixed in with additional interval - specifications; thus, for example, `\texttt{[0,1]*3x[1,2]x[2,3]*2}' expands to - `\texttt{[0,1]x[0,1]x[0,1]x[1,2]\penalty0x\penalty0[2,3]x[2,3]}'. - -\exAeBBlogPDF{p=1330} See the file -\texttt{\href{\urlAcroTeXBlog/?p=1330}{ml-vars.pdf}} for a demonstration of -interval repetition. - - -\item[\ttfamily\#8 :] (1) \#8 is the right-hand endpoint of the interval (the - use of this parameter is deprecated); (2) in the second case, \#8 is not - used. - -\item[\ttfamily\#9 :]\label{paraRespBoxNine} This optional parameter is the name of a customized -comparison function. - -Beginning with version 5.5 of \textsf{exerquiz}, this argument can also be -a JavaScript object with at most two properties: \texttt{priorParse} and -\texttt{comp}. \texttt{priorParse} is used to insert additional JavaScript -into \texttt{ProcResp} prior to processing the user's answer; this allows -additional ``filtering'' of the user's response. The value of -\texttt{priorParse} can either be a single function, or an array of -functions. These functions take \texttt{UserAns} as its argument and -return either \texttt{null}, if \texttt{UserAns} is not acceptable, or -\texttt{true}, if it is ok for processing. The value of \texttt{comp} is -the name of the function to be used to compare answers. - -See the demo file \texttt{integer\_tst.tex} for examples of usage. - -%There is a built-in filter function, \texttt{requireForm}, that may be quite useful -%for filtering out responses that that are not of a specified form. See - -\item[\ttfamily\#10:] (Only detected if following an asterisk, `\texttt*') -The name of a JavaScript function that is to be used to process the user input. -\end{description} - -\redpoint For the above example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{[0,1]} -\end{Verbatim} -\noindent no optional parameter is specified. The correct answer written in -valid JavaScript is given by \verb+2*sin(x)*cos(x)+; evaluation of the -user's answer is done by randomly selecting 4 points from the -interval $[\,0,1\,]$; if the evaluation at any of the 4 points -differs from the evaluation of the correct answer at the same -point by more than $\epsilon=0.0001$, the user's answer is -considered wrong. - -Once you choose the question to ask, you must then select the -values of the parameters for \cs{RespBoxMath}. - -\noindent\redpoint \textbf{Some Comments}: -\begin{questions} -\item The correct answer can be written either with valid JavaScript, -or in the same syntax a user would enter the answer with. The -functions and operators are pretty much as expected. See the -demo file \textsf{jquiztst.tex} for some discussion how authors -and users should enter their answers. - -\item The interval from which the sample points are taken -needs to be chosen with care. The interval must, obviously, be a -subset of the domain of the answer function. Choose an interval -away from any singularities the answer may have. - -%\item The JavaScript of Acrobat 5.0 does have exception -%handling, but this has not been incorporated into the code yet. -%Taking advantage of this new capability will be my next project. -%Exception handling will give the code protection against user's -%entering spurious answers. For example, based on the correct -%answer, the author chooses the interval $[\,0,1\,]$, but the user -%enters a function whose domain does not contain the interval, such -%as \verb=(x-1)^(1/2)=. -\end{questions} - -%\exPDF{jquiztst} See the file \href{\bUrl/webeq_ex.html\#jquiztst} -%{jquiztst.pdf} for various examples of the math questions. - -\exAeBBlogPDF{p=810} See the PDF file -\texttt{\href{\urlAcroTeXBlog/?p=810}{jquiztst.pdf}} for various examples of -the math questions. - -\newtopic\indent -By using the optional first parameter, you can modify the appearance -of the field ``locally.'' There is also a ``global'' mechanism as well: - -\newtopic\textbf{Global Modification:} \cs{everyeqTextField}, \cs{everyRespBoxMath} - -\newtopic The first one modifies the appearance of every quiz text field, -and the second can be used to modify all fields created using -\cs{RespBoxMath}. - -\redpoint See the document \href{eformman.pdf}{eformman.pdf} for complete -documentation on how to modify a field using the optional first -argument, and how to use the ``every'' command.\footnote{eforms manual on Web: \url{\bUrl/eformman.pdf}} - -\subsubsection{\texorpdfstring{\protect\cs{RespBoxTxt}}% - {\textbackslash RespBoxTxt}: The Text Question}\label{ss:respboxtxt} - -You can also pose a question that takes a simple text response. The -basic command for posing this type of question is -\cs{RespBoxTxt}. Consider the example given -earlier: -\begin{oQuestion}{exTxt1} -\redpoint Name the probability -distribution popularly referred to as the ``bell-shaped curve''.\\ -\mbox{\strut\RespBoxTxt{0}{0}{4}{Normal}{Normal Distribution}% -{Gaussian}{Gaussian Distribution}} -%\raisebox{-3bp}{\RespBoxTxt{0}{0}{4}{Normal}{Normal Distribution}% -%{Gaussian}{Gaussian Distribution}} -\end{oQuestion} - -The underlying JavaScript compares the user's response against -acceptable alternatives, as supplied by the author of the -question. If there is a match, the response is deemed correct. - -The code for this example is -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{exTxt1} -\redpoint Name the probability distribution popularly -referred to as the ``bell-shaped curve''.\\ -\RespBoxTxt{0}{0}{4}{Normal}{Normal Distribution}% -{Gaussian}{Gaussian Distribution} -\end{oQuestion} -\end{Verbatim} - -\noindent The command \cs{RespBoxTxt} takes five or more parameters. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\RespBoxTxt[#1]#2#3[#4]#5!ameta(list of alternatives) -\end{Verbatim} -\noindent\textbf{\hypertarget{paraRespBoxTxt}{Parameters:}} -\begin{description} -\item[\ttfamily\#1 :] Optional parameter used to modify the appearance of the - text field. See the section entitled \nameref{sss:CorrButton}, - page~\pageref*{sss:CorrButton} for examples, and - \textsf{exerquiz.dtx} for a listing of all controlling macros. -\item[\ttfamily\#2 :] This required parameter is a number that indicates -the filtering method to be used. Permissible values of this parameter are -\begin{description} - \item[\ttfamily -1: ] (The default) The author's and user's answers are not filtered - in any way. (Spaces, case, and punctuation are preserved.) - \item[\ttfamily 0: ] The author's and user's answers are converted to - lower case, any white space and non-word characters are removed. - \item[\ttfamily 1: ] The author's and user's answers are converted to - lower case, any white space is removed. - \item[\ttfamily 2: ] The author's and user's answers are stripped of any - white space. -\end{description} -See the JavaScript function \texttt{eqFilter} in \texttt{exerquiz.dtx} for the -program code details. Additional filtering options may be added. - -\item[\ttfamily\#3 :] This parameter a number that indicates the compare -method to be used. Permissible values of this parameter are -\begin{description} - \item[\ttfamily 0: ] (The default) The author's and user's answers are - compared for an exact match. (These answers are filtered before they are - compared.) - \item[\ttfamily 1: ] The user's response is searched in an attempt to - get a substring match with the author's alternatives. Additional comparison - methods may be added. -\end{description} -See the JavaScript function \texttt{compareTxt} in \texttt{exerquiz.dtx} for the -program code details. - -\item[\ttfamily\#4 :] Optional, a named destination to the solution -to the question. If this parameter appears, then a solution must -follow the question, enclosed in a \texttt{solution} environment. If -the fourth parameter is a `\texttt*', then an automatic naming scheme -is used instead. -\item[\ttfamily\#5 :] This required parameter is the number of alternative -answers that are acceptable. The alternative answers are listed -immediately after this parameter. (The example above specified -that 4 alternatives follow.) -\end{description} - -%\exPDF{jtxttst} See the file \href{\bUrl/webeq_ex.html\#jtxttst} -%{jtxttst.pdf} for examples of the differences between various combinations -%of filtering rules and comparison methods. - -\exAeBBlogPDF{p=813} See the PDF file -\texttt{\href{\urlAcroTeXBlog/?p=813}{jtxttst.pdf}} for examples of the -differences between various combinations of filtering rules and comparison -methods. - - -\newtopic By using the optional first parameter, you can modify the appearance -of the field ``locally''. There is also a ``global'' mechanism as well: - -\newtopic\textbf{Global Modification:} \cs{everyeqTextField} and \cs{everyRespBoxTxt} - -\newtopic The first mechanism modifies the appearance of every quiz text -field, the second can be used to modify all fields created using -\cs{RespBoxTxt}. - -\redpoint See the document \href{eformman.pdf}{eFormMan.pdf} on -\textit{\href{eformman.pdf}{eForm Support}} for complete -documentation on how to modify a field using the optional first -argument, and how to use the ``every'' command.\footnote{eforms manual on Web: \url{\bUrl/eformman.pdf}} - -\subsubsection{\texorpdfstring{\protect\cs{RespBoxTxtPC}}% - {\textbackslash RespBoxTxtPC}: The Text Question with Partial Credit}\label{ss:respboxtxtpc} - -\textsf{Exerquiz} can now create text fill-in questions that awards -credit each time one of the key words are found in the student's input string. - -\newtopic The command \cs{RespBoxTxtPC} is the one that creates a text fill-in question. Its -syntax is -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] -\RespBoxTxtPC[#1]#2[#3]#4[!meta(num1)]{!meta(word1)}...[!meta(num_n)]{!meta(word_n)} -\end{Verbatim} -The new command \cs{RespBoxTxtPC} behaves differently than \cs{RespBoxTxt}. -JavaScript performs a regular expression search for each word listed (the word, -can be a regular expression), if the word is found (the search is successful), the total credit -for this problem is incremented by the amount associated with the word. - -\medskip\noindent\textbf{\hypertarget{paraRespBoxTxtPC}{Parameters:}} -\begin{enumerate} -\item[\ttfamily\#1:]Optional parameter used to modify the appearance of the - text field. -\item[\ttfamily\#2:]This required parameter is a number indicating -the filtering method to be used. Permissible values of this parameter are -\begin{enumerate} - \item[\ttfamily-1:] (The default) The author's and user's answers are not filtered - in any way. (Spaces, case, and punctuation are preserved.) - \item[\ttfamily0:] The author's and user's answers are converted to - lower case, any white space and non-word characters are removed. - \item[\ttfamily1:] The author's and user's answers are converted to - lower case, any white space is removed. - \item[\ttfamily2:] The author's and user's answers are stripped of - white space. - \item[\ttfamily 3:] Same as -1, but a case insensitive search is performed. - \emph{This is the recommended value for this function.} -\end{enumerate} -See the JavaScript function \texttt{eqFilter} in \texttt{exerquiz.dtx} for -program code details. Additional filtering options may be added. - -\textbf{Recommendation:} For \cs{RespBoxTxtPC}, use either~-1 -(case sensitive search) or~3 (case insensitive search). - -\item[\ttfamily\#3:] Optional, a named destination to the -solution to the question. If this parameter appears, then a -solution must follow the question, enclosed in a \texttt{solution} -environment. If the third parameter is a `\texttt*', then an automatic -naming scheme is used instead. -\item[\ttfamily\#4:] This required parameter is the -number of alternative answers that are acceptable. The alternative -answers are listed immediately after this parameter. -\item[]The parameters that follow \texttt{\#4} are of the form -\texttt{[\meta{num}]\darg{\meta{word}}}. The \texttt{[\meta{num}]} is the amount of credit -the user gets if his answer contains \meta{word}. Actually, -\texttt{\meta{word}} can be a regular expression so that a more sophisticated -search criteria can be set up. This is illustrated in the examples above, -and explained below. - -A \cs{RespBoxTxtPC} question is deemed correct (and marked with a green rectangle, -in the case of a quiz) if at least one of the words is found. - -If a word does not have a partial credit \texttt{[\meta{num}]} before it, that word has a partial -credit of zero, and may as well not be included in the list of words. -\end{enumerate} - -%\exPDF{jtxttst_pc} The demo file for this section is \texttt{jtxttst\_pc.tex}. -%The file contains extensive examples, and discusses techniques of searching -%using regular expressions. - -\exAeBBlogPDF{p=296} The demo file for this section is -\texttt{\href{\urlAcroTeXBlog/?p=296}{jtxttst\_pc.pdf}}. The file contains -extensive examples, and discusses techniques of searching using regular -expressions. - - - -\subsection{Some Enhancements}\label{enhancements} - -There are several enhancements to the math (using \cs{RespBoxMath}) -and text (using \cs{Resp\-Box\-Txt}) open-ended question beyond the -minimal examples given earlier. These enhancements can be used -within the \texttt{oQuestion}, the \texttt{shortquiz}, and the -\texttt{quiz} environments. - -\subsubsection{Including an Answer Key with \texorpdfstring -{\protect\cs{CorrAnsButton}}{\textbackslash CorrAnsButton}} - -The correct solution can be included in the question as well; just include -the command \cs{Corr\-Ans\-Button}. This command takes one parameter, the correct -answer that will be viewed when the user clicks on the button. - -The example below also illustrates the (optional) third parameter of -\cs{RespBoxMath}. Here we pose the question in the variable $t$ rather -than the default variable of $x$. -\begin{oQuestion}{sine2} -\redpoint Differentiate\\[1ex] -$\dfrac d{dt} \sin^2(t) =$ -\RespBoxMath{2*sin(t)*cos(t)}(t){4}{.0001}{0}{1}\kern1bp\CorrAnsButton{2*sin(t)*cos(t)} -\end{oQuestion} - -\medskip\noindent -The listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{sine2}\\[1ex] -\redpoint Differentiate $\dfrac d{dt} \sin^2(t) =$ -\RespBoxMath{2*sin(t)*cos(t)}(t){4}{.0001}{0}{1}\kern1bp -\CorrAnsButton{2*sin(t)*cos(t)} -\end{oQuestion} -\end{Verbatim} - -\noindent The \cs{CorrAnsButton} takes one parameter, the correct answer. -This answer is (usually) the same as the one given as the second -argument (the optional argument is the first) in the \cs{RespBoxMath} -command. - -\redpoint The \cs{CorrAnsButton} also controls access to the (optional) solution, see -the next section. - -\subsubsection{Including a Solution}\label{inclsoln} - -In addition to a correct answer, you can also include a solution -to the question. Insert the optional fourth parameter---fourth for both -\cs{RespBoxMath} and \cs{RespBoxTxt}---into the parameter list giving the name of -the destination to the solution. Follow the question by a \texttt{solution} -environment containing the solution. - -The user \texttt{Shift-Click}s on the \cs{CorrAnsButton} button to jump -to the solution. - -\begin{oQuestion}{sine3} -\redpoint Differentiate\\[1ex] -$\dfrac d{dt} \sin^2(t) =$ -\RespBoxMath{2*sin(t)*cos(t)}(t)[sine3]{4}{.0001}{0}{1}\kern1bp\CorrAnsButton{2*sin(t)*cos(t)} -\begin{solution} -\[ - \frac d{dx}\sin^2(x) = 2\sin(x)\cos(x) = \sin(2x) -\] -\end{solution} -\end{oQuestion} - -\medskip\noindent -The listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{sine3}\\[1ex] -\redpoint Differentiate $\dfrac d{dt} \sin^2(t) =$ -\RespBoxMath{2*sin(t)*cos(t)}(t)[sine3]{4}{.0001}{0}{1}\kern1bp -\CorrAnsButton{2*sin(t)*cos(t)} -\begin{solution} -\[ - \frac d{dx}\sin^2(x) = 2\sin(x)\cos(x) = \sin(2x) -\] -\end{solution} -\end{oQuestion} -\end{Verbatim} - -\redpoint The \cs{CorrAnsButton} works the same way for the \texttt{shortquiz} and -the \texttt{quiz} environments. - -\newtopic Actually, \cs{CorrAnsButton} has an optional argument. The full syntax is -\settowidth{\aebdimen}{\cs{CorrAnsButton\darg{\meta{display\_answer}}*\darg{\meta{JS\_function}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\CorrAnsButton{!meta(display_answer)}*{!meta(JS_function)} -\end{dCmd} -\newtopic When the \texttt* is detected following the \meta{display\_answer}, the \meta{JS\_function} -is used to evaluate \meta{display\_answer}, before displaying it. There is -one built-in function called \texttt{EvalCorrAnsButton}, the definition of -which is -\begin{Verbatim}[xleftmargin=\amtIndent] -function EvalCorrAnsButton(fieldname,theanswer) -{ - theanswer = eval(theanswer); - DisplayAnswer(fieldname,theanswer); -} -\end{Verbatim} -Other JavaScript functions may be defined using the \texttt{insDLJS} environment, then -passed to \cs{CorrAnsButton} with the optional argument. - -An example of this optional parameter is - -\begin{oQuestion}{add1} -\redpoint Perform the indicated operation, and enter -result into the box.\\[1ex] -$ \text{9} + \text{8} =$ -\RespBoxMath{9 + 8}{1}{.0001}{[0,1]}\kern1bp\CorrAnsButton{9 + 8}*{EvalCorrAnsButton}\kern1bp -\sqTallyBox -\end{oQuestion} - -\medskip\noindent -The listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{add1} -\redpoint Perform the indicated operation, and enter -result into the box.\\[1ex] -$ 9 + 8 = $ -\RespBoxMath{9 + 8}{1}{.0001}{[0,1]}\kern1bp - \CorrAnsButton{9 + 8}*{EvalCorrAnsButton}\kern1bp -\sqTallyBox -\end{oQuestion} -\end{Verbatim} - - -\subsubsection{Including a Tally Box} - -The macro \cs{sqTallyBox} is used to keep a running total of the -number of wrong answers a user has entered into the response box. - -For example, - -\begin{oQuestion}{sine4} -\redpoint \hypertarget{exofT}{Differentiate}\\[1ex] -$\dfrac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1}\kern1bp\CorrAnsButton{2*sin(x)*cos(x)}\kern1bp -\sqTallyBox -\end{oQuestion} - -\medskip\noindent -The listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{sine4} -\redpoint Differentiate\\[1ex] -$\dfrac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1}\kern1bp -\CorrAnsButton{2*sin(x)*cos(x)}\kern1bp -\sqTallyBox -\end{oQuestion} -\end{Verbatim} - -\redpoint The tally box can be used within the \texttt{oQuestion} -and \texttt{shortquiz} environments; in the \texttt{quiz} -environment, no tally box is used. - -\subsubsection{Clearing the Fields} - -For the \texttt{oQuestion} and the \texttt{shortquiz} -environments, you can clear the response box fields by placing -insert \cs{sqClearButton}. - - -\begin{oQuestion}{sine5} -\redpoint Differentiate\\[1ex] -$\dfrac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1}\kern1bp\CorrAnsButton{2*sin(x)*cos(x)}\kern1bp -\sqTallyBox\kern1bp\sqClearButton -\end{oQuestion} - - -\medskip\noindent -The listing follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{sine5} -\redpoint Differentiate\\[1ex] -$\dfrac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1}% -\CorrAnsButton{2*sin(x)*cos(x)}\kern1bp -\sqTallyBox\kern1bp\sqClearButton -\end{oQuestion} -\end{Verbatim} - -\newtopic Notice that I've inserted a \cs{kern1bp} to separate the -two fields \cs{sqTallyBox} and \cs{sq\-Clear\-Button}. This is to keep -their borders from overlapping. - -\subsection{More on Math Fill-in Questions}\label{s:moremath} - -This section covers rules for author and user input into a math fill-in question. - -\subsubsection{Comments on Authoring}\label{s:mathauthoring} - -When authoring a math fill-in, that is, when using \cs{RespBoxMath} to -construct a question, several things must be kept in mind. - -\begin{itemize} - \item The \hyperref[paraRespBox]{second parameter} of \cs{RespBoxMath}, -\begin{Verbatim}[xleftmargin=\amtIndent] -\RespBoxMath[#1]#2(#3)[#4]#5#6#7#8[#9]*#10 -\end{Verbatim} - is the correct answer parameter. You need not compute the - correct answer, you can let the JavaScript of exerquiz do that. - For example, if the answer is $\sqrt{2}$ you can enter - \texttt{sqrt(2)}. All the rules of entering user input outlined - in the next section on - \begin{NoHyper}`\nameref{ss:userinput}'\end{NoHyper} holds for - this second parameter as well. - - \item[] If you choose to restrict user input in some way, perhaps using the \texttt{limitArith} - option of \textsf{dljslib}, these limitations only apply to the user input, not to the author's - input in parameter \texttt{\#2}. See \Nameref{limitArith} for more information on how to limit - arithmetic operations. - - \item The question must posed so as to make it clear to the student what is expected - by way of input into the text field, an expression, an equation, and so on. - -\end{itemize} - -\subsubsection{Comments on User Input}\label{ss:userinput} - -When responding to a Math Fill-in question, the student responds by typing -in an answer. The following notation is expected by \textsf{exerquiz}. - -\begin{itemize} -\item Use \texttt{*} to indicate multiplication: Type \texttt{4*x} for $4x$. - -\item[] If the \texttt{ImplMulti} option of the \textsf{dljslib} package is taken, then the - student need only type in \texttt{4x} for $4x$. Exerquiz attempts to - insert the multiplication symbol \texttt{*} by parsing the user input. - For information on, see the section on \Nameref{ImplMulti}. - -\item Use \verb|^| to indicate powers: Type \verb|4*x^3| for -$4x^3$; \verb|12*x^-6| for $12x^{-6}$. Again, if the \texttt{ImplMulti} option is taken, -entering \verb|12x^-6| is sufficient. - -\item Use parentheses to delimit the argument of a function; that is, type -\texttt{sin(x)}, rather than \texttt{sin~x}. - -\item Use parentheses to define the \textit{scope} of an operation: Type \verb|4*x*(x^2+1)^3| for $4x(x^2+1)^3$; - \verb|4^(2*x+1)| for $4^{2x+1}$; \verb|(sin(x))^2| for $(\sin(x))^2$. \textit{Do not} type an expression like - \verb|sin^2(x)| for $\sin^2(x)$, type \verb|(sin(x))^2| instead. - -\item[] If the \texttt{ImplMulti} option of the \textsf{dljslib} package is taken, - the use of \texttt{*} is unnecessary, but also the simplified notation for powers - of functions is supported, now you can type \verb|sin^2(x)| for $\sin^2(x)$. - -\item Brackets \texttt{[ ]} or braces \texttt{\{ \}} can be used -to delimit mathematical expressions. - -\item Functions that are recognized: -\begin{itemize} - \item Trig: \texttt{sin}, \texttt{cos}, \texttt{tan}, \texttt{cot}, \texttt{sec}, \texttt{csc}. - \item Inverse Trig: \texttt{arcsin} (or \texttt{asin}) , \texttt{arccos} (or \texttt{acos}), - \texttt{arctan} (or \texttt{atan}). - \item Logarithms: \texttt{ln} for natural logs, and \texttt{log} for common logs. - For example, \texttt{ln(x)} or \texttt{log(x)}. - \item Exponential: The natural exponential function, $e^x$, - can be entered as \texttt{exp(x)} or as \verb|e^x|. - \item The absolute function, \texttt{abs($\cdot$)} can also be written - in the usual way \texttt{|$\cdot$|}; thus, you can type either - \texttt{abs(x)} or \texttt{|x|}. - \item Misc.: \texttt{sqrt}, usage \texttt{sqrt(x)} for $\sqrt{x}$ (or, use - exponential notation: \verb|x^(1/2)|). - \item[] When the \texttt{combinatorics} option of \textsf{dljslib} is taken, the binomial coefficient function - \texttt{C(n,r)}, the permutation function \texttt{P(n,r)}, and the factorial function - \texttt{fact}, are defined. See \Nameref{combinatorics} for additional details. -\end{itemize} -\end{itemize} -A variation of these listings should appear as instructions to the student on how to enter -math fill-in questions. - -\newtopic When a user enters a response, some attempt is made to -determine whether the response is a valid mathematical expression. -For example, if \texttt{san(x)} is entered, the function `\texttt{san}' will -not be recognized as a valid mathematical function; an error -message is generated, and the user is not penalized for a possible -typing error. The JavaScript routines will also check for -unbalanced parentheses; thus, \verb|((x^4+1) + sin(x)^2| will be -flagged as a syntax error. - -\Important The student must use the variables declared for the -problem when entering mathematical expressions. If the problem -statement involves the variable $x$, then \texttt{x} must be used; -if the problem statement uses $t$, then \texttt{t} must be used. -To enter an expression using $t$ when an expression with variable $x$ is expected will, -no doubt, result in missed problem. - -\subsection{The \texttt{shortquiz} Environment}\label{s:oQsq} - -The objective question (with or without the presence of a -correction box, \cs{corr\-Ans\-Button} or a tally box \cs{sqTallyBox}) -can be mixed in with multiple choice questions. - -Solutions to the questions can also be included using a -\texttt{solution} environment. Click on the ``Ans'' button to get -the answer to a question; shift-click on the ``Ans'' button to get -the solution. - -\begin{shortquiz}[oQsq] -Answer each of the following. Passing is 100\%. - -\begin{questions} -\item If $f$ is differentiable, then $f$ is continuous. -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers}\hfill\sqTallyBox - -\item $\displaystyle\frac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}[sinsqx]{4}{.0001}{0}{1}% -\hfill\CorrAnsButton{2*sin(x)*cos(x)}% -\kern1bp\sqTallyBox -\begin{solution} -\[ - \frac d{dx}\sin^2(x) = 2\sin(x)\cos(x) = \sin(2x) -\] -\end{solution} - -\item Name \emph{one} of the two people recognized as a founder of -Calculus.\vadjust{\kern3pt}\newline -\RespBoxTxt{2}{0}[newton]{5}% -{Isaac Newton}{Newton}{I. Newton}{Gottfried Leibniz}{Leibniz}\hfill -\CorrAnsButton{Isaac Newton or Gottfried Leibniz}\kern1bp\sqTallyBox -\end{questions} -\begin{solution} -Yes, Isaac Newton and Gottfried Leibniz are considered founders of -Calculus. -\end{solution} -\end{shortquiz}%\hfill -%\begin{flushright} -%\sqClearButton\kern1bp\sqTallyTotal -%\end{flushright} - -\redpoint When using objective questions within a -\texttt{shortquiz} environment, you must give a unique field name -as an optional argument of the environment. The listing of this -example follows: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{shortquiz}[oQsq] % <-- unique field name -Answer each of the following. Passing is 100\%. -\begin{questions} - -\item If $f$ is differentiable, then $f$ is continuous. -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers}\hfill\sqTallyBox - -\item $\displaystyle\frac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}[sinsqx]{4}{.0001}{0}{1}% -\hfill\CorrAnsButton{2*sin(x)*cos(x)}% -\kern1bp\sqTallyBox -\begin{solution} -\[ - \frac d{dx}\sin^2(x) = 2\sin(x)\cos(x) = \sin(2x) -\] -\end{solution} - -\item Name \emph{one} of the two people recognized -as a founder of Calculus.\vadjust{\kern3pt}\newline -\RespBoxTxt{2}{0}[newton]{5}{Isaac Newton}{Newton}{I. Newton}% -{Gottfried Leibniz}{Leibniz}\hfill -\CorrAnsButton{Isaac Newton or Gottfried Leibniz}% -\kern1bp\sqTallyBox -\begin{solution} -Yes, Isaac Newton and Gottfried Leibniz are considered -founders of Calculus. -\end{solution} -\end{questions} -\end{shortquiz} -\begin{flushright} -\sqClearButton\kern1bp\sqTallyTotal %<-- total tally -\end{flushright} -\end{Verbatim} - -\noindent\textbf{Example Notes:} -\begin{itemize} -\item Note the optional argument gives this collection of -questions a common base name. All supporting macros use this name. -\item The named destination to the solution is entered with parameter -\texttt{\#5} of the command \hyperref[paraRespBox]{\cs{RespBoxMath}}, and with parameter -\texttt{\#4} of \hyperlink{paraRespBoxTxt}{\cs{RespBoxTxt}}. -\item In this example, another built-in macro, -\cs{sqTallyTotal} was used. This macro creates a text field that -accumulates the totals of all the tally boxes. -\end{itemize} - -\redpoint The \texttt{shortquiz} environment can also be used for -a single objective question. Just don't use the -\texttt{questions} environment within. - -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{shortquiz}[anExample] - !ameta(an objective style question) -\end{shortquiz} -\end{Verbatim} - - -\subsection{The \texttt{quiz} Environment}\label{s:oQquiz} - -Objective questions can be mixed in with multiple choice questions -within the \texttt{quiz} environment. When posing an objective -style question in the \texttt{quiz} environment, use -\cs{RespBoxMath} and \cs{RespBoxTxt}, and optionally include -the \cs{CorrAnsButton} button and the \cs{AnswerField} text field. - -Since the evaluation of the quiz is delayed until the user has -finished the quiz, the \cs{sqTally\-Box} macro is not applicable here. - -\begin{quiz*}{oQq} -Answer each of the following. Passing is 100\%. - -\begin{questions} -\item If $f$ is differentiable, then $f$ is continuous. -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} - -\item $\displaystyle\frac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}[sinsqx2]{4}{.0001}{0}{1}% -\hfill\CorrAnsButton{2*sin(x)*cos(x)}% -\begin{solution} -\[ - \frac d{dx}\sin^2(x) = 2\sin(x)\cos(x) = \sin(2x) -\] -\end{solution} - -\item Name \emph{one} of the two people recognized as a founder of -Calculus.\vadjust{\kern3pt}\newline -\RespBoxTxt{2}{0}[leibniz]{5}{Isaac Newton}{Newton}{I. Newton}{Gottfried Leibniz}{Leibniz}\hfill -\CorrAnsButton{Isaac Newton or Gottfried Leibniz} -\begin{solution} -Yes, Isaac Newton and Gottfried Leibniz are considered -founders of Calculus. -\end{solution} - -\end{questions} -\end{quiz*}\quad\ScoreField{oQq}\CorrButton{oQq} - -\noindent Answers: \AnswerField{oQq} - -\redpoint The buttons created by \cs{CorrAnsButton} are hidden -until the user ends the quiz (and gets scored) and clicks on the -corrections button (\cs{CorrButton}). The \cs{Corr\-Ans\-Button} should -not be included if there is no \cs{CorrButton}. - -\redpoint Pressing on the ``Ans'' button populates the text -field created by \cs{AnswerField} with the author's correct answer. -If there is a solution to the problem, the ``Ans'' button -is outlined in green. Shift-click on the ``Ans'' button to jump to -the solution. - -\redpoint The \texttt{quiz} environment requires a field name. -This same name is used by the objective style question as well. - -\medbreak - -The listing for the above example follows. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{quiz*}{oQq} -Answer each of the following. Passing is 100\%. -\begin{questions} - -\item If $f$ is differentiable, then $f$ is continuous. -\begin{answers}{4} -\Ans1 True & \Ans0 False -\end{answers} - -\item $\displaystyle\frac d{dx} \sin^2(x) =$ -\RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{0}{1}% -\hfill\CorrAnsButton{2*sin(x)*cos(x)}% - -\item Name \emph{one} of the two people recognized -as a founder of Calculus.\vadjust{\kern3pt}\newline -\RespBoxTxt{2}{0}[leibniz]{5}{Isaac Newton}{Newton}{I. Newton}% -{Gottfried Leibniz}{Leibniz}\hfill -\CorrAnsButton{Isaac Newton or Gottfried Leibniz} -\begin{solution} -Yes, Isaac Newton and Gottfried Leibniz are considered -founders of Calculus. -\end{solution} -\end{questions} -\end{quiz*}\quad\ScoreField{oQq}\CorrButton{oQq} - -\noindent Answers: \AnswerField{oQq} -\end{Verbatim} - -\noindent The \cs{AnswerField} has the following syntax: -\settowidth{\aebdimen}{\cs{AnswerField[\anglemeta{field\_opts}]\darg{\meta{base\_name}}}}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\AnswerField[!anglemeta(field_opts)]{!meta(base_name)} -\end{dCmd} -\noindent The parameter \anglemeta{field\_opts} is the typical optional -parameter for all \textsf{eform} fields; it is used to change the appearance -of the field. The parameter \meta{base\_name} is the (base) name of the quiz -this field will hold the answers for. - -You may have \cs{AnswerField} commands on several pages---possibly for -different quizzes. By using the command \cs{resetAnsFieldOnClose}, the -answer field for the current quiz will be cleared when the page containing -it closes. You can revert back to the default behavior (answer fields not cleared) by executing -\cs{noResetAnsFieldOnClose}. - -\redpoint There are some additional grade reporting and statistical fields -defined: \textsf{exerquiz} defines \cs{PointsField}, \cs{PercentField}, and \cs{GradeField}. -The demo file \texttt{quizpts.tex} illustrates these commands; see also -the section below entitled \nameref{sss:asignPts}. - -\subsubsection{The Prompt Button} - -In addition to the \cs{CorrAnsButton}, the document author can -provide a prompt button (probably not the best descriptive term). - -For some quizzes, the author might want to ask a series of -questions where the answer to one question depends on the correct -answer of a previous question. In this situation, you'd like to -provide the correct answer so the student can make a good run at -the next question. The \cs{@PromptButton} not only provides the -answer to the question but it also makes the corresponding math -fill-in read only, so that the student cannot change the answer -already provided. - -Ideally, the student first enters an answer, and once satisfied -with the answer, can then get the correct answer for future -questions. - -%\redpoint See the demo file \texttt{prompt\_tst.tex} for an example of usage. - -\exAeBBlogPDF{p=888} See the demo file \texttt{\href{\urlAcroTeXBlog/?p=888}{prompt\_tst.pdf}} from the {\AcroBlog} -for an example of usage. - -\subsubsection{Grouped Math/Text Fill-in Questions}\label{grouped} - -\textsf{Exerquiz} defines a grouping environment, \texttt{mathGrp}, -for math fill-in and \emph{text fill-in} questions where the response to the question -might require entering text into multiple math fill-in fields. - -When you use the \texttt{mathGrp} environment to enclose a set of -related math questions, you need to use the \cs{CorrAnsButtonGrp} -button, instead of the \cs{CorrAnsButton} button. The required -argument for this button is a comma delimited list of the answers -that appear within the grouped questions. The answers should be -listed in the same order {\TeX} processes the math (or text) -questions. The group of questions is processed as if it were a -single question. - -\redpoint For example\dots - -\noindent \begin{minipage}{\linewidth} -\useBeginQuizButton[\textColor{0 0 1}\CA{Begin}\AC{}\RC{}\rectW{}] -\useEndQuizButton[\textColor{0 0 1}\CA{End}\AC{}\RC{}\rectW{}] -\begin{quiz*}{grpExample}\PTsHook{($\eqPTs^{\text{pts}}$)}\PTs{3} -Compute the following cross product: -\begin{equation*} -\def\vi#1{\setlength{\fboxrule}{0pt}\setlength{\fboxsep}{1bp} -\fbox{\RespBoxMath[\rectW{11bp}\Q{1}\textSize{0}]{#1}{1}{.0001}{[0,1]}}} -% - (3\vec i - 2\vec j) \times (\vec i + 5\vec k) = \begin{mathGrp}\PTs*{1} - \vi{-10}\,\vec i + \vi{-15}\, \vec j + \vi{2}\,\vec k - \end{mathGrp}\tag*{\CorrAnsButtonGrp{-10,-15,2}} -% -\end{equation*} -\end{quiz*}\ $\underset{\text{ScoreField}}{\underbrace{\ScoreField[\DV{}\V{}\rectW{1in}]\currQuiz}}$% - \kern1bp$\underset{\text{PointsField}}{\underbrace{\PointsField[\rectW{1in}]\currQuiz}}$\CorrButton[\CA{Correct}\AC{}\RC{}]\currQuiz - \hfill Ans: \AnswerField[\rectW{.5in}]\currQuiz -\end{minipage} - -\medskip\noindent -\textbf{Notes:} -\begin{questions} -\item[\color{blue}\ding{042}] If you miss any one of the three -answers, the \texttt{ScoreField} reports back `\texttt{Score: 0 -out of 1}'. There is only one question there, to get it correct, -you must answer all three inputs correctly. - -\item[\color{blue}\ding{042}] Points can be assigned to the individual - responses and a score is given based on the validity of the inputs and - the corresponding points. There is a default JavaScript function that - scores the results. The author can define a custom JavaScript function - to have a more ``exotic'' method of evaluating the group. See the - test file \texttt{grp\_test.tex} for details. - -\item[\color{blue}\ding{042}]Notice that after you take the quiz -and click on ``Correct'' button, the ``Ans'' button appears (as -usual). If you click repeatedly on this ``Ans'' button, you can -cycle through all answers to this question; the response box is -highlighted (or put in focus) and the answer appears in the answer -field provided. -\end{questions} - -\redpoint See the demo file \texttt{grp\_test.tex} for the source -code of this example, as well as more technical details of the -\texttt{mathGrp} environment. - -\subsection{Modifying Form Elements} - -All form elements have a first optional parameter for modifying their appearance, -and they have an associated ``every'' command for global modifications as well. - -\begin{center} -\setlength{\extrarowheight}{1mm} -\setlength{\tabcolsep}{2mm} -\begin{longtable}{|>{\ttfamily}l|>{\PBS\raggedright}p{.5\linewidth}|} -\hline -\multicolumn2{|c|}{\bfseries Global Modification Commands} \\ -\hline -\endfirsthead -\hline -\multicolumn2{|c|}{\bfseries Global Modification Commands} \\ -\hline -\endhead -\hline -\endfoot -\multicolumn2{|c|}{For the \texttt{shortquiz} Environment} \\ -\hline -\cs{Ans} & \cs{everysqRadioButton}\\ -\cs{sqTallyBox} &\cs{everysqTallyBox}\\ -\cs{sqTallyTotal}& \cs{everysqTallyTotal}\\ -\cs{sqClearButton}&\cs{everysqClearButton}\\\hline -\multicolumn2{|c|}{For the \texttt{quiz} Environment} \\ \hline -\cs{useBeginQuizButton}&\cs{everyBeginQuizButton}\\ -\cs{useEndQuizButton}&\cs{everyEndQuizButton}\\ -\cs{Ans} & \cs{everyqRadioButton}\\ -\cs{ScoreField}&\cs{everyScoreField}\\ -\cs{CorrButton}&\cs{everyCorrButton}\\ -\cs{AnswerField}&\cs{everyAnswerField}\\ -\cs{PointsField}&\cs{everyPointsField}\\ -\cs{PercentField}&\cs{everyPercentField}\\ -\cs{GradeField}&\cs{everyGradeField}\\\hline -\multicolumn2{|c|}{For Both Environments} \\ \hline -\cs{RespBoxMath}&\cs{everyRespBoxMath}\\ -\cs{RespBoxTxt}&\cs{everyRespBoxTxt}\\ -\cs{CorrAnsButton}&\cs{everyCorrAnsButton} -\end{longtable} -\end{center} - -\handpoint In additional to these, there are other ``every'' commands that effect -the appearance of the various buttons and text fields. The two commands -\cs{everyCorrButtonField} and \cs{every\-eqText\-Field} are executed before every -\texttt{exerquiz} button and text field (respectfully). These can be used to give -a general uniform appearance for all the short quiz or quiz form elements; use -the more specific version, as listed in the above table, to make additional refinements -in appearance. - -\redpoint See the document \href{eformman.pdf}{eformman.pdf} (relative link -\href{eformman.pdf}{eformman.pdf}) for complete documentation on how to -modify a field using the optional first argument, and how to use the -``every'' mechanism. - -\subsection{Inserting additional action and format scripts}\label{ss:AddActScripts} - -Global changes in \emph{appearance}, as just discussed, is accomplished using -any of the \cs{every\ameta{cmdname}} family of commands; however, that device -cannot, by design, change any of the actions \pkg{exerquiz} has defined. -S everal key-value pairs are used to insert JavaScript code into response -boxes, multiple choice, and multiple selection fields. -\settowidth{\aebdimen}{\cs{addToAction*\darg{\ameta{key}}\darg{\ameta{code}}}}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\AddAAFormat{!ameta(code)} -\AddAAKeystroke{!ameta(code)} -\AddAAMouseUpMC{!ameta(code)} -\AddAAMouseUpMS{!ameta(code)} -\setActionKeys{!ameta(KV-pairs)} -\addToAction*{!ameta(key)}{!ameta(code)} -\end{dCmd} -\newtopic -The command \cs{setActionKeys} is a special command used to process the -KV-pairs of the \pkg{eforms} package. It only accepts these four keys: -\cs{AddAAFormat}, \cs{AddAAKeystroke}, \cs{AddAAMouseUpMC}, and -\cs{AddAAMouseUpMC}. - - -\begin{description} - \item[\cs{AddAAFormat\darg{\ameta{code}}}] This is an \pkg{eforms} KV, - discussed an some detail on page~\pageref{para:ProcRespSetNum} that can be - specified in the optional argument of any response boxes to affect the - field locally, or globally through the \cs{setActionKeys} command. - \item[\cs{AddAAKeystroke\darg{\ameta{code}}}] Text fields have a keystroke - event (or trigger) that executes JavaScript each time a keystroke is - made into the field. The \pkg{exerquiz} key \cs{AddAAKeystroke} adds - its argument (\ameta{code}) to the keystroke event of all response boxes - (\cs{RespBoxMath}, \cs{RespBoxTxt}, and \cs{RespBoxTxtPC}). - - To distinguish between \env{shortquiz} (and \env{oQuestions}) and - \env{quiz} environments, use the methods explained below in the - description of the \cs{AddAAMouseUpMC} key. - - Should you want code that is specialized to these individual types, you can use - some internal macros to distinguish these three cases. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!(),fontsize=\small] -\setActionKeys{\AddAAKeystroke{% - \ifx\annot@subtype\annot@subtype@rbm!ameta(rbm-code)\else - \ifx\annot@subtype\annot@subtype@rbt!ameta(rbt-code)\else - \ifx\annot@subtype\annot@subtype@rbtpc!ameta(rbtpc-code)\fi - \fi\fi}} -\end{Verbatim} - Within the argument of \cs{setActionKeys} the character `\texttt{@}' is an ordinary letter, - so it can be used freely. - - Within this keystroke event, script executed prior this additional - \ameta{code} defines a JavaScript variable \texttt{retn}, which has a value - of \texttt{true} (if the response is judged correct), \texttt{false} (if - the response is judged incorrect), or \texttt{null} (if there is a syntax - error). The \ameta{code} may use this variable. - - \item[\cs{AddAAMouseUpMC\darg{\ameta{code}}}] This key adds its - \ameta{code} to the mouse up event of items (\cs{Ans}) of a multiple - choice (MC) question. Both \env{shortquiz} and \env{quiz} environments - are affected. - - You can distinguish between the \env{shortquiz} and \env{quiz} - environments by comparing \cs{eqQuizType} with \cs{isSQZ} or \cs{isQZ}. - For example, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\setActionKeys{\AddAAMouseUpMC{% - \if\eqQuizType\isQZ!ameta(qz-code)\else!ameta(sqz-code)\fi}} -\end{Verbatim} - - \item[\cs{AddAAMouseUpMS\darg{\ameta{code}}}] This key adds its - \ameta{code} to the mouse up event of items (\cs{Ans}) of a multiple - selection (MS) question. Both \env{shortquiz} and \env{quiz} - environments are affected. As with \cs{AddAAMouseUpMC}, distinguish - between the environments \env{shortquiz} and \env{quiz} by comparing - \cs{eqQuizType} with \cs{isSQZ} or \cs{isQZ}, as shown above. -\end{description} - In the case of both \cs{AddAAMouseUpMC} and \cs{AddAAMouseUpMS}, you - can distinguish between a correct response and an incorrect response - using the command \cs{Ans@choice}, which expands to 1 when correct - alternative (radio button or check box) is pressed, and expands to 0 - otherwise. For example, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\setActionKeys{\AddAAMouseUpMC{% - \if\Ans@choice1!ameta(true-code)\else!ameta(false-code)\fi}} -\end{Verbatim} -\cs{AddAAKeystroke}, \cs{AddAAMouseUpMC}, and \cs{AddAAMouseUpMC} don't work -as local arguments of \cs{RespBoxMath}, \cs{RespBoxTxt}, and -\cs{RespBoxTxtPC}; however, \cs{AddAAFormat} can be passed within the option -list of these response box commands, the local option command over rights the -global command. - -Remove any of the actions earlier declared by passing the empty argument, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\setActionKeys{\AddAAMouseUpMC{}} -\end{Verbatim} -Now, there is no added code to the mouse up action of the multiple choice -fields that appear afterwards. - -The only command yet to be discussed is \cs{addToAction*}. Suppose we earlier -declared, -\begin{quote}\ttfamily -\cs{setActionKeys\darg{\string\AddAAFormat}\darg{\ameta{code\SUB1}}} -\end{quote} -and later in the document we want to \emph{append} -additional script (\ameta{code\SUB2}). To accomplish this, expand the command, -\begin{quote}\ttfamily -\cs{addToAction\darg{\string\AddAAFormat}\darg{\ameta{code\SUB2}}} -\end{quote} -Now the code executed for each response box -is \ameta{code\SUB1}\ameta{code\SUB2}. However, if you wish to \emph{prepend} the \ameta{code\SUB2}, then -expand \cs{addToAction} using the star-option, -\begin{quote}\ttfamily -\cs{addToAction*\darg{\string\AddAAFormat}\darg{\ameta{code\SUB2}}} -\end{quote} -The code executed for any response box is \ameta{code\SUB2}\ameta{code\SUB1}. - -It should ever be kept in mind that changing the value of a key with -\cs{setActionKeys} is \cs{addToAction} affects all response boxes thereafter, -\emph{unless these changes occur in a group}. Thus, the following change, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{oQuestion}{oQ1} -\addToAction{\AddAAFormat}{\r!ameta(code)}% -It is well known that - $ 1 + 16 = \RespBoxMath{17}{1}{.0001}{[0,1]}$ -\end{oQuestion} -\end{Verbatim} -only affects that problem, and none other. - -\newtopic -\textbf{Important/A little beg.} Any changes to the action script passed to -the component elements of the \env{oQuestion}, \env{shortquiz}, and -\env{quiz} environments \emph{should not impact} the basic functionality of the -environments. - -\subsection{The correct-type math problem} - -The traditional way of posing a mathematical objective-style question is to use -the \cs{RespBoxMath} command, which presents an empty text field for the student to enter -the answer. However, an alternate approach is to pre-populate the field and ask the student -to edit the expression provided to obtain a correct answer. -\collectboxto{\aebbox}{}\bgroup -\begin{minipage}{\linewidth-\mathindent} -\begin{Verbatim}[fontsize=\small,commandchars={!@$}] -\RespBoxMath[!textbf@\DV{cos(4x)}\V{cos(4x)}$] - {4xcos(2x^2)}{2}{.001}{[0,1]} -\end{Verbatim} -\end{minipage}\egroup - -\medskip\noindent\begin{oQuestion}{} -Edit the expression to obtain the correct answer: -\begin{align*} - &\dfrac{d}{dx}\sin(2x^2)=\RespBoxMath[\DV{cos(4x)}\V{cos(4x)}]{4xcos(2x\string^2)}{2}{.001}{[0,1]}\\[3pt] - &\usebox{\aebbox} -\end{align*} -\end{oQuestion} -The field is initially populated by an incorrect answer (a very common mistake), the student needs to -correct the answer. - -\exAeBBlogPDF{p=1335} Refer to the {\AcroTeX} Blog article -\href{\urlAcroTeXBlog/?p=1335}{Correcting a math problem} for additional -examples. The article also discusses the use of multi-letter variables in -this context of a correct-type question. - -\subsection{Evaluating Equivalent Expressions} - -The \hypertarget{EquivExpr}{\cs{RespBoxMath}} macro, and its underlying JavaScript code, is designed to -determine the correctness of an answer, numerical or symbolic. We can pose -such questions as ``find the derivative'' of this function or ``find the (definite or -indefinite) integral'' of that function, and so on. This is all accomplished -by randomly choosing numbers from a specified interval and evaluating both -the user's and author's answer to the question; if they are close to each -other, then the user's answer is called correct. The system works pretty well. - -The \textsf{exerquiz} scheme does not perform well with such questions as -``fully simplify the radical \verb!sqrt(72)!,'' or ``factor the polynomial -\verb!2x^2-4x+2!;'' in both cases, the student can simply type in -the given expression and \textsf{exerquiz} will call them equal. Indeed -it is true that \verb!sqrt(72)! equates to \verb!sqrt(72)! and the polynomial \verb!2x^2-4x+2! -equates to \verb!2x^2-4x+2!, as is shown by evaluating randomly -selected numbers from an interval, \textsf{exerquiz}-style! - -\newtopic To illustrate, we use the problem of simplifying -\verb!sqrt{72}!. - -\begin{shortquiz}[simplfyIllus] -Simplify the following radial expression by factoring out all perfect squares. - -\newcommand{\Msgi}{"We are expecting a simplification of the radical."} -\newcommand{\Msgii}{"Write the simplification in standard form, numerical constants first."} - -\begin{questions} -\item Simplify $\sqrt{72}$ by factoring out all perfect squares. -\begin{equation*} - \sqrt{72} = \RespBoxMath{6sqrt(2)}{1}{.0001}{[0,1]}[{% - priorParse:\Array(nodec,% - \preDenyForm(% - /sqrt\refac{\reany+}\redigit+/,\Msgii),% - \preReqForm(% - /\rechrclass{+-}*\redigit+sqrt\refac{\reany+}/,\Msgi)% - ),% - postParse:\Array(\postDenyForm(/sqrt(\refac{72}|\refac{8})/)% - )% - }]\CorrAnsButton{6sqrt(2)}\kern1bp\sqTallyBox -\end{equation*} -\end{questions} -\end{shortquiz} -\noindent\texttt{Exerquiz} performs its magic by a combination of the -usual \textsf{exerquiz} processing and new pre- and post-parsing -techniques, where appropriate code is passed through of the ninth -parameter of \cs{RespBoxMath}. - -\newtopic The verbatim listing follows.\label{verbReqForm} -\begin{Verbatim}[numbers=left,xleftmargin=\amtIndent,fontsize=\small] -\item Simplify $\sqrt{72}$ by factoring out all perfect squares. -\begin{equation*} - \sqrt{72} = \RespBoxMath{6sqrt(2)}{1}{.0001}{[0,1]}[{% - priorParse:\Array(nodec,% - \preDenyForm(% - /sqrt\refac{\reany+}\redigit+/,\Msgii),% - \preReqForm(% - /\rechrclass{+-}*\redigit+sqrt\refac{\reany+}/,\Msgi)% - ),% - postParse:\Array(\postDenyForm(/sqrt(\refac{72}|\refac{8})/))% - }]\CorrAnsButton{6sqrt(2)}\kern1bp\sqTallyBox -\end{equation*} -\end{Verbatim} -It becomes a bit complicated here. \verb!:-)! The ninth parameter can take a -JavaScript object as its value (The object is opened on line~(3) with a left -brace (\verb!{!) and is closed in line~(11) with a right brace (\verb!}!). -This object has three properties: \texttt{comp} for defining the compare function -(not used in this example); \texttt{priorParse}, which is used to inspect the -user's input to filter out unwanted responses prior to evaluation; \texttt{postParse} is used -to look at the user's answer \emph{after} the \textsf{exerquiz} -evaluation of random points stage. At the \texttt{postParse} stage, it has already -been determined if the user's answer is correct or incorrect, \texttt{postParse} only applies -to answers that are \emph{correct}. - -\paragraph*{The \texttt{priorParse} property.} See also the (brief) description -of \texttt{priorParse} as part of the \hyperref[paraRespBoxNine]{ninth parameter}, -page~\pageref*{paraRespBoxNine}. There are new two built-in filter functions which -are accessed through the helper commands \cs{preDenyForm} and \cs{preReqForm}. As shown -in the verbatim text, they are both enclosed in \cs{Array()}. -\begin{itemize} - \item \cs{preDenyForm}: The idea behind this filter function is to define regular expressions - which if the pattern is present, processing would stop for the user input, and an alert - message would appear; that is, we \emph{deny} the user the use of certain defined patterns. - There is no penalty, the user has a chance to change his/her - answer. \cs{preDenyForm} takes up to two arguments, enclosed in parentheses: -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\preDenyForm(regexp|array_regexps, cMsg) -\end{Verbatim} -The first argument is a regular expression or an array of regular expressions. -The second argument, \texttt{cMsg}, is a string that will be displayed in the alert -box if the pattern or patterns appear in the user's answer. - -When the first argument is an array of regular expressions, the same -message (\texttt{cMsg}) will appear if any one of the patterns is present. -The command may be repeated using additional regular expressions with different -warning messages. - -Let's have a look at the above example, -\begin{Verbatim}[numbers=left,firstnumber=4,xleftmargin=\amtIndent,fontsize=\small] -priorParse:\Array(nodec,% - \preDenyForm(% - /sqrt\refac{\reany+}\redigit+/,\Msgii),% - \preReqForm(% - /\rechrclass{+-}*\redigit+sqrt\refac{\reany+}/,\Msgi)% -),% -\end{Verbatim} -In line~~(4) we begin with \cs{Array} followed by \textsf{dljslib} filter function -\texttt{nodec}, this function denies the use of decimal numbers, it is important -in this problem but not our central focus. In line~(5) we begin with \cs{preDenyForm}, -the arguments are on line~(6). The correct answer is \texttt{6sqrt(2)}, we want -to force the student write the answer in this form, not, for example, as -\texttt{sqrt(2)6} or \texttt{sqrt(2)*6}, while correct, it bad form. (We will deny them bad form!) -This will deny them even if not correct, for example, if the student enters -\texttt{sqrt(3)4}. - -To make it easier on the document author, I've defined a series of ``helper commands,'' -and oh, by the way, you should know how to use regular expressions. Let's now examine -line~(6). First argument is a single regular expression, the second is a command that defines -the string message to be exhibited if this pattern is found (try it on the working example above -to see what the message is). - -Let's now look at the regular expression (\texttt{/.../} in line~(6). -\begin{Verbatim}[numbers=left,firstnumber=6,xleftmargin=\amtIndent,fontsize=\small] -/sqrt\refac{\reany+}\redigit+/ -\end{Verbatim} -We take each in turn. -\begin{itemize} - \item \texttt{sqrt\cs{refac(\cs{reany+)}}}: we search for the string \texttt{sqrt} - followed by the pattern \cs{refac(\cs{reany+)}}. \cs{refac} defines literal parentheses, within - these parentheses can by anything \cs{reany+}. The whole sequence expands - to the pattern `{\def\\{\eqbs\eqbs}\texttt{sqrt\refac{\reany+}}}'. - \item \cs{redigit+}: This command is a macro for one or more digits, it expands - to `{\def\\{\eqbs\eqbs}\texttt{\redigit+}}'. - \item Summarizing, we deny the student from typing in a square root of - anything followed by one or more digits. -\end{itemize} - -\item \cs{preReqForm}: This is the positive version of \cs{preDenyForm}. It uses -the same syntax -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\preReqForm(regexp|array_regexps, cMsg) -\end{Verbatim} -The first argument is a regular expression or an array of regular expressions, the patterns -are ones that we wish to see in the user's answer. If the user's answer does not -fit into any of the patterns, an alert is emitted using the optional string -declared in the second argument, \texttt{cMsg}. The second argument is option, there -is a default, generic string message that will be shown. - -As with \cs{preDenyForm}, let's take a close look at the regular expression. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\rechrclass{+-}*\redigit+sqrt\refac{\reany+}/ -\end{Verbatim} -\begin{itemize} - \item \cs{rechrclass(+-)*} defines a character class consisting of the characters - `\texttt{+-}' the \texttt{*} means zero or more occurrences. (Probably I should use \texttt{?} instead of - \texttt{*}, - meaning 0 or 1 occurrences.) It expands to - `{\def\\{\eqbs\eqbs}\texttt{\rechrclass{+-}*}}'. - \item \cs{redigit+} describes one or more digits, this would expand to - `{\def\\{\eqbs\eqbs}\texttt{\redigit+}}'. - \item sqrt\cs{refac(\cs{reany+)}} is the same as before, it describes - the square root of anything expression. -\end{itemize} -\item[] The \cs{preReqForm} only searches for the specified patterns. For example, -the responses \texttt{sin(PI/2)6sqrt(2)} and \texttt{6sqrt(2)x} pass both the -\cs{preDenyForm} (no digits follow the square root), -and pass the \cs{preReqForm} because both answers have (or do not have) the patterns; -in the former case, the answer is judged correct, and in the latter case, incorrect. -You can try to improve the pattern like so -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -/\rebstr\rechrclass{+-}*\redigit+sqrt\refac{\reany+}\reestr/ -\end{Verbatim} -The \cs{rebstr} (begin string anchor) expands to `\texttt{\^}' and -represents the beginning of the line, while \cs{reestr} (end string anchor) -expands to `\texttt{\$}' represents the end of the line. In this case, the user's answer -is required to begin with an optional plus or minus, followed by one or -more digits, followed by a square root, followed by the end of the line. -\end{itemize} - -\newtopic Here is that same short quiz with the above changes (and \texttt{*} replaced by -\texttt{?}). - -\begin{shortquiz}[simplfyIllus1] -Simplify the following radial expression by factoring out all perfect squares. - -\newcommand{\Msgi}{"We are expecting a simplification of the radical."} -\newcommand{\Msgii}{"Write the simplification in standard form, numerical constants first."} - -\begin{questions} -\item $\sqrt{72}$ -\begin{equation*} - \sqrt{72} = \RespBoxMath{6sqrt(2)}{1}{.0001}{[0,1]}[{% - priorParse:\Array(nodec,% - \preDenyForm(% - /sqrt\refac{\reany+}\redigit+/,\Msgii),% - \preReqForm(% - /\rebstr\rechrclass{+-}?\redigit+sqrt\refac{\reany+}\reestr/,\Msgi)% - ),% - postParse:\Array(\postDenyForm(/sqrt(\refac{72}|\refac{8})/)% - )% - }]\CorrAnsButton{6sqrt(2)}\kern1bp\sqTallyBox -\end{equation*} -\end{questions} -\end{shortquiz} -Now try \texttt{sin(PI/2)6sqrt(2)} or \texttt{6sqrt(2)x}, and other aberrant variations. - -\paragraph*{The \texttt{postParse} property.} After the -\texttt{priorParse} stage, \texttt{exerquiz} checks the answer for correctness, -against the author's answer, using randomly selected numbers. After that comes -the \texttt{postParse} event. The syntax is the same except there is no warning -message. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\preReqForm(regexp|array_regexps) -\end{Verbatim} -If the user's \emph{answer is correct} at this stage \textit{and} fits -into one of the patterns as defined by the regular expressions, the answer -will then be marked wrong. - -Let's look at the post parse code for this example, from line~(10) -on page~\pageref*{verbReqForm}, we see, -\begin{Verbatim}[numbers=left,firstnumber=10,xleftmargin=\amtIndent,fontsize=\small] -postParse:\Array(\postDenyForm(/sqrt(\refac{72}|\refac{8})/))% -\end{Verbatim} -Even though there is not an array of filter functions, a filter function -with arguments must always be enclosed in an array. - -Within the array, we execute our \cs{postDenyForm}, it has only one -argument, a single regular expression: -\verb!/sqrt(\refac{72}|\refac{8})/!.\footnote{The use of alternation here is -not needed, an answer involving \texttt{sqrt(72)} would have been filtered out by the -\cs{preReqForm} filter, do you know why?} There are three ``correct -answers'' to this problem, they are \texttt{sqrt(72)}, \texttt{3sqrt(8)}, -and \texttt{6sqrt(2)}, this latter one being the only correct answer to -this question, for the instructions were to factor out \emph{all} perfect -squares. The regular expression here catches any answer containing -\texttt{sqrt(72)} or \texttt{3sqrt(8)} and marks it wrong. \verb!:-(! - -\paragraph*{List of RegExp helper macros.} -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\def\refac#1{\\(#1\\)}\def\rediv{\\/}\def\repow{\\^} -\def\redigit{\\d}\def\rechrclass#1{[#1]}\def\reany{.} -\def\remul{[\\*]}\def\rebstr{\\^}\def\reestr{\\$} -\end{Verbatim} - -\exAeBBlogPDF{p=1020} Refer to the source file of -\texttt{\href{\urlAcroTeXBlog/?p=1020}{equiv\_expr.pdf}} for working -examples. Additional examples will (eventually) appear on the -\href{\urlAcroTeXBlog}{\AcroTeX{} Blog}. - - -\section{Randomizing the Multiple Choices}\label{s:random} - -Beginning with version~6.1 of \textsf{exerquiz}, the choices of a -multiple choice question can be randomized. The \texttt{random.tex} -macro file by Donald Arseneau is used for this purpose. - -%\exPDF{randomize} The demo file for this section is \texttt{randomize.tex}. - -\exAeBBlogPDF{p=901} The demo file for this section is -\texttt{\href{\urlAcroTeXBlog/?p=901}{randomize.pdf}}. - -\newtopic The randomization is only allowed if the \texttt{allowrandomize} -option of \textsf{exerquiz} is used; otherwise, no randomization -can occur. - -The randomization is only defined for choices listed between the -pair \cs{bChoices} and \cs{eChoices} (see \Nameref{bChoices}). The -command \cs{bChoices} now takes two optional key-value arguments: -\begin{itemize} - \item \texttt{nCols=\anglemeta{num}}: The number of columns to create, as described - on page~\pageref{bChoices}. You can also use the old style by specifying just - \anglemeta{num}. Thus, \cs{bChoices[nCols=2]} and \cs{bChoices[2]} - are equivalent. - \item \texttt{random=\anglemeta{\upshape true|false}}: Specify this option to randomize choices. - You can use the key word \texttt{random} instead of - \texttt{random=true}. For example, the following commands will randomize the - choices, \cs{bChoices[random]}, \cs{bChoices[nCols=2,random]}, or - \cs{bChoices[2,random]}. The default is to not randomize the - choices. -\end{itemize} - -\newtopic The following is an example of the \texttt{random} option of \cs{bChoices}. -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{shortquiz} -This is a quiz. -\begin{questions} - \item Try to guess the correct answer. - \begin{answers}{3} - \bChoices[nCols=2,random] - \Ans0 1 a choice\eAns - \Ans1\label{eq} 2 another choice\eAns - \Ans0 3 still another choice\eAns - \Ans0 4 another\eAns - \Ans0 5 incoming\eAns - \Ans0 6 more choices\eAns - \Ans0 7 another still\eAns - \Ans0 8 too many\eAns - \Ans0 9 choices\eAns - \eFreeze - \Ans0 10 None of these\eAns - \eChoices - \end{answers} -\end{questions} -\end{shortquiz} -\end{Verbatim} - -\newtopic Note the presence of the command \Com{eFreeze}. Any of -the items listed after \cs{eFreeze} are not randomized, and are -placed at the end of the list. So, for the example above, the first -nine items will be randomized, whereas, the last item (None of -these) will placed at the end of the list. - -\newtopic Additional, there are five other commands that support the -randomization feature.\settowidth{\aebdimen}{\ttfamily\string\saveRandomSeed\quad\string\inputRandomSeed}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\saveRandomSeed!quad\inputRandomSeed -\end{dCmd} - -\newtopic A pseudo-random sequence of numbers requires an initial \emph{seed -value}. The example file \texttt{random.tex} creates, by default, a -seed value based on the date and time (the number of minutes since -midnight); consequently, after every minute, the random sequence -will change. By setting the value of the count register \cs{randomi}, -the document author can also set the initial seed of the pseudo-random -sequence. - -The command \cs{saveRandomSeed} will write the last seed used in the -source file to an auxiliary file (\cs{jobname\_rt.sav}), while the -command \cs{inputRandomSeed} inputs the seed stored in the -\cs{jobname\_rt.sav} back into the beginning of the source file. -These two commands should be placed in the preamble. - -By invoking both of these commands, a new pseudo-random sequence will be generated -each time the source file is compiled. - -Assuming a \cs{jobname\_rt.sav} has already been created, by -invoking the command \cs{inputRandomSeed} only (and not -\cs{saveRandomSeed}), the seed already saved will be used for every -subsequent compiling of the source document. Using the same seed is -necessary in two situations: -\begin{enumerate} - \item When the quiz contains one or more \cs{label} commands, using the same - seed gives you the same sequence every time you latex the document. This will - give the auxiliary files a chance to come up to date so that any referencing of the label - will be accurate. - - \item When creating an online (or paper) quiz with randomization, which later you publish - the solutions to, it is important that the randomization for the - quiz document is the same as that for the solution document. By - using \cs{inputRandomSeed} (rather than \cs{save\-Ran\-dom\-Seed}), you - get the same sequence for the solution document (unless you modify the - source file, adding or removing questions that have randomization). -\end{enumerate} - -\newtopic\textcolor{red}{Things to look for:} If \textsf{exerquiz} is not rearranging the order -of the choices as you expect it to, it could be that -\textsf{exerquiz} is reading an old \texttt{.sav} file. Either delete that file -in your source folder, or comment out \cs{inputRandomSeed} in your document. - -\settowidth{\aebdimen}{\cs{useRandomSeed\darg{\meta{number}}}}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\useRandomSeed{!meta(number)} -\end{dCmd} - -\newtopic\indent You may have several sections of the same class take a quiz with the -questions rearranged for each. Save the seed value used by -\textsf{exerquiz} to randomize the choices for the class by opening the -\texttt{.sav} and by copying and pasting the line you see into your document; -for example, it could read \cs{randomi=132088850}, then use -\cs{useRandomSeed} with that seed value for that class as follows: -\begin{Verbatim}[xleftmargin=\amtIndent] -\useRandomSeed{132088850} % 11:00 class -% \useRandomSeed{634952429} % 12:30 class -\end{Verbatim} -Of course comment out \cs{inputRandomSeed}. - -\settowidth{\aebdimen}{\cs{obeyLocalRandomize}}% -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\turnOnRandomize -\obeyLocalRandomize -\end{dCmd} - -\newtopic\indent The command \cs{turnOnRandomize} overrides all local settings of \cs{bChoices} -and causes all choice lists to be randomized. While \cs{obeyLocalRandomize} -returns control to the local settings. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\turnOnRandomize -... -\bChoices - \Ans...\eAns - \Ans...\eAns - ... -\eChoices -\end{Verbatim} -will cause the choice list to be randomized, even though the -\texttt{random} option was not specified. Whereas, in this code -\begin{Verbatim}[xleftmargin=\amtIndent] -\turnOnRandomize -... -\obeyLocalRandomize -... -\bChoices - \Ans...\eAns - \Ans...\eAns - ... -\eChoices -\end{Verbatim} -the choices will not be randomized, because the \texttt{random} -option was not specified; or they will be randomized if the -\texttt{random} option is used. - -\newtopic\textcolor{red}{Limitations:} There are natural limitations on the use -of \cs{bChoices} and \cs{eChoices} and consequently, there are -limitations on the randomization. The content between \cs{Ans} and -\cs{eAns} cannot have any verbatim text. This is usually not a -problem for mathematical content, but could be a limitation for -computer science where questions about syntax may be posed. I have -in mind a work-around, but haven't pursued the problem as of yet. - -\section{Creating a Quiz Summary Table}\label{s:sumrytbl} - -This feature is designed for a \texttt{quiz} (as opposed to a -\texttt{shortquiz}) and is probably most useful for a long quiz, spanning -several pages. The \cs{displaySumryTbl} command creates a table that summarizes -the user's effort for the quiz; \cs{displaySumryTbl} must follow the final -\verb!\end{questions}! and \emph{must be on a separate page} from the last question of the quiz. -An example of the generated table is shown below in \hyperref[fig:qzSumryTbl]{Figure~\ref*{fig:qzSumryTbl}}. - -\exAeBBlogPDF{p=377} The demo file for this section is -\texttt{\href{\urlAcroTeXBlog/?p=377}{sumry\_tbl.pdf}}, found -at the \href{\urlAcroTeXBlog}{\AcroTeX{} Blog}. - - -\Important The code for these commands are only input when the \textsf{exerquiz} option -\texttt{usesumrytbls} is taken. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{quiz*}{!ameta(quiz_name)} -Solve each of the following. -\begin{questions} -\item... -... -\item... -\end{questions} - -\newpage %<--start new page -Before you complete your quiz by pressing `End Quiz', review the -list below. A check mark indicates that you responded to that -question; otherwise, you did not respond to the question. - -\begin{center} -\displaySumryTbl{\currQuiz} -\end{center} - -If you are satisfied with your answers, press `End Quiz' to -complete the quiz.\medskip - -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz -\end{Verbatim} - -\begin{figure}[htb] -\begin{center} -\includegraphics{figures/sumrytbl} -\caption{Quiz Summary Table}\label{fig:qzSumryTbl} -\end{center} -\end{figure} - - -The table (as seen in \hyperref[fig:qzSumryTbl]{Figure~\ref*{fig:qzSumryTbl}}) shows a check mark for each question to -which the student gave a response. The student -can review the table, and optionally return to questions that had no response. - -\settowidth{\aebdimen}{\cs{displaySumryTbl[\ameta{KV-pairs}]\darg{\ameta{quiz\_name}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\displaySumryTbl[!ameta(KV-pairs)]{!ameta(quiz_name)} -\end{dCmd} -\newtopic\textbf{Parameter Description:} The second parameter is the quiz name of the quiz this table represents, -in most cases, \cs{currQuiz} is used. The first parameter consists of key-value pairs, these -are described below. - -\KVP The first parameter takes key-value pairs -\begin{enumerate} - \item\texttt{ntables} is a key that has a value of 1 or 2, the - default is determined by command \cs{smrytbl@ntables}, which is set to 2 in - this package. If \texttt{ntables=1} only one table is created, and - if \texttt{ntables=2} two tables are created, each containing half - the information, as seen in \hyperref[fig:qzSumryTbl]{Figure~\ref*{fig:qzSumryTbl}}. - \item \texttt{showmarkup}: If this switch is true, then markup fields are - created that will hold the number of points the student received for - each problem. The default is that there is no markup. Entering - \texttt{showmarkup} in the option list will generate the markup fields. - The code -\begin{Verbatim}[xleftmargin=\amtIndent] -\displaySumryTbl[ntables=1,showmarkup]{\currQuiz} -\end{Verbatim} - produces a single table with the points markup. - \item \texttt{nocorrections}: If this switch is true, corrections will not - be shown when the user presses the `End Quiz' button. Because of the - way this key is implemented, if \texttt{nocorrections} is true, then - it will be true for any ``duplicate table,'' that is, any table that - references the same quiz. -\end{enumerate} - -\newtopic When the user presses the `Corrections' button, the borders of the checkboxes -are colored, and if \texttt{showmarkup} is used, the points earned for each -problem are shown as well. - -When corrections are made, a red border indicates the answer is -wrong, a green border means the answer is correct, and a -blue border the question was answered incorrectly, but partial credit was -given. The colors are determined by the commands \cs{correctColor}, \cs{wrongColor}, -and \cs{partialColor}. These are ``global color'' that need to set in the preamble; -the quiz and shortquiz system uses the first two, change them will yield changes everywhere. -However, you can change the \cs{partialColor} as this is the only place it is used. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\partialColor{color.blue} -\end{Verbatim} -This is a JavaScript color, if you redefined it to be a nonstandard color, for example, -this redefinition makes the partial credit color yellow. -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\partialColor{["RGB", 1, 1, 0]} -\end{Verbatim} - -\Important The table must be on a different page from the questions -because there is an open page action that activates and populates the table -based on the user's responses. - -\newtopic Other related commands are -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\sumryTblQ}{Question} -\renewcommand{\sumryTblR}{Responded} -\renewcommand{\sumryTblP}{Page} -\end{Verbatim} -The above three commands form the column titles of the table. -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand{\sumrytablesep}{\space} -\end{Verbatim} -Sets the separation between the tables, in the case that two tables are generated. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\sumryTblProbFmt}[1]{\textbf{\textcolor{blue}{#1}}} -\end{Verbatim} -The above command sets the {\LaTeX} formatting of the problems, the -default is bold and blue, but may be redefined. - -\subsection{Placing the Quiz Summary Table Elsewhere} - -You may want the Quiz Summary Table in a -place other than the default location (after the final -\verb!\end{questions}! and before the `End Quiz'). There is no problem -putting it after the quiz and\emph{ before the next quiz}; -however, if you want to put the table up front (that is, in front of the quiz) for -whatever reasons, you need additional commands. - -\newtopic In the area just after \cs{end\darg{questions}} and before `End -Quiz,' place the command -\settowidth{\aebdimen}{\cs{writeProListAux}} -\begin{dCmd}{\aebdimen+2\fboxsep+2\fboxrule} -\writeProListAux -\end{dCmd} -\newtopic\indent This command saves to the auxiliary file the two pieces of information the -\cs{dis\-playSumryTbl} needs to build the table. Then, in the location of -your choice---usually outside of any quiz environment---enclose -\cs{displaySumryTbl} in the \texttt{sumryTblAux} environment. -\settowidth{\aebdimen}{\cs{displaySumryTbl[\ameta{KV-keys}]\darg{\ameta{quiz\_name}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\begin{sumryTblAux}{!meta(quiz_name)} -\displaySumryTbl[!ameta(KV-keys)]{!ameta(quiz_name)} -\end{sumryTblAux} -\end{dCmd} -\newtopic\indent Here, \ameta{quiz\_name} is the name of the quiz that this table represents. An example -of this environment follows. -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{sumryTblAux}{\currQuiz}\small %<--make a little smaller -\renewcommand{\sumryTblQ}{\sffamily\bfseries Question} -\renewcommand{\sumryTblR}{\sffamily\bfseries Answered} -\renewcommand{\sumryTblP}{\sffamily\bfseries Page} -\begin{center} - {\normalsize\sffamily\bfseries Quiz Summary Table}\\[3pt] - \displaySumryTbl[showmarkup]{\currQuiz} -\end{center} -\end{sumryTblAux} -\end{Verbatim} - - -%sumryTblAux - -\section{Bookmarking Exercises and Quizzes}\label{bmExQz} - -It is unlikely that anyone would use this feature: Bookmarking exercises -and quizzes. - -%\exPDF{bkmrk_eq} The demo file for this feature is \texttt{bkmrk\_eq.tex}. - -\exAeBBlogPDF{p=906} The demo file for this feature is -\texttt{\href{\urlAcroTeXBlog/?p=906}{bkmrk\_eq.pdf}}. - - -\subsection{For Exercises} - -This ``intelligent'' bookmarking system requires -the minimum of effort to use. For exercises, the command for bookmarking -is \Com{expdfbookmark}, -\settowidth{\aebdimen}{\cs{expdfbookmark\darg{\ameta{bookmark\_title}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\expdfbookmark{!ameta(bookmark_title)} -\end{dCmd} -\newtopic and should be placed immediately following the beginning of an -exercise environment, like so,\def\OR{\hspace*{-\amtIndent}\normalfont or,} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{exercise}\expdfbookmark{!ameta(bookmark_title)} -!OR -\begin{exercise*}\expdfbookmark{!ameta(bookmark_title)} -\end{Verbatim} -or, in the case of exercises with parts, and you want to bookmark an -individual part to a question, place \cs{expdfbookmark} immediately -after the \cs{item}, like so -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\item\expdfbookmark{!ameta(bookmark_title)} -\end{Verbatim} - -\newtopic Every bookmark title, \ameta{bookmark\_title}, has a -suffix defined with \Com{exbookmarkfmt} or -\Com{partbookmarkfmt}, depending on whether -the entry is for the top-level exercise, or one of its parts. -The default definitions are -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\exbookmarkfmt}{\exlabel\space\theeqexno.\space} -\newcommand{\partbookmarkfmt}{(\thepartno)\space} -\end{Verbatim} -The command \cs{exlabel} expands to the language -dependent word for `Exercise', while \cs{theeqexno} expands to -the exercise number, and \cs{thepartno} to the part -letter. These commands can be redefined. - -\subsection{For Quizzes} - -To bookmark a \texttt{shortquiz} or \texttt{quiz}, use \Com{quizpdfbookmark}. -\settowidth{\aebdimen}{\cs{quizpdfbookmark\darg{\ameta{bookmark\_title}}}} -\begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} -\quizpdfbookmark{!ameta(bookmark_title)} -\end{dCmd} -\newtopic\indent It should be placed immediately following the beginning of the environments, -\def\OR{\hspace*{-\amtIndent}\normalfont or,} -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\begin{shortquiz}\quizpdfbookmark{!ameta(bookmark_title)} -!OR -\begin{quiz}{!ameta(quiz_name)}\quizpdfbookmark{!ameta(bookmark_title)} -\end{Verbatim} - -\redpoint Unlike bookmarking for exercises, the bookmark command for quizzes does not -support bookmarking individual questions within the quiz. - -\newtopic Every bookmark title, \meta{bookmark\_title}, for a -\texttt{shortquiz} environment has a suffix defined with the -\Com{sqbookmarkfmt} command, the default definition is - -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\sqbookmarkfmt}{Short Quiz \@shortquizCnt.\space} -\end{Verbatim} - -\newtopic The command \cs{@shortquizCnt} is a macro (not a counter) -that contains the current short quiz count. This command can be redefined. - -\newtopic Every bookmark title, \ameta{bookmark\_title}, for a \texttt{quiz} environment has a -suffix defined with the \Com{qzbookmarkfmt} command, the -default definition is - -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\qzbookmarkfmt}{Quiz \@quizCnt.\space} -\end{Verbatim} - -\newtopic The command \cs{@quizCnt} is a macro (not a counter) -that contains the current quiz count. This command can be redefined. - -\redpoint \cs{quizpdfbookmark} interacts with the command \Com{titleQuiz}. -(for more information on this, see \hyperref[titleQuiz]{Section~\ref*{titleQuiz}} -and \hyperref[titleQuizSQ]{Section~\ref*{titleQuizSQ}}, pages~\pageref*{titleQuiz} -and~\pageref*{titleQuizSQ}, to learn about \cs{title\-Quiz} for quizzes and short quizzes, respectively.) When a quiz has -a defined title, as defined -by the \cs{titleQuiz}, and the argument of \cs{quizpdfbookmark} is left empty, -the value passed to \cs{titleQuiz} is used as the bookmark text. Thus, the code - -\begin{Verbatim}[xleftmargin=\amtIndent] -\titleQuiz{Differentiation Quiz} -\begin{quiz}{MyDiffQuiz}\quizpdfbookmark{} -... -\end{quiz} -\end{Verbatim} -will bookmark the quiz under the name ``Differentiation Quiz.'' - - -\subsection{Final Note} - -If the bookmarks for exercises, or parts of the exercises, or quizzes do not appear, -you may have to increase the \texttt{tocdepth}. Exerquiz sets this at -\verb!\setcounter{tocdepth}{5}!. - -\section{Extending \AcroT{} with \texttt{dljslib} and \texttt{insdljs}} - -The \textsf{exerquiz} Package, especially the math fill-in question, is quite -programmable. In this section, we discuss two methods of extending the -capabilities of the \AcroB: (1) through the use of the package \texttt{dljslib}, -which is a JavaScript library of extensions; (2) by writing your own custom -extensions using the \texttt{insdljs} package for inserting JavaScripts into the -PDF document. - -\subsection{Using the \texttt{dljslib} Package}\label{sss:dljslib} - -The \texttt{dljslib} Package is actually a ``library'' of JavaScript -functions. At the time of this writing, the library has JavaScripts that can -process answers to math fill-in questions where an \textit{equation} -or a \textit{vector} answer is expected. There is also a JavaScript compare -function that properly evaluates an answer when an indefinite integral is -expected. See the documentation that accompanies the package (by latexing -\texttt{dljslib.dtx}) for details of how to use the library. - -\redpoint For full documentation of \textsf{dljslib} package, see \Nameref{part:dljslib}. - -%\redpoint \textbf{Equation handling.} See the sample file \texttt{jqzequat.tex} for examples -%of posing and evaluating questions that expect an equation as the response. Below is -%a portion of the preamble of that file; basically, to use one or more of the JavaScripts in -%the JavaScript library, you specify that option \cs{usepackage} command for \texttt{dljslib} -%package. In this case, we want to process equations so type\dots -%\begin{Verbatim}[xleftmargin=\amtIndent] -%\documentclass{article} -%\usepackage{amsmath,amscd} -%\usepackage[tight,pdftex,designi,nodirectory]{web} -%\usepackage{exerquiz} -%\usepackage[equations]{dljslib} % <--choose equations -%\end{Verbatim} -% -%\redpoint \textbf{Vector Handling} There are also JavaScript functions for processing -%vector answers. See the sample file \texttt{jqzspec.tex}. Actually this file does not -%use the JavaScript library, but is more of a tutorial on how to use \cs{insdljs} to -%write custom JavaScripts to process \textsf{exerquiz} math fill-in questions. -% -%The preamble of that document could actually be replaced with\dots -%\begin{Verbatim}[xleftmargin=\amtIndent] -%\documentclass{article} -%\usepackage{amsmath,amscd} -%\usepackage[tight,dvipdfm,designi,nodirectory]{web} -%\usepackage{exerquiz} -%\usepackage[vectors,indefIntegral]{dljslib} -%\end{Verbatim} -%\noindent The \texttt{vectors} option specifies JavaScripts for processing -%vector questions. The option \texttt{in\-def\-In\-te\-gral} is also -%specified. This is because that in the file \texttt{jqzspec.tex} a -%comparison function is developed for properly evaluating questions -%in which an indefinite integral is expected. -% -%\redpoint \textbf{Comma Delimited Answers and Sets} The -%\texttt{setSupport} option of the \textsf{dljslib} Package -%provides basic support for math fill-in questions requiring a -%(unordered) list of comma delimited numerical or symbolic answers, -%or for a set. The demo and tutorial file is -%\texttt{set\_test.tex}. See that file for more details. -% -%\redpoint In addition to the two above mentioned sets of JavaScripts there are -%a couple of comparison functions, one for processing indefinite integrals (see -%\texttt{dljs\_ex.tex}), and the other for using relative absolute error rather -%than absolute error. Again, see the documentation of \texttt{dljslib.dtx} and -%the sample file \texttt{jqzspec.tex}. - -\subsection{Using the \texttt{insdljs} Package} - -With the \texttt{insdljs} package you can write your own JavaScript functions -right in the \LaTeX{} source file. These custom JavaScripts are then inserted -into the section of the PDF document where the document level JavaScripts -reside. This package is a stand-alone package, and does not need \textsf{exerquiz}, -though \textsf{exerquiz} now uses this package to insert its JavaScripts into -the document. - -\redpoint Refer to \href{\bUrl/eformman.pdf}{eformman.pdf} -(relative link \href{eformman.pdf}{eformman.pdf}) for the \textsf{insdljs} and the \textsf{eforms} -documentation. Also, see the sample file \texttt{insdljs\_ex.tex} -for examples that do not use \textsf{exerquiz}, and the file -\texttt{jqzspec.tex}, for examples that does use \textsf{exerquiz}. - -\section{Submitting a \protect\texttt{quiz} to a Web Server} - -Quizzes created by the \texttt{quiz} environment are entirely self-contained. -They function within the Web browser (or from within the Adobe Reader) and -do not communicate with any server. This kind of quiz is ideal for a -do-it-yourself tutorial system, read by a well-motivated student who has the -discipline to read the material and to take the quizzes in the spirit in which -they are given. - -However, some educators, myself included, may wish to use the quizzes created -by the \texttt{quiz} environment for classroom credit. It is necessary, -therefore, for the student to be able to submit quiz results to a Web server -which, in turn, should store the results to a database. - -In this section we discuss techniques of turning the quiz into something that -can be submitted to a server. - -\redpoint I have released the \textsf{eq2db} Package, a {\LaTeX} macro package and -server-side script to process \textsf{exerquiz} quizzes. See \Nameref{eq2db}. - -\subsection{Technical Info for ``Do It Yourself''}\label{DIY} - -All one really has to do is to redefine the `End Quiz' link or button to -submit the results of the quiz to the Web server and CGI of your choice. Since -the quiz itself is scored, (optionally) marked, with (optional) answers and -solutions provided, the CGI simply stores the quiz results to a database. - -\subsubsection{Redefining `End Quiz'} - -I've written the `End Quiz' link (button) to have various -programming hooks available to the developer. -The following code is common to both \cs{eq@EndQuizLink} and -\cs{eq@EndQuizButton}, the macros that control the action of -the end quiz link and button, respectively. -\begin{Verbatim}[xleftmargin=\amtIndent] -if (\minQuizResp(\thequestionno)) {\r\t - var f = this.getField("ScoreField.\curr@quiz");\r\t\t - if ( f != null )\r\t\t\t - this.getField("ScoreField.\curr@quiz").value - =(\eq@QuizTotalMsg);\r\t\t - \eq@submitURL - resetQuiz("\curr@quiz")\r\t -} -\end{Verbatim} - -\redpoint The code is a mixture of \LaTeX{} macros and JavaScript. -You can see from this code, that there is a submit hook macro -provided, \cs{eq@submitURL}. Normally, this macro has a definition -of \cs{@empty}. A developer needs only redefine this macro -accordingly; one would use the Acrobat JavaScript method -\texttt{this.submitForm()} to do this. See the \textit{Acrobat JavaScript -Scripting Reference} \cite{tech:AcroJS} for more detail about this -method. - -\redpoint The code flow above is as follows: (1) Execute this code if the -threshold has been met. (See \nameref{threshold}.) The text macro -\cs{curr@quiz} holds the base name of the current quiz. - -(2) If the field \texttt{"ScoreField.\cs{curr@quiz}"} exists, then -write the student's score to that field. (This is the ``Score: 2 -out of 3'' that you see in the demo quizzes.) - -(3) We then submit with the macro \cs{eq@submitURL}. (This would -do nothing if its value is \cs{empty}, the default value.) At this -point we call a \texttt{resetQuiz("\cs{curr@quiz}")} which -sets some values in an array to indicate the state of this quiz. - -\subsubsection{Gathering ID Information with -\texorpdfstring{\protect\cs{textField}}{\textbackslash textField}} - -\redpoint What kind of information would one submit to a CGI? -Well, there is the usual information concerning the identity of -the student (Name, SSN, etc.) and the course, section and so on. - -This basic information can be gathered from the student by -inserting text fields into the document to be filled in. \textsf{Exerquiz} -provides the macro \cs{textField}\footnote{You can also use hyperref's -\cs{TextField} command for this purpose as well.} for this purpose. -For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\FirstName[2]{\textField - [\DV{First Name}\textFont{TiRo}\textSize{10}\textColor{0 0 1}] - {IdInfo.Name.First}{#1}{#2}} -\end{Verbatim} -\noindent This defines a text field with a name of \texttt{"IdInfo.Name.First"}, the two -arguments are the width and height of the field that you want to create. E.g., -\begin{Verbatim}[xleftmargin=\amtIndent] -\FirstName{100pt}{10pt} -\end{Verbatim} -\noindent creates a text field 100pt wide and 10pt high. - -The \cs{textField} macro takes four parameters. -\begin{Verbatim}[xleftmargin=\amtIndent] -\textField[#1]#2#3#4 -\end{Verbatim} -\noindent The first (optional) parameter can be used to custom -design the field; the second is the name of the field; the third -and fourth are the width and height of the field desired. - -\redpoint See the file \texttt{eqformman.tex} on {\cAcroT} \textsf{eForm} -support for complete documentation on -\cs{textField}. - -\subsubsection{Gathering Quiz Specific Information with -\texorpdfstring{\protect\cs{eqSubmit}}{\textbackslash eqSubmit}} - -In addition to ID information on the one taking the quiz, -specific information about what quiz is being taken and where the -results of the quiz are to be stored are needed as well. - -\textsf{Exerquiz} provides a basic macro, called \cs{eqSubmit} -that can be used to gather basic formation of this type. The definition -of it and related commands are given below: -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\databaseName[1]{\def\db@Name{#1}}\def\db@Name{} -\newcommand\tableName[1]{\def\db@Table{#1}}\def\db@Table{} -\newcommand\eqCGI[1]{\def\eq@CGI{#1}}\def\eq@CGI{} -\newcommand\eqSubmit[3] - {\eqCGI{"#1"}\databaseName{#2}\tableName{#3}} -\end{Verbatim} - -\noindent The meaning of the parameters are self-explanatory. - -Just prior to the quiz you can type: -\begin{Verbatim}[xleftmargin=\amtIndent] -\eqSubmit{http://www.myschool.edu/cgi-bin/myCGI.cgi}% - {CalcIII}{Quizzes} -\begin{quiz*}{Quiz3} Answer each of the following. -\begin{questions} -... -... -\end{questions} -\end{quiz*}\quad\ScoreField\currQuiz\CorrButton\currQuiz - -\noindent -Answers: \AnswerField\currQuiz -\end{Verbatim} - -\redpoint Any redefinition of \cs{eq@submitURL} would then -include the values of some or all of these text parameters: -\begin{Verbatim}[xleftmargin=\amtIndent] -\eq@CGI, \db@Name, \db@Table, \curr@quiz -\end{Verbatim} -\noindent The last text macro is not gathered by \cs{eqSubmit}, it -is known, however, at the time \cs{eq@submit\-URL} is expanded. - -\subsubsection{Some Variables to Submit} - -When you submit a quiz to a server, the values of \textit{all} -fields are also submitted, unless you define specifically which -fields are to be submitted. - -In addition to the ID info, you would like also to submit the results -of the quiz itself. The relevant variables are as follows: -\begin{questions} - \item The JavaScript variable \texttt{Score} has the number of - correct responses as its value. - \item The \LaTeX{} counter variable \cs{thequestionno} has the count - of the total number of questions in the quiz. - \item The JavaScript array \texttt{Responses} contains the responses of - the student: multiple choice and fill-in responses. The contents of this - array can be converted to a comma-delimited string by using the - \texttt{toString()} method, \texttt{Responses.toString()}. -\end{questions} - -\noindent Now, how does one submit these values? The \cs{eq@submitURL} -command can be used not only to submit the data, but to also -populate certain \textit{hidden} fields with this information. The -hidden data is submitted along with the ID info to be processed. -You can use the \cs{textField} to create hidden text fields for -this purpose. See the next section for a discussion of how to create -hidden text fields. - -\subsection{Features \protect\textit{apropos} to Submitting} - -%\subsubsection{\texorpdfstring{\protect\cs{RespBoxEssay}} -%{\textbackslash RespBoxEssay}: The Essay Question} -% -%Some disciplines make heavy use of the essay question. In an effort to -%expand \textsf{exerquiz} to this question type, the \cs{RespBoxEssay} -%question has been defined. -% -%The syntax is -%\begin{Verbatim}[xleftmargin=\amtIndent] -%\RespBoxEssay[<commands to modify the appearance>] -%\end{Verbatim} -%The default width of is \cs{linewidth} and the default height is -%\verb+6\baselineskip+. For example, -% -%\begin{oQuestion}{bioNewton} -%\redpoint Sketch the biography of Isaac Newton:\par -%\RespBoxEssay[\rectH{3\baselineskip}]\par\smallskip -%\end{oQuestion} -% -%This type of question is not evaluated by JavaScript, but is meant -%to be submitted to a CGI for storage in a database. Later, the -%instructor can review the essay answer. - -\subsubsection{Assigning Points} - -See \Nameref{sss:asignPts} for information on this subject. - -\subsubsection{\texorpdfstring{\protect\cs{NoPeeking}} -{\textbackslash NoPeeking}}\label{sss:nopeek} - -If you execute the command \cs{NoPeeking} in the preamble of your -document, or prior to a \texttt{quiz}, then any quiz question with -solution will be protected somewhat from prying eyes. - -In this case, an open page action is placed on the first page of -each solution. If the user (student) tries to view a quiz solution -before doing the quiz, the \textcolor{blue}{Adobe Reader} will -automatically change the page to the page containing the quiz and -place an alert box on the screen saying that viewing the solution -before taking the quiz is not permitted. - -To resort to the default behavior, use the \cs{AllowPeeking} -command. - -The previous \texttt{quiz} has been surrounded with a -\cs{NoPeeking}/\-\cs{AllowPeeking} pair. If you go to one -of the \hyperlink{knuth}{solutions} to that quiz, you will see -what happens. If nothing interesting happens, read the next -red point. - -\redpoint Protection is removed when you click on `End Quiz' and -restored when you click on some `Begin Quiz'. - -\section{Functions and Syntax supported by \textsf{Exerquiz}} - -In addition to the JavaScript built in math functions, exerquiz defines a number -of other functions useful in mathematical work. These functions are typically input -in a math question created by \cs{RespBoxMath}, for example, or in the function input -field of an {\AcroFLeX} document.\footnote{The {\AcroFLeX} Graphing Bundle, -\url{http://www.math.uakron.edu/~dpstory/acroflex.html}} - -Exerquiz also has its own syntax for entering algebraic expression in the -\cs{Resp\-Box\-Math} field, these are document here as well. - -\subsection{Functions supported by \textsf{Exerquiz}} - -The following functions are built-in to JavaScript: - -\setlength{\extrarowheight}{1mm} -\setlength{\tabcolsep}{2mm} - -\noindent\begin{longtable}{@{}>{\ttfamily}lp{2.8in}>{\PBS\raggedright}p{1.5in}} -\hline -\multicolumn{1}{@{}l}{Function}&\multicolumn{1}{l}{Description}&\multicolumn{1}{l}{Usage}\\ -\hline -\endfirsthead -\hline -\multicolumn{1}{@{}l}{Function}&\multicolumn{1}{l}{Description}&\multicolumn{1}{l}{Usage}\\ -\hline -\endhead -\hline -\endfoot -abs\textrm{, }|$\cdot$| & absolute value function, preferred form, \texttt{|$\cdot$|} & \texttt{|-3|=3}, \texttt{|x|}\\ -sin & the sine function & \texttt{sin(pi/2)=1}, see the definition of \texttt{pi} below\\ -cos & the cosine function & \texttt{cos(1.5)}, \texttt{cos(2*x)}\\ -tan & the tangent function & \texttt{tan(pi/4)=1}\\ -asin& inverse sine function & \texttt{asin(x)}\\ -acos& inverse cosine function & \texttt{acos(.2)}\\ -atan& inverse tangent function& \texttt{atan(-4)}\\ -exp & the natural exponential function, this function is also implemented as a \verb!e^x!, - where \texttt{e} is the natural number & \texttt{exp(-.5)}, \texttt{exp(-x\string^2)}\\ -log & the common logarithm. In JavaScript log is the natural logarithm, \textsf{exerquiz} - redefines this to be the common logarithm, use \texttt{ln} for natural logarithm & \texttt{log(10)=1}\\ -sqrt & the square root function & \texttt{sqrt(4.5)}\\ -ceil & the \texttt{ceil} function, \texttt{ceil(x)} is the smallest integer greater than or equal to \texttt{x} & -\texttt{ceil(4.5)=5}\\ -floor&the \texttt{floor} function, where \texttt{floor(x)} is the largest integer less than or equal to \texttt{x} & -\texttt{floor(4.5)=4}\\ -max & the maximum between two numbers & \texttt{max(2, 3.4) = 3.4}\\ -min & the minimum between two numbers & \texttt{max(2, 3.4) = 2}\\ -random & a pseudo-random number generator, this function is used internally by \textsf{exerquiz}, and is - available to users, \texttt{random()} returns a number between 0.0 and 1.0 & \texttt{random()}\\ -round & a rounding function, rounds a number to the nearest integer - & \texttt{round(4.5)= 5}, \texttt{round(-3.3)=-3} -\end{longtable} - -\bigskip - -\newtopic The next set of functions are defined by \textsf{exerquiz}. - -\noindent\begin{longtable}{@{}>{\ttfamily}lp{2.8in}>{\PBS\raggedright}p{1.5in}} -\hline -\multicolumn{1}{@{}l}{Function}&\multicolumn{1}{l}{Description}&\multicolumn{1}{l}{Usage}\\ -\hline -\endfirsthead -\hline -\multicolumn{1}{@{}l}{Function}&\multicolumn{1}{l}{Description}&\multicolumn{1}{l}{Usage}\\ -\hline -\endhead -\hline -\endfoot -cot & the \texttt{cotangent} function & \texttt{cot(1)}\\ -sec & the secant function & \texttt{sec(2)}\\ -csc & the \texttt{cosecant} function & \texttt{csc(2)}\\ -arcsin & the inverse sine function, same as \texttt{asin} & \texttt{arcsin(.5)}\\ -arccos & the inverse cosine function, same as \texttt{acos} & \texttt{arccos(-.5)}\\ -arctan & the inverse tangent function, same as \texttt{atan} & \texttt{arctan(1)}\\ -ln & the natural logarithm & \texttt{ln(3.4)}\\ -sinh & the hyperbolic sine function & \texttt{sinh(0)}, \texttt{sinh(x)}\\ -cosh & the hyperbolic cosine function & \texttt{cosh(0)}, \texttt{cosh(x)}\\ -tanh & the hyperbolic tangent function & \texttt{tanh(x)}\\ -coth & the hyperbolic cotangent function & \texttt{coth(x)}\\ -sech & the hyperbolic secant function & \texttt{sech(x)}\\ -csch & the hyperbolic cosecant function & \texttt{csch(x)}\\ -asinh & the inverse hyperbolic sine function & \texttt{asinh(0)}, \texttt{asinh(x)}\\ -acosh & the inverse hyperbolic cosine function & \texttt{acosh(0)}, \texttt{acosh(x)}\\ -atanh & the inverse hyperbolic tangent function & \texttt{atanh(x)}\\ -acoth & the inverse hyperbolic cotangent function & \texttt{acoth(x)}\\ -asech & the inverse hyperbolic secant function & \texttt{asech(x)}\\ -acsch & the inverse hyperbolic cosecant function & \texttt{acsch(x)}\\ -sgn & the sign function, \texttt{sgn(x)} is -1 if \texttt{x} is negative, 1 if \texttt{x} is positive, and 0 of -\texttt{x} is zero - & \texttt{sgn(-3.2) = -1} \\ -cis & the polar representation of a complex number, - $\operatorname{cis}(\theta)=\cos(\theta)+\imath\sin(\theta)$. This function - is only defined if the \texttt{complex} option of \textsf{dljslib} is used. - & \texttt{cis(pi/3)} -\end{longtable} - -\bigskip - -\newtopic There are several other \textsf{exerquiz}-defined -functions that are available through options of the -\textsf{dljslib}, these are \texttt{C} (combinations), \texttt{P} -(permutations), and \texttt{fact} (permutations). See the section -titled \Nameref{extNumerFuncs} for details. - -\paragraph*{Recognized Constants.} \textsf{Exerquiz} recognizes -\texttt{PI} and \texttt{pi} as symbols for the mathematical constant -$\pi\approx \text{3.14159}$. The letter \texttt{e} is recognized as -the natural number, which is approximately 2.7182818285. - -\subsection{Syntax supported by \textsf{Exerquiz}} - -\textsf{Exerquiz} attempts to make entering mathematics as easy and -as natural as using a modern calculator. The following paragraphs -outline the syntax of \textsf{exerquiz}. Authors should reproduce -some form of these rules to their students, and perhaps some -practice documents for them to test themselves with. - -\paragraph*{Grouping.} Algebraic expressions are grouped with -matching parentheses~\texttt{(\,)}, brackets~\texttt{[\,]}, or -braces~\texttt{\{\,\}}. - -\paragraph*{Spaces.} When the user enters a math expression, all -spaces are removed before parsing of the expression begins. -Students can write \texttt{1+(2+3)} or \texttt{1 + ( 2 + 3 )}, these -are the same. - -\paragraph*{Addition and Subtraction.} These operations are -performed using \texttt{+} and \texttt{-}, as expected. For example, -\texttt{(x+1)-(x-2)}, \texttt{x+sin(x-pi)} - -\paragraph*{Multiplication and Division.} These operations are -performed using \texttt{*} and \texttt{/}, as expected. For example, -\texttt{2*x*(3*x+1)} and \texttt{(2*x-1)/(2*x+1)}. - -The use of the multiplication (\texttt{*}), is required, by default, -and its use can be very tedious to the student. If you include the -\textsf{dljslib} package with the \texttt{ImplMulti} option, -\texttt{exerquiz} automatically inserts the multiplication symbol -(\texttt{*}). The examples above, can be written as -\texttt{2x(3x+1)} and \texttt{(2x-1)/(2x+1)}; it is recommended, -therefore, that the \texttt{ImplMulti} option should normally be -used. (Note: The use of \texttt{*} is still correct even when -\texttt{ImplMulti} option is in effect.) - -\paragraph*{Powers and Exponents.} \textsf{Exerquiz} uses -\texttt{\string^} to indicate exponents, for example, -\texttt{x\string^2} means $x^2$. Other examples are \verb!17^(x+1)!, -\verb!(x^2+1)^3!, \verb!(sin(x))^3!, and \verb!(x+1)^(2x+1)!. - -Recall that the letter \texttt{e} is recognized as the natural -number, so \verb!e^{-x^2}! is the same as \verb!exp(-x^2)!. -Normally, the use of \texttt{e} is preferred by students over the -use of \texttt{exp}. For work in elementary mathematics, the -existence of \texttt{exp} need not be even mentioned to the -students. - -The difficulty of entering powers of functions is another issue for -students. As illustrated above, in entering \verb!(sin(x))^3! or -more complex expression, students find a source of difficulty, pain, -and anguish. \textsf{Exerquiz} allows entering powers in the -calculator style, the student can enter \verb!sin(x)^3! for -$(\sin(x))^3$ (often written as $\sin^3(x)$) or \verb!3^sin(x)! to -mean $3^{\sin(x)}$. Expressions like \verb!2^2^3! are interpreted as -\verb!(2^2)^3! (the typeset version is $(2^2)^3$), which evaluates -to 64. The use of parentheses is needed if the desired expression is -$2^{2^3}$; this expression needs to be typed as \verb!2^(2^3)!, -which evaluates to 256. - -If the \texttt{ImplMulti} option of the \texttt{dljslib} package is -in effect, powers of functions can be entered in a more -mathematically traditional, for example \verb!sin^2(x)! is -recognized as the same as \verb!sin(x)^2!, or \verb!(sin(x))^2!; -consequently, \verb!sin^2(x)^2! is the same as \verb!sin(x)^4!! - -\part{The \protect\textsf{eq2db} Package}\chgCurrLblName{The \textsf{eq2db} Package}\label{eq2db} - -\newtopic -As the name suggests, Converts a self-contained exerquiz quiz to one that is -submitted to a server-side script. The {\LaTeX} package itself does very -little other than to define some useful commands that make it easy to convert -a self-contained quiz into one that is submitted to server-side script. - -The \texttt{eq2db} currently has several options, including \texttt{eqRecord}, \opt{eqText}, -\opt{eqEmail}, and \opt{submitAs}. -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[eqText,submitAs=!anglemeta(!upshape(FDF|HTML))]{eq2db} -\end{Verbatim} -The option \texttt{eqText} and \texttt{submitAs=FDF} sets up the quiz to use -an ASP (Active Server Page) that I have written. This ASP, named naturally, -\texttt{eqRecord.asp}, takes the data and stores it to a database, such as -Microsoft Access. - -%You can also submit your form data as HTML, as the two websites -%demonstrate.\footnote{These websites were prepared as a script demonstration -%site that is referenced in my yet-to-be submitted book \AEBBook~\cite{book:AEBB}.} -%\begin{quote} -%\url{http://faculty.nwfsc.edu/web/math/storyd/dps/} -%\end{quote} -%The above web page is on a \app{Windows} server hosted by Northwest Florida State -%College (NWFSC). The server-side -%script is written as ASP pages using VBScript. - -There is a website that you can experience submitting form data from a -PDF.\footnote{This website was prepared as a script demonstration site that -is referenced in my yet-to-be submitted book \AEBBook~\cite{book:AEBB}.} -\begin{quote} -\url{http://www.acrotex.net/dps/} -\end{quote} -This web page is on a \app{Linux} server hosted by {\AcroTeX.Net}. The -server-side script is written with PHP. - -\redpoint In recent years, the browser technology has evolved in an unwelcome -direction. Most web browsers do not support the Adobe Reader plug-in, hence, -Reader no longer appears in the browser window, so essential for a good user -experience. Most browsers use their own `native' PDF viewer, which does -respond to links, but knows nothing about JavaScript. The only browser, as of -this writing, that still supports the Adobe Reader plug-in (or ActiveX) is -Microsoft Internet Explorer~11. For online, interactive work with PDF, the -document consumer must use Microsoft Internet Explorer~11. - -\redpoint For more details, see the package documentation, -\texttt{eq2dbman.pdf}.\footnote{The absolute URL is -\url{\bUrl/acrotex/eq2dbman.pdf}} The \textsf{eq2db} package is available -from CTAN (\url{ctan.org/pkg/eq2db}).\endredpoint - - -\part{{\AcroT} \protect\textsf{eForm} Support} - -\newtopic -In this document, we describe the support for form elements in an -{\cAcroT} document. The PDF Specifications indicate there are four -different categories of fields for a total of seven types of -fields. - -\begin{questions} -\setbox0=\hbox{(d)} -\def\I#1{\makebox[\wd0]{\color{blue}(\hfil#1\hfil)}\ } - - \item \textbf{Button Fields} - \begin{description} - \item[\I{a}] \textbf{Push Button} - \item[\I{b}] \textbf{Check Box} - \item[\I{c}] \textbf{Radio Button} - \end{description} - \item \textbf{Choice Fields} - \begin{description} - \item[\I{a}] \textbf{List Box} - \item[\I{b}] \textbf{Combo Box} - \end{description} - \item \textbf{Text Fields} - \item \textbf{Signature Fields} - -\end{questions} -The {\cAcroB} does not support \textit{signature fields}, this -leaves six types of fields. Commands for creating each of the -remaining six types will be discussed. - -The \pkg{hyperref} Package (Rahtz, Oberdiek \textit{et al}) -provides support for the same set of form fields; however, not all -features of these fields can be accessed through the -\pkg{hyperref} commands. I was determined to write my own set -of commands which would be sufficiently comprehensive and -extendable to suit all the needs of the \cAcroB. All the quiz -environments have been modified to use this new set of form -commands, in this way, there is a uniform treatment of all form -fields in \cAcroB. - -\redpoint The documentation for \textsf{eForm} support is too voluminous -to include in this already voluminous document. See -\href{\bUrl/eformman.pdf}{eformman.pdf} (relative link -\href{eformman.pdf}{eformman.pdf}) for complete details. - - -\part{The AeB JavaScript Library}\label{part:dljslib} - -\newtopic -The \textsf{dljslib} package---document level JavaScript -library---is a companion to \textsf{exerquiz} and utilizes -\textsf{insdljs} package. It is a library of JavaScript code that -can be referenced in the preamble of a {\LaTeX} document, the code -is then extracted from the package files, and inserted into the {\LaTeX} -source using the \texttt{insDLJS} environment. - -The code belonging to the library supports the processing -of the quizzes and short quizzes produced by \textsf{exerquiz}; they -extend the capabilities of the core features of the -\textsf{exerquiz} quizzes. Many of the JavaScript functions in the -library were contributed by users of AeB. - -\newtopic My deep appreciation goes out to the contributors to the AeB JavaScript library. -\begin{itemize} - \item The options \texttt{unordered}, \texttt{factors}, - \texttt{point} and \texttt{intervals} were written by Dr. Bruce Wagner - for an online grading system developed by Drs.\ Bruce Wagner and David - Arnold, and Mr.~Jacob Miles-Prystowsky. Dr. Robert Marik contributed to the \texttt{intervals} option, as well. - \item The options \texttt{nodec}, \texttt{noBinFact} and \texttt{combinatorics} were contributed by - Ross Moore and Frances Griffin, and were developed for their - \href{http://rutherglen.ics.mq.edu.au/~macqtex/}{MacQ\TeX} - online testing system.\footnote{\url{http://rutherglen.ics.mq.edu.au/~macqtex/}} -\end{itemize} -The AeB JavaScript library continues to accept contributions from AeB developers. - -\section{Usage and Options} - -As with all {\LaTeX} package, you use \textsf{dljslib} as follows, -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -\usepackage[!ameta(options)]{dljslib} -\end{Verbatim} -where \ameta{options} is a comma-delimited list of options. With each of the -\ameta{options}, the associated JavaScript code is brought into the {\LaTeX} -source document. The JavaScript functions, then, are available to your -\textsf{exerquiz} quizzes. - -A list of the \ameta{options} of the \textsf{dljslib} package are listed below, -and each are described in detail in the sections that follow. -\begin{enumerate} -\item \texttt{ImplMulti}: Use this option to allow implied multiplication, e.g., the user can input - \texttt{2xsin(x)} instead of \texttt{2*x*sin(x)}. See \Nameref{ImplMulti}. -\item \texttt{equations}: Use this option to process questions that take an equation as an answer. - See \Nameref{equations}. -\item \texttt{vectors}: Use this option to process questions that take a vector as an answer. - See \Nameref{vectors}. -\item \texttt{setSupport}: Use this option to process questions that take a set as an answer. - See \Nameref{setSupport}. -\item \texttt{unordered}: Use this option to process questions that take an unordered list as an answer. - See \Nameref{unordered}. -\item \texttt{factors}: Use this option to process questions that take a factored form of a polynomial. - See \Nameref{factors}. -\item \texttt{point}: Use this option to process questions that take an ordered pair $(x,y)$ as an answer. - See \Nameref{point}. -\item \texttt{intervals}: Use this option to process questions that take an interval, or a union of intervals - as an answer. See \Nameref{intervals}. -\item \texttt{indefIntegral}: Use this compare function when evaluating the response to an indefinite integral. - See \Nameref{indefIntegral}. -\item \texttt{nodec}: Use this filter function to deny the use of decimal numbers in an answer. - See \Nameref{nodec}. -\item \texttt{noBinFac}: User this filter function to deny the use of \texttt{combinatorial} functions. - See \Nameref{noBinFac}. -\item \texttt{limitArith}: Use any of this collection of filter functions to limit the use of arithmetic operations - in an answer. See \Nameref{limitArith}. -\item \texttt{combinatorics}: Use this option to add combinatorial functions. The user may use these in an answer, - unless denied by the \texttt{noBinFact} filter. - See \Nameref{combinatorics}. -\end{enumerate} - -\newtopic For a document author that is building a system of quizzes and who regularly -uses a subset of these options, sets of options can be grouped -together into a custom option. Use the \texttt{libcusopt.opt} file -to declare your own sets of options. These declarations should be a -combination of existing options. For example, The declarations in the -\texttt{libcusopt.opt} file -\begin{Verbatim}[xleftmargin=\amtIndent] -\DeclareOption{procrespgrp}{\includeOptions{% - vectors,setSupport,equations,intervals,limitArith,% - unordered,point,factors,ImplMulti} -} -\end{Verbatim} -creates a new option for \textsf{dljslib} called -\texttt{procrespgrp} which bundles together all frequently used -options. The file \texttt{libcusopt.opt} can be placed in the -{\LaTeX} search path, but it's perhaps best to put it in your source -file, so that the options are local to that folder. The command -\cs{includeOptions} is defined in the \textsf{insdljs} package. - -%\exPDF{dljslib_apw} A sample \texttt{libcusopt.opt} is distributed with the {\AEB}, -%this sample file consists of the example given above, and is used -%by the sample file \texttt{dljslib\_apw.tex}, which can be found in the folder \texttt{dljslib\_examples}. - -\exAeBBlogPDF{p=959} A sample \texttt{libcusopt.opt} is distributed with the -{\AEB}, this sample file consists of the example given above, and is used by -the sample file \texttt{\href{\urlAcroTeXBlog/?p=959}{dljslib\_apw.pdf}}. - - - - -\newtopic The JavaScript functions are organized into five categories: -\begin{questions} - \item \nameref{piExt} are support functions whose capabilities are built - into the core \textsf{exerquiz} package. When \textsf{exerquiz} detects the presence of these - support functions, it utilizes them seamlessly. - \item \nameref{respfunc} are functions the take over the task of processing the user input. Discussion - of these functions begins on page~\pageref*{respfunc}. - \item \nameref{compareFuncs} are functions that perform the comparison between the author's answer - and the student's answer. Based on this comparison, the student's answer is judged correct or not. - Refer to page~\pageref*{compareFuncs} for the compare functions. - \item \nameref{filterUserResp} are functions that are called immediately after the user - commits the response. A filter function can examine the response before passing it on to - the response function. The filter function can cancel the user input if the input does not - meet certain criterion. The filter functions begin on page~\pageref*{filterUserResp}. - \item \nameref{extNumerFuncs} extend the collection of built-in functions that perform - numerical calculations. These numerical functions are discussed beginning on page~\pageref*{extNumerFuncs}. -\end{questions} - -\def\respBoxPara{% -\texttt{\hyperref[paraRespBox]{\string\RespBoxMath[\#1]\#2(\#3)[\#4]\#5\#6\#7\#8[\#9]*\#10}}} - -\subsection{Parse Input Extensions}\label{piExt} - -This type of JavaScript functions are support functions whose -capabilities are built into the core \textsf{exerquiz} package. -When \textsf{exerquiz} detects the presence of these support -functions, it utilizes them seamlessly. - -\subsubsection{\texttt{ImplMulti}}\label{ImplMulti} - -The default behavior for processing a math fill-in question is to -require the student to insert `\texttt*' for multiplication and to -enclose any function being raised to a power in parentheses, e.g. -\verb+x*(sin(x))^2+. This becomes quite tiresome if the expression to be entered -is complicated. The \texttt{ImplMulti} option enables the student to use -\emph{implied multiplication} and \emph{simplified exponentiation}. - -The \texttt{ImplMulti} option loads two JavaScript functions, \texttt{Ck4Products} -and \texttt{Ck4Expo\-nents}. The latter implements the notation, \verb+sin^2(x)+ -for $\sin^2(x)$, and is equivalent to $(\sin(x))^2$. A more complex exponent must be enclosed enclosed -in parentheses, for example \verb-ln^(x+1)(x)-. The former function, \texttt{Ck4Products}, -inserts the multiplication symbol, `\texttt{*}', wherever multiplication is implied. For example, -\verb+xysin(xy)+ becomes \verb+x*y*sin(x*y)+. - -\newtopic\textcolor{red}{Important:} If loaded, \texttt{exerquiz} -will automatically use these two functions in any math fill-in question, no further action is needed. - -%\exPDF{jquiztst} Many of the demo files that come with AeB use the \texttt{ImplMulti} option, one such -%representative file is \texttt{jquiztst.tex}. - -\exAeBBlogPDF{p=810} Many of the demo files that come with AeB use the \texttt{ImplMulti} option, one such -representative file is \texttt{\href{\urlAcroTeXBlog/?p=810}{jquiztst.pdf}}. - - -\subsection{Response Functions} \label{respfunc} - -For fill-in questions, a response function is one that is called immediately after the user -enters and commits an answer. The default response function that processes the user's response -is \texttt{ProcResp}. The $\text{10}^{\text{th}}$ argument of the \cs{RespBoxMath} command, -\begin{equation*} - \text{\respBoxPara} -\end{equation*} -is used to specify another response function. This section discusses the alternate -response functions available in the library, and gives examples of each. - -\subsubsection{\texttt{equations}} \label{equations} - -Use this option to process questions for which an equation is the -expected answer. This option defines the JavaScript function -\texttt{ProcRespEq}. When using a math fill-in question (the -\cs{RespBoxMath} command), this function is placed in the optional -$\text{10}^{\text{th}}$ argument, the one that follows \texttt{*}. -See \Nameref{ss:respbox} for a description of the parameters of -\cs{RespBoxMath} - -\newtopic The following question goes inside a \texttt{quiz} or -\texttt{shortquiz} environment. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\RespBoxMath{y = 4 * x - 3}(xy){4}{.0001}{[0,1]x[0,1]}*{ProcRespEq} -\end{Verbatim} - -%\exPDF{jqzequat} The demo file \texttt{jqzequat.tex} includes the -%above example as well as other in the context of a working -%\texttt{shortquiz}, found in the \texttt{dljslib\_examples} folder. - -\exAeBBlogPDF{p=951} The demo file -\texttt{\href{\urlAcroTeXBlog/?p=951}{jqzequat.pdf}} includes the above -example as well as other in the context of a working \texttt{shortquiz}. - -\newtopic Alert box message: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\equationsAlertMsg{"An equation is expected"} -\end{Verbatim} - -\subsubsection{\texttt{vectors}}\label{vectors} - -Use this option to process questions for which a vector is the -expected answer. This option defines the JavaScript function -\texttt{ProcVec}. When using a math fill-in question (the -\cs{RespBoxMath} command), this function is placed in the optional -$\text{10}^{\text{th}}$ argument, -the one that follows \texttt{*}. See \Nameref{ss:respbox} for a -description of the parameters of \cs{RespBoxMath}. - -\newtopic The following question goes inside a \texttt{quiz} or -\texttt{shortquiz} environment. The premise of these two questions -is that the definitions of $\vec a$, $\vec b$ and $f(t)$ are given: -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\item $\vec a + \vec b = - \RespBoxMath{<4, 4, 4>}{1}{.0001}{[2,4]}*{ProcVec}$ -\item $\vec f'(t) = - \RespBoxMath{<e^t, 2*t, cos(t)>}(t){3}{.0001}{[0,1]}*{ProcVec}$ -\end{Verbatim} -The first question takes a three component vector of numerical values, the second -takes a three component vector of function values. - -%\exPDF{jqzvector} These two examples were taken from the demo file \texttt{jqzvector.tex}, -%which includes both \texttt{quiz} and \texttt{shortquiz} environments, found in the \texttt{dljslib\_examples} folder. - -\exAeBBlogPDF{p=949} These two examples were taken from the demo file -\texttt{\href{\urlAcroTeXBlog/?p=949}{jqzvector.pdf}}, -which includes both \texttt{quiz} and \texttt{shortquiz} environments. - - -\newtopic Alert box messages: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\vectorsErrorMsgi{"I'm looking for a vector. - You need to use proper vector notation, - try using angle brackets <....>."} -\newcommand\vectorsErrorMsgii{"Angle brackets are not balanced. - Check the expression you typed in."} -\newcommand\vectorsErrorMsgiii{"Incorrect number of components. - The answer requires " + aCorrAns.length + " components."} -\end{Verbatim} - -\subsubsection{\texttt{setSupport}} \label{setSupport} - -We introduce three JavaScript (response) functions -for handling a set of answers or a comma delimited list of answers, these -are \texttt{ProcRespSetNum}, \texttt{ProcRespSetSym}, and -\texttt{ProcRespListFormula}. The first function is for numerical -answers, the second for simple symbolic answers. These JavaScript response -functions are passed to \cs{RespBoxMath} as the $\text{10}^{\text{th}}$ argument. - -%\exPDF{set_test} The demo file for these three -%response functions is \texttt{set\_test.tex}; the examples below -%were taken from that file, found in the \texttt{dljslib\_examples} -%folder. - -\exAeBBlogPDF{p=953} The demo file for these three -response functions is \texttt{\href{\urlAcroTeXBlog/?p=953}{set\_test.pdf}}. - - -\newtopic\indent The functions \texttt{ProcRespSetNum}, \texttt{ProcRespSetSym} can -handle (math fill-in) questions whose answers are a \textit{set of -numbers (symbols)} or a comma delimited \emph{list of numbers -(symbols)}. - -\paragraph*{ProcRespSetNum:}\label{para:ProcRespSetNum} The function can handle (math fill-in) -questions whose answers are a \textit{set of numbers} or a -comma delimited \textit{list of numbers}. - -\newtopic This example takes a comma-delimited -list as its expected response. After the student enters the -response, the answer is formatted as a set, with enclosing braces, -like so \verb!{ ... }!. The student does not enter the braces, the -JavaScript does after the comma-delimited list is entered and -committed. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -$(x+1)^2 (x+3) = 0$, $S = \RespBoxMath[\AddAAFormat{\formatAsSet} - \rectW{.75in}\textSize{0}]{-1,-3}{1}{.0001}{[0,1]}*{ProcRespSetNum}$ -\end{Verbatim} -\noindent The formatting of answer is accomplished by passing -\verb!\AddAAFormat{\formatAsSet}! as an optional argument of -\cs{RespBoxMath}. The command \cs{formatAsSet} expands to a -JavaScript function that is defined when the \texttt{setSupport} -option is taken. The little-known key \cs{AddAAFormat} is -defined in \textsf{exerquiz} and is specifically designed for inserting -special formatting into a math fill-in response. The use of the set -formatting is optional. - -\newtopic This next example again uses \texttt{ProcRespSetNum}. The -equation has repeated roots. To require the student to enter the -repeated roots, just list them as part of the answer argument. -%Here,the set notation is not used (since it would be incorrect -%\verb~{-1, 1/2, 2, 2, 2} = {-1, 1/2, 2}~). -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -$(x+1)(2x-1)(x-2)^3 = 0$, $x = \RespBoxMath[\rectW{.75in}\textSize{0}] - {-1, 1/2, 2, 2, 2}{1}{.0001}{[0,1]}*{ProcRespSetNum}$ -\end{Verbatim} - -\paragraph*{ProcRespSetSym:} The function can handle (math fill-in) -questions whose answers are a \textit{set of symbols}. - -This function can handle simple symbolic answers. The variable list should -be the ``universal set'' of the problem. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\def\U{a,b,c,d,e,f,g} % define a universal set -$A \cap B = \RespBoxMath[\AddAAFormat{\formatAsSet} - \rectW{.75in}\textSize{0}]{c,d}(\U){1}{.0001}{[0,1]}*{ProcRespSetSym}$ -\end{Verbatim} - -\paragraph*{ProcRespListFormula:} This function can handle a (math fill-in) -question whose answer is a comma-delimited list of expressions. Similar to -\texttt{ProcVec}, but the angle brackets are not used to specify the vector. - -\newtopic In this example, taken from \texttt{set\_test.tex}, a -vector response is required, but without the enclosing angle -brackets. -\begin{Verbatim}[xleftmargin=\amtIndent] -$\vec f'(t) = \RespBoxMath{e^t, 2*t,cos(t)}(t){3} - {.0001}{0}{1}*{ProcRespListFormula}$ -\end{Verbatim} -You can also define your own formatting function, to format -the input. - -\subsubsection{\texttt{unordered}} \label{unordered} - -This option defines the JavaScript (response) function -\texttt{ProcRespSetFormula} that will grade an \emph{unordered list} of -formulas, such as \texttt{x}, \verb!x^2!, \verb!x^3!. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -Some question requiring an unordered list of responses. -\RespBoxMath{x,x^2,x^3}{10}{.0001}{[1,2]}*{ProcRespSetFormula} -\end{Verbatim} -A correct answer is a list of the monomials \verb!x!,\verb!x^2!,\verb!x^3! in any order. -As usual, this JavaScript response function is passed to -\cs{RespBoxMath} as the $\text{10}^{\text{th}}$ argument. - -%\exPDF{dljslib_apw} The demo file that uses the \texttt{unordered} option is -%\texttt{dljslib\_apw.tex}, which can be found in the \texttt{dljslib\_examples} folder - -\exAeBBlogPDF{p=959} The demo file that uses the \texttt{unordered} option is -\texttt{\href{\urlAcroTeXBlog/?p=959}{dljslib\_apw.pdf}}. - - -\subsubsection{\texttt{factors}} \label{factors} - -The factors option defines \texttt{ProcRespFactors}, passed to -\cs{RespBoxMath} as the $\text{10}^{\text{th}}$ argument. The -response function \texttt{ProcRespFactors} is used for grading -polynomial factoring questions. For example, if a polynomial factors -as \verb!-5x^2(x-4)(x+2)!, then the answer is only unique up to the -order of factors and a change of sign on an even number of factors. -The student could respond with \verb!-5x^2(x+2)(x-4)! or -\verb!5x^2(-x+4)(x+2)! or \verb!-5(x-4)(x+2)x^2!. The function -should grade all of these variations correctly; however, it will not -grade \verb!-(x-4)(x+2)5x^2! as correct. The leading coefficient, if -there is one, must be placed at the beginning, which conforms to our -usual conventions. - -\begin{Verbatim}[xleftmargin=\amtIndent] -Completely factor the polynomial $x^3-4x^2 + 2x - 8$. -\RespBoxMath{(x^2+2)(x-4)}{10}{0.0001}{[0,1]}*{ProcRespFactors} -\end{Verbatim} -Note that \texttt{ProcRespFactors} is passed to -\cs{RespBoxMath} as the $\text{10}^{\text{th}}$ argument. - -%\exPDF{dljslib_apw} The demo file that uses the \texttt{factors} option is -%\texttt{dljslib\_apw.tex}, which can be found in the \texttt{dljslib\_examples} folder - -\exAeBBlogPDF{p=959} The demo file that uses the \texttt{factors} option is -\texttt{\href{\urlAcroTeXBlog/?p=959}{dljslib\_apw.pdf}}. - - -\subsubsection{\texttt{point}} \label{point} - -The response function \texttt{ProcPoint} is an almost exact copy of your -\texttt{ProcVec}, but uses parentheses instead of angle brackets as -delimiters. Used with questions that have a point $(x,y)$ as the -answer. -\begin{Verbatim}[xleftmargin=\amtIndent] -Calculate the derivative of $\vec f(t) = (e^t,e^(t^2))$. -\RespBoxMath{(e^t,2te^t)}(t){10}{0.0001}{[0,1]}*{ProcPoint} -\end{Verbatim} -\texttt{ProcPoint} is passed to -\cs{RespBoxMath} as the $\text{10}^{\text{th}}$ argument. - - -%\exPDF{dljslib_apw}The demo file that uses the \texttt{point} option is -%\texttt{dljslib\_apw.tex}. - -\exAeBBlogPDF{p=959} The demo file that uses the \texttt{point} option is -\texttt{\href{\urlAcroTeXBlog/?p=959}{dljslib\_apw.pdf}}. - - -\newtopic Alert box messages: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\pointErrorMsgi{"I'm looking for a point. - You need to use proper point notation."} -\newcommand\pointErrorMsgii{"Parentheses are not balanced."} -\newcommand\pointErrorMsgiii{"Incorrect number of components. - The answer requires " + aCorrAns.length+" components."} -\end{Verbatim} - -\subsubsection{\texttt{intervals}} \label{intervals} - -\texttt{ProcRespIntervals} is for grading questions that have an -interval or union of intervals as the answer. Examples of answers -supported by this function are listed below: -\begin{Verbatim}[xleftmargin=\amtIndent] -(2,3) -[2,3] -(-inf,4) -(-inf,4] -(6,inf) -[6,inf) -(2,3)U[8,9) -(-inf,6)U(9,inf) -(-inf,6]U[7,8)U(9,inf) -\end{Verbatim} -Here \texttt{inf} for infinity and the capital letter \texttt{U} for -the union symbol. Note also that intervals in a union can appear -in any order. - -The \texttt{ProcRespIntervals} function has been modified by Robert Marik -to allow intervals with end points \texttt{ln(2)}, \texttt{exp(4)} or \texttt{sqrt(3)}. -Thus, intervals of the form -\begin{Verbatim}[xleftmargin=\amtIndent] -(ln(2),ln(3)]U(exp(10),inf) -\end{Verbatim} -are recognized by this procedure. - -\begin{Verbatim}[xleftmargin=\amtIndent] -\RespBoxMath{(-inf,4]U[5,inf)}{10} - {.0001}{\viidna}*{ProcRespIntervals} -\end{Verbatim} -\Important Problems with unbalanced parentheses while -authoring and building the PDF file. The code below -\begin{Verbatim}[xleftmargin=\amtIndent] -\intervalbox{(-inf,4)U[5,inf)} -\end{Verbatim} -the right parenthesis of the second interval does not have a -matching left parenthesis. This causes problems with Acrobat -Distiller. As a work around, escape the odd parenthesis (using -\cs{eqbs}), like so \verb!\intervalbox{(-inf,4)U[5,inf\eqbs)}!, - where \cs{eqbs} is defined in the \textsf{insdljs} package. - -%\exPDF{dljslib_apw}The demo file that uses the \texttt{factors} option is -%\texttt{dljslib\_apw.tex}. - -\exAeBBlogPDF{p=959} The demo file that uses the \texttt{factors} option is -\texttt{\href{\urlAcroTeXBlog/?p=959}{dljslib\_apw.pdf}}. - - -\subsubsection{\texttt{complex}}\label{complex} - -This option extends the ability of \textsf{exerquiz} to process questions -that are expecting a complex number as an answer. - -\paragraph*{ProcRespComplex:} The \texttt{complex} option defines -the function \texttt{ProcRespComplex}, which is specified in the usual way, as seen below. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -$(3+3i)+(4+5i) = \RespBoxMath{7+8i}{3}{0.0001}{[0,1]}*{ProcRespComplex}$ -\end{Verbatim} -The \texttt{complex} option also defines the \texttt{cis} function, -the definition of which is -$\operatorname{cis}(x)=\cos(x)+\imath\sin(x)$. When \texttt{complex} -is not loaded, this function is undefined, and will be caught by the -parser of exerquiz as a syntax error. If \texttt{complex} is loaded -and the user enters the \texttt{cis} function in a non-complex -problem, the user's answer is not flagged as a syntax error and will -most probably be scored as \emph{wrong}. The exerquiz implementation of the \texttt{cis} -function, does not, at this time, support powers of the \texttt{cis} function, the parser -attempts to find expressions of the form \texttt{cis\string^}, flag it, and emit -an alert message, see below. This implementation does not detect powers of the form -\texttt{(cis(x))\string^2}, however. - -The next two functions are due to Bruce Wagner, with modifications by D. P. Story. - -\paragraph*{ProcRespListComplex:} This response function evaluates an \emph{ordered} list -of comma-delimited complex numbers. For example, -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -If $z=4(\cos x+i\sin x)$, compute $z^2$ and $z^3$, in that order. -\RespBoxMath{16*cis(2x),64*cis(3x)}{4}{0.0001} - {[0,1]}*{ProcRespListComplex} -\end{Verbatim} - - -\paragraph*{ProcRespSetComplex:} This response function evaluates an \emph{unordered} list -of comma-delimited complex numbers. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] - Find all real and complex solutions of the equation $x^2=-9$. - Express your answer(s) in rectangular form $a+bi$. - \RespBoxMath{3i,-3i}{4}{0.0001}{[0,1]}*{ProcRespSetComplex} -\end{Verbatim} - - -%\exPDF{dljslib_complex}The demo file that uses the \texttt{complex} option is -%\texttt{dljslib\_complex.tex}. - -\exAeBBlogPDF{p=1129} The demo file that uses the \texttt{complex} option is -\texttt{\href{\urlAcroTeXBlog/?p=1129}{dljslib\_complex.pdf}}. - - -\newtopic Alert box messages: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\complexPowerAlertMsg}{% - "Powers of i (for example, i^2, i^3) are not supported, - replace powers of i with their complex equivalents." -} -\newcommand{\complexCisAlertMsg}{% - "The cis function does not support exponents. Write, - for example, cis^3(x) as cis(3*x), instead."} -\newcommand{\alertNotComplexMsg}{% - "The expression is not in the form of a complex - number, a+bi"} -\def\emptyCompComplexMsg(#1){% - "You entered nothing for the component " - +(#1+1)+" of your answer. Please enter a complex number." -} -\end{Verbatim} -The latter definition takes a delimited argument, necessary since it executes -within a verbatim environment where braces \texttt{\{} and \texttt{\}} are -not grouping delimiters. - -\subsection{Compare Functions} \label{compareFuncs} - -Compare functions are used to compare the author's answer with the -student's answer. Based on the comparison, the student's answer is -judged correct, or not. The \textsf{exerquiz} package has two -built-in compare functions: \texttt{diffCompare} (the default) and -\texttt{reldiffCompare}. The former makes the comparison based on absolute differences -\[ - \texttt{diffCompare} = |\,\text{Author Ans} - \text{Student Ans}\,| -\] -while the latter uses absolute relative differences to make the comparison -\[ - \texttt{reldiffCompare} = \frac{|\,\text{Author Ans} - \text{Student Ans}\,|} - {|\text{Author Ans}|} -\] -Comparison functions are passed through the $\text{9}^{\text{th}}$ argument of \cs{RespBoxMath}, -if no such argument is passed, \texttt{diffCompare} is used. - -\subsubsection{\texttt{indefIntegral}}\label{indefIntegral} - -The answer to an indefinite integral is non-unique; however all -answers differ by a constant. This compare function is used with -indefinite integrals. Note the name of the function is -\texttt{indef\-Com\-pare}, this is the name you use to call the -function. To use this compare function, insert its name in optional -$\text{9}^{\text{th}}$ argument, -\begin{equation*} - \text{\respBoxPara} -\end{equation*} -that's the argument that follows the interval specification. - - -An example of usage of this function is found in the sample file -\texttt{dljslib\_ex.tex}, referenced below; from that file we have: -\begin{Verbatim}[xleftmargin=\amtIndent] -$\displaystyle\int\sin(x)\,dx = - \RespBoxMath{-cos(x)}{4}{.0001}{[0,1]}[indefCompare]$ -\end{Verbatim} - -%\exPDF{dljslib_ex} See the demo file -%\texttt{dljslib\_ex.tex} for an example of indefinite integration -%comparison. Numerous other files use indefinite integration as well. - -\exAeBBlogPDF{p=961} See the demo file -\texttt{\href{\urlAcroTeXBlog/?p=961}{dljslib\_ex.pdf}} for an example of -indefinite integration comparison. - - -\subsubsection{satisfyEq} - -The \texttt{satisfyEq} library of procedures supports the type of question where -the student is asked to enter one or more points that satisfy an equation. - -We pose a problem where the student is asked to enter an order pair or triple -that satisfies an equation. For example - -\newtopic\makebox[0pt][r]{\large\color{red}$\blacktriangleright$\enspace}% -\begin{oQuestion}{satisfyEqQuiz}% -Enter a point that lies on the line $2x+3y=6$, the answer is an -ordered pair of numbers, for example $(1,2)$. -\begin{equation*} - \text{A point is }\RespBoxMath[% - \rectW{1.5in}\textSize{0}]{2x+3y-6}(xy){1}{.0001}{\viidna}*{ProcRespEvalEq}\kern1bp - \CorrAnsButton{various, such as (0,2)} -\end{equation*} -\end{oQuestion} -The verbatim listing follows: -\begin{Verbatim}[numbers=left,xleftmargin=\amtIndent,fontsize=\small] -\RespBoxMath[\rectW{1.5in}\textSize{0}]{2x+3y-6}(xy){1} - {.0001}{\viidna}*{ProcRespEvalEq}\kern1bp - \CorrAnsButton{various, such as (0,2)} -\end{Verbatim} -Line~(2) shows the placement of one of the procedures, \texttt{ProcRespEvalEq}, -that is part of \texttt{satisfyEq}. - -\newtopic There are four procedures in this set: -\begin{enumerate} - \item \texttt{ProcRespEvalEq}: Supports a single equation, the answer - is a single ordered $n$-tuple, the entries are allowed to be zero. - \item \texttt{ProcRespEvalEqNonZero}: Supports a single equation, the - answer is a single ordered n-tuple, the entries are \emph{not - allowed} to be zero. - \item \texttt{ProcRespEvalEqList}: Supports a single equation, the - answer consists of $k$, $n$-tuples, the components of the - $n$-tuples are allowed to be zero. Each $n$-tuple is separated - by a semi-colon (;). - \item \texttt{ProcRespEvalEqListNonZero}: Supports a single equation, - the answer consists of $k$, ordered $n$-tuples, the components of the - $n$-tuples are \emph{not allowed} to be zero. Each $n$-tuple is separated - by a semi-colon (;). -\end{enumerate} - -\paragraph*{Some Technical Details.} Recall the parameter list for -\cs{RespBoxMath}, -\begin{equation*} - \text{\respBoxPara} -\end{equation*} - - -\noindent\texttt{ProcRespEvalEq}, \textsl{et al}, are not based on random -point generation, as are all the other \textsf{exerquiz} functions. Here, -the user enters numerical data, the function then verifies the data -entered satisfies the given equation. The role of one of the parameters -has changed, others are ignored: -\begin{itemize} - \item The role of parameter \texttt{\#2} (the correct answer) has - changed. Suppose the equation presented to the user is $ F = G $. - \begin{itemize} - \item For \texttt{ProcRespEvalEq} and \texttt{ProcRespEvalEqNonZero}, - pass \texttt{F - G} as parameter \texttt{\#2}. - \item For \texttt{ProcRespEvalEqList} and \texttt{ProcRespEvalEqListNonZero}, - pass \texttt{k;F-G} as the parameter \texttt{\#2}. For this type of - problem, the author is asking the user to enter \texttt{k}, $n$-tuples - that satisfy the equation. Note \texttt{k} and \texttt{F-G} are delimited - by a semicolon (\texttt{;}). - \end{itemize} - \item The value of \texttt{epsilon} (parameter \texttt{\#6}) is obeyed. - \item Parameter \texttt{\#5}, the number of iterations, is not used. - Though this parameter is not used, \texttt{\#5} is required by the - macro, so just use \texttt{1} as the number of iterations. - \item Parameter \texttt{\#7}, the domain of the variables, is not - used. Again, since this is a required parameter, use \cs{viidna}; - \cs{viidna} is a special command that can be used for this - parameter, in this context only. - \item The optional parameter \texttt{\#9} is not used and is ignored if present. -\end{itemize} - -\exAeBBlogPDF{p=} Additional examples will (eventually) appear -on the \href{\urlAcroTeXBlog}{\AcroTeX{} Blog}. - - -\subsection{Filter User's Responses} \label{filterUserResp} - -Filters are JavaScript functions that process the user input before being passed to the response function. -Filters are passed to \cs{RespBoxMath} through the $\text{9}^{\text{th}}$ argument, -\begin{Verbatim}[xleftmargin=\amtIndent] -$\displaystyle\int\sin(x)\,dx = - \RespBoxMath{-cos(x)}{4}{.0001}{[0,1]}[indefCompare]$ -\end{Verbatim} -This $\text{9}^{\text{th}}$ argument can take on two formats: (1) the name of the compare function, -as illustrated in `\nameref{indefIntegral}' above; (2) a JavaScript object. Use a JavaScript object -as the $\text{9}^{\text{th}}$ argument to specify a filter. - -The JavaScript object that can be passed in the $\text{9}^{\text{th}}$ argument has two properties -\texttt{comp} and \texttt{priorParse}. The object has the form -\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] -{ comp: !ameta(compare), priorParse: !ameta(JS_func) | !ameta(array_JS_funcs) } -\end{Verbatim} -The first property is used to specify a compare function, the second -property specifies a filter or filters. The value of -\texttt{priorParse} may be a JavaScript function to filter the -user's response, or an array of JavaScript functions to filter the -user input. (The array must be specified using the \Com{Array} -command, illustrated below, see the paragraph -`\nameref{NoProducts}', on page~\pageref*{NoProducts}.) - -\subsubsection{\texttt{nodec}} \label{nodec} - -The \texttt{nodec} option defines the JavaScript function -\texttt{nodec} that attempts to prohibit the use of decimal numbers -in the response. The function simply searches the user response for -any occurrence of the decimal point. (The German language uses -the comma as a decimal point, you can set the decimal point to some -other symbol that \texttt{nodec} searches for through the command -\Com{setdecimalpoint}, the default definition is -\verb!\setdecimalpoint{.}!.) - -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -$ 0.75 = \RespBoxMath{3/4}{1}{.0001}{[0,1]}[{priorParse: nodec }] $ -\end{Verbatim} - -\newtopic Alert box message: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\nodecAlertMsg{% - "A decimal answer is not acceptable here - Please express your answer using fractions, square roots, - e, log, etc."} -\end{Verbatim} - -\subsubsection{\texttt{noBinFac}} \label{noBinFac} - -The \texttt{noBinFac} option defines the JavaScript filter function -\texttt{noBinFac}, that disallows binomial coefficients and -factorials in math fill-in questions. Binomial and factorial -functions are defined through the \texttt{combinatorics} option, -page~\pageref*{combinatorics}. - -\begin{Verbatim}[xleftmargin=\amtIndent] -The number of ways to choose four object from a set of ten is - \RespBoxMath{C(10,4)}{1}{.0001}{[0,1]}[{priorParse: noBinFac}] - \CorrAnsButton{C(10,4)}*{EvalCorrAnsButton} -\end{Verbatim} -The \texttt{noBinFac} filter is used, so the student is not allowed -to enter binomial coefficients; however, the document author can use -binomial coefficients, note the use in the answer (first argument) -and in the \cs{CorrAnsButton}. The special syntax used for -\cs{CorrAnsButton}, \Nameref{inclsoln}. - -%\exPDF{dljs_comb} Illustrations of this filter can be -%found in the \texttt{dljs\_comb.tex}. - -\exAeBBlogPDF{p=963} Illustrations of this filter can be found in -\texttt{\href{\urlAcroTeXBlog/?p=963}{dljs\_comb.pdf}}. - - -\newtopic Alert box messages: May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\noBinFactBinCoeffAlertMsg{% - "You may not use this notation here. - Please evaluate the binomial coefficient. - You may present your answer as a product rather - than calculating a very large number."} -\newcommand\noBinFactPermAlertMsg{% - "You may not use this notation here. - Please evaluate the permutation. - You may present your answer as a product rather - than calculating a very large number."} -\newcommand\noBinFactFactAlertMsg{% - "You may not use this notation here. - Please evaluate the factorial. - You may present your answer as a product rather - than calculating a very large number."} -\end{Verbatim} - -\subsubsection{\texttt{limitArith}} \label{limitArith} - -The \texttt{limitArith} option defines a number of filter functions: -\begin{Verbatim}[xleftmargin=\amtIndent] -DecimalsOnly, NoProducts, NoDivision, NoAddOrSub, -NoArithAllowed,NoExpAllowed,NoTrigAllowed, NoTrigLogAllowed -\end{Verbatim} - -%\exPDF{limarth} Examples of these filtering functions -%can be found in the demo file \texttt{limarth.tex}. - -\exAeBBlogPDF{p=947} Examples of these filtering functions -can be found in the demo file -\texttt{\href{\urlAcroTeXBlog/?p=947}{limarth.pdf}}. - - -\paragraph*{DecimalsOnly} The \texttt{DecimalsOnly} is a function -that takes only numbers, either integer or decimal. Usage -\begin{Verbatim}[xleftmargin=\amtIndent] - $ 2.3 + 4.5 = \RespBoxMath{6.8}{1}{.0001}{[0,1]} - [{priorParse: DecimalsOnly }]$ -\end{Verbatim} - -\paragraph*{NoProducts}\label{NoProducts} The function -\texttt{NoProducts} requires that \texttt{ImplMulti} is taken. An -example of usage is -\begin{Verbatim}[xleftmargin=\amtIndent] -$ 3/4 = \RespBoxMath{.75}{1}{.0001}{[0,1]} - [{priorParse: \Array(NoDivision, NoProducts) }]$ -\end{Verbatim} -In the above example, we first call \texttt{NoDivision} then \texttt{NoProducts}. Several -filtering functions can be executed by putting them into an array, using the \cs{Array} -command.\footnote{The \cs{Array} command was originally named \cs{array}, it has been renamed -to avoid clashing with the \texttt{amsmath} package.} - -\paragraph*{NoAddOrSub} This function, as the name implies, denies the use of both addition and subtraction. -The algorithm I use here is that if a plus or minus follows anything but a left parenthesis, -we assume it is a binary operation of addition or subtraction, respectively. -\begin{Verbatim}[xleftmargin=\amtIndent] -$ 5.1 - 3.2 = - \RespBoxMath{1.9}{1}{.0001}{[0,1]}[{priorParse: NoAddOrSub}]$ -\end{Verbatim} - -\paragraph*{NoArithAllowed} Deny user the use of all arithmetic functions, including exponents. -\begin{Verbatim}[xleftmargin=\amtIndent] -$ 6/5 = \RespBoxMath{1.25}{1}{.0001}{[0,1]} - [{priorParse: NoArithAllowed}]$ -\end{Verbatim} - -\paragraph*{NoExpAllowed} Deny user the use of exponents. -\begin{Verbatim}[xleftmargin=\amtIndent] -$ 25^2 = \RespBoxMath{625}{1}{.0001}{[0,1]} - [{priorParse: NoExpAllowed}] -\end{Verbatim} - -\paragraph*{NoTrigAllowed} Deny user the use all trig functions, as -well as the constants \texttt{PI} and \texttt{pi}, which are aliases -for $\pi$. Example: -\begin{Verbatim}[xleftmargin=\amtIndent] -$ \sin(\pi/4) = \RespBoxMath{sqrt(2)/2}{1}{.0001}{[0,1]} - [{priorParse: NoTrigAllowed }]$ -\end{Verbatim} - -\paragraph*{NoTrigLogAllowed} Deny the use of trig and log functions. - -\begin{Verbatim}[xleftmargin=\amtIndent] -$ \ln(e^2)\sin(\pi/4) = \RespBoxMath{sqrt(2)}{1}{.0001}{[0,1]} - [{priorParse: NoTrigLogAllowed }]\CorrAnsButton{sqrt(2)}$ -\end{Verbatim} - -\paragraph*{sciNotResp} Allow only a response in \emph{normalized} scientific notation: -\texttt{aE([+]|-)d}, where $1\le|\texttt{a}|\le9$, and \texttt{d} is one or more digits -(0-9) prefixed by a \texttt{-}, or an optional \texttt{+}. -\begin{Verbatim}[xleftmargin=\amtIndent] -Convert 123.4 to scientific notation. -\begin{equation*} - 123.4 = \RespBoxMath{1.234E+2}*{1}{0}{[0,1]}[% - {priorParse: sciNotResp }]\CorrAnsButton{1.234E+2} -\end{equation*} -\end{Verbatim} - -\paragraph*{noNegExp} Does not allow negative exponents. For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\item Simplify $\displaystyle\frac{4}{r^4}\cdot\frac{r^3}{12}= - \RespBoxMath{1/(3r)}(r)*{3}{.0001}{[0,1]}[{% - priorParse:\Array( nodec, noNegExp ) - }]\CorrAnsButton{1/(3r)}$ -\end{Verbatim} - -\paragraph*{Alert box messages:} May be redefined. -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\DecimalsOnlyErrorMsg{"Enter only an integer, - e.g., 17, or a decimal number, e.g. 12.4. - Using arithmetic operations or built in function is - not acceptable for this problem."} -\newcommand\NoProductsErrorMsg{"Multiplication is not allowed - for this problem."} -\newcommand\NoDivisionErrorMsg{"Division is not allowed - for this problem."} -\newcommand\NoAddOrSubErrorMsg{"Neither addition nor subtraction - is not allowed for this problem."} -\newcommand\NoExpAllowedErrorMsg{"The use of exponents is not - allowed for this problem."} -\newcommand\NoTrigAllowedErrorMsg{"The use of trig functions - in this problem is not allowed."} -\newcommand\NoTrigLogAllowedErrorMsg{"The use of trig and log - functions is not allowed in this problem."} -\newcommand{\sciNotSyntaxError}{"Enter the answer in scientific - notation."} -\newcommand{\sciNotNormalForm}{"The scientific notation entered - is not in normalized form."} -\newcommand{\NoNegExpMsg}{"No negative exponents permitted, - keep working!"} -\end{Verbatim} - -\subsection{Extending Numerical Functions} \label{extNumerFuncs} - -These JavaScript functions extend the collection of built-in -functions that perform numerical calculations. - -\subsubsection{\texttt{combinatorics}}\label{combinatorics} - -This option defines three JavaScript functions: a binomial -coefficient function \texttt{ch(n,r)}; a number of permutations -function \texttt{perm(n,r)}, and a factorial function -\texttt{fact(n)}. - -\paragraph*{User Accessible Functions} The user should use the names \texttt{C}, \texttt{P} and \texttt{fact} -to access the functions \texttt{ch}, \texttt{perm} and \texttt{fact}, respectively: -\begin{itemize} - \item $ \texttt{C(n,r)} = \texttt{ch(n,r)} = \dbinom{n}{r} = \dfrac{n\,!}{r\,!(n-r)\,!}$ - \item $ \texttt{P(n,r)} = \texttt{perm(n,r)} = n\cdot(n-1)\cdots(n-r)$ - \item $ \texttt{fact(n)} = n\cdot(n-1)\cdots3\cdot2\cdot1$ -\end{itemize} -\textbf{Note: }If you place \verb!\replaceExclPt{true}! in the preamble, the user is allowed to enter factorials using -the -traditional exclamation notation: for example, \texttt{17!} is the same as fact(17), and \texttt{(17)!}, \texttt{[17]!} -or \verb|{17}!| -are all interpreted as \texttt{fact(17)}. - -%\exPDF{dljs_comb} Illustrations of the \texttt{combinatorics} option can be -%found in the \texttt{dljs\_comb.tex}. - -\exAeBBlogPDF{p=963} Illustrations of the \texttt{combinatorics} option can be -found in \texttt{\href{\urlAcroTeXBlog/?p=963}{dljs\_comb.pdf}}. - - -%------------------------ List of Options ------------------------------------ -\newpage -\section{List of Options}\label{s:ListofOpts} - -%\begin{tabular}{|>{\bfseries\color{red}}l|>{\PBS\raggedright}p{.5\linewidth}|}\hline -% \multicolumn1{|>{\bfseries\columncolor{light-blue}}c|}{Component} & -% \multicolumn1{>{\bfseries\columncolor{light-blue}}c|}{Brief Description}\\ \hline \rowcolor[gray]{.9} - -\def\currentPackage{Web} - -\begin{center} -\setlength{\extrarowheight}{1mm} -\setlength{\tabcolsep}{2mm} -\begin{longtable}{|>{\ttfamily}l|>{\PBS\raggedright}p{.5\linewidth}|} -\hline -\multicolumn2{|c|}{Options of the Web/Exerquiz Packages} \\ -\hline -\endfirsthead -\hline -\multicolumn2{|c|}{Options of the Web/Exerquiz Packages (cont.)} \\ -\hline -\endhead -\hline -\endfoot -\multicolumn2{|c|}{Options of the Web Package} \\ -\hline -\hyperref[sss:driver]{dvipsone} & dvi-to-ps driver by {\Y&Y}, Inc. \\ -\hyperref[sss:driver]{dvips} & dvi-to-ps driver \\ -\hyperref[sss:driver]{pdftex} & tex-to-pdf application \\ -\hyperref[sss:driver]{dvipdfm} & dvi-to-pdf application \\ -\hyperref[sss:driver]{textures} & the Textures System for Mac \\ -\hyperref[sss:designoptions] - {\parbox[t]{.75in+4pt}{designi,\newline - designii,\newline designiii,\newline - designiv,\newline designv}} & these set screen design parameters \\ -\hyperref[ss:templates]{usetemplates} & this option activates mechanism for - creating colored backgrounds and overlays\\ -\hyperref[ss:templates]{leftpanel} & creates a left navigation panel\\ -\hyperref[ss:templates]{rightpanel} & creates a right navigation panel\\ -\hyperref[sss:navibar]{navibar} & inserts a menu bar at the bottom or each - page\\ -\hyperref[sss:latextoc]{latextoc} & displays the standard toc \\ -%\hyperref[sss:nodir]{nodirectory} & eliminates the directory listing on the title page\\ -\hyperref[sss:nodir]{usedirectory} & causes the title page directory to appear on the title page\\ -\hyperref[sss:webforpaper]{forpaper} & this turns off color, and does not put solutions on - separate pages. \\ -\hyperref[forcolorpaper]{forcolorpaper} & Same as \texttt{forpaper}, but - does not turn off color, useful for color printers.\\ -\hyperref[sss:weblatexlayout]% - {latexlayout} & \texttt{web} uses page - layout for \texttt{article} class. - For use with \texttt{forpaper}.\\ -\hyperref[sss:webtight]{tight} & Redefines list environment parameters so - lists don't take up so much space \\ -\hyperref[webpro]{pro} & Causes web to input enhanced control - over various web elements\\ -\hyperref[nobullets]{nobullets} & Forces the use of numbers for subsubsections, also executes the -\texttt{latextoc} option\\ -\hyperref[usesf]{usesf} & switches to sans serif as the default font, good for presentations\\ -\hyperref[web:unicode]{unicode} & Passes the \texttt{unicode} option to \pkg{hyperref}.\\ -\hyperref[web:useui]{useui} & Passes the \texttt{useui} option to \textsf{eforms}.\\ -\hyperref[web:xhyperref]{xhyperref} & Causes web not to include the hyperref package.\\ -\hyperref[web:langopts]{dutch} & Dutch for web, passed to exerquiz. (Thanks to Henny Wilbrink)\\ -\hyperref[web:langopts]{french} & French for web, passed to exerquiz. (Thanks to Jean-Michel Sarlat)\\ -\hyperref[web:langopts]{german} & German for web, passed to exerquiz. (Thanks to Michael Wiedmann)\\ -\hyperref[web:langopts]{italian} & Italian for web, passed to exerquiz. (Thanks to PierLuigi Zezza)\\ -\hyperref[web:langopts]{norsk} & Norwegian for web, passed to exerquiz. (Thanks to Hans Fredrik Nordhaug)\\ -\hyperref[web:langopts]{russian} & Russian for web, passed to exerquiz. (Thanks to Sergei V. Znamenskii)\\ -\hyperref[web:langopts]{spanish} & Spanish for web, passed to exerquiz. (Thanks to Pedro Luis Luque)\\ -\hyperref[web:langopts]{polish} & Polish for web, passed to exerquiz. (Thanks to Jerzy Mycielski)\\ -\hyperref[web:langopts]{finnish} & Finnish for web, passed to exerquiz. (Thanks to P\"aivi Porras)\\ -\hyperref[web:langopts]{catalan} & Catalan for web, passed to exerquiz. (Thanks to Ramon Ballester)\\ -\hyperref[web:langopts]{czech} & Czech for web, passed to exerquiz. (Thanks to Robert Marik)\\ -\hyperref[web:langopts]{brazil} & Brazilian Portuguese for web, passed to exerquiz. (Thanks to Koichi -Sameshima)\\ -\hyperref[web:langopts]{turkish} & Turkish for web, passed to exerquiz. (Thanks to Mahmut Ko\c{c}ak)\\ -\hline -\multicolumn2{|c|}{Options of the Exerquiz Package\gdef\currentPackage{Exerquiz}} \\ \hline -%\hyperref[ss:pdftexerquiz]{pdftex} & tex-to-pdf application \\ -%\hyperref[ss:exbasicusage]{dvipdfm} & dvi-to-pdf application \\ -\hyperref[sss:nosolutions]{nosolutions} & removes the solutions to the exercises \\ -\hyperref[sss:noquizsolutions]% - {noquizsolutions} & removes the solutions to the quizzes \\ -\hyperref[sss:nohideopt]% - {nohiddensolutions} & overrides the `\texttt{h}' (hidden) - option for the exercises.\\ -\hyperref[sss:noHideopt]% - {noHiddensolutions} & overrides the `\texttt{h}' and `\texttt{H}' - (hidden) options for the exercises.\\ -\hyperref[sss:nocorrections]% - {nocorrections} & removes the ability to correct the quizzes\\ -\hyperref[sss:solutionsafter]% - {solutionsafter} & solutions to exercises are typeset just after the question\\ -\hyperref[sss:exquizforpaper]{forpaper} & same function as in \pkg{web}. - Needed when \textsf{exerquiz} is not - used with \pkg{web}\\ -\hyperref[sss:exquizforpaper]% - {forcolorpaper} & same function as in \pkg{web}. - Needed when \textsf{exerquiz} is not - used with \pkg{web}\\ -\hyperref[sss:preview]{preview} & shows the outline of all form fields - in the dvi previewer \\ -\hyperref[sss:nodljs]{nodljs} & turns off the insertion of DLJS \\ -%\hyperref[sss:acrobativ]{acrobativ} & equivalent to \texttt{nodljs}\\ -\hyperref[sss:noquizzes]{exercisesonly} & if document has only exercises, no doc level JS needed\\ -%\hyperref[sss:debug]{debug} & this option is passed on to the \texttt{insdljs} package\\ -\hyperref[sss:proofing]{proofing} & mark the correct answers for - \texttt{shortquiz} \& - \texttt{quiz} for - proof reading. \\ -\hyperref[showgraylettersOpt]% - {showgrayletters} & Show gray letters under check boxes\\ -\hyperref[ss:allowrandomize]% - {allowrandomize} & Allow the randomization of choices in multiple choie questions\\ -\hyperref[eq:unicode]{unicode} & Passes the \texttt{unicode} option to \pkg{hyperref}.\\ -\hyperref[eq:useui]{useui} & Passes the \texttt{useui} option to \textsf{eforms}.\\ -\hyperref[eq:usesumrytbls]{usesumrytbls}& Inputs the code used to create quiz summary tables, - \hyperref[s:sumrytbl]{Section~\ref*{s:sumrytbl}}, page~\pageref*{s:sumrytbl}.\\ -\hyperref[eq:contsolns]{contsolns} & Places a `continued' message in the right footer on a solution page.\\ -\hyperref[sss:exerquizlangopts]{dutch} & JavaScript messages in Dutch (Thanks to Henny Wilbrink)\\ -\hyperref[sss:exerquizlangopts]{french} & JavaScript messages in French (Thanks to Jean-Michel Sarlat)\\ -\hyperref[sss:exerquizlangopts]{german} & JavaScript messages in German (Thanks to Michael Wiedmann)\\ -\hyperref[sss:exerquizlangopts]{italian}& JavaScript messages in Italian (Thanks to PierLuigi Zezza)\\ -\hyperref[sss:exerquizlangopts]{norsk} & JavaScript messages in Noregian (Thanks to Hans Fredrik Nordhaug)\\ -\hyperref[sss:exerquizlangopts]{russian}& JavaScript messages in Russian (Thanks to Sergei V. Znamenskii)\\ -\hyperref[sss:exerquizlangopts]{spanish}& JavaScript messages in Spanish (Thanks to Pedro Luis Luque)\\ -\hyperref[sss:exerquizlangopts]{polish} & JavaScript messages in Polish (Thanks to Jerzy Mycielski)\\ -\hyperref[sss:exerquizlangopts]{finnish}& JavaScript messages in Finnish. (Thanks to P\"aivi Porras)\\ -\hyperref[sss:exerquizlangopts]{catalan}& JavaScript messages in Catalan. (Thanks to Ramon Ballester)\\ -\hyperref[sss:exerquizlangopts]{czech} & JavaScript messages in Czech. (Thanks to Robert Marik)\\ -\hyperref[sss:exerquizlangopts]{brazil} & JavaScript messages in Brazilian Portuguese. (Thanks to Koichi Sameshima)\\ -\hyperref[sss:exerquizlangopts]{turkish}& JavaScript messages in Turkish. (Thanks to Mahmut Ko\c{c}ak)\\ -\hline -\end{longtable} -\end{center} - -\includeexersolutions - -\includequizsolutions - -\newpage -\markright{References} - -\begin{thebibliography}{[1]}\label{references} -\addcontentsline{toc}{section}{\protect\numberline{}References} -\backrefparscanfalse -\def\srtln{\vskip-\baselineskip\vskip-\parsep} -\def\lngln{\vskip-\parsep} - -\item[] We list cited referenced documents, articles, and webpages, as well as - recommended reading. Cited material has the page number where that entry - was referenced. - -\bibitem{tech:AcroJS}\hypertarget{references}{}% - Acrobat JavaScript Scripting Refernce, Technical Note \#5431, Version~6.0., - Adobe Systems, Inc. \backrefprint - \srtln\hfill{\small\url{http://partners.adobe.com/asn/acrobat/docs.jsp}} - -\bibitem{book:Lamport} - Leslie Lamport, \textit{\LaTeX: A Document Preparation} - System (2nd ed.), Addison-Wesley Publishing Company, - 1994, ISBN 0-201-52983-1. \backrefprint - -\bibitem{book:Goossens1} - Michel Goossens, Frank Mittelbach and Alexander - Samarin, \textit{The \LaTeX{} Companion}, second ed., Addison-Wesley - Publishing Company, 2004, ISBN 0-201-36299-6. \backrefprint - -\bibitem{book:Goossens2} - Michel Goossens, Sebastian Rahtz, and Frank - Mittelbach, \textit{The \LaTeX{} Graphics Companion}, - Addison-Wesley Publishing Company, 1997, ISBN - 0-201-85469-4. \backrefprint - -\bibitem{book:Goossens3} Michel Goossens, and Rahtz, Sebastian, - with Gurari, Eitan, Moore, Ross, and Sutor, Robert, - \textit{The \LaTeX\ Web Companion}, - Addison Wesley Longman, Reading, Massachusetts, USA, 1999. - ISBN: 0-201-43311-7. \backrefprint - -\bibitem{book:Kopka} - Helmut Kopka and Patrick W. Daly, \textit{A Guide to - \LaTeX2e} (2nd ed.), Addison-Wesley Publishing Company, - 1995, ISBN 0-201-43777-X. - -\bibitem{book:Knuth} - Donald E. Knuth, \textit{The \TeX book}, Addison-Wesley - Publishing Company, 1987, ISBN 0-201-13448-9. \backrefprint - -\bibitem{book:Merz} - Thomas Merz, \textit{Web Publishing with Acrobat/PDF}, - Springer-Verlag Berlin Heidelberg New York, 1998, - ISBN 3-540-63762-1. \backrefprint - -\bibitem{article:Story:Pdfmarks} - D.P. Story, \textit{Pdfmarks: Links and Forms}, AcroTeX Web - Site, 1998. \backrefprint - \lngln\hfill{\small\url{www.math.uakron.edu/~dpstory/acrotex.html}} - -\bibitem{article:Story:LaTeX} - D.P. Story, \textit{Using \LaTeX\ to Create Quality PDF Documents for the - WWW}, Acro\!\TeX\ Web Site, 1998. \backrefprint - \srtln\hfill{\small\url{www.math.uakron.edu/~dpstory/acrotex.html}} - -\bibitem{book:AEBB} - D. P. Story, \textsl{\AEBBook}, in preparation. \backrefprint - - -\end{thebibliography} - - -% \printindex -\end{document} - -\newpage - -\makeatletter -\renewcommand{\section}{% - \renewcommand{\@seccntformat}[1]{}% - \@startsection{section}{1}{\z@}% - {-3ex\@plus -1ex \@minus-.2ex}% - {1ex\@plus .2ex}% 6pt - {\noindent\normalfont\normalsize\bfseries\color{aeb}}}% -\renewcommand\subsection{% - \renewcommand{\@seccntformat}[1]{\textbullet\enspace}% - \@startsection{subsection}{2}{\z@}% - {-2.5ex\@plus -1ex \@minus -.2ex}% - {1ex \@plus .2ex}% - {\noindent\normalfont\normalsize\bfseries\color{aeb}}} -\renewcommand\subsubsection{% - \renewcommand{\@seccntformat}[1]{\color{aeb}\large$\bullet$\enspace} - \@startsection{subsubsection}{3}{\z@}% - {-2ex\@plus -1ex \@minus -.2ex}% - {.5ex \@plus .2ex}% - {\noindent\normalfont\normalsize\bfseries}} -\renewcommand*\thesection{} -\renewcommand*\thesubsection{\textbullet} -%\renewcommand*{\thesubsubsection}{\textbullet} -\renewcommand*\l@subsection{\@dottedtocline{2}{2.8em}{1.2em}} -%\l@subsection{\@dottedtocline{3}{3.8em}{1.2em}} -\makeatother - -\addtocontents{toc}{\string\renewcommand*\string\l@subsection{\string\@dottedtocline{2}{2.8em}{1.2em}}} - -\section{What's New} - -The following is a brief enumeration of some of the major new -features of the \pkg{web} and \textsf{exerquiz} packages. - -\subsection{Web} - -\begin{questions} - - \item (Version 4.1) Added the option \texttt{useui}, which is passed - \textsf{eforms}. If \textsf{eforms} is subsequently loaded, - \textsf{eforms} loads the xkeyval package, and key-value pairs are - defined for use in the optional argument of form and link commands. - See the \href{eformman.pdf}{eforms manual} for details. - - \item (Version 4.1) Added a unicode option. This option is passed to hyperref, if eforms - is subsequently loaded, eforms (and exerquiz) will accept {\LaTeX} markup in the optional - argument of the form fields. See the \href{eformman.pdf}{eforms manual} for details. - - \item (Version 4.1) Added the \texttt{turkish} language option. I extend my appreciation - to Mahmut Ko\c{c}ak for this translation. - - \item (Version 4.0g) Added the command \cs{useFullWidthForPaper}, see the discussion - in \Nameref{paperoptions}. - \item (Version 4.0f) Added \cs{setScreensizeFromGraphic}, see - \hyperref[setScreensizeFromGraphic]{Section~\ref*{setScreensizeFromGraphic}}, - page~\pageref*{setScreensizeFromGraphic}. - \item (Version 4.0d) \cs{makeinlinetitle}, see \Nameref{inlinetitle}. - \item (Version 4.0c) Added \cs{aboveTopTitleSkip}, the amount of skip above the first - line on the title page, so the whole title can be move downwards, if - desired. See the section \Nameref{top}. - \item (Version 4.0) The pro option with many user-convenient features, - see \Nameref{webpro}. - \item (Version 4.0) New \Web{} options of \texttt{usesf}, - \hyperref[usesf]{page~\pageref*{usesf}} and \texttt{center\-title\-page}, - \hyperref[centertitle]{page~\pageref*{centertitle}}. - -\item[] \rule[2pt]{1in}{.4pt} Older New Stuff \rule[2pt]{1in}{.4pt} - - \item (Version 3.3) Made many internal changes for my new package, the - \textsf{\textcolor{blue}{Acro\!\TeX{} Presentation Bundle}} (\cAPB), yet - to be released, but see \url{http://www.acrotex.net} for details and demos. - \item (Version 3.3) Added some commands for running headers - and footers, these are \cs{lheader}, \cs{cheader}, \cs{rheader}, - \cs{lfooter}, \cs{cfooter}, \cs{rfooter}, \cs{clearHeaders} and \cs{re\-store\-Head\-ers}. - \item (Version 3.2) Added support for the Dr. Uwe Kern's \textsf{xcolor} - package. Unrecognized options are passed to the color package, - in particular, the \textsf{(x)color} option \texttt{dvipsnames} is passed - from \Web{} to the color package. - \item[] If available, \textsf{xcolor} is used, otherwise - \pkg{web} uses the standard \textsf{color} package. - \item[] There is a \texttt{noxcolor} which should be used as a - global option, that is passed as an option of the class. Thus, -\begin{Verbatim}[xleftmargin=\amtIndent] -\documentclass[noxcolor]{article} -\end{Verbatim} - will cause \pkg{web} (and other packages such as - \textsf{PSTricks}) to use the \textsf{color} package, even - though \textsf{xcolor} may be present. - \item (Version 3.2) Added a \texttt{nobullets} option. When taken, the bullets - that traditionally appear for the \cs{subsubection} now appear - with subsubsection numbers. - - \item (Version 3.2) Added a \texttt{draft} option: When you take this option, - graphic overlays are not allowed. This is useful when you rely - heavily on graphic overlays, but during the development phase, - don't need to read and re-read your overlays. The defined - background colors will be used instead. Remove this option to - build the final version of your document. - - \item (Version 3.2) Defined macros for conveniently - setting the color of some of the title page elements: - \cs{titleColor}, \cs{authorColor} and \cs{universityColor}. - Each takes a single argument, a named color. The defaults are -\begin{Verbatim}[xleftmargin=\amtIndent] -\universityColor{blue} -\titleColor{black} -\authorColor{black} -\end{Verbatim} - - \item (Version 3.2) Changed optional argument for the template commands - \cs{template} and \cs{panel\-template}: -\begin{Verbatim}[xleftmargin=\amtIndent] -\template[<includegraphics\_opts>]{<path\_to\_template>} -\paneltemplate[<includegraphics\_opts>]{<path\_to\_template>} -\end{Verbatim} - The optional argument \texttt{[<includegraphics\_opts>]} can be used - to pass options to the underlying \cs{includegraphics} command. Do - not use the \texttt{width} and \texttt{height} keys; probably, it is - safest to use only the Boolean keys. The Boolean key - \texttt{hiresbb} is quite useful when stretching a small graphic to - fit over a larger area. The one required argument is the path to the - graphic file. - - \item (Version 3.2) Added a number of new commands to improve template management. See - the \texttt{web.dtx} for documentation. - \item (Version 3.2) Added language option \texttt{czech}, the translation due - to Robert Marik. - \item (Version 3.2) Added language option \texttt{catalan}, the translation due - to Ramon Ballester. - \item (Version 3.2) Added language option \texttt{brazil}, the translation due to - Koichi Sameshima. - \item Added language \texttt{finnish} Options. Translation due - to Paivi Porras. - \item Added a \texttt{\hyperref[forcolorpaper]{forcolorpaper}} option. This is the same as \texttt{forpaper} - but the color operators are not turned off. - \item Added three new options for creating color backgrounds - and overlays, \texttt{usetemplates}. \texttt{rightpanel} and - \texttt{leftpanel}, see the section \Nameref{ss:templates}. - The various template options requires the \textsf{eso-pic} - package by Rolf Niepraschk and the \textsf{everyshi} package - by Martin Schr\"oder. The \textsf{web package} supports graphics overlays - for the \texttt{dvipsone}, \texttt{dvips}, \texttt{pdftex} and - \texttt{dvipdfm} options. - \item Added a command to create navigation icons, - \nameref{ss:newnaviicon}, page~\pageref{ss:newnaviicon}. - \item Added a \texttt{textures} option, due to Ross Moore. - \item Made some minor changes to make \pkg{web} work better - with the \texttt{book} document class. - \item The introduction of the \textsf{polish} option. This - makes a total of nine localizations of \textsf{web/exerquiz}: - french, german, norsk, dutch, spanish, italian, russian, - dansk and polish. - \item Set an alias between \cs{marginsize} and \cs{margins}. - The latter is used by pdfscreen. This will make it easier for - people to switch between using web and pdfscreen. The use of - \cs{marginsize} is now deprecated. -\end{questions} - -\normalcolor - -\subsection{Exerquiz} - - -\begin{questions} - - \item (Version 6.3) Added the option \texttt{useui}, which is passed - \textsf{eforms}. If \textsf{eforms} is subsequently loaded, - \textsf{eforms} loads the xkeyval package, and key-value pairs are - defined for use in the optional argument of form and link commands. - See the \href{eformman.pdf}{eforms manual} for details. - - \item (Version 6.3) Added a unicode option. This option is passed to hyperref, if eforms - is subsequently loaded, eforms (and exerquiz) will accept {\LaTeX} markup in the optional - argument of the form fields. See the \href{eformman.pdf}{eforms manual} for details. - - \item (Version 6.3) Added the \texttt{turkish} language option. I extend my appreciation - to Mahmut Ko\c{c}ak for this translation. - - \item (Version 6.2d) Added \cs{titleQuiz} and \cs{fancyQuizHeaders}, - see \hyperref[titleQuiz]{Section~\ref*{titleQuiz}}, page~\pageref*{titleQuiz} - and \hyperref[titleQuizSQ]{Section~\ref*{titleQuizSQ}}, page~\pageref*{titleQuizSQ}. - \item (Version 6.2c) Added a feature that I have used for years to \textsf{exerquiz}: - see the section titled \Nameref{showcreditmarkup}. - \item (Version 6.2a) Added a feature for bookmarking exercises and quizzes, - see \hyperref[bmExQz]{Section~\ref*{bmExQz}} on page~\pageref*{bmExQz}. - \item (Version 6.2) Added the manswers environment for multiple answer - questions, that is, multiple choice questions that have several correct - answers. Multiple selection is permitted. See the \Nameref{manswersQuiz}. - \item (Version 6.1) Added the ability to randomize the multiple - choice alternatives, see the two sections \Nameref{ss:allowrandomize} and - \Nameref{s:random} for details. - \item (Version 6.05f) For inputting math fill-in responses. \texttt{log} now means common log, - and as before \texttt{ln} means natural log. Also, - re-engineered things so that math fill-in now accepts, and - correctly interprets, scientific notation (using E-notation) - $\texttt{<decimal\_number>}\text{E}\texttt{<integer>}$. The - capital letter E represents ``times ten raised to the power'', - the lower case e is reserved for use as the natural number. - \item (Version 6.05d) Added option \texttt{showgrayletters}, - see \Nameref{showgraylettersOpt}. - \item (Version 6.05e) Added \cs{setMClabelsep} and - \cs{resetMClabelsep} to adjust the horizontal distance between - the label and text for multiple choice questions. See the - discussion in \Nameref{BasicUsage}. - - \item (Version 6.05g) Added \cs{renameSolnAfterTo} for conveniently - changing the solution after label, and - \cs{resetSolnAfterToDefault} for resetting back to the default. - These two commands are available for use in \textsf{exerquiz} or - in \textsf{eqexam}. There is a brief discussion of these - commands in \Nameref{sss:solutionsafter}. - - \item (Version 6.05c) Added the commands \Com{DeclareQuiz}, \Com{floatQuiz}, - \Com{startQuizHere}, \Com{endQuizHere}, and \Com{dockQuiz}. to - start a quiz in an arbitrary place prior to the beginning of the - quiz. See \Nameref{floatQuiz}. - -\item[] \rule[2pt]{1in}{.4pt} Older New Stuff \rule[2pt]{1in}{.4pt} - -\item (Version 6.03) Added the \hyperref[bChoices]{\cs{bChoices}}/\cs{eChoices} command - pair, this makes it easy to lay out multiple choice alternatives. - -\item (Version 6.0) Improved the \texttt{mathGrp} environment so - that it treats grouped question truly as a unit. Added two - optional parameters to the environment. The document author - can specify a JavaScript function to grade the grouped - questions. Despite its name, \texttt{mathGrp} environment - works for text fill-in as well as math fill-ins (but not for - multiple choice). The \texttt{mathGrp} environment also now - works for the \texttt{shortquiz} environment (in addition to - the \texttt{quiz} environment). See \Nameref{grouped}. - - \item Separated the \href{eformman.pdf}{eforms} support from - the \textsf{exerquiz} package. \textsf{eforms} is now a - stand-alone package that can be used by people who may want to - use PDF forms outside the context of a document that contains - quizzes. See the demo file \texttt{eforms\_tst.tex}. - - \item \textcolor{red}{Important:} There is one required - parameter for the \texttt{quiz} environment, a base name used - to build the names of the form fields used in the quiz, e.g., - \verb+\begin{quiz}{qzQuiz1}+. Now this base name of the quiz - should only contain ascii characters or numbers. This name is - now used to construct a JavaScript object, so it must be a - valid JavaScript object name. For example \texttt{qzQuiz1} is - correct, but \texttt{qz:Quiz-1} is not. - - \item Created \cs{@PromptButton} a new correct answer button for quizzes. Quiz - questions might have a series of parts in which the answer - to one part depends on the answer to the previous part. - With \cs{@PromptButton}, the answer can be optionally - provided while the student is taking the quiz. See the section on the - Prompt Button for details. - - \item Created a grouping environment for math fill-in questions. See the section - entitled Grouping Math Fill-in Questions. - - \item Added a \texttt{noquizsolutions} option -- mostly for online quizzing -- - see page~\pageref{sss:noquizsolutions}. - \item Changed the behavior of \cs{CorrButton}: If \hyperref[sss:nocorrections]{\texttt{nocorrections}} - is used, the \cs{CorrButton} does not appear. This is reasonable, - \cs{CorrButton} is used to display corrections to the quiz. - \item Modified the \texttt{questions} environment so that it behaves more like - standard {\LaTeX} list environments. You can now nest the \texttt{questions} - environment three deep. See \texttt{pc\_test.tex} for examples. - \item Added an optional argument to the \cs{Ans} command for multiple-choice questions - for assigning \textit{partial credit}. See the demo file \texttt{pc\_test.tex}. - \item Modified the behavior of the link-type multiple choice questions When you select - an alternative, a check appears superimposed over the letter. I've removed the - alert dialog informing the user that he has change his selection. The file - \texttt{pc\_test.tex} illustrates this. - \item The \hyperref[paraRespBoxNine]{ninth parameter} of \cs{RespBoxMath} has been modified to take an JS object. - This object can have two properties: -\begin{Verbatim}[xleftmargin=\amtIndent] -{ [ priorParse: <js function> | <array of js functions> ], - [ comp: <compare function> ] } -\end{Verbatim} - The \texttt{priorParse} property is used to filter the user's answer prior to be fully parsed, - while the \texttt{comp} property is used to specify a custom compare function. - See the demo file \texttt{integer\_tst.tex} for examples. - \item Again for the math fill-in (\cs{RespBoxMath}), the way in which you specify variables (the - \hyperlink{paraRespBoxThree}{third parameter}) - has changed: Specify the variables using a comma-delimited list, for example, \texttt{(r:x,i:n,y)}. - Typing the variables has been introduced: \texttt{r:x} means that \texttt{x} is a real variable (the default) - and \texttt{i:n} means that \texttt{n} is an integer variable. See the demo file \texttt{integer\_tst.tex}. - - \item Added complete support with \textsf{eForms}. Integrated - this support into the quiz environments. See the \texttt{\href{eformman.pdf}{eForms Manual}} - documentation file for complete details. - \item Documented the use of form check boxes with the \texttt{shortquiz} - environment and introduced the commands - \begin{Verbatim}[xleftmargin=\amtIndent] - \sqTurnOffAlerts,\sqTurnOnAlerts,\sqNoCorrections,\sqNoCorrections - \end{Verbatim} - to control response feedback. - \item Added language \texttt{finnish} Options. Translation due - to Paivi Porras. - \item Eliminated the need for the \cs{ifforAcroV} switch in the - \texttt{*.ins} files. I've written new code that detects whether Acro4 or - Acro5 is being used; in the latter case, a \texttt{try/catch} strategy is - used to catch exceptions. - \item Added a \texttt{textures} option, due to Ross Moore. - \item Wrote same JavaScripts and placed them in the \texttt{dljslib} to - process questions in which an equation is the expected answer. See the - sample file \texttt{jqzequat.tex}. - \item Wrote the \texttt{dljslib} Package, this is a library of JavaScript - functions that extends the capabilities of \textsf{exerquiz}. - \item Extended math fill-in questions to include arbitrary multivariate - questions. See the sample file \texttt{multivar.tex}. - \item Added several macros: \cs{defaultquiztype} and - \cs{quiztype}. The first command takes no arguments, the - second on takes one: either l or f; e.g. \verb+quiztype{f}+ - (\verb+quiztype{l}+) causes the quiz environment to ignore the - optional `quiztype' parameter (\texttt* or no \texttt*) and to - use a form-type (resp.\ link-type). Placing - \cs{defaultquiztype} reverts the quiz environment back to its - default behavior (obeying the first optional parameter). - \item Added the convenience commands for the \texttt{quiz} environment: \cs{useBeginQuizButton}, - \cs{use\-EndQuizButton}, \cs{useBeginQuizLink} and \cs{useEndQuizLink}. - See \mlNameref{sss:FormButton} for details.\footnote{This link requires Adobe Reader 7.0 or later.} - \item Added the \texttt{noHiddensolutions} for \textsf{exerquiz}, and - added an `\texttt{H}' option for exercises to hide solutions, see - \nameref{sss:hide} and \nameref{sss:noHideopt}, for details. - \item Added a method of assigning points to a quiz question. Useful - for submitting questions to a CGI for recording in a database. - \item Added a \texttt{noPeeking()} JS function and supporting macros. - When the \cs{NoPeeking} command is executed, the student cannot - see the solutions to the quizzes (not shortquizzes) by browsing - through the file. See \Nameref{sss:nopeek}. - \item Added new JS functions \texttt{lowThreshold()} and - \texttt{highThreshold()}. I modified the end of quiz macros to - incorporate the calling of one of these two (or calling a - document author defined routine). See \Nameref{threshold}. - \item Added a `\texttt{debug}' option, which gets passed on - to \texttt{insdljs} package. This can be used to write some - debugging commands within your JS. (\Nameref{sss:debug}) - \item For math fill-ins, the author does not use the - JavaScript syntax; the author can use simplified notation, e.g, - \verb+2*x*e^(x^2)+ instead of \texttt{2*x*exp(pow(x,2))}. - Author's answer now passes through the ParseInput JS routine. - \item Now the document author can define a custom - JS function to process an answer. Also, when writing - Math fill-in questions, you can also define your - own variable (no longer restricted to just `$x$'). - \item Added in a \texttt{solutions} environment to - \texttt{quiz} environment. Added additional optional parameter - into the \cs{RespBox}, \cs{RespBoxTxt} macros to indicate the - presence of a solution. The solution is viewed by - shift-clicking on the ``Ans'' Button (\cs{CorrAnsButton}). A - button or checkbox that has a solution has a boundary color of - \cs{solutionColor}. - \item \texttt{Exerquiz} now uses the package \texttt{insDLSJ} to - insert document level JavaScripts; this gives the document author - a chance to write custom JavaScripts. I've also modified many macros - that enable the document author to ``hook'' into. - \item New command \cs{RespBoxEssay} that can be used to pose - Essay-type questions. The question is not evaluated by JavaScript - within the document; rather, this question should be submitted - to a CGI for later review by the instructor. - \item \cs{RespBoxMath} has been defined to be the same as - \cs{RespBox} to give a little more consistency in naming. - \item The use of \cs{RespBoxNT} has been deprecated. Added in - feature to customize the comparison of two answers. - \item Added a text fill-in question type that can be used in the - \texttt{short\-quiz} and \texttt{quiz} environments. - (\Nameref{sss:oTxtQ}) - \item A \texttt{preview} option has been added. When this - option is used, the bounding rectangles of all form fields - are framed so their positions can be seen in a dvi previewer. - See \mlNameref{sss:preview}.\footnote{This link requires Adobe Reader 7.0 or later.} - \end{questions} - - \subsection{insdljs} - - The \texttt{insdljs} Package is a general purpose \LaTeX{} package - for inserting Acrobat JavaScript into the document level section - of a PDF document. The package features the \texttt{insDLJS} - environment. This environment typically goes in the preamble of a - \LaTeX{} source file, or in the style files of a \LaTeX{} package. - See the documentation contained within the \texttt{insdljs.dtx} - file for additional details. There is a sample file, - \texttt{insdljs\_ex.tex} that can be used as a startup test file. - -\begin{questions} - \item (Version 2.0f) Added a command \cs{previewMiKTeX} which redefines \cs{jsR} and - \cs{jsT} that enables, I hope, the \textsf{yap} previewer to preview - an \textsf{AeB} document. - \item Added the \texttt{defineJS} environment. Use this environment to - write JavaScript for buttons and other form fields. - \item Added the \texttt{execJS} environment. Use this environment to write - ``discardable'' JavaScript that will execute when the newly created document is opened - in the Acrobat Viewer. (The Acrobat Viewer, not the Reader, is required.) - See the demo file \texttt{execjstst.tex}. -\end{questions} - -\subsection{dljslib} - -The \texttt{dljslib} Package acts as a library of JavaScript -functions. Due to the increased programmability of -\texttt{exerquiz} and its new-found flexibility, it is possible to -write a number of different routines to handle various kinds of -math fill-in questions. These JavaScript functions can be stored -in the library and retrieved when needed. This package requires -the \texttt{insdljs} package. - \begin{questions} - - \item There are some major user-contributed JavaScript routines. - The following functions, which are \texttt{ProcResp}-types, were - written for an online grading system being developed by Drs.\ - Bruce Wagner and David Arnold, and Mr. Jacob Miles-Prystowsky. - The descriptions given below were provided by the authors. - I want to extend my deep thanks for their contribution! See the - documentation of \textsf{dljslib.dtx} for extended details. - \begin{questions} - \item The JS function \texttt{ProcRespSetFormula} grades an - unordered list of formulas, such as \texttt{x}, \verb!x^2!, \verb!x^3!. - \item \texttt{ProcRespFactors} is for grading polynomial factoring - questions. If a polynomial factors as - \verb!-5x^2(x-4)(x+2)!, the answer is only unique - up to the order of factors and a change of sign on an - even number of factors. For example, it could also be - written as \verb!-5x^2(x+2)(x-4)! or - \verb!5x^2(-x+4)(x+2)! or \verb!-5(x-4)(x+2)x^2!, etc. - This script should grade all of these correctly. - \item The JS function \texttt{ProcPoint} is almost an exact copy of - the JS function \texttt{ProcVec}, but uses parentheses instead of angle brackets as - delimiters. This is for questions that have a point $(x,y)$ as the - answer. - \item \texttt{ProcRespIntervals} is for grading questions that have an - interval or union of intervals as the answer. - \end{questions} - \item[] The sample file for this contribution is \texttt{dljslib\_apw.tex}. - - \item Added a feature whereby you can create a file - \texttt{libcusopt.opt} to declare your own options for this - package. These declarations should be a combination of existing options. - For example, -\begin{Verbatim}[xleftmargin=\amtIndent] -\DeclareOption{procrespgrp}{\includeOptions{% - vectors,setSupport,equations,intervals,% - unordered,point,factors,ImplMulti} -} -\end{Verbatim} - creates a new option for \textsf{dljslib} called \texttt{procrespgrp} which bundles - together all frequently used JS functions frequently used. The file - \texttt{libcusopt.opt} can be placed in the {\LaTeX} search path, but it's perhaps - best to put it in your source file, so that the options are local to that folder. - The command \cs{includeOptions} is defined in \texttt{dljslit.dtx}. - - \item[] A sample \texttt{libcusopt.opt} is distributed with the - {\AEB}, this sample file consists of the example given above, - and is used by the sample file \texttt{dljslib\_apw.tex}. - -\item[] \rule[2pt]{1in}{.4pt} Older New Stuff \rule[2pt]{1in}{.4pt} - - \item Added an option \texttt{limitArith} to the - \textsf{dljslib}, which limits the use of arithmetic operations - and built-in functions. The demo file is - \texttt{limarth.tex}, found in the \texttt{dljslib\_examples} - folder. \item Added \texttt{setSupport} option to - \textsf{dljslib}. This gives support to math fill-in questions - for processing (1) a set of numerical answers or a comma - delimited list of answers; (2) a symbolic set of answers. The - demo file is \texttt{set\_test.tex}. - - \item Added \texttt{combinatorics}, \texttt{nodec} and - \texttt{noBinFac} to the JavaScript library. These additions - are due to Ross Moore and Frances Griffin and were developed - for their - \href{http://rutherglen.ics.mq.edu.au/~macqtex/}{MacQ{\TeX}} - online testing system. Some of the changes listed in the - \textsf{exerquiz} section above were to accommodate these new - functions (for example, having integer variables). Many, many - thanks for generously sharing their JavaScript with the - \TeX/PDF community. The test file for these features is - \texttt{integer\_tst.tex}. -\end{questions} -% See the documentation contained within the \texttt{dljslib.dtx} document, and -% see \Nameref{sss:dljslib}. - -\section{What's Old} - -\paragraph*{History.} The \pkg{web} and \textsf{exerquiz} packages were written in -preparation for a two-day workshop on \LaTeX/PDF that I gave at -the \textcolor{red}{College of the Redwoods}, April~30-May~1, -1999, at the invitation of David Arnold. The workshop forced me -to take many of the basic macros that I had developed in plain -\TeX\ and convert them to \LaTeX. - -Significant additions to the \textsf{exerquiz} were made immediately -following the $\text{20}^{\text{th}}$ Annual Conference of the \TeX\ -User's Group (\textsf{tug}), in August, 1999, Vancouver, British -Columbia, which I attended. - -The \textsf{insdljs} package was written for the $\text{22}^{\text{nd}}$ -Annual Conference of the \TeX\ User's Group (\textsf{tug}), in -August 2001, at the University of Delaware, Newark, Delaware. - -The \texttt{execJS} environment was created as a result of some -work I did for the Seybold SF Convention, 2002 (see article at -\href{http://www.planetpdf.com/mainpage.asp?webpageid=2130}{planetPDF}); -the techniques were first presented to the PDF public at this -convention. My complete presentation from that conference is -again available from -\href{http://www.planetpdf.com/mainpage.asp?webpageid=2310}{planetPDF}. - -\paragraph*{Acknowledgements.} Noel Vaillant, \url{www.probability.net}, deserves my thanks for -his enthusiasm for the \pkg{web} style file and his initial -work on it inspired me to make a serious effort at writing a -\LaTeX\ package. - -Thanks also goes out to Jean-Michel Sarlat for writing a French -version of the \pkg{web} and \textsf{exerquiz} packages. See -his \href{http://melusine.eu.org/syracuse/}{Syracuse} Web site. He -urged me to include a language option. Thanks also goes to -Michael Wiedmann who suggested a language option many months -earlier, but I'm afraid it landed on deaf ears at the time. -These two provided the translations for the \texttt{french} and -\texttt{german} options. (January 1, 2000) - -My thanks to Heiko Oberdiek, who took a close look at -\textsf{insdljs}. He made several suggestions, and urged me to -make some significant improvements to this package. - -\medbreak\noindent -Now, I really must get back to retirement.\enspace\dps - -\addtocontents{toc}{\protect\vspace{2ex}} -\includeexersolutions -\includequizsolutions - - -\newpage -\markright{References} - -\begin{thebibliography}{[1]}\label{references} -\addcontentsline{toc}{section}{\protect\numberline{}References} - -\bibitem{tech:AcroJS}\hypertarget{references}{}% - Acrobat JavaScript Scripting Refernce, Technical Note \#5431, Version~6.0., - Adobe Systems, Inc., 200\\ \url{http://partners.adobe.com/asn/acrobat/docs.jsp} - -\bibitem{book:Lamport} - Leslie Lamport, \textit{\LaTeX: A Document Preparation} - System (2nd ed.), Addison-Wesley Publishing Company, - 1994, ISBN 0-201-52983-1. - -\bibitem{book:Goossens1} - Michel Goossens, Frank Mittelbach and Alexander - Samarin, \textit{The \LaTeX{} Companion}, Addison-Wesley - Publishing Company, 1994, ISBN 0-201-54199-8. - -\bibitem{book:Goossens2} - Michel Goossens, Sebastian Rahtz, and Frank - Mittelbach, \textit{The \LaTeX{} Graphics Companion}, - Addison-Wesley Publishing Company, 1997, ISBN - 0-201-85469-4. - -\bibitem{book:Goossens3} Michel Goossens, and Rahtz, Sebastian, - with Gurari, Eitan, Moore, Ross, and Sutor, Robert, - \textit{The \LaTeX\ Web Companion}, - Addison Wesley Longman, Reading, Massachusetts, USA, 1999. - ISBN: 0-201-43311-7. - -\bibitem{book:Kopka} - Helmut Kopka and Patrick W. Daly, \textit{A Guide to - \LaTeX2e} (2nd ed.), Addison-Wesley Publishing Company, - 1995, ISBN 0-201-43777-X. - -\bibitem{book:Knuth} - Donald E. Knuth, \textit{The \TeX book}, Addison-Wesley - Publishing Company, 1987, ISBN 0-201-13448-9. - -\bibitem{book:Merz} - Thomas Merz, \textit{Web Publishing with Acrobat/PDF}, - Springer-Verlag Berlin Heidelberg New York, 1998, - ISBN 3-540-63762-1. - -\bibitem{article:Story:Pdfmarks} - D.P. Story, \textit{Pdfmarks: Links and Forms}, AcroTeX Web - Site, 1998,\\\url{www.math.uakron.edu/~dpstory/acrotex.html} - -\bibitem{article:Story:LaTeX} - D.P. Story, \textit{Using \LaTeX\ to Create Quality PDF Documents for the - WWW}, Acro\!\TeX\ Web Site, 1998,\\ - \url{www.math.uakron.edu/~dpstory/acrotex.html} - - -\end{thebibliography} - - -% \printindex -\end{document} - -I copied the file amsfonts.map from texmf/dvips/ams -to texmf/pdftex/base. I then edited the file -pdftex.cfg and included the line -map +amsfonts.map. -map standard.map % to get dings - -output_format 1 -compress_level 9 -decimal_digits 2 -page_width 210mm -page_height 297mm -horigin 1in -vorigin 1in -map standard.map -map +cm.map -map +amsfonts.map -% map +logo.map -% map +lucida.map -% map +misc.map -% map +cs.map -% map +cmttf.map -% map +test.map -% map +ttftest.map -% map +mono.map - - -\subsubsection{An Example}\label{sss:quizexample} - - -%\renewcommand\bqlabel{Begin Quiz} -%\renewcommand\eqlabel{End Quiz} - -The following example is used at the Acro\!\TeX\ Web Site in a -demonstration program on how to use \emph{Adobe's FDF Toolkit} to -process form data from a pdf file. (Form data exported from a pdf -file is in the \emph{Forms Data Format}, or FDF.) The url for -this demonstration program is \url{\bUrl/demo/quiz1_q.pdf}. - - -\symbolchoice{diamond} - -\begin{quiz*}{QuizTotal} Answer each of the following. Passing is 100\%. - -\begin{questions} - -\item Calculate the limit, if it exists, otherwise, state that it does not -exist (d.n.e.). -\[ - \lim_{x\to3}\frac{\sqrt{3x}(x^2-4)^2}{x^2-2x-1}. -\] -\begin{answers}4 -\Ans0 $75$ &\Ans1 $\dfrac{75}2$ &\Ans0 $25$ &\Ans0 d.n.e. -\end{answers} - -\item Calculate the limit, if it exists, otherwise, state that it does not -exist (d.n.e.). -\[ - \lim_{t\to2}\frac{t^2-4}{t-2}. -\] -\begin{answers}4 -\Ans0 $2$ &\Ans0 $+\infty$ &\Ans1 4 &\Ans0 d.n.e. -\end{answers} - -\item Calculate the limit, -$\displaystyle\lim_{t\to2^-}\frac{t^2}{t-2}$, if it exists, otherwise, -state that it does not exist (d.n.e.). -\begin{answers}4 -\Ans1 $-\infty$ &\Ans0 $+\infty$ &\Ans0 $4$ &\Ans0 d.n.e. -\end{answers} - -\item Using one-sided limit techniques, determine whether the limit -$\lim_{x\to2}f(x)$ exists and state its value, where -\[ - f(x) = \begin{cases} - |x^2-5| & \text{for }x\le2 \\ - \dfrac{x-2}{x-2} & \text{for }x>2 - \end{cases} -\] -\begin{answers}4 -\Ans0 $-1$& \Ans0 0 &\Ans1 1 &\Ans0 d.n.e. -\end{answers} - -\item Calculate the limit, -$\displaystyle\lim_{x\to-2}\frac{\sqrt{x+8}-\sqrt6}{x+2}$, -if it exists, otherwise, state that it does not -exist (d.n.e.). -\begin{answers}4 -\Ans0 $\dfrac1{\sqrt6}$ &\Ans1 $\dfrac{\sqrt6}{12}$ & - \Ans0 $\dfrac12$ &\Ans0 d.n.e. -\end{answers} - -\item There is some function $f$ and some number $a$ in the domain of -$f$ such that -\[ - f'(a)=\lim_{x\to-2}\frac{\sqrt{x+8}-\sqrt6}{x+2} -\] -Name the function $f$ and the number $a$. -\begin{answers}2 -\Ans1 \strut$f(x)=\sqrt{x+8}$; $a=-2$ &\Ans0 $f(x)=\sqrt{x}$; $a=-2$\\[3pt] -\Ans0 \strut$f(x)=\sqrt{x+8}$; $a=0$ &\Ans0 $f(x)=\sqrt{x+8}$; $a=2$ -\end{answers} -\end{questions} -\end{quiz*}\quad\raisebox{-3pt} -{\TextField[width=3in,name=QuizTotal,bordercolor=0 0 1,default=\eqScore]{}} - -\medskip\noindent -The partial code for this quiz looks like this. -\begin{Verbatim}[xleftmargin=\amtIndent] -\symbolchoice{diamond} % change to diamond `check' -\begin{quiz*}{QuizTotal} Answer each of the following.... -\begin{questions} -......... -\end{questions} -\end{quiz*}\quad\raisebox{-3pt}{\TextField[name=QuizTotal, - default=\eqScore,bordercolor=0 0 1,width=3in]{}} -\end{Verbatim} - - -\begin{quiz*}{qzTeXc} Answer each of the following. Passing -is 100\%. -\begin{questions} -\item What \TeX\ System does Thomas Esser maintain? -\begin{answers}4 -\Ans0 MiK\TeX &\Ans0 cs\TeX &\Ans1 te\TeX &\Ans0 fp\TeX -\end{answers} -\item What \TeX\ System does Fabrice Popineau maintain? -\begin{answers}4 -\Ans0 MiK\TeX &\Ans0 cs\TeX &\Ans0 te\TeX &\Ans1 fp\TeX -\end{answers} -\item What \TeX\ System does Christian Schenk maintain? -\begin{answers}4 -\Ans1 MiK\TeX &\Ans0 cs\TeX &\Ans0 te\TeX &\Ans0 fp\TeX -\end{answers} -\end{questions} -\end{quiz*}\quad -\raisebox{-2pt}{\renewcommand\LayoutTextField[2]{% label, field -\medskip\noindent#2}% -\TextField[name=qzTeXc,width=1.25in,align={0 /Ff 1}, - default=\eqScore]{}\raisebox{3.5pt}{% - \CorrButton[\BC{0 0 1}% blue border color - \CA{TeX}% Button text - \RC{Users}% rollover text - \AC{Group}% pushed text - \DA{/TiRo 10 Tf 0 0 1 rg}% times roman, 10 pt, blue text -% \W{1}\S{I}% - \BS{/W 1 /S /I}% % border width 1, inset button - ]{qzTeXc}}} - - -%\noindent\begin{minipage}{\linewidth} -\begin{quiz}*{qzTeX} Answer each of the following. Passing -is 100\%. -\begin{questions} -\item Who created \TeX? -\begin{answers}4 -\Ans1 Knuth &\Ans0 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\item Who originally wrote \LaTeX? -\begin{answers}4 -\Ans0 Knuth &\Ans1 Lamport &\Ans0 Carlisle &\Ans0 Rahtz -\end{answers} -\end{questions} -\end{quiz} - - -\subsection{Greater Customization with - \texorpdfstring{\protect\cs{TextField}} - {\textbackslash TextField}}\label{ss:modoutputfield} - -The \cs{ScoreField} macro is defined as -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand{\ScoreField}[2][width=1.5in]{% - \TextField[name=#2,default=\eqScore,align={0 /Ff 1},#1]{}} -\end{Verbatim} - -\noindent You can see the command takes one required argument and one -optional argument (the required one is label \texttt{\#2} and the -optional one is \texttt{\#1}). The required argument becomes the -\texttt{name} of the field, and the optional parameter is just -added into the parameter list of \cs{TextField}. You can also see -the \texttt{value} of the field is set to \cs{eqScore}, which -expands to `Score:' in English. - -More sophisticated score fields can be obtained by manipulating -\cs{TextField} directly. - -We can modify the appearance of the text field in a couple of -ways: (1) by changing some of the options in \cs{TextField}; (2) -changing the macro definition of \cs{LayoutTextField}. - -\subsubsection{Admissible key-value pairs of -\texorpdfstring{\protect\cs{TextField}} - {\textbackslash TextField}}\label{sss:modtextfield} - -In this section we will outline methods of modifying the -appearance of \cs{TextField} text box, which is a macro defined in -the \pkg{hyperref} package. - -The following table lists several useful options for -\cs{TextField}. - -%Numerous examples on how to use these options -%follow the table. - - -\begin{longtable}{>{\ttfamily}lll>{\PBS\raggedright}p{1.5in}} -\multicolumn{4}{l}{\large\color{red}$\blacktriangleright$ -\color{blue} \cs{TextField} Options: Dimension Related} \\ [3pt] -height & dimen & & height of box \\ -width & dimen & & width of field box \\ [12pt] -% -\multicolumn{4}{l}{\large\color{red}$\blacktriangleright$ -\color{blue} \cs{TextField} Options: Text Related} \\ [3pt] align -&name &0 & $0=\text{left-aligned}$,\newline - $1=\text{centered}$\newline - $2=\text{right-aligned}$ \\ -charsize & dimen & 10pt & Font size of text \\ [12pt] -% -\multicolumn{4}{l}{\large\color{red}$\blacktriangleright$ -\color{blue} \cs{TextField} Options: Color Related} \\ [3pt] -backgroundcolor & RGB &1 1 1& Color of background color.\\ -bordercolor & RGB & 1 0 0 & Color of the border.\\ [12pt] -color & RGB & 0 0 0 & Color of text within field\\ -borderstyle & name &S& S (solid), B (beveled), - I (insert), U (underlined) \\ [12pt] -% -\multicolumn{4}{l}{\large\color{red}$\blacktriangleright$ -\color{blue} \cs{TextField} Options: Style Related} \\ [3pt] -borderwidth & number & 1 & Width of the border of the - box (in points)\\[12pt] -% -\multicolumn{4}{l}{\large\color{red}$\blacktriangleright$ -\color{blue} \cs{TextField} Options: Field Related} \\ [3pt] -default & & & default value of the field \\ -name & name & & name of the field\\ -readonly & Boolean& false & set read-only switch -\end{longtable} -%\end{flushleft} - -A complete list of options comes with the \pkg{hyperref} -documentation; or see Michel Goossens \textit{et -al}~\cite{book:Goossens3}, entitled \textit{The \LaTeX\ Web -Companion} - -We next present several examples that illustrate the use of these -options. - -\subsubsection{Some Examples of -\texorpdfstring{\protect\cs{Textfield}} - {\textbackslash Textfield}}\label{sss:exampltextfield} - -\def\LayoutTextField#1#2{\redpoint\raisebox{-3pt}{#2}} - -\TextField[width=2in,name=QuizTotal,bordercolor=0 0 1, - default=\eqScore]{} - -\begin{Verbatim}[xleftmargin=\amtIndent] -\TextField[width=2in,name=QuizTotal, - bordercolor=0 0 1,default=\eqScore]{} -\end{Verbatim} - -\noindent The \texttt{readonly} is an important attribute to have---the -students cannot modify their score. Unfortunately, -\texttt{readonly} \emph{does not work} with \pkg{hyperref}. To -overcome this ``bug'' in \pkg{hyperref}, you have to be a -little sneaky. - -\TextField[width=2in,name=Example,bordercolor=0 0 1, - backgroundcolor=0.98 0.92 0.73,color=1 0 0,align={0 /Ff 1}, - default=Text Field with Various Options]{} - -\begin{Verbatim}[xleftmargin=\amtIndent] -\TextField[width=2in,name=Example,bordercolor=0 0 1, - backgroundcolor=0.98 0.92 0.73,color=1 0 0, - align={0 /Ff 1}, % realonly is /Ff 1 in pdf code - default=Text Field with Various Options]{} -\end{Verbatim} - -\noindent The read only key-value (\texttt{/Ff 1}) can ``ride'' into the -code on the ``back'' of the \texttt{align} parameter. -(\texttt{align=0} means left-aligned in the text field.) - -\TextField[width=2in,name=Example,bordercolor=1 1 1,color=0 0 1, - backgroundcolor=.753 .753 .753,borderstyle=B,align={1 /Ff 1}, - default=Your Score goes here]{} - -\begin{Verbatim}[xleftmargin=\amtIndent] -\TextField[width=1.25in,name=Example,bordercolor=1 1 1, - backgroundcolor=.753 .753 .753,color=0 0 1, - borderstyle=B,align={1 /Ff 1}, % /Ff 1 = readonly - default=Your Score goes here]{} -\end{Verbatim} - -\subsubsection{Modifying -\texorpdfstring{\protect\cs{LayoutTextField}} {\textbackslash -LayoutTextField}}\label{sss:modlayout} - -\renewcommand\LayoutTextField[2]{#1 #2} - -The macro \cs{LayoutTextField} allows you to design how your text -box is formated by \TeX. The default definition for -\pkg{hyperref} is -\begin{Verbatim}[xleftmargin=\amtIndent] - \newcommand\LayoutTextField[2]{#1 #2} -\end{Verbatim} -\noindent The first argument is the \textsf{label}, the second is the -textfield. For example, above definition yields:\\ -\TextField[width=2.4in,name=Name]{\bfseries Enter your name: } -\begin{Verbatim}[xleftmargin=\amtIndent] - \TextField[width=2.5in,name=Name]{Enter your name: } -\end{Verbatim} - -\medskip -The \textsf{exerquiz} package redefines this to -\begin{Verbatim}[xleftmargin=\amtIndent] -\renewcommand\LayoutTextField[2]{% label, field - \medskip\noindent#2} -\end{Verbatim} - -Finally, the field examples given earlier had the following -definition for \cs{LayoutTextField}: -\begin{Verbatim}[xleftmargin=\amtIndent] -\newcommand\redpoint{\par\medskip\noindent - \makebox[\parindent][l]{\large\textcolor{red} - {$\blacktriangleright$}}} -\renewcommand\LayoutTextField[2]{\redpoint - \raisebox{-3pt}{#2}} -\end{Verbatim} - -\noindent I lowered the text field to line up better with the -\texttt{amssymb} symbol \cs{blacktriangleright} -($\blacktriangleright$), which is painted red. In this way we -obtain - -\def\LayoutTextField#1#2{\redpoint\raisebox{-3pt}{#2}} -\TextField[width=2in,name=QuizTotal,bordercolor=0 0 1, - default=\eqScore]{} -\begin{comment} -\begin{Verbatim}[xleftmargin=\amtIndent] -\TextField[width=2in,name=QuizTotal,bordercolor=0 0 1, - default=\eqScore]{} -\end{Verbatim} -\end{comment} - -\subsubsection{Custom Comparisons}\label{cusComp} - -This section is devoted to customizing the method of comparison -for the math type objective question using \cs{RespBoxMath} command. - -When the user enters an answer into the response box, a -document level JavaScript function, \texttt{ProcResp}, is called. -As discussed earlier, the value of the expression entered by the -user is compared the corresponding value of the answer given by -the document author. The key word in the last sentence is ``compared''. There -is a compare function that compares the author's answer with the user's answer. - -In general, the \texttt{ProcResp} passes five parameters to a compare function. -The compare function can be be customized by the document author; there is, however, -a standard, or default, compare function. It is defined as follows: - -\begin{Verbatim}[xleftmargin=\amtIndent] -function diffCompare(a,b,c,F,G) { - var x; - with(Math) { - x = c; - F = eval(F); - G = eval(G); - return abs ( F - G ); - } -} -\end{Verbatim} -\noindent The meaning of these five parameters of this comparison function are - -\begin{description} - \item[\ttfamily a:] The left-hand endpoint of the interval. - \item[\ttfamily b:] The right-hand endpoint of the interval. - \item[\ttfamily c:] The point at which both the user and author answers are to - be evaluated. - \item[\ttfamily F:] The author's answer, a function in $x$. - \item[\ttfamily G:] The user's answer, a function in $x$. -\end{description} - -The function \texttt{diffCompare} evaluates each of the two -functions \texttt F and \texttt G at \texttt{x = c}, and returns -the absolute difference in the two. For this simple comparison, the parameters -\texttt a and \texttt b are not used. - -The \texttt{diffCompare} will be sufficient for most, but not -all mathematical questions. For example, consider the following question: - -\medskip -\begin{oQuestion}{indefInt1} -$\displaystyle\int \sin(x)\,dx = $\space -\RespBoxMath{-cos(x)}{4}{.0001}01\kern1bp\CorrAnsButton{-cos(x)} -\end{oQuestion} - -\medskip\noindent -There are infinitely many answers, all of them of the form $-\cos(x)+C$. Note that -the only input that is marked as correct is $-\cos(x)$, the JavaScript does not judge -$-\cos(x)+1$, to be correct, for example. The problem is, of course, the method of -comparison, \texttt{diffCompare}, is not appropriate to this particular problem. - -The above question needs a specialized method of comparison. Consider -the compare function: - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{insDLJS}[indefCompare]{compare}{Comparisons} -function indefCompare(a,b,c,F,G) { - var C, eqx; - with(Math) { - eqx = a; - C = eval(F)-eval(G); - eqx = c; - F = eval(F); - G = eval(G); - return abs( F - G - C ); - } -} -\end{insDLJS} -\end{Verbatim} -\noindent This environment was placed in the preamble of this document, and uses the -\texttt{insdljs} package, which comes with the \texttt{exerquiz} distribution. -This will add the function \texttt{indefCompare} function to the document level -JavaScript section of the PDF file when it is created. - -\redpoint It is \emph{important} to note that when you are writing your -own compare functions, the independent variable must be named -`\texttt{eqx}'. The functions \texttt F and \texttt G have been -searched and their original independent variable has been replaced with -`\texttt{eqx}'. To get a correct evaluation, therefore, any compare functions -must use the `\texttt{eqx}' to evaluate the functions. - -Let's try that same question, but with this compare function instead of the -default compare function - -\medskip -\begin{oQuestion}{indefInt2} -$\displaystyle\int \sin(x)\,dx = $\space -\RespBoxMath{-cos(x)}{4}{.0001}01[indefCompare]\kern1bp\CorrAnsButton{-cos(x)} -\end{oQuestion} - -\medskip\noindent -Now, if you enter $-\cos(x) + 10$, for example, that answer will be judged as -correct by \texttt{ProcResp}. - -The code for the above response box is - -\begin{Verbatim}[xleftmargin=\amtIndent] -\begin{oQuestion}{indefInt2} -$\displaystyle\int \sin(x)\,dx = $\space -\RespBoxMath{-cos(x)}{4}{.0001}01[indefCompare]\kern1bp -\CorrAnsButton{-cos(x)} -\end{oQuestion} -\end{Verbatim} - -\noindent The optional ninth parameter is present in the -\cs{\hyperlink{paraRespBox}{RespBoxMath}}. Use this parameter to -pass the name of the compare function that is to process the -question. Here, we specify \texttt{indefCompare}, which was -defined in the preamble of this document using the -\texttt{insDLJS} environment. |