From 26f4947f509c2440ce28e625133a15f6a2446920 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 13 Sep 2018 10:28:30 +0900 Subject: update acrotex --- texmf-dist/tex/latex/acrotex/aebdocfmt.def | 87 + texmf-dist/tex/latex/acrotex/aebdonotindex.def | 24 + texmf-dist/tex/latex/acrotex/aebjs.def | 3048 ++++---- texmf-dist/tex/latex/acrotex/aebrandom.def | 340 +- texmf-dist/tex/latex/acrotex/aebsumrytbls.def | 512 +- texmf-dist/tex/latex/acrotex/altadbfncs.def | 82 +- texmf-dist/tex/latex/acrotex/dljscc.def | 152 +- texmf-dist/tex/latex/acrotex/dljslib.sty | 3482 ++++----- texmf-dist/tex/latex/acrotex/edvipdfm.def | 198 +- texmf-dist/tex/latex/acrotex/eforms.sty | 2752 +++---- texmf-dist/tex/latex/acrotex/epdfmark.def | 254 +- texmf-dist/tex/latex/acrotex/epdftex.def | 212 +- texmf-dist/tex/latex/acrotex/eqbr.def | 168 +- texmf-dist/tex/latex/acrotex/eqcat.def | 156 +- texmf-dist/tex/latex/acrotex/eqcolor.def | 172 +- texmf-dist/tex/latex/acrotex/eqcz.def | 228 +- texmf-dist/tex/latex/acrotex/eqda.def | 166 +- texmf-dist/tex/latex/acrotex/eqde.def | 228 +- texmf-dist/tex/latex/acrotex/eqes.def | 156 +- texmf-dist/tex/latex/acrotex/eqexam.def | 3430 ++++----- texmf-dist/tex/latex/acrotex/eqfin.def | 158 +- texmf-dist/tex/latex/acrotex/eqfr.def | 152 +- texmf-dist/tex/latex/acrotex/eqit.def | 128 +- texmf-dist/tex/latex/acrotex/eqnl.def | 160 +- texmf-dist/tex/latex/acrotex/eqno.def | 162 +- texmf-dist/tex/latex/acrotex/eqpo.def | 180 +- texmf-dist/tex/latex/acrotex/eqru.def | 358 +- texmf-dist/tex/latex/acrotex/eqtr.def | 212 +- texmf-dist/tex/latex/acrotex/exerquiz.sty | 9334 ++++++++++++------------ texmf-dist/tex/latex/acrotex/insdljs.sty | 1815 +++-- texmf-dist/tex/latex/acrotex/pdfdochex.def | 556 +- texmf-dist/tex/latex/acrotex/setcorder.def | 132 +- texmf-dist/tex/latex/acrotex/taborder.sty | 184 +- texmf-dist/tex/latex/acrotex/template.def | 514 +- texmf-dist/tex/latex/acrotex/uieforms.def | 778 +- texmf-dist/tex/latex/acrotex/usemcfi.def | 156 +- texmf-dist/tex/latex/acrotex/web.cfg | 10 + texmf-dist/tex/latex/acrotex/web.sty | 4418 +++++------ texmf-dist/tex/latex/acrotex/webpro.def | 1752 ++--- texmf-dist/tex/latex/acrotex/websec.def | 384 +- 40 files changed, 18757 insertions(+), 18633 deletions(-) create mode 100644 texmf-dist/tex/latex/acrotex/aebdocfmt.def create mode 100644 texmf-dist/tex/latex/acrotex/aebdonotindex.def create mode 100644 texmf-dist/tex/latex/acrotex/web.cfg (limited to 'texmf-dist/tex/latex') diff --git a/texmf-dist/tex/latex/acrotex/aebdocfmt.def b/texmf-dist/tex/latex/acrotex/aebdocfmt.def new file mode 100644 index 00000000..2b17e769 --- /dev/null +++ b/texmf-dist/tex/latex/acrotex/aebdocfmt.def @@ -0,0 +1,87 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Web package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% History: Noel Vaillant began developing a better web.sty +%% based on my earlier published web.sty. Many thanks +%% to him for starting me off. +%%--------------------------------------------------------- +\newcommand{\setupFullwidth}{% + \setlength{\textwidth}{\paperwidth}% + \advance\textwidth-2in + \setlength{\linewidth}{\textwidth}% + \setlength{\columnseprule}{0pt}% + \setlength{\oddsidemargin}{0in}% + \setlength{\evensidemargin}{0in}% +} +\makeatletter +\def\clindx{\ifcodeline@index\expandafter\@firstoftwo\else + \expandafter\@secondoftwo\fi} +\GlossaryPrologue{\section{Change History}} +\IndexPrologue{\section{Index} \parbox{\linewidth}{Numbers written in italic + refer to the page where the corresponding entry is described; + numbers underlined refer to the +\clindx{code line of the}{} + definition; numbers in roman refer to the +\clindx{code lines}{pages} + where the entry is used.}\medskip} +\value{IndexColumns}=2 +\value{GlossaryColumns}=2 +\def\changes@#1#2#3{% + \protected@edef\@tempa{\noexpand\glossary{#1 (#2)\levelchar + \ifx\saved@macroname\@empty + \space + \actualchar + \generalname + \else + \expandafter\@gobble + \saved@macroname + \actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3}}% + \@tempa\endgroup\@esphack} +\def\SpecialMainOptIndex#1{\@bsphack\index{% + #1\actualchar + {\string\ttfamily\space#1} + (option)% + \encapchar usage}% + \index{options:\levelchar#1\actualchar{% + \string\ttfamily\space#1}\encapchar + usage}\@esphack} +\def\SpecialMainKeyIndex#1{\@bsphack\index{% + #1\actualchar + {\string\ttfamily\space#1} + (key)% + \encapchar usage}% + \index{keys:\levelchar#1\actualchar{% + \string\ttfamily\space#1}\encapchar + usage}\@esphack} +\def\SpecialMainJSIndex#1{\@bsphack\index{% + #1\actualchar + {\string\ttfamily\space#1} + (JS function)% + \encapchar usage}% + \index{JS functions:\levelchar#1\actualchar{% + \string\ttfamily\space#1}\encapchar + usage}\@esphack} +\makeatother +\def\IndexOpt#1{\SpecialMainOptIndex{#1}% + \marginpar{\raggedleft\PrintDescribeMacro{#1}}} +\def\IndexKey#1{\SpecialMainKeyIndex{#1}% + \marginpar{\raggedleft\PrintDescribeMacro{#1}}} +\def\IndexJS#1{\SpecialMainJSIndex{#1}% + \marginpar{\raggedleft\PrintDescribeMacro{#1}}} +\endinput +%% +%% End of file `aebdocfmt.def'. diff --git a/texmf-dist/tex/latex/acrotex/aebdonotindex.def b/texmf-dist/tex/latex/acrotex/aebdonotindex.def new file mode 100644 index 00000000..e8ab1f73 --- /dev/null +++ b/texmf-dist/tex/latex/acrotex/aebdonotindex.def @@ -0,0 +1,24 @@ +% \DoNotIndex{\",\-,\#,\%,\&,\',\),\(,\*,\+,\-,\.,\,,\/,\<,\>,\@} +% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let,\catcode} +% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi,\advance} +% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup,\bgroup,\egroup.\begin,\end} +% \DoNotIndex{\newenvironment,\renewenvironment,\newcommand,\renewcommand} +% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} +% \DoNotIndex{\space,\@empty,\special,\arabic,\meaning,\message,\MessageBreak,\medskip,\makebox,\parbox,\noexpand,\expandafter,\noindent,\indent} +% \DoNotIndex{\par,\@@par,\@@temp,\@@tmp,\@M,\@esphack,\@for,\@firstoffive,\@firstoftwo,\@fleqnfalse,\@fleqntrue} +% \DoNotIndex{\@gobble,\@gobbletwo,\@gobblethree,\@ifnextchar, \@ifpackagelater,\@ifpackageloaded,\@ifstar,\@ifundefined} +% \DoNotIndex{\@namedef,\@nameuse,\@ne,\@par,\@temp,\@tempa,\@tempcnta,\@tempcntb,\@tempdima,\@tempdimb,\@tfor} +% \DoNotIndex{\@tfor,\@temptokena,\@toodeep,\@whilenum,\@xarraycr,\@xtabularcr,\toks@} +% \DoNotIndex{\alph,\bfseries,\count,\count@,\count@ii,\cs,\closein,\closeout,\define@key,\protect} +% \DoNotIndex{\if,\i,\ifcase,\ifdimen,\ifnum,\ifinner,\ifnum,\ifodd,\ignorespaces,\immediate,\jobname} +% \DoNotIndex{\jsR,\jsT,\leavevmode,\linewidth,\newif,\newlength,\newcounter,\newcount,\newread,\newtoks,\newpage} +% \DoNotIndex{\setkeys,\setlength,\settowidth,\typeout,\tw@,\c@page,\z@,\z@skip,\@nil,\@makeatletter,\@makeatother} +% \DoNotIndex{\[,\],\{,\},\^,\|} +% \DoNotIndex{\\,\0,\1,\2,\3,\8} +% \DoNotIndex{\do,\dp,\ht,\wd,\hfill,\hfil,\hoffset,\hfuzz,\hss,\hsize,\hskip,\hspace,\hbox, +% \vfill,\vfuzz,\vglue,\voffset,\vskip,\vspace,\vbox,\vtop} +% \DoNotIndex{\ifcase,\or,\value,\addtolength,\settowidth,\val,\nr} +% \DoNotIndex{\unskip,\marginpar,\mbox,\quad,\qquad} +\endinput +%% +%% End of file `aebdonotindex.def'. diff --git a/texmf-dist/tex/latex/acrotex/aebjs.def b/texmf-dist/tex/latex/acrotex/aebjs.def index 59be747d..57fd0c3b 100644 --- a/texmf-dist/tex/latex/acrotex/aebjs.def +++ b/texmf-dist/tex/latex/acrotex/aebjs.def @@ -1,1524 +1,1524 @@ -%% -%% This is file `aebjs.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,aebjs') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{aebjs.def} - [2018/03/21 v8.2.2 % - Exerquiz document level JavaScript (dps)] - \ifmakeExSlLocal\protect\endgroup^^J\fi -\def\aeb@array{new Array} -\def\refac#1{\\(#1\\)}\def\regrp#1{(#1)}\def\rechrclass#1{[#1]} -\def\redm{\\.}\def\remul{\\*}\def\rediv{\\/}\def\repow{\\^} -\def\redigit{\\d}\def\reany{.}\def\rebstr{\string^}\def\reestr{\string$} -\def\preReqForm{\Array(requireForm,\@gobble} -\def\preDenyForm{\Array(denyForm,\@gobble} -\def\postDenyForm{\Array(requireFormNot,\@gobble} -\newcommand{\noPeekArgs}[1]{% - \def\NoPeekAlert{eqAppAlert(#1)}}\def\newNoPeekArgs{} -\def\NoPeekAlert{eqAppAlert(\noPeekMsg,3)} -\newcommand{\dlLibSpecRespJS}{"none","undefined","empty"} -\newif\ifSubstVars\SubstVarsfalse % dps17 -\newif\ifShowAppr\ShowApprtrue % dps17 -\def\altApprOn{\ShowApprtrue} % dps17 -\def\altApprOff{\ShowApprfalse} % dps17 -\def\corrChoiceFullyOn{\def\eqCorrChoiceFully{true}} -\def\corrChoiceFullyOff{\def\eqCorrChoiceFully{false}} -\corrChoiceFullyOn -\def\corrLocalChoiceFullyOn{\def\eqCorrLocalChoiceFully{true}} % dpsf07 -\def\corrLocalChoiceFullyOff{\def\eqCorrLocalChoiceFully{false}} % dpsf07 -\def\resetLocalChoiceFully{\let\eqCorrLocalChoiceFully\@empty} % dpsf07 -\resetLocalChoiceFully % no local implementation -\begin{insDLJS*}[exerquizLoaded]{exerquiz} -\begin{newsegment}{AeB: AcroTeX eDucation Bundle} -/* - Document Level JavaScript - AcroTeX eDucation Bundle - D. P. Story copyright 2000-\the\year -*/ -var exerquizLoaded = true; -this.disclosed = true; -app.runtimeHighlight=false; -\end{newsegment} -\begin{newsegment}{Eq: Global Data} -var ok2Continue = true; -var ProcessIt = true; -var retn; -var Score=0; -var ptScore=0; -var pcScore=0; -var quizGrade="C"; -var NQuestions=0; -var NPointTotal=0; -var e = Math.E; -var pi = Math.PI; -var replaceExclaim = \replaceexclaim; -var negPointsAllowed = \negpointsallowed; -var negPointsMarkupAllowed = \negpointsmarkupallowed; -var aQuizControl = new Object; -var RightWrong=new Array(); -var ProbValue = new Array(); -var ProbDist = new Array(); -var ProbType = new Array(); -var Responses=new Array(); -var appAlerts = new Object; -var _mathVars="x"; -var _ModalNotOn=true; -var GradeScaleDefault=new Array(\eqGradeScale); -var aDlLibSpecResp=new Array(\dlLibSpecRespJS); -var JSfBuiltIn = new Array - ( "abs","acos","asin","atan","ceil", "floor","cos","exp", - "log","max","min","pow","random","round","sin", - "sqrt","tan"); -var JSfCustomEarly = new Array ("arctan", "arcsin", "arccos") -var JSfCustomLate = new Array - ( "logc", "ln","sec","csc","cot", - "asinh", "acosh","atanh","acoth","asech","acsch", - "sinh", "cosh","tanh","coth","sech","csch","sgn", - "C","P","fact","pi"); -var JSf = new Array().concat(JSfCustomEarly, JSfBuiltIn, JSfCustomLate); -var JSfCustom = new Array().concat(JSfCustomEarly, JSfCustomLate); -var JSc = new Array("PI","E") -function ln(x) { return Math.log(x); } -function sec(x) { return 1/Math.cos(x); } -function csc(x) { return 1/Math.sin(x);} -function cot(x) { return Math.cos(x)/Math.sin(x); } -function arctan(x) { return Math.atan(x); } -function arcsin(x) { return Math.asin(x); } -function arccos(x) { return Math.acos(x); } -function logc(x) { return Math.LOG10E * Math.log(x); } -function C(x,y) {return ch(x,y);} -function P(x,y) {return perm(x,y);} -function sinh(x) { return ( Math.exp(x) - Math.exp(-x) )/2; } -function cosh(x) { return ( Math.exp(x) + Math.exp(-x) )/2; } -function tanh(x) { - return (Math.exp(x)-Math.exp(-x))/(Math.exp(x)+Math.exp(-x)); } -function coth(x) { - return ( Math.exp(x)+Math.exp(-x))/(Math.exp(x)-Math.exp(-x)); } -function sech(x) { return 2/( Math.exp(x) + Math.exp(-x) )/2; } -function csch(x) { return 2/( Math.exp(x) - Math.exp(-x) )/2; } -function asinh(x) { return Math.log (x+Math.sqrt(Math.pow(x,2)+1)); } -function acosh(x) { - return Math.log (x+Math.sqrt(Math.pow(x,2)-1)); } // x ge 1 -function atanh(x) { return .5*Math.log ((1+x)/(1-x)); } // -1 < x < 1 -function acoth(x) { return atanh(1/x); } // |x| > 1 -function asech(x) { return acosh(1/x); } // 0 < x le 1 -function asch(x) { return asinh(1/x); } // x ne 0 -function acsch(x) { return asinh(1/x); } // x ne 0 -function sgn(x) { return (x==0?0:(x<0?-1:1)) }; -var aGroup = new Array - ( ["\(","\)",\eqParens], - ["[","]",\eqBrackets], - ["{","}",\eqBraces] - ); -\end{newsegment} -\begin{newsegment}{Eq: Support for Math Fill-in} -var _mto; -function eqAppAlert(args) { - _ModalNotOn = false; - var retn=app.alert(args); - _mto= app.setTimeOut("_ModalNotOn = true", 100); - return retn; -} -function CkBalP(UserInput,lDelimiter,rDelimiter) -{ - var Lcount=0, Rcount=0; - for (var k=0; k < UserInput.length; k++) - { - if (UserInput.charAt(k) == lDelimiter) Lcount++; - else if (UserInput.charAt(k) == rDelimiter) Rcount++; - } - return (Lcount==Rcount); -} -function CkBalVert(UserInput) -{ - var Lcount=0; - for (var k=0; k < UserInput.length; k++) - if (UserInput.charAt(k)=="|") Lcount++; - return (Lcount \% 2 == 0); -} -function Ckfuncs(UserInput) -{ - var re, rei, reii; - re = /[a-zA-Z]{2,}/g; - reii=/r:|i:|,/g - var _v=_mathVars.replace(reii,""); -rei=new RegExp("[^"+_v+"]", "g"); - aF = UserInput.match(re); - if ( aF == null ) return true; - for (var i=0; i < aF.length; i++) - { -if ( rei.exec(aF[i]) == null ) continue; - for(var j=0; j < JSf.length; j++) - if ( aF[i].indexOf(JSf[j]) != -1 ) break; - if (j < JSf.length) continue; - for(var j=0; j < JSc.length; j++) - if ( aF[i].indexOf(JSc[j]) != -1 ) break; - if(j==JSc.length) - { - eqAppAlert(\eqerrBadMathFunc,3); - ok2Continue=false; - return false; - } - } - return true; -} -function DisplayAnswer(fieldname,theanswer) -{ - ProcessIt = false; - var oDefault; - if (arguments.length > 2 ) - var oQName = arguments[2]; - else var oQName = oDefault; - if (typeof oQName=="undefined") - var oQName = new Object; - var defaultColor=(typeof oQName.DefaultColorJSLoc=="undefined")% -?\defaultColorJS:oQName.DefaultColorJSLoc; - try { - this.getField(fieldname).value=(theanswer); - } catch(e) {} - ProcessIt = true; -} -function EvalCorrAnsButton(fieldname,theanswer) -{ - theanswer = eval(theanswer); - DisplayAnswer(fieldname,theanswer); -} -function FindBalP(UserInput,Poff,Forward) -{ - var j,depth; - if (Forward) - { - for (depth=-1, j=Poff+1; depth !=0; j++) - { - if ( j > UserInput.length) return null; - if (UserInput.charAt(j)=="\(") depth--; - else if (UserInput.charAt(j)=="\)") depth++; - } - j-- - } - else - { - for (depth=-1, j=Poff-1; depth !=0; j--) - { - if ( j < 1 ) return null; - if (UserInput.charAt(j)=="\)") depth--; - else if (UserInput.charAt(j)=="\(") depth++; - } - j++ - } - return j; -} -function stripWhiteSpace (UserInput) -{ - UserInput = UserInput.replace(/\s/g,""); - if(UserInput==null || UserInput.length==0) - { - ok2Continue = false; - return false; - } else return UserInput; -} -function stripOutMuli (UserInput) -{ - UserInput = UserInput.replace(/\*/g,""); - return UserInput; -} -function addMathObject(UserInput) -{ - for ( var i=0; i < JSfBuiltIn.length; i++) { - var re = new RegExp("\\b("+JSfBuiltIn[i]+")\\b","g"); - UserInput = UserInput.replace(re,"Math.$1"); - } - re = /\b(PI)\b/g; - UserInput = UserInput.replace(re,"Math.$1"); - return UserInput; -} -function ParseInput(UserInput) -{ - var re, repi; - re = /\b(a)\b/g; - UserInput = UserInput.replace(re, "(a)"); - UserInput = stripWhiteSpace (UserInput); - if (!ok2Continue) return null; - for(var i=0; i< aGroup.length; i++) - { - if(!CkBalP(UserInput, aGroup[i][0], aGroup[i][1])) - { - eqAppAlert(\eqerrDelimNotBal,3); - ok2Continue = false; - return false; - } - } - UserInput = ChngAllGrpsToParens(UserInput); - if ( replaceExclaim &&(typeof fact == "function") ) - UserInput = UserInput.replace(% -/(?=\()?(\d+)(?=\))?!/g,"fact($1)"); - if (!CkBalVert(UserInput)) - { - eqAppAlert(\eqerrABS,3); - ok2Continue = false; - return false; - } - UserInput=groupJSf(UserInput); - re=/(\w)(e)(\^)/g; - repi=/(\w)(pi)/g; - UserInput=UserInput.replace(re, "$1*$2$3"); - UserInput=UserInput.replace(repi, "$1*$2"); - UserInput=UserInput.replace(/(sec)/g, "s@e@c"); - re=/(\w)(e)([^\^])?/g; - UserInput=UserInput.replace(re,"$1($2\^1)$3"); - UserInput=UserInput.replace(/(s@e@c)/g, "sec"); - re=/E(\d)/g; - UserInput=UserInput.replace(re,"E+$1"); - re=/(\d)\*E/g; - UserInput=UserInput.replace(re,"$1E"); - if(!Ckfuncs(UserInput)) return false; - if (typeof(Ck4Exponents) != "undefined") - UserInput = Ck4Exponents(UserInput); - if (typeof(Ck4Products) != "undefined" ) - UserInput = Ck4Products(UserInput); - ok2Continue = true; - re = /\b(log)\b/g; - UserInput = UserInput.replace(re, "logc"); - while (/\|/.test(UserInput)&&(ok2Continue)) - { - re = /(\|)([^\|]*)(\|)([-\+\/\*\^\)\|])/; - if (re.test(UserInput)) - if (re.exec(UserInput)[4] == '^') - UserInput = UserInput.replace(re, "(abs($2))$4"); - else - UserInput = UserInput.replace(re, "abs($2)$4"); - else - { - re = /(\|)([^\|]*)(\|$)/; - if (re.test(UserInput)) - UserInput = UserInput.replace(re, "abs($2)"); - } - } - re=/\b(pi)\b/g; - UserInput=UserInput.replace(re,"($1)") - var reTstExp = /(\))?\^(\()?/g; - while ( ((aResults=reTstExp.exec(UserInput))!=null)&&(ok2Continue) ) - { - var firstGroup = Number(Boolean(aResults[1])); // 0 or 1 - var secondGroup = 2*Number(Boolean(aResults[2])); // 0 or 2 - var caseStudy = firstGroup+secondGroup; // 0,1,2,3 - switch(caseStudy) { - case 0: - re=/([a-zA-Z]|\d*\.?\d*)\^([a-zA-Z]|[\+-]?\d+\.?\d*|% -[\+-]?\d*\.?\d+)/; - if (re.test(UserInput)) - UserInput=Ck4OddRoots(UserInput,re); - else ok2Continue=false; - break; - case 1: - aP =/\)\^/.exec(UserInput); - LeftP=FindBalP(UserInput,aP.index,0); - re = new RegExp("\\((.{"+eval(aP.index-LeftP-1) - +"})\\)\\^([a-zA-Z]|[\+-]?\\d+\\.?\\d*|% -[\+-]?\\d*\\.?\\d+)"); - if (re.test(UserInput)) - UserInput=Ck4OddRoots(UserInput,re); - else ok2Continue=false; - break; - case 2: - aP = /\^\(/.exec(UserInput); - RightP=FindBalP(UserInput,aP.index+1,1); - re = new RegExp("([a-zA-Z]|\\d*\\.?\\d*)\\^\\((.{" - +eval(RightP-aP.index-2)+"})\\)"); - if (re.test(UserInput)) - UserInput=Ck4OddRoots(UserInput,re); - else ok2Continue=false; - break; - case 3: - aP = /\)\^\(/.exec(UserInput); - LeftP=FindBalP(UserInput,aP.index,0); - RightP=FindBalP(UserInput,aP.index+2,1); - re = new RegExp("\\((.{"+eval(aP.index-LeftP-1) - +"})\\)\\^\\((.{"+eval(RightP-aP.index-3)+"})\\)"); - if (re.test(UserInput)) - UserInput=Ck4OddRoots(UserInput,re); - else ok2Continue=false; - break; - default: - ok2Continue=false; - } - } - if (!ok2Continue) - { - eqAppAlert(\eqerrBadExp,3); - return false; - } - else { - UserInput=addMathObject(UserInput); - return UserInput; - } -} -function ChngAllGrpsToParens(UserInput) -{ - UserInput = UserInput.replace(/\[|\{/g, "\("); - UserInput = UserInput.replace(/\]|\}/g, "\)"); - return UserInput; -} -function Ck4OddRoots(UserInput,re) { - var a=re.exec(UserInput); - while ( a[2].charAt(0)=="\(") { - var RightP=FindBalP(a[2],0,1); // forward search - if (RightP == a[2].length-1) - a[2]=a[2].substring(1,a[2].length-1); - else break; - } - var b=a[2].split("/"); - if ( b.length==2 ) { - try { _m=eval(b[1]) - if ( _m == undefined || isNaN(_m) ) throw new Error(); - var d = b[1]; - var isEnclosed=(d.charAt(0) == "\(" && d.charAt(d.length-1)=="\)"); - if (!isEnclosed) - if (/.+[\+\-].+/.test(d)) throw new Error(); - if (isEnclosed) d = s.substring(1,d.length-1); - var n = b[0]; - isEnclosed=(n.charAt(0) == "\(" && n.charAt(d.length-1)=="\)"); - if (!isEnclosed) - if (/.+[\+\-].+/.test(n)) throw new Error(); - if ( d == parseInt(d) && ( Boolean(d \% 2) ) ) { - UserInput=UserInput.replace(re, - "(pow(sgn($1),"+n+")*(pow(abs($1),$2)))"); - return UserInput; - } - } catch(e) {} - } - UserInput=UserInput.replace(re,"(pow($1,$2))"); - return UserInput; -} -function groupJSf(UserInput) -{ - var re, regexp, aP, RightP; - for (var i=0; (i7); // dps17 - var UserAns=(arguments.length>7)?arguments[7]:event.value; - var success = _ProcResp(flag,CorrAns,UserAns,% -n,epsilon,domain,indepVars,oComp); - if ( success == -1 || !ok2Continue ) - { resetHeadsUp(flag,fieldname); return null; } // dps17 - if ( success == null ) - { resetHeadsUp(flag,fieldname); - return syntaxError(), null; } // dps17 - return notifyField(success, flag, fieldname); -} -// changed name of var comp -> oComp -function _ProcResp(flag,CorrAns,UserAns,n,epsilon,domain,% -indepVars,oComp){ - ok2Continue = true; - CorrAns = ParseInput(CorrAns); - if (!ok2Continue) { - eqAppAlert("Syntax error in author's answer! Check console.",3); - return null; - } - var comp = ( typeof oComp == "object" ) ? - ((typeof oComp.comp == "undefined" ) ? - diffCompare : oComp.comp ) : oComp; - if ( (typeof(oComp)=="object") % -&& (typeof(oComp.priorParse)!="undefined") ) { - var retn=processSpecialParse(oComp.priorParse,UserAns); - if (retn==null) return -1; - } - var reCP=/((C|P)\(.+?)(,)(.+?\))/g - UserAns=UserAns.replace(reCP,"$1@c@$4"); - var reComma=/,/; - if ( reComma.test(UserAns) ) { - eqAppAlert(\eqSyntaxErrorComma,3); - return -1; - } - var reRlCommaSubst=/@c@/g; - UserAns=UserAns.replace(reRlCommaSubst,","); - UserAns = ParseInput(UserAns); - indepVars = TypeParameters(indepVars); - if (!ok2Continue) return null; - var success=randomPointCompare(n,domain,indepVars,% -epsilon,CorrAns,UserAns,comp); - if ( success && (typeof(oComp)=="object") % -&& (typeof(oComp.postParse)!="undefined") ) - success=processSpecialParse(oComp.postParse,UserAns); - return success; -} -function processSpecialParse(oParse,UserAns) { - var retn, f, _o - if ( typeof(oParse) == "object" ) { - for ( var i=0; i < oParse.length; i++) { - _o=oParse[i]; - if (typeof(_o)=="function") { - retn=_o(UserAns); - if (retn==null) return retn; - } else { - retn=_o[0].apply(null, [ UserAns ].concat(_o.slice(1))); - if (retn==null) return null; - } - } - } else { - retn = oParse(UserAns); - } - return retn; -} -function randomPointCompare (n,domain,indepVars,epsilon,% -CorrAns,userAns,comp) -{ - var error, i, j, k; - var aXY = new Array(); - domain = domain.replace(/[\[\]\s]/g, ""); - var aIntervals = domain.split("&"); - for (k=0; k < aIntervals.length; k++) - { - var aInterval = aIntervals[k].split("x"); - nI = aInterval.length; - with (Math) { - for (j=0; j < n; j++) - { - for (i=0; i < nI; i++) - { - var endpoints = aInterval[i].split(","); - aXY[i] = eval(endpoints[0])-0+(eval(endpoints[1])% --eval(endpoints[0]))*Math.random(); - } - var cXY = aXY.toString(); - error = comp(domain,cXY,indepVars,CorrAns,userAns); - if (error == null) return null; - if ( (error == -1) || (error > epsilon) ) {j=-1; break;} - } - } - if (j!=n) return false; - } - return true; -} -function diffCompare(_a,_c,_v,_F,_G) { - var aXY = _c.split(","); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = aXY.length; - for (var _i=0; _i < _n; _i++) - { - if (_V[_i].charAt(0) == "r" ) - eval ("var "+_V[_i].charAt(2)+"="+aXY[_i]+";"); - else // assume type "i" - eval ("var "+_V[_i].charAt(2)+"="+Math.ceil(aXY[_i])+";"); - } - _F = eval(_F); - if ( app.viewerVersion >= 5) - { - var rtnCode = 0; - eval("try {if(isNaN(_G = eval(_G))) rtnCode=-1; }" - +"catch (e) { rtnCode=1; }"); - switch(rtnCode) - { - case 0: break; - case 1: return null; - case -1: return -1; - } - } - else - if(isNaN(_G = eval(_G))) return -1; - return Math.abs ( _F - _G ); -} -function reldiffCompare(_a,_c,_v,_F,_G) { - var aXY = _c.split(","); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = aXY.length - for (var _i=0; _i < _n; _i++) - { - if (_V[_i].charAt(0) == "r" ) - eval ("var "+_V[_i].charAt(2)+"="+aXY[_i]+";"); - else // assume type "i" - eval ("var "+_V[_i].charAt(2)+"="+Math.ceil(aXY[_i])+";"); - } - _F = eval(_F); - if ( app.viewerVersion >= 5) - { - var rtnCode = 0; - eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" - +"catch (e) { rtnCode=1; }"); - switch(rtnCode) - { - case 0: break; - case 1: return null; - case -1: return -1; - } - } - else - if(isNaN(_G = eval(_G))) return -1; - return Math.abs ( (_F - _G)/_G ); -} -function requireForm(UserAns, regexpr) { - var msg=\defaultReqFormMsg; - UserAns = stripWhiteSpace (UserAns); - if (!ok2Continue) return null; - UserAns = ChngAllGrpsToParens(UserAns); - if (arguments.length>2) msg=arguments[2]; - if (typeof(regexpr.length)=="undefined") { - if (regexpr.test(UserAns)) return true; - else { eqAppAlert(msg,3); return null; } - } else { - for (var i=0; i2) msg=arguments[2]; - if (typeof(regexpr.length)=="undefined") { - if (regexpr.test(UserAns)) { eqAppAlert(msg,3); return null; } - else return true; - } else { - for (var i=0; i"); - for (var i=0; i0); - return notifyField(success,flag,fieldname); -} -function compareTxt(userAnswer,authorAnswer,filterMethod,compareMethod) -{ - var caseSensitive = ( compareMethod==3 ) ? "" : "i"; - var reSwitches = "g"+caseSensitive; - userAnswer = new String(userAnswer).filter(filterMethod); - switch(compareMethod) { - case 1: - var AuthorAnswer; - var aAuthorAnswer = authorAnswer.split(/\s+/); - for (var j=0; j < aAuthorAnswer.length; j++) { - AuthorAnswer = new String(% -aAuthorAnswer[j]).filter(filterMethod); - AuthorAnswer = AuthorAnswer.replace(/\./g,"\\."); - AuthorAnswer = AuthorAnswer.replace(/@any@/g,"."); - var re = new RegExp(AuthorAnswer, reSwitches); - if (!re.test(userAnswer)) return false; - } - return true; - default: - authorAnswer=new String(authorAnswer).filter(filterMethod); - return (userAnswer == authorAnswer) ? true : false; - } -} -String.prototype.filter = eqFilter; -function eqFilter(filterMethod) { - switch (filterMethod) { - case 0: - var re = /\W/g; - return this.replace(re,"").toLowerCase(); - case 1: - var re = /\s/g; - return this.replace(re,"").toLowerCase(); - case 2: - var re = /\s/g; - return this.replace(re,""); - case 3: - default: - return this.toString(); - } -} -\end{newsegment} -\begin{newsegment}{Eq: Quiz Management} -function InitMsg(msg) { return (\eqInitQuizMsg) } -function syntaxError() { eqAppAlert(\eqSyntaxErrorUndefVar,3); } -var lstOfQuizzes=new Object(); -var reExtractBaseName=/^.+?\.(.+?)\..+$/; -function ProcUserResp(key,userresp,probno,notify) -{ - if (key==null) { - ProcUserNoResp.apply(null,arguments); - return; - } - if ( arguments.length > 4 ) { - if ( typeof RightWrong[probno] == "undefined" ) { - RightWrong[probno] = new Array(); - RightWrong[probno][0] = "grp"; - Responses[probno] = new Array(); - } - RightWrong[probno][arguments[4]] = (!!key) ? 1 : 0; - Responses[probno][arguments[4]] = userresp; - } else { - if ( typeof key == "object" ) { - RightWrong[probno][0] = key[0]; - RightWrong[probno][1] = key[1]; -Responses[probno] = userresp; -if (Responses[probno].length==0) - Responses[probno]=undefined; - } else { - RightWrong[probno] = (!!key)?1:0; -Responses[probno] = userresp; -} - } - if ( (typeof fieldPopTbl == "function")&&(event.type != "Link") ) { - var a=reExtractBaseName.exec(event.target.name); - fieldPopTbl(a[1]); - } -} -function ProcUserNoResp(key,userresp,probno,notify) -{ - if ( arguments.length > 4 ) { - RightWrong[probno][arguments[4]] = undefined; - Responses[probno][arguments[4]] = undefined; -var bVoidArray=true; -for (var i=0; i 2) { - if ( typeof ProbValue[probno] == "undefined" ) { - ProbValue[probno]=[1,arguments[5],arguments[3],arguments[4]]; - ProbValue[probno][3+arguments[2]] = ptvalue; - } else ProbValue[probno][3+arguments[2]] = ptvalue; - } - else { - ProbValue[probno]=ptvalue; - } -} -function RecordProblemType(qType,probno) -{ - ProbType[probno]=qType; -} -function GrpRight( a, nProb, qtfield ) -{ - var f = this.getField("grpobj."+qtfield+"."+nProb); - var l = f.getArray().length - var prod = 1; - for ( var i=1; i <= l; i++) prod *= !!a[i]; - return prod; -} -function DisplayQuizResults(qtfield,nPointTotal,nQuestions) -{ - Score = 0; ptScore = 0; - NPointTotal=nPointTotal; NQuestions=nQuestions; - for (var i=1; i < RightWrong.length; i++) - { - if ( (typeof RightWrong[i] == "object" ) % - && ( RightWrong[i][0] == "grp" ) ) { - // grouped question - Score += GrpRight(RightWrong[i], i, qtfield); - var aWeights = ProbValue[i].slice(2); - var evalGrpJS = eval(ProbValue[i][1]); - var evalGrpJSValue = evalGrpJS(this,qtfield,i, - RightWrong[i],aWeights); - ProbDist[i] = evalGrpJSValue; - ptScore = ptScore + evalGrpJSValue; - } else { - if (typeof RightWrong[i] == "object") { - if ( RightWrong[i][0] == 1 ) { - Score++; - ProbDist[i]=(typeof ProbValue[i] == "object") ? - 1*ProbValue[i][1] : 1*ProbValue[i]; - ptScore += (1*ProbDist[i]); - } else { - if (RightWrong[i][1] == 1) - ProbDist[i]=(typeof ProbValue[i]=="object") ? - 1*ProbValue[i][1] : 1*ProbValue[i]; - else - ProbDist[i]=(typeof ProbValue[i] == "object") ? - 1*ProbValue[i][1] : 0; - ptScore += (1*ProbDist[i]); - } - } else { - if (RightWrong[i]==1) { - Score++; - ProbDist[i] = ( typeof ProbValue[i] == "object") ? - 1*ProbValue[i][1] : 1*ProbValue[i]; - ptScore += (1*ProbDist[i]); - } - else { - ProbDist[i] = ( typeof ProbValue[i] == "object") ? - 1*ProbValue[i][2] : 0; - ptScore += (1*ProbDist[i]); - } - } - } - } - if ( !negPointsAllowed && (ptScore < 0) ) ptScore = 0; - if (ptScore == nPointTotal) pcScore = 100; - else pcScore = util.printf("\%.1f", (100 * ptScore) / nPointTotal); - var oQName=eval(qtfield); - var gradeScale=% -(typeof oQName.GradeScaleLoc=="undefined")% -?GradeScaleDefault:oQName.GradeScaleLoc; - quizGrade = GetGrade.apply(null,gradeScale); - var f = this.getField("ScoreField."+qtfield); - if ( f != null ) f.value=(\eqQuizTotalMsg); - f = this.getField("PointsField."+qtfield); - if ( f != null) f.value=(\eqQuizPointsMsg); - f = this.getField("PercentField."+qtfield); - if ( f != null) f.value=(\eqQuizPercentMsg); - f = this.getField("GradeField."+qtfield); - if ( f != null) f.value=(\eqQuizGradeMsg); -} -function GetGrade() -{ - var cGrade, aRange; - var l = arguments.length/2; - if (pcScore >=100) return arguments[0]; - if (pcScore < 0 ) return arguments[arguments.length-2]; - for (var i=0; i < l; i++) - { - cGrade = arguments[2*i]; - aRange = arguments[2*i+1]; - if ( (pcScore >= arguments[2*i+1][0]) - && (pcScore < arguments[2*i+1][1])) return cGrade; - } - return null; -} -function ProcessQuestion (key,letterresp,probno, - quizno,qtfield,notify,mark,msg) { - var silent = ( arguments.length > 8 ) ? true : false; - if (!isQuizInitialized(qtfield)) - { - if (!silent) eqAppAlert(InitMsg(msg),3); - this.resetForm(["mc."+qtfield+"."+probno, - "mck."+qtfield+"."+probno]); - } - else - { - ProcUserResp(key,letterresp,probno,notify); - if (mark==1) - { - var oQName=eval(qtfield); - var defaultColor=% -(typeof oQName.DefaultColorJSLoc=="undefined")% -?\defaultColorJS:oQName.DefaultColorJSLoc; - var rightColor=% -(typeof oQName.RightColorJSLoc== "undefined")% -?\rghtColorJS:oQName.RightColorJSLoc; - var wrongColor=% -(typeof oQName.WrongColorJSLoc=="undefined")% -?\wrngColorJS:oQName.WrongColorJSLoc; - var rightAnsSymb=% -(typeof oQName.RightAnsSymbJSLoc=="undefined")% -?\rghtAnsSymbJS:oQName.RightAnsSymbJSLoc; - var wrongAnsSymb=% -(typeof oQName.WrongAnsSymbJSLoc=="undefined")% -?\wrngAnsSymbJS:oQName.WrongAnsSymbJSLoc; - var corrAnsSymb=% -(typeof oQName.CorrAnsSymbJSLoc=="undefined")% -?\corrAnsSymbJS:oQName.CorrAnsSymbJSLoc; - var f = this.getField("mcq."+qtfield+"."+probno); - var fck = this.getField("mck."+qtfield+"."+probno); - var bMultiSelect = ( fck != null ) ? true : false; - f.delay=true; - this.resetForm([f.name]); - var a = f.getArray(); - var l = a.length; - if ( bMultiSelect ) { - var ack = fck.getArray(); - for ( var i=0; i 0 ) ? 1 : 0; - var retn = [ [ scoreThisProblem, passKey ], letterResponses ] ; - return retn; -} -function LimitSelection(n,fname,k) { - var f = this.getField(fname); - var g = f.getArray(); - var total=0; - for (var i=0; i n) { - eqAppAlert(\limSelWarningMsg,3); - f=this.getField(fname+"."+k); - f.checkThisBox(0,false); - return false - } else return true; -} -\end{newsegment} -\begin{newsegment}{Eq: Miscellaneous JS} -function chooseJSColor( b, c1, c2 ) { - return ( b ) ? c1 : c2; -} -function notifyField(success, flag, fieldname) { - if ( flag != 0 ) - return (success)?true:false; - var f = this.getField(fieldname); - var re=/^(obj|grpobj)\./; - var gname=fieldname.replace(re,"rbmarkup\."); - var g =this.getField(gname); - var isthereRBUP = ( g !=null ); - var h = fieldname.replace(re,""); - var index=h.indexOf("."); - var oQName = eval(h.substring(0,index)); - var rightColor=(typeof oQName.RightColorJSLoc=="undefined")% -?\rghtColorJS:oQName.RightColorJSLoc; - var rightSymb=(typeof oQName.RightColorJSLoc=="undefined")% -?\rghtAnsSymbJS:oQName.RightAnsSymbJSLoc; - var wrongColor=(typeof oQName.WrongColorJSLoc=="undefined")% -?\wrngColorJS:oQName.WrongColorJSLoc; - var wrongSymb=(typeof oQName.WrongAnsSymbJSLoc=="undefined")% -?\wrngAnsSymbJS:oQName.WrongAnsSymbJSLoc; - if (success) { - f.strokeColor = rightColor; - if (isthereRBUP) { - g.style = rightSymb; - g.textColor=rightColor; - g.display=display.visible; - } - return true; - } else { - updateTally.downState=false; - updateTally(fieldname); - f.strokeColor = wrongColor; -if (isthereRBUP) { - b2 = ( typeof oQName.WrongAnsSymbJSLoc == "undefined" ); - g.style = wrongSymb; - g.textColor=wrongColor; - g.display=display.visible; - } - return false; - } -// return null; // remove ? -} -function updateTally(fieldname) -{ - var objre = /^obj\./; - var grpre = /^grpobj\./; - if ( grpre.test(fieldname) ) { - fieldname = fieldname.replace(grpre,""); - var pos = fieldname.lastIndexOf("."); - fieldname = fieldname.substring(0,pos); - } else if ( objre.test(fieldname) ) - fieldname = fieldname.replace(objre,""); - var f = this.getField("tally."+fieldname); - if ( f != null ) { - if (!updateTally.downState) f.value += 1; - return true; - } else return false; - -} -var bNoPeekWait=false; -var oNoPeekTimer; -function noPeek(qtfield,rtnPage) -{ - if (!bNoPeekWait) { - if ( (typeof (aQuizControl[qtfield]) == "undefined") % -|| (aQuizControl[qtfield] != -1) ) { - bNoPeekWait=true; - oNoPeekTimer=app.setTimeOut("bNoPeekWait=false;% -app.clearTimeOut(oNoPeekTimer);",5); - this.pageNum = rtnPage-1; - \NoPeekAlert; - } - } else this.pageNum = rtnPage-1; -} -var oCB=\bcheckboxused -function OnBlurRespBox (retn) -{ - var qname = arguments[1]; - var oQName = eval(qname); - var respMsg; - var cTitle = "AcroTeX eDucation Bundle"; - if (retn != null) { - if ( typeof appAlerts[qname] == "undefined") - appAlerts[qname] = {bAfterValue: false, % -cMsg: "\doNotShowAgainMsg"}; - var respMsg = (retn) ? \eqsqrtmsg\space : \eqsqwgmsg; - if ( (event.target == this) || !oCB) - eqAppAlert({ cMsg: respMsg, nIcon: 3, cTitle: cTitle }); - else { - if ( ! appAlerts[arguments[1]].bAfterValue ) - eqAppAlert({ cMsg: respMsg, nIcon: 3, cTitle: cTitle, % -oCheckbox: appAlerts[qname]}); - } - } - else { - var re=/^(obj|grpobj)\./; - var gname=event.target.name.replace(re,"rbmarkup\."); - var g =this.getField(gname); - var isthereRBUP = ( g !=null ); - var str = event.target.value.toString(); - if (str.replace(/\s/g,"") == "") { - var defaultColor=% -(typeof oQName.DefaultColorJSLoc=="undefined")% -?color.black:oQName.DefaultColorJSLoc; - if (isthereRBUP) g.display=display.hidden; - event.target.strokeColor = defaultColor; - } - } -} -function jmpToNamedDest(fName,cDest,bAlert) { - if ( (typeof appAlerts[fName]!="undefined" % -&& appAlerts[fName].bAfterValue) || bAlert==0) - app.setTimeOut("this.gotoNamedDest(\""+cDest+"\")",500); - else - this.gotoNamedDest(cDest); -} -function lowThreshold(nQuestions) -{ - return true; -} -function highThreshold(nQuestions) -{ - var cnt=0; - for ( var i=0; i< Responses.length; i++ ) { - if ( typeof Responses[i]!="undefined") cnt++ - } - if ( cnt= nQuestions); -} -\end{newsegment} -\begin{newsegment}{Eq: Support for Grouped Questions} -function groupEval(doc,qtfield,probno,aKey,aWeights) -{ - var totalGrpPts = aWeights[0]; - var totalWeight = aWeights[1]; - for ( var i=1,total=0; i< aKey.length; i++ ) - if (aKey[i] != undefined) total += aKey[i]*aWeights[i+1]; - return total; -} -function WeightedEval(doc,qtfield,probno,aKey,aWeights) -{ - var f = doc.getField("grpobj." + qtfield + "." + probno); - var nGrpQno = f.getArray().length; - var totalGrpPts = aWeights[0]; - var totalWeight = aWeights[1]; - for ( var i=1,total=0; i < aKey.length; i++ ) - if (aKey[i] != undefined) total += aKey[i]*aWeights[i+1]; - total /= totalWeight; - total = Math.floor( total * totalGrpPts ); - return total; -} -function groupBernoulliEval(doc,qtfield,probno,aKey,aWeights) -{ - var f = doc.getField("grpobj." + qtfield + "." + probno); - var nGrpQno = f.getArray().length; - var totalGrpPts = aWeights[0]; - for ( var i=1,isCorrect=1; i<= nGrpQno; i++ ) - isCorrect *= (aKey[i] != undefined) ? (Number(aKey[i])) : 0; - return (isCorrect*totalGrpPts); -} -\end{newsegment} -\end{insDLJS*} -\endinput -%% -%% End of file `aebjs.def'. +%% +%% This is file `aebjs.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,aebjs') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{aebjs.def} + [2018/03/21 v8.2.2 % + Exerquiz document level JavaScript (dps)] + \ifmakeExSlLocal\protect\endgroup^^J\fi +\def\aeb@array{new Array} +\def\refac#1{\\(#1\\)}\def\regrp#1{(#1)}\def\rechrclass#1{[#1]} +\def\redm{\\.}\def\remul{\\*}\def\rediv{\\/}\def\repow{\\^} +\def\redigit{\\d}\def\reany{.}\def\rebstr{\string^}\def\reestr{\string$} +\def\preReqForm{\Array(requireForm,\@gobble} +\def\preDenyForm{\Array(denyForm,\@gobble} +\def\postDenyForm{\Array(requireFormNot,\@gobble} +\newcommand{\noPeekArgs}[1]{% + \def\NoPeekAlert{eqAppAlert(#1)}}\def\newNoPeekArgs{} +\def\NoPeekAlert{eqAppAlert(\noPeekMsg,3)} +\newcommand{\dlLibSpecRespJS}{"none","undefined","empty"} +\newif\ifSubstVars\SubstVarsfalse % dps17 +\newif\ifShowAppr\ShowApprtrue % dps17 +\def\altApprOn{\ShowApprtrue} % dps17 +\def\altApprOff{\ShowApprfalse} % dps17 +\def\corrChoiceFullyOn{\def\eqCorrChoiceFully{true}} +\def\corrChoiceFullyOff{\def\eqCorrChoiceFully{false}} +\corrChoiceFullyOn +\def\corrLocalChoiceFullyOn{\def\eqCorrLocalChoiceFully{true}} % dpsf07 +\def\corrLocalChoiceFullyOff{\def\eqCorrLocalChoiceFully{false}} % dpsf07 +\def\resetLocalChoiceFully{\let\eqCorrLocalChoiceFully\@empty} % dpsf07 +\resetLocalChoiceFully % no local implementation +\begin{insDLJS*}[exerquizLoaded]{exerquiz} +\begin{newsegment}{AeB: AcroTeX eDucation Bundle} +/* + Document Level JavaScript + AcroTeX eDucation Bundle + D. P. Story copyright 2000-\the\year +*/ +var exerquizLoaded = true; +this.disclosed = true; +app.runtimeHighlight=false; +\end{newsegment} +\begin{newsegment}{Eq: Global Data} +var ok2Continue = true; +var ProcessIt = true; +var retn; +var Score=0; +var ptScore=0; +var pcScore=0; +var quizGrade="C"; +var NQuestions=0; +var NPointTotal=0; +var e = Math.E; +var pi = Math.PI; +var replaceExclaim = \replaceexclaim; +var negPointsAllowed = \negpointsallowed; +var negPointsMarkupAllowed = \negpointsmarkupallowed; +var aQuizControl = new Object; +var RightWrong=new Array(); +var ProbValue = new Array(); +var ProbDist = new Array(); +var ProbType = new Array(); +var Responses=new Array(); +var appAlerts = new Object; +var _mathVars="x"; +var _ModalNotOn=true; +var GradeScaleDefault=new Array(\eqGradeScale); +var aDlLibSpecResp=new Array(\dlLibSpecRespJS); +var JSfBuiltIn = new Array + ( "abs","acos","asin","atan","ceil", "floor","cos","exp", + "log","max","min","pow","random","round","sin", + "sqrt","tan"); +var JSfCustomEarly = new Array ("arctan", "arcsin", "arccos") +var JSfCustomLate = new Array + ( "logc", "ln","sec","csc","cot", + "asinh", "acosh","atanh","acoth","asech","acsch", + "sinh", "cosh","tanh","coth","sech","csch","sgn", + "C","P","fact","pi"); +var JSf = new Array().concat(JSfCustomEarly, JSfBuiltIn, JSfCustomLate); +var JSfCustom = new Array().concat(JSfCustomEarly, JSfCustomLate); +var JSc = new Array("PI","E") +function ln(x) { return Math.log(x); } +function sec(x) { return 1/Math.cos(x); } +function csc(x) { return 1/Math.sin(x);} +function cot(x) { return Math.cos(x)/Math.sin(x); } +function arctan(x) { return Math.atan(x); } +function arcsin(x) { return Math.asin(x); } +function arccos(x) { return Math.acos(x); } +function logc(x) { return Math.LOG10E * Math.log(x); } +function C(x,y) {return ch(x,y);} +function P(x,y) {return perm(x,y);} +function sinh(x) { return ( Math.exp(x) - Math.exp(-x) )/2; } +function cosh(x) { return ( Math.exp(x) + Math.exp(-x) )/2; } +function tanh(x) { + return (Math.exp(x)-Math.exp(-x))/(Math.exp(x)+Math.exp(-x)); } +function coth(x) { + return ( Math.exp(x)+Math.exp(-x))/(Math.exp(x)-Math.exp(-x)); } +function sech(x) { return 2/( Math.exp(x) + Math.exp(-x) )/2; } +function csch(x) { return 2/( Math.exp(x) - Math.exp(-x) )/2; } +function asinh(x) { return Math.log (x+Math.sqrt(Math.pow(x,2)+1)); } +function acosh(x) { + return Math.log (x+Math.sqrt(Math.pow(x,2)-1)); } // x ge 1 +function atanh(x) { return .5*Math.log ((1+x)/(1-x)); } // -1 < x < 1 +function acoth(x) { return atanh(1/x); } // |x| > 1 +function asech(x) { return acosh(1/x); } // 0 < x le 1 +function asch(x) { return asinh(1/x); } // x ne 0 +function acsch(x) { return asinh(1/x); } // x ne 0 +function sgn(x) { return (x==0?0:(x<0?-1:1)) }; +var aGroup = new Array + ( ["\(","\)",\eqParens], + ["[","]",\eqBrackets], + ["{","}",\eqBraces] + ); +\end{newsegment} +\begin{newsegment}{Eq: Support for Math Fill-in} +var _mto; +function eqAppAlert(args) { + _ModalNotOn = false; + var retn=app.alert(args); + _mto= app.setTimeOut("_ModalNotOn = true", 100); + return retn; +} +function CkBalP(UserInput,lDelimiter,rDelimiter) +{ + var Lcount=0, Rcount=0; + for (var k=0; k < UserInput.length; k++) + { + if (UserInput.charAt(k) == lDelimiter) Lcount++; + else if (UserInput.charAt(k) == rDelimiter) Rcount++; + } + return (Lcount==Rcount); +} +function CkBalVert(UserInput) +{ + var Lcount=0; + for (var k=0; k < UserInput.length; k++) + if (UserInput.charAt(k)=="|") Lcount++; + return (Lcount \% 2 == 0); +} +function Ckfuncs(UserInput) +{ + var re, rei, reii; + re = /[a-zA-Z]{2,}/g; + reii=/r:|i:|,/g + var _v=_mathVars.replace(reii,""); +rei=new RegExp("[^"+_v+"]", "g"); + aF = UserInput.match(re); + if ( aF == null ) return true; + for (var i=0; i < aF.length; i++) + { +if ( rei.exec(aF[i]) == null ) continue; + for(var j=0; j < JSf.length; j++) + if ( aF[i].indexOf(JSf[j]) != -1 ) break; + if (j < JSf.length) continue; + for(var j=0; j < JSc.length; j++) + if ( aF[i].indexOf(JSc[j]) != -1 ) break; + if(j==JSc.length) + { + eqAppAlert(\eqerrBadMathFunc,3); + ok2Continue=false; + return false; + } + } + return true; +} +function DisplayAnswer(fieldname,theanswer) +{ + ProcessIt = false; + var oDefault; + if (arguments.length > 2 ) + var oQName = arguments[2]; + else var oQName = oDefault; + if (typeof oQName=="undefined") + var oQName = new Object; + var defaultColor=(typeof oQName.DefaultColorJSLoc=="undefined")% +?\defaultColorJS:oQName.DefaultColorJSLoc; + try { + this.getField(fieldname).value=(theanswer); + } catch(e) {} + ProcessIt = true; +} +function EvalCorrAnsButton(fieldname,theanswer) +{ + theanswer = eval(theanswer); + DisplayAnswer(fieldname,theanswer); +} +function FindBalP(UserInput,Poff,Forward) +{ + var j,depth; + if (Forward) + { + for (depth=-1, j=Poff+1; depth !=0; j++) + { + if ( j > UserInput.length) return null; + if (UserInput.charAt(j)=="\(") depth--; + else if (UserInput.charAt(j)=="\)") depth++; + } + j-- + } + else + { + for (depth=-1, j=Poff-1; depth !=0; j--) + { + if ( j < 1 ) return null; + if (UserInput.charAt(j)=="\)") depth--; + else if (UserInput.charAt(j)=="\(") depth++; + } + j++ + } + return j; +} +function stripWhiteSpace (UserInput) +{ + UserInput = UserInput.replace(/\s/g,""); + if(UserInput==null || UserInput.length==0) + { + ok2Continue = false; + return false; + } else return UserInput; +} +function stripOutMuli (UserInput) +{ + UserInput = UserInput.replace(/\*/g,""); + return UserInput; +} +function addMathObject(UserInput) +{ + for ( var i=0; i < JSfBuiltIn.length; i++) { + var re = new RegExp("\\b("+JSfBuiltIn[i]+")\\b","g"); + UserInput = UserInput.replace(re,"Math.$1"); + } + re = /\b(PI)\b/g; + UserInput = UserInput.replace(re,"Math.$1"); + return UserInput; +} +function ParseInput(UserInput) +{ + var re, repi; + re = /\b(a)\b/g; + UserInput = UserInput.replace(re, "(a)"); + UserInput = stripWhiteSpace (UserInput); + if (!ok2Continue) return null; + for(var i=0; i< aGroup.length; i++) + { + if(!CkBalP(UserInput, aGroup[i][0], aGroup[i][1])) + { + eqAppAlert(\eqerrDelimNotBal,3); + ok2Continue = false; + return false; + } + } + UserInput = ChngAllGrpsToParens(UserInput); + if ( replaceExclaim &&(typeof fact == "function") ) + UserInput = UserInput.replace(% +/(?=\()?(\d+)(?=\))?!/g,"fact($1)"); + if (!CkBalVert(UserInput)) + { + eqAppAlert(\eqerrABS,3); + ok2Continue = false; + return false; + } + UserInput=groupJSf(UserInput); + re=/(\w)(e)(\^)/g; + repi=/(\w)(pi)/g; + UserInput=UserInput.replace(re, "$1*$2$3"); + UserInput=UserInput.replace(repi, "$1*$2"); + UserInput=UserInput.replace(/(sec)/g, "s@e@c"); + re=/(\w)(e)([^\^])?/g; + UserInput=UserInput.replace(re,"$1($2\^1)$3"); + UserInput=UserInput.replace(/(s@e@c)/g, "sec"); + re=/E(\d)/g; + UserInput=UserInput.replace(re,"E+$1"); + re=/(\d)\*E/g; + UserInput=UserInput.replace(re,"$1E"); + if(!Ckfuncs(UserInput)) return false; + if (typeof(Ck4Exponents) != "undefined") + UserInput = Ck4Exponents(UserInput); + if (typeof(Ck4Products) != "undefined" ) + UserInput = Ck4Products(UserInput); + ok2Continue = true; + re = /\b(log)\b/g; + UserInput = UserInput.replace(re, "logc"); + while (/\|/.test(UserInput)&&(ok2Continue)) + { + re = /(\|)([^\|]*)(\|)([-\+\/\*\^\)\|])/; + if (re.test(UserInput)) + if (re.exec(UserInput)[4] == '^') + UserInput = UserInput.replace(re, "(abs($2))$4"); + else + UserInput = UserInput.replace(re, "abs($2)$4"); + else + { + re = /(\|)([^\|]*)(\|$)/; + if (re.test(UserInput)) + UserInput = UserInput.replace(re, "abs($2)"); + } + } + re=/\b(pi)\b/g; + UserInput=UserInput.replace(re,"($1)") + var reTstExp = /(\))?\^(\()?/g; + while ( ((aResults=reTstExp.exec(UserInput))!=null)&&(ok2Continue) ) + { + var firstGroup = Number(Boolean(aResults[1])); // 0 or 1 + var secondGroup = 2*Number(Boolean(aResults[2])); // 0 or 2 + var caseStudy = firstGroup+secondGroup; // 0,1,2,3 + switch(caseStudy) { + case 0: + re=/([a-zA-Z]|\d*\.?\d*)\^([a-zA-Z]|[\+-]?\d+\.?\d*|% +[\+-]?\d*\.?\d+)/; + if (re.test(UserInput)) + UserInput=Ck4OddRoots(UserInput,re); + else ok2Continue=false; + break; + case 1: + aP =/\)\^/.exec(UserInput); + LeftP=FindBalP(UserInput,aP.index,0); + re = new RegExp("\\((.{"+eval(aP.index-LeftP-1) + +"})\\)\\^([a-zA-Z]|[\+-]?\\d+\\.?\\d*|% +[\+-]?\\d*\\.?\\d+)"); + if (re.test(UserInput)) + UserInput=Ck4OddRoots(UserInput,re); + else ok2Continue=false; + break; + case 2: + aP = /\^\(/.exec(UserInput); + RightP=FindBalP(UserInput,aP.index+1,1); + re = new RegExp("([a-zA-Z]|\\d*\\.?\\d*)\\^\\((.{" + +eval(RightP-aP.index-2)+"})\\)"); + if (re.test(UserInput)) + UserInput=Ck4OddRoots(UserInput,re); + else ok2Continue=false; + break; + case 3: + aP = /\)\^\(/.exec(UserInput); + LeftP=FindBalP(UserInput,aP.index,0); + RightP=FindBalP(UserInput,aP.index+2,1); + re = new RegExp("\\((.{"+eval(aP.index-LeftP-1) + +"})\\)\\^\\((.{"+eval(RightP-aP.index-3)+"})\\)"); + if (re.test(UserInput)) + UserInput=Ck4OddRoots(UserInput,re); + else ok2Continue=false; + break; + default: + ok2Continue=false; + } + } + if (!ok2Continue) + { + eqAppAlert(\eqerrBadExp,3); + return false; + } + else { + UserInput=addMathObject(UserInput); + return UserInput; + } +} +function ChngAllGrpsToParens(UserInput) +{ + UserInput = UserInput.replace(/\[|\{/g, "\("); + UserInput = UserInput.replace(/\]|\}/g, "\)"); + return UserInput; +} +function Ck4OddRoots(UserInput,re) { + var a=re.exec(UserInput); + while ( a[2].charAt(0)=="\(") { + var RightP=FindBalP(a[2],0,1); // forward search + if (RightP == a[2].length-1) + a[2]=a[2].substring(1,a[2].length-1); + else break; + } + var b=a[2].split("/"); + if ( b.length==2 ) { + try { _m=eval(b[1]) + if ( _m == undefined || isNaN(_m) ) throw new Error(); + var d = b[1]; + var isEnclosed=(d.charAt(0) == "\(" && d.charAt(d.length-1)=="\)"); + if (!isEnclosed) + if (/.+[\+\-].+/.test(d)) throw new Error(); + if (isEnclosed) d = s.substring(1,d.length-1); + var n = b[0]; + isEnclosed=(n.charAt(0) == "\(" && n.charAt(d.length-1)=="\)"); + if (!isEnclosed) + if (/.+[\+\-].+/.test(n)) throw new Error(); + if ( d == parseInt(d) && ( Boolean(d \% 2) ) ) { + UserInput=UserInput.replace(re, + "(pow(sgn($1),"+n+")*(pow(abs($1),$2)))"); + return UserInput; + } + } catch(e) {} + } + UserInput=UserInput.replace(re,"(pow($1,$2))"); + return UserInput; +} +function groupJSf(UserInput) +{ + var re, regexp, aP, RightP; + for (var i=0; (i7); // dps17 + var UserAns=(arguments.length>7)?arguments[7]:event.value; + var success = _ProcResp(flag,CorrAns,UserAns,% +n,epsilon,domain,indepVars,oComp); + if ( success == -1 || !ok2Continue ) + { resetHeadsUp(flag,fieldname); return null; } // dps17 + if ( success == null ) + { resetHeadsUp(flag,fieldname); + return syntaxError(), null; } // dps17 + return notifyField(success, flag, fieldname); +} +// changed name of var comp -> oComp +function _ProcResp(flag,CorrAns,UserAns,n,epsilon,domain,% +indepVars,oComp){ + ok2Continue = true; + CorrAns = ParseInput(CorrAns); + if (!ok2Continue) { + eqAppAlert("Syntax error in author's answer! Check console.",3); + return null; + } + var comp = ( typeof oComp == "object" ) ? + ((typeof oComp.comp == "undefined" ) ? + diffCompare : oComp.comp ) : oComp; + if ( (typeof(oComp)=="object") % +&& (typeof(oComp.priorParse)!="undefined") ) { + var retn=processSpecialParse(oComp.priorParse,UserAns); + if (retn==null) return -1; + } + var reCP=/((C|P)\(.+?)(,)(.+?\))/g + UserAns=UserAns.replace(reCP,"$1@c@$4"); + var reComma=/,/; + if ( reComma.test(UserAns) ) { + eqAppAlert(\eqSyntaxErrorComma,3); + return -1; + } + var reRlCommaSubst=/@c@/g; + UserAns=UserAns.replace(reRlCommaSubst,","); + UserAns = ParseInput(UserAns); + indepVars = TypeParameters(indepVars); + if (!ok2Continue) return null; + var success=randomPointCompare(n,domain,indepVars,% +epsilon,CorrAns,UserAns,comp); + if ( success && (typeof(oComp)=="object") % +&& (typeof(oComp.postParse)!="undefined") ) + success=processSpecialParse(oComp.postParse,UserAns); + return success; +} +function processSpecialParse(oParse,UserAns) { + var retn, f, _o + if ( typeof(oParse) == "object" ) { + for ( var i=0; i < oParse.length; i++) { + _o=oParse[i]; + if (typeof(_o)=="function") { + retn=_o(UserAns); + if (retn==null) return retn; + } else { + retn=_o[0].apply(null, [ UserAns ].concat(_o.slice(1))); + if (retn==null) return null; + } + } + } else { + retn = oParse(UserAns); + } + return retn; +} +function randomPointCompare (n,domain,indepVars,epsilon,% +CorrAns,userAns,comp) +{ + var error, i, j, k; + var aXY = new Array(); + domain = domain.replace(/[\[\]\s]/g, ""); + var aIntervals = domain.split("&"); + for (k=0; k < aIntervals.length; k++) + { + var aInterval = aIntervals[k].split("x"); + nI = aInterval.length; + with (Math) { + for (j=0; j < n; j++) + { + for (i=0; i < nI; i++) + { + var endpoints = aInterval[i].split(","); + aXY[i] = eval(endpoints[0])-0+(eval(endpoints[1])% +-eval(endpoints[0]))*Math.random(); + } + var cXY = aXY.toString(); + error = comp(domain,cXY,indepVars,CorrAns,userAns); + if (error == null) return null; + if ( (error == -1) || (error > epsilon) ) {j=-1; break;} + } + } + if (j!=n) return false; + } + return true; +} +function diffCompare(_a,_c,_v,_F,_G) { + var aXY = _c.split(","); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = aXY.length; + for (var _i=0; _i < _n; _i++) + { + if (_V[_i].charAt(0) == "r" ) + eval ("var "+_V[_i].charAt(2)+"="+aXY[_i]+";"); + else // assume type "i" + eval ("var "+_V[_i].charAt(2)+"="+Math.ceil(aXY[_i])+";"); + } + _F = eval(_F); + if ( app.viewerVersion >= 5) + { + var rtnCode = 0; + eval("try {if(isNaN(_G = eval(_G))) rtnCode=-1; }" + +"catch (e) { rtnCode=1; }"); + switch(rtnCode) + { + case 0: break; + case 1: return null; + case -1: return -1; + } + } + else + if(isNaN(_G = eval(_G))) return -1; + return Math.abs ( _F - _G ); +} +function reldiffCompare(_a,_c,_v,_F,_G) { + var aXY = _c.split(","); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = aXY.length + for (var _i=0; _i < _n; _i++) + { + if (_V[_i].charAt(0) == "r" ) + eval ("var "+_V[_i].charAt(2)+"="+aXY[_i]+";"); + else // assume type "i" + eval ("var "+_V[_i].charAt(2)+"="+Math.ceil(aXY[_i])+";"); + } + _F = eval(_F); + if ( app.viewerVersion >= 5) + { + var rtnCode = 0; + eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" + +"catch (e) { rtnCode=1; }"); + switch(rtnCode) + { + case 0: break; + case 1: return null; + case -1: return -1; + } + } + else + if(isNaN(_G = eval(_G))) return -1; + return Math.abs ( (_F - _G)/_G ); +} +function requireForm(UserAns, regexpr) { + var msg=\defaultReqFormMsg; + UserAns = stripWhiteSpace (UserAns); + if (!ok2Continue) return null; + UserAns = ChngAllGrpsToParens(UserAns); + if (arguments.length>2) msg=arguments[2]; + if (typeof(regexpr.length)=="undefined") { + if (regexpr.test(UserAns)) return true; + else { eqAppAlert(msg,3); return null; } + } else { + for (var i=0; i2) msg=arguments[2]; + if (typeof(regexpr.length)=="undefined") { + if (regexpr.test(UserAns)) { eqAppAlert(msg,3); return null; } + else return true; + } else { + for (var i=0; i"); + for (var i=0; i0); + return notifyField(success,flag,fieldname); +} +function compareTxt(userAnswer,authorAnswer,filterMethod,compareMethod) +{ + var caseSensitive = ( compareMethod==3 ) ? "" : "i"; + var reSwitches = "g"+caseSensitive; + userAnswer = new String(userAnswer).filter(filterMethod); + switch(compareMethod) { + case 1: + var AuthorAnswer; + var aAuthorAnswer = authorAnswer.split(/\s+/); + for (var j=0; j < aAuthorAnswer.length; j++) { + AuthorAnswer = new String(% +aAuthorAnswer[j]).filter(filterMethod); + AuthorAnswer = AuthorAnswer.replace(/\./g,"\\."); + AuthorAnswer = AuthorAnswer.replace(/@any@/g,"."); + var re = new RegExp(AuthorAnswer, reSwitches); + if (!re.test(userAnswer)) return false; + } + return true; + default: + authorAnswer=new String(authorAnswer).filter(filterMethod); + return (userAnswer == authorAnswer) ? true : false; + } +} +String.prototype.filter = eqFilter; +function eqFilter(filterMethod) { + switch (filterMethod) { + case 0: + var re = /\W/g; + return this.replace(re,"").toLowerCase(); + case 1: + var re = /\s/g; + return this.replace(re,"").toLowerCase(); + case 2: + var re = /\s/g; + return this.replace(re,""); + case 3: + default: + return this.toString(); + } +} +\end{newsegment} +\begin{newsegment}{Eq: Quiz Management} +function InitMsg(msg) { return (\eqInitQuizMsg) } +function syntaxError() { eqAppAlert(\eqSyntaxErrorUndefVar,3); } +var lstOfQuizzes=new Object(); +var reExtractBaseName=/^.+?\.(.+?)\..+$/; +function ProcUserResp(key,userresp,probno,notify) +{ + if (key==null) { + ProcUserNoResp.apply(null,arguments); + return; + } + if ( arguments.length > 4 ) { + if ( typeof RightWrong[probno] == "undefined" ) { + RightWrong[probno] = new Array(); + RightWrong[probno][0] = "grp"; + Responses[probno] = new Array(); + } + RightWrong[probno][arguments[4]] = (!!key) ? 1 : 0; + Responses[probno][arguments[4]] = userresp; + } else { + if ( typeof key == "object" ) { + RightWrong[probno][0] = key[0]; + RightWrong[probno][1] = key[1]; +Responses[probno] = userresp; +if (Responses[probno].length==0) + Responses[probno]=undefined; + } else { + RightWrong[probno] = (!!key)?1:0; +Responses[probno] = userresp; +} + } + if ( (typeof fieldPopTbl == "function")&&(event.type != "Link") ) { + var a=reExtractBaseName.exec(event.target.name); + fieldPopTbl(a[1]); + } +} +function ProcUserNoResp(key,userresp,probno,notify) +{ + if ( arguments.length > 4 ) { + RightWrong[probno][arguments[4]] = undefined; + Responses[probno][arguments[4]] = undefined; +var bVoidArray=true; +for (var i=0; i 2) { + if ( typeof ProbValue[probno] == "undefined" ) { + ProbValue[probno]=[1,arguments[5],arguments[3],arguments[4]]; + ProbValue[probno][3+arguments[2]] = ptvalue; + } else ProbValue[probno][3+arguments[2]] = ptvalue; + } + else { + ProbValue[probno]=ptvalue; + } +} +function RecordProblemType(qType,probno) +{ + ProbType[probno]=qType; +} +function GrpRight( a, nProb, qtfield ) +{ + var f = this.getField("grpobj."+qtfield+"."+nProb); + var l = f.getArray().length + var prod = 1; + for ( var i=1; i <= l; i++) prod *= !!a[i]; + return prod; +} +function DisplayQuizResults(qtfield,nPointTotal,nQuestions) +{ + Score = 0; ptScore = 0; + NPointTotal=nPointTotal; NQuestions=nQuestions; + for (var i=1; i < RightWrong.length; i++) + { + if ( (typeof RightWrong[i] == "object" ) % + && ( RightWrong[i][0] == "grp" ) ) { + // grouped question + Score += GrpRight(RightWrong[i], i, qtfield); + var aWeights = ProbValue[i].slice(2); + var evalGrpJS = eval(ProbValue[i][1]); + var evalGrpJSValue = evalGrpJS(this,qtfield,i, + RightWrong[i],aWeights); + ProbDist[i] = evalGrpJSValue; + ptScore = ptScore + evalGrpJSValue; + } else { + if (typeof RightWrong[i] == "object") { + if ( RightWrong[i][0] == 1 ) { + Score++; + ProbDist[i]=(typeof ProbValue[i] == "object") ? + 1*ProbValue[i][1] : 1*ProbValue[i]; + ptScore += (1*ProbDist[i]); + } else { + if (RightWrong[i][1] == 1) + ProbDist[i]=(typeof ProbValue[i]=="object") ? + 1*ProbValue[i][1] : 1*ProbValue[i]; + else + ProbDist[i]=(typeof ProbValue[i] == "object") ? + 1*ProbValue[i][1] : 0; + ptScore += (1*ProbDist[i]); + } + } else { + if (RightWrong[i]==1) { + Score++; + ProbDist[i] = ( typeof ProbValue[i] == "object") ? + 1*ProbValue[i][1] : 1*ProbValue[i]; + ptScore += (1*ProbDist[i]); + } + else { + ProbDist[i] = ( typeof ProbValue[i] == "object") ? + 1*ProbValue[i][2] : 0; + ptScore += (1*ProbDist[i]); + } + } + } + } + if ( !negPointsAllowed && (ptScore < 0) ) ptScore = 0; + if (ptScore == nPointTotal) pcScore = 100; + else pcScore = util.printf("\%.1f", (100 * ptScore) / nPointTotal); + var oQName=eval(qtfield); + var gradeScale=% +(typeof oQName.GradeScaleLoc=="undefined")% +?GradeScaleDefault:oQName.GradeScaleLoc; + quizGrade = GetGrade.apply(null,gradeScale); + var f = this.getField("ScoreField."+qtfield); + if ( f != null ) f.value=(\eqQuizTotalMsg); + f = this.getField("PointsField."+qtfield); + if ( f != null) f.value=(\eqQuizPointsMsg); + f = this.getField("PercentField."+qtfield); + if ( f != null) f.value=(\eqQuizPercentMsg); + f = this.getField("GradeField."+qtfield); + if ( f != null) f.value=(\eqQuizGradeMsg); +} +function GetGrade() +{ + var cGrade, aRange; + var l = arguments.length/2; + if (pcScore >=100) return arguments[0]; + if (pcScore < 0 ) return arguments[arguments.length-2]; + for (var i=0; i < l; i++) + { + cGrade = arguments[2*i]; + aRange = arguments[2*i+1]; + if ( (pcScore >= arguments[2*i+1][0]) + && (pcScore < arguments[2*i+1][1])) return cGrade; + } + return null; +} +function ProcessQuestion (key,letterresp,probno, + quizno,qtfield,notify,mark,msg) { + var silent = ( arguments.length > 8 ) ? true : false; + if (!isQuizInitialized(qtfield)) + { + if (!silent) eqAppAlert(InitMsg(msg),3); + this.resetForm(["mc."+qtfield+"."+probno, + "mck."+qtfield+"."+probno]); + } + else + { + ProcUserResp(key,letterresp,probno,notify); + if (mark==1) + { + var oQName=eval(qtfield); + var defaultColor=% +(typeof oQName.DefaultColorJSLoc=="undefined")% +?\defaultColorJS:oQName.DefaultColorJSLoc; + var rightColor=% +(typeof oQName.RightColorJSLoc== "undefined")% +?\rghtColorJS:oQName.RightColorJSLoc; + var wrongColor=% +(typeof oQName.WrongColorJSLoc=="undefined")% +?\wrngColorJS:oQName.WrongColorJSLoc; + var rightAnsSymb=% +(typeof oQName.RightAnsSymbJSLoc=="undefined")% +?\rghtAnsSymbJS:oQName.RightAnsSymbJSLoc; + var wrongAnsSymb=% +(typeof oQName.WrongAnsSymbJSLoc=="undefined")% +?\wrngAnsSymbJS:oQName.WrongAnsSymbJSLoc; + var corrAnsSymb=% +(typeof oQName.CorrAnsSymbJSLoc=="undefined")% +?\corrAnsSymbJS:oQName.CorrAnsSymbJSLoc; + var f = this.getField("mcq."+qtfield+"."+probno); + var fck = this.getField("mck."+qtfield+"."+probno); + var bMultiSelect = ( fck != null ) ? true : false; + f.delay=true; + this.resetForm([f.name]); + var a = f.getArray(); + var l = a.length; + if ( bMultiSelect ) { + var ack = fck.getArray(); + for ( var i=0; i 0 ) ? 1 : 0; + var retn = [ [ scoreThisProblem, passKey ], letterResponses ] ; + return retn; +} +function LimitSelection(n,fname,k) { + var f = this.getField(fname); + var g = f.getArray(); + var total=0; + for (var i=0; i n) { + eqAppAlert(\limSelWarningMsg,3); + f=this.getField(fname+"."+k); + f.checkThisBox(0,false); + return false + } else return true; +} +\end{newsegment} +\begin{newsegment}{Eq: Miscellaneous JS} +function chooseJSColor( b, c1, c2 ) { + return ( b ) ? c1 : c2; +} +function notifyField(success, flag, fieldname) { + if ( flag != 0 ) + return (success)?true:false; + var f = this.getField(fieldname); + var re=/^(obj|grpobj)\./; + var gname=fieldname.replace(re,"rbmarkup\."); + var g =this.getField(gname); + var isthereRBUP = ( g !=null ); + var h = fieldname.replace(re,""); + var index=h.indexOf("."); + var oQName = eval(h.substring(0,index)); + var rightColor=(typeof oQName.RightColorJSLoc=="undefined")% +?\rghtColorJS:oQName.RightColorJSLoc; + var rightSymb=(typeof oQName.RightColorJSLoc=="undefined")% +?\rghtAnsSymbJS:oQName.RightAnsSymbJSLoc; + var wrongColor=(typeof oQName.WrongColorJSLoc=="undefined")% +?\wrngColorJS:oQName.WrongColorJSLoc; + var wrongSymb=(typeof oQName.WrongAnsSymbJSLoc=="undefined")% +?\wrngAnsSymbJS:oQName.WrongAnsSymbJSLoc; + if (success) { + f.strokeColor = rightColor; + if (isthereRBUP) { + g.style = rightSymb; + g.textColor=rightColor; + g.display=display.visible; + } + return true; + } else { + updateTally.downState=false; + updateTally(fieldname); + f.strokeColor = wrongColor; +if (isthereRBUP) { + b2 = ( typeof oQName.WrongAnsSymbJSLoc == "undefined" ); + g.style = wrongSymb; + g.textColor=wrongColor; + g.display=display.visible; + } + return false; + } +// return null; // remove ? +} +function updateTally(fieldname) +{ + var objre = /^obj\./; + var grpre = /^grpobj\./; + if ( grpre.test(fieldname) ) { + fieldname = fieldname.replace(grpre,""); + var pos = fieldname.lastIndexOf("."); + fieldname = fieldname.substring(0,pos); + } else if ( objre.test(fieldname) ) + fieldname = fieldname.replace(objre,""); + var f = this.getField("tally."+fieldname); + if ( f != null ) { + if (!updateTally.downState) f.value += 1; + return true; + } else return false; + +} +var bNoPeekWait=false; +var oNoPeekTimer; +function noPeek(qtfield,rtnPage) +{ + if (!bNoPeekWait) { + if ( (typeof (aQuizControl[qtfield]) == "undefined") % +|| (aQuizControl[qtfield] != -1) ) { + bNoPeekWait=true; + oNoPeekTimer=app.setTimeOut("bNoPeekWait=false;% +app.clearTimeOut(oNoPeekTimer);",5); + this.pageNum = rtnPage-1; + \NoPeekAlert; + } + } else this.pageNum = rtnPage-1; +} +var oCB=\bcheckboxused +function OnBlurRespBox (retn) +{ + var qname = arguments[1]; + var oQName = eval(qname); + var respMsg; + var cTitle = "AcroTeX eDucation Bundle"; + if (retn != null) { + if ( typeof appAlerts[qname] == "undefined") + appAlerts[qname] = {bAfterValue: false, % +cMsg: "\doNotShowAgainMsg"}; + var respMsg = (retn) ? \eqsqrtmsg\space : \eqsqwgmsg; + if ( (event.target == this) || !oCB) + eqAppAlert({ cMsg: respMsg, nIcon: 3, cTitle: cTitle }); + else { + if ( ! appAlerts[arguments[1]].bAfterValue ) + eqAppAlert({ cMsg: respMsg, nIcon: 3, cTitle: cTitle, % +oCheckbox: appAlerts[qname]}); + } + } + else { + var re=/^(obj|grpobj)\./; + var gname=event.target.name.replace(re,"rbmarkup\."); + var g =this.getField(gname); + var isthereRBUP = ( g !=null ); + var str = event.target.value.toString(); + if (str.replace(/\s/g,"") == "") { + var defaultColor=% +(typeof oQName.DefaultColorJSLoc=="undefined")% +?color.black:oQName.DefaultColorJSLoc; + if (isthereRBUP) g.display=display.hidden; + event.target.strokeColor = defaultColor; + } + } +} +function jmpToNamedDest(fName,cDest,bAlert) { + if ( (typeof appAlerts[fName]!="undefined" % +&& appAlerts[fName].bAfterValue) || bAlert==0) + app.setTimeOut("this.gotoNamedDest(\""+cDest+"\")",500); + else + this.gotoNamedDest(cDest); +} +function lowThreshold(nQuestions) +{ + return true; +} +function highThreshold(nQuestions) +{ + var cnt=0; + for ( var i=0; i< Responses.length; i++ ) { + if ( typeof Responses[i]!="undefined") cnt++ + } + if ( cnt= nQuestions); +} +\end{newsegment} +\begin{newsegment}{Eq: Support for Grouped Questions} +function groupEval(doc,qtfield,probno,aKey,aWeights) +{ + var totalGrpPts = aWeights[0]; + var totalWeight = aWeights[1]; + for ( var i=1,total=0; i< aKey.length; i++ ) + if (aKey[i] != undefined) total += aKey[i]*aWeights[i+1]; + return total; +} +function WeightedEval(doc,qtfield,probno,aKey,aWeights) +{ + var f = doc.getField("grpobj." + qtfield + "." + probno); + var nGrpQno = f.getArray().length; + var totalGrpPts = aWeights[0]; + var totalWeight = aWeights[1]; + for ( var i=1,total=0; i < aKey.length; i++ ) + if (aKey[i] != undefined) total += aKey[i]*aWeights[i+1]; + total /= totalWeight; + total = Math.floor( total * totalGrpPts ); + return total; +} +function groupBernoulliEval(doc,qtfield,probno,aKey,aWeights) +{ + var f = doc.getField("grpobj." + qtfield + "." + probno); + var nGrpQno = f.getArray().length; + var totalGrpPts = aWeights[0]; + for ( var i=1,isCorrect=1; i<= nGrpQno; i++ ) + isCorrect *= (aKey[i] != undefined) ? (Number(aKey[i])) : 0; + return (isCorrect*totalGrpPts); +} +\end{newsegment} +\end{insDLJS*} +\endinput +%% +%% End of file `aebjs.def'. diff --git a/texmf-dist/tex/latex/acrotex/aebrandom.def b/texmf-dist/tex/latex/acrotex/aebrandom.def index 76ec48c1..d753e9b3 100644 --- a/texmf-dist/tex/latex/acrotex/aebrandom.def +++ b/texmf-dist/tex/latex/acrotex/aebrandom.def @@ -1,170 +1,170 @@ -%% -%% This is file `aebrandom.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,randomize') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{aebrandom.def} - [2018/03/21 v8.2.2 % - Exerquiz support for randomization (dps)] - \ifmakeExSlLocal\protect\endgroup^^J\fi -\@ifundefined{nextrandom}{\input{random.tex}}{} -\def\nextrandom{\begingroup - \ifnum\randomi<\@ne % then initialize with time - \global\randomi\time - \global\multiply\randomi388 \global\advance\randomi\year - \global\multiply\randomi31 \global\advance\randomi\day - \global\multiply\randomi97 \global\advance\randomi\month - \message{Randomizer initialized to \the\randomi.}% - \nextrandom \nextrandom \nextrandom - \xdef\InitSeedValue{\the\randomi}% - \fi - \count@ii\randomi - \divide\count@ii 127773 % modulus = multiplier * 127773 + 2836 - \count@\count@ii - \multiply\count@ii 127773 - \global\advance\randomi-\count@ii % random mod 127773 - \global\multiply\randomi 16807 - \multiply\count@ 2836 - \global\advance\randomi-\count@ - \ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi - \endgroup -} -\def\writeSeedToSolnFile{\writeToExSolns{\string\randomi=\the\randomi}} -\def\@ansChoices[#1]% -{% - \global\let\@tempholdSaveAns\@empty % 5/24 - \global\let\@tempholdSaveChoice\@empty % 5/24 - \global\let\bChoiceLabel\@empty % 5/24 - \ifeq@randomizeallChoices - \setkeys{bchoice}{#1,random=true}\else - \setkeys{bchoice}{#1}\fi - \global\eq@tabColCnt=0 - \ifeq@randomizeChoices\expandafter\@@bChoices - \else\expandafter\@@ansChoices\fi -} -\def\@@ansChoices{% - \ifnum\aeb@numCols=1 % list mode - \def\eq@next{\@layoutListAns}% - \else % tabular mode - \edef\eq@next{\noexpand\@layoutTabularAns{\bChoiceNumCols}}% - \fi - \eq@next -} -\newcount\aeb@numChoices -\newcount\aeb@ranChoice -\newtoks\aeb@hold\aeb@hold={} -\def\@@bChoices{\gdef\@temphold{}\gdef\@tempholdrandom{}% - \gdef\@tempholdfreeze{}\aeb@searchfortoken{\@getAns}% -} -\def\aeb@searchfortoken#1{% - \@ifnextchar\Ans{\advance\aeb@numChoices1\relax#1} - {\@ifnextchar\eFreeze{\expandafter\@getFreezeAns\@gobble} - {\@ifnextchar\par{\def\@@temp{\aeb@searchfortoken{#1}}% - \expandafter\@@temp\@gobble}{\@eChoices}}}% -} -\long\def\@getAns\Ans#1\eAns{% - \g@addto@macro\@temphold{{\Ans#1\eAns}}% - \aeb@searchfortoken{\@getAns}% -} -\def\@getFreezeAns{\aeb@searchfortoken{\@@getFreezeAns}} -\long\def\@@getFreezeAns\Ans#1\eAns{% - \g@addto@macro\@tempholdfreeze{\Ans#1\eAns}% - \aeb@searchfortoken{\@@getFreezeAns}% -} -\long\def\@eChoices#1\eChoices{% - \aeb@randomizeChoices{\the\aeb@numChoices}% -} -\def\aeb@randomizeChoices#1{% - \setrannum{\aeb@ranChoice}{1}{#1} - \count0=0 \aeb@hold=\expandafter{\@temphold}\def\@temphold{}% - \expandafter\@tfor\expandafter - \@temp\expandafter:\expandafter=\the\aeb@hold \do {% - \advance\count0by1 - \ifnum\count0=\aeb@ranChoice - \aeb@hold=\expandafter\expandafter\expandafter - {\expandafter\@tempholdrandom\@temp}% - \edef\@tempholdrandom{\the\aeb@hold}% - \else - \aeb@hold=\expandafter\expandafter\expandafter - {\expandafter\@temphold\expandafter{\@temp}}% - \edef\@temphold{\the\aeb@hold}% - \fi - }% - \aeb@numChoices=#1 - \advance\aeb@numChoices-1 - \ifnum\aeb@numChoices=0\relax - \def\aeb@next{\aeb@finishedRandomizing}\else - \def\aeb@next{\aeb@randomizeChoices{\the\aeb@numChoices}}\fi - \aeb@next -} -\def\aeb@finishedRandomizing{% - \aeb@hold=\expandafter\expandafter\expandafter - {\expandafter\@tempholdrandom\@tempholdfreeze}% - \gdef\@temphold{}\gdef\@tempholdrandom{}\gdef\@tempholdfreeze{}% - \edef\finished@Randomizing{% - \noexpand\@@ansChoices - \the\aeb@hold - \noexpand\eChoices}% - \finished@Randomizing -} -\def\saveRandomSeed{\PackageInfo{exerquiz} - {The command \string\saveRandomSeed\space - is deprecated.\MessageBreak Seed automatically saved}} -\@ifpackageloaded{ran_toks}{% - \let\inputRandomSeed\useLastAsSeed - \let\useRandomSeed\useThisSeed -}{% - \def\inputRandomSeed{\eq@readRandomData}% - \def\useRandomSeed#1{\saveseedfalse\randomi=#1}% -} -\def\InitSeedValue{\the\randomi} % dps -\@ifundefined{ifsaveseed}{\newif\ifsaveseed\saveseedtrue}{} % dps -\def\eq@writeRandomData -{% - \ifsaveseed - \@ifundefined{saveseedinfo}{\newwrite\saveseedinfo}{} - \immediate\openout \saveseedinfo \jobname_rt.sav - \let\verbatim@out\saveseedinfo - \def\eqrt@msgi{initializing seed value}% - \def\eqrt@msgii{last random number used}% - \uccode`c=`\%\uppercase{% - \immediate\write\verbatim@out - {\InitSeedValue\space c \eqrt@msgi}% - \immediate\write\verbatim@out - {\the\randomi\space c \eqrt@msgii}% - }\immediate\closeout\saveseedinfo - \fi -} -\AtEndDocument{\eq@writeRandomData} -\def\eq@readRandomData{\IfFileExists{\jobname_rt.sav}{% - \PackageInfo{exerquiz}{Inputting \jobname_rt.sav}% - \@ifundefined{readsavfile}{\newread\readsavfile}{}% - \openin\readsavfile=\jobname_rt.sav - \read\readsavfile to \InitSeedValue - \read\readsavfile to \eqlastRandomNum - \closein\readsavfile - \randomi=\eqlastRandomNum - \xdef\InitSeedValue{\the\randomi}% - \immediate\closeout\readsavfile -}{% - \PackageInfo{exerquiz}{\jobname_rt.sav cannot - be found, \MessageBreak - using the random initializer}% -}} -\endinput -%% -%% End of file `aebrandom.def'. +%% +%% This is file `aebrandom.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,randomize') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{aebrandom.def} + [2018/03/21 v8.2.2 % + Exerquiz support for randomization (dps)] + \ifmakeExSlLocal\protect\endgroup^^J\fi +\@ifundefined{nextrandom}{\input{random.tex}}{} +\def\nextrandom{\begingroup + \ifnum\randomi<\@ne % then initialize with time + \global\randomi\time + \global\multiply\randomi388 \global\advance\randomi\year + \global\multiply\randomi31 \global\advance\randomi\day + \global\multiply\randomi97 \global\advance\randomi\month + \message{Randomizer initialized to \the\randomi.}% + \nextrandom \nextrandom \nextrandom + \xdef\InitSeedValue{\the\randomi}% + \fi + \count@ii\randomi + \divide\count@ii 127773 % modulus = multiplier * 127773 + 2836 + \count@\count@ii + \multiply\count@ii 127773 + \global\advance\randomi-\count@ii % random mod 127773 + \global\multiply\randomi 16807 + \multiply\count@ 2836 + \global\advance\randomi-\count@ + \ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi + \endgroup +} +\def\writeSeedToSolnFile{\writeToExSolns{\string\randomi=\the\randomi}} +\def\@ansChoices[#1]% +{% + \global\let\@tempholdSaveAns\@empty % 5/24 + \global\let\@tempholdSaveChoice\@empty % 5/24 + \global\let\bChoiceLabel\@empty % 5/24 + \ifeq@randomizeallChoices + \setkeys{bchoice}{#1,random=true}\else + \setkeys{bchoice}{#1}\fi + \global\eq@tabColCnt=0 + \ifeq@randomizeChoices\expandafter\@@bChoices + \else\expandafter\@@ansChoices\fi +} +\def\@@ansChoices{% + \ifnum\aeb@numCols=1 % list mode + \def\eq@next{\@layoutListAns}% + \else % tabular mode + \edef\eq@next{\noexpand\@layoutTabularAns{\bChoiceNumCols}}% + \fi + \eq@next +} +\newcount\aeb@numChoices +\newcount\aeb@ranChoice +\newtoks\aeb@hold\aeb@hold={} +\def\@@bChoices{\gdef\@temphold{}\gdef\@tempholdrandom{}% + \gdef\@tempholdfreeze{}\aeb@searchfortoken{\@getAns}% +} +\def\aeb@searchfortoken#1{% + \@ifnextchar\Ans{\advance\aeb@numChoices1\relax#1} + {\@ifnextchar\eFreeze{\expandafter\@getFreezeAns\@gobble} + {\@ifnextchar\par{\def\@@temp{\aeb@searchfortoken{#1}}% + \expandafter\@@temp\@gobble}{\@eChoices}}}% +} +\long\def\@getAns\Ans#1\eAns{% + \g@addto@macro\@temphold{{\Ans#1\eAns}}% + \aeb@searchfortoken{\@getAns}% +} +\def\@getFreezeAns{\aeb@searchfortoken{\@@getFreezeAns}} +\long\def\@@getFreezeAns\Ans#1\eAns{% + \g@addto@macro\@tempholdfreeze{\Ans#1\eAns}% + \aeb@searchfortoken{\@@getFreezeAns}% +} +\long\def\@eChoices#1\eChoices{% + \aeb@randomizeChoices{\the\aeb@numChoices}% +} +\def\aeb@randomizeChoices#1{% + \setrannum{\aeb@ranChoice}{1}{#1} + \count0=0 \aeb@hold=\expandafter{\@temphold}\def\@temphold{}% + \expandafter\@tfor\expandafter + \@temp\expandafter:\expandafter=\the\aeb@hold \do {% + \advance\count0by1 + \ifnum\count0=\aeb@ranChoice + \aeb@hold=\expandafter\expandafter\expandafter + {\expandafter\@tempholdrandom\@temp}% + \edef\@tempholdrandom{\the\aeb@hold}% + \else + \aeb@hold=\expandafter\expandafter\expandafter + {\expandafter\@temphold\expandafter{\@temp}}% + \edef\@temphold{\the\aeb@hold}% + \fi + }% + \aeb@numChoices=#1 + \advance\aeb@numChoices-1 + \ifnum\aeb@numChoices=0\relax + \def\aeb@next{\aeb@finishedRandomizing}\else + \def\aeb@next{\aeb@randomizeChoices{\the\aeb@numChoices}}\fi + \aeb@next +} +\def\aeb@finishedRandomizing{% + \aeb@hold=\expandafter\expandafter\expandafter + {\expandafter\@tempholdrandom\@tempholdfreeze}% + \gdef\@temphold{}\gdef\@tempholdrandom{}\gdef\@tempholdfreeze{}% + \edef\finished@Randomizing{% + \noexpand\@@ansChoices + \the\aeb@hold + \noexpand\eChoices}% + \finished@Randomizing +} +\def\saveRandomSeed{\PackageInfo{exerquiz} + {The command \string\saveRandomSeed\space + is deprecated.\MessageBreak Seed automatically saved}} +\@ifpackageloaded{ran_toks}{% + \let\inputRandomSeed\useLastAsSeed + \let\useRandomSeed\useThisSeed +}{% + \def\inputRandomSeed{\eq@readRandomData}% + \def\useRandomSeed#1{\saveseedfalse\randomi=#1}% +} +\def\InitSeedValue{\the\randomi} % dps +\@ifundefined{ifsaveseed}{\newif\ifsaveseed\saveseedtrue}{} % dps +\def\eq@writeRandomData +{% + \ifsaveseed + \@ifundefined{saveseedinfo}{\newwrite\saveseedinfo}{} + \immediate\openout \saveseedinfo \jobname_rt.sav + \let\verbatim@out\saveseedinfo + \def\eqrt@msgi{initializing seed value}% + \def\eqrt@msgii{last random number used}% + \uccode`c=`\%\uppercase{% + \immediate\write\verbatim@out + {\InitSeedValue\space c \eqrt@msgi}% + \immediate\write\verbatim@out + {\the\randomi\space c \eqrt@msgii}% + }\immediate\closeout\saveseedinfo + \fi +} +\AtEndDocument{\eq@writeRandomData} +\def\eq@readRandomData{\IfFileExists{\jobname_rt.sav}{% + \PackageInfo{exerquiz}{Inputting \jobname_rt.sav}% + \@ifundefined{readsavfile}{\newread\readsavfile}{}% + \openin\readsavfile=\jobname_rt.sav + \read\readsavfile to \InitSeedValue + \read\readsavfile to \eqlastRandomNum + \closein\readsavfile + \randomi=\eqlastRandomNum + \xdef\InitSeedValue{\the\randomi}% + \immediate\closeout\readsavfile +}{% + \PackageInfo{exerquiz}{\jobname_rt.sav cannot + be found, \MessageBreak + using the random initializer}% +}} +\endinput +%% +%% End of file `aebrandom.def'. diff --git a/texmf-dist/tex/latex/acrotex/aebsumrytbls.def b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def index b345be1f..33f1f3ce 100644 --- a/texmf-dist/tex/latex/acrotex/aebsumrytbls.def +++ b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def @@ -1,256 +1,256 @@ -%% -%% This is file `aebsumrytbls.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,sumrytbls') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{aebsumrytbls.def} - [2018/03/21 v8.2.2 % - Exerquiz support for summary tables (dps)] - \ifmakeExSlLocal\protect\endgroup^^J\fi -\def\ccatCurrQzWith(#1){\currQuiz#1} -\def\pbPopulateSumTable{\pushButton[\W0\BG{}\BC{}\S{S}\autoCenter{n} - \TU{\thequestionno}\Ff{\FfReadOnly} - \AA{\AAPageVisible{try{popVisitsTbl("\currQuiz",\thequestionno)}% - catch(e){}}}]{\currQuiz activateSC}{0pt}{0pt}} -\def\pbDoNoCorrectSumryTbl{\makebox[0pt][l]{\pushButton[\F{\FHidden}]% - {\currQuiz NoCorrections}{0pt}{0pt}}} -\newcount\eq@rowcnt -\newcommand{\sumryTblQ}{Question} -\newcommand{\sumryTblR}{Responded} -\newcommand{\sumryTblP}{Page} -\define@key{smrytbl}{ntables}{% - \@tempcntb=#1 - \ifnum\@tempcntb<1 \@tempcntb=1 \fi - \ifnum\@tempcntb>3 \@tempcntb=3 \fi - \edef\smrytbl@ntables{\the\@tempcntb}% -} -\def\smrytbl@ntables{2} -\define@key{smrytbl}{showmarkup}[true]{% - \csname if#1\endcsname\eqshowmarkuptrue - \else\eqshowmarkupfalse\fi -} -\newif\ifsmrytbl@corrections\smrytbl@correctionstrue -\define@key{smrytbl}{nocorrections}[true]{% - \csname if#1\endcsname\smrytbl@correctionsfalse - \else\smrytbl@correctionstrue\fi -} -\define@key{smrytbl}{showOutOf}[true]{% - \csname if#1\endcsname\eqshowOutOftrue\def\stfmtType{OO}% - \gdef\showOutOfinSmryTbl{true}\let\stmarkupbox\relax - \else - \eqshowOutOffalse\let\stfmtType\@empty - \gdef\showOutOfinSmryTbl{false}% - \fi -} -\let\stfmtType\@empty -\define@key{smrytbl}{setDimens}[]{#1} -\def\showOutOfinSmryTbl{false} -\def\stmarkupbox{\makebox[0pt][l]} -\newcommand{\displaySumryTbl}[2][]{% - \begingroup\edef\currQuiz{#2}\edef\oField{#2}\edef\curr@quiz{#2}% - \setkeys{smrytbl}{#1}% - \count0=\smrytbl@ntables - \eq@rowcnt=0\relax\@tempcntb=\value{questionno}% - \ifnum\count\z@=2\relax - \divide\@tempcntb2\relax - \advance\@tempcntb\ifodd\value{questionno}2\else1\fi - \xdef\@beginSecCol{\the\@tempcntb}% - \advance\@tempcntb-1\relax - \fi - \ifnum\count\z@=3 - \edef\eq@n{\the\@tempcntb}% - \divide\@tempcntb\count\z@ - \edef\eq@q{\the\@tempcntb}% - \@tempcnta=\@tempcntb\multiply\@tempcnta3 - \edef\eq@p{\the\@tempcnta}% - \@tempcnta=\eq@n - \advance\@tempcnta-\eq@p\relax - \ifnum\@tempcnta=0 - \@tempcntb=\eq@q \advance\@tempcntb1 - \xdef\@beginSecCol{\the\@tempcntb}% - \advance\@tempcntb\eq@q\relax - \xdef\@beginThrdCol{\the\@tempcntb}% - \else\ifnum\@tempcnta=1 - \@tempcntb=\eq@q \advance\@tempcntb1 - \edef\nB@lCols{\the\@tempcntb}% - \advance\@tempcntb1\relax - \xdef\@beginSecCol{\the\@tempcntb}% - \advance\@tempcntb\eq@q\relax - \xdef\@beginThrdCol{\the\@tempcntb}% - \else\ifnum\@tempcnta=2 - \@tempcntb=\eq@q \advance\@tempcntb1 - \edef\nB@lCols{\the\@tempcntb}% - \advance\@tempcntb1 - \xdef\@beginSecCol{\the\@tempcntb}% - \advance\@tempcntb\nB@lCols - \xdef\@beginThrdCol{\the\@tempcntb}% - \fi\fi\fi - \@tempcntb=\eq@n - \fi - \let\@eqListExp\@@eqListExp - \eqQzQuesList - \endgroup -} -\def\eq@begintab{% - \begin{tabular}[t]{lcc}\sumryTblQ&\sumryTblR&\sumryTblP\\\sthline - {\Large\strut}% -} -\def\sthline{\hline} -\def\eq@endtab{\end{tabular}} -\def\sumrytblCkMUsep{\kern3bp} -\def\sumrytbllinkHook#1{#1} -\newcommand{\sumryTblProbFmt}[1]{\textbf{\textcolor{blue}{#1}}} -\newcommand{\sumrytablesep}{\space} -\def\stmarkupWidth{12bp}\def\stmarkupHeight{9bp}\def\stmarkupTextSize{0} -\def\st@scndclmn{% - \checkBox[\Ff{\FfReadOnly}]% - {\ccatCurrQzWith(SanityCheck).\the\eq@rowcnt}% - {\markupHeight}{\markupHeight}{Yes}\ifeqshowmarkup - \stmarkupbox{\sumrytblCkMUsep\textField[% - \Ff\FfReadOnly\BC{}\textColor{\pcMarkupColor}% - \textSize{\stmarkupTextSize}\autoCenter{n}% - ]{\ccatCurrQzWith(SanityCheck\stfmtType Pts).\the\eq@rowcnt}% - {\stmarkupWidth}{\stmarkupHeight}}\fi -} -\def\st@thrdclmn#1{% - \setLink[\linktxtcolor{\@linkcolor} - \A{\JS{this.pageNum=(#1-1)}}]{\sumrytbllinkHook{#1}}} -\def\@@eqListExp#1#2{\global\advance\eq@rowcnt1\relax - \ifnum\eq@rowcnt=1\relax - \pbPopulateSumTable\ifsmrytbl@corrections\else - \pbDoNoCorrectSumryTbl\fi\expandafter\eq@begintab\fi - \ifnum\count0>1 \ifnum\eq@rowcnt=\@beginSecCol\relax - \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab - \fi\fi - \ifnum\count0=3 \ifnum\eq@rowcnt=\@beginThrdCol\relax - \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab - \fi\fi - \sumryTblProbFmt{#1}&\st@scndclmn&\st@thrdclmn{#2}\\[1bp] - \ifnum\eq@rowcnt=\thequestionno\relax\expandafter\eq@endtab\fi -} -\def\writeProListAux{% - \eq@IWAuxOut{\string\expandafter\string\gdef - \string\csname\space\currQuiz QzQuesList\string\endcsname - {\eqQzQuesList}}% - \eq@IWAuxOut{\string\expandafter\string\gdef - \string\csname\space\currQuiz nQuestions\string\endcsname - {\thequestionno}}% -} -\def\setParamSumryTblAux{% - \edef\eqQzQuesList{\@nameuse{\currQuiz QzQuesList}}% - \@ifundefined{\currQuiz nQuestions}{}{% - \value{questionno}=\@nameuse{\currQuiz nQuestions}}% -} -\newenvironment{sumryTblAux}[1]{% - \DeclareQuiz{#1}\setParamSumryTblAux}{}% -\begin{insDLJS}[correctSumryTbl]{sumtbljs}{Eq: Populate Summary Table} -function correctSumryTbl(qtfield,nQuestions) { - var oQName=eval(qtfield); - var rightColor=(typeof oQName.RightColorJSLoc=="undefined")% -?\rghtColorJS:oQName.RightColorJSLoc; - var wrongColor=(typeof oQName.WrongColorJSLoc=="undefined")% -?\wrngColorJS:oQName.WrongColorJSLoc; - var partialColor=(typeof oQName.PartialColorJSLoc=="undefined")% -?\partialColorJS:oQName.PartialColorJSLoc; - var sc=this.getField(qtfield+"SanityCheck"); - var nc=this.getField(qtfield+"NoCorrections"); - if (sc != null && nc == null ) { - for (var i=0; i 0 )?% -partialColor:wrongColor; - else cb.strokeColor=wrongColor; // obj q - continue; - } - // either multiple selection or grouped math - if ( RightWrong[i+1][0] == "grp" ) { - // grouped question - var f = this.getField("grpobj."+qtfield+"."+(i+1)); - var l = f.getArray().length; - // is this right? - for (var sum=0, j=1; j<=l; j++) - sum+=(!!RightWrong[i+1][j]); - if ( sum == l ) cb.strokeColor=["RGB", 0, .6, 0]; - else cb.strokeColor=( sum > 0 )?% -partialColor:wrongColor; - continue; - } - // multiple selection - if ( RightWrong[i+1][0] == 1 ) cb.strokeColor=rightColor; - else cb.strokeColor=(RightWrong[i+1][1]== 1)?% -partialColor:wrongColor; - } - } - var f1=this.getField(qtfield+"SanityCheckPts"); - var f2=this.getField(qtfield+"SanityCheckOOPts"); - var h=this.getField(qtfield+"activateSC"); - if ( f1 != null ) { - for ( var i = 1; i <= nQuestions; i++) { - if ( ProbValue[i] == undefined ) ProbValue[i]=0 - // find the next non-null field - var g=this.getField(qtfield+"SanityCheckPts."+i); - var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i]; - var thesePts= qpts + (( qpts == 1 )?% -" \eqptLabel":" \eqptsLabel"); - g.value = thesePts; - } - } - if ( f2 != null ) { - for ( var i = 1; i <= nQuestions; i++) { - if ( ProbValue[i] == undefined ) ProbValue[i]=0 - // find the next non-null field - var g=this.getField(qtfield+"SanityCheckOOPts."+i); - var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i]; - var ptValue = oQName.PtValues[i]; - var probPts = ptValue + (( ptValue == 1 )?% -" \eqptLabel":" \eqptsLabel"); - g.value = qpts +" \stOutOf\space"+probPts; - } - } -} -function popVisitsTbl(qtfield,nQuestions) { - if ( aQuizControl[qtfield] == 1) { - this.resetForm([qtfield+"SanityCheck"]); - for ( var i=0; i < nQuestions; i++ ) { - var f=this.getField(qtfield+"SanityCheck."+(i+1)); - f.checkThisBox(0,(typeof Responses[i+1]!="undefined")); - } - } -} -function fieldPopTbl(qtfield) { - var f=this.getField(qtfield+"activateSC"); - if ( f != null) { - var n=Number(f.userName); - var a = [ qtfield, n ]; - popVisitsTbl.apply(null,a); - } -} -\end{insDLJS} -\endinput -%% -%% End of file `aebsumrytbls.def'. +%% +%% This is file `aebsumrytbls.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,sumrytbls') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{aebsumrytbls.def} + [2018/03/21 v8.2.2 % + Exerquiz support for summary tables (dps)] + \ifmakeExSlLocal\protect\endgroup^^J\fi +\def\ccatCurrQzWith(#1){\currQuiz#1} +\def\pbPopulateSumTable{\pushButton[\W0\BG{}\BC{}\S{S}\autoCenter{n} + \TU{\thequestionno}\Ff{\FfReadOnly} + \AA{\AAPageVisible{try{popVisitsTbl("\currQuiz",\thequestionno)}% + catch(e){}}}]{\currQuiz activateSC}{0pt}{0pt}} +\def\pbDoNoCorrectSumryTbl{\makebox[0pt][l]{\pushButton[\F{\FHidden}]% + {\currQuiz NoCorrections}{0pt}{0pt}}} +\newcount\eq@rowcnt +\newcommand{\sumryTblQ}{Question} +\newcommand{\sumryTblR}{Responded} +\newcommand{\sumryTblP}{Page} +\define@key{smrytbl}{ntables}{% + \@tempcntb=#1 + \ifnum\@tempcntb<1 \@tempcntb=1 \fi + \ifnum\@tempcntb>3 \@tempcntb=3 \fi + \edef\smrytbl@ntables{\the\@tempcntb}% +} +\def\smrytbl@ntables{2} +\define@key{smrytbl}{showmarkup}[true]{% + \csname if#1\endcsname\eqshowmarkuptrue + \else\eqshowmarkupfalse\fi +} +\newif\ifsmrytbl@corrections\smrytbl@correctionstrue +\define@key{smrytbl}{nocorrections}[true]{% + \csname if#1\endcsname\smrytbl@correctionsfalse + \else\smrytbl@correctionstrue\fi +} +\define@key{smrytbl}{showOutOf}[true]{% + \csname if#1\endcsname\eqshowOutOftrue\def\stfmtType{OO}% + \gdef\showOutOfinSmryTbl{true}\let\stmarkupbox\relax + \else + \eqshowOutOffalse\let\stfmtType\@empty + \gdef\showOutOfinSmryTbl{false}% + \fi +} +\let\stfmtType\@empty +\define@key{smrytbl}{setDimens}[]{#1} +\def\showOutOfinSmryTbl{false} +\def\stmarkupbox{\makebox[0pt][l]} +\newcommand{\displaySumryTbl}[2][]{% + \begingroup\edef\currQuiz{#2}\edef\oField{#2}\edef\curr@quiz{#2}% + \setkeys{smrytbl}{#1}% + \count0=\smrytbl@ntables + \eq@rowcnt=0\relax\@tempcntb=\value{questionno}% + \ifnum\count\z@=2\relax + \divide\@tempcntb2\relax + \advance\@tempcntb\ifodd\value{questionno}2\else1\fi + \xdef\@beginSecCol{\the\@tempcntb}% + \advance\@tempcntb-1\relax + \fi + \ifnum\count\z@=3 + \edef\eq@n{\the\@tempcntb}% + \divide\@tempcntb\count\z@ + \edef\eq@q{\the\@tempcntb}% + \@tempcnta=\@tempcntb\multiply\@tempcnta3 + \edef\eq@p{\the\@tempcnta}% + \@tempcnta=\eq@n + \advance\@tempcnta-\eq@p\relax + \ifnum\@tempcnta=0 + \@tempcntb=\eq@q \advance\@tempcntb1 + \xdef\@beginSecCol{\the\@tempcntb}% + \advance\@tempcntb\eq@q\relax + \xdef\@beginThrdCol{\the\@tempcntb}% + \else\ifnum\@tempcnta=1 + \@tempcntb=\eq@q \advance\@tempcntb1 + \edef\nB@lCols{\the\@tempcntb}% + \advance\@tempcntb1\relax + \xdef\@beginSecCol{\the\@tempcntb}% + \advance\@tempcntb\eq@q\relax + \xdef\@beginThrdCol{\the\@tempcntb}% + \else\ifnum\@tempcnta=2 + \@tempcntb=\eq@q \advance\@tempcntb1 + \edef\nB@lCols{\the\@tempcntb}% + \advance\@tempcntb1 + \xdef\@beginSecCol{\the\@tempcntb}% + \advance\@tempcntb\nB@lCols + \xdef\@beginThrdCol{\the\@tempcntb}% + \fi\fi\fi + \@tempcntb=\eq@n + \fi + \let\@eqListExp\@@eqListExp + \eqQzQuesList + \endgroup +} +\def\eq@begintab{% + \begin{tabular}[t]{lcc}\sumryTblQ&\sumryTblR&\sumryTblP\\\sthline + {\Large\strut}% +} +\def\sthline{\hline} +\def\eq@endtab{\end{tabular}} +\def\sumrytblCkMUsep{\kern3bp} +\def\sumrytbllinkHook#1{#1} +\newcommand{\sumryTblProbFmt}[1]{\textbf{\textcolor{blue}{#1}}} +\newcommand{\sumrytablesep}{\space} +\def\stmarkupWidth{12bp}\def\stmarkupHeight{9bp}\def\stmarkupTextSize{0} +\def\st@scndclmn{% + \checkBox[\Ff{\FfReadOnly}]% + {\ccatCurrQzWith(SanityCheck).\the\eq@rowcnt}% + {\markupHeight}{\markupHeight}{Yes}\ifeqshowmarkup + \stmarkupbox{\sumrytblCkMUsep\textField[% + \Ff\FfReadOnly\BC{}\textColor{\pcMarkupColor}% + \textSize{\stmarkupTextSize}\autoCenter{n}% + ]{\ccatCurrQzWith(SanityCheck\stfmtType Pts).\the\eq@rowcnt}% + {\stmarkupWidth}{\stmarkupHeight}}\fi +} +\def\st@thrdclmn#1{% + \setLink[\linktxtcolor{\@linkcolor} + \A{\JS{this.pageNum=(#1-1)}}]{\sumrytbllinkHook{#1}}} +\def\@@eqListExp#1#2{\global\advance\eq@rowcnt1\relax + \ifnum\eq@rowcnt=1\relax + \pbPopulateSumTable\ifsmrytbl@corrections\else + \pbDoNoCorrectSumryTbl\fi\expandafter\eq@begintab\fi + \ifnum\count0>1 \ifnum\eq@rowcnt=\@beginSecCol\relax + \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab + \fi\fi + \ifnum\count0=3 \ifnum\eq@rowcnt=\@beginThrdCol\relax + \eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab + \fi\fi + \sumryTblProbFmt{#1}&\st@scndclmn&\st@thrdclmn{#2}\\[1bp] + \ifnum\eq@rowcnt=\thequestionno\relax\expandafter\eq@endtab\fi +} +\def\writeProListAux{% + \eq@IWAuxOut{\string\expandafter\string\gdef + \string\csname\space\currQuiz QzQuesList\string\endcsname + {\eqQzQuesList}}% + \eq@IWAuxOut{\string\expandafter\string\gdef + \string\csname\space\currQuiz nQuestions\string\endcsname + {\thequestionno}}% +} +\def\setParamSumryTblAux{% + \edef\eqQzQuesList{\@nameuse{\currQuiz QzQuesList}}% + \@ifundefined{\currQuiz nQuestions}{}{% + \value{questionno}=\@nameuse{\currQuiz nQuestions}}% +} +\newenvironment{sumryTblAux}[1]{% + \DeclareQuiz{#1}\setParamSumryTblAux}{}% +\begin{insDLJS}[correctSumryTbl]{sumtbljs}{Eq: Populate Summary Table} +function correctSumryTbl(qtfield,nQuestions) { + var oQName=eval(qtfield); + var rightColor=(typeof oQName.RightColorJSLoc=="undefined")% +?\rghtColorJS:oQName.RightColorJSLoc; + var wrongColor=(typeof oQName.WrongColorJSLoc=="undefined")% +?\wrngColorJS:oQName.WrongColorJSLoc; + var partialColor=(typeof oQName.PartialColorJSLoc=="undefined")% +?\partialColorJS:oQName.PartialColorJSLoc; + var sc=this.getField(qtfield+"SanityCheck"); + var nc=this.getField(qtfield+"NoCorrections"); + if (sc != null && nc == null ) { + for (var i=0; i 0 )?% +partialColor:wrongColor; + else cb.strokeColor=wrongColor; // obj q + continue; + } + // either multiple selection or grouped math + if ( RightWrong[i+1][0] == "grp" ) { + // grouped question + var f = this.getField("grpobj."+qtfield+"."+(i+1)); + var l = f.getArray().length; + // is this right? + for (var sum=0, j=1; j<=l; j++) + sum+=(!!RightWrong[i+1][j]); + if ( sum == l ) cb.strokeColor=["RGB", 0, .6, 0]; + else cb.strokeColor=( sum > 0 )?% +partialColor:wrongColor; + continue; + } + // multiple selection + if ( RightWrong[i+1][0] == 1 ) cb.strokeColor=rightColor; + else cb.strokeColor=(RightWrong[i+1][1]== 1)?% +partialColor:wrongColor; + } + } + var f1=this.getField(qtfield+"SanityCheckPts"); + var f2=this.getField(qtfield+"SanityCheckOOPts"); + var h=this.getField(qtfield+"activateSC"); + if ( f1 != null ) { + for ( var i = 1; i <= nQuestions; i++) { + if ( ProbValue[i] == undefined ) ProbValue[i]=0 + // find the next non-null field + var g=this.getField(qtfield+"SanityCheckPts."+i); + var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i]; + var thesePts= qpts + (( qpts == 1 )?% +" \eqptLabel":" \eqptsLabel"); + g.value = thesePts; + } + } + if ( f2 != null ) { + for ( var i = 1; i <= nQuestions; i++) { + if ( ProbValue[i] == undefined ) ProbValue[i]=0 + // find the next non-null field + var g=this.getField(qtfield+"SanityCheckOOPts."+i); + var qpts=(ProbDist[i]==undefined) ? 0 : ProbDist[i]; + var ptValue = oQName.PtValues[i]; + var probPts = ptValue + (( ptValue == 1 )?% +" \eqptLabel":" \eqptsLabel"); + g.value = qpts +" \stOutOf\space"+probPts; + } + } +} +function popVisitsTbl(qtfield,nQuestions) { + if ( aQuizControl[qtfield] == 1) { + this.resetForm([qtfield+"SanityCheck"]); + for ( var i=0; i < nQuestions; i++ ) { + var f=this.getField(qtfield+"SanityCheck."+(i+1)); + f.checkThisBox(0,(typeof Responses[i+1]!="undefined")); + } + } +} +function fieldPopTbl(qtfield) { + var f=this.getField(qtfield+"activateSC"); + if ( f != null) { + var n=Number(f.userName); + var a = [ qtfield, n ]; + popVisitsTbl.apply(null,a); + } +} +\end{insDLJS} +\endinput +%% +%% End of file `aebsumrytbls.def'. diff --git a/texmf-dist/tex/latex/acrotex/altadbfncs.def b/texmf-dist/tex/latex/acrotex/altadbfncs.def index f277e2b7..149a6466 100644 --- a/texmf-dist/tex/latex/acrotex/altadbfncs.def +++ b/texmf-dist/tex/latex/acrotex/altadbfncs.def @@ -1,41 +1,41 @@ -%% -%% This is file `altadbfncs.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% insdljs.dtx (with options: `copyright,altadbfncs') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% insdljs.sty package, %% -%% Copyright (C) 2001-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{insDLJS}{altadbfncs}{eforms: Alternate Adobe Function Names} -var EFNumber_Keystroke=AFNumber_Keystroke; -var EFNumber_Format=AFNumber_Format; -var EFPercent_Keystroke=AFPercent_Keystroke; -var EFPercent_Format=AFPercent_Format; -var EFDate_Format=AFDate_Format; -var EFDate_Keystroke=AFDate_Keystroke; -var EFDate_FormatEx=AFDate_FormatEx; -var EFTime_Keystroke=AFTime_Keystroke; -var EFTime_Format=AFTime_Format; -var EFTime_FormatEx=AFTime_FormatEx; -var EFDate_KeystrokeEx=AFDate_KeystrokeEx; -var EFSpecial_Keystroke=AFSpecial_Keystroke; -var EFSpecial_Format=AFSpecial_Format; -var EFSpecial_KeystrokeEx=AFSpecial_KeystrokeEx; -var EFRange_Validate=AFRange_Validate; -var EFSimple_Calculate=AFSimple_Calculate; -var EFMergeChange=AFMergeChange; -\end{insDLJS} -\endinput -%% -%% End of file `altadbfncs.def'. +%% +%% This is file `altadbfncs.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% insdljs.dtx (with options: `copyright,altadbfncs') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% insdljs.sty package, %% +%% Copyright (C) 2001-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{insDLJS}{altadbfncs}{eforms: Alternate Adobe Function Names} +var EFNumber_Keystroke=AFNumber_Keystroke; +var EFNumber_Format=AFNumber_Format; +var EFPercent_Keystroke=AFPercent_Keystroke; +var EFPercent_Format=AFPercent_Format; +var EFDate_Format=AFDate_Format; +var EFDate_Keystroke=AFDate_Keystroke; +var EFDate_FormatEx=AFDate_FormatEx; +var EFTime_Keystroke=AFTime_Keystroke; +var EFTime_Format=AFTime_Format; +var EFTime_FormatEx=AFTime_FormatEx; +var EFDate_KeystrokeEx=AFDate_KeystrokeEx; +var EFSpecial_Keystroke=AFSpecial_Keystroke; +var EFSpecial_Format=AFSpecial_Format; +var EFSpecial_KeystrokeEx=AFSpecial_KeystrokeEx; +var EFRange_Validate=AFRange_Validate; +var EFSimple_Calculate=AFSimple_Calculate; +var EFMergeChange=AFMergeChange; +\end{insDLJS} +\endinput +%% +%% End of file `altadbfncs.def'. diff --git a/texmf-dist/tex/latex/acrotex/dljscc.def b/texmf-dist/tex/latex/acrotex/dljscc.def index 6d9ee746..55f0b491 100644 --- a/texmf-dist/tex/latex/acrotex/dljscc.def +++ b/texmf-dist/tex/latex/acrotex/dljscc.def @@ -1,76 +1,76 @@ -%% -%% This is file `dljscc.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% insdljs.dtx (with options: `copyright,cc4js') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% insdljs.sty package, %% -%% Copyright (C) 2001-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\r{\eqesc r\ckivspace} -\def\t{\eqesc t\ckivspace} -\def\n{\eqesc n\ckivspace} -\def\f{\eqesc f\ckivspace} -\def\v{\eqesc v\ckivspace} -\def\b{\eqesc b\ckivspace} -\def\B{\eqesc B\ckivspace} -\def\d{\eqesc d\ckivspace} -\def\D{\eqesc D\ckivspace} -\def\s{\eqesc s\ckivspace} -\def\S{\eqesc S\ckivspace} -\def\w{\eqesc w\ckivspace} -\def\W{\eqesc W\ckivspace} -\begingroup -\catcode`\:=12\relax -\dljstfor\dlhex:={AA}{AB}{AC}{AD}{AE}{AF}% - {BA}{BB}{BC}{BD}{BE}{BF}{CA}{CB}{CC}{CD}{CE}{CF}% - {DA}{DB}{DC}{DD}{DE}{DF}{EA}{EB}{EC}{ED}{EE}{EF}% - {FA}{FB}{FC}{FD}{FE}{FF}\do{% - \expandafter\xdef\csname x\dlhex\endcsname{\noexpand\eqesc x\dlhex}% -} -\endgroup -\def\u{\eqesc u\ckivspace} -\def\0{\eqesc0} -\def\1{\eqesc1} -\def\2{\eqesc2} -\def\3{\eqesc3} -\definebraces -\def\({\eqesc\eqesci(} -\def\){\eqesc\eqesci)} -\def\.{\eqesc.} -\def\/{\eqesc/} -\def\[{\eqesc[} -\def\]{\eqesc]} -\def\|{\eqesc|} -\def\+{\eqesc+} -\def\*{\eqesc*} -\def\-{\eqesc-} -\def\?{\eqesc?} -\def\${\eqesc$} -\def\^{\eqesc^} -\def\\{\eqesc\eqesc} -\def\'{\eqesc'} -\catcode`\"=12 -\def\"{\eqesc"} -\catcode`\<=12 -\def\<{\eqesc<} -\catcode`\>=12 -\def\>{\eqesc>} -\catcode`\%=12 -\def\%{%} -\catcode`\%=14 -\catcode`\& = 12 -\def\&{\eqesc&} -\endinput -%% -%% End of file `dljscc.def'. +%% +%% This is file `dljscc.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% insdljs.dtx (with options: `copyright,cc4js') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% insdljs.sty package, %% +%% Copyright (C) 2001-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\r{\eqesc r\ckivspace} +\def\t{\eqesc t\ckivspace} +\def\n{\eqesc n\ckivspace} +\def\f{\eqesc f\ckivspace} +\def\v{\eqesc v\ckivspace} +\def\b{\eqesc b\ckivspace} +\def\B{\eqesc B\ckivspace} +\def\d{\eqesc d\ckivspace} +\def\D{\eqesc D\ckivspace} +\def\s{\eqesc s\ckivspace} +\def\S{\eqesc S\ckivspace} +\def\w{\eqesc w\ckivspace} +\def\W{\eqesc W\ckivspace} +\begingroup +\catcode`\:=12\relax +\dljstfor\dlhex:={AA}{AB}{AC}{AD}{AE}{AF}% + {BA}{BB}{BC}{BD}{BE}{BF}{CA}{CB}{CC}{CD}{CE}{CF}% + {DA}{DB}{DC}{DD}{DE}{DF}{EA}{EB}{EC}{ED}{EE}{EF}% + {FA}{FB}{FC}{FD}{FE}{FF}\do{% + \expandafter\xdef\csname x\dlhex\endcsname{\noexpand\eqesc x\dlhex}% +} +\endgroup +\def\u{\eqesc u\ckivspace} +\def\0{\eqesc0} +\def\1{\eqesc1} +\def\2{\eqesc2} +\def\3{\eqesc3} +\definebraces +\def\({\eqesc\eqesci(} +\def\){\eqesc\eqesci)} +\def\.{\eqesc.} +\def\/{\eqesc/} +\def\[{\eqesc[} +\def\]{\eqesc]} +\def\|{\eqesc|} +\def\+{\eqesc+} +\def\*{\eqesc*} +\def\-{\eqesc-} +\def\?{\eqesc?} +\def\${\eqesc$} +\def\^{\eqesc^} +\def\\{\eqesc\eqesc} +\def\'{\eqesc'} +\catcode`\"=12 +\def\"{\eqesc"} +\catcode`\<=12 +\def\<{\eqesc<} +\catcode`\>=12 +\def\>{\eqesc>} +\catcode`\%=12 +\def\%{%} +\catcode`\%=14 +\catcode`\& = 12 +\def\&{\eqesc&} +\endinput +%% +%% End of file `dljscc.def'. diff --git a/texmf-dist/tex/latex/acrotex/dljslib.sty b/texmf-dist/tex/latex/acrotex/dljslib.sty index 67f0867b..bad34c8f 100644 --- a/texmf-dist/tex/latex/acrotex/dljslib.sty +++ b/texmf-dist/tex/latex/acrotex/dljslib.sty @@ -1,1741 +1,1741 @@ -%% -%% This is file `dljslib.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% dljslib.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% dljsLib.sty package, %% -%% Copyright (C) 2001-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Projet Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{dljslib} - [2017/08/11 v2.1 Manage a Library of Document Level JavaScripts (dps)] -\newcommand\dljsRegister[2][n] - {\expandafter\let\csname checkout@#2\endcsname=#1} -\def\@ifcheckedout#1{\expandafter\if\csname checkout@#1\endcsname y} -\newcommand\DeclareAndRegister[1] - {\DeclareOption{#1}{\dljsRegister[y]{#1}}\dljsRegister{#1}} -\dljsRegister[y]{dljslib} -\DeclareAndRegister{equations} -\DeclareAndRegister{vectors} -\DeclareAndRegister{indefIntegral} -\DeclareAndRegister{ImplMulti} -\DeclareAndRegister{nodec} -\DeclareAndRegister{noBinFac} -\DeclareAndRegister{limitArith} -\DeclareAndRegister{combinatorics} -\DeclareAndRegister{setSupport} -\DeclareOption{unordered}{\PackageWarning{dljslib} - {The `unordered' option is now combined with the\MessageBreak - `setSupport' option, will use the `setSupport' option\MessageBreak - instead}\ExecuteOptions{setSupport}} -\DeclareAndRegister{complex} -\DeclareAndRegister{satisfyEq} -\DeclareAndRegister{useGermanNums} -\DeclareAndRegister{factors} -\DeclareAndRegister{point} -\DeclareAndRegister{intervals} -\def\includeOptions#1{\@for\@option:=#1\do{\dljsRegister[y]{\@option}}} -\InputIfFileExists{libcusopt.opt}{}{} -\ProcessOptions -\RequirePackage{exerquiz}[2017/08/04] -\RequirePackage{insdljs} -\def\setdecimalpoint#1{\def\aebdecimalpoint{\eqbs#1}} -\setdecimalpoint{.} -\newwrite\dljslib@verbatim@out -\immediate\openout\dljslib@verbatim@out=dljslib.ljs -\newenvironment{library@holding}[1] -{% - \expandafter\ifx\csname checkout@#1\endcsname y% - \let\js@verbatim@out\dljslib@verbatim@out - \let\dljs@verbatim\js@verbatimwrite - \let\enddljs@verbatim\endjs@verbatimwrite\else - \let\dljs@verbatim\comment - \let\enddljs@verbatim\endcomment\fi\dljs@verbatim -}{\enddljs@verbatim} -\begin{library@holding}{dljslib} -\begin{insDLJS*}[dljslib]{dljslib} -\begin{newsegment}{dljslib: AcroTeX DLJS Library} -/* - The Document Level JavaScript Library - D. P. Story copyright 2001-\the\year -*/ -var dljslib = true; -\end{newsegment} -\end{library@holding} -\@ifcheckedout{equations} -\newcommand\equationsAlertMsg{"An equation is expected"} -\fi -\begin{library@holding}{equations} -\begin{newsegment}{dljslib: Equation Handling} -function ProcRespEq(flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - if (!ProcessIt) return null; - ok2Continue = true; - var success; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - var CorrExpressions = CorrAns.split("="); - var zCorrAns = "("+CorrExpressions[0]+")-("+CorrExpressions[1] +")"; - UserAns = stripWhiteSpace (UserAns); - if(!ok2Continue ) return null; - if (!/[=]/.test(UserAns)) { - eqAppAlert(\equationsAlertMsg, 3); - return null; - } - var reComma=/,/; - if ( reComma.test(UserAns) ) { - eqAppAlert(\eqSyntaxErrorComma,3); - return null; - } - var UserExpressions = UserAns.split("="); - var zUserAns = "("+UserExpressions[0]+")-("+UserExpressions[1] +")"; - - var comp = ( typeof oComp == "object" ) ? - (typeof oComp.comp == "undefined" ) ? - diffCompare : oComp.comp : oComp; - if ( typeof oComp == "object" - && typeof oComp.priorParse != "undefined" ) { - if ( typeof oComp.priorParse == "object" ) { - for ( var i=0; i < oComp.priorParse.length; i++) { - var retn = oComp.priorParse[i](zUserAns); - if ( retn == null ) return null; - } - } else { - var retn = oComp.priorParse(zUserAns); - if ( retn == null ) return null; - } - } - zCorrAns = ParseInput(zCorrAns); - if (!ok2Continue) { - eqAppAlert("Syntax error in author's answer! Check console.", 3); - console.println("Syntax Error: " + CorrAns); - return null; - } - zUserAns = ParseInput(zUserAns); - if (!ok2Continue) return null; - indepVars = TypeParameters(indepVars); - var lambda = getNonZeroRatio (domain, indepVars, zCorrAns, zUserAns); - if ( lambda == null ) { - eqAppAlert(\eqSyntaxErrorUndefVar,3); return null; }; - if ( !ok2Continue ) return notifyField(false, flag, fieldname); - zCorrAns = lambda + "*(" + zCorrAns + ")"; - success=randomPointCompare (n,domain,indepVars,epsilon, - zCorrAns,zUserAns,comp) - if ( success == null ) { eqAppAlert(\eqSyntaxErrorUndefVar,3); - return null; } - return notifyField(success, flag, fieldname); -} -function getNonZeroRatio (_a, _v, _F, _G) -{ - var _i, _j; - var aXY = new Array(); - _a = _a.replace(/[\[\]\s]/g, ""); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = _V.length; - var aIntervals = _a.split("&"); - var aInterval = aIntervals[0].split("x"); - var endpoints = aInterval[0].split(","); - for (_j=0; _j < 4; _j++) { - for (_i = 0; _i < _n; _i++) { - var endpoints = aInterval[_i].split(","); - aXY[_i] = endpoints[0]-0 - +(endpoints[1]-endpoints[0])*Math.random(); -\db console.println("aXY["+_i+"] = " + aXY[_i]);\db% - } - for (var _i = 0; _i< _n; _i++) { - if (_V[_i].charAt(0) == "r" ) - eval ( "var "+ _V[_i].charAt(2) - + " = " + aXY[_i] + ";"); - else // assume type "i" - eval ( "var "+ _V[_i].charAt(2) - + " = " + Math.ceil(aXY[_i]) + ";"); - } - _F = eval(_F); - if ( app.viewerVersion >= 5) - { - var rtnCode = 0; - eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" - +"catch (e) { rtnCode=1; }"); - switch(rtnCode) { - case 0: break; - case 1: return null; - case -1: ok2Continue=false; - return -1; - } - } - else - if(isNaN(_G=eval(_G))) {ok2Continue=false;return -1;} - if ( _F != 0 && _G != 0 ) return _G/_F; - } - console.println( "Can't find a non zero scalar"); - return null; -} -\end{newsegment} -\end{library@holding} -\@ifcheckedout{vectors} -\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."} -\def\vectorEmptyCompMsgiv(#1){"You entered nothing for the - component " +(#1+1) +" of your answer. Please enter - a component for the vector."} -\fi -\begin{library@holding}{vectors} -\begin{newsegment}{dljslib: Vector Handling} -function ProcVec (flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - if (!ProcessIt) return null; - ok2Continue = true; - var i, success, truthCnt=1; - var aScalar, scalar = 1; - var fieldname = event.target.name; - var UserAns = event.value; - UserAns = stripWhiteSpace(UserAns); // sets ok2Continue - CorrAns = stripWhiteSpace(CorrAns); - if ( !ok2Continue ) return null; - var isSpecResp=false; - for ( var i=0; i]/.test(UserAns)) { - eqAppAlert(\vectorsErrorMsgi, 3); - return null; - } - if (!CkBalP(UserAns,"<",">")) { - eqAppAlert(\vectorsErrorMsgii, 3); - return null; - } - // see if there is a scalar multiple to the left of '<' - aScalar = UserAns.match(/(.*)(\*)(\s*<)/); - if (aScalar != null) { - scalar = aScalar[1]; - UserAns = UserAns.slice(aScalar.index + aScalar[0].length-1) - } - var comp = ( typeof oComp == "object" ) ? - (typeof oComp.comp == "undefined" ) ? - diffCompare : oComp.comp : oComp; - CorrAns = CorrAns.replace(/[<>]/g, ""); // strip of < and > - UserAns = UserAns.replace(/[<>]/g, ""); - if ( typeof oComp == "object" && % -typeof oComp.priorParse != "undefined" ) { - var retn=processSpecialParse(oComp.priorParse,UserAns); - if (retn==null) return null; - } - aUserAns = UserAns.split(","); - aCorrAns = CorrAns.split(","); - if (scalar != 1) - for (i=0; i)."} -\fi -\begin{library@holding}{setSupport} -\begin{newsegment}{dljslib: Support for Sets} -function ProcRespSetNum(flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); - if (!ok2Continue) return null; - var isSpecResp=false; - for ( var i=0; i$/.test(UserAns) ) { - ok2format=false; - return eqAppAlert(\noBracketsInAnsMsg,3), null; - } - else return true; -} -function formatAsVector() { - if (ok2format&&event.value.replace(/\\s/g,"") != "") { - event.value = "< " + event.value + " >"; - } -} -function ProcRespSetSym(flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); - if (!ok2Continue) return null; - var isSpecResp=false; - for ( var i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); - if (!ok2Continue) return null; - var isSpecResp=false; - for ( var i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); - if (!ok2Continue) return null; - var isSpecResp=false; - for ( var i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - CorrAns = stripWhiteSpace (CorrAns); - UserAns = stripWhiteSpace (UserAns); // sets ok2Continue - if ( !ok2Continue ) return null; - indepVars+="i"; - domain+="x[0,1]"; - if (/(\b|[^a-zA-Z])i\^/.test(UserAns)) { - eqAppAlert(\complexPowerAlertMsg,3); - return null; - } - if ( /cis\^/.test(UserAns) ) { - eqAppAlert(\complexCisAlertMsg,3); - return null; - } - var reComma=/,/; - if ( reComma.test(UserAns) ) { - eqAppAlert(\eqSyntaxErrorComma,3); - return null; - } - UserAns=changeArgs4Cis(UserAns); - CorrAns=changeArgs4Cis(CorrAns); - var aMatch = UserAns.match(/(\b|[^a-zA-Z])i/g); - if ( aMatch != null && aMatch.length > 1) { - eqAppAlert(\alertNotComplexMsg, 3); - return null; - } - var comp = ( typeof oComp == "object" ) ? - (typeof oComp.comp == "undefined" ) ? - diffCompare : oComp.comp : oComp; - if ( typeof oComp == "object" && - typeof oComp.priorParse != "undefined" ) { - if ( typeof oComp.priorParse == "object" ) { - for ( var i=0; i < oComp.priorParse.length; i++) { - var retn = oComp.priorParse[i](UserAns); - if ( retn == null ) return null; - } - } else { - var retn = oComp.priorParse(UserAns); - if ( retn == null ) return null; - } - } - UserAns = ParseInput(UserAns); - CorrAns = ParseInput(CorrAns); - indepVars = TypeParameters(indepVars); - if (!ok2Continue) return null; - success=randomPointCompare( - n,domain,indepVars,epsilon,CorrAns,UserAns,comp); - if ( success == null ) { eqAppAlert(% -\eqSyntaxErrorUndefVar,3); return null; } - return notifyField(success, flag, fieldname); -} -function ProcRespListComplex(flag,CorrAns,n,epsilon,% -domain,indepVars,oComp) { - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); // sets ok2Continue - if ( !ok2Continue ) return null; - var isSpecResp=false; - for ( var i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); // sets ok2Continue - if ( !ok2Continue ) return null; - var isSpecResp=false; - for ( var i=0; i7)?arguments[7]:event.value; - var retn=_ProcRespEvalEq(true,flag,CorrAns,n,epsilon,% -indepVars,UserAns); - return retn; -} -function ProcRespEvalEqNonZero(flag,CorrAns,n,epsilon,% -domain,indepVars,oComp) { - var UserAns=(arguments.length>7)?arguments[7]:event.value; - var retn=_ProcRespEvalEq(false,flag,CorrAns,n,epsilon, -indepVars,UserAns); - return retn; -} -function _ProcRespEvalEq(allowzero,flag,CorrAns,n,epsilon,indepVars) -{ - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>6); // dps17 - var UserAns=(bSubstVars)?arguments[6]:event.value; - UserAns = stripWhiteSpace(UserAns); - if (!ok2Continue) return null; - if ( (UserAns.charAt(0) != "\(") || % -(UserAns.charAt(UserAns.length-1) != "\)")) - return eqAppAlert(\eqSyntaxErrorNoParens,3), null; - UserAns=UserAns.substring(1,UserAns.length-1); - var aUserAns = UserAns.split(","); - for ( var i=0; i < aUserAns.length; i++) { - try { - if (isNaN(eval(aUserAns[i]))) return syntaxError(), null; - if (!allowzero && (eval(aUserAns[i])==0)) - return eqAppAlert(\eqNonzeroEntries,3), null; - } catch(e) { return syntaxError(), null; } - } - var _v = TypeParameters(indepVars); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = _V.length; - if ( aUserAns.length != _n) { - if (bNotifyWrngNumEntries) - return eqAppAlert(\wrongNumEntriesMsg,3), null; - else - return notifyField(false, flag, fieldname); - } - for (var _i=0; _i < _n; _i++) { - if (_V[_i].charAt(0) == "r" ) - eval("var "+_V[_i].charAt(2)+"="+aUserAns[_i]+";"); - else // assume type "i" - eval("var "+_V[_i].charAt(2)+"="+Math.ceil(aUserAns[_i])+";"); - } - var UserInput=ParseInput(CorrAns); - var UserAns=eval(UserInput); - success=(Math.abs(UserAns) < epsilon)?true:false; - return notifyField(success, flag, fieldname); -} -function ProcRespEvalEqList(flag,CorrAns,n,epsilon,domain,% -indepVars,oComp) { - var UserAns=(arguments.length>7)?arguments[7]:event.value; - var retn=_ProcRespEvalEqList(true,flag,CorrAns,n,epsilon,% -indepVars,UserAns); - return retn; -} -function ProcRespEvalEqListNonZero(flag,CorrAns,n,epsilon,domain,% -indepVars,oComp){ - var UserAns=(arguments.length>7)?arguments[7]:event.value; - var retn=_ProcRespEvalEqList(false,flag,CorrAns,n,epsilon,% -indepVars,UserAns); - return retn; -} -function _ProcRespEvalEqList(allowzero,flag,CorrAns,n,epsilon,indepVars) -{ - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>6); // dps17 - var UserAns=(bSubstVars)?arguments[6]:event.value; - UserAns = stripWhiteSpace(UserAns); - if (!ok2Continue) return null; - var success; - UserAns=UserAns.replace(/;+$/,""); - UserAns=UserAns.replace(/;+/g,";"); - var aUsersArray = new Array(); - var aUserAns = UserAns.split(";"); - var aCorrAns = CorrAns.split(";"); - var l = aCorrAns[0]; - if (l < aUserAns.length ) - return eqAppAlert(\eqTooManyEntries,3), null; - if (l > aUserAns.length ) - return eqAppAlert(\eqTooFewEntries,3), null; - var _v = TypeParameters(indepVars); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = _V.length; - var testFunc=""; - for (var _i=0; _i < _n; _i++) - testFunc += ("+"+(Math.random()*9)+"*"+_V[_i].charAt(2)); - var isCorrect=1; - for (var pair=0; pair< l; pair++) { - if ( (aUserAns[pair].charAt(0) != "\(") || % -(aUserAns[pair].charAt(aUserAns[pair].length-1) != "\)")) - return eqAppAlert(\eqSyntaxErrorNoParens,3), null; - UserAnsPair=aUserAns[pair].substring(1,aUserAns[pair].length-1); - var aUserAnsPair = UserAnsPair.split(","); - for ( var i=0; i < aUserAnsPair.length; i++) { - try { if (isNaN(eval(aUserAnsPair[i]))) % -return syntaxError(), null; - if (!allowzero && (eval(aUserAnsPair[i])==0)) - return eqAppAlert(\eqNonzeroEntries,3), null; - } catch(e) { return syntaxError(), null; } - } - if ( aUserAnsPair.length != _n) { - if (bNotifyWrngNumEntries) - return eqAppAlert(\wrongNumEntriesMsg,3), null; - else - return notifyField(false, flag, fieldname); - } - for (var _i=0; _i < _n; _i++) { - if (_V[_i].charAt(0) == "r" ) - eval ("var "+_V[_i].charAt(2)+"="+aUserAnsPair[_i]+";"); - else // assume type "i" - eval ("var "+_V[_i].charAt(2)+"="% -+Math.ceil(aUserAnsPair[_i])+";"); - } - var UserInput=ParseInput(aCorrAns[1]); - var UserAns=eval(UserInput); - aUsersArray[pair]=eval(testFunc); - success=(Math.abs(UserAns) < epsilon)?true:false; -isCorrect *=Number(success); - } - success=(isCorrect==1); - var aOrderArray = aUsersArray.sort(function(a,b){return a-b}); - var m = aUsersArray.length - 1; - for (i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - var success = _ProcRespNumsDe(flag,CorrAns,UserAns,n,% -epsilon,domain,indepVars,oComp); - if ( success == -1 || !ok2Continue ) return null; - if ( success == null ) { return syntaxError(), null; } - return notifyField(success, flag, fieldname); -} -function _ProcRespNumsDe(flag,CorrAns,UserAns,n,epsilon,% -domain,indepVars,oComp) { - ok2Continue = true; - CorrAns = ParseInput(CorrAns); - if (!ok2Continue) { - eqAppAlert("Syntax error in author's answer! Check console.", 3); - return null; - } - var UserAnsSave=UserAns; - var reDe=/,/g; - var reDec=/\./g; - if ( reDec.test(UserAns) ) { - eqAppAlert(\noDecPtGerMsg,3); - return -1; - } - UserAns=UserAns.replace(reDe,"."); - var comp = ( typeof oComp == "object" ) ? - (typeof oComp.comp == "undefined" ) ? - diffCompare : oComp.comp : oComp; - if ( (typeof(oComp)=="object") % -&& (typeof(oComp.priorParse)!="undefined") ) { - var retn=processSpecialParse(oComp.priorParse,UserAnsSave); - if (retn==null) return -1; - } - var reComma=/,/; - if ( reComma.test(UserAns) ) { - eqAppAlert(\eqSyntaxErrorComma,3); - return -1; - } - UserAns = ParseInput(UserAns); - indepVars = TypeParameters(indepVars); - if (!ok2Continue) return null; - var success=randomPointCompare(n,domain,indepVars,% -epsilon,CorrAns,UserAns,comp); - if ( success && (typeof(oComp)=="object") % -&& (typeof(oComp.postParse)!="undefined") ) - success=processSpecialParse(oComp.postParse,UserAns); - return success; -} -\end{newsegment} -\end{library@holding} -\begin{library@holding}{unordered} -\begin{newsegment}{dljslib: Contrib - Processing Unordered Responses} -/* -** The ProcRespSetFormula function is now listed under the -** setSupport option, titled 'dljslib: Support for Sets' -*/ -\end{newsegment} -\end{library@holding} -\@ifcheckedout{factors} -\newcommand{\facNoPropForm}{"Factorization is not in the proper form, - try placing the constant, if any, at the beginning of the - factorization"} -\newcommand{\noNotEncloseMonos}{"Do not enclose constants or - monomials in parentheses"} -\fi -\begin{library@holding}{factors} -\begin{newsegment}{dljslib: Contrib - Processing Factors as Responses} -function ProcRespFactors(flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - ok2Continue = true; - if (!ProcessIt) return null; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - if (!ok2Continue) return null; - var retn = _ProcResp(flag,CorrAns,UserAns,n,epsilon,% -domain,indepVars,oComp); - if ( retn == -1 ) return null; - if ( retn == null ) return syntaxError(), null; - if ( retn == 0 ) { - var initialsuccess = false; - return notifyField(initialsuccess, flag, fieldname); - } - var aUserAns=new Array(); - var aCorrAns=new Array(); - var aNegCorrAns=new Array(); - aUserAns=getFactorArray(UserAns); - if (aUserAns==null) { - eqAppAlert(\facNoPropForm, 3); - return null; - } - if (aUserAns==-1) return null; - aCorrAns=getFactorArray(CorrAns); - if ( aCorrAns==null) { - app.beep(); console.show(); - console.println("Author error in factorization, its not in % -the proper form"); - return null; - } - for ( var i=0; i< aCorrAns.length; i++) { - aNegCorrAns[i] = "-" + "(" + aCorrAns[i] + ")"} - var numCorrect = 0, match=0,signflag=0; - if ( aUserAns.length != aCorrAns.length ) - return notifyField(false, flag, fieldname); - for ( var i=0; i< aCorrAns.length; i++) { - match = 0; - for ( var j=i; j< aUserAns.length; j++) { - var retn = _ProcResp(flag,aCorrAns[i],aUserAns[j],% -n,epsilon,domain,indepVars,oComp); - if ( retn == -1 ) return null; - if ( retn == null ) return syntaxError(), null; - if (retn==1) { - var temp=aUserAns[j]; - aUserAns[j]=aUserAns[i]; - aUserAns[i]=temp; - match = match + 1; - } - else { - var retn = _ProcResp(flag,aNegCorrAns[i],aUserAns[j],% -n,epsilon,domain,indepVars,oComp); - if ( retn == -1 ) return null; - if ( retn == null ) return syntaxError(), null; - if (retn==1) { - var temp=aUserAns[j]; - aUserAns[j]=aUserAns[i]; - aUserAns[i]=temp; - match = match + 1; - signflag = signflag + 1; - } - } - } - numCorrect += (match) ? 1 : 0; - } - var success = ((numCorrect==aCorrAns.length)&&(signflag\%2==0)); - if ( success == null ) return syntaxError(), null; - return notifyField(success, flag, fieldname); -} -function getFactorArray(str) { - var aFactors=new Array(); - var i,j,front,factor,back,bInitGrped=true; - if (str.charAt(0) != "\(" ) { - bInitGrped=false; - i=str.indexOf("\("); - if ( i != -1 ) { - aFactors.push(str.substring(0,i)); - str=str.substring(i); - } - } - while ( (i=str.indexOf("\(")) != -1 ) { - j=FindBalP(str,i,true); - front=str.substring(0,i); - factor=str.substring(i,j+1); - back = str.substring(j+1); - if ( back.charAt(0) == "\^" ) { - getExp=back.match(/\^\d+/); - theExp=back.substring(0,getExp[0].length); - factor+=(theExp); - aFactors.push(factor); - back=back.substring(getExp[0].length); - } else { - aFactors.push(factor); - } - str=front + back; - if ( factor.charAt(1)=="-" || factor.charAt(1)=="+" ) - factor=factor.substring(2); - if (!/[+-]/.test(factor)) { - eqAppAlert(\noNotEncloseMonos, 3); - return -1; - } - } - if (/[A-Za-z]/.test(str)) { - var aExp = str.match(/[A-Za-z](\^\d+)*/); - factor=aExp[0]; - i=aExp.index; - front=str.substring(0,i); - back=str.substring(i+factor.length); - str=front+back; - if (!bInitGrped) { - if (aFactors[0]=="-" || aFactors[0]=="+") - aFactors[0]=aFactors[0]+factor; - else - aFactors[0]="\("+aFactors[0]+"\)"+"\("+factor+"\)"; - } else { - aFactors.push(str); - str=""; - } - } - if (aFactors[0]=="-"||aFactors[0]=="+"||isFinite(aFactors[0])){ - factor=aFactors.shift(); - aFactors[0]=factor+aFactors[0]; - } - return (str!="") ? null : aFactors -} -\end{newsegment} -\end{library@holding} -\@ifcheckedout{point} -\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."} -\def\pointEmptyCompMsgiv(#1){ - "You entered nothing for the component " +(#1+1) - +" of your answer. Please enter a component for the point."} -\fi -\begin{library@holding}{point} -\begin{newsegment}{dljslib: Contrib - Processing a Point Response} -function ProcPoint(flag,CorrAns,n,epsilon,domain,indepVars,oComp) -{ - if (!ProcessIt) return null; - ok2Continue = true; - var i, success, truthCnt=1; - var aScalar, scalar = 1; - var fieldname = event.target.name; - var bSubstVars=(arguments.length>7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace (UserAns); // sets ok2Continue - CorrAns = stripWhiteSpace(CorrAns); - if ( !ok2Continue ) return null; - var isSpecResp=false; - for ( var i=0; i7); // dps17 - var UserAns=(bSubstVars)?arguments[7]:event.value; - UserAns = stripWhiteSpace(UserAns); - CorrAns = stripWhiteSpace(CorrAns); - if (!ok2Continue) return null; - UserAns = UserAns.replace(/inf/g, "x"); - CorrAns = CorrAns.replace(/inf/g, "x"); - indepVars = "x"; - domain="[0,1]"; - var aUserAns = UserAns.split("U"); - var aCorrAns = CorrAns.split("U"); - var numCorrect = 0; - var match = 0; - var matchparts = 0; - if ( aUserAns.length != aCorrAns.length ) - return notifyField(false,flag, fieldname); - for ( var i=0; i< aCorrAns.length; i++) { - match = 0; - for ( var j=i; j< aUserAns.length; j++) { - CorrInt=aCorrAns[i]; - UserInt=aUserAns[j]; - var levaUser = UserInt.charAt(0); - var pravaUser = UserInt.charAt(UserInt.length-1); - var stredUser = UserInt.substring(1,UserInt.length-1); - UserInt = levaUser+","+stredUser+","+pravaUser; - var levaCorr = CorrInt.charAt(0); - var pravaCorr = CorrInt.charAt(CorrInt.length-1); - var stredCorr = CorrInt.substring(1,CorrInt.length-1); - CorrInt = levaCorr+","+stredCorr+","+pravaCorr; - var aCorrInt = CorrInt.split(","); - var aUserInt = UserInt.split(","); - if ( aUserInt.length != 4 ) - return notifyField(false, flag, fieldname); - matchparts = 0; - if (aCorrInt[0] == aUserInt[0]) matchparts+=1; - if (aCorrInt[3] == aUserInt[3]) matchparts+=1; - var retn1 = _ProcResp(flag,aCorrInt[1],aUserInt[1],% -n,epsilon,domain,indepVars,oComp); - if (retn1 == -1 ) return null; - if (retn1 == null) return syntaxError(), null; - if (retn1 == 1) matchparts+=1; - var retn2 = _ProcResp(flag,aCorrInt[2],aUserInt[2],% -n,epsilon,domain,indepVars,oComp); - if (retn2 == -1 ) return null; - if (retn2 == null) return syntaxError(), null; - if (retn2 == 1) matchparts+=1; - if (matchparts == 4) { - var temp=aUserAns[j]; - aUserAns[j]=aUserAns[i]; - aUserAns[i]=temp; - match = match + 1; - } - } - numCorrect += (match) ? 1 : 0; - } - var success = (numCorrect == aCorrAns.length); - return notifyField(success, flag, fieldname); -} -\end{newsegment} -\end{library@holding} -\begin{library@holding}{indefIntegral} -\begin{newsegment}{dljslib: Indefinite Integral Handling} -function indefCompare(_a,_c,_v,_F,_G) { - var eqC; - var aAB = _a.split(","); - var aXY = _c.split(","); - var _V = _v.split(","); // e.g. _V[0] = "i:x" - var _n = aXY.length - for (var _i=0; _i< _n; _i++) { - if (_V[_i].charAt(0) == "r" ) - eval ( "var "+ _V[_i].charAt(2) - + " = " + aAB[2*_i] + ";"); - else // assume type "i" - eval ( "var "+ _V[_i].charAt(2) - + " = " + Math.ceil(aAB[2*_i]) + ";"); - } - var C = 0; - if ( app.viewerVersion >= 5) - { - var rtnCode = 0; - eval("try {if (isNaN(eqC = eval(_F)-eval(_G))) rtnCode=-1;}" - +" catch (e) { rtnCode=1; }"); - switch(rtnCode) - { - case 0: break; - case 1: return null; - case -1: return -1; - } - } - else - if (isNaN(eqC = eval(_F)-eval(_G))) return -1; - for (var _i=0; _i< _n; _i++) - { - if (_V[_i].charAt(0) == "r" ) - eval ( "var "+ _V[_i].charAt(2) - + " = " + aXY[_i] + ";"); - else // assume type "i" - eval ( "var "+ _V[_i].charAt(2) - + " = " + Math.ceil(aXY[_i]) + ";"); - } - _F = eval(_F); - if ( app.viewerVersion >= 5) - { - var rtnCode = 0; - eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" - +" catch (e) { rtnCode=1; }"); - switch(rtnCode) - { - case 0: break; - case 1: return null; - case -1: return -1; - } - } - else - if(isNaN(_G = eval(_G))) return -1; - return Math.abs( _F - _G - eqC ); -} -\end{newsegment} -\end{library@holding} -\@ifcheckedout{nodec} -\newcommand\nodecAlertMsg{% - "A decimal answer is not acceptable here. - Please express your answer using fractions, square roots, - e, log, etc."} -\fi -\begin{library@holding}{nodec} -\begin{newsegment}{dljslib: Contrib - No Decimals} -function nodec(UserAns) -{ - var dot = /[\.\aebdecimalpoint]/; - if (dot.test(UserAns)) { - eqAppAlert(\nodecAlertMsg,3); - return null; - } else return true; -} -\end{newsegment} -\end{library@holding} -\@ifcheckedout{noBinFac} -\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."} -\fi -\begin{library@holding}{noBinFac} -\begin{newsegment}{dljslib: Contrib - No Binomial Coefficients Allowed} -aReFact = new Array( - /(?=\()?(\d+)(?=\))?!/, - /(?=\[)?(\d+)(?=\])?!/, - /(?=\{)?(\d+)(?=\})?!/ -); -function noBinFac(UserAns) -{ - var bad = /(C\()/; - if (bad.test(UserAns)) { - eqAppAlert(\noBinFactBinCoeffAlertMsg,3); - return null; - } - bad = /(P\()/; - if (bad.test(UserAns)) { - eqAppAlert(\noBinFactPermAlertMsg,3); - return null; - } - for ( var i=0; i= 10 ) { - if (bAllowWrngNormSciNotn) - return true; - else - return eqAppAlert(\sciNotNormalForm,3), null; - } - else { - bItsNormSciNot=true; - return true - } - } else - return eqAppAlert(\sciNotSyntaxError,3), null; -} -function sciNotResp(UserAns) {return SciNotResp(UserAns);} -function postSciNotResp(UserAns) { - bAllowWrngNormSciNotn=false; - return bItsNormSciNot; -} -function NoNegExp (UserAns) { - var re=/(\^|\^\()+-/g; - UserAns=ChngAllGrpsToParens(UserAns); - if (re.test(UserAns)) - return eqAppAlert(\NoNegExpMsg,3), null; - return true; -} -function noNegExp(UserAns){return NoNegExp(UserAns)} -\end{newsegment} -\end{library@holding} -\begin{library@holding}{combinatorics} -\begin{newsegment}{dljslib: Contrib - Combinatorial Functions} -function ch(n,r) -{ - if ((n==r)||(r==0)) return(1); - if ((n==(r+1))||(r==1)) return(n); - if (r > (n-r)) - var coeff = factorialCancel( - expandFactorial(r+1,n),expandFactorial(1,n-r)); - else - var coeff = factorialCancel( - expandFactorial(n-r+1,n),expandFactorial(1,r)); - return (eval(coeff)); -} -function perm(n,r) -{ - if (r==0) return(1); - else - var coeff = factorialCancel( - expandFactorial(n-r+1,n),expandFactorial(1,n-r)); - return (eval(coeff)); -} -function expandFactorial(lo,hi) -{ - var f = lo; - for (var i=lo+1;i<=hi;i++) f = i+"*"+f; - return f; -} -function factorialCancel(top,bot) -{ - var num = top.split("*"); - var denom = bot.split("*"); - var len = denom.length; - var temp = 0; - var i, j; - for (i=0;i<=len-1;i++) { - for (j=0;j<=len-1;j++) { - temp = num[i]/denom[j]; - if ((temp - Math.round(temp)) == 0) { - num[i] = temp; - denom[j] = 1; - } - } - } - var t = denom.join(""); - var reg = /[^1]/; - if (reg.test(t)) { - temp = factorialCancel(denom.join("*"),num.join("*")); - } else { - temp = num.join("*"); - } - return (temp); -} -function fact(num) -{ - var tot = 1; - for (var r=1; r <= num; r++) tot *= r; - return(tot); -} -\end{newsegment} -\end{library@holding} -\begin{library@holding}{ImplMulti} -\begin{newsegment}{dljslib: Implied Multiplication} -function Ck4Products(UserInput) -{ - var re, aR; - for (var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + var CorrExpressions = CorrAns.split("="); + var zCorrAns = "("+CorrExpressions[0]+")-("+CorrExpressions[1] +")"; + UserAns = stripWhiteSpace (UserAns); + if(!ok2Continue ) return null; + if (!/[=]/.test(UserAns)) { + eqAppAlert(\equationsAlertMsg, 3); + return null; + } + var reComma=/,/; + if ( reComma.test(UserAns) ) { + eqAppAlert(\eqSyntaxErrorComma,3); + return null; + } + var UserExpressions = UserAns.split("="); + var zUserAns = "("+UserExpressions[0]+")-("+UserExpressions[1] +")"; + + var comp = ( typeof oComp == "object" ) ? + (typeof oComp.comp == "undefined" ) ? + diffCompare : oComp.comp : oComp; + if ( typeof oComp == "object" + && typeof oComp.priorParse != "undefined" ) { + if ( typeof oComp.priorParse == "object" ) { + for ( var i=0; i < oComp.priorParse.length; i++) { + var retn = oComp.priorParse[i](zUserAns); + if ( retn == null ) return null; + } + } else { + var retn = oComp.priorParse(zUserAns); + if ( retn == null ) return null; + } + } + zCorrAns = ParseInput(zCorrAns); + if (!ok2Continue) { + eqAppAlert("Syntax error in author's answer! Check console.", 3); + console.println("Syntax Error: " + CorrAns); + return null; + } + zUserAns = ParseInput(zUserAns); + if (!ok2Continue) return null; + indepVars = TypeParameters(indepVars); + var lambda = getNonZeroRatio (domain, indepVars, zCorrAns, zUserAns); + if ( lambda == null ) { + eqAppAlert(\eqSyntaxErrorUndefVar,3); return null; }; + if ( !ok2Continue ) return notifyField(false, flag, fieldname); + zCorrAns = lambda + "*(" + zCorrAns + ")"; + success=randomPointCompare (n,domain,indepVars,epsilon, + zCorrAns,zUserAns,comp) + if ( success == null ) { eqAppAlert(\eqSyntaxErrorUndefVar,3); + return null; } + return notifyField(success, flag, fieldname); +} +function getNonZeroRatio (_a, _v, _F, _G) +{ + var _i, _j; + var aXY = new Array(); + _a = _a.replace(/[\[\]\s]/g, ""); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = _V.length; + var aIntervals = _a.split("&"); + var aInterval = aIntervals[0].split("x"); + var endpoints = aInterval[0].split(","); + for (_j=0; _j < 4; _j++) { + for (_i = 0; _i < _n; _i++) { + var endpoints = aInterval[_i].split(","); + aXY[_i] = endpoints[0]-0 + +(endpoints[1]-endpoints[0])*Math.random(); +\db console.println("aXY["+_i+"] = " + aXY[_i]);\db% + } + for (var _i = 0; _i< _n; _i++) { + if (_V[_i].charAt(0) == "r" ) + eval ( "var "+ _V[_i].charAt(2) + + " = " + aXY[_i] + ";"); + else // assume type "i" + eval ( "var "+ _V[_i].charAt(2) + + " = " + Math.ceil(aXY[_i]) + ";"); + } + _F = eval(_F); + if ( app.viewerVersion >= 5) + { + var rtnCode = 0; + eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" + +"catch (e) { rtnCode=1; }"); + switch(rtnCode) { + case 0: break; + case 1: return null; + case -1: ok2Continue=false; + return -1; + } + } + else + if(isNaN(_G=eval(_G))) {ok2Continue=false;return -1;} + if ( _F != 0 && _G != 0 ) return _G/_F; + } + console.println( "Can't find a non zero scalar"); + return null; +} +\end{newsegment} +\end{library@holding} +\@ifcheckedout{vectors} +\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."} +\def\vectorEmptyCompMsgiv(#1){"You entered nothing for the + component " +(#1+1) +" of your answer. Please enter + a component for the vector."} +\fi +\begin{library@holding}{vectors} +\begin{newsegment}{dljslib: Vector Handling} +function ProcVec (flag,CorrAns,n,epsilon,domain,indepVars,oComp) +{ + if (!ProcessIt) return null; + ok2Continue = true; + var i, success, truthCnt=1; + var aScalar, scalar = 1; + var fieldname = event.target.name; + var UserAns = event.value; + UserAns = stripWhiteSpace(UserAns); // sets ok2Continue + CorrAns = stripWhiteSpace(CorrAns); + if ( !ok2Continue ) return null; + var isSpecResp=false; + for ( var i=0; i]/.test(UserAns)) { + eqAppAlert(\vectorsErrorMsgi, 3); + return null; + } + if (!CkBalP(UserAns,"<",">")) { + eqAppAlert(\vectorsErrorMsgii, 3); + return null; + } + // see if there is a scalar multiple to the left of '<' + aScalar = UserAns.match(/(.*)(\*)(\s*<)/); + if (aScalar != null) { + scalar = aScalar[1]; + UserAns = UserAns.slice(aScalar.index + aScalar[0].length-1) + } + var comp = ( typeof oComp == "object" ) ? + (typeof oComp.comp == "undefined" ) ? + diffCompare : oComp.comp : oComp; + CorrAns = CorrAns.replace(/[<>]/g, ""); // strip of < and > + UserAns = UserAns.replace(/[<>]/g, ""); + if ( typeof oComp == "object" && % +typeof oComp.priorParse != "undefined" ) { + var retn=processSpecialParse(oComp.priorParse,UserAns); + if (retn==null) return null; + } + aUserAns = UserAns.split(","); + aCorrAns = CorrAns.split(","); + if (scalar != 1) + for (i=0; i)."} +\fi +\begin{library@holding}{setSupport} +\begin{newsegment}{dljslib: Support for Sets} +function ProcRespSetNum(flag,CorrAns,n,epsilon,domain,indepVars,oComp) +{ + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); + if (!ok2Continue) return null; + var isSpecResp=false; + for ( var i=0; i$/.test(UserAns) ) { + ok2format=false; + return eqAppAlert(\noBracketsInAnsMsg,3), null; + } + else return true; +} +function formatAsVector() { + if (ok2format&&event.value.replace(/\\s/g,"") != "") { + event.value = "< " + event.value + " >"; + } +} +function ProcRespSetSym(flag,CorrAns,n,epsilon,domain,indepVars,oComp) +{ + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); + if (!ok2Continue) return null; + var isSpecResp=false; + for ( var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); + if (!ok2Continue) return null; + var isSpecResp=false; + for ( var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); + if (!ok2Continue) return null; + var isSpecResp=false; + for ( var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + CorrAns = stripWhiteSpace (CorrAns); + UserAns = stripWhiteSpace (UserAns); // sets ok2Continue + if ( !ok2Continue ) return null; + indepVars+="i"; + domain+="x[0,1]"; + if (/(\b|[^a-zA-Z])i\^/.test(UserAns)) { + eqAppAlert(\complexPowerAlertMsg,3); + return null; + } + if ( /cis\^/.test(UserAns) ) { + eqAppAlert(\complexCisAlertMsg,3); + return null; + } + var reComma=/,/; + if ( reComma.test(UserAns) ) { + eqAppAlert(\eqSyntaxErrorComma,3); + return null; + } + UserAns=changeArgs4Cis(UserAns); + CorrAns=changeArgs4Cis(CorrAns); + var aMatch = UserAns.match(/(\b|[^a-zA-Z])i/g); + if ( aMatch != null && aMatch.length > 1) { + eqAppAlert(\alertNotComplexMsg, 3); + return null; + } + var comp = ( typeof oComp == "object" ) ? + (typeof oComp.comp == "undefined" ) ? + diffCompare : oComp.comp : oComp; + if ( typeof oComp == "object" && + typeof oComp.priorParse != "undefined" ) { + if ( typeof oComp.priorParse == "object" ) { + for ( var i=0; i < oComp.priorParse.length; i++) { + var retn = oComp.priorParse[i](UserAns); + if ( retn == null ) return null; + } + } else { + var retn = oComp.priorParse(UserAns); + if ( retn == null ) return null; + } + } + UserAns = ParseInput(UserAns); + CorrAns = ParseInput(CorrAns); + indepVars = TypeParameters(indepVars); + if (!ok2Continue) return null; + success=randomPointCompare( + n,domain,indepVars,epsilon,CorrAns,UserAns,comp); + if ( success == null ) { eqAppAlert(% +\eqSyntaxErrorUndefVar,3); return null; } + return notifyField(success, flag, fieldname); +} +function ProcRespListComplex(flag,CorrAns,n,epsilon,% +domain,indepVars,oComp) { + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); // sets ok2Continue + if ( !ok2Continue ) return null; + var isSpecResp=false; + for ( var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); // sets ok2Continue + if ( !ok2Continue ) return null; + var isSpecResp=false; + for ( var i=0; i7)?arguments[7]:event.value; + var retn=_ProcRespEvalEq(true,flag,CorrAns,n,epsilon,% +indepVars,UserAns); + return retn; +} +function ProcRespEvalEqNonZero(flag,CorrAns,n,epsilon,% +domain,indepVars,oComp) { + var UserAns=(arguments.length>7)?arguments[7]:event.value; + var retn=_ProcRespEvalEq(false,flag,CorrAns,n,epsilon, +indepVars,UserAns); + return retn; +} +function _ProcRespEvalEq(allowzero,flag,CorrAns,n,epsilon,indepVars) +{ + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>6); // dps17 + var UserAns=(bSubstVars)?arguments[6]:event.value; + UserAns = stripWhiteSpace(UserAns); + if (!ok2Continue) return null; + if ( (UserAns.charAt(0) != "\(") || % +(UserAns.charAt(UserAns.length-1) != "\)")) + return eqAppAlert(\eqSyntaxErrorNoParens,3), null; + UserAns=UserAns.substring(1,UserAns.length-1); + var aUserAns = UserAns.split(","); + for ( var i=0; i < aUserAns.length; i++) { + try { + if (isNaN(eval(aUserAns[i]))) return syntaxError(), null; + if (!allowzero && (eval(aUserAns[i])==0)) + return eqAppAlert(\eqNonzeroEntries,3), null; + } catch(e) { return syntaxError(), null; } + } + var _v = TypeParameters(indepVars); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = _V.length; + if ( aUserAns.length != _n) { + if (bNotifyWrngNumEntries) + return eqAppAlert(\wrongNumEntriesMsg,3), null; + else + return notifyField(false, flag, fieldname); + } + for (var _i=0; _i < _n; _i++) { + if (_V[_i].charAt(0) == "r" ) + eval("var "+_V[_i].charAt(2)+"="+aUserAns[_i]+";"); + else // assume type "i" + eval("var "+_V[_i].charAt(2)+"="+Math.ceil(aUserAns[_i])+";"); + } + var UserInput=ParseInput(CorrAns); + var UserAns=eval(UserInput); + success=(Math.abs(UserAns) < epsilon)?true:false; + return notifyField(success, flag, fieldname); +} +function ProcRespEvalEqList(flag,CorrAns,n,epsilon,domain,% +indepVars,oComp) { + var UserAns=(arguments.length>7)?arguments[7]:event.value; + var retn=_ProcRespEvalEqList(true,flag,CorrAns,n,epsilon,% +indepVars,UserAns); + return retn; +} +function ProcRespEvalEqListNonZero(flag,CorrAns,n,epsilon,domain,% +indepVars,oComp){ + var UserAns=(arguments.length>7)?arguments[7]:event.value; + var retn=_ProcRespEvalEqList(false,flag,CorrAns,n,epsilon,% +indepVars,UserAns); + return retn; +} +function _ProcRespEvalEqList(allowzero,flag,CorrAns,n,epsilon,indepVars) +{ + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>6); // dps17 + var UserAns=(bSubstVars)?arguments[6]:event.value; + UserAns = stripWhiteSpace(UserAns); + if (!ok2Continue) return null; + var success; + UserAns=UserAns.replace(/;+$/,""); + UserAns=UserAns.replace(/;+/g,";"); + var aUsersArray = new Array(); + var aUserAns = UserAns.split(";"); + var aCorrAns = CorrAns.split(";"); + var l = aCorrAns[0]; + if (l < aUserAns.length ) + return eqAppAlert(\eqTooManyEntries,3), null; + if (l > aUserAns.length ) + return eqAppAlert(\eqTooFewEntries,3), null; + var _v = TypeParameters(indepVars); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = _V.length; + var testFunc=""; + for (var _i=0; _i < _n; _i++) + testFunc += ("+"+(Math.random()*9)+"*"+_V[_i].charAt(2)); + var isCorrect=1; + for (var pair=0; pair< l; pair++) { + if ( (aUserAns[pair].charAt(0) != "\(") || % +(aUserAns[pair].charAt(aUserAns[pair].length-1) != "\)")) + return eqAppAlert(\eqSyntaxErrorNoParens,3), null; + UserAnsPair=aUserAns[pair].substring(1,aUserAns[pair].length-1); + var aUserAnsPair = UserAnsPair.split(","); + for ( var i=0; i < aUserAnsPair.length; i++) { + try { if (isNaN(eval(aUserAnsPair[i]))) % +return syntaxError(), null; + if (!allowzero && (eval(aUserAnsPair[i])==0)) + return eqAppAlert(\eqNonzeroEntries,3), null; + } catch(e) { return syntaxError(), null; } + } + if ( aUserAnsPair.length != _n) { + if (bNotifyWrngNumEntries) + return eqAppAlert(\wrongNumEntriesMsg,3), null; + else + return notifyField(false, flag, fieldname); + } + for (var _i=0; _i < _n; _i++) { + if (_V[_i].charAt(0) == "r" ) + eval ("var "+_V[_i].charAt(2)+"="+aUserAnsPair[_i]+";"); + else // assume type "i" + eval ("var "+_V[_i].charAt(2)+"="% ++Math.ceil(aUserAnsPair[_i])+";"); + } + var UserInput=ParseInput(aCorrAns[1]); + var UserAns=eval(UserInput); + aUsersArray[pair]=eval(testFunc); + success=(Math.abs(UserAns) < epsilon)?true:false; +isCorrect *=Number(success); + } + success=(isCorrect==1); + var aOrderArray = aUsersArray.sort(function(a,b){return a-b}); + var m = aUsersArray.length - 1; + for (i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + var success = _ProcRespNumsDe(flag,CorrAns,UserAns,n,% +epsilon,domain,indepVars,oComp); + if ( success == -1 || !ok2Continue ) return null; + if ( success == null ) { return syntaxError(), null; } + return notifyField(success, flag, fieldname); +} +function _ProcRespNumsDe(flag,CorrAns,UserAns,n,epsilon,% +domain,indepVars,oComp) { + ok2Continue = true; + CorrAns = ParseInput(CorrAns); + if (!ok2Continue) { + eqAppAlert("Syntax error in author's answer! Check console.", 3); + return null; + } + var UserAnsSave=UserAns; + var reDe=/,/g; + var reDec=/\./g; + if ( reDec.test(UserAns) ) { + eqAppAlert(\noDecPtGerMsg,3); + return -1; + } + UserAns=UserAns.replace(reDe,"."); + var comp = ( typeof oComp == "object" ) ? + (typeof oComp.comp == "undefined" ) ? + diffCompare : oComp.comp : oComp; + if ( (typeof(oComp)=="object") % +&& (typeof(oComp.priorParse)!="undefined") ) { + var retn=processSpecialParse(oComp.priorParse,UserAnsSave); + if (retn==null) return -1; + } + var reComma=/,/; + if ( reComma.test(UserAns) ) { + eqAppAlert(\eqSyntaxErrorComma,3); + return -1; + } + UserAns = ParseInput(UserAns); + indepVars = TypeParameters(indepVars); + if (!ok2Continue) return null; + var success=randomPointCompare(n,domain,indepVars,% +epsilon,CorrAns,UserAns,comp); + if ( success && (typeof(oComp)=="object") % +&& (typeof(oComp.postParse)!="undefined") ) + success=processSpecialParse(oComp.postParse,UserAns); + return success; +} +\end{newsegment} +\end{library@holding} +\begin{library@holding}{unordered} +\begin{newsegment}{dljslib: Contrib - Processing Unordered Responses} +/* +** The ProcRespSetFormula function is now listed under the +** setSupport option, titled 'dljslib: Support for Sets' +*/ +\end{newsegment} +\end{library@holding} +\@ifcheckedout{factors} +\newcommand{\facNoPropForm}{"Factorization is not in the proper form, + try placing the constant, if any, at the beginning of the + factorization"} +\newcommand{\noNotEncloseMonos}{"Do not enclose constants or + monomials in parentheses"} +\fi +\begin{library@holding}{factors} +\begin{newsegment}{dljslib: Contrib - Processing Factors as Responses} +function ProcRespFactors(flag,CorrAns,n,epsilon,domain,indepVars,oComp) +{ + ok2Continue = true; + if (!ProcessIt) return null; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + if (!ok2Continue) return null; + var retn = _ProcResp(flag,CorrAns,UserAns,n,epsilon,% +domain,indepVars,oComp); + if ( retn == -1 ) return null; + if ( retn == null ) return syntaxError(), null; + if ( retn == 0 ) { + var initialsuccess = false; + return notifyField(initialsuccess, flag, fieldname); + } + var aUserAns=new Array(); + var aCorrAns=new Array(); + var aNegCorrAns=new Array(); + aUserAns=getFactorArray(UserAns); + if (aUserAns==null) { + eqAppAlert(\facNoPropForm, 3); + return null; + } + if (aUserAns==-1) return null; + aCorrAns=getFactorArray(CorrAns); + if ( aCorrAns==null) { + app.beep(); console.show(); + console.println("Author error in factorization, its not in % +the proper form"); + return null; + } + for ( var i=0; i< aCorrAns.length; i++) { + aNegCorrAns[i] = "-" + "(" + aCorrAns[i] + ")"} + var numCorrect = 0, match=0,signflag=0; + if ( aUserAns.length != aCorrAns.length ) + return notifyField(false, flag, fieldname); + for ( var i=0; i< aCorrAns.length; i++) { + match = 0; + for ( var j=i; j< aUserAns.length; j++) { + var retn = _ProcResp(flag,aCorrAns[i],aUserAns[j],% +n,epsilon,domain,indepVars,oComp); + if ( retn == -1 ) return null; + if ( retn == null ) return syntaxError(), null; + if (retn==1) { + var temp=aUserAns[j]; + aUserAns[j]=aUserAns[i]; + aUserAns[i]=temp; + match = match + 1; + } + else { + var retn = _ProcResp(flag,aNegCorrAns[i],aUserAns[j],% +n,epsilon,domain,indepVars,oComp); + if ( retn == -1 ) return null; + if ( retn == null ) return syntaxError(), null; + if (retn==1) { + var temp=aUserAns[j]; + aUserAns[j]=aUserAns[i]; + aUserAns[i]=temp; + match = match + 1; + signflag = signflag + 1; + } + } + } + numCorrect += (match) ? 1 : 0; + } + var success = ((numCorrect==aCorrAns.length)&&(signflag\%2==0)); + if ( success == null ) return syntaxError(), null; + return notifyField(success, flag, fieldname); +} +function getFactorArray(str) { + var aFactors=new Array(); + var i,j,front,factor,back,bInitGrped=true; + if (str.charAt(0) != "\(" ) { + bInitGrped=false; + i=str.indexOf("\("); + if ( i != -1 ) { + aFactors.push(str.substring(0,i)); + str=str.substring(i); + } + } + while ( (i=str.indexOf("\(")) != -1 ) { + j=FindBalP(str,i,true); + front=str.substring(0,i); + factor=str.substring(i,j+1); + back = str.substring(j+1); + if ( back.charAt(0) == "\^" ) { + getExp=back.match(/\^\d+/); + theExp=back.substring(0,getExp[0].length); + factor+=(theExp); + aFactors.push(factor); + back=back.substring(getExp[0].length); + } else { + aFactors.push(factor); + } + str=front + back; + if ( factor.charAt(1)=="-" || factor.charAt(1)=="+" ) + factor=factor.substring(2); + if (!/[+-]/.test(factor)) { + eqAppAlert(\noNotEncloseMonos, 3); + return -1; + } + } + if (/[A-Za-z]/.test(str)) { + var aExp = str.match(/[A-Za-z](\^\d+)*/); + factor=aExp[0]; + i=aExp.index; + front=str.substring(0,i); + back=str.substring(i+factor.length); + str=front+back; + if (!bInitGrped) { + if (aFactors[0]=="-" || aFactors[0]=="+") + aFactors[0]=aFactors[0]+factor; + else + aFactors[0]="\("+aFactors[0]+"\)"+"\("+factor+"\)"; + } else { + aFactors.push(str); + str=""; + } + } + if (aFactors[0]=="-"||aFactors[0]=="+"||isFinite(aFactors[0])){ + factor=aFactors.shift(); + aFactors[0]=factor+aFactors[0]; + } + return (str!="") ? null : aFactors +} +\end{newsegment} +\end{library@holding} +\@ifcheckedout{point} +\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."} +\def\pointEmptyCompMsgiv(#1){ + "You entered nothing for the component " +(#1+1) + +" of your answer. Please enter a component for the point."} +\fi +\begin{library@holding}{point} +\begin{newsegment}{dljslib: Contrib - Processing a Point Response} +function ProcPoint(flag,CorrAns,n,epsilon,domain,indepVars,oComp) +{ + if (!ProcessIt) return null; + ok2Continue = true; + var i, success, truthCnt=1; + var aScalar, scalar = 1; + var fieldname = event.target.name; + var bSubstVars=(arguments.length>7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace (UserAns); // sets ok2Continue + CorrAns = stripWhiteSpace(CorrAns); + if ( !ok2Continue ) return null; + var isSpecResp=false; + for ( var i=0; i7); // dps17 + var UserAns=(bSubstVars)?arguments[7]:event.value; + UserAns = stripWhiteSpace(UserAns); + CorrAns = stripWhiteSpace(CorrAns); + if (!ok2Continue) return null; + UserAns = UserAns.replace(/inf/g, "x"); + CorrAns = CorrAns.replace(/inf/g, "x"); + indepVars = "x"; + domain="[0,1]"; + var aUserAns = UserAns.split("U"); + var aCorrAns = CorrAns.split("U"); + var numCorrect = 0; + var match = 0; + var matchparts = 0; + if ( aUserAns.length != aCorrAns.length ) + return notifyField(false,flag, fieldname); + for ( var i=0; i< aCorrAns.length; i++) { + match = 0; + for ( var j=i; j< aUserAns.length; j++) { + CorrInt=aCorrAns[i]; + UserInt=aUserAns[j]; + var levaUser = UserInt.charAt(0); + var pravaUser = UserInt.charAt(UserInt.length-1); + var stredUser = UserInt.substring(1,UserInt.length-1); + UserInt = levaUser+","+stredUser+","+pravaUser; + var levaCorr = CorrInt.charAt(0); + var pravaCorr = CorrInt.charAt(CorrInt.length-1); + var stredCorr = CorrInt.substring(1,CorrInt.length-1); + CorrInt = levaCorr+","+stredCorr+","+pravaCorr; + var aCorrInt = CorrInt.split(","); + var aUserInt = UserInt.split(","); + if ( aUserInt.length != 4 ) + return notifyField(false, flag, fieldname); + matchparts = 0; + if (aCorrInt[0] == aUserInt[0]) matchparts+=1; + if (aCorrInt[3] == aUserInt[3]) matchparts+=1; + var retn1 = _ProcResp(flag,aCorrInt[1],aUserInt[1],% +n,epsilon,domain,indepVars,oComp); + if (retn1 == -1 ) return null; + if (retn1 == null) return syntaxError(), null; + if (retn1 == 1) matchparts+=1; + var retn2 = _ProcResp(flag,aCorrInt[2],aUserInt[2],% +n,epsilon,domain,indepVars,oComp); + if (retn2 == -1 ) return null; + if (retn2 == null) return syntaxError(), null; + if (retn2 == 1) matchparts+=1; + if (matchparts == 4) { + var temp=aUserAns[j]; + aUserAns[j]=aUserAns[i]; + aUserAns[i]=temp; + match = match + 1; + } + } + numCorrect += (match) ? 1 : 0; + } + var success = (numCorrect == aCorrAns.length); + return notifyField(success, flag, fieldname); +} +\end{newsegment} +\end{library@holding} +\begin{library@holding}{indefIntegral} +\begin{newsegment}{dljslib: Indefinite Integral Handling} +function indefCompare(_a,_c,_v,_F,_G) { + var eqC; + var aAB = _a.split(","); + var aXY = _c.split(","); + var _V = _v.split(","); // e.g. _V[0] = "i:x" + var _n = aXY.length + for (var _i=0; _i< _n; _i++) { + if (_V[_i].charAt(0) == "r" ) + eval ( "var "+ _V[_i].charAt(2) + + " = " + aAB[2*_i] + ";"); + else // assume type "i" + eval ( "var "+ _V[_i].charAt(2) + + " = " + Math.ceil(aAB[2*_i]) + ";"); + } + var C = 0; + if ( app.viewerVersion >= 5) + { + var rtnCode = 0; + eval("try {if (isNaN(eqC = eval(_F)-eval(_G))) rtnCode=-1;}" + +" catch (e) { rtnCode=1; }"); + switch(rtnCode) + { + case 0: break; + case 1: return null; + case -1: return -1; + } + } + else + if (isNaN(eqC = eval(_F)-eval(_G))) return -1; + for (var _i=0; _i< _n; _i++) + { + if (_V[_i].charAt(0) == "r" ) + eval ( "var "+ _V[_i].charAt(2) + + " = " + aXY[_i] + ";"); + else // assume type "i" + eval ( "var "+ _V[_i].charAt(2) + + " = " + Math.ceil(aXY[_i]) + ";"); + } + _F = eval(_F); + if ( app.viewerVersion >= 5) + { + var rtnCode = 0; + eval("try { if(isNaN(_G = eval(_G))) rtnCode=-1; }" + +" catch (e) { rtnCode=1; }"); + switch(rtnCode) + { + case 0: break; + case 1: return null; + case -1: return -1; + } + } + else + if(isNaN(_G = eval(_G))) return -1; + return Math.abs( _F - _G - eqC ); +} +\end{newsegment} +\end{library@holding} +\@ifcheckedout{nodec} +\newcommand\nodecAlertMsg{% + "A decimal answer is not acceptable here. + Please express your answer using fractions, square roots, + e, log, etc."} +\fi +\begin{library@holding}{nodec} +\begin{newsegment}{dljslib: Contrib - No Decimals} +function nodec(UserAns) +{ + var dot = /[\.\aebdecimalpoint]/; + if (dot.test(UserAns)) { + eqAppAlert(\nodecAlertMsg,3); + return null; + } else return true; +} +\end{newsegment} +\end{library@holding} +\@ifcheckedout{noBinFac} +\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."} +\fi +\begin{library@holding}{noBinFac} +\begin{newsegment}{dljslib: Contrib - No Binomial Coefficients Allowed} +aReFact = new Array( + /(?=\()?(\d+)(?=\))?!/, + /(?=\[)?(\d+)(?=\])?!/, + /(?=\{)?(\d+)(?=\})?!/ +); +function noBinFac(UserAns) +{ + var bad = /(C\()/; + if (bad.test(UserAns)) { + eqAppAlert(\noBinFactBinCoeffAlertMsg,3); + return null; + } + bad = /(P\()/; + if (bad.test(UserAns)) { + eqAppAlert(\noBinFactPermAlertMsg,3); + return null; + } + for ( var i=0; i= 10 ) { + if (bAllowWrngNormSciNotn) + return true; + else + return eqAppAlert(\sciNotNormalForm,3), null; + } + else { + bItsNormSciNot=true; + return true + } + } else + return eqAppAlert(\sciNotSyntaxError,3), null; +} +function sciNotResp(UserAns) {return SciNotResp(UserAns);} +function postSciNotResp(UserAns) { + bAllowWrngNormSciNotn=false; + return bItsNormSciNot; +} +function NoNegExp (UserAns) { + var re=/(\^|\^\()+-/g; + UserAns=ChngAllGrpsToParens(UserAns); + if (re.test(UserAns)) + return eqAppAlert(\NoNegExpMsg,3), null; + return true; +} +function noNegExp(UserAns){return NoNegExp(UserAns)} +\end{newsegment} +\end{library@holding} +\begin{library@holding}{combinatorics} +\begin{newsegment}{dljslib: Contrib - Combinatorial Functions} +function ch(n,r) +{ + if ((n==r)||(r==0)) return(1); + if ((n==(r+1))||(r==1)) return(n); + if (r > (n-r)) + var coeff = factorialCancel( + expandFactorial(r+1,n),expandFactorial(1,n-r)); + else + var coeff = factorialCancel( + expandFactorial(n-r+1,n),expandFactorial(1,r)); + return (eval(coeff)); +} +function perm(n,r) +{ + if (r==0) return(1); + else + var coeff = factorialCancel( + expandFactorial(n-r+1,n),expandFactorial(1,n-r)); + return (eval(coeff)); +} +function expandFactorial(lo,hi) +{ + var f = lo; + for (var i=lo+1;i<=hi;i++) f = i+"*"+f; + return f; +} +function factorialCancel(top,bot) +{ + var num = top.split("*"); + var denom = bot.split("*"); + var len = denom.length; + var temp = 0; + var i, j; + for (i=0;i<=len-1;i++) { + for (j=0;j<=len-1;j++) { + temp = num[i]/denom[j]; + if ((temp - Math.round(temp)) == 0) { + num[i] = temp; + denom[j] = 1; + } + } + } + var t = denom.join(""); + var reg = /[^1]/; + if (reg.test(t)) { + temp = factorialCancel(denom.join("*"),num.join("*")); + } else { + temp = num.join("*"); + } + return (temp); +} +function fact(num) +{ + var tot = 1; + for (var r=1; r <= num; r++) tot *= r; + return(tot); +} +\end{newsegment} +\end{library@holding} +\begin{library@holding}{ImplMulti} +\begin{newsegment}{dljslib: Implied Multiplication} +function Ck4Products(UserInput) +{ + var re, aR; + for (var i=0; i> }} -\let\ef@adjHWxetex\relax -\def\eq@choice@driver{\ef@adjHWxetex - \Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \leavevmode\setbox\pdfm@box=% - \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim - <<\common@choiceCode>>}\unhbox\pdfm@box\relax% - \@pdfm@mark{put @afields @\Fld@name}% record in @afields array - \ifisCalculate\@pdfm@mark{put @corder @\Fld@name}\fi -\endgroup} -\def\eq@Button@driver{\Hy@pdfstringtrue - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi % 12/22 - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \setbox\pdfm@box=% - \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim - << \common@pushButtonCode >>}\unhbox\pdfm@box\relax% - \@pdfm@mark{put @afields @\Fld@name}% record in @afields array - \endgroup -} -\def\eq@RadioCheck@driver{\ef@adjHWxetex\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi - \setbox\pdfm@box=% - \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \@pdfm@mark{ann \dvipdfm@setdim - <<\common@RadioCheckCode>>}\unhbox\pdfm@box\relax% - \endgroup -} -\def\eq@l@check@driver{% - \setbox\pdfm@box=% - \hbox{\makebox[\eq@tmpdima]{\phantom{\link@@Content}}}% - \@pdfm@mark{ann \dvipdfm@setdim<<\common@RadioCheckCode>>}% - \unhbox\pdfm@box\relax\endgroup -} -\def\eq@TextField{\ef@adjHWxetex\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \leavevmode\setbox\pdfm@box=% - \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim - << \common@TextFieldCode >>}\unhbox\pdfm@box\relax% - \@pdfm@mark{put @afields @\Fld@name}% record in @afields array - \ifisCalculate\@pdfm@mark{put @corder @\Fld@name}\fi - \endgroup -} -\def\eq@SigField{\ef@adjHWxetex\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \leavevmode\setbox\pdfm@box=% - \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim - << \common@SigFieldCode >>}\unhbox\pdfm@box\relax% - \endgroup -} -\def\setLink@driver{% - \@eqBS{}\leavevmode - \@pdfm@mark{bann - <>}% - \Hy@colorlink{\@linkcolor}\link@@Box\Hy@endcolorlink - \@pdfm@mark{eann}% - \endgroup -} -\def\ef@setTabOrder{\ifx\ef@taborder\@empty\else - \@pdfm@mark{ put @thispage << /Tabs/\ef@taborder >> }% - \fi\endgroup -} -\endinput -%% -%% End of file `edvipdfm.def'. +%% +%% This is file `edvipdfm.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,edvipdfm') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\noPeek#1#2{\@pdfm@mark{put @thispage << \noPeekAction{#1}{#2} >> }} +\let\ef@adjHWxetex\relax +\def\eq@choice@driver{\ef@adjHWxetex + \Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \leavevmode\setbox\pdfm@box=% + \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim + <<\common@choiceCode>>}\unhbox\pdfm@box\relax% + \@pdfm@mark{put @afields @\Fld@name}% record in @afields array + \ifisCalculate\@pdfm@mark{put @corder @\Fld@name}\fi +\endgroup} +\def\eq@Button@driver{\Hy@pdfstringtrue + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi % 12/22 + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \setbox\pdfm@box=% + \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim + << \common@pushButtonCode >>}\unhbox\pdfm@box\relax% + \@pdfm@mark{put @afields @\Fld@name}% record in @afields array + \endgroup +} +\def\eq@RadioCheck@driver{\ef@adjHWxetex\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi + \setbox\pdfm@box=% + \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \@pdfm@mark{ann \dvipdfm@setdim + <<\common@RadioCheckCode>>}\unhbox\pdfm@box\relax% + \endgroup +} +\def\eq@l@check@driver{% + \setbox\pdfm@box=% + \hbox{\makebox[\eq@tmpdima]{\phantom{\link@@Content}}}% + \@pdfm@mark{ann \dvipdfm@setdim<<\common@RadioCheckCode>>}% + \unhbox\pdfm@box\relax\endgroup +} +\def\eq@TextField{\ef@adjHWxetex\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \leavevmode\setbox\pdfm@box=% + \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim + << \common@TextFieldCode >>}\unhbox\pdfm@box\relax% + \@pdfm@mark{put @afields @\Fld@name}% record in @afields array + \ifisCalculate\@pdfm@mark{put @corder @\Fld@name}\fi + \endgroup +} +\def\eq@SigField{\ef@adjHWxetex\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \leavevmode\setbox\pdfm@box=% + \hbox{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \@pdfm@mark{ann @\Fld@name\space\dvipdfm@setdim + << \common@SigFieldCode >>}\unhbox\pdfm@box\relax% + \endgroup +} +\def\setLink@driver{% + \@eqBS{}\leavevmode + \@pdfm@mark{bann + <>}% + \Hy@colorlink{\@linkcolor}\link@@Box\Hy@endcolorlink + \@pdfm@mark{eann}% + \endgroup +} +\def\ef@setTabOrder{\ifx\ef@taborder\@empty\else + \@pdfm@mark{ put @thispage << /Tabs/\ef@taborder >> }% + \fi\endgroup +} +\endinput +%% +%% End of file `edvipdfm.def'. diff --git a/texmf-dist/tex/latex/acrotex/eforms.sty b/texmf-dist/tex/latex/acrotex/eforms.sty index 2e1fea4d..fd54f4fe 100644 --- a/texmf-dist/tex/latex/acrotex/eforms.sty +++ b/texmf-dist/tex/latex/acrotex/eforms.sty @@ -1,1374 +1,1378 @@ -%% -%% This is file `eforms.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{eforms} - [2018/03/22 v2.9.19 Provides general eforms support (dps)] -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\RequirePackage{ifluatex} -\RequirePackage{calc} -\let\ef@driver\@empty -\DeclareOption{dvipsone}{\def\eq@drivernum{0}% - \def\eq@drivername{0}\def\ef@driver{dvipsone}% - \PassOptionsToPackage{dvipsone}{insdljs}% - \PassOptionsToPackage{dvipsone}{hyperref}% -} -\def\eq@drivername{2} -\DeclareOption{dvips}{\def\eq@drivernum{0}% - \def\eq@drivername{1}\def\ef@driver{dvips}% - \PassOptionsToPackage{dvips}{insdljs}% - \PassOptionsToPackage{dvips}{hyperref}% -} -\DeclareOption{pdftex}{% - \def\eq@drivernum{1}\def\eq@driver{pdftex}% - \def\eq@drivercode{epdftex.def}\def\ef@driver{pdftex}% -} -\DeclareOption{luatex}{% - \def\eq@drivernum{1}\def\eq@driver{luatex}% - \def\eq@drivercode{epdftex.def}\def\ef@driver{luatex}% -} -\DeclareOption{dvipdfm}{% - \def\eq@drivernum{2}\def\eq@driver{dvipdfm}% - \def\eq@drivercode{edvipdfm.def}\def\ef@driver{dvipdfm}% - \PassOptionsToPackage{dvipdfm}{insdljs} - \PassOptionsToPackage{dvipdfm}{hyperref} -} -\DeclareOption{dvipdfmx}{% - \def\eq@drivernum{2}\def\eq@driver{dvipdfmx}% - \def\eq@drivercode{edvipdfm.def}\def\ef@driver{dvipdfmx}% - \PassOptionsToPackage{dvipdfmx}{insdljs} - \PassOptionsToPackage{dvipdfmx}{hyperref} -} -\DeclareOption{xetex}{% - \def\eq@drivernum{2}\def\eq@driver{xetex}% - \def\eq@drivercode{edvipdfm.def}\def\ef@driver{xetex}% -} -\DeclareOption{textures}{% - \def\eq@drivernum{3}\def\eq@driver{textures}% - \def\eq@drivercode{epdfmark.def}\def\ef@driver{textures}% - \PassOptionsToPackage{textures}{insdljs}% - \PassOptionsToPackage{textures}{hyperref} -} -\def\eq@driver{dvipsone/dvips} -\def\eq@drivercode{epdfmark.def} -\DeclareOption{preview}{\previewtrue} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{insdljs}} -\@ifundefined{ifpreview}{\newif\ifpreview \previewfalse}{} -\providecommand{\previewOn}{\previewtrue} -\providecommand{\previewOff}{\previewfalse} -\DeclareOption{useui}{\AtEndOfPackage{\ef@InputUIeForms}} -\def\ef@InputUIeForms{\InputIfFileExists{uieforms.def}% - {\PackageInfo{eforms}{Inputting code for useui option}}% - {\PackageInfo{eforms}{Cannot find uieforms.def.\MessageBreak - Reinstall or refresh your file name database.}}} -\DeclareOption{setcorder}{\def\inputCalcOrderJS{% - \InputIfFileExists{setcorder.def}% - {\PackageInfo{eforms}{Inputting code for setcorder option}}% - {\PackageWarning{eforms}{Cannot find setcorder.def.\MessageBreak - Reinstall or refresh your file name database.}}}} -\let\inputCalcOrderJS\relax -\@ifpackageloaded{web}{% - \ExecuteOptions{\eq@driver@name}% -}{% - \@ifpackageloaded{exerquiz}{% - \ExecuteOptions{\eq@driver}% - }{% - \ifluatex\ExecuteOptions{luatex}\else - \ifpdf\ExecuteOptions{pdftex}\else - \ifxetex\ExecuteOptions{xetex}\else - \@ifundefined{l@tex@@@@driver}{\ExecuteOptions{dvips}} - {\ExecuteOptions{dvipsone}}\fi\fi\fi - }% -} -\ProcessOptions -\ifx\ef@driver\@empty - \PackageError{eforms}% - {You have not specified dvips, dvipsone, pdftex,\MessageBreak - dvipdfm, dvipdfmx, or xetex in the option list of\MessageBreak - the eforms package} - {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, - dvipdfmx, or xetex - \MessageBreak in the option list of the eforms package.}% -}{} -\fi -\newlength\eflength -\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse -\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi -\RequirePackage{hyperref} -\ifxetex\else\ifpdf\pdflinkmargin1bp\relax\else - \g@addto@macro\Hy@FirstPageHook{% - \headerps@out{/HyperBorder {1.00375 PDFToDvips} def}} -\fi\fi -\RequirePackage{insdljs}[2017/01/03] % incl conv-xkv -\@ifpackageloaded{exerquiz}{}{% - \AtBeginDocument{\Form} - \AtEndDocument{\csname endForm\endcsname} -} -\@ifpackageloaded{aeb_pro}{}{% - \newcommand{\taggedPDF}{% - \ifnum\eq@drivernum=0\relax - \literalps@out{[{Catalog} <<% - /MarkInfo<>% - >> /PUT pdfmark}\fi}% -} -\let\ef@YES=y \let\ef@NO=n -\let\ef@One=1 \let\ef@Zero=0 -\ifnum\eq@drivername<2 -\let\to@usepdfmark\ef@One -\RequirePackage[structure]{taborder}\else -\let\to@usepdfmark\ef@Zero -\RequirePackage{taborder} -\fi -\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{} -\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} -\@ifundefined{eq@tmpdimb}{\newdimen\eq@tmpdimb}{} -\newlength\ef@dimena -\newtoks\ef@scratchtoks -\newif\ifmakeXasPD \makeXasPDtrue % 12/22 -\newif\ifmakePDasX \makePDasXfalse -\def\makeXasPDOn{\makeXasPDtrue\makePDasXfalse} -\def\makeXasPDOff{\makeXasPDfalse} -\def\makePDasXOn{\makePDasXtrue\makeXasPDfalse} -\def\makePDasXOff{\makePDasXfalse} -\providecommand\ckboxColor[1]{\def\@rgi{#1}\ifx\@rgi\@empty - \let\ckbox@Color\relax\else - \def\ckbox@Color{\color{#1}}\fi}\let\ckbox@Color\relax -\def\ef@Bbox#1#2{\hbox{\ifpreview - \setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% - \@tempdima=#1\advance\@tempdima by-\fboxrule - \@tempdimb=#2\advance\@tempdimb by-\fboxrule \ckbox@Color - \fbox{\parbox[b][\@tempdimb][c]{\@tempdima}{\hfill\vfill}}\else - \parbox[b][#2][c]{#1}{\hfill\vfill}\fi}% -} -\let\Bbox\ef@Bbox -\let\ef@passedArgs\@empty -\def\processAppArgs#1#2{% - \ifx\end#1% if #1=\end, #2=\@nil. - \let\ef@next\relax - \else - \ifx#1\@empty - \def\ef@next{\processAppArgs}% - \else - \@getCmdName{\ui}\edef\arg@ui{\@CmdName}% - \@getCmdName{#1}% - \ifx\arg@ui\@CmdName - \@ifundefined{@equi}{\PackageError{eforms}% - {The user interface '\string\ui' is not defined!% - \MessageBreak Use the useui option of eforms - and try again}{I said, use the useui option of - eforms and try again!}}{}% - \def\ef@next{\setkeys{eforms}{#2}% - \processAppArgs\presets{\ef@passedArgs}}% - \else - \@getCmdName{\Ff}\edef\arg@Ff{\@CmdName}% - \@getCmdName{#1}% - \ifx\arg@Ff\@CmdName % if \Ff, let's add arguments - \ifx\eq@Ff\@empty\def\eq@FfValue{0}\else - \expandafter\getFfValue\eq@Ff\@nil\fi - \@tempcnta=\eq@FfValue - \def\eq@arg{#2}% - \ifx\eq@arg\@empty\else - \advance\@tempcnta by#2\fi - \edef\eq@Ff{/Ff \the\@tempcnta}% - \def\ef@next{\processAppArgs}% - \else - \@getCmdName{\F}\edef\arg@F{\@CmdName}% - \@getCmdName{#1}% - \ifx\arg@F\@CmdName % if \Ff, let's add arguments - \ifx\eq@F\@empty\def\eq@FValue{0}\else - \expandafter\getFValue\eq@F\@nil\fi - \@tempcnta=\eq@FValue - \def\eq@arg{#2}% - \ifx\eq@arg\@empty\else - \advance\@tempcnta by#2\fi - \edef\eq@F{/F \the\@tempcnta}% - \def\ef@next{\processAppArgs}% - \else - \@getCmdName{\presets}% - \edef\arg@presets{\@CmdName}\@getCmdName{#1}% - \ifx\arg@presets\@CmdName - \def\ef@next{\expandafter\processAppArgs#2}% - \else - \csname @eq% - \expandafter\@gobble\string#1\endcsname{#2}% - \def\ef@next{\processAppArgs}% - \fi - \fi - \fi - \fi - \fi - \fi - \ef@next -} -\def\@processEvery{\edef\eqtemp{}\toks0={}\@@processEvery} -\def\@@processEvery#1{% - \ifx#1\end\def\ef@next{\the\toks0 }% - \else - \edef\eqtemp{\the\toks0 }% - \toks0=\expandafter{\eqtemp - \expandafter\processAppArgs#1\end\@nil}% - \def\ef@next{\@@processEvery}% - \fi - \ef@next -} -\newdimen\eqcenterWidget -\def\centerWidget#1{% - \ifeq@inlineCenter - \eqcenterWidget=#1\relax - \eqcenterWidget=.5\eqcenterWidget - \ifnum\eq@textSize=0\relax - \dimen@=-\eq@textSizeDefault bp\else - \dimen@=-\eq@textSize bp\fi - \dimen@=0.9167\dimen@ % 11/12 - \dimen@=.5\dimen@ - \advance\dimen@\eq@W@value bp - \ifx\eq@S\@empty\else - \def\eq@S@cmp{B}% - \ifx\eq@S@value\eq@S@cmp - \advance\dimen@ by \eq@W@value bp - \else - \def\eq@S@cmp{I}% - \ifx\eq@S@value\eq@S@cmp - \advance\dimen@ by \eq@W@value bp - \else\advance\dimen@ by 1bp - \fi\fi\fi - \advance\eqcenterWidget by \dimen@ - \else - \eqcenterWidget=#1\relax - \eqcenterWidget=.5\eqcenterWidget - \advance\eqcenterWidget by -4bp - \fi -} -\def\@eqF#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@F\@empty\else\def\eq@F{/F #1}\fi}\def\eq@F{} -\def\@eqBS#1{% - \let\eq@BS=0\relax - \ifx\eq@W\@empty\else\let\eq@BS=1\fi - \ifx\eq@S\@empty\else\let\eq@BS=1\fi - \ifx\eq@D\@empty\else\let\eq@BS=1\fi - \edef\link@BS{\if\eq@BS1/BS<<\eq@W\eq@S\eq@D>>\fi}% - \ifx\eq@W\@empty\let\link@BS\@empty\fi -}\def\link@BS{} -\def\@eqpresets#1{#1}% -\def\@eqW#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@W\@empty\def\eq@W@value{0}\else - \def\eq@W@value{#1}\def\eq@W{/W #1}\fi - \xdef\g@eq@W@value@bp{\eq@W@value bp}} -\def\eq@W{}\def\eq@W@value{0} -\def\g@eq@W@valu@bp{0bp} % dps 12/22 -\def\@eqS#1{\def\eq@S@value{#1}\ifx\eq@S@value\@empty - \let\eq@S\@empty\else - \def\eq@S{/S/#1}\def\eq@temp{D}% - \ifx\eq@S@value\eq@temp - \ifx\eq@D\@empty\def\eq@D{/D [3]}\fi - \fi\fi}\def\eq@S{} -\def\@eqD#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@D\@empty\else - \def\eq@D{/D [#1]}\fi}\def\eq@D{} -\def\@eqBorder#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Border\@empty\else\def\eq@Border{/Border [#1]}\fi}% -\def\eq@Border{/Border [0 0 0]} -\def\@eqAP#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AP\@empty\else\def\eq@AP{/AP<<#1>>}\fi}% - \let\eq@AP\@empty - \def\@eqOn#1{\def\eq@On{/#1}}\def\eq@On{/Yes} -\def\@eqAS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AS\@empty\else\ifpdfmarkup\def\eq@AS{/AS(#1) cvn }\else - \def\eq@AS{/AS/#1}\fi\fi}\def\eq@AS{} -\def\ef@gobbleToendmarker#1\ef@endmarker{} -\let\ef@endmarker\relax -\def\ef@end{\end}\def\ef@true{true} -\def\ef@rPage#1{\@tempcnta=#1\relax\advance\@tempcnta-1 - \edef\rPage##1{\the\@tempcnta}} -\long\def\ef@searchrPage#1\rPage#2#3\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\rPage{#2}\fi} -\def\ef@searchmlLink#1\mlLink#2#3\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\let\ef@mlLink\ef@Zero\else - \ifx\ef@argii\ef@true\let\ef@mlLink\ef@One\else - \let\ef@mlLink\ef@Zero\fi\fi} -\def\ef@searchGoToR#1/GoToR#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@filecolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@searchURI#1/URI#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@urlcolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@searchCmdURI#1\URI#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@urlcolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@searchNamed#1/Named#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@menucolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@searchCmdNamed#1\Named#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@menucolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@searchLaunch#1/Launch#2\@nil{\def\ef@argii{#2}% - \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% - \def\ef@thislinkcolor{\@runcolor}\fi - \expandafter\ef@gobbleToendmarker\fi} -\def\ef@preprocessA#1{% - \let\rPage\relax\edef\ef@argi{#1}% - \ifx\annot@type\annot@type@link - \expandafter\ef@searchGoToR\ef@argi/GoToR\end\@nil - \expandafter\ef@searchURI\ef@argi/URI\end\@nil - \expandafter\ef@searchCmdURI\ef@argi\URI\end\@nil - \expandafter\ef@searchNamed\ef@argi/Named\end\@nil - \expandafter\ef@searchCmdNamed\ef@argi\Named\end\@nil - \expandafter\ef@searchLaunch\ef@argi/Launch\end\@nil - \ef@endmarker\fi - \let\rPage\ef@rPage - \expandafter\ef@searchrPage\ef@argi\rPage\end\@nil -} -\def\@eqA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@A\@empty\else\ef@preprocessA{#1}% - \def\eq@A{/A <<#1>>}\fi}\def\eq@A{} -\def\@eqmlLink#1{\def\eq@arg{#1}\ifx\eq@arg\ef@true - \let\ef@mlLink\ef@One\else\let\ef@mlLink\ef@Zero\fi} -\def\@eqLock#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Lock\@empty\else\def\eq@Lock{/Lock <<#1>>}\fi} - \def\eq@Lock{} -\newif\ifisCalculate\isCalculatefalse -\def\ef@searchCalc#1\AACalculate#2\@nil{% - \ifx#2\end\else\aftergroup\isCalculatetrue\fi -} -\def\@eqAA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty\let\eq@AA\@empty - \else\begingroup\ef@searchCalc#1\AACalculate\end\@nil\endgroup - \def\eq@AA{/AA <<#1>>}\fi} -\def\eq@AA{/AA <<\eq@AAmouseup\eq@AAmousedown\eq@AAmouseenter% - \eq@AAmouseexit\eq@AAonfocus\eq@AAonblur\eq@AAformat% - \eq@AAkeystroke\eq@AAvalidate\eq@AAcalculate\eq@AApageopen% - \eq@AApageclose\eq@AApagevisible\eq@AApageinvisible>>} -\def\@eqAAmouseup#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAmouseup\@empty\else\def\eq@AAmouseup{/U<<\JS{#1}>>}\fi} -\let\eq@AAmouseup\@empty -\def\@eqAAmousedown#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAmousedown\@empty\else - \def\eq@AAmousedown{/D<<\JS{#1}>>}\fi} -\let\eq@AAmousedown\@empty -\def\@eqAAmouseenter#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAmouseenter\@empty\else - \def\eq@AAmouseenter{/E<<\JS{#1}>>}\fi} -\let\eq@AAmouseenter\@empty -\def\@eqAAmouseexit#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAmouseexit\@empty\else - \def\eq@AAmouseexit{/X<<\JS{#1}>>}\fi} -\let\eq@AAmouseexit\@empty -\def\@eqAAonfocus#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAonfocus\@empty\else - \def\eq@AAonfocus{/Fo<<\JS{#1}>>}\fi} -\def\@eqAAmousefocus{\@eqAAonfocus} -\let\eq@AAonfocus\@empty -\def\@eqAAonblur#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAonblur\@empty\else - \def\eq@AAonblur{/Bl<<\JS{#1}>>}\fi} -\def\@eqAAmouseblur{\def\@eqAAonblur} -\let\eq@AAonblur\@empty -\def\@eqAAformat#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAformat\@empty\else - \def\eq@AAformat{/F<<\JS{#1}>>}\fi} -\let\eq@AAformat\@empty -\def\@eqAAkeystroke#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAkeystroke\@empty\else - \def\eq@AAkeystroke{/K<<\JS{#1}>>}\fi} -\let\eq@AAkeystroke\@empty -\def\@eqAAvalidate#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAvalidate\@empty\else - \def\eq@AAvalidate{/V<<\JS{#1}>>}\fi} -\let\eq@AAvalidate\@empty -\def\@eqAAcalculate#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AAcalculate\@empty\else\isCalculatetrue - \def\eq@AAcalculate{/C<<\JS{#1}>>}\fi} -\let\eq@AAcalculate\@empty -\def\@eqAApageopen#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AApageopen\@empty\else - \def\eq@AApageopen{/PO<<\JS{#1}>>}\fi} -\let\eq@AApageopen\@empty -\def\@eqAApageclose#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AApageclose\@empty\else - \def\eq@AApageclose{/PC<<\JS{#1}>>}\fi} -\let\eq@AApageclose\@empty -\def\@eqAApagevisible#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AApagevisible\@empty\else - \def\eq@AApagevisible{/PV<<\JS{#1}>>}\fi} -\let\eq@AApagevisible\@empty -\def\@eqAApageinvisible#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AApageinvisible\@empty\else - \def\eq@AApageinvisible{/PI<<\JS{#1}>>}\fi} -\let\eq@AApageinvisible\@empty -\def\@eqDA#1{\def\eq@DA{#1}} -\def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% -\def\@eqtextFont#1{\def\eq@textFont{/#1}} -\def\eq@textFont{/Helv} -\def\@eqtextSize#1{\def\eq@textSize{#1}} -\def\eq@textSizeDefault{9} -\edef\eq@textSize{\eq@textSizeDefault} -\def\eq@RV@Body{} -\def\eq@RV@endBody{} -\def\@eqRV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@RV\@empty\else\def\eq@RV{/RV(\eq@RV@Body#1% - \eq@RV@endBody)\fi}}\def\eq@RV{} -\def\@eqDS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@DS\@empty\else\def\eq@DS{/DS(#1)\fi}}\def\eq@DS{} -\def\@eqtextColor#1{\ef@parsePDFColor{#1}% - \HyColor@IfXcolor{% - \expandafter\HyColor@FieldColor% - \expandafter{\ef@colorSpec@out}{\eq@textColor}{}{}% - }{\edef\eq@textColor{\ef@colorSpec@out}}% -} -\def\eq@textColor{0 g} -\def\@eqQ#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Q\@empty\else\def\eq@Q{/Q #1}\fi}\def\eq@Q{} -\def\ef@isunicode#1\unicodeStr#2\@nil{\def\argi{#1}% - \ifx\argi\@empty\def\ifbool@ef{iftrue}\else - \def\ifbool@ef{iffalse}\fi} -\def\@eqDV#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equDV{#1}\else - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@DV\@empty\else - \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% - \edef\eq@DV{/DV(\ef@uni@temp)}\makespecialJS\fi\fi}\def\eq@DV{} -\def\ef@pdfCRLFTABDefns{% - \def\r{\textCR}\def\t{\textHT}\def\n{\textLF}} -\def\@eqnuDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@DV\@empty\else\def\eq@DV{/DV(#1)}\fi} -\def\@equDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@DV\@empty\else\def\eq@DV{/DV<#1>}\fi} -\def\@eqV#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equV{#1}\else - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@V\@empty\else - \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% - \edef\eq@V{/V(\ef@uni@temp)}\makespecialJS\fi\fi}\def\eq@V{} -\def\@eqnuV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@V\@empty\else\def\eq@V{/V(#1)}\fi} -\def\@equV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@V\@empty\else\def\eq@V{/V<#1>}\fi}% -\def\@eqTU#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equTU{#1}\else - \def\eq@arg{#1}\let\r@save\r\let\r\textCR - \ifx\eq@arg\@empty\let\eq@TU\@empty\else - \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% - \edef\eq@TU{/TU(\ef@uni@temp)}\makespecialJS\fi\fi - \let\r\r@save}\def\eq@TU{} -\def\@equTU#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@TU\@empty\else\def\eq@TU{/TU<#1>}\fi} -\def\@eqFf#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Ff\@empty\else\def\eq@Ff{/Ff #1}\fi} - \def\eq@Ff{} -\def\@eqMaxLen#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@MaxLen\@empty\else\def\eq@MaxLen{/MaxLen #1}\fi}% - \def\eq@MaxLen{} -\def\@eqH#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@H\@empty\else\def\eq@H{/H/#1}\fi}\def\eq@H{} -\def\@eqMK#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@MK\@empty\else\def\eq@MK{/MK << #1 >> }\fi}% - \def\eq@MK{} - \let\@vertRotate=0 - \def\@eqR#1{\def\eq@R@value{#1}\ifx\eq@R@value\@empty - \let\eq@R\@empty\else - \@tempcnta=\eq@R@value\relax - \ifnum\@tempcnta<0 \@tempcnta=-\@tempcnta\fi - \ifnum\@tempcnta=0 \else\ifnum\@tempcnta=180 \else - \let\@vertRotate=1\fi\fi - \def\eq@R{/R #1}\fi} - \def\eq@R{} - \def\@eqBC#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@BC\@empty\else % 2010/07/23 - \expandafter\ef@isitnamed\eq@arg\ef@nil - \ifx\ef@latex@color\ef@y\expandafter - \HyColor@XZeroOneThreeFour\expandafter{\eq@arg}{\eq@BC}{}{}% - \edef\eq@BC{/BC [\eq@BC]}\else - \def\eq@BC{/BC [#1]}\fi - \fi} - \def\eq@BC{} - \def\@eqBG#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@BG\@empty\else % 2010/07/23 - \expandafter\ef@isitnamed\eq@arg\ef@nil - \ifx\ef@latex@color\ef@y\expandafter - \HyColor@XZeroOneThreeFour\expandafter{\eq@arg}{\eq@BG}{}{}% - \edef\eq@BG{/BG [\eq@BG]}\else - \def\eq@BG{/BG [#1]}\fi - \fi} - \def\eq@BG{} - \def\@eqCA#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equCA{#1}\else - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@CA\@empty\let\ef@kvCA\@empty - \else\ef@pdfCRLFTABDefns - \pdfstringdef\ef@uni@temp{#1}% - \def\eq@CA{#1}\edef\ef@kvCA{/CA(\ef@uni@temp)}% - \makespecialJS\fi\fi} - \def\eq@CA{}\def\ef@kvCA{} - \def\@equCA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@CA\@empty\let\ef@kvCA\@empty - \else\def\eq@CA{#1}\def\ef@kvCA{/CA<#1>}\fi} - \def\@eqRC#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equRC{#1}\else - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@RC\@empty\let\ef@kvRC\@empty - \else\ef@pdfCRLFTABDefns - \pdfstringdef\ef@uni@temp{#1}% - \def\eq@RC{#1}\edef\ef@kvRC{/RC(\ef@uni@temp)}% - \makespecialJS\fi\fi} - \def\eq@RC{}\def\ef@kvRC{} - \def\@equRC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@RC\@empty\let\ef@kvRC\@empty - \else\def\eq@RC{#1}\def\ef@kvRC{/RC<#1>}\fi} - \def\@eqAC#1{\ef@isunicode#1\unicodeStr\@nil - \expandafter\csname\ifbool@ef\endcsname\@equAC{#1}\else - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AC\@empty\let\ef@kvAC\@empty - \else\ef@pdfCRLFTABDefns - \pdfstringdef\ef@uni@temp{#1}% - \def\eq@AC{#1}\edef\ef@kvAC{/AC(\ef@uni@temp)}% - \makespecialJS\fi\fi} - \def\eq@AC{}\def\ef@kvAC{} - \def\@equAC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@AC\@empty\let\ef@kvAC\@empty - \else\def\eq@AC{#1}\def\ef@kvAC{/AC<#1>}\fi} -\def\eq@define@IconMK{\def\eq@IconMK{\eq@I\eq@RI\eq@IX\eq@TP - /IF<<\eq@SW\eq@ST\eq@PA\eq@FB>>}} -\let\eq@IconMK\@empty -\ifpdf\def\eq@relRef#1{0 0 R}\else %{#1\space 0 R} - \ifxetex\def\eq@relRef#1{#1}\else - \def\eq@relRef#1{{#1}}\fi\fi -\def\ef@null{null} -\def\@eqI#1{\ifx\annot@type\annot@type@button - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@I\@empty\else - \def\eq@I{/I \eq@relRef{#1}}% - \ifpdf\ifx\eq@arg\ef@null - \def\eq@I{/I 0 0 R}\fi\fi - \eq@define@IconMK\fi\fi} -\def\eq@I{} -\def\@eqRI#1{\ifx\annot@type\annot@type@button - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@RI\@empty\else - \def\eq@RI{/RI \eq@relRef{#1}}% - \ifpdf\ifx\eq@arg\ef@null - \def\eq@RI{/RI 0 0 R}\fi\fi - \eq@define@IconMK\fi\fi} -\def\eq@RI{} -\def\@eqIX#1{\ifx\annot@type\annot@type@button - \def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@IX\@empty\else - \def\eq@IX{/IX \eq@relRef{#1}}% - \ifpdf\ifx\eq@arg\ef@null - \def\eq@IX{/IX 0 0 R}\fi\fi - \eq@define@IconMK\fi\fi} -\def\eq@IX{} -\def\@eqTP#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@TP\@empty\else\def\eq@TP{/TP #1}\fi} -\def\eq@TP{/TP 0} % default 0 -\def\@eqSW#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@SW\@empty\else\def\eq@SW{/SW/#1}\fi} -\def\eq@SW{/SW/A} % the default, always scale -\def\@eqST#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@ST\@empty\else\def\eq@ST{/S/#1}\fi} -\def\eq@ST{/S/P} % the default, proportional scaling -\def\@eqPA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@PA\@empty\else\def\eq@PA{/A [#1]}\fi} -\def\eq@PA{/A [0.5 0.5]} % the default -\def\@eqFB#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@PA\@empty\else\def\eq@FB{/FB #1}\fi} -\def\eq@FB{/FB false} % the default -\def\@eqmkIns#1{\def\eq@mkIns{#1}}\def\eq@mkIns{} -\def\@eqOpt#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Opt\@empty\else\def\eq@Opt{/Opt [#1]}\fi} - \def\eq@Opt{} -\def\@eqTI#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@TI\@empty\else\def\eq@TI{/TI #1}\fi} - \def\eq@TI{} -\def\@eqrawPDF#1{\def\eq@rawPDF{#1}}\def\eq@rawPDF{} -\def\@eqQuadPoints#1{\def\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@QuadPoints\@empty\else - \def\eq@QuadPoints{/QuadPoints {#1}}\fi} -\def\eq@QuadPoints{} -\def\@eqColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \let\eq@Color\@empty\else - \HyColor@XZeroOneThreeFour{#1}{\eq@Color}{}{}% - \edef\eq@Color{/C[\eq@Color]}\fi} -\def\eq@Color{} -\def\@eqlinktxtcolor#1{% - \def\ef@argi{#1}\ifHy@colorlinks - \ifx\ef@argi\@empty\let\ef@colorthislink\normalcolor\else - \let\ef@linktxtcolor@set=1\def\ef@thislinkcolor{#1}\fi\fi -}\let\ef@linktxtcolor@set=0 -\def\@eqrectH#1{\def\eq@rectH{#1}\ifx\eq@rectH\@empty\else - \setlength\eflength\eq@rectH\edef\eq@rectH{\the\eflength}\fi} -\def\@eqrectW#1{\def\eq@rectW{#1}\ifx\eq@rectW\@empty\else - \setlength\eflength\eq@rectW\edef\eq@rectW{\the\eflength}\fi} -\def\@eqobjdef#1{\def\ef@arg{#1}\ifx\ef@arg\@empty - \let\eq@objdef\@empty\else\def\eq@objdefName{#1}% - \def\eq@objdef{/_objdef {#1}}\fi -} -\let\eq@objdef\@empty -\def\@eqtaborder#1{\def\ef@arg{#1}\ifx\ef@arg\@empty - \let\eq@taborder\@empty\else - \def\eq@taborder{#1}\fi -} -\let\eq@taborder\@empty -\def\ef@y{y}\def\ef@n{n} -\def\@eqautoCenter#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y - \let\autoCenter\ef@y\else\ifx\ef@arg\ef@n - \let\autoCenter\ef@n\else\let\autoCenter\ef@y - \PackageWarning{eforms}{The value of '#1' is not a - supported value\MessageBreak for \string\autoCenter.\MessageBreak - Using the default of 'y'}% - \fi\fi} -\let\autoCenter\ef@y -\newif\ifeq@inlineCenter \eq@inlineCenterfalse -\let\inlineCenter=n -\def\@eqinline#1{\eq@inlineCenterfalse - \def\ef@arg{#1}\ifx\ef@arg\ef@y - \let\inlineCenter\ef@y\eq@inlineCentertrue\else - \ifx\ef@arg\ef@n\let\inlineCenter\ef@n\else\let\inlineCenter\ef@n - \PackageWarning{eforms}{The value of '#1' is not a - supported value\MessageBreak for \string\inline.\MessageBreak - Using the default of 'n'}% - \fi\fi} -\def\@eqsymbolchoice#1{\expandafter\ifx\csname eq@#1\endcsname\relax - \typeout{exerquiz: `#1' is not an acceptable option - for \string\symbolechoice, inserting default, `check'.} - \edef\symbol@choice{\eq@check}\else - \edef\symbol@choice{\csname eq@#1\endcsname}\fi -} -\newif\iffixmlinks \fixmlinkstrue -\def\mlfixOn{\fixmlinkstrue} -\def\mlfixOff{\fixmlinksfalse} -\def\@eqmlfix#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y - \mlfixOn\else\ifx\ef@arg\ef@n - \mlfixOff\else\mlfixOn - \PackageWarning{eforms}{The value of '#1' is not a - supported value\MessageBreak for \string\mlfix.\MessageBreak - Using the default of 'y'}% - \fi\fi} -\newbox\mlstrutbox -\def\@eqmlstrut#1{\setbox\mlstrutbox\hbox{#1}% - \def\ml@strut{\vrule \@height\ht\mlstrutbox - \@depth\dp\mlstrutbox - \@width\z@\relax}} -\def\ml@strut{\relax\ifmmode\copy\mlstrutbox\else - \unhbox\mlstrutbox\fi} -\@eqmlstrut{\strut} -\def\@eqmlcrackat#1{\def\eq@mlcrackat{#1}} -\let\eq@mlcrackat\@empty -\def\@eqmlhyph#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y - \def\eq@mlhyph{-}\else\ifx\ef@arg\ef@n - \let\eq@mlhyph\@empty\else\let\eq@mlhyph\@empty - \PackageWarning{eforms}{The value of '#1' is not a - supported value\MessageBreak for \string\mlhyph.\MessageBreak - Using the default of 'n'}\fi\fi} -\let\eq@mlhyph\@empty -\def\@eqmlignore#1{\let\eq@mlignore\ef@YES} -\let\eq@mlignore\ef@NO -\def\@eqmlcrackinsat#1{\def\eq@mlcrackinsat{#1}} -\let\eq@mlcrackinsat\@empty -\def\eq@protect#1{\let#1\@empty} -\begingroup\catcode`\#=12 \catcode`*=6 - \ifpdfmarkup - \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\else - \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\fi -\endgroup -\def\efHxError{\PackageError{eforms}{The glyph is not supported}{}} -\def\HGERROR{efHxError} -\ifpdfmarkup - \def\HexGlyph#1#2{\def\arg@ii{#2}\ifx\arg@ii\HGERROR - \global\@namedef{efHex#1}{\csname#2\endcsname}\else - \global\@namedef{efHex#1}{\expandafter - \string\csname#2\endcsname}\fi} -\else - \begingroup\catcode`\#=12 \catcode`*=6 - \gdef\HexGlyph*1*2{\def\arg@ii{*2}\ifx\arg@ii\HGERROR - \global\@namedef{efHex*1}{\csname*2\endcsname}\else - \global\@namedef{efHex*1}{#*1}\fi} - \endgroup -\fi -\def\ef@inputPDFHEX{\InputIfFileExists{pdfdochex.def} - {\PackageInfo{eforms}{Inputting pdfdochex.def}}{}} -\AtEndOfPackage{\ef@inputPDFHEX} -\def\ef@semicolon{;} -\def\ef@stripsemi#1;\@nil{\def\ef@colorSpec@out{#1}} -\def\ef@isitnamed{\let\ef@latex@color\ef@y - \@ifnextchar[{\ef@gobbletonil}{% - \@tfor\mytok:=.0123456789\do{% - \if\mytok\@let@token - \let\ef@latex@color\ef@n - \@break@tfor\fi}\ef@gobbletonil}} -\def\ef@gobbletonil#1\ef@nil{} -\def\ef@parsePDFColor#1{\edef\ef@color@arg{#1}\ef@parsePDFColori} -\def\ef@parsePDFColori{% - \expandafter\ef@@parsePDFColor\ef@color@arg; ; ; ; ; ;\\} -\def\ef@@parsePDFColor#1 #2 #3 #4 #5 #6\\{% - \def\argii{#2}\def\ef@cmp{g;}% - \ifx\argii\ef@cmp - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \def\ef@colorSpec@out{#1 g}\else - \def\ef@colorSpec@out{[gray]{#1}}% - \fi - \else\ifx\argii\ef@semicolon - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \ef@isitnamed#1\ef@nil - \ifx\ef@latex@color\ef@n - \ef@stripsemi#1\@nil - \edef\ef@colorSpec@out{\ef@colorSpec@out\space g}% - \else - \ef@stripsemi#1\@nil - \PackageWarning{eforms}{Color specification - `\ef@colorSpec@out' not supported\MessageBreak - without xcolor, using a black color} - \def\ef@colorSpec@out{0 g}% - \fi - \else % xcolor - \ef@isitnamed#1\ef@nil - \ifx\ef@latex@color\ef@n - \ef@stripsemi#1\@nil - \edef\ef@colorSpec@out{[gray]{\ef@colorSpec@out}}% - \else - \ef@stripsemi#1\@nil - \edef\ef@colorSpec@out{\ef@colorSpec@out}% - \fi - \fi - \else % not semicolon - \def\argiv{#4}\def\ef@cmp{rg;}% - \ifx\argiv\ef@cmp - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \def\ef@colorSpec@out{#1 #2 #3 rg}\else - \def\ef@colorSpec@out{[rgb]{#1,#2,#3}}\fi - \else\ifx\argiv\ef@semicolon - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \ef@stripsemi#1 #2 #3\@nil - \edef\ef@colorSpec@out{\ef@colorSpec@out\space rg}\else - \ef@stripsemi#3\@nil - \edef\ef@colorSpec@out{[rgb]{#1,#2,\ef@colorSpec@out}}\fi - \else - \def\argv{#5}\edef\ef@cmp{k;} - \ifx\argv\ef@cmp - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \def\ef@colorSpec@out{#1 #2 #3 #4 k}\else - \def\ef@colorSpec@out{[cmyk]{#1,#2,#3,#4}}\fi - \else - \ifx\argv\ef@semicolon - \ef@stripsemi#1 #2 #3 #4\@nil - \expandafter\ifx\csname convertcolorspec\endcsname\relax - \edef\ef@colorSpec@out{\ef@colorSpec@out\space k}\else - \ef@stripsemi#4\@nil - \edef\ef@colorSpec@out{% - [cmyk]{#1,#2,#3,\ef@colorSpec@out}}\fi - \else\ef@parseColor@iv - \fi\fi\fi\fi\fi\fi -} -\def\ef@parseColor@iv{\PackageError{AeB}{% - The number of arguments - is incorrect.\MessageBreak I was expecting - 1, 3, or 4 components of color}{Specify the correct number of - components for the color space.}} -\def\calcOrder#1{\let\efCalcOrder\@gobble - \@for\coi:=#1\do{\edef\efCalcOrder{\efCalcOrder,"\coi"}}% - \edef\efCalcOrder{[\efCalcOrder]}} -\@onlypreamble\calcOrder -\def\efCalcOrder{[]} -\def\eq@check{4} -\def\eq@circle{l} -\def\eq@cross{8} -\def\eq@diamond{u} -\def\eq@square{n} -\def\eq@star{H} -\let\symbolchoice\@eqsymbolchoice -\symbolchoice{check} -\providecommand{\JS}[1]{/S/JavaScript/JS(#1)} -\newcommand{\URI}[1]{/S/URI/URI(#1)} -\providecommand{\Named}[1]{/S/Named/N/#1} -\newcommand{\Next}[1]{/Next<<#1>>} -\providecommand{\toggleAttachmentsPanel}[2]{% - \setLink[\Border{0 0 0}\A{\Named{ShowHideFileAttachment}}] - {\textcolor{#1}{#2}}}% -\newcommand{\AAMouseUp}[1]{/U<<#1>>} -\newcommand{\AAMouseDown}[1]{/D<<#1>>} -\newcommand{\AAMouseEnter}[1]{/E<<#1>>} -\newcommand{\AAMouseExit}[1]{/X<<#1>>} -\newcommand{\AAOnFocus}[1]{/Fo<<#1>>} -\newcommand{\AAOnBlur}[1]{/Bl<<#1>>} -\newcommand{\AAFormat}[1]{/F<<\JS{#1}>>} -\newcommand{\AAKeystroke}[1]{/K<<\JS{#1}>>} -\newcommand{\AAValidate}[1]{/V<<\JS{#1}>>} -\newcommand{\AACalculate}[1]{/C<<\JS{#1}>>} -\newcommand{\AAPageOpen}[1]{/PO<<\JS{#1}>>} -\newcommand{\AAPageClose}[1]{/PC<<\JS{#1}>>} -\newcommand{\AAPageVisible}[1]{/PV<<\JS{#1}>>} -\newcommand{\AAPageInvisible}[1]{/PI<<\JS{#1}>>} -\newcommand{\definePath}[1]{\def\ef@ctrlName{#1}% - \hyper@normalise\ef@definePath} -\def\ef@definePath#1{\expandafter\xdef\ef@ctrlName{#1}} -\def\FHidden{2} % bit 2: hidden field -\def\FPrint{4} % bit 3: print (we set this bit by default) -\def\FNoPrint{-4} % bit 3: -print (this clears the bit) -\def\FNoView{32} % bit 6: no view -\def\FLock{128} % bit 8: locked field (PDF 1.4) -\def\FfReadOnly{1} % all -\def\FfRequired{2} % all -\def\FfNoExport{4} % all -\def\FfMultiline{4096} % text -\def\FfPassword{8192} % text -\def\FfNoToggleToOff{16384} % radio -\def\FfRadio{32768} % radio -\def\FfPushButton{65536} % Push button -\def\FfCombo{131072} % choice -\def\FfEdit{262144} % combo -\def\FfSort{524288} % choice -\def\FfFileSelect{1048576} % text (PDF 1.4) -\def\FfMultiSelect{2097152} % choice (PDF 1.4) -\def\FfDoNotSpellCheck{4194304} % text, combo (PDF 1.4) -\def\FfDoNotScroll{8388608} % text (PDF 1.4) -\def\FfComb{16777216} % text (PDF 1.5) -\def\FfRadiosInUnison{33554432} % radio (PDF 1.5) -\def\FfCommitOnSelChange{67108864} % choice (PDF 1.5) -\def\FfRichText{33554432} % radio (PDF 1.5) -\def\getFfValue/Ff#1\@nil{\def\eq@FfValue{#1}} -\def\getFValue/F#1\@nil{\def\eq@FValue{#1}} -\def\@getCmdName#1{\edef\@CmdName{\expandafter\@gobble\string#1}} -\newcommand{\everyTextField}[1]{\def\every@TextField{#1}} -\def\every@TextField{} -\newcommand{\everySigField}[1]{\def\every@sigField{#1}} -\def\every@sigField{} -\newcommand{\everyCheckBox}[1]{\def\every@CheckBox{#1}} -\def\every@CheckBox{} -\newcommand{\everyRadioButton}[1]{\def\every@RadioButton{#1}} -\def\every@RadioButton{} -\newcommand{\everyButtonField}[1]{\def\every@ButtonField{#1}} -\def\every@ButtonField{} -\newcommand{\everyPushButton}[1]{\def\every@PushButton{#1}} -\def\every@PushButton{} -\newcommand{\everyListBox}[1]{\def\every@listBox{#1}} -\newcommand{\everyComboBox}[1]{\def\every@comboBox{#1}} -\def\every@listBox{}\def\every@comboBox{} -\newcommand{\everyLink}[1]{\def\every@Link{#1}} -\def\every@Link{} -\def\ef@adjrectWH#1{\dimen@ii#1\relax - \ifx\eq@rectW\@empty\else - \eflength\eq@rectW\relax - \advance\eflength\dimen@ii - \edef\eq@rectW{\the\eflength}% - \eflength\eq@rectH\relax - \advance\eflength\dimen@ii - \edef\eq@rectH{\the\eflength}% - \fi -} -\def\ef@djXPD{\ifxetex\ifmakeXasPD\ef@adjrectWH{2bp}\fi - \else\ifmakePDasX\ef@adjrectWH{-2bp}\fi\fi} -\def\ef@btnspcr{} -\def\eq@setButtonProps#1#2{% - \makeJSspecials - \processAppArgs#2\end\@nil % set widget properties - \ifx\eq@BC\@empty\@eqW{}\else - \if\eq@W@value0\let\eq@BC\@empty\fi\fi - \Hy@pdfstringfalse - \ifx\eq@rectW\@empty - \ifnum\eq@textSize=0 \else - \dimen@=\eq@textSize bp - \dimen@1.00375\dimen@ - \edef\eq@textSize@pt{\strip@pt\dimen@}% - \fontsize{\eq@textSize@pt}{0}\selectfont - \fi - \dimen@\eq@W@value bp - \def\eq@S@B{B}\ifx\eq@S@value\eq@S@B - \def\eq@btn@sp{\hbox to2\dimen@{\hfill}}% - \else - \def\eq@btn@sp{\hbox to\dimen@{\hfill}}% - \fi - \expandafter\def\expandafter - \ef@btnspcr\expandafter{\ef@btnspcr\eq@btn@sp}% - \sbox{\eq@tmpbox}{\ef@btnspcr\eq@CA\ef@btnspcr}% - \eq@tmpdima=\wd\eq@tmpbox - \sbox{\eq@tmpbox}{\ef@btnspcr\eq@RC\ef@btnspcr}% - \ifdim\eq@tmpdima>\wd\eq@tmpbox\else - \eq@tmpdima=\wd\eq@tmpbox\fi% - \sbox{\eq@tmpbox}{\ef@btnspcr\eq@AC\ef@btnspcr}% - \ifdim\eq@tmpdima>\wd\eq@tmpbox\else - \eq@tmpdima=\wd\eq@tmpbox\fi - \ifmakePDasX\advance\eq@tmpdima2bp\fi - \wd\eq@tmpbox=\eq@tmpdima - \else - \wd\eq@tmpbox=\eq@rectW - \fi - \ef@djXPD#1% dps 12/22 -} -\def\eq@setWidgetProps#1#2{% - \makeJSspecials - \processAppArgs#2\end\@nil % set widget properties - \ifx\annot@type@link\annot@type\else - \ifx\eq@BC\@empty\@eqW{}\else - \if\eq@W@value0\let\eq@BC\@empty\fi\fi - \fi - \ef@djXPD#1% dps 12/22 -} -\def\ef@sanitize@toks{\@makeother\~\@makeother\#\@makeother\&% - \@makeother\"\@makeother\_} -\newcommand\efKern[2]{\ifxetex\kern#2\else\kern#1\fi} -\newcommand\olBdry{\bgroup\ifxetex % dps 12/22 - \@tempdima-\g@eq@W@value@bp\relax - \edef\@mtkern{\the\@tempdima}\else - \@tempdima2bp\relax\advance\@tempdima-\g@eq@W@value@bp\relax % 12/26 - \edef\@mtkern{\the\@tempdima}\fi\kern\@mtkern\egroup -} -\newcommand\cgBdry[1][0bp]{\bgroup\def\ef@rgi{#1}\ifx\ef@rgi\@empty - \def\ef@rgi{0bp}\fi\setlength{\@tempdima}{\ef@rgi}% - \ifxetex\else\addtolength{\@tempdima}{2bp}\fi - \kern\@tempdima\egroup\ignorespaces} -\newcommand{\efSupprIndent}{\ef@scratchtoks=\expandafter{\the\everypar}% - \everypar{{\setbox\z@\lastbox}\clubpenalty\@M - \everypar=\expandafter{\the\ef@scratchtoks}}} -\newcommand\volBdry{\bgroup\parskip0pt\relax\@@par\nointerlineskip - \olBdry\egroup\efSupprIndent} -\newcommand\vcgBdry{\@ifstar{\edef\ef@offset{\the\parskip}\vcgBdry@i} - {\def\ef@offset{0pt}\vcgBdry@i}} -\newcommand\vcgBdry@i[1][0bp]{\bgroup - \setlength{\ef@dimena}{#1-\ef@offset}\parskip0pt\relax - \par\nointerlineskip\cgBdry[\ef@dimena]% - \egroup\ignorespaces\efSupprIndent} -\def\common@choiceCode{% - /Subtype/Widget - /T (\Fld@name) - /FT/Ch - \eq@Ff - \eq@F - \eq@TU - \eq@TI - /BS << \eq@W\eq@S >> - /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> - /DA (\eq@DA) - /Opt [\eq@Opt] - \eq@DV\eq@V - \eq@A\eq@AA - \eq@rawPDF -} -\def\eqf@setDimens#1#2{\@eqrectW{#1}\@eqrectH{#2}} -\let\ef@@nil\relax -\def\@gobbleto@@nil#1\ef@@nil{}% -\long\def\g@addto@macrogobble#1#2{\g@addto@macro{#1}{#2}\@gobbleto@@nil} -\def\passthruCLOpts{*} -\def\ef@pdfstrCLOpt{\Hy@unicodefalse\def\eq@Opt{}\ef@pdfstrCLOpti} -\def\ef@pdfstrCLOpti{\@ifnextchar\ef@@nil{\@gobble}{\ef@pdfstrCLOptia}} -\def\ef@pdfstrCLOptia{\@ifnextchar[{\expandafter - \ef@pdfstrOptWBii\@gobble}{\ef@pdfstrCLOptb}} -\def\ef@pdfstrCLOptb{\@ifstar{\g@addto@macrogobble\eq@Opt} - {\ef@pdfstrOptWPi}} -\def\ef@pdfstrOptWBii{% - \@ifnextchar({\ef@pdfstrOptWBiia}{\PackageError{eforms} - {Left parenthesis expected here}{}}% -} -\def\ef@pdfstrOptWBiia(#1){% - \g@addto@macro\eq@Opt{[(}% - \pdfstringdef\@optTokstemp{#1}% - \expandafter\g@addto@macro\expandafter\eq@Opt - \expandafter{\@optTokstemp}% - \@ifnextchar({\ef@pdfstrOptWBiib}{\PackageError{eforms} - {Left parenthesis expected here}{}}% -} -\def\ef@pdfstrOptWBiib(#1){% - \g@addto@macro\eq@Opt{)(}% - \pdfstringdef\@optTokstemp{#1}% - \expandafter\g@addto@macro\expandafter\eq@Opt - \expandafter{\@optTokstemp}% - \g@addto@macro\eq@Opt{)]}% - \expandafter\ef@pdfstrCLOpti\@gobble -} -\def\ef@pdfstrOptWPi{\@ifnextchar\ef@@nil{\@gobble}{\ef@pdfstrOptWPii}} -\def\ef@pdfstrOptWPii(#1){% - \g@addto@macro\eq@Opt{(}% - \pdfstringdef\@optTokstemp{#1}% - \expandafter\g@addto@macro\expandafter\eq@Opt - \expandafter{\@optTokstemp}% - \g@addto@macro\eq@Opt{)}% - \ef@pdfstrCLOpti} -\def\annot@type@listbox{listbox} -\newcommand\list@@Box[8]{\begingroup - \edef\annot@type{\annot@type@listbox}% - \pdfstringdef\Fld@name{#2}% - \expandafter\ef@pdfstrCLOpt#5\ef@@nil - \eqf@setDimens{#3}{#4}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@processEvery#8\end\noindent#6#7{#1}% -} -\def\listBoxDefaults{% - \W{1}\S{I}\F{\FPrint}\BC{0 0 0} -} -\newcommand\listBox{\begingroup - \ef@sanitize@toks\ef@listbox -} -\newcommand{\ef@listbox}[1][]{% - \endgroup\ef@listBox[#1]% -} -\newcommand\ef@listBox[5][]{% - \mbox{\list@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps - \eq@choice@driver}{\listBoxDefaults\every@listBox}}% -} -\def\annot@type@combobox{combobox} -\newcommand\combo@@Box[8]{\begingroup - \edef\annot@type{\annot@type@combobox}% - \@eqFf{\FfCombo}\pdfstringdef\Fld@name{#2}% - \expandafter\ef@pdfstrCLOpt#5\ef@@nil - \eqf@setDimens{#3}{#4}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@processEvery#8\end\noindent#6#7{#1}% -} -\def\comboBoxDefaults{% - \W{1}\S{I}\F{\FPrint}\BC{0 0 0} -} -\newcommand\comboBox{\begingroup - \ef@sanitize@toks\ef@combobox -} -\newcommand{\ef@combobox}[1][]{% - \endgroup\ef@comboBox[#1]% -} -\newcommand\ef@comboBox[5][]{% - \mbox{\combo@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps - \eq@choice@driver}{\comboBoxDefaults\every@comboBox}}% -} -\def\common@pushButtonCode{% - /Subtype/Widget - /T (\Fld@name) - /FT/Btn - \eq@Ff - \eq@TU - \eq@H - \eq@F - /BS <<\eq@W\eq@S >> -\ifx\eq@AP\@empty - /MK <<\eq@R\eq@BC\eq@BG% - \ef@kvCA\ef@kvRC\ef@kvAC\eq@IconMK\eq@mkIns>> -\else - \eq@AP -\fi - /DA (\eq@DA) - \eq@A\eq@AA - \eq@rawPDF -} -\def\common@RadioCheckCode{% - /Subtype/Widget - /T (\Fld@name) - /FT/Btn - \eq@Ff - \eq@F - \eq@TU - /BS <<\eq@W\eq@S>> -\ifx\eq@AP\@empty - /AP<< /N <<\eq@On<<>>>> >> - \eq@MK -\else - \eq@AP -\fi - /DA (\eq@DA) - \eq@AS - \eq@DV\eq@V - \eq@A\eq@AA - \eq@rawPDF -} -\def\annot@type@button{pushbtn} -\newcommand\push@@Button[7]{\begingroup - \edef\annot@type{\annot@type@button}% - \pdfstringdef\Fld@name{#2}%\edef\Fld@name{#2}% - \makeJSspecials\ef@preProcDefns - \def\eq@Ff{/Ff \FfPushButton}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \eqf@setDimens{#3}{#4}% - \@processEvery#7\end\noindent#5#6{#1}% -} -\def\pushButtonDefaults{% - \W{1}\S{B}\F{\FPrint}\BC{0 0 0} - \H{P}\BG{.7529 .7529 .7529} -} -\newcommand\pushButton{\begingroup - \ef@sanitize@toks\ef@pushbutton -} -\newcommand{\ef@pushbutton}[1][]{% - \endgroup\ef@pushButton[#1]% -} -\newcommand\ef@pushButton[4][]{% - \mbox{\push@@Button{#1}{#2}{#3}{#4}{}{% - \eq@setButtonProps\eq@Button@driver}% - {\pushButtonDefaults\every@PushButton}}% -} -\def\annot@type@checkbox{checkbox} -\newcommand\check@@Box[8] -{% - \begingroup\let\#\ef@Hx - \edef\annot@type{\annot@type@checkbox}% - \pdfstringdef\Fld@name{#2}\@eqAS{Off}% - \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV\@empty - \else\ifpdfmarkup\def\eq@DV{/DV(##1) cvn }\else - \def\eq@DV{/DV/##1}\fi\fi}% - \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty - \let\eq@V\@empty\else\ifpdfmarkup\def\eq@V{/V(##1) cvn }\else - \def\eq@V{/V/##1}\fi\@eqAS{##1}\fi}% - \eqf@setDimens{#3}{#4}% - \ifpdfmarkup\def\eq@On{(#5) cvn }\else - \def\eq@On{/#5}\fi\@eqtextFont{ZaDb}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% - \@processEvery#8\end\noindent#6#7{#1}% -} -\def\checkBoxDefaults{% - \F{\FPrint}\W{1}\S{S}\BC{0 0 0}% -} -\newcommand\checkBox{\begingroup - \ef@sanitize@toks\ef@checkbox -} -\newcommand{\ef@checkbox}[5][]{% - \endgroup\mbox{\check@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps - \eq@RadioCheck@driver}{\checkBoxDefaults\every@CheckBox}}% -} -\def\annot@type@radio{radiobtn} -\newcommand\radio@@Button[8]{\begingroup\let\#\ef@Hx - \edef\annot@type{\annot@type@radio}% - \pdfstringdef\Fld@name{#2}\@eqAS{Off}% - \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV\@empty - \else\ifpdfmarkup\def\eq@DV{/DV(##1) cvn }\else - \def\eq@DV{/DV/##1}\fi\fi}% - \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty - \let\eq@V\@empty\else\ifpdfmarkup\def\eq@V{/V(##1) cvn }\else - \def\eq@V{/V/##1}\fi\@eqAS{##1}\fi}% - \eqf@setDimens{#3}{#4}% - \ifpdfmarkup\def\eq@On{(#5) cvn }\else\def\eq@On{/#5}\fi - \def\eq@Ff{/Ff \FfRadio}\@eqtextFont{ZaDb}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% - \@processEvery#8\end\noindent#6#7{#1}% -} -\def\radioButtonDefaults -{% - \W{1}\S{S}\BC{0 0 0}\F{\FPrint} -} -\newcommand\radioButton{\begingroup - \ef@sanitize@toks\ef@radiobutton -} -\newcommand{\ef@radiobutton}[5][]{\endgroup - \mbox{\radio@@Button{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps - \eq@RadioCheck@driver}{\radioButtonDefaults\every@RadioButton}}% -} -\newcommand\ef@radioButton[5][] -{% - \mbox{\radio@@Button{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps - \eq@RadioCheck@driver}{\radioButtonDefaults\every@RadioButton}}% -} -\def\common@TextFieldCode -{% - /Subtype/Widget - /T (\Fld@name) - /FT/Tx - \eq@Ff - \eq@F - \eq@Q - \eq@TU - \eq@MaxLen - /BS <<\eq@W\eq@S>> - /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> - /DA (\eq@DA) - \eq@DV\eq@V - \eq@RV\eq@DS - \eq@A\eq@AA - \eq@rawPDF -} -\def\annot@type@text{textfld} -\newcommand\text@@Field[7] -{% - \begingroup - \edef\annot@type{\annot@type@text}% - \pdfstringdef\Fld@name{#2}\def\eq@Title{#2}% - \eqf@setDimens{#3}{#4}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@processEvery#7\end\noindent#5#6{#1}% -} -\def\textFieldDefaults -{% - \F{\FPrint}\BC{0 0 0}\W{1}\S{S} -} -\newcommand\textField{\begingroup - \ef@sanitize@toks\ef@textfield -} -\newcommand{\ef@textfield}[2][]{% - \endgroup\ef@textField[#1]{#2}% -} -\newcommand\ef@textField[4][] -{% - \mbox{\text@@Field{#1}{#2}{#3}{#4}{}% - {\eq@setWidgetProps\eq@TextField}% - {\textFieldDefaults\every@TextField}}% -} -\let\eqTextField\textField -\let\calcTextField\textField -\def\common@SigFieldCode -{% - /Subtype /Widget - /T (\Fld@name) - /FT/Sig - \eq@F - \eq@TU - /BS <<\eq@W\eq@S>> - /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> - /DA (\eq@DA) - \eq@Lock - \eq@A\eq@AA - \eq@rawPDF -} -\def\annot@type@sig{sigfld} -\newcommand\sig@@Field[7]{% - \begingroup - \edef\annot@type{\annot@type@sig}% - \pdfstringdef\Fld@name{#2}\def\eq@Title{#2}% - \eqf@setDimens{#3}{#4}% - \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% - \@processEvery#7\end\noindent#5#6{#1}% -} -\def\sigFieldDefaults -{% - \F{\FPrint}\BC{}\BG{}\W{1}\S{S} -} -\newcommand\sigField{\begingroup - \ef@sanitize@toks\ef@sigfield -} -\newcommand{\ef@sigfield}[1][]{% - \endgroup\ef@sigField[#1]% -} -\newcommand\ef@sigField[4][] -{% - \mbox{\sig@@Field{#1}{#2}{#3}{#4}{}{\eq@setWidgetProps\eq@SigField}% - {\sigFieldDefaults\every@sigField}}% -} -\def\common@LinkCode -{% - \eq@A % Action - \eq@H % Highlight - \eq@Color % Border color - \link@BS % Border styles - \eq@rawPDF % everything else -} -\def\annot@type@link{link} -\newcommand\set@@Link[7] -{% - \begingroup - \makeJSspecials - \edef\annot@type{\annot@type@link}% - \ef@preProcDefns - \eqf@setDimens{#2}{#3}% - \ifx\eq@rectW\@empty\def\link@@Box{#4}\else - \def\eq@arg{#4}\ifx\eq@arg\@empty - \def\eq@content{\hfill\vfill}\else\def\eq@content{#4}\fi - \def\link@@Box{\parbox[\eq@pos][\eq@rectH][\eq@innerpos]% - {\eq@rectW}{\centering\eq@content}}% - \fi - \@processEvery#7\end\noindent#5#6{#1}% -} -\def\defaultlinkcolor{\@linkcolor} -\def\setDef@ultLinkColor{\ifHy@colorlinks - \def\ef@thislinkcolor{\defaultlinkcolor} - \def\ef@colorthislink{\color{\ef@thislinkcolor}}\else - \let\ef@colorthislink\relax\fi -} -\AtBeginDocument{\setDef@ultLinkColor} -\def\set@LinkTextDefaults{\S{S}\Border{0 0 0}} -\newcommand\setLink{\begingroup - \ef@sanitize@toks\ef@setlinktext -} -\let\setLinkText\setLink -\newcommand{\ef@setlinktext}[1][]{% - \endgroup\ef@searchmlLink#1\mlLink\end\@nil - \ifx\ef@mlLink\ef@Zero\def\ef@next{\set@LinkText[#1]}\else - \def\ef@next{\mlhypertext[#1]}\fi\ef@next -} -\newcommand\set@LinkText[2][]{% - \set@@Link{#1}{}{}{\ef@colorthislink#2}{}% - {\eq@setWidgetProps{\ef@postProcLinkProps\setLink@driver}}% - {\set@LinkTextDefaults\every@Link}% -} -\def\ef@preProcDefns{% - \def\Win##1{/Win <<##1>>}% - \def\fitpage{\dl@fitpage}\def\actualsize{\dl@actualsize}% - \def\fitwidth{\dl@fitwidth}\def\fitheight{\dl@fitheight}% - \def\fitvisible{\dl@fitvisible}\def\inheritzoom{\dl@inheritzoom}% - \let\rPage\ef@rPage - \edef\Page##1{\ifcase\eq@drivernum - {Page##1}\or - \noexpand\pdfpageref##1\space\space 0 R\or - \noexpand @page##1\fi - }% -} -\def\ef@postProcLinkProps{} -\newcommand{\mlsetLink}{\mlhypertext} -\newcommand{\mlhypertext}[2][]{\@ifundefined{mlhypertext@i} - {\PackageWarning{eforms}{The \string\mlhypertext\space command - does nothing unless\MessageBreak the aeb_mlink package is loaded}}{}% - #2} -\def\set@LinkBboxDefaults{\S{S}\Border{0 0 0}} -\newcommand{\setLinkBbox}{\begingroup - \ef@sanitize@toks\ef@linkbbox -} -\newcommand{\ef@linkbbox}[1][]{% - \endgroup\ef@setLinkBbox[#1]% -} -\newcommand{\ef@setLinkBbox}[3][]{% - \@setLinkBbox{#1}{#2}{#3}% -} -\def\@setLinkBbox#1#2#3{\@ifnextchar[{\@@setLinkBbox{#1}{#2}{#3}}% - {\@@setLinkBbox{#1}{#2}{#3}[c]}} -\def\@@setLinkBbox#1#2#3[#4]{% - \@ifnextchar[{\@@@setLinkBbox{#1}{#2}{#3}{#4}}% - {\@@@setLinkBbox{#1}{#2}{#3}{#4}[#4]}% -} -\def\@@@setLinkBbox#1#2#3#4[#5]#6{% - \def\eq@pos{#4}\def\eq@innerpos{#5}% - \set@@Link{#1}{#2}{#3}{\ef@colorthislink#6}% - {\eq@setWidgetProps\setLink@driver}{}% - {\set@LinkBboxDefaults\every@Link}% -} -\def\set@LinkPboxDefaults{\S{S}\Border{0 0 0}} -\newcommand\setLinkPbox{\begingroup - \ef@sanitize@toks\ef@linkpbox -} -\newcommand{\ef@linkpbox}[1]{% - \endgroup\ef@setLinkPbox{#1}% -} -\newcommand\ef@setLinkPbox[1]{% - \@setLinkPbox{#1\BS{}}{}{}{\hfill\vfill}% -} -\def\@setLinkPbox#1#2#3{\@ifnextchar[{\@@setLinkPbox{#1}{#2}{#3}}% - {\@@setLinkPbox{#1}{#2}{#3}[c]}} -\def\@@setLinkPbox#1#2#3[#4]{% - \@ifnextchar[{\@@@setLinkPbox{#1}{#2}{#3}{#4}}% - {\@@@setLinkPbox{#1}{#2}{#3}{#4}[#4]} -} -\def\@@@setLinkPbox#1#2#3#4[#5]#6{% - \def\eq@pos{#4}\def\eq@innerpos{#5}% - \set@@Link{#1}{#2}{#3}{#6}{\eq@setWidgetProps\setLinkPbox@driver}% - {}{\set@LinkPboxDefaults\every@Link}% -} -\input{\eq@drivercode} -\inputCalcOrderJS -\endinput -%% -%% End of file `eforms.sty'. +%% +%% This is file `eforms.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{eforms} + [2018/08/16 v2.9.20 Provides general eforms support (dps)] +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} +\RequirePackage{calc} +\let\ef@driver\@empty +\DeclareOption{dvipsone}{\def\eq@drivernum{0}% + \def\eq@drivername{0}\def\ef@driver{dvipsone}% + \def\eq@drivercode{epdfmark.def}% + \PassOptionsToPackage{dvipsone}{insdljs}% + \PassOptionsToPackage{dvipsone}{hyperref}% +} +\def\eq@drivername{2} +\DeclareOption{dvips}{\def\eq@drivernum{0}% + \def\eq@drivername{1}\def\ef@driver{dvips}% + \def\eq@drivercode{epdfmark.def}% + \PassOptionsToPackage{dvips}{insdljs}% + \PassOptionsToPackage{dvips}{hyperref}% +} +\DeclareOption{pdftex}{% + \def\eq@drivernum{1}\def\eq@driver{pdftex}% + \def\eq@drivercode{epdftex.def}\def\ef@driver{pdftex}% +} +\DeclareOption{luatex}{% + \def\eq@drivernum{1}\def\eq@driver{luatex}% + \def\eq@drivercode{epdftex.def}\def\ef@driver{luatex}% +} +\DeclareOption{dvipdfm}{% + \def\eq@drivernum{2}\def\eq@driver{dvipdfm}% + \def\eq@drivercode{edvipdfm.def}\def\ef@driver{dvipdfm}% + \PassOptionsToPackage{dvipdfm}{insdljs} + \PassOptionsToPackage{dvipdfm}{hyperref} +} +\DeclareOption{dvipdfmx}{% + \def\eq@drivernum{2}\def\eq@driver{dvipdfmx}% + \def\eq@drivercode{edvipdfm.def}\def\ef@driver{dvipdfmx}% + \PassOptionsToPackage{dvipdfmx}{insdljs} + \PassOptionsToPackage{dvipdfmx}{hyperref} +} +\DeclareOption{xetex}{% + \def\eq@drivernum{2}\def\eq@driver{xetex}% + \def\eq@drivercode{edvipdfm.def}\def\ef@driver{xetex}% +} +\DeclareOption{textures}{% + \def\eq@drivernum{3}\def\eq@driver{textures}% + \def\eq@drivercode{epdfmark.def}\def\ef@driver{textures}% + \PassOptionsToPackage{textures}{insdljs}% + \PassOptionsToPackage{textures}{hyperref} +} +\def\eq@driver{dvipsone/dvips} +\def\eq@drivercode{epdfmark.def} +\DeclareOption{preview}{\previewtrue} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{insdljs}} +\@ifundefined{ifpreview}{\newif\ifpreview\previewfalse}{} +\providecommand{\previewOn}{\previewtrue} +\providecommand{\previewOff}{\previewfalse} +\DeclareOption{useui}{\AtEndOfPackage{\ef@InputUIeForms}} +\def\ef@InputUIeForms{\InputIfFileExists{uieforms.def}% + {\PackageInfo{eforms}{Inputting code for useui option}}% + {\PackageInfo{eforms}{Cannot find uieforms.def.\MessageBreak + Reinstall or refresh your file name database.}}} +\DeclareOption{setcorder}{\def\inputCalcOrderJS{% + \InputIfFileExists{setcorder.def}% + {\PackageInfo{eforms}{Inputting code for setcorder option}}% + {\PackageWarning{eforms}{Cannot find setcorder.def.\MessageBreak + Reinstall or refresh your file name database.}}}} +\let\inputCalcOrderJS\relax +\@ifpackageloaded{web}{% + \ExecuteOptions{\eq@driver@name}% +}{% + \@ifpackageloaded{exerquiz}{% + \ExecuteOptions{\eq@driver}% + }{% + \ifluatex\ExecuteOptions{luatex}\else + \ifpdf\ExecuteOptions{pdftex}\else + \ifxetex\ExecuteOptions{xetex}\else + \@ifundefined{l@tex@@@@driver}{\ExecuteOptions{dvips}} + {\ExecuteOptions{dvipsone}}\fi\fi\fi + }% +} +\ProcessOptions +\ifx\ef@driver\@empty + \PackageError{eforms}% + {You have not specified dvips, dvipsone, pdftex,\MessageBreak + dvipdfm, dvipdfmx, or xetex in the option list of\MessageBreak + the eforms package} + {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, + dvipdfmx, or xetex + \MessageBreak in the option list of the eforms package.}% +}{} +\fi +\newlength\eflength +\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse +\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi +\RequirePackage{hyperref} +\ifxetex\else\ifpdf\pdflinkmargin1bp\relax\else + \g@addto@macro\Hy@FirstPageHook{% + \headerps@out{/HyperBorder {1.00375 PDFToDvips} def}} +\fi\fi +\RequirePackage{insdljs}[2017/01/03] % incl conv-xkv +\@ifpackageloaded{exerquiz}{}{% + \AtBeginDocument{\Form} + \AtEndDocument{\csname endForm\endcsname} +} +\@ifpackageloaded{aeb_pro}{}{% + \newcommand{\taggedPDF}{% + \ifnum\eq@drivernum=0\relax + \literalps@out{[{Catalog} <<% + /MarkInfo<>% + >> /PUT pdfmark}\fi}% +} +\let\ef@YES=y \let\ef@NO=n +\let\ef@One=1 \let\ef@Zero=0 +\ifnum\eq@drivername<2 +\let\to@usepdfmark\ef@One +\RequirePackage[structure]{taborder}\else +\let\to@usepdfmark\ef@Zero +\RequirePackage{taborder} +\fi +\@ifundefined{eq@tmpbox}{\newsavebox{\eq@tmpbox}}{} +\@ifundefined{eq@tmpdima}{\newdimen\eq@tmpdima}{} +\@ifundefined{eq@tmpdimb}{\newdimen\eq@tmpdimb}{} +\newlength\ef@dimena +\newtoks\ef@scratchtoks +\newif\ifmakeXasPD \makeXasPDtrue % 12/22 +\newif\ifmakePDasX \makePDasXfalse +\def\makeXasPDOn{\makeXasPDtrue\makePDasXfalse} +\def\makeXasPDOff{\makeXasPDfalse} +\def\makePDasXOn{\makePDasXtrue\makeXasPDfalse} +\def\makePDasXOff{\makePDasXfalse} +\providecommand\ckboxColor[1]{\def\@rgi{#1}\ifx\@rgi\@empty + \let\ckbox@Color\relax\else + \def\ckbox@Color{\color{#1}}\fi}\let\ckbox@Color\relax +\def\ef@Bbox#1#2{\hbox{\ifpreview + \setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}% + \@tempdima=#1\advance\@tempdima by-\fboxrule + \@tempdimb=#2\advance\@tempdimb by-\fboxrule \ckbox@Color + \fbox{\parbox[b][\@tempdimb][c]{\@tempdima}{\hfill\vfill}}\else + \parbox[b][#2][c]{#1}{\hfill\vfill}\fi}% +} +\let\Bbox\ef@Bbox +\let\ef@passedArgs\@empty +\def\processAppArgs#1#2{% + \ifx\end#1% if #1=\end, #2=\@nil. + \let\ef@next\relax + \else + \ifx#1\@empty + \def\ef@next{\processAppArgs}% + \else + \@getCmdName{\ui}\edef\arg@ui{\@CmdName}% + \@getCmdName{#1}% + \ifx\arg@ui\@CmdName + \@ifundefined{@equi}{\PackageError{eforms}% + {The user interface '\string\ui' is not defined!% + \MessageBreak Use the useui option of eforms + and try again}{I said, use the useui option of + eforms and try again!}}{}% + \def\ef@next{\setkeys{eforms}{#2}% + \processAppArgs\presets{\ef@passedArgs}}% + \else + \@getCmdName{\Ff}\edef\arg@Ff{\@CmdName}% + \@getCmdName{#1}% + \ifx\arg@Ff\@CmdName % if \Ff, let's add arguments + \ifx\eq@Ff\@empty\def\eq@FfValue{0}\else + \expandafter\getFfValue\eq@Ff\@nil\fi + \@tempcnta=\eq@FfValue + \def\eq@arg{#2}% + \ifx\eq@arg\@empty\else + \advance\@tempcnta by#2\fi + \edef\eq@Ff{/Ff \the\@tempcnta}% + \def\ef@next{\processAppArgs}% + \else + \@getCmdName{\F}\edef\arg@F{\@CmdName}% + \@getCmdName{#1}% + \ifx\arg@F\@CmdName % if \Ff, let's add arguments + \ifx\eq@F\@empty\def\eq@FValue{0}\else + \expandafter\getFValue\eq@F\@nil\fi + \@tempcnta=\eq@FValue + \def\eq@arg{#2}% + \ifx\eq@arg\@empty\else + \advance\@tempcnta by#2\fi + \edef\eq@F{/F \the\@tempcnta}% + \def\ef@next{\processAppArgs}% + \else + \@getCmdName{\presets}% + \edef\arg@presets{\@CmdName}\@getCmdName{#1}% + \ifx\arg@presets\@CmdName + \def\ef@next{\expandafter\processAppArgs#2}% + \else + \csname @eq% + \expandafter\@gobble\string#1\endcsname{#2}% + \def\ef@next{\processAppArgs}% + \fi + \fi + \fi + \fi + \fi + \fi + \ef@next +} +\def\@processEvery{\edef\eqtemp{}\toks0={}\@@processEvery} +\def\@@processEvery#1{% + \ifx#1\end\def\ef@next{\the\toks0 }% + \else + \edef\eqtemp{\the\toks0 }% + \toks0=\expandafter{\eqtemp + \expandafter\processAppArgs#1\end\@nil}% + \def\ef@next{\@@processEvery}% + \fi + \ef@next +} +\newdimen\eqcenterWidget +\def\centerWidget#1{% + \ifeq@inlineCenter + \eqcenterWidget=#1\relax + \eqcenterWidget=.5\eqcenterWidget + \ifnum\eq@textSize=0\relax + \dimen@=-\eq@textSizeDefault bp\else + \dimen@=-\eq@textSize bp\fi + \dimen@=0.9167\dimen@ % 11/12 + \dimen@=.5\dimen@ + \advance\dimen@\eq@W@value bp + \ifx\eq@S\@empty\else + \def\eq@S@cmp{B}% + \ifx\eq@S@value\eq@S@cmp + \advance\dimen@ by \eq@W@value bp + \else + \def\eq@S@cmp{I}% + \ifx\eq@S@value\eq@S@cmp + \advance\dimen@ by \eq@W@value bp + \else\advance\dimen@ by 1bp + \fi\fi\fi + \advance\eqcenterWidget by \dimen@ + \else + \eqcenterWidget=#1\relax + \eqcenterWidget=.5\eqcenterWidget + \advance\eqcenterWidget by -4bp + \fi +} +\def\@eqF#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@F\@empty\else\def\eq@F{/F #1}\fi}\def\eq@F{} +\def\@eqBS#1{% + \let\eq@BS=0\relax + \ifx\eq@W\@empty\else\let\eq@BS=1\fi + \ifx\eq@S\@empty\else\let\eq@BS=1\fi + \ifx\eq@D\@empty\else\let\eq@BS=1\fi + \edef\link@BS{\if\eq@BS1/BS<<\eq@W\eq@S\eq@D>>\fi}% + \ifx\eq@W\@empty\let\link@BS\@empty\fi +}\def\link@BS{} +\def\@eqpresets#1{#1}% +\def\@eqW#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@W\@empty\def\eq@W@value{0}\else + \def\eq@W@value{#1}\def\eq@W{/W #1}\fi + \xdef\g@eq@W@value@bp{\eq@W@value bp}} +\def\eq@W{}\def\eq@W@value{0} +\def\g@eq@W@valu@bp{0bp} % dps 12/22 +\def\@eqS#1{\def\eq@S@value{#1}\ifx\eq@S@value\@empty + \let\eq@S\@empty\else + \def\eq@S{/S/#1}\def\eq@temp{D}% + \ifx\eq@S@value\eq@temp + \ifx\eq@D\@empty\def\eq@D{/D [3]}\fi + \fi\fi}\def\eq@S{} +\def\@eqD#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@D\@empty\else + \def\eq@D{/D [#1]}\fi}\def\eq@D{} +\def\@eqBorder#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Border\@empty\else\def\eq@Border{/Border [#1]}\fi}% +\def\eq@Border{/Border [0 0 0]} +\def\@eqAP#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AP\@empty\else\def\eq@AP{/AP<<#1>>}\fi}% + \let\eq@AP\@empty + \def\@eqOn#1{\def\eq@On{/#1}}\def\eq@On{/Yes} +\def\@eqAS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AS\@empty\else\ifpdfmarkup\def\eq@AS{/AS(#1) cvn }\else + \def\eq@AS{/AS/#1}\fi\fi}\def\eq@AS{} +\def\ef@gobbleToendmarker#1\ef@endmarker{} +\let\ef@endmarker\relax +\def\ef@end{\end}\def\ef@true{true} +\def\ef@rPage#1{\@tempcnta=#1\relax\advance\@tempcnta-1 + \edef\rPage##1{\the\@tempcnta}} +\long\def\ef@searchrPage#1\rPage#2#3\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\rPage{#2}\fi} +\def\ef@searchmlLink#1\mlLink#2#3\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\let\ef@mlLink\ef@Zero\else + \ifx\ef@argii\ef@true\let\ef@mlLink\ef@One\else + \let\ef@mlLink\ef@Zero\fi\fi} +\def\ef@searchGoToR#1/GoToR#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@filecolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@searchURI#1/URI#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@urlcolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@searchCmdURI#1\URI#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@urlcolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@searchNamed#1/Named#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@menucolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@searchCmdNamed#1\Named#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@menucolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@searchLaunch#1/Launch#2\@nil{\def\ef@argii{#2}% + \ifx\ef@argii\ef@end\else\ifx\ef@linktxtcolor@set0% + \def\ef@thislinkcolor{\@runcolor}\fi + \expandafter\ef@gobbleToendmarker\fi} +\def\ef@preprocessA#1{% + \let\rPage\relax\edef\ef@argi{#1}% + \ifx\annot@type\annot@type@link + \expandafter\ef@searchGoToR\ef@argi/GoToR\end\@nil + \expandafter\ef@searchURI\ef@argi/URI\end\@nil + \expandafter\ef@searchCmdURI\ef@argi\URI\end\@nil + \expandafter\ef@searchNamed\ef@argi/Named\end\@nil + \expandafter\ef@searchCmdNamed\ef@argi\Named\end\@nil + \expandafter\ef@searchLaunch\ef@argi/Launch\end\@nil + \ef@endmarker\fi + \let\rPage\ef@rPage + \expandafter\ef@searchrPage\ef@argi\rPage\end\@nil +} +\def\@eqA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@A\@empty\else\ef@preprocessA{#1}% + \def\eq@A{/A <<#1>>}\fi}\def\eq@A{} +\def\@eqmlLink#1{\def\eq@arg{#1}\ifx\eq@arg\ef@true + \let\ef@mlLink\ef@One\else\let\ef@mlLink\ef@Zero\fi} +\def\@eqLock#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Lock\@empty\else\def\eq@Lock{/Lock <<#1>>}\fi} + \def\eq@Lock{} +\newif\ifisCalculate\isCalculatefalse +\def\ef@searchCalc#1\AACalculate#2\@nil{% + \ifx#2\end\else\aftergroup\isCalculatetrue\fi +} +\def\@eqAA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty\let\eq@AA\@empty + \else\begingroup\ef@searchCalc#1\AACalculate\end\@nil\endgroup + \def\eq@AA{/AA <<#1>>}\fi} +\def\eq@AA{/AA <<\eq@AAmouseup\eq@AAmousedown\eq@AAmouseenter% + \eq@AAmouseexit\eq@AAonfocus\eq@AAonblur\eq@AAformat% + \eq@AAkeystroke\eq@AAvalidate\eq@AAcalculate\eq@AApageopen% + \eq@AApageclose\eq@AApagevisible\eq@AApageinvisible>>} +\def\@eqAAmouseup#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAmouseup\@empty\else\def\eq@AAmouseup{/U<<\JS{#1}>>}\fi} +\let\eq@AAmouseup\@empty +\def\@eqAAmousedown#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAmousedown\@empty\else + \def\eq@AAmousedown{/D<<\JS{#1}>>}\fi} +\let\eq@AAmousedown\@empty +\def\@eqAAmouseenter#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAmouseenter\@empty\else + \def\eq@AAmouseenter{/E<<\JS{#1}>>}\fi} +\let\eq@AAmouseenter\@empty +\def\@eqAAmouseexit#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAmouseexit\@empty\else + \def\eq@AAmouseexit{/X<<\JS{#1}>>}\fi} +\let\eq@AAmouseexit\@empty +\def\@eqAAonfocus#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAonfocus\@empty\else + \def\eq@AAonfocus{/Fo<<\JS{#1}>>}\fi} +\def\@eqAAmousefocus{\@eqAAonfocus} +\let\eq@AAonfocus\@empty +\def\@eqAAonblur#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAonblur\@empty\else + \def\eq@AAonblur{/Bl<<\JS{#1}>>}\fi} +\def\@eqAAmouseblur{\def\@eqAAonblur} +\let\eq@AAonblur\@empty +\def\@eqAAformat#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAformat\@empty\else + \def\eq@AAformat{/F<<\JS{#1}>>}\fi} +\let\eq@AAformat\@empty +\def\@eqAAkeystroke#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAkeystroke\@empty\else + \def\eq@AAkeystroke{/K<<\JS{#1}>>}\fi} +\let\eq@AAkeystroke\@empty +\def\@eqAAvalidate#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAvalidate\@empty\else + \def\eq@AAvalidate{/V<<\JS{#1}>>}\fi} +\let\eq@AAvalidate\@empty +\def\@eqAAcalculate#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AAcalculate\@empty\else\isCalculatetrue + \def\eq@AAcalculate{/C<<\JS{#1}>>}\fi} +\let\eq@AAcalculate\@empty +\def\@eqAApageopen#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AApageopen\@empty\else + \def\eq@AApageopen{/PO<<\JS{#1}>>}\fi} +\let\eq@AApageopen\@empty +\def\@eqAApageclose#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AApageclose\@empty\else + \def\eq@AApageclose{/PC<<\JS{#1}>>}\fi} +\let\eq@AApageclose\@empty +\def\@eqAApagevisible#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AApagevisible\@empty\else + \def\eq@AApagevisible{/PV<<\JS{#1}>>}\fi} +\let\eq@AApagevisible\@empty +\def\@eqAApageinvisible#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AApageinvisible\@empty\else + \def\eq@AApageinvisible{/PI<<\JS{#1}>>}\fi} +\let\eq@AApageinvisible\@empty +\def\@eqDA#1{\def\eq@DA{#1}} +\def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% +\def\@eqtextFont#1{\def\eq@textFont{/#1}} +\def\eq@textFont{/Helv} +\def\@eqtextSize#1{\def\eq@textSize{#1}} +\def\eq@textSizeDefault{9} +\edef\eq@textSize{\eq@textSizeDefault} +\def\eq@RV@Body{} +\def\eq@RV@endBody{} +\def\@eqRV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@RV\@empty\else\def\eq@RV{/RV(\eq@RV@Body#1% + \eq@RV@endBody)\fi}}\def\eq@RV{} +\def\@eqDS#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@DS\@empty\else\def\eq@DS{/DS(#1)\fi}}\def\eq@DS{} +\def\@eqtextColor#1{\ef@parsePDFColor{#1}% + \HyColor@IfXcolor{% + \expandafter\HyColor@FieldColor% + \expandafter{\ef@colorSpec@out}{\eq@textColor}{}{}% + }{\edef\eq@textColor{\ef@colorSpec@out}}% +} +\def\eq@textColor{0 g} +\def\@eqQ#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Q\@empty\else\def\eq@Q{/Q #1}\fi}\def\eq@Q{} +\def\ef@isunicode#1\unicodeStr#2\@nil{\def\argi{#1}% + \ifx\argi\@empty\def\ifbool@ef{iftrue}\else + \def\ifbool@ef{iffalse}\fi} +\def\@eqDV#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equDV{#1}\else + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@DV\@empty\else + \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% + \edef\eq@DV{/DV(\ef@uni@temp)}\makespecialJS\fi\fi}\def\eq@DV{} +\def\ef@pdfCRLFTABDefns{% + \def\r{\textCR}\def\t{\textHT}\def\n{\textLF}} +\def\@eqnuDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@DV\@empty\else\def\eq@DV{/DV(#1)}\fi} +\def\@equDV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@DV\@empty\else\def\eq@DV{/DV<#1>}\fi} +\def\@eqV#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equV{#1}\else + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@V\@empty\else + \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% + \edef\eq@V{/V(\ef@uni@temp)}\makespecialJS\fi\fi}\def\eq@V{} +\def\@eqnuV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@V\@empty\else\def\eq@V{/V(#1)}\fi} +\def\@equV#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@V\@empty\else\def\eq@V{/V<#1>}\fi}% +\def\@eqTU#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equTU{#1}\else + \def\eq@arg{#1}\let\r@save\r\let\r\textCR + \ifx\eq@arg\@empty\let\eq@TU\@empty\else + \ef@pdfCRLFTABDefns\pdfstringdef\ef@uni@temp{#1}% + \edef\eq@TU{/TU(\ef@uni@temp)}\makespecialJS\fi\fi + \let\r\r@save}\def\eq@TU{} +\def\@equTU#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@TU\@empty\else\def\eq@TU{/TU<#1>}\fi} +\def\@eqFf#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Ff\@empty\else\def\eq@Ff{/Ff #1}\fi} + \def\eq@Ff{} +\def\@eqMaxLen#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@MaxLen\@empty\else\def\eq@MaxLen{/MaxLen #1}\fi}% + \def\eq@MaxLen{} +\def\@eqH#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@H\@empty\else\def\eq@H{/H/#1}\fi}\def\eq@H{} +\def\@eqMK#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@MK\@empty\else\def\eq@MK{/MK << #1 >> }\fi}% + \def\eq@MK{} + \let\@vertRotate=0 + \def\@eqR#1{\def\eq@R@value{#1}\ifx\eq@R@value\@empty + \let\eq@R\@empty\else + \@tempcnta=\eq@R@value\relax + \ifnum\@tempcnta<0 \@tempcnta=-\@tempcnta\fi + \ifnum\@tempcnta=0 \else\ifnum\@tempcnta=180 \else + \let\@vertRotate=1\fi\fi + \def\eq@R{/R #1}\fi} + \def\eq@R{} + \def\@eqBC#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@BC\@empty\else % 2010/07/23 + \expandafter\ef@isitnamed\eq@arg\ef@nil + \ifx\ef@latex@color\ef@y\expandafter + \HyColor@XZeroOneThreeFour\expandafter{\eq@arg}{\eq@BC}{}{}% + \edef\eq@BC{/BC [\eq@BC]}\else + \def\eq@BC{/BC [#1]}\fi + \fi} + \def\eq@BC{} + \def\@eqBG#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@BG\@empty\else % 2010/07/23 + \expandafter\ef@isitnamed\eq@arg\ef@nil + \ifx\ef@latex@color\ef@y\expandafter + \HyColor@XZeroOneThreeFour\expandafter{\eq@arg}{\eq@BG}{}{}% + \edef\eq@BG{/BG [\eq@BG]}\else + \def\eq@BG{/BG [#1]}\fi + \fi} + \def\eq@BG{} + \def\@eqCA#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equCA{#1}\else + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@CA\@empty\let\ef@kvCA\@empty + \else\ef@pdfCRLFTABDefns + \pdfstringdef\ef@uni@temp{#1}% + \def\eq@CA{#1}\edef\ef@kvCA{/CA(\ef@uni@temp)}% + \makespecialJS\fi\fi} + \def\eq@CA{}\def\ef@kvCA{} + \def\@equCA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@CA\@empty\let\ef@kvCA\@empty + \else\def\eq@CA{#1}\def\ef@kvCA{/CA<#1>}\fi} + \def\@eqRC#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equRC{#1}\else + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@RC\@empty\let\ef@kvRC\@empty + \else\ef@pdfCRLFTABDefns + \pdfstringdef\ef@uni@temp{#1}% + \def\eq@RC{#1}\edef\ef@kvRC{/RC(\ef@uni@temp)}% + \makespecialJS\fi\fi} + \def\eq@RC{}\def\ef@kvRC{} + \def\@equRC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@RC\@empty\let\ef@kvRC\@empty + \else\def\eq@RC{#1}\def\ef@kvRC{/RC<#1>}\fi} + \def\@eqAC#1{\ef@isunicode#1\unicodeStr\@nil + \expandafter\csname\ifbool@ef\endcsname\@equAC{#1}\else + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AC\@empty\let\ef@kvAC\@empty + \else\ef@pdfCRLFTABDefns + \pdfstringdef\ef@uni@temp{#1}% + \def\eq@AC{#1}\edef\ef@kvAC{/AC(\ef@uni@temp)}% + \makespecialJS\fi\fi} + \def\eq@AC{}\def\ef@kvAC{} + \def\@equAC#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@AC\@empty\let\ef@kvAC\@empty + \else\def\eq@AC{#1}\def\ef@kvAC{/AC<#1>}\fi} +\def\eq@define@IconMK{\def\eq@IconMK{\eq@I\eq@RI\eq@IX\eq@TP + /IF<<\eq@SW\eq@ST\eq@PA\eq@FB>>}} +\let\eq@IconMK\@empty +\ifpdf\def\eq@relRef#1{0 0 R}\else %{#1\space 0 R} + \ifxetex\def\eq@relRef#1{#1}\else + \def\eq@relRef#1{{#1}}\fi\fi +\def\ef@null{null} +\def\@eqI#1{\ifx\annot@type\annot@type@button + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@I\@empty\else + \def\eq@I{/I \eq@relRef{#1}}% + \ifpdf\ifx\eq@arg\ef@null + \def\eq@I{/I 0 0 R}\fi\fi + \eq@define@IconMK\fi\fi} +\def\eq@I{} +\def\@eqRI#1{\ifx\annot@type\annot@type@button + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@RI\@empty\else + \def\eq@RI{/RI \eq@relRef{#1}}% + \ifpdf\ifx\eq@arg\ef@null + \def\eq@RI{/RI 0 0 R}\fi\fi + \eq@define@IconMK\fi\fi} +\def\eq@RI{} +\def\@eqIX#1{\ifx\annot@type\annot@type@button + \def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@IX\@empty\else + \def\eq@IX{/IX \eq@relRef{#1}}% + \ifpdf\ifx\eq@arg\ef@null + \def\eq@IX{/IX 0 0 R}\fi\fi + \eq@define@IconMK\fi\fi} +\def\eq@IX{} +\def\@eqTP#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@TP\@empty\else\def\eq@TP{/TP #1}\fi} +\def\eq@TP{/TP 0} % default 0 +\def\@eqSW#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@SW\@empty\else\def\eq@SW{/SW/#1}\fi} +\def\eq@SW{/SW/A} % the default, always scale +\def\@eqST#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@ST\@empty\else\def\eq@ST{/S/#1}\fi} +\def\eq@ST{/S/P} % the default, proportional scaling +\def\@eqPA#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@PA\@empty\else\def\eq@PA{/A [#1]}\fi} +\def\eq@PA{/A [0.5 0.5]} % the default +\def\@eqFB#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@PA\@empty\else\def\eq@FB{/FB #1}\fi} +\def\eq@FB{/FB false} % the default +\def\@eqmkIns#1{\def\eq@mkIns{#1}}\def\eq@mkIns{} +\def\@eqOpt#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Opt\@empty\else\def\eq@Opt{/Opt [#1]}\fi} + \def\eq@Opt{} +\def\@eqTI#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@TI\@empty\else\def\eq@TI{/TI #1}\fi} + \def\eq@TI{} +\def\@eqrawPDF#1{\def\eq@rawPDF{#1}}\def\eq@rawPDF{} +\def\@eqQuadPoints#1{\def\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@QuadPoints\@empty\else + \def\eq@QuadPoints{/QuadPoints {#1}}\fi} +\def\eq@QuadPoints{} +\def\@eqColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \let\eq@Color\@empty\else + \HyColor@XZeroOneThreeFour{#1}{\eq@Color}{}{}% + \edef\eq@Color{/C[\eq@Color]}\fi} +\def\eq@Color{} +\def\@eqlinktxtcolor#1{% + \def\ef@argi{#1}\ifHy@colorlinks + \ifx\ef@argi\@empty\let\ef@colorthislink\normalcolor\else + \let\ef@linktxtcolor@set=1\def\ef@thislinkcolor{#1}\fi\fi +}\let\ef@linktxtcolor@set=0 +\def\@eqrectH#1{\def\eq@rectH{#1}\ifx\eq@rectH\@empty\else + \setlength\eflength\eq@rectH\edef\eq@rectH{\the\eflength}\fi} +\def\@eqrectW#1{\def\eq@rectW{#1}\ifx\eq@rectW\@empty\else + \setlength\eflength\eq@rectW\edef\eq@rectW{\the\eflength}\fi} +\def\@eqobjdef#1{\def\ef@arg{#1}\ifx\ef@arg\@empty + \let\eq@objdef\@empty\else\def\eq@objdefName{#1}% + \def\eq@objdef{/_objdef {#1}}\fi +} +\let\eq@objdef\@empty +\def\@eqtaborder#1{\def\ef@arg{#1}\ifx\ef@arg\@empty + \let\eq@taborder\@empty\else + \def\eq@taborder{#1}\fi +} +\let\eq@taborder\@empty +\def\ef@y{y}\def\ef@n{n} +\def\@eqautoCenter#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y + \let\autoCenter\ef@y\else\ifx\ef@arg\ef@n + \let\autoCenter\ef@n\else\let\autoCenter\ef@y + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\autoCenter.\MessageBreak + Using the default of 'y'}% + \fi\fi} +\let\autoCenter\ef@y +\newif\ifeq@inlineCenter \eq@inlineCenterfalse +\let\inlineCenter=n +\def\@eqinline#1{\eq@inlineCenterfalse + \def\ef@arg{#1}\ifx\ef@arg\ef@y + \let\inlineCenter\ef@y\eq@inlineCentertrue\else + \ifx\ef@arg\ef@n\let\inlineCenter\ef@n\else\let\inlineCenter\ef@n + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\inline.\MessageBreak + Using the default of 'n'}% + \fi\fi} +\def\@eqsymbolchoice#1{\expandafter\ifx\csname eq@#1\endcsname\relax + \typeout{exerquiz: `#1' is not an acceptable option + for \string\symbolechoice, inserting default, `check'.} + \edef\symbol@choice{\eq@check}\else + \edef\symbol@choice{\csname eq@#1\endcsname}\fi +} +\newif\iffixmlinks \fixmlinkstrue +\def\mlfixOn{\fixmlinkstrue} +\def\mlfixOff{\fixmlinksfalse} +\def\@eqmlfix#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y + \mlfixOn\else\ifx\ef@arg\ef@n + \mlfixOff\else\mlfixOn + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\mlfix.\MessageBreak + Using the default of 'y'}% + \fi\fi} +\newbox\mlstrutbox +\def\@eqmlstrut#1{\setbox\mlstrutbox\hbox{#1}% + \def\ml@strut{\vrule \@height\ht\mlstrutbox + \@depth\dp\mlstrutbox + \@width\z@\relax}} +\def\ml@strut{\relax\ifmmode\copy\mlstrutbox\else + \unhbox\mlstrutbox\fi} +\@eqmlstrut{\strut} +\def\@eqmlcrackat#1{\def\eq@mlcrackat{#1}} +\let\eq@mlcrackat\@empty +\def\@eqmlhyph#1{\def\ef@arg{#1}\ifx\ef@arg\ef@y + \def\eq@mlhyph{-}\else\ifx\ef@arg\ef@n + \let\eq@mlhyph\@empty\else\let\eq@mlhyph\@empty + \PackageWarning{eforms}{The value of '#1' is not a + supported value\MessageBreak for \string\mlhyph.\MessageBreak + Using the default of 'n'}\fi\fi} +\let\eq@mlhyph\@empty +\def\@eqmlignore#1{\def\eq@mlchunk{#1}\ifx\eq@mlchunk\@empty + \def\eq@mlchunk{0}\fi\let\eq@mlignore\ef@YES} +\def\eq@mlchunk{0} +\let\eq@mlignore\ef@NO +\def\@eqmlcrackinsat#1{\def\eq@mlcrackinsat{#1}} +\let\eq@mlcrackinsat\@empty +\def\eq@protect#1{\let#1\@empty} +\begingroup\catcode`\#=12 \catcode`*=6 + \ifpdfmarkup + \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\else + \gdef\ef@Hx*1*2{\@nameuse{efHex*1*2}}\fi +\endgroup +\def\efHxError{\PackageError{eforms}{The glyph is not supported}{}} +\def\HGERROR{efHxError} +\ifpdfmarkup + \def\HexGlyph#1#2{\def\arg@ii{#2}\ifx\arg@ii\HGERROR + \global\@namedef{efHex#1}{\csname#2\endcsname}\else + \global\@namedef{efHex#1}{\expandafter + \string\csname#2\endcsname}\fi} +\else + \begingroup\catcode`\#=12 \catcode`*=6 + \gdef\HexGlyph*1*2{\def\arg@ii{*2}\ifx\arg@ii\HGERROR + \global\@namedef{efHex*1}{\csname*2\endcsname}\else + \global\@namedef{efHex*1}{#*1}\fi} + \endgroup +\fi +\def\ef@inputPDFHEX{\InputIfFileExists{pdfdochex.def} + {\PackageInfo{eforms}{Inputting pdfdochex.def}}{}} +\AtEndOfPackage{\ef@inputPDFHEX} +\def\ef@semicolon{;} +\def\ef@stripsemi#1;\@nil{\def\ef@colorSpec@out{#1}} +\def\ef@isitnamed{\let\ef@latex@color\ef@y + \@ifnextchar[{\ef@gobbletonil}{% + \@tfor\mytok:=.0123456789\do{% + \if\mytok\@let@token + \let\ef@latex@color\ef@n + \@break@tfor\fi}\ef@gobbletonil}} +\def\ef@gobbletonil#1\ef@nil{} +\def\ef@parsePDFColor#1{\edef\ef@color@arg{#1}\ef@parsePDFColori} +\def\ef@parsePDFColori{% + \expandafter\ef@@parsePDFColor\ef@color@arg; ; ; ; ; ;\\} +\def\ef@@parsePDFColor#1 #2 #3 #4 #5 #6\\{% + \def\argii{#2}\def\ef@cmp{g;}% + \ifx\argii\ef@cmp + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \def\ef@colorSpec@out{#1 g}\else + \def\ef@colorSpec@out{[gray]{#1}}% + \fi + \else\ifx\argii\ef@semicolon + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \ef@isitnamed#1\ef@nil + \ifx\ef@latex@color\ef@n + \ef@stripsemi#1\@nil + \edef\ef@colorSpec@out{\ef@colorSpec@out\space g}% + \else + \ef@stripsemi#1\@nil + \PackageWarning{eforms}{Color specification + `\ef@colorSpec@out' not supported\MessageBreak + without xcolor, using a black color} + \def\ef@colorSpec@out{0 g}% + \fi + \else % xcolor + \ef@isitnamed#1\ef@nil + \ifx\ef@latex@color\ef@n + \ef@stripsemi#1\@nil + \edef\ef@colorSpec@out{[gray]{\ef@colorSpec@out}}% + \else + \ef@stripsemi#1\@nil + \edef\ef@colorSpec@out{\ef@colorSpec@out}% + \fi + \fi + \else % not semicolon + \def\argiv{#4}\def\ef@cmp{rg;}% + \ifx\argiv\ef@cmp + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \def\ef@colorSpec@out{#1 #2 #3 rg}\else + \def\ef@colorSpec@out{[rgb]{#1,#2,#3}}\fi + \else\ifx\argiv\ef@semicolon + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \ef@stripsemi#1 #2 #3\@nil + \edef\ef@colorSpec@out{\ef@colorSpec@out\space rg}\else + \ef@stripsemi#3\@nil + \edef\ef@colorSpec@out{[rgb]{#1,#2,\ef@colorSpec@out}}\fi + \else + \def\argv{#5}\edef\ef@cmp{k;} + \ifx\argv\ef@cmp + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \def\ef@colorSpec@out{#1 #2 #3 #4 k}\else + \def\ef@colorSpec@out{[cmyk]{#1,#2,#3,#4}}\fi + \else + \ifx\argv\ef@semicolon + \ef@stripsemi#1 #2 #3 #4\@nil + \expandafter\ifx\csname convertcolorspec\endcsname\relax + \edef\ef@colorSpec@out{\ef@colorSpec@out\space k}\else + \ef@stripsemi#4\@nil + \edef\ef@colorSpec@out{% + [cmyk]{#1,#2,#3,\ef@colorSpec@out}}\fi + \else\ef@parseColor@iv + \fi\fi\fi\fi\fi\fi +} +\def\ef@parseColor@iv{\PackageError{AeB}{% + The number of arguments + is incorrect.\MessageBreak I was expecting + 1, 3, or 4 components of color}{Specify the correct number of + components for the color space.}} +\def\calcOrder#1{\let\efCalcOrder\@gobble + \@for\coi:=#1\do{\edef\efCalcOrder{\efCalcOrder,"\coi"}}% + \edef\efCalcOrder{[\efCalcOrder]}} +\@onlypreamble\calcOrder +\def\efCalcOrder{[]} +\def\eq@check{4} +\def\eq@circle{l} +\def\eq@cross{8} +\def\eq@diamond{u} +\def\eq@square{n} +\def\eq@star{H} +\let\symbolchoice\@eqsymbolchoice +\symbolchoice{check} +\providecommand{\JS}[1]{/S/JavaScript/JS(#1)} +\newcommand{\URI}[1]{/S/URI/URI(#1)} +\providecommand{\Named}[1]{/S/Named/N/#1} +\newcommand{\Next}[1]{/Next<<#1>>} +\providecommand{\toggleAttachmentsPanel}[2]{% + \setLink[\Border{0 0 0}\A{\Named{ShowHideFileAttachment}}] + {\textcolor{#1}{#2}}}% +\newcommand{\AAMouseUp}[1]{/U<<#1>>} +\newcommand{\AAMouseDown}[1]{/D<<#1>>} +\newcommand{\AAMouseEnter}[1]{/E<<#1>>} +\newcommand{\AAMouseExit}[1]{/X<<#1>>} +\newcommand{\AAOnFocus}[1]{/Fo<<#1>>} +\newcommand{\AAOnBlur}[1]{/Bl<<#1>>} +\newcommand{\AAFormat}[1]{/F<<\JS{#1}>>} +\newcommand{\AAKeystroke}[1]{/K<<\JS{#1}>>} +\newcommand{\AAValidate}[1]{/V<<\JS{#1}>>} +\newcommand{\AACalculate}[1]{/C<<\JS{#1}>>} +\newcommand{\AAPageOpen}[1]{/PO<<\JS{#1}>>} +\newcommand{\AAPageClose}[1]{/PC<<\JS{#1}>>} +\newcommand{\AAPageVisible}[1]{/PV<<\JS{#1}>>} +\newcommand{\AAPageInvisible}[1]{/PI<<\JS{#1}>>} +\newcommand{\definePath}[1]{\def\ef@ctrlName{#1}% + \hyper@normalise\ef@definePath} +\def\ef@definePath#1{\expandafter\xdef\ef@ctrlName{#1}} +\def\FHidden{2} % bit 2: hidden field +\def\FPrint{4} % bit 3: print (we set this bit by default) +\def\FNoPrint{-4} % bit 3: -print (this clears the bit) +\def\FNoView{32} % bit 6: no view +\def\FLock{128} % bit 8: locked field (PDF 1.4) +\def\FfReadOnly{1} % all +\def\FfRequired{2} % all +\def\FfNoExport{4} % all +\def\FfMultiline{4096} % text +\def\FfPassword{8192} % text +\def\FfNoToggleToOff{16384} % radio +\def\FfRadio{32768} % radio +\def\FfPushButton{65536} % Push button +\def\FfCombo{131072} % choice +\def\FfEdit{262144} % combo +\def\FfSort{524288} % choice +\def\FfFileSelect{1048576} % text (PDF 1.4) +\def\FfMultiSelect{2097152} % choice (PDF 1.4) +\def\FfDoNotSpellCheck{4194304} % text, combo (PDF 1.4) +\def\FfDoNotScroll{8388608} % text (PDF 1.4) +\def\FfComb{16777216} % text (PDF 1.5) +\def\FfRadiosInUnison{33554432} % radio (PDF 1.5) +\def\FfCommitOnSelChange{67108864} % choice (PDF 1.5) +\def\FfRichText{33554432} % radio (PDF 1.5) +\def\getFfValue/Ff#1\@nil{\def\eq@FfValue{#1}} +\def\getFValue/F#1\@nil{\def\eq@FValue{#1}} +\def\@getCmdName#1{\edef\@CmdName{\expandafter\@gobble\string#1}} +\newcommand{\everyTextField}[1]{\def\every@TextField{#1}} +\def\every@TextField{} +\newcommand{\everySigField}[1]{\def\every@sigField{#1}} +\def\every@sigField{} +\newcommand{\everyCheckBox}[1]{\def\every@CheckBox{#1}} +\def\every@CheckBox{} +\newcommand{\everyRadioButton}[1]{\def\every@RadioButton{#1}} +\def\every@RadioButton{} +\newcommand{\everyButtonField}[1]{\def\every@ButtonField{#1}} +\def\every@ButtonField{} +\newcommand{\everyPushButton}[1]{\def\every@PushButton{#1}} +\def\every@PushButton{} +\newcommand{\everyListBox}[1]{\def\every@listBox{#1}} +\newcommand{\everyComboBox}[1]{\def\every@comboBox{#1}} +\def\every@listBox{}\def\every@comboBox{} +\newcommand{\everyLink}[1]{\def\every@Link{#1}} +\def\every@Link{} +\def\ef@adjrectWH#1{\dimen@ii#1\relax + \ifx\eq@rectW\@empty\else + \eflength\eq@rectW\relax + \advance\eflength\dimen@ii + \edef\eq@rectW{\the\eflength}% + \eflength\eq@rectH\relax + \advance\eflength\dimen@ii + \edef\eq@rectH{\the\eflength}% + \fi +} +\def\ef@djXPD{\ifxetex\ifmakeXasPD\ef@adjrectWH{2bp}\fi + \else\ifmakePDasX\ef@adjrectWH{-2bp}\fi\fi} +\def\ef@btnspcr{} +\def\eq@setButtonProps#1#2{% + \makeJSspecials + \processAppArgs#2\end\@nil % set widget properties + \ifx\eq@BC\@empty\@eqW{}\else + \if\eq@W@value0\let\eq@BC\@empty\fi\fi + \Hy@pdfstringfalse + \ifx\eq@rectW\@empty + \ifnum\eq@textSize=0 \else + \dimen@=\eq@textSize bp + \dimen@1.00375\dimen@ + \edef\eq@textSize@pt{\strip@pt\dimen@}% + \fontsize{\eq@textSize@pt}{0}\selectfont + \fi + \dimen@\eq@W@value bp + \def\eq@S@B{B}\ifx\eq@S@value\eq@S@B + \def\eq@btn@sp{\hbox to2\dimen@{\hfill}}% + \else + \def\eq@btn@sp{\hbox to\dimen@{\hfill}}% + \fi + \expandafter\def\expandafter + \ef@btnspcr\expandafter{\ef@btnspcr\eq@btn@sp}% + \sbox{\eq@tmpbox}{\ef@btnspcr\eq@CA\ef@btnspcr}% + \eq@tmpdima=\wd\eq@tmpbox + \sbox{\eq@tmpbox}{\ef@btnspcr\eq@RC\ef@btnspcr}% + \ifdim\eq@tmpdima>\wd\eq@tmpbox\else + \eq@tmpdima=\wd\eq@tmpbox\fi% + \sbox{\eq@tmpbox}{\ef@btnspcr\eq@AC\ef@btnspcr}% + \ifdim\eq@tmpdima>\wd\eq@tmpbox\else + \eq@tmpdima=\wd\eq@tmpbox\fi + \ifmakePDasX\advance\eq@tmpdima2bp\fi + \wd\eq@tmpbox=\eq@tmpdima + \else + \wd\eq@tmpbox=\eq@rectW + \fi + \ef@djXPD#1% dps 12/22 +} +\def\eq@setWidgetProps#1#2{% + \makeJSspecials + \processAppArgs#2\end\@nil % set widget properties + \ifx\annot@type@link\annot@type\else + \ifx\eq@BC\@empty\@eqW{}\else + \if\eq@W@value0\let\eq@BC\@empty\fi\fi + \fi + \ef@djXPD#1% dps 12/22 +} +\def\ef@sanitize@toks{\@makeother\~\@makeother\#\@makeother\&% + \@makeother\"\@makeother\_} +\newcommand\efKern[2]{\ifxetex\kern#2\else\kern#1\fi} +\newcommand\olBdry{\bgroup\ifxetex % dps 12/22 + \@tempdima-\g@eq@W@value@bp\relax + \edef\@mtkern{\the\@tempdima}\else + \@tempdima2bp\relax\advance\@tempdima-\g@eq@W@value@bp\relax % 12/26 + \edef\@mtkern{\the\@tempdima}\fi\kern\@mtkern\egroup +} +\newcommand\cgBdry[1][0bp]{\bgroup\def\ef@rgi{#1}\ifx\ef@rgi\@empty + \def\ef@rgi{0bp}\fi\setlength{\@tempdima}{\ef@rgi}% + \ifxetex\else\addtolength{\@tempdima}{2bp}\fi + \kern\@tempdima\egroup\ignorespaces} +\newcommand{\efSupprIndent}{\ef@scratchtoks=\expandafter{\the\everypar}% + \everypar{{\setbox\z@\lastbox}\clubpenalty\@M + \everypar=\expandafter{\the\ef@scratchtoks}}} +\newcommand\volBdry{\bgroup\parskip0pt\relax\@@par\nointerlineskip + \olBdry\egroup\efSupprIndent} +\newcommand\vcgBdry{\@ifstar{\edef\ef@offset{\the\parskip}\vcgBdry@i} + {\def\ef@offset{0pt}\vcgBdry@i}} +\newcommand\vcgBdry@i[1][0bp]{\bgroup + \setlength{\ef@dimena}{#1-\ef@offset}\parskip0pt\relax + \par\nointerlineskip\cgBdry[\ef@dimena]% + \egroup\ignorespaces\efSupprIndent} +\def\common@choiceCode{% + /Subtype/Widget + /T (\Fld@name) + /FT/Ch + \eq@Ff + \eq@F + \eq@TU + \eq@TI + /BS << \eq@W\eq@S >> + /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> + /DA (\eq@DA) + /Opt [\eq@Opt] + \eq@DV\eq@V + \eq@A\eq@AA + \eq@rawPDF +} +\def\eqf@setDimens#1#2{\@eqrectW{#1}\@eqrectH{#2}} +\let\ef@@nil\relax +\def\@gobbleto@@nil#1\ef@@nil{}% +\long\def\g@addto@macrogobble#1#2{\g@addto@macro{#1}{#2}\@gobbleto@@nil} +\def\passthruCLOpts{*} +\def\ef@pdfstrCLOpt{\Hy@unicodefalse\def\eq@Opt{}\ef@pdfstrCLOpti} +\def\ef@pdfstrCLOpti{\@ifnextchar\ef@@nil{\@gobble}{\ef@pdfstrCLOptia}} +\def\ef@pdfstrCLOptia{\@ifnextchar[{\expandafter + \ef@pdfstrOptWBii\@gobble}{\ef@pdfstrCLOptb}} +\def\ef@pdfstrCLOptb{\@ifstar{\g@addto@macrogobble\eq@Opt} + {\ef@pdfstrOptWPi}} +\def\ef@pdfstrOptWBii{% + \@ifnextchar({\ef@pdfstrOptWBiia}{\PackageError{eforms} + {Left parenthesis expected here}{}}% +} +\def\ef@pdfstrOptWBiia(#1){% + \g@addto@macro\eq@Opt{[(}% + \pdfstringdef\@optTokstemp{#1}% + \expandafter\g@addto@macro\expandafter\eq@Opt + \expandafter{\@optTokstemp}% + \@ifnextchar({\ef@pdfstrOptWBiib}{\PackageError{eforms} + {Left parenthesis expected here}{}}% +} +\def\ef@pdfstrOptWBiib(#1){% + \g@addto@macro\eq@Opt{)(}% + \pdfstringdef\@optTokstemp{#1}% + \expandafter\g@addto@macro\expandafter\eq@Opt + \expandafter{\@optTokstemp}% + \g@addto@macro\eq@Opt{)]}% + \expandafter\ef@pdfstrCLOpti\@gobble +} +\def\ef@pdfstrOptWPi{\@ifnextchar\ef@@nil{\@gobble}{\ef@pdfstrOptWPii}} +\def\ef@pdfstrOptWPii(#1){% + \g@addto@macro\eq@Opt{(}% + \pdfstringdef\@optTokstemp{#1}% + \expandafter\g@addto@macro\expandafter\eq@Opt + \expandafter{\@optTokstemp}% + \g@addto@macro\eq@Opt{)}% + \ef@pdfstrCLOpti} +\def\annot@type@listbox{listbox} +\newcommand\list@@Box[8]{\begingroup + \edef\annot@type{\annot@type@listbox}% + \pdfstringdef\Fld@name{#2}% + \expandafter\ef@pdfstrCLOpt#5\ef@@nil + \eqf@setDimens{#3}{#4}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@processEvery#8\end\noindent#6#7{#1}% +} +\def\listBoxDefaults{% + \W{1}\S{I}\F{\FPrint}\BC{0 0 0} +} +\newcommand\listBox{\begingroup + \ef@sanitize@toks\ef@listbox +} +\newcommand{\ef@listbox}[1][]{% + \endgroup\ef@listBox[#1]% +} +\newcommand\ef@listBox[5][]{% + \mbox{\list@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps + \eq@choice@driver}{\listBoxDefaults\every@listBox}}% +} +\def\annot@type@combobox{combobox} +\newcommand\combo@@Box[8]{\begingroup + \edef\annot@type{\annot@type@combobox}% + \@eqFf{\FfCombo}\pdfstringdef\Fld@name{#2}% + \expandafter\ef@pdfstrCLOpt#5\ef@@nil + \eqf@setDimens{#3}{#4}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@processEvery#8\end\noindent#6#7{#1}% +} +\def\comboBoxDefaults{% + \W{1}\S{I}\F{\FPrint}\BC{0 0 0} +} +\newcommand\comboBox{\begingroup + \ef@sanitize@toks\ef@combobox +} +\newcommand{\ef@combobox}[1][]{% + \endgroup\ef@comboBox[#1]% +} +\newcommand\ef@comboBox[5][]{% + \mbox{\combo@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps + \eq@choice@driver}{\comboBoxDefaults\every@comboBox}}% +} +\def\common@pushButtonCode{% + /Subtype/Widget + /T (\Fld@name) + /FT/Btn + \eq@Ff + \eq@TU + \eq@H + \eq@F + /BS <<\eq@W\eq@S >> +\ifx\eq@AP\@empty + /MK <<\eq@R\eq@BC\eq@BG% + \ef@kvCA\ef@kvRC\ef@kvAC\eq@IconMK\eq@mkIns>> +\else + \eq@AP +\fi + /DA (\eq@DA) + \eq@A\eq@AA + \eq@rawPDF +} +\def\common@RadioCheckCode{% + /Subtype/Widget + /T (\Fld@name) + /FT/Btn + \eq@Ff + \eq@F + \eq@TU + /BS <<\eq@W\eq@S>> +\ifx\eq@AP\@empty + /AP<< /N <<\eq@On<<>>>> >> + \eq@MK +\else + \eq@AP +\fi + /DA (\eq@DA) + \eq@AS + \eq@DV\eq@V + \eq@A\eq@AA + \eq@rawPDF +} +\def\annot@type@button{pushbtn} +\newcommand\push@@Button[7]{\begingroup + \edef\annot@type{\annot@type@button}% + \pdfstringdef\Fld@name{#2}%\edef\Fld@name{#2}% + \makeJSspecials\ef@preProcDefns + \def\eq@Ff{/Ff \FfPushButton}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \eqf@setDimens{#3}{#4}% + \@processEvery#7\end\noindent#5#6{#1}% +} +\def\pushButtonDefaults{% + \W{1}\S{B}\F{\FPrint}\BC{0 0 0} + \H{P}\BG{.7529 .7529 .7529} +} +\newcommand\pushButton{\begingroup + \ef@sanitize@toks\ef@pushbutton +} +\newcommand{\ef@pushbutton}[1][]{% + \endgroup\ef@pushButton[#1]% +} +\newcommand\ef@pushButton[4][]{% + \mbox{\push@@Button{#1}{#2}{#3}{#4}{}{% + \eq@setButtonProps\eq@Button@driver}% + {\pushButtonDefaults\every@PushButton}}% +} +\def\annot@type@checkbox{checkbox} +\newcommand\check@@Box[8] +{% + \begingroup\let\#\ef@Hx + \edef\annot@type{\annot@type@checkbox}% + \pdfstringdef\Fld@name{#2}\@eqAS{Off}% + \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV\@empty + \else\ifpdfmarkup\def\eq@DV{/DV(##1) cvn }\else + \def\eq@DV{/DV/##1}\fi\fi}% + \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty + \let\eq@V\@empty\else\ifpdfmarkup\def\eq@V{/V(##1) cvn }\else + \def\eq@V{/V/##1}\fi\@eqAS{##1}\fi}% + \eqf@setDimens{#3}{#4}% + \ifpdfmarkup\def\eq@On{(#5) cvn }\else + \def\eq@On{/#5}\fi\@eqtextFont{ZaDb}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% + \@processEvery#8\end\noindent#6#7{#1}% +} +\def\checkBoxDefaults{% + \F{\FPrint}\W{1}\S{S}\BC{0 0 0}% +} +\newcommand\checkBox{\begingroup + \ef@sanitize@toks\ef@checkbox +} +\newcommand{\ef@checkbox}[5][]{% + \endgroup\mbox{\check@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps + \eq@RadioCheck@driver}{\checkBoxDefaults\every@CheckBox}}% +} +\def\annot@type@radio{radiobtn} +\newcommand\radio@@Button[8]{\begingroup\let\#\ef@Hx + \edef\annot@type{\annot@type@radio}% + \pdfstringdef\Fld@name{#2}\@eqAS{Off}% + \def\@eqDV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty\let\eq@DV\@empty + \else\ifpdfmarkup\def\eq@DV{/DV(##1) cvn }\else + \def\eq@DV{/DV/##1}\fi\fi}% + \def\@eqV##1{\def\eq@arg{##1}\ifx\eq@arg\@empty + \let\eq@V\@empty\else\ifpdfmarkup\def\eq@V{/V(##1) cvn }\else + \def\eq@V{/V/##1}\fi\@eqAS{##1}\fi}% + \eqf@setDimens{#3}{#4}% + \ifpdfmarkup\def\eq@On{(#5) cvn }\else\def\eq@On{/#5}\fi + \def\eq@Ff{/Ff \FfRadio}\@eqtextFont{ZaDb}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@eqMK{\eq@R\eq@BC\eq@BG/CA(\symbol@choice)\eq@mkIns}% + \@processEvery#8\end\noindent#6#7{#1}% +} +\def\radioButtonDefaults +{% + \W{1}\S{S}\BC{0 0 0}\F{\FPrint} +} +\newcommand\radioButton{\begingroup + \ef@sanitize@toks\ef@radiobutton +} +\newcommand{\ef@radiobutton}[5][]{\endgroup + \mbox{\radio@@Button{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps + \eq@RadioCheck@driver}{\radioButtonDefaults\every@RadioButton}}% +} +\newcommand\ef@radioButton[5][] +{% + \mbox{\radio@@Button{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps + \eq@RadioCheck@driver}{\radioButtonDefaults\every@RadioButton}}% +} +\def\common@TextFieldCode +{% + /Subtype/Widget + /T (\Fld@name) + /FT/Tx + \eq@Ff + \eq@F + \eq@Q + \eq@TU + \eq@MaxLen + /BS <<\eq@W\eq@S>> + /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> + /DA (\eq@DA) + \eq@DV\eq@V + \eq@RV\eq@DS + \eq@A\eq@AA + \eq@rawPDF +} +\def\annot@type@text{textfld} +\newcommand\text@@Field[7] +{% + \begingroup + \edef\annot@type{\annot@type@text}% + \pdfstringdef\Fld@name{#2}\def\eq@Title{#2}% + \eqf@setDimens{#3}{#4}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@processEvery#7\end\noindent#5#6{#1}% +} +\def\textFieldDefaults +{% + \F{\FPrint}\BC{0 0 0}\W{1}\S{S} +} +\newcommand\textField{\begingroup + \ef@sanitize@toks\ef@textfield +} +\newcommand{\ef@textfield}[2][]{% + \endgroup\ef@textField[#1]{#2}% +} +\newcommand\ef@textField[4][] +{% + \mbox{\text@@Field{#1}{#2}{#3}{#4}{}% + {\eq@setWidgetProps\eq@TextField}% + {\textFieldDefaults\every@TextField}}% +} +\let\eqTextField\textField +\let\calcTextField\textField +\def\common@SigFieldCode +{% + /Subtype /Widget + /T (\Fld@name) + /FT/Sig + \eq@F + \eq@TU + /BS <<\eq@W\eq@S>> + /MK <<\eq@R\eq@BC\eq@BG\eq@mkIns>> + /DA (\eq@DA) + \eq@Lock + \eq@A\eq@AA + \eq@rawPDF +} +\def\annot@type@sig{sigfld} +\newcommand\sig@@Field[7]{% + \begingroup + \edef\annot@type{\annot@type@sig}% + \pdfstringdef\Fld@name{#2}\def\eq@Title{#2}% + \eqf@setDimens{#3}{#4}% + \def\eq@DA{\eq@textFont\space\eq@textSize\space Tf \eq@textColor}% + \@processEvery#7\end\noindent#5#6{#1}% +} +\def\sigFieldDefaults +{% + \F{\FPrint}\BC{}\BG{}\W{1}\S{S} +} +\newcommand\sigField{\begingroup + \ef@sanitize@toks\ef@sigfield +} +\newcommand{\ef@sigfield}[1][]{% + \endgroup\ef@sigField[#1]% +} +\newcommand\ef@sigField[4][] +{% + \mbox{\sig@@Field{#1}{#2}{#3}{#4}{}{\eq@setWidgetProps\eq@SigField}% + {\sigFieldDefaults\every@sigField}}% +} +\def\common@LinkCode +{% + \eq@A % Action + \eq@H % Highlight + \eq@Color % Border color + \link@BS % Border styles + \eq@rawPDF % everything else +} +\def\annot@type@link{link} +\newcommand\set@@Link[7] +{% + \begingroup + \makeJSspecials + \edef\annot@type{\annot@type@link}% + \ef@preProcDefns + \eqf@setDimens{#2}{#3}% + \ifx\eq@rectW\@empty\def\link@@Box{#4}\else + \def\eq@arg{#4}\ifx\eq@arg\@empty + \def\eq@content{\hfill\vfill}\else\def\eq@content{#4}\fi + \def\link@@Box{\parbox[\eq@pos][\eq@rectH][\eq@innerpos]% + {\eq@rectW}{\centering\eq@content}}% + \fi + \@processEvery#7\end\noindent#5#6{#1}% +} +\def\defaultlinkcolor{\@linkcolor} +\def\setDef@ultLinkColor{\ifHy@colorlinks + \def\ef@thislinkcolor{\defaultlinkcolor} + \def\ef@colorthislink{\color{\ef@thislinkcolor}}\else + \let\ef@colorthislink\relax\fi +} +\AtBeginDocument{\setDef@ultLinkColor} +\def\set@LinkTextDefaults{\S{S}\Border{0 0 0}} +\newcommand\setLink{\begingroup + \ef@sanitize@toks\ef@setlinktext +} +\let\setLinkText\setLink +\newcommand{\ef@setlinktext}[1][]{% + \endgroup\ef@searchmlLink#1\mlLink\end\@nil + \ifx\ef@mlLink\ef@Zero\def\ef@next{\set@LinkText[#1]}\else + \def\ef@next{\mlhypertext[#1]}\fi\ef@next +} +\newcommand\set@LinkText[2][]{% + \set@@Link{#1}{}{}{\ef@colorthislink#2}{}% + {\eq@setWidgetProps{\ef@postProcLinkProps\setLink@driver}}% + {\set@LinkTextDefaults\every@Link}% +} +\def\ef@preProcDefns{% + \def\Win##1{/Win <<##1>>}% + \def\fitpage{\dl@fitpage}\def\actualsize{\dl@actualsize}% + \def\fitwidth{\dl@fitwidth}\def\fitheight{\dl@fitheight}% + \def\fitvisible{\dl@fitvisible}\def\inheritzoom{\dl@inheritzoom}% + \let\rPage\ef@rPage + \edef\Page##1{\ifcase\eq@drivernum + {Page##1}\or + \noexpand\pdfpageref##1\space\space 0 R\or + \noexpand @page##1\fi + }% +} +\def\ef@postProcLinkProps{} +\newcommand{\mlsetLink}{\mlhypertext} +\newcommand{\mlhypertext}[2][]{\@ifundefined{mlhypertext@i} + {\PackageWarning{eforms}{The \string\mlhypertext\space command + does nothing unless\MessageBreak the aeb_mlink package is loaded}}{}% + #2} +\def\set@LinkBboxDefaults{\S{S}\Border{0 0 0}} +\newcommand{\setLinkBbox}{\begingroup + \ef@sanitize@toks\ef@linkbbox +} +\newcommand{\ef@linkbbox}[1][]{% + \endgroup\ef@setLinkBbox[#1]% +} +\newcommand{\ef@setLinkBbox}[3][]{% + \@setLinkBbox{#1}{#2}{#3}% +} +\def\@setLinkBbox#1#2#3{\@ifnextchar[{\@@setLinkBbox{#1}{#2}{#3}}% + {\@@setLinkBbox{#1}{#2}{#3}[c]}} +\def\@@setLinkBbox#1#2#3[#4]{% + \@ifnextchar[{\@@@setLinkBbox{#1}{#2}{#3}{#4}}% + {\@@@setLinkBbox{#1}{#2}{#3}{#4}[#4]}% +} +\def\@@@setLinkBbox#1#2#3#4[#5]#6{% + \def\eq@pos{#4}\def\eq@innerpos{#5}% + \set@@Link{#1}{#2}{#3}{\ef@colorthislink#6}% + {\eq@setWidgetProps\setLink@driver}{}% + {\set@LinkBboxDefaults\every@Link}% +} +\def\set@LinkPboxDefaults{\S{S}\Border{0 0 0}} +\newcommand\setLinkPbox{\begingroup + \ef@sanitize@toks\ef@linkpbox +} +\newcommand{\ef@linkpbox}[1]{% + \endgroup\ef@setLinkPbox{#1}% +} +\newcommand\ef@setLinkPbox[1]{% + \@setLinkPbox{#1\BS{}}{}{}{\hfill\vfill}% +} +\def\@setLinkPbox#1#2#3{\@ifnextchar[{\@@setLinkPbox{#1}{#2}{#3}}% + {\@@setLinkPbox{#1}{#2}{#3}[c]}} +\def\@@setLinkPbox#1#2#3[#4]{% + \@ifnextchar[{\@@@setLinkPbox{#1}{#2}{#3}{#4}}% + {\@@@setLinkPbox{#1}{#2}{#3}{#4}[#4]} +} +\def\@@@setLinkPbox#1#2#3#4[#5]#6{% + \def\eq@pos{#4}\def\eq@innerpos{#5}% + \set@@Link{#1}{#2}{#3}{#6}{\eq@setWidgetProps\setLinkPbox@driver}% + {}{\set@LinkPboxDefaults\every@Link}% +} +\input{\eq@drivercode} +\inputCalcOrderJS +\endinput +%% +%% End of file `eforms.sty'. diff --git a/texmf-dist/tex/latex/acrotex/epdfmark.def b/texmf-dist/tex/latex/acrotex/epdfmark.def index 88b4309b..be20a1c6 100644 --- a/texmf-dist/tex/latex/acrotex/epdfmark.def +++ b/texmf-dist/tex/latex/acrotex/epdfmark.def @@ -1,127 +1,127 @@ -%% -%% This is file `epdfmark.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,epdfmark') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\Rect#1{\pdf@rect{\textcolor{\@linkcolor}{#1}}} -\def\noPeek#1#2{\literalps@out{% - [ {ThisPage} << \noPeekAction{#1}{#2} >> /PUT pdfmark}} -\def\eq@choice@driver -{% - \Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \literalps@out{% - [ \ifisCalculate/_objdef {\Fld@name}\else\eq@objdef\fi - /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@choiceCode - /ANN pdfmark - \ifisCalculate[ {corder} {\Fld@name} /APPEND pdfmark\fi - }\to@insertStrucTabOrder{Form}\endgroup -} -\def\eq@Button@driver -{% - \Hy@pdfstringtrue - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \literalps@out{% - [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@pushButtonCode - /ANN pdfmark}\to@insertStrucTabOrder{Form}\endgroup -} -\def\eq@RadioCheck@driver -{% - \Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi - \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \literalps@out{% - [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@RadioCheckCode - /ANN pdfmark}\to@insertStrucTabOrder{Form}\endgroup -} -\def\eq@l@check@driver -{% - \pdf@rect{\makebox[\eq@tmpdima]{\phantom{\link@@Content}}}% - \literalps@out{% - [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@RadioCheckCode - /ANN pdfmark}\endgroup -} -\def\eq@TextField{\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \literalps@out{% - [ \ifisCalculate/_objdef {\Fld@name}\else\eq@objdef\fi - /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@TextFieldCode - /ANN pdfmark - \ifisCalculate[ {corder} {\Fld@name} /APPEND pdfmark\fi - }\to@insertStrucTabOrder{Form}\endgroup -} -\def\eq@SigField{\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% - \literalps@out{% - [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \common@SigFieldCode - /ANN pdfmark - }\to@insertStrucTabOrder{Form}\endgroup -} -\def\convertAToAction/A#1\@nil{\def\eq@A{/Action#1}} -\def\setLink@driver -{% - \ifx\eq@A\@empty\else\expandafter\convertAToAction\eq@A\@nil\fi - \@eqBS{}% - \pdf@rect{\link@@Box}% - \literalps@out{% - [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - \eq@Border - \common@LinkCode - /Subtype /Link - /ANN pdfmark}% - \to@insertStrucTabOrder{Link}\endgroup -} -\def\pboxRect{/Rect [\par@@Rect]} -\def\mllnkcontainer#1{#1} -\def\setLinkPbox@driver -{% - \ifx\eq@A\@empty\else\expandafter\convertAToAction\eq@A\@nil\fi - \@eqBS{}% - \literalps@out{\mllnkcontainer{% - [ \eq@objdef\pboxRect - \eq@Border - \eq@QuadPoints % QuadPoints - \common@LinkCode - /Subtype /Link - /ANN pdfmark}}% - \to@insertStrucTabOrder{Link}\endgroup -} -\endinput -%% -%% End of file `epdfmark.def'. +%% +%% This is file `epdfmark.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,epdfmark') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\Rect#1{\pdf@rect{\textcolor{\@linkcolor}{#1}}} +\def\noPeek#1#2{\literalps@out{% + [ {ThisPage} << \noPeekAction{#1}{#2} >> /PUT pdfmark}} +\def\eq@choice@driver +{% + \Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \literalps@out{% + [ \ifisCalculate/_objdef {\Fld@name}\else\eq@objdef\fi + /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@choiceCode + /ANN pdfmark + \ifisCalculate[ {corder} {\Fld@name} /APPEND pdfmark\fi + }\to@insertStrucTabOrder{Form}\endgroup +} +\def\eq@Button@driver +{% + \Hy@pdfstringtrue + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \literalps@out{% + [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@pushButtonCode + /ANN pdfmark}\to@insertStrucTabOrder{Form}\endgroup +} +\def\eq@RadioCheck@driver +{% + \Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi + \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \literalps@out{% + [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@RadioCheckCode + /ANN pdfmark}\to@insertStrucTabOrder{Form}\endgroup +} +\def\eq@l@check@driver +{% + \pdf@rect{\makebox[\eq@tmpdima]{\phantom{\link@@Content}}}% + \literalps@out{% + [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@RadioCheckCode + /ANN pdfmark}\endgroup +} +\def\eq@TextField{\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \literalps@out{% + [ \ifisCalculate/_objdef {\Fld@name}\else\eq@objdef\fi + /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@TextFieldCode + /ANN pdfmark + \ifisCalculate[ {corder} {\Fld@name} /APPEND pdfmark\fi + }\to@insertStrucTabOrder{Form}\endgroup +} +\def\eq@SigField{\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \pdf@rect{\lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}}% + \literalps@out{% + [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \common@SigFieldCode + /ANN pdfmark + }\to@insertStrucTabOrder{Form}\endgroup +} +\def\convertAToAction/A#1\@nil{\def\eq@A{/Action#1}} +\def\setLink@driver +{% + \ifx\eq@A\@empty\else\expandafter\convertAToAction\eq@A\@nil\fi + \@eqBS{}% + \pdf@rect{\link@@Box}% + \literalps@out{% + [ \eq@objdef/Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + \eq@Border + \common@LinkCode + /Subtype /Link + /ANN pdfmark}% + \to@insertStrucTabOrder{Link}\endgroup +} +\def\pboxRect{/Rect [\par@@Rect]} +\def\mllnkcontainer#1{#1} +\def\setLinkPbox@driver +{% + \ifx\eq@A\@empty\else\expandafter\convertAToAction\eq@A\@nil\fi + \@eqBS{}% + \literalps@out{\mllnkcontainer{% + [ \eq@objdef\pboxRect + \eq@Border + \eq@QuadPoints % QuadPoints + \common@LinkCode + /Subtype /Link + /ANN pdfmark}}% + \to@insertStrucTabOrder{Link}\endgroup +} +\endinput +%% +%% End of file `epdfmark.def'. diff --git a/texmf-dist/tex/latex/acrotex/epdftex.def b/texmf-dist/tex/latex/acrotex/epdftex.def index 7edb9d9c..aef1ac3f 100644 --- a/texmf-dist/tex/latex/acrotex/epdftex.def +++ b/texmf-dist/tex/latex/acrotex/epdftex.def @@ -1,106 +1,106 @@ -%% -%% This is file `epdftex.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,epdftex') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\noPeek#1#2{\global\pdfpageattr=\expandafter{\noPeekAction{#1}{#2}}} -\def\HyField@@AddToFields#1{% - \HyField@AfterAuxOpen{% - \if@filesw - \write\@mainaux{% - \string\HyField@AuxAddToFields{#1}}% - \ifisCalculate\write\@mainaux{% - \string\HyField@AuxAddToCoFields{}{#1}}\fi - \fi - }% -}% -\def\eq@choice@driver -{% - \Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \hbox{\pdfstartlink user{\common@choiceCode}% - \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% - \HyField@AddToFields - \endgroup -} -\def\eq@Button@driver -{% - \Hy@pdfstringtrue - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi - \hbox{\pdfstartlink user{ \common@pushButtonCode }% - \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% - \endgroup -} -\def\eq@RadioCheck@driver -{% - \Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi - \hbox{\pdfstartlink user{\common@RadioCheckCode}% - \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% - \endgroup -} -\def\eq@l@check@driver -{% - \pdfstartlink user{\common@RadioCheckCode}% - \makebox[\eq@tmpdima]{\phantom{\link@@Content}}% - \pdfendlink\endgroup -} -\def\eq@TextField{\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \leavevmode - \hbox{\pdfstartlink user{\common@TextFieldCode}% - \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% - \HyField@AddToFields - \endgroup -} -\def\eq@SigField{\Hy@pdfstringtrue - \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% - \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH - \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi - \leavevmode\hbox{\pdfstartlink user{\common@SigFieldCode}% - \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% - \endgroup -} -\def\setLink@driver -{% - \@eqBS{}% - \leavevmode\pdfstartlink - attr {\eq@Border}% - user{/Subtype/Link \common@LinkCode}% - \Hy@colorlink{\@linkcolor}\link@@Box - \close@pdflink - \endgroup -} -\def\ef@setTabOrder{\ifx\ef@taborder\@empty\else - \edef\ef@tmp@toks{\the\pdfpageattr\space/Tabs/\ef@taborder}% - \global\pdfpageattr=\expandafter{\ef@tmp@toks}% - \fi\endgroup -} -\endinput -%% -%% End of file `epdftex.def'. +%% +%% This is file `epdftex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,epdftex') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\noPeek#1#2{\global\pdfpageattr=\expandafter{\noPeekAction{#1}{#2}}} +\def\HyField@@AddToFields#1{% + \HyField@AfterAuxOpen{% + \if@filesw + \write\@mainaux{% + \string\HyField@AuxAddToFields{#1}}% + \ifisCalculate\write\@mainaux{% + \string\HyField@AuxAddToCoFields{}{#1}}\fi + \fi + }% +}% +\def\eq@choice@driver +{% + \Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \hbox{\pdfstartlink user{\common@choiceCode}% + \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% + \HyField@AddToFields + \endgroup +} +\def\eq@Button@driver +{% + \Hy@pdfstringtrue + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\ef@djXPD\fi + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi + \hbox{\pdfstartlink user{ \common@pushButtonCode }% + \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% + \endgroup +} +\def\eq@RadioCheck@driver +{% + \Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \ifx\eq@rectW\@empty\def\eq@rectW{\wd\eq@tmpbox}\fi + \hbox{\pdfstartlink user{\common@RadioCheckCode}% + \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% + \endgroup +} +\def\eq@l@check@driver +{% + \pdfstartlink user{\common@RadioCheckCode}% + \makebox[\eq@tmpdima]{\phantom{\link@@Content}}% + \pdfendlink\endgroup +} +\def\eq@TextField{\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \leavevmode + \hbox{\pdfstartlink user{\common@TextFieldCode}% + \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% + \HyField@AddToFields + \endgroup +} +\def\eq@SigField{\Hy@pdfstringtrue + \if\@vertRotate1 \let\W@temp\eq@rectW\edef\eq@rectW{\eq@rectH}% + \edef\eq@rectH{\W@temp}\fi\centerWidget\eq@rectH + \ifx\autoCenter\ef@n\eqcenterWidget=0pt\fi + \leavevmode\hbox{\pdfstartlink user{\common@SigFieldCode}% + \lower\eqcenterWidget\ef@Bbox{\eq@rectW}{\eq@rectH}\pdfendlink}% + \endgroup +} +\def\setLink@driver +{% + \@eqBS{}% + \leavevmode\pdfstartlink + attr {\eq@Border}% + user{/Subtype/Link \common@LinkCode}% + \Hy@colorlink{\@linkcolor}\link@@Box + \close@pdflink + \endgroup +} +\def\ef@setTabOrder{\ifx\ef@taborder\@empty\else + \edef\ef@tmp@toks{\the\pdfpageattr\space/Tabs/\ef@taborder}% + \global\pdfpageattr=\expandafter{\ef@tmp@toks}% + \fi\endgroup +} +\endinput +%% +%% End of file `epdftex.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqbr.def b/texmf-dist/tex/latex/acrotex/eqbr.def index 650f2481..95be10d9 100644 --- a/texmf-dist/tex/latex/acrotex/eqbr.def +++ b/texmf-dist/tex/latex/acrotex/eqbr.def @@ -1,84 +1,84 @@ -%% -%% This is file `eqbr.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqbr') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqbr.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqbr.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Koichi Sameshima %% -%% e-mail address: ksameshi@usp.br %% -%% Language: (brazil) %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\renewcommand\exlabel{Exerc\texorpdfstring{\'{\i}}{\string\355}cio} -\renewcommand\exlabelsol{Exerc\string\'{\string\i}cio} - -\renewcommand\exsectitle{Solu\texorpdfstring{\c{c}}{\string\347}% - \texorpdfstring{\~{o}}{% - \string\365}es dos Exerc\texorpdfstring{\'{\i}}{\string\355}cios} - %{Solu\string\\347\string\\363es dos Exerc\string\\355cios}} -\renewcommand\exsecrunhead{% - Solu\protect\c{c}\protect\~{o}es dos Exerc\protect\'{i}cios} - -\renewcommand{\eq@exsolafterDefault}{\textit{Solu\c{c}\~{a}o}:} - -\renewcommand\eq@sqslsectitle{Solu\c{c}\~{o}es - dos Testes} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Solu\protect\c{c}\protect\~{o}es - dos Testes} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{Solu\protect\c{c}\protect\~{a}o do Teste:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Solu\protect\c{c}\protect\~{a}o}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Teste.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Finaliza Teste} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Correto!"} -\renewcommand\eqsqwgmsg{"Incorreto!"} - -\renewcommand\eq@bqlabel{Inicia Teste} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Finaliza Teste} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Pontos:}\renewcommand\eq@OutOf{de} -\renewcommand\eqInitQuizMsg{% ****** - "Voc\string\352 precisa iniciar o Teste! Clique sobre "+msg+"."} -\renewcommand\eqMadeChoice{% - "Voc\string\352 j\string\341 respondeu. - Sua resposta foi ("+Responses[probno]+"). - Quer alter\string\341-la?"} -\renewcommand\eq@local@CA{Corretas} -\renewcommand\eq@local@RC{Minhas Respostas!} -\renewcommand\eq@local@AC{Por Favor!} -\endinput -%% -%% End of file `eqbr.def'. +%% +%% This is file `eqbr.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqbr') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqbr.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqbr.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Koichi Sameshima %% +%% e-mail address: ksameshi@usp.br %% +%% Language: (brazil) %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\renewcommand\exlabel{Exerc\texorpdfstring{\'{\i}}{\string\355}cio} +\renewcommand\exlabelsol{Exerc\string\'{\string\i}cio} + +\renewcommand\exsectitle{Solu\texorpdfstring{\c{c}}{\string\347}% + \texorpdfstring{\~{o}}{% + \string\365}es dos Exerc\texorpdfstring{\'{\i}}{\string\355}cios} + %{Solu\string\\347\string\\363es dos Exerc\string\\355cios}} +\renewcommand\exsecrunhead{% + Solu\protect\c{c}\protect\~{o}es dos Exerc\protect\'{i}cios} + +\renewcommand{\eq@exsolafterDefault}{\textit{Solu\c{c}\~{a}o}:} + +\renewcommand\eq@sqslsectitle{Solu\c{c}\~{o}es + dos Testes} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Solu\protect\c{c}\protect\~{o}es + dos Testes} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{Solu\protect\c{c}\protect\~{a}o do Teste:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Solu\protect\c{c}\protect\~{a}o}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Teste.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Finaliza Teste} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Correto!"} +\renewcommand\eqsqwgmsg{"Incorreto!"} + +\renewcommand\eq@bqlabel{Inicia Teste} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Finaliza Teste} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Pontos:}\renewcommand\eq@OutOf{de} +\renewcommand\eqInitQuizMsg{% ****** + "Voc\string\352 precisa iniciar o Teste! Clique sobre "+msg+"."} +\renewcommand\eqMadeChoice{% + "Voc\string\352 j\string\341 respondeu. + Sua resposta foi ("+Responses[probno]+"). + Quer alter\string\341-la?"} +\renewcommand\eq@local@CA{Corretas} +\renewcommand\eq@local@RC{Minhas Respostas!} +\renewcommand\eq@local@AC{Por Favor!} +\endinput +%% +%% End of file `eqbr.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqcat.def b/texmf-dist/tex/latex/acrotex/eqcat.def index dce3df50..e0c78acb 100644 --- a/texmf-dist/tex/latex/acrotex/eqcat.def +++ b/texmf-dist/tex/latex/acrotex/eqcat.def @@ -1,78 +1,78 @@ -%% -%% This is file `eqcat.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqcat') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqcat.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqcat.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Ramon Ballester %% -%% e-mail address: ramon.ballester@udg.es %% -%% Language: (catalan) %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\renewcommand\exlabel{Exercici} -\renewcommand\exlabelsol{\exlabel} - -\renewcommand\exsectitle{Solucions als \exlabel s} -\renewcommand\exsecrunhead{\exsectitle} %% change to @ form - -\renewcommand{\eq@exsolafterDefault}{\textit{Soluci\'o}:} - -\renewcommand\eq@sqslsectitle{Solucions als Tests} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Solucions als Tests} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{Soluci\protect\'{o} al Test:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Soluci\'o}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Final del Test} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Correcte!"} -\renewcommand\eqsqwgmsg{"Incorrecte!"} - -\renewcommand\eq@bqlabel{Inici del Test} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Final del Test} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Punts:}\renewcommand\eq@OutOf{de} -\renewcommand\eqInitQuizMsg{"Has d'iniciar el Test! - Prem sobre "+msg+"."} -\renewcommand\eqMadeChoice{% - "Ja has elegit una resposta. - La teva resposta ha estat ("+Responses[probno]+"). - Vols canviar--la?"} -\renewcommand\eq@local@CA{Correctes} -\renewcommand\eq@local@RC{Les meves Respostes!} -\renewcommand\eq@local@AC{Si us plau!} -\endinput -%% -%% End of file `eqcat.def'. +%% +%% This is file `eqcat.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqcat') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqcat.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqcat.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Ramon Ballester %% +%% e-mail address: ramon.ballester@udg.es %% +%% Language: (catalan) %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\renewcommand\exlabel{Exercici} +\renewcommand\exlabelsol{\exlabel} + +\renewcommand\exsectitle{Solucions als \exlabel s} +\renewcommand\exsecrunhead{\exsectitle} %% change to @ form + +\renewcommand{\eq@exsolafterDefault}{\textit{Soluci\'o}:} + +\renewcommand\eq@sqslsectitle{Solucions als Tests} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Solucions als Tests} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{Soluci\protect\'{o} al Test:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Soluci\'o}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Final del Test} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Correcte!"} +\renewcommand\eqsqwgmsg{"Incorrecte!"} + +\renewcommand\eq@bqlabel{Inici del Test} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Final del Test} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Punts:}\renewcommand\eq@OutOf{de} +\renewcommand\eqInitQuizMsg{"Has d'iniciar el Test! + Prem sobre "+msg+"."} +\renewcommand\eqMadeChoice{% + "Ja has elegit una resposta. + La teva resposta ha estat ("+Responses[probno]+"). + Vols canviar--la?"} +\renewcommand\eq@local@CA{Correctes} +\renewcommand\eq@local@RC{Les meves Respostes!} +\renewcommand\eq@local@AC{Si us plau!} +\endinput +%% +%% End of file `eqcat.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqcolor.def b/texmf-dist/tex/latex/acrotex/eqcolor.def index c95b02b0..77bb0d39 100644 --- a/texmf-dist/tex/latex/acrotex/eqcolor.def +++ b/texmf-dist/tex/latex/acrotex/eqcolor.def @@ -1,86 +1,86 @@ -%% -%% This is file `eqcolor.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqcolor') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifmakeExSlLocal\protect\endgroup^^J\fi -\def\eq@getCmdName#1#2{\edef#1{\expandafter\@gobble\string#2}} -\def\eq@getfirst#1#2\@nil{\def\eq@argi{#1}} -\def\eq@checkValidityModel#1{% - \if#1g\else\if#1r\else\if#1c\else - \PackageError{exerquiz} - {JavaScript does not support this model} - {Use a named color from one of the models gray, rgb, or cmyk.} - \fi\fi\fi -} -\def\eq@jsSetColorMsg#1#2{\PackageWarning{exerquiz} - {The argument `#2' of \string#1\MessageBreak - is not of the right form.\MessageBreak Using the default}} -\def\eqModelInfo#1#2{% - \uppercase{\def\eq@ucmodel{#1}}\def\eq@modelspec{#2}% - \eq@getfirst#1\@nil\eq@ResetModelForGray{\eq@argi}% - \eq@checkValidityModel{\eq@argi}% -} -\def\eq@ResetModelForGray#1{\if#1g\def\eq@ucmodel{G}\fi} -\def\eq@checkRawJSColor#1{% - \edef\eq@argi{#1}\ifx\eq@argi\@empty - \def\eq@next{\let\eq@rawJSCol\eq@YES}\else - \def\eq@next{\expandafter\eq@@checkRawJSColor#1\@nil}\fi\eq@next -} -\def\eq@@checkRawJSColor#1#2#3\@nil{\let\eq@rawJSCol\eq@NO - \let\eqpredefineJSCol\eq@NO - \if[#1\if#2"\let\eq@rawJSCol\eq@YES\fi\fi - \ifx\eq@rawJSCol\eq@NO\if#1c\if#2o\let\eq@rawJSCol\eq@YES - \let\eqpredefineJSCol\eq@YES\fi\fi\fi -} -\def\eq@jsColorWXColori#1#2{\edef\eq@colorDefn{#2}% - \ifx\eq@colorDefn\@empty - \ifx\is@Defined\eq@YES - \edef\eq@colorDefn{\csname\cmdName Def\endcsname}\else - \PackageError{exerquiz}{JS color \string#1 has an - empty definition}{}\fi - \fi - \eq@checkRawJSColor{\eq@colorDefn}% - \ifx\eq@rawJSCol\eq@NO - \extractcolorspec{\eq@colorDefn}{\eq@tmp@color}% - \expandafter\eqModelInfo\eq@tmp@color - \edef#1{["\eq@ucmodel",\eq@modelspec]}% - \else\edef#1{\eq@colorDefn}\fi -} -\def\eq@jsColorWOXColori#1#2{\def\eq@colorDefn{#2}% - \ifx\eq@colorDefn\@empty - \ifx\is@Defined\eq@YES - \edef\eq@colorDefn{\csname cmdName Def\endcsname}\else - \PackageError{exerquiz}{JS color \string#1 has an - empty definition}{}\fi - \fi - \eq@checkRawJSColor{\eq@colorDefn}% - \ifx\eq@rawJSCol\eq@YES\edef#1{\eq@colorDefn}\else - \eq@jsSetColorMsg{#1}{#2}\fi -} -\def\jsColor#1#2{\eq@getCmdName{\cmdName}{#1}% - \let\is@Defined\eq@YES - \expandafter\ifx\csname\cmdName\endcsname\relax - \PackageWarning{exerquiz}{\string#1 is not a command used by - exerquiz.\MessageBreak Will define it anyway}% - \let\is@Defined\eq@NO\fi - \HyColor@IfXcolor{\eq@jsColorWXColori{#1}{#2}}% - {\eq@jsColorWOXColori{#1}{#2}}% -} -\endinput -%% -%% End of file `eqcolor.def'. +%% +%% This is file `eqcolor.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqcolor') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmakeExSlLocal\protect\endgroup^^J\fi +\def\eq@getCmdName#1#2{\edef#1{\expandafter\@gobble\string#2}} +\def\eq@getfirst#1#2\@nil{\def\eq@argi{#1}} +\def\eq@checkValidityModel#1{% + \if#1g\else\if#1r\else\if#1c\else + \PackageError{exerquiz} + {JavaScript does not support this model} + {Use a named color from one of the models gray, rgb, or cmyk.} + \fi\fi\fi +} +\def\eq@jsSetColorMsg#1#2{\PackageWarning{exerquiz} + {The argument `#2' of \string#1\MessageBreak + is not of the right form.\MessageBreak Using the default}} +\def\eqModelInfo#1#2{% + \uppercase{\def\eq@ucmodel{#1}}\def\eq@modelspec{#2}% + \eq@getfirst#1\@nil\eq@ResetModelForGray{\eq@argi}% + \eq@checkValidityModel{\eq@argi}% +} +\def\eq@ResetModelForGray#1{\if#1g\def\eq@ucmodel{G}\fi} +\def\eq@checkRawJSColor#1{% + \edef\eq@argi{#1}\ifx\eq@argi\@empty + \def\eq@next{\let\eq@rawJSCol\eq@YES}\else + \def\eq@next{\expandafter\eq@@checkRawJSColor#1\@nil}\fi\eq@next +} +\def\eq@@checkRawJSColor#1#2#3\@nil{\let\eq@rawJSCol\eq@NO + \let\eqpredefineJSCol\eq@NO + \if[#1\if#2"\let\eq@rawJSCol\eq@YES\fi\fi + \ifx\eq@rawJSCol\eq@NO\if#1c\if#2o\let\eq@rawJSCol\eq@YES + \let\eqpredefineJSCol\eq@YES\fi\fi\fi +} +\def\eq@jsColorWXColori#1#2{\edef\eq@colorDefn{#2}% + \ifx\eq@colorDefn\@empty + \ifx\is@Defined\eq@YES + \edef\eq@colorDefn{\csname\cmdName Def\endcsname}\else + \PackageError{exerquiz}{JS color \string#1 has an + empty definition}{}\fi + \fi + \eq@checkRawJSColor{\eq@colorDefn}% + \ifx\eq@rawJSCol\eq@NO + \extractcolorspec{\eq@colorDefn}{\eq@tmp@color}% + \expandafter\eqModelInfo\eq@tmp@color + \edef#1{["\eq@ucmodel",\eq@modelspec]}% + \else\edef#1{\eq@colorDefn}\fi +} +\def\eq@jsColorWOXColori#1#2{\def\eq@colorDefn{#2}% + \ifx\eq@colorDefn\@empty + \ifx\is@Defined\eq@YES + \edef\eq@colorDefn{\csname cmdName Def\endcsname}\else + \PackageError{exerquiz}{JS color \string#1 has an + empty definition}{}\fi + \fi + \eq@checkRawJSColor{\eq@colorDefn}% + \ifx\eq@rawJSCol\eq@YES\edef#1{\eq@colorDefn}\else + \eq@jsSetColorMsg{#1}{#2}\fi +} +\def\jsColor#1#2{\eq@getCmdName{\cmdName}{#1}% + \let\is@Defined\eq@YES + \expandafter\ifx\csname\cmdName\endcsname\relax + \PackageWarning{exerquiz}{\string#1 is not a command used by + exerquiz.\MessageBreak Will define it anyway}% + \let\is@Defined\eq@NO\fi + \HyColor@IfXcolor{\eq@jsColorWXColori{#1}{#2}}% + {\eq@jsColorWOXColori{#1}{#2}}% +} +\endinput +%% +%% End of file `eqcolor.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqcz.def b/texmf-dist/tex/latex/acrotex/eqcz.def index 8ec760a9..15ef0e7d 100644 --- a/texmf-dist/tex/latex/acrotex/eqcz.def +++ b/texmf-dist/tex/latex/acrotex/eqcz.def @@ -1,114 +1,114 @@ -%% -%% This is file `eqcz.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqcz') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqcz.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqcat.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Robert Marik %% -%% e-mail address: marik@mendelu.cz %% -%% Language: (czech) %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\SFW{1.75in} - -\renewcommand\exlabel{Cvi\v{c}en\'{\i}} -\renewcommand\exlabelsol{Cvi\protect\v{c}en\protect\'{\protect\i}} - -\renewcommand\exsectitle{\texorpdfstring{\v{R}e\v{s}en\'{\i} - ke cvi\v{c}en\'{\i}m} - {Resen\355{} ke cvicen\355m}} %% change to @ form -\renewcommand\exsecrunhead{% - \string\v{R}e\string\v{s}en\string\'{\string\i} - ke cvi\string\v{c}en\string\'{\string\i}m} - -\renewcommand{\eq@exsolafterDefault}{\textit{\v{R}e\v{s}en\'\i}:} - -\renewcommand\eq@sqslsectitle{\texorpdfstring{\v{R}e\v{s}en\'{\i} - kv\'{\i}z\r{u}}{Resen\355{} kv\355zu}} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{\v{R}e\v{s}en\'{\i} kv\'{\i}z\r{u}} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{\string\textbf{% - \string\v{R}e\string\v{s}en\string\'{\string\i} - kv\string\'{\string\i}zu:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{\v{R}e\v{s}en\'{\i}}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Kv\'{\i}z.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Zp\string\v{e}t na ot\string\'{a}zky} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Spravne !"} -\renewcommand\eqsqwgmsg{"Spatne !"} - -\renewcommand\eq@bqlabel{Zacatek kvizu} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{Zacatek kvizu} -\renewcommand\bqlabelISO{Zacatek kvizu} - -\renewcommand\eq@eqlabel{Konec kvizu} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{} -\renewcommand\eq@OutOf{z celkovych} -\renewcommand\eqInitQuizMsg{% - "Chcete-li pracovat s kvizem, musite jej nejprve spustit! - Kliknete na "+msg+"."} -\renewcommand\eqMadeChoice{% - "Uz jste si jednou odpoved vybral(a). Vase odpoved byla (" + - Responses[probno]+"). Chcete ji opravdu zmenit?"} -\renewcommand\eq@local@CA{Opravit} -\renewcommand\eq@local@RC{odpovedi!} -\renewcommand\eq@local@AC{Prosim!} -\renewcommand\eqerrABS{"Spatne uzavrena absolutni hodnota. - Opravte prosim."} -\renewcommand\eqerrBadMathFunc{"Vyraz `"+aF[i]+"' neni ani - definovanou funkci ani " +", ani platnym matematickym vyrazem."} -\renewcommand\eqParens{"Zavorky (kulate)"} -\renewcommand\eqBrackets{"Hranate zavorky"} -\renewcommand\eqBraces{"Slozene zavorky"} -\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " nejsou parove. - Opravte je prosim."} -\renewcommand\eqerrBadExp{"Spatny matematicky vyraz - problem v nekterem - exponentu. Opravte jej prosim."} -\renewcommand\eqerrUnfinishQuiz{"Chyba: Nektery kviz mate nedokonceny. - Musite jej dokoncit, nez budete pokracovat u dalsiho kvizu. Pokud si - nepamatuje, ktery kviz jste nechali rozpracovany, zavrete cely - soubor, znovu jej otevrete a k testu, ktery chcete vyplnovat, - se vratte."} -\renewcommand\noPeekMsg{"Prohlizeni reseni neni povoleno pred dokoncenim - kvizu!"} -\renewcommand\highThresholdMsg{"Musite odpovedet na vsechny otazky, nez - ukoncite kviz."} -\renewcommand\eqSyntaxErrorUndefVar{"Chyba: Pravdepodobne pouzivate - nespravnou promennou nebo mate preklep ve jmenu nektere funkce."} -\renewcommand{\promptButtonMsg}{% - "Chcete ted videt spravnou odpoved? "\r\t\t - + "Hodnocena bude Vase soucasna odpoved. "\r\t\t - + "Kliknete-li na \\"Yes\\", uvidite spravnou odpoved, ale svou - stavajici odpoved na tuto otazku uz nebudete moct zmenit." -} -\endinput -%% -%% End of file `eqcz.def'. +%% +%% This is file `eqcz.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqcz') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqcz.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqcat.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Robert Marik %% +%% e-mail address: marik@mendelu.cz %% +%% Language: (czech) %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\SFW{1.75in} + +\renewcommand\exlabel{Cvi\v{c}en\'{\i}} +\renewcommand\exlabelsol{Cvi\protect\v{c}en\protect\'{\protect\i}} + +\renewcommand\exsectitle{\texorpdfstring{\v{R}e\v{s}en\'{\i} + ke cvi\v{c}en\'{\i}m} + {Resen\355{} ke cvicen\355m}} %% change to @ form +\renewcommand\exsecrunhead{% + \string\v{R}e\string\v{s}en\string\'{\string\i} + ke cvi\string\v{c}en\string\'{\string\i}m} + +\renewcommand{\eq@exsolafterDefault}{\textit{\v{R}e\v{s}en\'\i}:} + +\renewcommand\eq@sqslsectitle{\texorpdfstring{\v{R}e\v{s}en\'{\i} + kv\'{\i}z\r{u}}{Resen\355{} kv\355zu}} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{\v{R}e\v{s}en\'{\i} kv\'{\i}z\r{u}} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{\string\textbf{% + \string\v{R}e\string\v{s}en\string\'{\string\i} + kv\string\'{\string\i}zu:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{\v{R}e\v{s}en\'{\i}}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Kv\'{\i}z.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Zp\string\v{e}t na ot\string\'{a}zky} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Spravne !"} +\renewcommand\eqsqwgmsg{"Spatne !"} + +\renewcommand\eq@bqlabel{Zacatek kvizu} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{Zacatek kvizu} +\renewcommand\bqlabelISO{Zacatek kvizu} + +\renewcommand\eq@eqlabel{Konec kvizu} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{} +\renewcommand\eq@OutOf{z celkovych} +\renewcommand\eqInitQuizMsg{% + "Chcete-li pracovat s kvizem, musite jej nejprve spustit! + Kliknete na "+msg+"."} +\renewcommand\eqMadeChoice{% + "Uz jste si jednou odpoved vybral(a). Vase odpoved byla (" + + Responses[probno]+"). Chcete ji opravdu zmenit?"} +\renewcommand\eq@local@CA{Opravit} +\renewcommand\eq@local@RC{odpovedi!} +\renewcommand\eq@local@AC{Prosim!} +\renewcommand\eqerrABS{"Spatne uzavrena absolutni hodnota. + Opravte prosim."} +\renewcommand\eqerrBadMathFunc{"Vyraz `"+aF[i]+"' neni ani + definovanou funkci ani " +", ani platnym matematickym vyrazem."} +\renewcommand\eqParens{"Zavorky (kulate)"} +\renewcommand\eqBrackets{"Hranate zavorky"} +\renewcommand\eqBraces{"Slozene zavorky"} +\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " nejsou parove. + Opravte je prosim."} +\renewcommand\eqerrBadExp{"Spatny matematicky vyraz - problem v nekterem + exponentu. Opravte jej prosim."} +\renewcommand\eqerrUnfinishQuiz{"Chyba: Nektery kviz mate nedokonceny. + Musite jej dokoncit, nez budete pokracovat u dalsiho kvizu. Pokud si + nepamatuje, ktery kviz jste nechali rozpracovany, zavrete cely + soubor, znovu jej otevrete a k testu, ktery chcete vyplnovat, + se vratte."} +\renewcommand\noPeekMsg{"Prohlizeni reseni neni povoleno pred dokoncenim + kvizu!"} +\renewcommand\highThresholdMsg{"Musite odpovedet na vsechny otazky, nez + ukoncite kviz."} +\renewcommand\eqSyntaxErrorUndefVar{"Chyba: Pravdepodobne pouzivate + nespravnou promennou nebo mate preklep ve jmenu nektere funkce."} +\renewcommand{\promptButtonMsg}{% + "Chcete ted videt spravnou odpoved? "\r\t\t + + "Hodnocena bude Vase soucasna odpoved. "\r\t\t + + "Kliknete-li na \\"Yes\\", uvidite spravnou odpoved, ale svou + stavajici odpoved na tuto otazku uz nebudete moct zmenit." +} +\endinput +%% +%% End of file `eqcz.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqda.def b/texmf-dist/tex/latex/acrotex/eqda.def index 7bee63ed..95e4b95d 100644 --- a/texmf-dist/tex/latex/acrotex/eqda.def +++ b/texmf-dist/tex/latex/acrotex/eqda.def @@ -1,83 +1,83 @@ -%% -%% This is file `eqda.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqda') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqda.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqda.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Erik Leimand %% -%% e-mail address: buhlleimand@worldonline.dk %% -%% Language: Danish %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{{\O}velse} -\renewcommand\exlabelsol{{\protect\O}velse} - -\renewcommand\exsectitle{L{\o}sning p{\aa} {\o}velserne} -\renewcommand\exsecrunhead{L{\protect\o}sning p{\protect\aa} - {\protect\o}velserne} - -\renewcommand{\eq@exsolafterDefault}{\textit{L{\o}sning}:} - -\renewcommand\eq@sqslsectitle{L{\o}sning p{\aa} opgaverne} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{L{\o}sning p{\aa} opgaverne} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{L{\protect\o}sning p{\protect\aa} opgave:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{L{\o}sning}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Opgave.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Slut} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Rigtigt!"} -\renewcommand\eqsqwgmsg{"Forkert!"} - -\renewcommand\eq@bqlabel{Start opgaver} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Slut} -\renewcommand\eqlabel{\eq@eqlabel} - -\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{ud af} -\renewcommand\eqQuizTotalMsg{"\eqScore\space"+Score+" - \eqOutOf\space"+nQuestions} -\renewcommand\eqInitQuizMsg{"Du skal starte testen! Klik - p\string\\345 "+msg+"."} -\renewcommand\eqMadeChoice{% - "Du har allerede valgt. - Du valgte ("+Responses[probno]+"). - Vil du \string\\346ndre det?"} -\renewcommand\eq@local@CA{Ret} -\renewcommand\eq@local@RC{Mine svar!} -\renewcommand\eq@local@AC{% - V\texorpdfstring{\ae}{\string\346}r - s\texorpdfstring{\r}{\string\345}god!} -\endinput -%% -%% End of file `eqda.def'. +%% +%% This is file `eqda.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqda') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqda.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqda.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Erik Leimand %% +%% e-mail address: buhlleimand@worldonline.dk %% +%% Language: Danish %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{{\O}velse} +\renewcommand\exlabelsol{{\protect\O}velse} + +\renewcommand\exsectitle{L{\o}sning p{\aa} {\o}velserne} +\renewcommand\exsecrunhead{L{\protect\o}sning p{\protect\aa} + {\protect\o}velserne} + +\renewcommand{\eq@exsolafterDefault}{\textit{L{\o}sning}:} + +\renewcommand\eq@sqslsectitle{L{\o}sning p{\aa} opgaverne} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{L{\o}sning p{\aa} opgaverne} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{L{\protect\o}sning p{\protect\aa} opgave:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{L{\o}sning}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Opgave.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Slut} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Rigtigt!"} +\renewcommand\eqsqwgmsg{"Forkert!"} + +\renewcommand\eq@bqlabel{Start opgaver} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Slut} +\renewcommand\eqlabel{\eq@eqlabel} + +\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{ud af} +\renewcommand\eqQuizTotalMsg{"\eqScore\space"+Score+" + \eqOutOf\space"+nQuestions} +\renewcommand\eqInitQuizMsg{"Du skal starte testen! Klik + p\string\\345 "+msg+"."} +\renewcommand\eqMadeChoice{% + "Du har allerede valgt. + Du valgte ("+Responses[probno]+"). + Vil du \string\\346ndre det?"} +\renewcommand\eq@local@CA{Ret} +\renewcommand\eq@local@RC{Mine svar!} +\renewcommand\eq@local@AC{% + V\texorpdfstring{\ae}{\string\346}r + s\texorpdfstring{\r}{\string\345}god!} +\endinput +%% +%% End of file `eqda.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqde.def b/texmf-dist/tex/latex/acrotex/eqde.def index 839eea11..94f21c6b 100644 --- a/texmf-dist/tex/latex/acrotex/eqde.def +++ b/texmf-dist/tex/latex/acrotex/eqde.def @@ -1,114 +1,114 @@ -%% -%% This is file `eqde.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqde') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqde.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqde.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Michael Wiedmann %% -%% e-mail address: michael.wiedmann@detewe.de %% -%% Language: German %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{\"Ubung} -\renewcommand\exlabelsol{\protect\"Ubung} - -\renewcommand\exsectitle{L\"osungen der \exlabel en} -\renewcommand\exsecrunhead{L\protect\"osungen der \exlabelsol en} - -\renewcommand{\eq@exsolafterDefault}{\textit{L\"osung}:} - -\renewcommand\eq@sqslsectitle{L\"osungen der Aufgaben} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{L\"osungen der Aufgaben} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \protect\textbf{L\protect\"osung zu Aufgabe:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{L\"osung}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Aufgabe}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{zur\"{u}ck zur Aufgabe} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Richtig!"} -\renewcommand\eqsqwgmsg{"Falsch!"} - -\renewcommand\eq@bqlabel{Test starten} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabelISO} - -\renewcommand\eq@eqlabel{Test beenden} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Punkte:}\renewcommand\eq@OutOf{von} -\renewcommand\eq@ptScore{Punkte:} -\renewcommand\eqInitQuizMsg{% - "Sie m\374ssen die Aufgaben zuerst initialisieren!" - + " Bitte klicken Sie hierf\374r auf "+msg+" am Anfang des Tests."} -\renewcommand\eqMadeChoice{% - "Sie haben bereits geantwortet. Ihre Antwort war - ("+Responses[probno]+")." + " Wollen Sie dies \string\344ndern?"} -\renewcommand\eq@local@CA{Korrigiere} -\renewcommand\eq@local@RC{Meine Antworten!} -\renewcommand\eq@local@AC{Bitte!} -\renewcommand{\AnsPromptBtnStr}{Antwort:\space} -\renewcommand\eqerrABS{"Betr\string\344ge sind nicht ausgeglichen. - Bitte korrigieren Sie das."} -\renewcommand\eqerrBadMathFunc{"Der Ausdruck '"+aF[i]+"' ist weder - eine definierte Funktion noch ein g\string\374ltiger mathematischer - Ausdruck."} -\renewcommand\eqParens{"runde Klammern"} % ( ) -\renewcommand\eqBrackets{"eckige Klammern"} % [ ] -\renewcommand\eqBraces{"geschweifte Klammern"} % { } -\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " sind nicht ausgeglichen. - Bitte korrigieren Sie das."} -\renewcommand\eqerrBadExp{"Ung\string\374ltiger mathematischer Ausdruck. - Es gibt ein Problem mit einem der Exponenten. - Bitte korrigieren Sie das!"} -\renewcommand\eqerrUnfinishQuiz{"Sie haben einen Test nicht beendet. - Bitte beenden Sie diesen, bevor Sie einen neuen Test beginnen."} -\dlJSStr*[noquotes]{\noPeekMsg}{"Bevor Sie den Test nicht beendet - haben, ist es nicht erlaubt, die L\"{o}sungen anzuschauen!"} -\renewcommand\highThresholdMsg{"Sie m\string\374ssen alle Fragen - beantworten, bevor der Test ausgewertet wird."} -\dlJSStr*[noquotes]{\eqSyntaxErrorUndefVar}{"Syntax Error: Es existiert - m\"{o}glicherweise eine undefinierte Variable oder ein Ausdruck - ist nicht im erwarteten Format geschrieben."} -\dlJSStr[noquotes]{\eqSyntaxErrorComma}{"Syntax Error: Ein Komma wurde" - + " in Ihrer Antwort \"" - + UserAns + "\" gefunden. Bitte entfernen Sie das Komma," - + " sonst wird diese Antwort als falsch gewertet."} -\dlJSStr*[noquotes]{\limSelWarningMsg}{"F\"{u}r diese Aufgabe k\"{o}nnen - sie h\"{o}chstens " + n + " ausw\string\344hlen."} -\fieldJSStr*[noquotes]{\promptButtonMsg}{% - "M\"{o}chten Sie die richtige Antwort jetzt sehen?" - + " Ihre derzeitige Antwort ist diejenige, die gewertet wird." - + " Wenn Sie auf \\"Yes\\" klicken, k\"{o}nnen Sie ihre Antwort - nicht mehr \string\344ndern." -} -\renewcommand{\defaultReqFormMsg}{% - "Der Ausdruck ist nicht in der erwarteten Form."} -\endinput -%% -%% End of file `eqde.def'. +%% +%% This is file `eqde.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqde') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqde.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqde.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Michael Wiedmann %% +%% e-mail address: michael.wiedmann@detewe.de %% +%% Language: German %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{\"Ubung} +\renewcommand\exlabelsol{\protect\"Ubung} + +\renewcommand\exsectitle{L\"osungen der \exlabel en} +\renewcommand\exsecrunhead{L\protect\"osungen der \exlabelsol en} + +\renewcommand{\eq@exsolafterDefault}{\textit{L\"osung}:} + +\renewcommand\eq@sqslsectitle{L\"osungen der Aufgaben} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{L\"osungen der Aufgaben} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \protect\textbf{L\protect\"osung zu Aufgabe:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{L\"osung}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Aufgabe}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{zur\"{u}ck zur Aufgabe} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Richtig!"} +\renewcommand\eqsqwgmsg{"Falsch!"} + +\renewcommand\eq@bqlabel{Test starten} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabelISO} + +\renewcommand\eq@eqlabel{Test beenden} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Punkte:}\renewcommand\eq@OutOf{von} +\renewcommand\eq@ptScore{Punkte:} +\renewcommand\eqInitQuizMsg{% + "Sie m\374ssen die Aufgaben zuerst initialisieren!" + + " Bitte klicken Sie hierf\374r auf "+msg+" am Anfang des Tests."} +\renewcommand\eqMadeChoice{% + "Sie haben bereits geantwortet. Ihre Antwort war + ("+Responses[probno]+")." + " Wollen Sie dies \string\344ndern?"} +\renewcommand\eq@local@CA{Korrigiere} +\renewcommand\eq@local@RC{Meine Antworten!} +\renewcommand\eq@local@AC{Bitte!} +\renewcommand{\AnsPromptBtnStr}{Antwort:\space} +\renewcommand\eqerrABS{"Betr\string\344ge sind nicht ausgeglichen. + Bitte korrigieren Sie das."} +\renewcommand\eqerrBadMathFunc{"Der Ausdruck '"+aF[i]+"' ist weder + eine definierte Funktion noch ein g\string\374ltiger mathematischer + Ausdruck."} +\renewcommand\eqParens{"runde Klammern"} % ( ) +\renewcommand\eqBrackets{"eckige Klammern"} % [ ] +\renewcommand\eqBraces{"geschweifte Klammern"} % { } +\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " sind nicht ausgeglichen. + Bitte korrigieren Sie das."} +\renewcommand\eqerrBadExp{"Ung\string\374ltiger mathematischer Ausdruck. + Es gibt ein Problem mit einem der Exponenten. + Bitte korrigieren Sie das!"} +\renewcommand\eqerrUnfinishQuiz{"Sie haben einen Test nicht beendet. + Bitte beenden Sie diesen, bevor Sie einen neuen Test beginnen."} +\dlJSStr*[noquotes]{\noPeekMsg}{"Bevor Sie den Test nicht beendet + haben, ist es nicht erlaubt, die L\"{o}sungen anzuschauen!"} +\renewcommand\highThresholdMsg{"Sie m\string\374ssen alle Fragen + beantworten, bevor der Test ausgewertet wird."} +\dlJSStr*[noquotes]{\eqSyntaxErrorUndefVar}{"Syntax Error: Es existiert + m\"{o}glicherweise eine undefinierte Variable oder ein Ausdruck + ist nicht im erwarteten Format geschrieben."} +\dlJSStr[noquotes]{\eqSyntaxErrorComma}{"Syntax Error: Ein Komma wurde" + + " in Ihrer Antwort \"" + + UserAns + "\" gefunden. Bitte entfernen Sie das Komma," + + " sonst wird diese Antwort als falsch gewertet."} +\dlJSStr*[noquotes]{\limSelWarningMsg}{"F\"{u}r diese Aufgabe k\"{o}nnen + sie h\"{o}chstens " + n + " ausw\string\344hlen."} +\fieldJSStr*[noquotes]{\promptButtonMsg}{% + "M\"{o}chten Sie die richtige Antwort jetzt sehen?" + + " Ihre derzeitige Antwort ist diejenige, die gewertet wird." + + " Wenn Sie auf \\"Yes\\" klicken, k\"{o}nnen Sie ihre Antwort + nicht mehr \string\344ndern." +} +\renewcommand{\defaultReqFormMsg}{% + "Der Ausdruck ist nicht in der erwarteten Form."} +\endinput +%% +%% End of file `eqde.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqes.def b/texmf-dist/tex/latex/acrotex/eqes.def index 195b6265..680738d0 100644 --- a/texmf-dist/tex/latex/acrotex/eqes.def +++ b/texmf-dist/tex/latex/acrotex/eqes.def @@ -1,78 +1,78 @@ -%% -%% This is file `eqes.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqes') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqes.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqes.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Pedro Luis Luque %% -%% e-mail address: calvo@cica.es %% -%% Language: (spanish) %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\renewcommand\exlabel{Ejercicio} -\renewcommand\exlabelsol{\exlabel} - -\renewcommand\exsectitle{Soluciones a los \exlabel s} -\renewcommand\exsecrunhead{\exsectitle} %% change to @ form - -\renewcommand{\eq@exsolafterDefault}{\textit{Soluci\'{o}n}:} - -\renewcommand\eq@sqslsectitle{Soluciones a los Tests} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Soluciones a los Tests} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{Soluci\protect\'{o}n al Test:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Soluci\'{o}n}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Final del Test} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Correcto!"} -\renewcommand\eqsqwgmsg{"Incorrecto!"} - -\renewcommand\eq@bqlabel{Inicio del Test} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Final del Test} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Puntos:}\renewcommand\eq@OutOf{de} -\renewcommand\eqInitQuizMsg{"Debes inicializar el Test! - Click sobre "+msg+"."} -\renewcommand\eqMadeChoice{% - "Ya has elegido una respuesta. - Tu respuesta fue ("+Responses[probno]+"). - Quieres cambiarla?"} -\renewcommand\eq@local@CA{Correctas} -\renewcommand\eq@local@RC{Mis Respuestas!} -\renewcommand\eq@local@AC{Por Favor!} -\endinput -%% -%% End of file `eqes.def'. +%% +%% This is file `eqes.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqes') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqes.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqes.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Pedro Luis Luque %% +%% e-mail address: calvo@cica.es %% +%% Language: (spanish) %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\renewcommand\exlabel{Ejercicio} +\renewcommand\exlabelsol{\exlabel} + +\renewcommand\exsectitle{Soluciones a los \exlabel s} +\renewcommand\exsecrunhead{\exsectitle} %% change to @ form + +\renewcommand{\eq@exsolafterDefault}{\textit{Soluci\'{o}n}:} + +\renewcommand\eq@sqslsectitle{Soluciones a los Tests} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Soluciones a los Tests} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{Soluci\protect\'{o}n al Test:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Soluci\'{o}n}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Final del Test} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Correcto!"} +\renewcommand\eqsqwgmsg{"Incorrecto!"} + +\renewcommand\eq@bqlabel{Inicio del Test} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Final del Test} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Puntos:}\renewcommand\eq@OutOf{de} +\renewcommand\eqInitQuizMsg{"Debes inicializar el Test! + Click sobre "+msg+"."} +\renewcommand\eqMadeChoice{% + "Ya has elegido una respuesta. + Tu respuesta fue ("+Responses[probno]+"). + Quieres cambiarla?"} +\renewcommand\eq@local@CA{Correctas} +\renewcommand\eq@local@RC{Mis Respuestas!} +\renewcommand\eq@local@AC{Por Favor!} +\endinput +%% +%% End of file `eqes.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqexam.def b/texmf-dist/tex/latex/acrotex/eqexam.def index 54fe6082..0d2665cd 100644 --- a/texmf-dist/tex/latex/acrotex/eqexam.def +++ b/texmf-dist/tex/latex/acrotex/eqexam.def @@ -1,1715 +1,1715 @@ -%% -%% This is file `eqexam.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `eqexam') -%% -\ProvidesFile{eqexam.def} - [2018/03/21 v8.2.2 % - Exerquiz support file for eqexam (dps)] -\let\eq@YES=y \let\eq@NO=n -\let\eq@One=1 \let\eq@Zero=0 -\def\eq@r{r}\let\eq@f=f \let\eq@l=l -\newif\ifeq@noforms \eq@noformsfalse -\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse -\newif\ifnocorrections \nocorrectionsfalse -\@ifundefined{ifeqe@flextended}{\newif\ifeqe@flextended - \eqe@flextendedfalse}{} -\@ifundefined{ifcont@nnot}{\newif\ifcont@nnot \cont@nnotfalse}{} -\@ifundefined{if@eqalignfilllinestoleft}{\newif\if@eqalignfilllinestoleft - \@eqalignfilllinestoleftfalse}{} -\newif\ifkeepdeclaredvspacing \keepdeclaredvspacingfalse -\newif\ifeq@nolink \eq@nolinkfalse -\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi} -\def\hidesymbol{h}\def\Hidesymbol{H} -\newif\iftherearesolutions \therearesolutionsfalse -\newif\ifIsRespBox \global\IsRespBoxfalse -\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue} -\newif\ifcqSA\cqSAfalse -\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse - \displayworkareatrue\ifvspacewithsolns\eq@nosolutionsfalse\else - \eq@nosolutionstrue\fi\eq@proofingfalse\answerkeyfalse} -\def\NoSpaceToWork{\let\eq@insertverticalspace\eq@NO} -\def\SpaceToWork{\let\eq@insertverticalspace\eq@YES} -\SpaceToWork -\long\def\ifNoSolutions#1#2{% - \ifeq@nosolutions\expandafter#1\else - \expandafter#2\fi -} -\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse -\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse -\def\turnOnRandomize{\eq@randomizeallChoicestrue} -\def\obeyLocalRandomize{\eq@randomizeallChoicesfalse} -\let\saveRandomSeed\relax -\let\inputRandomSeed\relax -\newcommand{\exsolafter}{\eq@exsolafterDefault} -\newcommand{\resetSolnAfterToDefault}{% - \def\exsolafter{\eq@exsolafterDefault}} -\newcommand{\exsolafterDefault}[1]{\def\eq@exsolafterDefault{#1}% - \def\exSolafterDefault{#1}\resetSolnAfterToDefault} -\exsolafterDefault{\textit{Solution}:} -\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}} -\newcommand{\adjDisplayBelow}{\vskip-\lastskip\vskip-\baselineskip} -\newcommand{\adjDisplayBelowPlus}{\adjDisplayBelow\recoverDisplayBelow} -\def\recoverDisplayBelow{\vskip\belowdisplayskip} -\newcommand\setDefShortQuizLabelName[1]% - {\def\eq@defaultShortQuizLabelName{#1}} -\setDefShortQuizLabelName{Quiz} -\ifsolutionsonly -\InputIfFileExists{\jobname_xdefs.cut}{% - \typeout{^^JExerquiz|Eqexam: Reading \jobname_xdefs.cut^^J}} - {\PackageWarningNoLine{exerquiz|eqexam}{% - \jobname_xdefs.cut not found.\MessageBreak - Recompile file under the vspacewithsolns\MessageBreak - option, then compile with the solutionsonly\MessageBreak - option}} -\else -\newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol -\newcommand{\writeToExSolns}[1]{% - \set@display@protect - \immediate\write\ex@solns{#1}% - \set@typeset@protect -} -\newwrite\eq@xrefdefns \immediate\openout\eq@xrefdefns\jobname_xdefs.cut -\fi -\newwrite\quiz@solns \immediate\openout \quiz@solns \jobname.qsl -\newcommand{\writeToQzSolns}[1]{% - \set@display@protect - \immediate\write\quiz@solns{#1}% - \set@typeset@protect -} -\def\eq@IWAuxOut#1{\immediate\write\@auxout{#1}} -\def\eq@IWDefs#1{\immediate\write\eq@xrefdefns{#1}} -\newcounter{eqexno} \setcounter{eqexno}{0} -\newcounter{@exno} \setcounter{@exno}{0} % running exno -\newcounter{quizno} \setcounter{quizno}{0} -\renewcommand\thequizno{\alph{quizno}} -\newcounter{eqpointvalue} \setcounter{eqpointvalue}{0} -\newlength\eq@tmplength -\newlength\eqtmplength -\newcounter{questionno} -\newcounter{eqquestionnoi} -\newcounter{eqquestionnoii} -\newcounter{eqquestionnoiii} -\newcount\@eqquestiondepth \@eqquestiondepth=0 -\newcounter{partno} -\newif\ifuseNumForParts\useNumForPartsfalse -\def\alphaParts{\def\partnoFmt{\alph}\useNumForPartsfalse}\alphaParts -\def\numberParts{\def\partnoFmt{\arabic}\useNumForPartstrue} -\renewcommand\thepartno{\partnoFmt{partno}} -\newtoks\eq@scratchtoks -\def\verbatimwrite{\@bsphack - \let\do\@makeother\dospecials - \catcode`\^^M\active \catcode`\^^I=12 - \def\verbatim@processline{% - \immediate\write\verbatim@out - {\the\verbatim@line}}% - \verbatim@start} -\def\endverbatimwrite{\@esphack} -\providecommand\PBS[1]{\let\temp=\\#1\let\\=\temp} -\newcommand{\belowexskip}[1]{\setlength{\eq@tmplength}{#1}% - \edef\eq@exerskip{\noexpand\removelastparskip - \noexpand\vskip\the\eq@tmplength\relax\kern0pt}} -\let\eqexerskip\belowexskip -\belowexskip{\medskipamount} -\newcommand{\aboveexskip}[1]{\setlength{\eq@tmplength}{#1}% - \edef\eq@priorexskip{\noexpand\vskip\the\eq@tmplength\relax - \kern0pt}} -\let\priorexskip\aboveexskip -\aboveexskip{\medskipamount} -\let\eq@postexerciseHook\relax -\newcommand\belowexsolnskip{\protect\medskip} -\def\removelastparskip{\ifdim\parskip>0pt\vskip-\parskip\fi} -\let\marginparpriorhook\@empty % used to material before the exercise -\let\marginparafterhook\@empty % used to material after the exercise -\let\afterlabelhskip\space -\let\exersolnheadhook\@empty -\let\exer@solnheadhook\@empty -\newcommand{\eqexheader} -{% - \mbox{\color{\@nolinkcolor}\if\exerstar*\exlabelformatwp\else - \exlabelformat\fi}% -} -\def\eqexheader@wrapper{\hypertarget{qex.\the@exno}{\eqexheader}} -\newcommand{\partsformat}[1]{\def\eq@partsformat{#1}} -\partsformat{(\hfil\thepartno\hfil)} -\newcommand{\defaultpartsformat}{% - \partsformat{(\hfil\thepartno\hfil)}} -\let\exlisttabheaderpriorhook\@empty -\let\exlisttabheaderafterhook\@empty -\newcommand{\eqexlisttabheader} -{% - \exlisttabheaderpriorhook - \color{\@nolinkcolor}\eq@partsformat -} -\newcount\cq@Cnt -\def\cq@CutName{cq-\the\cq@Cnt.cut} -\let\cq@star\eq@NO -\newif\ifcqqs \cqqstrue -\newif\ifcqIsActive \cqIsActivefalse -\def\cqQS{\@ifstar{\cqQSV}{\cqQSA}} -\def\cqQSA#1#2{\ifcqqs#1\else#2\fi} -\@ifpackageloaded{web}{\@ifundefined{IF@AorBswitch}{% - \PackageWarningNoLine{A version of the web package - dated\MessageBreak 2016/11/03 or later is required - for \string\cqQS}}}{}% -\@ifundefined{webtempboxi}{\newbox\webtempboxi - \newbox\webtempboxii}{} -\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} -\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} -\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} -\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} -\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} -\providecommand\SETTEMPBOXi{\IF@AorBswitch\else - \afterassignment\TRUEACTIONia\fi - \setbox\webtempboxi=\hbox} -\providecommand\SETTEMPBOXii{\IF@AorBswitch - \afterassignment\FALSEACTIONiia\fi - \setbox\webtempboxii=\hbox} -\def\cqQSV{\let\IF@AorBswitch\ifcqqs - \IF@AorBswitch - \def\eq@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else - \def\eq@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi - \eq@next} -\def\eq@turnMessageOff{\let\save@message\message - \let\message\@gobble} -\def\eq@turnMessageOn{\let\message\save@message} -\def\eqCQDeclarations{\cqqsfalse\eq@turnMessageOff - \includecomment{sPage}\excludecomment{qPage}% - \eq@turnMessageOn} -\def\eqTopOfSolnPage{\cqSAfalse - \eqCQDeclarations} -\eq@turnMessageOff -\includecomment{qPage}\excludecomment{sPage} -\eq@turnMessageOn -\newenvironment{cq@CQ} -{% - \global\cqIsActivetrue - \global\advance\cq@Cnt1\relax - \immediate\openout\CommentStream=\cq@CutName - \let\verbatim@out\CommentStream - \verbatimwrite -}{% - \endverbatimwrite - \immediate\closeout\CommentStream - \ifx\cq@star\eq@YES - \xdef\cq@INPUTCUT{\noexpand\cqqstrue - \noexpand\input{\cq@CutName}\noexpand - \def@QuesToSoln}\else - \xdef\cq@INPUTCUT{\noexpand\cqqstrue - \noexpand\input{\cq@CutName}\noexpand - \p@ssQuesToSoln}\fi - \aftergroup\cq@INPUTCUT -} -\newenvironment{cqs@CQ}{\let\cq@star\eq@YES\cq@CQ}{\endcq@CQ} -\def\declCQQuesStr#1{\def\cqQStr{#1}} -\declCQQuesStr{Question} -\def\declCQSolStr#1{\def\cqSStr{#1}} -\declCQSolStr{Solution} -\newcommand\declCQPre[1]{\def\cq@Pre{#1}} -\declCQPre{\emph{\cqQStr}:\space} -\newcommand\declCQPost[1]{\def\cq@Post{#1}} -\declCQPost{\par\medskip\noindent\emph{\cqSStr}:\space\ignorespaces} -\def\cqFmtPasteQues#1{\cq@Pre\input{#1}\cq@Post} -\def\p@ssQuesToSoln{\ifeq@hidesolution\else - \global\terminexchangedtrue % dps cq - \writeToExSolns{\protect - \decleqterminex{\protect\cqFmtPasteQues{\cq@CutName}}}\fi} -\def\declCopyQues#1{\def\cqCopiedQues{#1}} -\def\def@QuesToSoln{\restoreNormalSolns - \global\terminexchangedfalse % dps cq - \ifeq@hidesolution\else\writeToExSolns{\protect - \declCopyQues{\protect\input{\cq@CutName}}}\fi} -\newcommand\restoreNormalSolns{% - \writeToExSolns{\protect\decleqterminex{\protect\eqterminexDEF}}} -\newcommand{\eq@CommonCmd}[1]{\def\eq@@CommonCmd{#1}#1} -\let\eq@@CommonCmd\@empty -\newcommand\gExCommonCmd[1]{\gdef\gEx@CommonCmd{\eq@CommonCmd{#1}}} -\let\gEx@CommonCmd\@empty -\let\endexerhook\@empty -\newenvironment{exercise} -{% - \let\cq\cq@CQ\let\endcq\endcq@CQ - \csarg\let{cq*}\cqs@CQ - \csarg\let{endcq*}\endcqs@CQ - \par\removelastskip\eq@priorexskip\noindent - \let\eqCommonCmd\eq@CommonCmd - \def\eq@argi{eqexno}%% use eqexno counter - \if\eq@exerstarEnv*\def\exerstar{*}\else\def\exerstar{x}\fi - \def\currhideopt{x}% - \@ifnextchar[{\exercise@}% - {\if\exerstar*\def\eq@next{\@exercise}\else - \def\eq@next{\exercise@@}\fi\eq@next}% -}{\eq@postexerciseHook\endexerhook\par - \global\eq@exerciseheadingtrue\removelastskip\eq@exerskip} -\def\exercise@[#1]{\edef\eq@arg{#1}% - \if\eq@arg h\def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse\fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H% - \edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse - \fi - \def\eq@next{\@exercise}% H, no *, no counter - \else - \def\currhideopt{x}% - \ifx\eq@arg\@empty\else\def\eq@argi{#1}\fi - \if\exerstar*\def\eq@next{\@exercise}\else - \def\eq@next{\exercise@@}\fi - \fi - \fi -\eq@next} -\def\exercise@@{\@ifstar{\def\exerstar{*}\@exercise}{\exercise@@@}} -\def\exercise@@@{\@ifnextchar[{\exercise@@@@}{\@exercise}} -\def\exercise@@@@[#1]{\edef\eq@arg{#1}% - \if\eq@arg h\def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse\fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H\edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \def\eq@next{\@exercise}% h, no *, no counter - \else - \def\currhideopt{x}% - \PackageWarning{exerquiz}{The option #1 is not recognized} - \let\eq@next\relax - \fi - \fi -\eq@next} -\newif\ifeq@exerciseheading \eq@exerciseheadingtrue -\let\prior@exerSolnHeaderHook\@empty -\newcommand\exerSolnHeader[3]{% - \prior@exerSolnHeaderHook - \ifeqforpaper\else\webnewpage\fi\markright{#1}%\par\noindent% - #3% - \solnhspace -} -\let\solnItemMngt\relax -\let\eqEXt\@gobbletwo -\let\endeqEXt\relax -\let\eqExtArg\@empty -\let\eqFilterArg\@empty -\let\eqExerSolnHeader\@empty -\let\solutionparshape\@empty -\def\eq@pslnaindnt{0pt} -\let\eq@setPrbSolnAftrIndnt\relax -\newcommand{\setPrbSolnAftrIndent}[1]{\ifdim#1=0pt - \def\eq@pslnaindnt{0pt}\let\eq@setPrbSolnAftrIndnt\relax\else - \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{% - \expandafter\noexpand\expandafter\parindent#1\noexpand\relax}\fi -} -\newif\if@restorejustify \@restorejustifyfalse -\newcommand\restoreJustifyOn{\@restorejustifytrue} -\newcommand\restoreJustifyOff{\@restorejustifyfalse} -\def\restorejustify{\if@restorejustify - \@rightskip\z@skip \rightskip\@rightskip - \leftskip\z@skip \let\\\@normalcr\fi} -\def\@exercise{% - \global\let\solutionparshape\@empty - \let\verbatim@out=\ex@solns - \if\eq@argi0\else\refstepcounter{\eq@argi}\fi\stepcounter{@exno}% - \if\exerstar*% if exercise with parts - \eq@nolinktrue - \else - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide % - \ifeq@hidesolution\else - \global\let\eqExerSolnHeader\eq@@writeexheader - \fi - \fi - \fi - \fi - \ifvmode\ifdim\lastskip>\z@ - \vskip-\lastskip - \fi\fi - \if\exerstar*% - \let\solution\solnexer@woparts - \let\endsolution\endsolnexer@woparts - \let\parts\exercise@parts - \let\endparts\endexercise@parts - \else - \let\solution\solnexer@woparts - \let\endsolution\endsolnexer@woparts - \let\parts\relax - \let\endparts\relax - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \fi - \eq@initializeContAnnot - \ifeq@exerciseheading - \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper - \afterlabelhskip\marginparafterhook\gEx@CommonCmd - \eq@setPrbSolnAftrIndnt\ignorespaces\fi -} -\newif\ifterminexchanged \terminexchangedfalse % dps cq -\newcommand\decleqterminex[1]{\def\eqterminex{#1}} -\def\eqterminexDEF{\relax\ignorespaces} -\decleqterminex{\eqterminexDEF} -\newif\ifmakeExSlLocal \makeExSlLocalfalse -\def\makeExSolnsLocalOn{\makeExSlLocaltrue} -\def\makeExSolnsLocalOff{\makeExSlLocalfalse} -\def\eqExerSolnHeaderSngl{% - \ifmakeExSlLocal\protect\begingroup^^J\fi - \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect - \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}% - {\exsllabelformat}\exer@solnheadhook - \exersolnheadhook\protect\eqterminex -} -\def\eq@@writeexheader{\set@display@protect - \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}% - \set@typeset@protect -} -\def\eqExerSolnHeaderList{% - \ifmakeExSlLocal\protect\begingroup^^J\fi - \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect - \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}% - {ex.\the@exno\thepartno}{\exsllabelformatwp}% - \exer@solnheadhook\exersolnheadhook\protect\eqterminex -} -\def\eq@@writeexheaderlist{\set@display@protect - \immediate\write\verbatim@out{\eqExerSolnHeaderList}% - \set@typeset@protect -} -\long\def\setsolnspace#1{\def\newsolnspace{#1}% - \let\solnspace\newsolnspace} -\newif\ifeq@ckSolnVspace \eq@ckSolnVspacetrue -\def\ckSolnOpt{\global\eq@ckSolnVspacetrue} -\def\noSolnOpt{\global\eq@ckSolnVspacefalse} -\let\solnhspace\space -\let\solnspace\space -\let\exsolnonceonlytophook\relax -\def\solnexer@woparts{% - \ifanswerkey\ifeqe@flextended\ifcont@nnot - \ifx\solutionparshape\@empty\else % dpsj8 - \pushEnvir - \everypar{}\if@eqalignfilllinestoleft\else - \parshape=1 \leadinIndent \linewidth\fi - \popEnvir - \fi\fi\fi\fi\def\bLeaveVspace{x}% = no vertical space added - \exsolnonceonlytophook % dps27 - \global\let\exsolnonceonlytophook\relax - \@ifundefined{KV@eqefillLines@bgonly}{} - {\ifKV@eqefillLines@bgonly\ifvmode\else - \par\leavevmode\strut\fi\fi - \ifKV@eqefillLines@outlineonly\leavevmode\strut\fi}% - \ifeq@ckSolnVspace - \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%] - {\solnexer@@woparts[\null]}}\else - \def\eq@next{\solnexer@@woparts[\null]}\fi - \eq@next -} -\let\eqPriorVspace\@gobble -\newif\if@eqlinedfiller \@eqlinedfillerfalse -\newcommand{\vspaceFiller}[1]{\vfill} -\newcommand{\vspaceFillerDefault}[1]{\vfill} -\def\eqWriteLine{\hfill} -\def\eq@linesXPgs{% - \begingroup\offinterlineskip\parskip0pt - \@tempcnta=0 - \@whilenum\@tempcnta<\soln@keys@nLines\relax\do - {\vskip0pt\penalty-50\vglue\wlVspace\eqWriteLine - \advance\@tempcnta1\relax}\par\endgroup -} -\let\leavevspace\relax % dpsj5 -\newcommand{\vspaceFmt}[1]{% - \ifx\solutionparshape\@empty\else - \advance\linewidth-\leadinIndentPrtSep\fi - \ifdim\sameVspace>0pt - \let\bLeaveVspace\@empty - \def\leavevspace{% - \ifx\eq@insertverticalspace\eq@YES\par\eq@quessolskip - \eqPriorVspace{#1}{\nobreak\noindent - \if@eqlinedfiller - \ifx\soln@keys@nLines\@empty - \def\eq@lines@next{\vspaceFiller{#1}}\else - \def\eq@lines@next{\eq@linesXPgs}\fi - \else - \def\eq@lines@next{\parbox[b][#1][t]{\linewidth} - {\vspaceFiller{#1}}}% - \fi\eq@lines@next}% - \fi - }\expandafter\leavevspace % dpsj6 - \fi -} -\define@key{soln@keys}{nLines}[]{\def\soln@keys@nLines{#1}} -\let\soln@keys@nLines\@empty -\def\eqKV@errx#1{\xdef\XKV@rm{\@tempa}} -\def\eqSolnForEqexam#1{% - \let\soln@keys@nLines\@empty - \setkeys*{soln@keys}{#1}% - \ifx\soln@keys@nLines\@empty - \ifx\minVspacet@bs\@empty\xdef\sameVspace{\XKV@rm}\else - \xdef\sameVspace{\minVspacet@bs}\fi - \else - \@tempdima\wlVspace - \@tempdima=\soln@keys@nLines\@tempdima - \xdef\sameVspace{\the\@tempdima}% - \ifx\XKV@rm\@empty\else - \if@equsedim\let\soln@keys@nLines\@empty - \xdef\sameVspace{\XKV@rm}\fi - \fi - \fi - \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi -} -\def\solnexer@@woparts[#1]{% - \ifcqIsActive\else\ifterminexchanged - \restoreNormalSolns\fi\fi % dps cq - \global\cqIsActivefalse - \def\eq@argi{#1}\def\eq@null{\null}% - \ifx\eq@argi\@empty\gdef\sameVspace{0pt}\else - \ifx\eq@argi\eq@null\gdef\sameVspace{0pt}\else - \@ifundefined{PointsOnLeft}{% - \let\eqKV@errx@SAVE\KV@errx - \let\KV@errx\eqKV@errx\let\XKV@rm\@empty - \edef\temp@exp{\noexpand\setkeys*{soln@keys}{#1}}\temp@exp - \let\KV@errx\eqKV@errx@SAVE - \ifx\soln@keys@nLines\@empty\else - \PackageInfo{exerquiz}{% - nLines key detected in solution environment,\MessageBreak - is not not recognized without eqexam,\MessageBreak - will remove it}% - \let\soln@keys@nLines\@empty\fi - \xdef\sameVspace{\XKV@rm}% - }{\eqSolnForEqexam{#1}}% - \fi\fi - \solnexer@@@woparts -} -\def\solnsafterSkip#1{\setlength{\@tempdima}{#1}% - \edef\solnsafterSkipAmt{\the\@tempdima}% - \def\solutionsafterSkip{\vskip\solnsafterSkipAmt\relax}} -\solnsafterSkip{\smallskipamount} -\def\@solnafterSkipOnce#1{\setlength{\@tempdima}{#1}% - \xdef\@solnafterSkipOnceAmt{\the\@tempdima}}% -\def\@@solnafterSkipOnce{\vskip\@solnafterSkipOnceAmt\relax %dpsj3 - \gdef\@solnafterSkipOnceAmt{0pt}} -\def\@solnafterSkipOnceAmt{0pt} -\def\quessolSkip#1{\setlength{\@tempdima}{#1}% - \edef\eq@quessolskip{\noexpand\vskip\the\@tempdima\relax}} -\def\eq@quessolskip{\vskip\smallskipamount} -\def\eqe@debugVertSkip#1{} -\def\eqe@showEndHere#1{#1} -\def\eqe@setStartSolns{% - \xdef\eq@startSoln{\the\pagetotal}% - \eqe@debugVertSkip{\marginpar{\smash{b[\sameVspace]}}}% -} -\let\eqSavedComment\comment -\let\eqSavedEndCommet\endcomment -\def\setTabulrSolnEnv{% - \@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}% - \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE - \leftmargin\leftmarginii \labelwidth\leftmarginii - \advance\labelwidth-\labelsep}% - \def\everyparShape{\everypar{\parshape \@ne 0pt \linewidth}}% - \reset@doendpe{\parshape \@ne 0pt \linewidth}% - \parshape \@ne 0pt \linewidth - \everyparShape -} -\newif\ifthereissolution -\let\priorexsolafterList\@empty -\let\priorexsolafterTab\@empty -\let\priorexsolafterSngl\@empty -\def\eq@Hid{H}\def\eq@hid{h} -\def\solutionafterExCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty - \let\eqSolnExCmds\relax\else - \def\eqSolnExCmds{#1}\fi} -\let\eqSolnExCmds\relax -\def\eq@b@ddCodeSpecialDef#1{#1}% dpsj4 -\let\eq@b@ddCodeSpecial\eq@b@ddCodeSpecialDef % dpsj4 -\def\solnexer@@@woparts{\ifeq@solutionsafter\else - \expandafter\begingroup\fi %dpsj10 - \global\thereissolutiontrue - \global\let\procsoln\relax % dpsj6 - \global\let\endprocsoln\relax % dpsj6 - \def\exerwparts@cols{0}% - \let\verbatim@out\ex@solns - \if\currhideopt\eq@Hid - \let\minVspacet@bs\@empty - \let\procsoln\eqSavedComment - \let\endprocsoln\eqSavedEndCommet - \def\eq@next{\procsoln}% - \else - \eq@ckglobalhide - \ifeq@hidesolution - \let\procsoln\eqSavedComment - \let\endprocsoln\eqSavedEndCommet - \else - \ifeq@solutionsafter\else - \ifx\eq@@CommonCmd\@empty\else - \set@display@protect - \immediate\write\verbatim@out{\eq@@CommonCmd}% - \set@typeset@protect - \fi - \fi - \let\procsoln\verbatimwrite - \let\endprocsoln\endverbatimwrite - \fi - \def\eq@next{% - \ifeq@solutionsafter - \let\procsoln\relax % dpsj6 - \let\endprocsoln\relax - \removelastskip\removelastparskip - \cqSAtrue\eqCQDeclarations - \declCopyQues{\input{\cq@CutName}}% - \ifx\exsolafter\@empty - \ifdim\sameVspace=0pt\eqe@setStartSolns - \else - \solutionsafterSkip - \@@solnafterSkipOnce % dpsj3 - \eqe@setStartSolns - \fi - \else\par\kern0pt - \solutionsafterSkip - \@@solnafterSkipOnce % dpsj3 - \noindent\strut\eqe@setStartSolns - \fi - \parskip\eqeques@parsep - \ifx\endparts\endexercise@parts@tabular - \eq@setPrbSolnAftrIndnt - \restorejustify - \fi - \ifx\endparts\endexercise@parts@tabular\expandafter - \priorexsolafterTab\else - \ifx\endparts\endexercise@parts@list\expandafter - \priorexsolafterList\else\expandafter - \priorexsolafterSngl\fi\fi - \exsolafter\space\ignorespaces - \solutionparshape - \else - \eqExerSolnHeader - \global\let\eqExerSolnHeader\@empty - \global\therearesolutionstrue\expandafter\procsoln - \fi - }% - \fi - \eq@b@ddCodeSpecial{\eq@next}% -}% dpsj4 -\let\endsolnexerhook\@empty -\let\pkg@endsolnexerhook\@empty -\let\endsolnexerhookaux\@empty -\def\eq@fititin#1{\noindent\unskip\nobreak\hfill\penalty100 - \hskip1em\hbox{}\nobreak\hfill#1}% -\let\eqfititin\eq@fititin -\newcommand\eqExerSolnTrailer{% - \protect\ReturnTo{page.\the\c@page}% - {\protect\mbox{\if\exerstar*\exrtnlabelformatwp\else - \exrtnlabelformat\fi}}% - \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J% - \ifmakeExSlLocal\protect\endgroup^^J\fi -} -\let\eq@e@ddCodeSpecialDef\relax % dpsj4 -\let\eq@e@ddCodeSpecial\eq@e@ddCodeSpecialDef % dpsj6 -\let\kdvsp@Restore\relax % dpsj20 -\def\endsolnexer@woparts{\endprocsoln\eq@e@ddCodeSpecial - \pkg@endsolnexerhook % djsj8 moved from the end of the macro - \ifeq@solutionsafter\else - \expandafter\endgroup\fi % from \begingroup at \solnexer@@@woparts - \global\let\exsolnonceonlytophook\relax - \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi % dpsj5 - \ifvspacewithsolns\vspaceFmt{\sameVspace}\else - \ifeq@nosolutions\ifeq@solutionsafter\else - \vspaceFmt{\sameVspace}\fi\fi\fi - \if\currhideopt H% - \ifkeepdeclaredvspacing\vskip\sameVspace\fi - \else - \ifeq@solutionsafter - \ifx\isitleadin\eq@YES\parshape=0 \fi % dpsj9 - \if\exerstar*% - \eq@fititin{\mbox{\exrtnlabelformatwp}}\else - \eq@fititin{\mbox{\exrtnlabelformat}}\fi - \ifx\istabularexer\eq@YES\unskip\kern0pt\else\par\fi % dpsj6 - \ifx\minVspacet@bs\@empty - \ifkeepdeclaredvspacing - \@tempdima\pagetotal - \advance\@tempdima-\eq@startSoln - \@tempdimb\sameVspace\relax - \ifdim\@tempdimb>1sp\relax - \advance\@tempdimb-\@tempdima - \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt - \let\eqe@showEndHere\@gobble - \edef\tmp@exp{\noexpand\marginpar{% - \noexpand\smash{e: adj \the\@tempdimb}}}% - \eqe@debugVertSkip{\tmp@exp}% - \fi - \fi - \fi - \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}% - \fi - \else - \eq@ckglobalhide - \ifeq@hidesolution\else - \endsolnexerhookaux - \let\verbatim@out\ex@solns - \set@display@protect - \immediate\write\verbatim@out{\eqExerSolnTrailer}% - \set@typeset@protect - \fi - \fi - \fi - \kdvsp@Restore % dpsj20 - \endsolnexerhook\penalty0\relax} -\let\eq@exerstarEnv\relax -\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise} -{\endexercise} -\def\exerwparts@cols{0} -\let\topofpartshook\relax -\let\@listiiredefined\eq@NO -\let\itsExerParts\eq@NO -\newif\if@tableadinitem\@tableadinitemfalse -\newcommand{\tableadin@external}{\PackageError{exerquiz/eqexam} - {The \string\tableadin\space command is designed\MessageBreak - for the problem* environment of eqexam}{Use \string\tableadin\space - in the problem* environment of eqexam.}% -} -\let\tableadin\tableadin@external -\newcommand{\eq@tableadinparts}{\item\relax - \PackageError{exerquiz/eqexam}{The \string\tableadin\space - command is not allowed in the\MessageBreak - parts environment}{Use \string\tableadin\space - in the problem* environment of eqexam.}% -} -\let\istabularexer\eq@NO -\def\exercise@parts{\let\rlspar\relax - \ifx\solutionparshape\@empty - \let\isitleadin\eq@NO - \if@tableadinitem\let\rlspar\@gobbletwo\fi - \else\let\isitleadin\eq@YES\fi - \rlspar\removelastskip\par - \if\isitleadin\eq@YES - \def\eqparts@topsep{0pt}% - \vskip\eqparts@itemsep\relax\fi - \topofpartshook - \let\itsExerParts\eq@YES - \global\let\@listiiredefined\eq@NO - \def\exerwparts@cols{0}\@ifnextchar[% - {% - \if@tableadinitem\else\removelastparskip\fi - \let\endparts\endexercise@parts@tabular\exercise@parts@tabular@}% - {\let\endparts\endexercise@parts@list\exercise@parts@list}} -\def\eq@extralabelsep{0pt} -\newcommand{\setPartsWidth}[1]{\def\parts@indent{\normalfont#1}% - \bgroup\settowidth{\eq@tmpdima}{\parts@indent}% - \xdef\widthOfParts{\the\eq@tmpdima}\egroup} -\setPartsWidth{(d)} -\def\eqe@prtsepPrb{\ } -\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}} -\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}} -\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}} -\eqequesparsep{0pt} -\let\prior@parts@hook\@empty -\let\post@parts@hook\@empty -\let\abovepartshook\@empty -\let\belowpartshook\@empty -\let\eqp@rtc@lcm@rk\relax -\let\eq@insertContAnnot\relax -\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk - \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse - \@ifnextchar[{\@ckhide}{\eq@item}} -\newcommand{\partsitemsep}[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@itemsep{\the\@tempdima}}} -\let\eqpartsitemsep\partsitemsep -\def\eqparts@itemsep{0pt} -\newcommand\partsparsep[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@parsep{\the\@tempdima}}} -\def\eqparts@parsep{0pt} -\newcommand\partstopsep[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@topsep{\the\@tempdima}}} -\def\eqparts@topsep{3pt} -\newcommand{\leadinitem@external}{\PackageError{exerquiz/eqexam} - {The \string\leadinitem\space command is designed to be\MessageBreak - the first item in the problem*\MessageBreak - environment above the parts environment} - {Use \string\leadinitem\space in the problem* environment.}% -} -\let\leadinitem\leadinitem@external -\let\itsforleadinitem\eq@NO -\newcommand{\eq@leadinitemparts}{\item\relax - \PackageError{exerquiz/eqexam}{The \string\leadinitem\space - command is not allowed in the\MessageBreak - parts environment} - {Use \string\leadinitem\space in the problem* environment.}% -} -\def\eq@handleOptArg[#1]{\def\eq@optArg{[#1]}\eq@handleOptArgi} -\def\eq@handleOptArgi{\expandafter - \eq@item@latex\eq@optArg\exlisttabheaderafterhook} -\newif\ifwithinparts -\let\ex@listtabheader@fterhook\@empty -\newenvironment{exercise@parts@list}{% - \settowidth{\eq@tmplength}{\parts@indent}% - \edef\widthOfParts{\the\eq@tmplength}% - \eq@initializeContAnnot\eq@nolinkfalse\prior@parts@hook - \abovepartshook\list{\normalfont - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \global\let\eqExerSolnHeader\eq@@writeexheaderlist - \fi - \fi - \fi - \fi - \makebox[\widthOfParts][r]{\eqexlisttabheader}% -}{% - \usecounter{partno}% - \if\isitleadin\eq@YES - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else - \setcounter{partno}{1}\fi\fi - \let\leadinitem\eq@leadinitemparts - \let\tableadin\eq@tableadinparts - \global\let\solutionparshape\@empty - \setlength{\topsep}{\eqparts@topsep}% - \setlength{\parskip}{0pt}% - \setlength{\partopsep}{0pt plus 1pt minus 1pt}% - \ifdim\eqeques@parsep=0pt - \setlength{\parsep}{\eqparts@parsep}% - \else - \setlength{\parsep}{\eqeques@parsep}% - \fi - \setlength{\itemsep}{\eqparts@itemsep-\parsep}% - \setlength{\itemindent}{0pt}% - \setlength{\listparindent}{\parindent}% - \settowidth{\labelsep}{\normalfont\eqe@prtsepPrb}% - \addtolength{\labelsep}{\eq@extralabelsep}% - \settowidth{\labelwidth}{\parts@indent}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \let\eq@item@latex\item - \def\eq@item{\@ifnextchar[{\eq@handleOptArg} - {\eq@item@latex\ex@listtabheader@fterhook - \exlisttabheaderafterhook}}% - \def\eqthisenv{parts}\withinpartstrue - \def\item{\ifx\@currenvir\eqthisenv - \def\eq@next{\eq@item@common}\else - \def\eq@next{\eq@item}\fi - \eq@next}% -}}{\endlist\global\let\leadinitem\leadinitem@external - \post@parts@hook\belowpartshook} -\def\eq@initializeContAnnot{\@ifundefined{eqequestions} - {\global\let\eqeCurrProb\relax} - {\xdef\eqeCurrProb{\theeqquestionnoi}}% - \xdef\eq@currProbStartPage{\arabic{page}}% -} -\define@key{tabp@rts}{nCols}{\def\exerwparts@cols{#1}} -\define@key{tabp@rts}{minVspace}{\def\minVspacet@bs{#1}} -\let\minVspacet@bs\@empty -\def\minVspacetabs#1{\def\minVspacet@bs{#1}} -\def\priorexsolafterTab{\ifkeepdeclaredvspacing - \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else - \priorexsolafterTab@cont\fi\fi\fi} -\def\priorexsolafterTab@cont{\let\exsolafter@save\exsolafter - \let\exsolafter\@empty - \makebox[0pt][r]{\parbox[t][\minVspacet@bs][t]{0pt} - {\strut\hfill\vfill\strut}}% - \minipage[t]{\linewidth}\exsolafter@save} -\def\pkg@endsolnexerhook{\ifkeepdeclaredvspacing - \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else - \endminipage\fi\fi\fi} -\def\exercise@parts@tabular@[#1]{% - \inittabMark - \let\eq@insertContAnnot\relax - \let\exerwparts@cols\@empty - \setkeys*{tabp@rts}{#1}\ifx\exerwparts@cols\@empty - \edef\exerwparts@cols{\XKV@rm}\fi - \ifx\minVspacet@bs\@empty\keepdeclaredvspacingfalse\fi - \let\istabularexer\eq@YES - \@tempcnta\exerwparts@cols\relax - \ifnum\@tempcnta<2\relax - \PackageError{exerquiz}{% - The number of columns for parts\MessageBreak - needs to be an integer greater than 1} - {Enter an integer, 2 or larger}\fi - \exercise@parts@tabular} -\newcount\eq@extabColCnt -\def\autotabOn{\let\eq@tabMarkChk\relax% - \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOn}} -\def\autotabOff{\let\eq@tabMarkChk\@gobble - \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOff}} -\autotabOff -\def\inittabMark{\global\eq@extabColCnt=0 } -\def\resettabMark{\global\eq@extabColCnt=1 } -\newcommand\autotabnewline[1][\eqparts@tabrowsep]{% - \ifnum\exerwparts@cols>0\relax - \ifx\eq@tabMarkChk\@gobble - \def\eq@atnext{\expandafter - \tabularnewline\expandafter[#1]}\else - \def\eq@atnext{\resettabMark\tabularnewline - \noalign{\expandafter\kern#1}}\fi - \expandafter\eq@atnext\fi} -\def\eq@tabMark{% - \ifnum\eq@extabColCnt=0\relax - \global\advance\eq@extabColCnt1\relax - \let\eq@next\relax - \else - \ifnum\eq@extabColCnt=1\relax - \let\eq@next\relax - \else - \ifnum\eq@extabColCnt>\exerwparts@cols - \let\eq@next\autotabnewline - \else\def\eq@next{&}\fi - \fi - \fi - \eq@next - \global\advance\eq@extabColCnt1\relax -} -\newcommand\partstabcolsep[1]{\def\eq@partstabcolsep{#1}} -\partstabcolsep{1.5pt} -\newcommand\partstabtopsep[1]{\def\eq@partstabtopsep{#1}} -\partstabtopsep{3pt} -\def\eq@vpartstabtopsep{\vskip\eq@partstabtopsep\relax} -\newcommand\partstabrowsep[1]{\setlength{\@tempdima}{#1}% - \edef\eqparts@tabrowsep{\the\@tempdima}} -\partstabrowsep{0pt} -\newenvironment{exercise@parts@tabular}{% - \setcounter{partno}{0}% - \def\tablrIndent{\hglue\prtsIndntSep\relax}% - \if\isitleadin\eq@YES - \if$\the\everypar$\let\tablrIndent\relax\fi - \setcounter{partno}{1}\fi - \let\leadinitem\eq@leadinitemparts - \let\tableadin\eq@tableadinparts - \global\let\solutionparshape\@empty - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \sbox{\eq@tmpbox}{\parts@indent}% - \let\eq@item@latex\item - \let\eq@item\item@part@tabular - \def\eqthisenv{parts}\withinpartstrue - \def\item{\ifx\@currenvir\eqthisenv - \def\eq@next{\eq@tabMarkChk\eq@tabMark\eq@item@common}\else - \def\eq@next{\eq@item@latex}\fi - \eq@next}\eq@nolinkfalse - \@ifundefined{@xtabularcr}{\let\@xarraycr\eq@xtabularcr} - {\let\@xtabularcr\eq@xtabularcr}% - \eq@tmpdima=\linewidth - \advance\eq@tmpdima-\prtsIndntSep\relax - \@tempcnta\exerwparts@cols\relax - \advance\@tempcnta-1\relax - \multiply\@tempcnta2\relax - \@tempdima\prtsIndntSep\relax - \divide\@tempdima 2\relax - \edef\halfWidth{\the\@tempdima}% - \advance\@tempdima\eq@partstabcolsep\relax - \tabcolsep\@tempdima - \multiply\@tempdima\@tempcnta - \advance\eq@tmpdima-\@tempdima - \divide\eq@tmpdima by\exerwparts@cols\relax %dpsj3 - \edef\widthOfPartsBox{\the\eq@tmpdima}% dpsj2 - \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi - \noindent\normalbaselines\kern0pt - \prior@parts@hook\abovepartshook - \tablrIndent\tabular[t]{@{}*{\exerwparts@cols}{>{\setTabulrSolnEnv - \parskip\eqeques@parsep\relax - \parindent0pt\relax\strut}p{\eq@tmpdima}}@{\hidewidth}}% -}{\endtabular\kern0pt - \@ifundefined{@listii@SAVE}{}{\global\let\@listii\@listii@SAVE - \global\let\@listii@SAVE\relax}% - \post@parts@hook\belowpartshook - \aftergroup\eqe@innermarkpts - \aftergroup\eq@vpartstabtopsep} -\let\eqe@innermarkpts\relax -\def\item@part@tabular{\refstepcounter{partno}% - \global\let\eqExerSolnHeader\@empty - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else\ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \gdef\eqExerSolnHeader{\eq@@writeexheaderlist}% - \fi\fi\fi - \if@restorejustify\restorejustify\else\PBS\raggedright\fi - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \sbox{\eq@tmpbox}{\parts@indent}% - \eq@tmpdima=\wd\eq@tmpbox - \addtolength\eq@tmplength{\eq@extralabelsep}% - \xdef\partshangamount{\the\eq@tmplength}% - \parshape \@ne 0pt \linewidth - \everypar{\parshape \@ne 0pt \linewidth}% - \eq@setPrbSolnAftrIndnt - \makebox[0pt][r]{\eqexlisttabheader\eqe@prtsepPrb}% - \ex@listtabheader@fterhook - \exlisttabheaderafterhook\ignorespaces -} -\def\@ckhide[#1]{\edef\eq@arg{#1}% - \def\currhideopt{x}% - \ifx\eq@arg\@empty\else - \if\eq@arg\eq@Hid - \eq@hidesolutiontrue\eq@nolinktrue% - \edef\currhideopt{\Hidesymbol}% - \else - \ifeq@globalshowsolutions\else - \if\eq@arg\eq@hid - \eq@hidesolutiontrue\eq@nolinktrue% - \def\currhideopt{h}% - \fi - \fi - \fi\fi - \eq@item -} -\def\tabControlOn{\@ifundefined{@xtabularcr} - {\let\save@@xtabularcr\@xarraycr} - {\let\save@@xtabularcr\@xtabularcr}} -\def\tabControlOff{\@ifundefined{@xtabularcr} - {\let\@xarraycr\save@@xtabularcr} - {\let\@xtabularcr\save@@xtabularcr}} -\AtBeginDocument{\tabControlOn} -\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr} - {\eqe@tab@parts@rowsep}}% -\def\eqe@tab@parts@rowsep{\save@@xtabularcr - \noalign{\expandafter\kern\eqparts@tabrowsep}}% -\def\includeexersolutions{\@ifstar - {\let\resetEXsolns\relax\includeexersolutionsi} - {\def\resetEXsolns{\global\let\include@solutions\relax}% - \includeexersolutionsi}% -} -\newcommand{\includeexersolutionsi}[1][]{% - \filterFor{#1}\includeexersolutionsii -} -\def\includeexersolutionsii{% - \include@solutions - \resetEXsolns - \let\eqFilterArg\@empty -} -\long\def\gobbleToEndEXt#1\endeqEXt{% - \ifeqforpaper\expandafter\@gobbletwo\fi} -\newcommand\filterFor[1]{\def\eqFilterArg{#1}} -\newcommand\inclEXtFilter[2]{\def\eqargii{#2}\ifx\eqargii\eqFilterArg - \else\expandafter\gobbleToEndEXt\fi} -\newcommand\useEXtFilter{\let\eqEXt\inclEXtFilter} -\let\eqsolutionshook\@empty -\let\eq@solutionshook\@empty -\let\priorexsectitle\@empty -\let\priorexslinput\@empty -\def\exerSolnsHeadnToc{\section*{\exsectitle}% - \addcontentsline{toc}{section}{% - \@ifundefined{web@latextoc}{}{% - \ifx\web@latextoc\eq@YES\else - \protect\numberline{}\fi}\exsectitle}} -\@ifpackageloaded{web}{\def\eq@normallheader{\lheader{\rightmark}}} - {\let\eq@normallheader\relax} -\@ifpackageloaded{web}{\def\eq@defaultlheader{\lheader{\aeb@setmarks}}} - {\let\eq@defaultlheader\relax} -\newif\ifExSolutionsSet \ExSolutionsSetfalse -\newcommand{\exerSolnInput} -{% - \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd%\ifvspacewithsolns - \eqe@IWO\@auxout{\string\expandafter\string\gdef - \string\csname\space eqExamQuesLastPage\string\endcsname - {\arabic{page}}}\fi} - \let\webnewpage\relax - \ifsolutionsonly\else\immediate\closeout\ex@solns\fi - \ifeq@nosolutions\else - \iftherearesolutions - \ifsolutionsonly\eq@solutionshook - \eqsolutionshook - \else - \newpage\eq@solutionshook - \eqsolutionshook\markright{}\eq@normallheader - \fi - \markright{\exsectitle}% - \ifx\webnewpage\relax - \def\webnewpage{\global\let\webnewpage\newpage}% - \fi - \priorexsectitle\exerSolnsHeadnToc\priorexslinput - \InputIfFileExists{\jobname.sol} - {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz} - {!!! Solutions to exercises not found}}% - \global\ExSolutionsSetfalse - \newpage\eq@defaultlheader - \fi - \fi -} -\def\include@solutions{% - \exerSolnInput -} -\newcommand{\prior@questionsHook}{} -\let\qMark@Hook\@empty -\let\aebtitleQuiz\@empty -\newcommand{\post@questionsHook}{} -\newcommand{\quesNumColor}[1]{\def\eq@quesNumCol{#1}} -\quesNumColor{blue} -\renewcommand{\theeqquestionnoi}{\arabic{eqquestionnoi}} -\newcommand{\labeleqquestionnoi}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoi.} -\renewcommand\theeqquestionnoii{(\alph{eqquestionnoii})} -\newcommand{\labeleqquestionnoii}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoii} -\renewcommand\theeqquestionnoiii{(\roman{eqquestionnoiii})} -\newcommand{\labeleqquestionnoiii}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoiii} -\define@key{props@ques}{labelwidthTo}% - [\normalsize\normalfont\bfseries00.]% - {\def\propQ@labelwidthTo{#1}} -\define@key{props@ques}{labelwidth}[]{\def\propQ@labelwidth{#1}} -\let\propQ@labelwidth\@empty -\define@key{props@ques}{topsep}[\the\topsep]{\edef\propQ@topsep{#1}} -\define@key{props@ques}{partopsep}[\the\partopsep]% - {\edef\propQ@partopsep{#1}} -\define@key{props@ques}{parsep}[\the\parsep]{\edef\propQ@parsep{#1}} -\define@key{props@ques}{itemsep}[\the\itemsep]{\edef\propQ@itemsep{#1}} -\define@key{props@ques}{labelsepTo}[\normalsize\normalfont\ ]% - {\def\propQ@labelsepTo{#1}} -\define@key{props@ques}{labelsep}[\@empty]{\def\propQ@labelsep{#1}} -\let\propQ@labelsep\@empty -\define@key{props@ques}{color}[blue]{\quesNumColor{#1}} -\setkeys{props@ques}{labelwidthTo,topsep,partopsep,parsep,% - itemsep,labelsepTo,color}% -\newenvironment{questions}[1][] -{% - \ifnum\@eqquestiondepth>\tw@\@toodeep\else - \advance\@eqquestiondepth\@ne\fi - \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% - \toks@=\expandafter\expandafter\expandafter{#1}\expandafter - \xdef\csname quesOpts\@quesctr\endcsname{\the\toks@}% - \edef\tempexp{\noexpand\setkeys{props@ques}{\the\toks@}}\tempexp - \list{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}% - \global\let\eqQT\eq@na% - {\@tempcnta=0 \let\@thispr@b\@empty - \@whilenum\@tempcnta<\@eqquestiondepth\do{\advance\@tempcnta\@ne - \ifx\@thispr@b\@empty\edef\@thispr@b{% - \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\else - \edef\@thispr@b{\@thispr@b% - \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\fi - }\xdef\@currentQues{\@thispr@b}}% - \makebox[\labelwidth][r]{\normalfont\@nameuse{label\@quesctr}}% - \xdef\eq@pageThisQ{\the\c@page}% - \post@questionsHook}{\usecounter{\@quesctr}% - \ifx\propQ@labelsep\@empty - \settowidth{\labelsep}{\propQ@labelsepTo}\else - \setlength{\labelsep}{\propQ@labelsep}\fi - \ifx\propQ@labelwidth\@empty - \settowidth{\labelwidth}% - {\propQ@labelwidthTo\hspace{\labelsep}}\else - \settowidth{\labelwidth}{\hspace{\propQ@labelwidth}% - \hspace{\labelsep}}\fi - \setlength{\topsep}{\propQ@topsep}% - \setlength{\partopsep}{\propQ@partopsep}% - \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi - \setlength{\parsep}{\propQ@parsep}% - \setlength{\itemsep}{\propQ@itemsep}% - \setlength{\itemindent}{0pt}% - \setlength{\leftmargin}{\labelwidth}% - }% -}{\endlist} -\def\pushquestions{\expandafter\xdef\csname save\@quesctr\endcsname - {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}} -\def\popquestions{% - \begin{questions}[\csname quesOpts\@quesctr\endcsname]% - \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}% - \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}} -\newcommand{\priorsqhook}[1]{\def\sq@priorhook{#1}} -\priorsqhook{} -\newcommand{\abovesqskip}[1]{\def\sq@aboveskip{#1}} -\abovesqskip{\par\medskip} -\long\def\endsqhook#1{\def\sq@afterhook{#1}} -\endsqhook{} -\def\@shortquizCnt{0} -\def\@sqGenBaseName{eqSqBn\@shortquizCnt} -\let\sqhspace\space -\let\ListOfSQuizNames\@empty -\newenvironment{shortquiz} -{% - \xdef\eq@pageThisQ{\the\c@page}% - \let\@currentQues\@empty - {\count0=\@shortquizCnt \advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0}}% - \goodbreak\@ifstar{\sqForms\@shortquiz}% - {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else - \def\sqstar{}\sqLinks\fi\@shortquiz}% -}{\aeb@endshortquiz} -\newenvironment{shortquiz*} -{% - \xdef\eq@pageThisQ{\the\c@page}% - {\count0=\@shortquizCnt\advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0 }}% - \sqForms\@shortquiz -}{\aeb@endshortquiz} -\def\@shortquiz{\@ifnextchar[% - {\@@shortquiz}{\@@shortquiz[\@sqGenBaseName]}} -\def\sq@setCLN#1{\ifx\aebTitleQuiz\@empty - \protected@edef\@currentlabelname{#1}\else - \protected@edef\@currentlabelname{\@currentlabelname}\fi -} -\let\isQZ=q \let\isSQZ=s -\let\eqQuizType\relax -\def\@@shortquiz[#1]{%\begingroup - \gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}% - \edef\tmp@Exp{\noexpand\g@addto@macro\noexpand - \ListOfSQuizNames{,#1}}\tmp@Exp - \global\let\eqQzQuesList\@empty - \let\eq@AddProbToQzQuesList\relax - \edef\@currentlabel{\@shortquizCnt}% - \edef\@currentHref{shortquiz.\@shortquizCnt}% - \global\let\eqQuizType\isSQZ\let\@qzsolndest\@empty - \if\sqstar*\relax - \let\@Ans\Ans@sq@f - \ifx\oField\@empty - \typeout{^^JExerquiz: Base field name required when using - shortquiz with '*' option}% - \PackageInfo{exerquiz}{Assuming link style^^J}% - \let\@Ans\Ans@sq@l - \fi - \else - \let\@Ans\Ans@sq@l - \fi - \setcounter{questionno}{0}% - \let\answers\answers@sq - \let\endanswers\endanswers@sq - \let\manswers\manswers@sq - \let\endmanswers\endmanswers@sq - \let\solution\solution@sq - \let\endsolution\endsolution@sq - \sq@aboveskip\sq@priorhook\ignorespaces -} -\newcommand\belowsqskip[1]{\def\aftershortquizskip{#1}} -\belowsqskip{\medskip} -\def\aeb@endshortquiz{\setcounter{quizno}{0}% - \sq@afterhook - \global\let\sqlabel\eq@sqlabel - \global\let\sqslrtnlabel\eq@sqslrtnlabel - \global\let\sqsllabel\eq@sqsllabel - \par\aftershortquizskip -} -\def\sqLinks{\def\sqstar{}}\sqLinks -\def\sqForms{\def\sqstar{*}} -\let\eq@tq@star\relax -\def\qzPriorSolutionAfterHook{\smallskip} -\let\sqPostHeaderHook\@empty -\let\qPostHeaderHook\@empty -\let\eq@sqPostHeaderHook\@empty -\let\eq@qPostHeaderHook\@empty -\let\prior@eqQt\@empty -\let\prior@eqSQt\@empty -\def\sqsolafterhspace{\space} -\newif\ifmakeQzSlLocal \makeQzSlLocalfalse -\def\makeQzSolnsLocalOn{\makeQzSlLocaltrue} -\def\makeQzSolnsLocalOff{\makeQzSlLocalfalse} -\def\solution@sq{\let\eq@next\relax - \ifx\@qzsolndest\@empty - \PackageWarning{exerquiz}% - {* Solutions unexpected here, will *\MessageBreak - * assume solutionsafter option *}% - \eq@solutionsaftertrue - \fi - \ifeq@solutionsafter - \par\qzPriorSolutionAfterHook\noindent - \if!\sqsolafter!\else - \sqsolafter\sqsolafterhspace\fi\ignorespaces - \else - \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns - \set@display@protect - \immediate\write\verbatim@out{% - \ifmakeQzSlLocal\protect\begingroup^^J\fi - \if\eqQuizType\isQZ - \ifx\prior@eqQt\@empty\else\prior@eqQt\fi - \protect\eqQt{\eqFilterArg}\else - \ifx\prior@eqSQt\@empty\else\prior@eqSQt\fi - \protect\eqSQt{\eqFilterArg}\fi - \protect\quizSolnHeader\if\eqQuizType\isQZ\ifx\allow@peek\eq@NO - [{\curr@quiz}{\currQuizStartPage}]\fi\fi - {\@qzsolndest}{\sqsllabel}\protect\eqterminex - \if\eqQuizType\isQZ\expandafter\eq@qPostHeaderHook - \expandafter\qPostHeaderHook\else - \expandafter\eq@sqPostHeaderHook - \expandafter\sqPostHeaderHook\fi}% - \set@typeset@protect - \expandafter\verbatimwrite\fi -} -\let\qzSolutionsAfterHook\@empty -\def\endsolution@sq -{% - \ifeq@solutionsafter - \eq@fititin{\mbox{\sqslrtnlabel}}\par\qzSolutionsAfterHook - \aftergroup\ignorespaces - \else - \endverbatimwrite - \ifx\@qzsolndest\@empty\else\set@display@protect - \immediate\write\verbatim@out{\eqSqSolnTrailer}% - \set@typeset@protect - \fi - \fi - \global\let\@qzsolndest\@empty -} -\def\fpAfterSolutionsSkip{\par\medskip} -\let\eqSqSolnTrailerHook\@empty -\let\eqQzSolnTrailerHook\@empty -\newcommand\eqSqSolnTrailer{% - \if\eqQuizType\isQZ - \eqQzSolnTrailerHook - \protect\ReturnTo{page.\eq@pageThisQ}% - {\protect\mbox{\sqslrtnlabel}}\string\endeqQt - \else - \eqSqSolnTrailerHook - \protect\ReturnTo{page.\eq@pageThisQ}% - {\protect\mbox{\sqslrtnlabel}}\string\endeqSQt% - \fi - \ifeqforpaper\protect\fpAfterSolutionsSkip\fi^^J% - \ifmakeQzSlLocal\protect\endgroup^^J\fi -} -\let\eqSQt\@gobble -\let\endeqSQt\relax -\let\eqQt\@gobble -\let\endeqQt\relax -\let\prior@quizSolnHeaderHook\@empty -\newcommand\quizSolnHeader[3][]{% - \prior@quizSolnHeaderHook - \ifeqforpaper\else\webnewpage\fi\noindent - #2% - \solnspace -} -\newif\iftherearequizsolutions \therearequizsolutionsfalse -\let\aeb@FLOverride\relax -\def\includequizsolutions{\@ifstar - {\let\resetQZtsolns\relax\includequizsolutionsi} - {\def\resetQZtsolns{\global\let\include@quizsolutions\relax}% - \includequizsolutionsi}% -} -\newcommand{\includequizsolutionsi}[1][]{% - \filterFor{#1}\includequizsolutionsii -} -\def\includequizsolutionsii{% - \include@quizsolutions - \resetQZtsolns - \let\eqFilterArg\@empty -} -\newcommand\useForms{\def\aeb@FLOverride{f}} -\newcommand\useLinks{\def\aeb@FLOverride{l}} -\newcommand\restoreFLTypeDefault{\global\let\aeb@FLOverride\relax} -\let\aeb@FLOverride\relax -\let\aebtitleQuiz\@empty -\let\aebTitleQuiz\@empty -\def\pushEnvir{\xdef\eq@currenvir{\@currenvir}\endgroup} -\def\popEnvir{\begingroup\@endpefalse - \edef\@currenvir{\eq@currenvir}% - \edef\@currenvline{\on@line}% -} -\def\answers@sq{\parindent0pt - \ifx\solutionparshape\@empty\else - \pushEnvir\par\noindent\expandafter\popEnvir\fi - \stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride\eq@l - \let\@Ans\Ans@sq@l\else - \let\@Ans\Ans@sq@f\fi - \else - \if\aeb@FLOverride\eq@f - \let\@Ans\Ans@sq@f\else - \let\@Ans\Ans@sq@l\fi - \fi - \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\def\manswers@sq{\parindent0pt - \@ifundefined{ifuserectforms}{} - {\if\aeb@FLOverride\eq@f\ifuserectforms - \useRectForMC\else\useCircForMC\fi\fi}% - \ifx\solutionparshape\@empty\else - \pushEnvir\par\noindent\expandafter\popEnvir\fi - \stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride\eq@l - \let\@Ans\Ans@ck@sq@l\else - \let\@Ans\Ans@ck@sq@f\fi - \else - \if\aeb@FLOverride\eq@f - \let\@Ans\Ans@ck@sq@f\else - \let\@Ans\Ans@ck@sq@l\fi - \fi - \def\aeb@answerType{c}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\let\sq@hwdest\@empty % hard-wired destination -\def\answers@@sq[#1]#2{% - \xdef\aeb@numCols{#2}% - \ifx\sq@hwdest\@empty - \xdef\@qzsolndest{#1}\else - \gdef\@qzsolndest{\sq@hwdest}\fi - \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list - \else - \gdef\eq@listType{0}\expandafter\answers@@sq@tabular - \fi{\aeb@numCols}% -} -\def\setMClabelsepDefault#1{\def\eq@hspanner@default{#1}} -\def\setMClabelsep#1{\def\eq@hspanner{#1}} -\setMClabelsep{\ }\setMClabelsepDefault{\ } -\def\resetMClabelsep{\expandafter\setMClabelsep\expandafter - {\eq@hspanner@default}} -\def\eq@lw@l{\eq@l@l\eq@hspanner} -\def\eq@l@l{\normalsize\normalfont(d)} -\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner} -\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{} -\let\eq@ansChoiceArray\@empty -\def\eq@recordAnsChoice{% - \ifx\eq@ansChoiceArray\@empty - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi - \tmp@exp -} -\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% - \item\relax\noindent\if\eq@listType\eq@One - \addtocounter{quizno}{-1}\@ifundefined{ifwithsoldoc} - {\refstepcounter{quizno}}{\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi - \ignorespaces} -\newenvironment{answers@sq@list}[1] -{% - \ifx\aeb@answerType\eq@r - \let\endanswers\endanswers@sq@list\else - \let\endmanswers\endanswers@sq@list\fi - \list{\strut\@Ans}{% - \if\sqstar*\relax - \settowidth{\labelwidth}{\eq@lw@f}\else - \settowidth{\labelwidth}{\eq@lw@l}\fi - \setlength{\topsep}{-\parskip+\aboveanswersSkip}% - \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% - \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}% - \setlength{\listparindent}{\parindent}% - \ifnum\exerwparts@cols>1\relax - \ifx\itsExerParts\eq@YES - \setlength{\leftmargin}{\labelwidth}\else - \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi - \else - \ifx\solutionparshape\@empty - \setlength{\leftmargin}{\labelwidth}\else - \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi\fi - \setlength{\labelsep}{0pt}% - \def\Ans{\Ans@list}% - }% -}% -{\endlist\setcounter{quizno}{0}\eq@answersEndHook} -\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% - \leavevmode\@Ans -} -\newcommand\sqtabsep[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty - \def\sq@tabsep{1.5pt}\else\def\sq@tabsep{#1}\fi} -\sqtabsep{1.5pt} -\def\sqTabPos#1{\def\sq@TabPos{[#1]}}\sqTabPos{} -\def\answers@@sq@tabular#1{% - \ifinner - \ifx\itsExerParts\eq@YES\par\removelastskip - \removelastparskip\vskip\aboveanswersSkip\fi - \else\par\removelastskip\removelastparskip - \vskip\aboveanswersSkip\fi - \noindent\ifnum\exerwparts@cols>1\relax\parshape=0\fi - \tabcolsep=0pt - \eq@tmpdima=\linewidth - \@tempcnta#1\relax - \advance\@tempcnta-1\relax - \multiply\@tempcnta by2 - \@tempdima\sq@tabsep\relax - \multiply\@tempdima\@tempcnta - \advance\eq@tmpdima-\@tempdima - \divide\eq@tmpdima by#1 - \def\Ans{\Ans@tabular}% - \tabcolsep\sq@tabsep\relax - \expandafter\tabular\sq@TabPos{@{}*{#1}{p{\eq@tmpdima}}@{}}}% -\let\eq@save@doendpe\@doendpe -\def\reset@doendpe#1{\global\eq@scratchtoks=\expandafter{#1}% - \gdef\@doendpe{\par\@endpetrue\global\let\@doendpe\eq@save@doendpe - \def\par{\@restorepar - \expandafter\everypar - \expandafter{\the\eq@scratchtoks}\par\@endpefalse}% - \everypar{{\setbox\z@\lastbox}% - \everypar{}\@endpefalse}\the\eq@scratchtoks - }% -} -\newcommand\answersEndHook[1]{\def\eq@answersEndHook{#1}} -\let\eq@answersEndHook\@empty -\def\endanswers@sq{\endtabular\setcounter{quizno}{0}% - \eq@answersEndHook\reset@doendpe{\the\everypar}% - \ifinner\else%\par - \removelastskip - \vspace{\aboveanswersSkip}\@endpetrue\fi -} -\def\endmanswers@sq{\endtabular\setcounter{quizno}{0}% - \eq@answersEndHook\reset@doendpe{\the\everypar}% - \ifinner\else%\par - \removelastskip - \vspace{\aboveanswersSkip}\@endpetrue\fi -} -\def\popiiictm{\special{CTM: pop pop pop}} -\def\aebChoiceAltFmt{\noexpand\ifaebshowgrayletters - \Alph{quizno}\noexpand\else\linkContentFormat\noexpand\fi} -\def\linkContentFormat{% - \if\probstar*\Alph{quizno}\else\alph{quizno}\fi} -\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\Ans@sq@l{% - \leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else - \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} - {\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \Ans@sq@l@driver -\eq@hspanner\ignorespaces} -\let\Ans@ck@sq@l\Ans@sq@l -\let\rbf@Opts\@empty -\def\Ans@sq@f{% - \if\eq@listType\eq@One\stepcounter{quizno}\else - \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} - {\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \insertGrayLetters % 6.3d - \Ans@sq@f@driver -\eq@hspanner\ignorespaces} -\let\Ans@ck@sq@f\Ans@sq@f -\newskip\aboveanswersSkip -\setlength\aboveanswersSkip{3pt} -\providecommand\graylettersColor{gray} -\def\insertGrayLetters{\ifaebshowgrayletters - \rlap{\makebox[\RadioFieldSize]% - {\textcolor{\graylettersColor}{\Alph{quizno}}}}\else\relax\fi} -\newcount\eq@tabColCnt -\define@key{bchoice}{nCols}{\def\bChoiceNumCols{#1}} -\@for\eqi:=1,2,3,4,5,6,7,8,9,10 \do{\edef\temp@expand@def{% - \noexpand\define@key{bchoice}{\eqi}[\eqi]{% - \noexpand\def\noexpand\bChoiceNumCols{\eqi}}% - }\temp@expand@def -} -\def\bChoiceNumCols{\aeb@numCols} -\define@key{bchoice}{random}[true]{% - \csname if#1\endcsname\eq@randomizeChoicestrue - \else\eq@randomizeChoicesfalse\fi -} -\define@key{bchoice}{label}[]{\xdef\bChoiceLabel{#1}} -\def\bChoices{\@ifnextchar[{\@ansChoices}{\@ansChoices[\aeb@numCols]}} -\def\@ansChoices[#1]% -{% - \global\let\@tempholdSaveAns\@empty %4/5 - \global\let\@tempholdSaveChoice\@empty %4/5 - \global\let\bChoiceLabel\@empty %4/5 - \setkeys{bchoice}{#1}% - \global\eq@tabColCnt=0 - \ifnum\aeb@numCols=1 % list mode - \def\eq@next{\@layoutListAns}\else % tabular mode - \def\eq@next{\@layoutTabularAns{\bChoiceNumCols}}\fi - \eq@next -} -\let\eChoices\relax -\def\@layoutListAns{\@ifnextchar\Ans{\@getListAns}% - {\@lookforendansChoices{\@layoutListAns}}% -} -\newcommand{\eq@saveAns}[2][]{% - \let\eq@next\@@@SaveAnsGobbleAns - \ifx\bChoiceLabel\@empty\else - \def\eq@savedAnsOpt{#1}\def\eq@savedAnsZO{#2}% - \if\eq@savedAnsZO1 \let\eq@next\@@@SaveAns\fi - \fi\eq@next -} -\long\def\@@@SaveAns#1\eAns{% 4/5 - \g@addto@macro\@tempholdSaveAns{\\{\ignorespaces#1}}% - \addtocounter{quizno}{1}% - \edef\temp@expand{\noexpand\g@addto@macro\noexpand - \@tempholdSaveChoice{% - \noexpand\\{\ifx\sqstar\@empty\aebChoiceAltFmt\else - \ifaebshowgrayletters\Alph{quizno}\else - \linkContentFormat\fi\fi}}}\temp@expand - \addtocounter{quizno}{-1}% -} -\newif\ifoxfordcomma \oxfordcommatrue -\def\oxfordCommaOn{\oxfordcommatrue} -\def\oxfordCommaOff{\oxfordcommafalse} -\def\eq@insertComma{% - \ifx\eq@comma\@empty - \ifnum\@nameuse{NumAns\eq@namearg}>2\relax - \def\eq@comma{,}\fi - \else\ifx\eq@insertAnd\@empty\eq@comma\space - \else\ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}% - \ifoxfordcomma\eq@comma\fi\else\eq@comma\fi\space - \fi - \fi -} -\newcommand\eqAnd{and}\def\eq@insertAnd{% - \ifnum\@nameuse{NumAns\eq@namearg}<2\relax\else - \ifnum\@nameuse{NumAns\eq@namearg}>2\relax - \else\leavevmode\space\fi\eqAnd\space\fi} -\long\def\eq@displayAns#1{\advance\@tempcnta1\relax - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} -\def\eq@displayAlts#1{\advance\@tempcnta1 - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi - \savedAltFmt{#1}} -\def\eq@displayAltsAns#1{\advance\@tempcnta1\relax - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} -\newcommand{\savedAltFmt}[1]{(#1)} -\newcommand{\useSavedAns}{\bgroup\@ifstar{\useSavedAns@i} - {\let\eq@insertAnd\@empty\useSavedAns@i}} -\newcommand{\useSavedAns@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\let\label\@gobble - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAns\@nameuse{SavedAns#2}\else - \@nameuse{SavedAns#2-Idx#1}\fi - \egroup -} -\newcommand{\useSavedAlts}{\bgroup\@ifstar{\useSavedAlts@i} - {\let\eq@insertAnd\@empty\useSavedAlts@i}} -\newcommand{\useSavedAlts@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\@nameuse{caseFor#2}% - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAlts\@nameuse{SavedAlts#2}\else - \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}}\fi - \egroup -} -\newcommand{\useSavedAltsAns}{\bgroup\@ifstar{\useSavedAltsAns@i} - {\let\eq@insertAnd\@empty\useSavedAltsAns@i}} -\newcommand{\useSavedAltsAns@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\@nameuse{caseFor#2}\let\label\@gobble - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAltsAns\@nameuse{SavedAltsAns#2}\else - \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}} - \@nameuse{SavedAns#2-Idx#1}\fi - \egroup -} -\newcommand{\useSavedNumAns}[1]{\@nameuse{NumAns#1}} -\long\def\@@@SaveAnsGobbleAns#1\eAns{} % 4/5 -\long\def\@getListAns\Ans#1\eAns{%\@@par %start new paragraph - \eq@saveAns#1\eAns % 4/5 - \Ans#1\vspace{\@rowskip}% - \@layoutListAns -} -\long\def\@lookforendansChoices#1{% - \@ifnextchar\eChoices{\rowsep{\rowsep@default}% - \expandafter\@findendans\@gobble}{\expandafter#1\@gobble}% -} -\def\@layoutTabularAns#1{% - \let\eq@tabSep\@empty - \xdef\numShortCols{#1}% - \ifnum#1>\aeb@numCols \xdef\numShortCols{\aeb@numCols}\fi - \@@layoutTabularAns -} -\def\@@layoutTabularAns{% - \@ifnextchar\Ans{\@getTabAns}% - {\@lookforendansChoices{\@@layoutTabularAns}}% -} -\def\rowsep#1{\gdef\@rowsep{[#1]}\gdef\@rowskip{#1}}% -\rowsep{\rowsep@default} -\def\rowsepDefault#1{\def\rowsep@default{#1}} -\def\rowsep@default{0pt} -\long\def\@getTabAns\Ans#1\eAns{% - \eq@saveAns#1\eAns - \global\advance\eq@tabColCnt1 - \let\@save@tabSep=\eq@tabSep - \ifnum\eq@tabColCnt=\numShortCols - \global\eq@tabColCnt=0 - \xdef\eq@tabSep{\noexpand\\\noalign{\kern\@rowskip\relax}}% - \else - \gdef\eq@tabSep{&}% - \fi - \@ifnextchar\eChoices{\@save@tabSep\Ans#1\rowsep{\rowsep@default} - \expandafter\@findendans\@gobble}% - {\@save@tabSep\Ans#1\@@layoutTabularAns}% -} -\def\@findendans{\@ifnextchar\end{% 4/5 - \ifx\bChoiceLabel\@empty\else - \processLabeledAns\fi - }{\expandafter\@findendans\@gobble}}% -\def\defineEachAns#1{\advance\count0by1\relax - \@temptokena={#1}\csarg\xdef - {SavedAns\bChoiceLabel-Idx\the\count0}{\the\@temptokena}% - \ifsolutionsonly\else - {\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}}}\fi -} -\def\defineEachChoice#1{\advance\count0by1\relax - \@temptokena={#1}\csarg\xdef - {SavedAlts\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}\ifsolutionsonly\else - {\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAlts\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}}}\fi -} -\def\processLabeledAns{% - \bgroup - \let\label\@gobble -\if\aeb@FLOverride\eq@l - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\else - \ifaebshowgrayletters - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOn}\else - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\fi -\fi - \toks@=\expandafter{\@tempholdSaveAns}\csarg - \xdef{SavedAns\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAns\bChoiceLabel}{\the\toks@}}}\fi - \count0=0\relax\let\\\defineEachAns\the\toks@ - \xdef\@currNCntAns{\the\count0 }\csarg - \xdef{NumAns\bChoiceLabel}{\@currNCntAns}% - \ifsolutionsonly\else{\eq@IWDefs{\string - \csarg\string\gdef{NumAns\bChoiceLabel}{\the\count0 }}}\fi - \toks@=\expandafter{\@tempholdSaveChoice}\csarg - \xdef{SavedAlts\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAlts\bChoiceLabel}{\the\toks@}}}\fi - \count0=0\relax\let\\\defineEachChoice\the\toks@ - \count0=1\relax\toks@={}%{\ignorespaces\@gobble}% - \loop - \edef\temp@exp{\the\toks@\noexpand\\{% - \noexpand\useSavedAlts[\the\count0]{\bChoiceLabel} - \noexpand\useSavedAns[\the\count0]{\bChoiceLabel}}}% - \toks@=\expandafter{\temp@exp}% - \ifnum\count0<\@currNCntAns - \advance\count0by1 - \repeat - \csarg\xdef{SavedAltsAns\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAltsAns\bChoiceLabel}{\the\toks@}}}\fi - \egroup -} -\def\graylettersOn{\aebshowgrayletterstrue} -\def\graylettersOff{\aebshowgraylettersfalse} -\def\aeb@exiii{\expandafter\expandafter\expandafter} -\def\REF{\@ifstar{\let\isREFstar\eq@One\aeb@REFstar} - {\let\isREFstar\eq@Zero\aeb@REF}} -\def\aeb@REFstar#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref*{#1}\fi}% -} -\def\aeb@REF#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref{#1}\fi}% -} -\def\aeb@buildUpperCaseRef#1{% - \xdef\tmp@expand{\aeb@exiii\@firstoftwo\csname r@#1\endcsname}% - \xdef\tmp@expand{\uppercase{\tmp@expand}}\tmp@expand -} -\endinput -%% -%% End of file `eqexam.def'. +%% +%% This is file `eqexam.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `eqexam') +%% +\ProvidesFile{eqexam.def} + [2018/03/21 v8.2.2 % + Exerquiz support file for eqexam (dps)] +\let\eq@YES=y \let\eq@NO=n +\let\eq@One=1 \let\eq@Zero=0 +\def\eq@r{r}\let\eq@f=f \let\eq@l=l +\newif\ifeq@noforms \eq@noformsfalse +\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse +\newif\ifnocorrections \nocorrectionsfalse +\@ifundefined{ifeqe@flextended}{\newif\ifeqe@flextended + \eqe@flextendedfalse}{} +\@ifundefined{ifcont@nnot}{\newif\ifcont@nnot \cont@nnotfalse}{} +\@ifundefined{if@eqalignfilllinestoleft}{\newif\if@eqalignfilllinestoleft + \@eqalignfilllinestoleftfalse}{} +\newif\ifkeepdeclaredvspacing \keepdeclaredvspacingfalse +\newif\ifeq@nolink \eq@nolinkfalse +\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi} +\def\hidesymbol{h}\def\Hidesymbol{H} +\newif\iftherearesolutions \therearesolutionsfalse +\newif\ifIsRespBox \global\IsRespBoxfalse +\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue} +\newif\ifcqSA\cqSAfalse +\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse + \displayworkareatrue\ifvspacewithsolns\eq@nosolutionsfalse\else + \eq@nosolutionstrue\fi\eq@proofingfalse\answerkeyfalse} +\def\NoSpaceToWork{\let\eq@insertverticalspace\eq@NO} +\def\SpaceToWork{\let\eq@insertverticalspace\eq@YES} +\SpaceToWork +\long\def\ifNoSolutions#1#2{% + \ifeq@nosolutions\expandafter#1\else + \expandafter#2\fi +} +\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse +\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse +\def\turnOnRandomize{\eq@randomizeallChoicestrue} +\def\obeyLocalRandomize{\eq@randomizeallChoicesfalse} +\let\saveRandomSeed\relax +\let\inputRandomSeed\relax +\newcommand{\exsolafter}{\eq@exsolafterDefault} +\newcommand{\resetSolnAfterToDefault}{% + \def\exsolafter{\eq@exsolafterDefault}} +\newcommand{\exsolafterDefault}[1]{\def\eq@exsolafterDefault{#1}% + \def\exSolafterDefault{#1}\resetSolnAfterToDefault} +\exsolafterDefault{\textit{Solution}:} +\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}} +\newcommand{\adjDisplayBelow}{\vskip-\lastskip\vskip-\baselineskip} +\newcommand{\adjDisplayBelowPlus}{\adjDisplayBelow\recoverDisplayBelow} +\def\recoverDisplayBelow{\vskip\belowdisplayskip} +\newcommand\setDefShortQuizLabelName[1]% + {\def\eq@defaultShortQuizLabelName{#1}} +\setDefShortQuizLabelName{Quiz} +\ifsolutionsonly +\InputIfFileExists{\jobname_xdefs.cut}{% + \typeout{^^JExerquiz|Eqexam: Reading \jobname_xdefs.cut^^J}} + {\PackageWarningNoLine{exerquiz|eqexam}{% + \jobname_xdefs.cut not found.\MessageBreak + Recompile file under the vspacewithsolns\MessageBreak + option, then compile with the solutionsonly\MessageBreak + option}} +\else +\newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol +\newcommand{\writeToExSolns}[1]{% + \set@display@protect + \immediate\write\ex@solns{#1}% + \set@typeset@protect +} +\newwrite\eq@xrefdefns \immediate\openout\eq@xrefdefns\jobname_xdefs.cut +\fi +\newwrite\quiz@solns \immediate\openout \quiz@solns \jobname.qsl +\newcommand{\writeToQzSolns}[1]{% + \set@display@protect + \immediate\write\quiz@solns{#1}% + \set@typeset@protect +} +\def\eq@IWAuxOut#1{\immediate\write\@auxout{#1}} +\def\eq@IWDefs#1{\immediate\write\eq@xrefdefns{#1}} +\newcounter{eqexno} \setcounter{eqexno}{0} +\newcounter{@exno} \setcounter{@exno}{0} % running exno +\newcounter{quizno} \setcounter{quizno}{0} +\renewcommand\thequizno{\alph{quizno}} +\newcounter{eqpointvalue} \setcounter{eqpointvalue}{0} +\newlength\eq@tmplength +\newlength\eqtmplength +\newcounter{questionno} +\newcounter{eqquestionnoi} +\newcounter{eqquestionnoii} +\newcounter{eqquestionnoiii} +\newcount\@eqquestiondepth \@eqquestiondepth=0 +\newcounter{partno} +\newif\ifuseNumForParts\useNumForPartsfalse +\def\alphaParts{\def\partnoFmt{\alph}\useNumForPartsfalse}\alphaParts +\def\numberParts{\def\partnoFmt{\arabic}\useNumForPartstrue} +\renewcommand\thepartno{\partnoFmt{partno}} +\newtoks\eq@scratchtoks +\def\verbatimwrite{\@bsphack + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +\def\endverbatimwrite{\@esphack} +\providecommand\PBS[1]{\let\temp=\\#1\let\\=\temp} +\newcommand{\belowexskip}[1]{\setlength{\eq@tmplength}{#1}% + \edef\eq@exerskip{\noexpand\removelastparskip + \noexpand\vskip\the\eq@tmplength\relax\kern0pt}} +\let\eqexerskip\belowexskip +\belowexskip{\medskipamount} +\newcommand{\aboveexskip}[1]{\setlength{\eq@tmplength}{#1}% + \edef\eq@priorexskip{\noexpand\vskip\the\eq@tmplength\relax + \kern0pt}} +\let\priorexskip\aboveexskip +\aboveexskip{\medskipamount} +\let\eq@postexerciseHook\relax +\newcommand\belowexsolnskip{\protect\medskip} +\def\removelastparskip{\ifdim\parskip>0pt\vskip-\parskip\fi} +\let\marginparpriorhook\@empty % used to material before the exercise +\let\marginparafterhook\@empty % used to material after the exercise +\let\afterlabelhskip\space +\let\exersolnheadhook\@empty +\let\exer@solnheadhook\@empty +\newcommand{\eqexheader} +{% + \mbox{\color{\@nolinkcolor}\if\exerstar*\exlabelformatwp\else + \exlabelformat\fi}% +} +\def\eqexheader@wrapper{\hypertarget{qex.\the@exno}{\eqexheader}} +\newcommand{\partsformat}[1]{\def\eq@partsformat{#1}} +\partsformat{(\hfil\thepartno\hfil)} +\newcommand{\defaultpartsformat}{% + \partsformat{(\hfil\thepartno\hfil)}} +\let\exlisttabheaderpriorhook\@empty +\let\exlisttabheaderafterhook\@empty +\newcommand{\eqexlisttabheader} +{% + \exlisttabheaderpriorhook + \color{\@nolinkcolor}\eq@partsformat +} +\newcount\cq@Cnt +\def\cq@CutName{cq-\the\cq@Cnt.cut} +\let\cq@star\eq@NO +\newif\ifcqqs \cqqstrue +\newif\ifcqIsActive \cqIsActivefalse +\def\cqQS{\@ifstar{\cqQSV}{\cqQSA}} +\def\cqQSA#1#2{\ifcqqs#1\else#2\fi} +\@ifpackageloaded{web}{\@ifundefined{IF@AorBswitch}{% + \PackageWarningNoLine{A version of the web package + dated\MessageBreak 2016/11/03 or later is required + for \string\cqQS}}}{}% +\@ifundefined{webtempboxi}{\newbox\webtempboxi + \newbox\webtempboxii}{} +\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} +\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} +\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} +\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} +\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} +\providecommand\SETTEMPBOXi{\IF@AorBswitch\else + \afterassignment\TRUEACTIONia\fi + \setbox\webtempboxi=\hbox} +\providecommand\SETTEMPBOXii{\IF@AorBswitch + \afterassignment\FALSEACTIONiia\fi + \setbox\webtempboxii=\hbox} +\def\cqQSV{\let\IF@AorBswitch\ifcqqs + \IF@AorBswitch + \def\eq@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else + \def\eq@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi + \eq@next} +\def\eq@turnMessageOff{\let\save@message\message + \let\message\@gobble} +\def\eq@turnMessageOn{\let\message\save@message} +\def\eqCQDeclarations{\cqqsfalse\eq@turnMessageOff + \includecomment{sPage}\excludecomment{qPage}% + \eq@turnMessageOn} +\def\eqTopOfSolnPage{\cqSAfalse + \eqCQDeclarations} +\eq@turnMessageOff +\includecomment{qPage}\excludecomment{sPage} +\eq@turnMessageOn +\newenvironment{cq@CQ} +{% + \global\cqIsActivetrue + \global\advance\cq@Cnt1\relax + \immediate\openout\CommentStream=\cq@CutName + \let\verbatim@out\CommentStream + \verbatimwrite +}{% + \endverbatimwrite + \immediate\closeout\CommentStream + \ifx\cq@star\eq@YES + \xdef\cq@INPUTCUT{\noexpand\cqqstrue + \noexpand\input{\cq@CutName}\noexpand + \def@QuesToSoln}\else + \xdef\cq@INPUTCUT{\noexpand\cqqstrue + \noexpand\input{\cq@CutName}\noexpand + \p@ssQuesToSoln}\fi + \aftergroup\cq@INPUTCUT +} +\newenvironment{cqs@CQ}{\let\cq@star\eq@YES\cq@CQ}{\endcq@CQ} +\def\declCQQuesStr#1{\def\cqQStr{#1}} +\declCQQuesStr{Question} +\def\declCQSolStr#1{\def\cqSStr{#1}} +\declCQSolStr{Solution} +\newcommand\declCQPre[1]{\def\cq@Pre{#1}} +\declCQPre{\emph{\cqQStr}:\space} +\newcommand\declCQPost[1]{\def\cq@Post{#1}} +\declCQPost{\par\medskip\noindent\emph{\cqSStr}:\space\ignorespaces} +\def\cqFmtPasteQues#1{\cq@Pre\input{#1}\cq@Post} +\def\p@ssQuesToSoln{\ifeq@hidesolution\else + \global\terminexchangedtrue % dps cq + \writeToExSolns{\protect + \decleqterminex{\protect\cqFmtPasteQues{\cq@CutName}}}\fi} +\def\declCopyQues#1{\def\cqCopiedQues{#1}} +\def\def@QuesToSoln{\restoreNormalSolns + \global\terminexchangedfalse % dps cq + \ifeq@hidesolution\else\writeToExSolns{\protect + \declCopyQues{\protect\input{\cq@CutName}}}\fi} +\newcommand\restoreNormalSolns{% + \writeToExSolns{\protect\decleqterminex{\protect\eqterminexDEF}}} +\newcommand{\eq@CommonCmd}[1]{\def\eq@@CommonCmd{#1}#1} +\let\eq@@CommonCmd\@empty +\newcommand\gExCommonCmd[1]{\gdef\gEx@CommonCmd{\eq@CommonCmd{#1}}} +\let\gEx@CommonCmd\@empty +\let\endexerhook\@empty +\newenvironment{exercise} +{% + \let\cq\cq@CQ\let\endcq\endcq@CQ + \csarg\let{cq*}\cqs@CQ + \csarg\let{endcq*}\endcqs@CQ + \par\removelastskip\eq@priorexskip\noindent + \let\eqCommonCmd\eq@CommonCmd + \def\eq@argi{eqexno}%% use eqexno counter + \if\eq@exerstarEnv*\def\exerstar{*}\else\def\exerstar{x}\fi + \def\currhideopt{x}% + \@ifnextchar[{\exercise@}% + {\if\exerstar*\def\eq@next{\@exercise}\else + \def\eq@next{\exercise@@}\fi\eq@next}% +}{\eq@postexerciseHook\endexerhook\par + \global\eq@exerciseheadingtrue\removelastskip\eq@exerskip} +\def\exercise@[#1]{\edef\eq@arg{#1}% + \if\eq@arg h\def\currhideopt{h}% + \eq@hidesolutiontrue\eq@nolinktrue% + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse\fi + \def\eq@next{\@exercise}% h, no *, no counter + \else + \if\eq@arg H% + \edef\currhideopt{\Hidesymbol}% + \eq@hidesolutiontrue\eq@nolinktrue% + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse + \fi + \def\eq@next{\@exercise}% H, no *, no counter + \else + \def\currhideopt{x}% + \ifx\eq@arg\@empty\else\def\eq@argi{#1}\fi + \if\exerstar*\def\eq@next{\@exercise}\else + \def\eq@next{\exercise@@}\fi + \fi + \fi +\eq@next} +\def\exercise@@{\@ifstar{\def\exerstar{*}\@exercise}{\exercise@@@}} +\def\exercise@@@{\@ifnextchar[{\exercise@@@@}{\@exercise}} +\def\exercise@@@@[#1]{\edef\eq@arg{#1}% + \if\eq@arg h\def\currhideopt{h}% + \eq@hidesolutiontrue\eq@nolinktrue + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse\fi + \def\eq@next{\@exercise}% h, no *, no counter + \else + \if\eq@arg H\edef\currhideopt{\Hidesymbol}% + \eq@hidesolutiontrue\eq@nolinktrue% + \def\eq@next{\@exercise}% h, no *, no counter + \else + \def\currhideopt{x}% + \PackageWarning{exerquiz}{The option #1 is not recognized} + \let\eq@next\relax + \fi + \fi +\eq@next} +\newif\ifeq@exerciseheading \eq@exerciseheadingtrue +\let\prior@exerSolnHeaderHook\@empty +\newcommand\exerSolnHeader[3]{% + \prior@exerSolnHeaderHook + \ifeqforpaper\else\webnewpage\fi\markright{#1}%\par\noindent% + #3% + \solnhspace +} +\let\solnItemMngt\relax +\let\eqEXt\@gobbletwo +\let\endeqEXt\relax +\let\eqExtArg\@empty +\let\eqFilterArg\@empty +\let\eqExerSolnHeader\@empty +\let\solutionparshape\@empty +\def\eq@pslnaindnt{0pt} +\let\eq@setPrbSolnAftrIndnt\relax +\newcommand{\setPrbSolnAftrIndent}[1]{\ifdim#1=0pt + \def\eq@pslnaindnt{0pt}\let\eq@setPrbSolnAftrIndnt\relax\else + \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{% + \expandafter\noexpand\expandafter\parindent#1\noexpand\relax}\fi +} +\newif\if@restorejustify \@restorejustifyfalse +\newcommand\restoreJustifyOn{\@restorejustifytrue} +\newcommand\restoreJustifyOff{\@restorejustifyfalse} +\def\restorejustify{\if@restorejustify + \@rightskip\z@skip \rightskip\@rightskip + \leftskip\z@skip \let\\\@normalcr\fi} +\def\@exercise{% + \global\let\solutionparshape\@empty + \let\verbatim@out=\ex@solns + \if\eq@argi0\else\refstepcounter{\eq@argi}\fi\stepcounter{@exno}% + \if\exerstar*% if exercise with parts + \eq@nolinktrue + \else + \if\currhideopt H% + \else + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide % + \ifeq@hidesolution\else + \global\let\eqExerSolnHeader\eq@@writeexheader + \fi + \fi + \fi + \fi + \ifvmode\ifdim\lastskip>\z@ + \vskip-\lastskip + \fi\fi + \if\exerstar*% + \let\solution\solnexer@woparts + \let\endsolution\endsolnexer@woparts + \let\parts\exercise@parts + \let\endparts\endexercise@parts + \else + \let\solution\solnexer@woparts + \let\endsolution\endsolnexer@woparts + \let\parts\relax + \let\endparts\relax + \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter + \eq@nolinktrue\fi\fi + \fi + \eq@initializeContAnnot + \ifeq@exerciseheading + \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper + \afterlabelhskip\marginparafterhook\gEx@CommonCmd + \eq@setPrbSolnAftrIndnt\ignorespaces\fi +} +\newif\ifterminexchanged \terminexchangedfalse % dps cq +\newcommand\decleqterminex[1]{\def\eqterminex{#1}} +\def\eqterminexDEF{\relax\ignorespaces} +\decleqterminex{\eqterminexDEF} +\newif\ifmakeExSlLocal \makeExSlLocalfalse +\def\makeExSolnsLocalOn{\makeExSlLocaltrue} +\def\makeExSolnsLocalOff{\makeExSlLocalfalse} +\def\eqExerSolnHeaderSngl{% + \ifmakeExSlLocal\protect\begingroup^^J\fi + \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect + \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}% + {\exsllabelformat}\exer@solnheadhook + \exersolnheadhook\protect\eqterminex +} +\def\eq@@writeexheader{\set@display@protect + \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}% + \set@typeset@protect +} +\def\eqExerSolnHeaderList{% + \ifmakeExSlLocal\protect\begingroup^^J\fi + \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect + \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}% + {ex.\the@exno\thepartno}{\exsllabelformatwp}% + \exer@solnheadhook\exersolnheadhook\protect\eqterminex +} +\def\eq@@writeexheaderlist{\set@display@protect + \immediate\write\verbatim@out{\eqExerSolnHeaderList}% + \set@typeset@protect +} +\long\def\setsolnspace#1{\def\newsolnspace{#1}% + \let\solnspace\newsolnspace} +\newif\ifeq@ckSolnVspace \eq@ckSolnVspacetrue +\def\ckSolnOpt{\global\eq@ckSolnVspacetrue} +\def\noSolnOpt{\global\eq@ckSolnVspacefalse} +\let\solnhspace\space +\let\solnspace\space +\let\exsolnonceonlytophook\relax +\def\solnexer@woparts{% + \ifanswerkey\ifeqe@flextended\ifcont@nnot + \ifx\solutionparshape\@empty\else % dpsj8 + \pushEnvir + \everypar{}\if@eqalignfilllinestoleft\else + \parshape=1 \leadinIndent \linewidth\fi + \popEnvir + \fi\fi\fi\fi\def\bLeaveVspace{x}% = no vertical space added + \exsolnonceonlytophook % dps27 + \global\let\exsolnonceonlytophook\relax + \@ifundefined{KV@eqefillLines@bgonly}{} + {\ifKV@eqefillLines@bgonly\ifvmode\else + \par\leavevmode\strut\fi\fi + \ifKV@eqefillLines@outlineonly\leavevmode\strut\fi}% + \ifeq@ckSolnVspace + \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%] + {\solnexer@@woparts[\null]}}\else + \def\eq@next{\solnexer@@woparts[\null]}\fi + \eq@next +} +\let\eqPriorVspace\@gobble +\newif\if@eqlinedfiller \@eqlinedfillerfalse +\newcommand{\vspaceFiller}[1]{\vfill} +\newcommand{\vspaceFillerDefault}[1]{\vfill} +\def\eqWriteLine{\hfill} +\def\eq@linesXPgs{% + \begingroup\offinterlineskip\parskip0pt + \@tempcnta=0 + \@whilenum\@tempcnta<\soln@keys@nLines\relax\do + {\vskip0pt\penalty-50\vglue\wlVspace\eqWriteLine + \advance\@tempcnta1\relax}\par\endgroup +} +\let\leavevspace\relax % dpsj5 +\newcommand{\vspaceFmt}[1]{% + \ifx\solutionparshape\@empty\else + \advance\linewidth-\leadinIndentPrtSep\fi + \ifdim\sameVspace>0pt + \let\bLeaveVspace\@empty + \def\leavevspace{% + \ifx\eq@insertverticalspace\eq@YES\par\eq@quessolskip + \eqPriorVspace{#1}{\nobreak\noindent + \if@eqlinedfiller + \ifx\soln@keys@nLines\@empty + \def\eq@lines@next{\vspaceFiller{#1}}\else + \def\eq@lines@next{\eq@linesXPgs}\fi + \else + \def\eq@lines@next{\parbox[b][#1][t]{\linewidth} + {\vspaceFiller{#1}}}% + \fi\eq@lines@next}% + \fi + }\expandafter\leavevspace % dpsj6 + \fi +} +\define@key{soln@keys}{nLines}[]{\def\soln@keys@nLines{#1}} +\let\soln@keys@nLines\@empty +\def\eqKV@errx#1{\xdef\XKV@rm{\@tempa}} +\def\eqSolnForEqexam#1{% + \let\soln@keys@nLines\@empty + \setkeys*{soln@keys}{#1}% + \ifx\soln@keys@nLines\@empty + \ifx\minVspacet@bs\@empty\xdef\sameVspace{\XKV@rm}\else + \xdef\sameVspace{\minVspacet@bs}\fi + \else + \@tempdima\wlVspace + \@tempdima=\soln@keys@nLines\@tempdima + \xdef\sameVspace{\the\@tempdima}% + \ifx\XKV@rm\@empty\else + \if@equsedim\let\soln@keys@nLines\@empty + \xdef\sameVspace{\XKV@rm}\fi + \fi + \fi + \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi +} +\def\solnexer@@woparts[#1]{% + \ifcqIsActive\else\ifterminexchanged + \restoreNormalSolns\fi\fi % dps cq + \global\cqIsActivefalse + \def\eq@argi{#1}\def\eq@null{\null}% + \ifx\eq@argi\@empty\gdef\sameVspace{0pt}\else + \ifx\eq@argi\eq@null\gdef\sameVspace{0pt}\else + \@ifundefined{PointsOnLeft}{% + \let\eqKV@errx@SAVE\KV@errx + \let\KV@errx\eqKV@errx\let\XKV@rm\@empty + \edef\temp@exp{\noexpand\setkeys*{soln@keys}{#1}}\temp@exp + \let\KV@errx\eqKV@errx@SAVE + \ifx\soln@keys@nLines\@empty\else + \PackageInfo{exerquiz}{% + nLines key detected in solution environment,\MessageBreak + is not not recognized without eqexam,\MessageBreak + will remove it}% + \let\soln@keys@nLines\@empty\fi + \xdef\sameVspace{\XKV@rm}% + }{\eqSolnForEqexam{#1}}% + \fi\fi + \solnexer@@@woparts +} +\def\solnsafterSkip#1{\setlength{\@tempdima}{#1}% + \edef\solnsafterSkipAmt{\the\@tempdima}% + \def\solutionsafterSkip{\vskip\solnsafterSkipAmt\relax}} +\solnsafterSkip{\smallskipamount} +\def\@solnafterSkipOnce#1{\setlength{\@tempdima}{#1}% + \xdef\@solnafterSkipOnceAmt{\the\@tempdima}}% +\def\@@solnafterSkipOnce{\vskip\@solnafterSkipOnceAmt\relax %dpsj3 + \gdef\@solnafterSkipOnceAmt{0pt}} +\def\@solnafterSkipOnceAmt{0pt} +\def\quessolSkip#1{\setlength{\@tempdima}{#1}% + \edef\eq@quessolskip{\noexpand\vskip\the\@tempdima\relax}} +\def\eq@quessolskip{\vskip\smallskipamount} +\def\eqe@debugVertSkip#1{} +\def\eqe@showEndHere#1{#1} +\def\eqe@setStartSolns{% + \xdef\eq@startSoln{\the\pagetotal}% + \eqe@debugVertSkip{\marginpar{\smash{b[\sameVspace]}}}% +} +\let\eqSavedComment\comment +\let\eqSavedEndCommet\endcomment +\def\setTabulrSolnEnv{% + \@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}% + \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE + \leftmargin\leftmarginii \labelwidth\leftmarginii + \advance\labelwidth-\labelsep}% + \def\everyparShape{\everypar{\parshape \@ne 0pt \linewidth}}% + \reset@doendpe{\parshape \@ne 0pt \linewidth}% + \parshape \@ne 0pt \linewidth + \everyparShape +} +\newif\ifthereissolution +\let\priorexsolafterList\@empty +\let\priorexsolafterTab\@empty +\let\priorexsolafterSngl\@empty +\def\eq@Hid{H}\def\eq@hid{h} +\def\solutionafterExCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty + \let\eqSolnExCmds\relax\else + \def\eqSolnExCmds{#1}\fi} +\let\eqSolnExCmds\relax +\def\eq@b@ddCodeSpecialDef#1{#1}% dpsj4 +\let\eq@b@ddCodeSpecial\eq@b@ddCodeSpecialDef % dpsj4 +\def\solnexer@@@woparts{\ifeq@solutionsafter\else + \expandafter\begingroup\fi %dpsj10 + \global\thereissolutiontrue + \global\let\procsoln\relax % dpsj6 + \global\let\endprocsoln\relax % dpsj6 + \def\exerwparts@cols{0}% + \let\verbatim@out\ex@solns + \if\currhideopt\eq@Hid + \let\minVspacet@bs\@empty + \let\procsoln\eqSavedComment + \let\endprocsoln\eqSavedEndCommet + \def\eq@next{\procsoln}% + \else + \eq@ckglobalhide + \ifeq@hidesolution + \let\procsoln\eqSavedComment + \let\endprocsoln\eqSavedEndCommet + \else + \ifeq@solutionsafter\else + \ifx\eq@@CommonCmd\@empty\else + \set@display@protect + \immediate\write\verbatim@out{\eq@@CommonCmd}% + \set@typeset@protect + \fi + \fi + \let\procsoln\verbatimwrite + \let\endprocsoln\endverbatimwrite + \fi + \def\eq@next{% + \ifeq@solutionsafter + \let\procsoln\relax % dpsj6 + \let\endprocsoln\relax + \removelastskip\removelastparskip + \cqSAtrue\eqCQDeclarations + \declCopyQues{\input{\cq@CutName}}% + \ifx\exsolafter\@empty + \ifdim\sameVspace=0pt\eqe@setStartSolns + \else + \solutionsafterSkip + \@@solnafterSkipOnce % dpsj3 + \eqe@setStartSolns + \fi + \else\par\kern0pt + \solutionsafterSkip + \@@solnafterSkipOnce % dpsj3 + \noindent\strut\eqe@setStartSolns + \fi + \parskip\eqeques@parsep + \ifx\endparts\endexercise@parts@tabular + \eq@setPrbSolnAftrIndnt + \restorejustify + \fi + \ifx\endparts\endexercise@parts@tabular\expandafter + \priorexsolafterTab\else + \ifx\endparts\endexercise@parts@list\expandafter + \priorexsolafterList\else\expandafter + \priorexsolafterSngl\fi\fi + \exsolafter\space\ignorespaces + \solutionparshape + \else + \eqExerSolnHeader + \global\let\eqExerSolnHeader\@empty + \global\therearesolutionstrue\expandafter\procsoln + \fi + }% + \fi + \eq@b@ddCodeSpecial{\eq@next}% +}% dpsj4 +\let\endsolnexerhook\@empty +\let\pkg@endsolnexerhook\@empty +\let\endsolnexerhookaux\@empty +\def\eq@fititin#1{\noindent\unskip\nobreak\hfill\penalty100 + \hskip1em\hbox{}\nobreak\hfill#1}% +\let\eqfititin\eq@fititin +\newcommand\eqExerSolnTrailer{% + \protect\ReturnTo{page.\the\c@page}% + {\protect\mbox{\if\exerstar*\exrtnlabelformatwp\else + \exrtnlabelformat\fi}}% + \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J% + \ifmakeExSlLocal\protect\endgroup^^J\fi +} +\let\eq@e@ddCodeSpecialDef\relax % dpsj4 +\let\eq@e@ddCodeSpecial\eq@e@ddCodeSpecialDef % dpsj6 +\let\kdvsp@Restore\relax % dpsj20 +\def\endsolnexer@woparts{\endprocsoln\eq@e@ddCodeSpecial + \pkg@endsolnexerhook % djsj8 moved from the end of the macro + \ifeq@solutionsafter\else + \expandafter\endgroup\fi % from \begingroup at \solnexer@@@woparts + \global\let\exsolnonceonlytophook\relax + \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi % dpsj5 + \ifvspacewithsolns\vspaceFmt{\sameVspace}\else + \ifeq@nosolutions\ifeq@solutionsafter\else + \vspaceFmt{\sameVspace}\fi\fi\fi + \if\currhideopt H% + \ifkeepdeclaredvspacing\vskip\sameVspace\fi + \else + \ifeq@solutionsafter + \ifx\isitleadin\eq@YES\parshape=0 \fi % dpsj9 + \if\exerstar*% + \eq@fititin{\mbox{\exrtnlabelformatwp}}\else + \eq@fititin{\mbox{\exrtnlabelformat}}\fi + \ifx\istabularexer\eq@YES\unskip\kern0pt\else\par\fi % dpsj6 + \ifx\minVspacet@bs\@empty + \ifkeepdeclaredvspacing + \@tempdima\pagetotal + \advance\@tempdima-\eq@startSoln + \@tempdimb\sameVspace\relax + \ifdim\@tempdimb>1sp\relax + \advance\@tempdimb-\@tempdima + \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt + \let\eqe@showEndHere\@gobble + \edef\tmp@exp{\noexpand\marginpar{% + \noexpand\smash{e: adj \the\@tempdimb}}}% + \eqe@debugVertSkip{\tmp@exp}% + \fi + \fi + \fi + \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}% + \fi + \else + \eq@ckglobalhide + \ifeq@hidesolution\else + \endsolnexerhookaux + \let\verbatim@out\ex@solns + \set@display@protect + \immediate\write\verbatim@out{\eqExerSolnTrailer}% + \set@typeset@protect + \fi + \fi + \fi + \kdvsp@Restore % dpsj20 + \endsolnexerhook\penalty0\relax} +\let\eq@exerstarEnv\relax +\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise} +{\endexercise} +\def\exerwparts@cols{0} +\let\topofpartshook\relax +\let\@listiiredefined\eq@NO +\let\itsExerParts\eq@NO +\newif\if@tableadinitem\@tableadinitemfalse +\newcommand{\tableadin@external}{\PackageError{exerquiz/eqexam} + {The \string\tableadin\space command is designed\MessageBreak + for the problem* environment of eqexam}{Use \string\tableadin\space + in the problem* environment of eqexam.}% +} +\let\tableadin\tableadin@external +\newcommand{\eq@tableadinparts}{\item\relax + \PackageError{exerquiz/eqexam}{The \string\tableadin\space + command is not allowed in the\MessageBreak + parts environment}{Use \string\tableadin\space + in the problem* environment of eqexam.}% +} +\let\istabularexer\eq@NO +\def\exercise@parts{\let\rlspar\relax + \ifx\solutionparshape\@empty + \let\isitleadin\eq@NO + \if@tableadinitem\let\rlspar\@gobbletwo\fi + \else\let\isitleadin\eq@YES\fi + \rlspar\removelastskip\par + \if\isitleadin\eq@YES + \def\eqparts@topsep{0pt}% + \vskip\eqparts@itemsep\relax\fi + \topofpartshook + \let\itsExerParts\eq@YES + \global\let\@listiiredefined\eq@NO + \def\exerwparts@cols{0}\@ifnextchar[% + {% + \if@tableadinitem\else\removelastparskip\fi + \let\endparts\endexercise@parts@tabular\exercise@parts@tabular@}% + {\let\endparts\endexercise@parts@list\exercise@parts@list}} +\def\eq@extralabelsep{0pt} +\newcommand{\setPartsWidth}[1]{\def\parts@indent{\normalfont#1}% + \bgroup\settowidth{\eq@tmpdima}{\parts@indent}% + \xdef\widthOfParts{\the\eq@tmpdima}\egroup} +\setPartsWidth{(d)} +\def\eqe@prtsepPrb{\ } +\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}} +\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}} +\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}} +\eqequesparsep{0pt} +\let\prior@parts@hook\@empty +\let\post@parts@hook\@empty +\let\abovepartshook\@empty +\let\belowpartshook\@empty +\let\eqp@rtc@lcm@rk\relax +\let\eq@insertContAnnot\relax +\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk + \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse + \@ifnextchar[{\@ckhide}{\eq@item}} +\newcommand{\partsitemsep}[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@itemsep{\the\@tempdima}}} +\let\eqpartsitemsep\partsitemsep +\def\eqparts@itemsep{0pt} +\newcommand\partsparsep[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@parsep{\the\@tempdima}}} +\def\eqparts@parsep{0pt} +\newcommand\partstopsep[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@topsep{\the\@tempdima}}} +\def\eqparts@topsep{3pt} +\newcommand{\leadinitem@external}{\PackageError{exerquiz/eqexam} + {The \string\leadinitem\space command is designed to be\MessageBreak + the first item in the problem*\MessageBreak + environment above the parts environment} + {Use \string\leadinitem\space in the problem* environment.}% +} +\let\leadinitem\leadinitem@external +\let\itsforleadinitem\eq@NO +\newcommand{\eq@leadinitemparts}{\item\relax + \PackageError{exerquiz/eqexam}{The \string\leadinitem\space + command is not allowed in the\MessageBreak + parts environment} + {Use \string\leadinitem\space in the problem* environment.}% +} +\def\eq@handleOptArg[#1]{\def\eq@optArg{[#1]}\eq@handleOptArgi} +\def\eq@handleOptArgi{\expandafter + \eq@item@latex\eq@optArg\exlisttabheaderafterhook} +\newif\ifwithinparts +\let\ex@listtabheader@fterhook\@empty +\newenvironment{exercise@parts@list}{% + \settowidth{\eq@tmplength}{\parts@indent}% + \edef\widthOfParts{\the\eq@tmplength}% + \eq@initializeContAnnot\eq@nolinkfalse\prior@parts@hook + \abovepartshook\list{\normalfont + \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter + \eq@nolinktrue\fi\fi + \if\currhideopt H% + \else + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else + \ifeq@nosolutions + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide + \ifeq@hidesolution\eq@nolinktrue\else + \global\let\eqExerSolnHeader\eq@@writeexheaderlist + \fi + \fi + \fi + \fi + \makebox[\widthOfParts][r]{\eqexlisttabheader}% +}{% + \usecounter{partno}% + \if\isitleadin\eq@YES + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else + \setcounter{partno}{1}\fi\fi + \let\leadinitem\eq@leadinitemparts + \let\tableadin\eq@tableadinparts + \global\let\solutionparshape\@empty + \setlength{\topsep}{\eqparts@topsep}% + \setlength{\parskip}{0pt}% + \setlength{\partopsep}{0pt plus 1pt minus 1pt}% + \ifdim\eqeques@parsep=0pt + \setlength{\parsep}{\eqparts@parsep}% + \else + \setlength{\parsep}{\eqeques@parsep}% + \fi + \setlength{\itemsep}{\eqparts@itemsep-\parsep}% + \setlength{\itemindent}{0pt}% + \setlength{\listparindent}{\parindent}% + \settowidth{\labelsep}{\normalfont\eqe@prtsepPrb}% + \addtolength{\labelsep}{\eq@extralabelsep}% + \settowidth{\labelwidth}{\parts@indent}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \let\eq@item@latex\item + \def\eq@item{\@ifnextchar[{\eq@handleOptArg} + {\eq@item@latex\ex@listtabheader@fterhook + \exlisttabheaderafterhook}}% + \def\eqthisenv{parts}\withinpartstrue + \def\item{\ifx\@currenvir\eqthisenv + \def\eq@next{\eq@item@common}\else + \def\eq@next{\eq@item}\fi + \eq@next}% +}}{\endlist\global\let\leadinitem\leadinitem@external + \post@parts@hook\belowpartshook} +\def\eq@initializeContAnnot{\@ifundefined{eqequestions} + {\global\let\eqeCurrProb\relax} + {\xdef\eqeCurrProb{\theeqquestionnoi}}% + \xdef\eq@currProbStartPage{\arabic{page}}% +} +\define@key{tabp@rts}{nCols}{\def\exerwparts@cols{#1}} +\define@key{tabp@rts}{minVspace}{\def\minVspacet@bs{#1}} +\let\minVspacet@bs\@empty +\def\minVspacetabs#1{\def\minVspacet@bs{#1}} +\def\priorexsolafterTab{\ifkeepdeclaredvspacing + \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else + \priorexsolafterTab@cont\fi\fi\fi} +\def\priorexsolafterTab@cont{\let\exsolafter@save\exsolafter + \let\exsolafter\@empty + \makebox[0pt][r]{\parbox[t][\minVspacet@bs][t]{0pt} + {\strut\hfill\vfill\strut}}% + \minipage[t]{\linewidth}\exsolafter@save} +\def\pkg@endsolnexerhook{\ifkeepdeclaredvspacing + \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else + \endminipage\fi\fi\fi} +\def\exercise@parts@tabular@[#1]{% + \inittabMark + \let\eq@insertContAnnot\relax + \let\exerwparts@cols\@empty + \setkeys*{tabp@rts}{#1}\ifx\exerwparts@cols\@empty + \edef\exerwparts@cols{\XKV@rm}\fi + \ifx\minVspacet@bs\@empty\keepdeclaredvspacingfalse\fi + \let\istabularexer\eq@YES + \@tempcnta\exerwparts@cols\relax + \ifnum\@tempcnta<2\relax + \PackageError{exerquiz}{% + The number of columns for parts\MessageBreak + needs to be an integer greater than 1} + {Enter an integer, 2 or larger}\fi + \exercise@parts@tabular} +\newcount\eq@extabColCnt +\def\autotabOn{\let\eq@tabMarkChk\relax% + \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOn}} +\def\autotabOff{\let\eq@tabMarkChk\@gobble + \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOff}} +\autotabOff +\def\inittabMark{\global\eq@extabColCnt=0 } +\def\resettabMark{\global\eq@extabColCnt=1 } +\newcommand\autotabnewline[1][\eqparts@tabrowsep]{% + \ifnum\exerwparts@cols>0\relax + \ifx\eq@tabMarkChk\@gobble + \def\eq@atnext{\expandafter + \tabularnewline\expandafter[#1]}\else + \def\eq@atnext{\resettabMark\tabularnewline + \noalign{\expandafter\kern#1}}\fi + \expandafter\eq@atnext\fi} +\def\eq@tabMark{% + \ifnum\eq@extabColCnt=0\relax + \global\advance\eq@extabColCnt1\relax + \let\eq@next\relax + \else + \ifnum\eq@extabColCnt=1\relax + \let\eq@next\relax + \else + \ifnum\eq@extabColCnt>\exerwparts@cols + \let\eq@next\autotabnewline + \else\def\eq@next{&}\fi + \fi + \fi + \eq@next + \global\advance\eq@extabColCnt1\relax +} +\newcommand\partstabcolsep[1]{\def\eq@partstabcolsep{#1}} +\partstabcolsep{1.5pt} +\newcommand\partstabtopsep[1]{\def\eq@partstabtopsep{#1}} +\partstabtopsep{3pt} +\def\eq@vpartstabtopsep{\vskip\eq@partstabtopsep\relax} +\newcommand\partstabrowsep[1]{\setlength{\@tempdima}{#1}% + \edef\eqparts@tabrowsep{\the\@tempdima}} +\partstabrowsep{0pt} +\newenvironment{exercise@parts@tabular}{% + \setcounter{partno}{0}% + \def\tablrIndent{\hglue\prtsIndntSep\relax}% + \if\isitleadin\eq@YES + \if$\the\everypar$\let\tablrIndent\relax\fi + \setcounter{partno}{1}\fi + \let\leadinitem\eq@leadinitemparts + \let\tableadin\eq@tableadinparts + \global\let\solutionparshape\@empty + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \sbox{\eq@tmpbox}{\parts@indent}% + \let\eq@item@latex\item + \let\eq@item\item@part@tabular + \def\eqthisenv{parts}\withinpartstrue + \def\item{\ifx\@currenvir\eqthisenv + \def\eq@next{\eq@tabMarkChk\eq@tabMark\eq@item@common}\else + \def\eq@next{\eq@item@latex}\fi + \eq@next}\eq@nolinkfalse + \@ifundefined{@xtabularcr}{\let\@xarraycr\eq@xtabularcr} + {\let\@xtabularcr\eq@xtabularcr}% + \eq@tmpdima=\linewidth + \advance\eq@tmpdima-\prtsIndntSep\relax + \@tempcnta\exerwparts@cols\relax + \advance\@tempcnta-1\relax + \multiply\@tempcnta2\relax + \@tempdima\prtsIndntSep\relax + \divide\@tempdima 2\relax + \edef\halfWidth{\the\@tempdima}% + \advance\@tempdima\eq@partstabcolsep\relax + \tabcolsep\@tempdima + \multiply\@tempdima\@tempcnta + \advance\eq@tmpdima-\@tempdima + \divide\eq@tmpdima by\exerwparts@cols\relax %dpsj3 + \edef\widthOfPartsBox{\the\eq@tmpdima}% dpsj2 + \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi + \noindent\normalbaselines\kern0pt + \prior@parts@hook\abovepartshook + \tablrIndent\tabular[t]{@{}*{\exerwparts@cols}{>{\setTabulrSolnEnv + \parskip\eqeques@parsep\relax + \parindent0pt\relax\strut}p{\eq@tmpdima}}@{\hidewidth}}% +}{\endtabular\kern0pt + \@ifundefined{@listii@SAVE}{}{\global\let\@listii\@listii@SAVE + \global\let\@listii@SAVE\relax}% + \post@parts@hook\belowpartshook + \aftergroup\eqe@innermarkpts + \aftergroup\eq@vpartstabtopsep} +\let\eqe@innermarkpts\relax +\def\item@part@tabular{\refstepcounter{partno}% + \global\let\eqExerSolnHeader\@empty + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else\ifeq@nosolutions + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide + \ifeq@hidesolution\eq@nolinktrue\else + \gdef\eqExerSolnHeader{\eq@@writeexheaderlist}% + \fi\fi\fi + \if@restorejustify\restorejustify\else\PBS\raggedright\fi + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \sbox{\eq@tmpbox}{\parts@indent}% + \eq@tmpdima=\wd\eq@tmpbox + \addtolength\eq@tmplength{\eq@extralabelsep}% + \xdef\partshangamount{\the\eq@tmplength}% + \parshape \@ne 0pt \linewidth + \everypar{\parshape \@ne 0pt \linewidth}% + \eq@setPrbSolnAftrIndnt + \makebox[0pt][r]{\eqexlisttabheader\eqe@prtsepPrb}% + \ex@listtabheader@fterhook + \exlisttabheaderafterhook\ignorespaces +} +\def\@ckhide[#1]{\edef\eq@arg{#1}% + \def\currhideopt{x}% + \ifx\eq@arg\@empty\else + \if\eq@arg\eq@Hid + \eq@hidesolutiontrue\eq@nolinktrue% + \edef\currhideopt{\Hidesymbol}% + \else + \ifeq@globalshowsolutions\else + \if\eq@arg\eq@hid + \eq@hidesolutiontrue\eq@nolinktrue% + \def\currhideopt{h}% + \fi + \fi + \fi\fi + \eq@item +} +\def\tabControlOn{\@ifundefined{@xtabularcr} + {\let\save@@xtabularcr\@xarraycr} + {\let\save@@xtabularcr\@xtabularcr}} +\def\tabControlOff{\@ifundefined{@xtabularcr} + {\let\@xarraycr\save@@xtabularcr} + {\let\@xtabularcr\save@@xtabularcr}} +\AtBeginDocument{\tabControlOn} +\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr} + {\eqe@tab@parts@rowsep}}% +\def\eqe@tab@parts@rowsep{\save@@xtabularcr + \noalign{\expandafter\kern\eqparts@tabrowsep}}% +\def\includeexersolutions{\@ifstar + {\let\resetEXsolns\relax\includeexersolutionsi} + {\def\resetEXsolns{\global\let\include@solutions\relax}% + \includeexersolutionsi}% +} +\newcommand{\includeexersolutionsi}[1][]{% + \filterFor{#1}\includeexersolutionsii +} +\def\includeexersolutionsii{% + \include@solutions + \resetEXsolns + \let\eqFilterArg\@empty +} +\long\def\gobbleToEndEXt#1\endeqEXt{% + \ifeqforpaper\expandafter\@gobbletwo\fi} +\newcommand\filterFor[1]{\def\eqFilterArg{#1}} +\newcommand\inclEXtFilter[2]{\def\eqargii{#2}\ifx\eqargii\eqFilterArg + \else\expandafter\gobbleToEndEXt\fi} +\newcommand\useEXtFilter{\let\eqEXt\inclEXtFilter} +\let\eqsolutionshook\@empty +\let\eq@solutionshook\@empty +\let\priorexsectitle\@empty +\let\priorexslinput\@empty +\def\exerSolnsHeadnToc{\section*{\exsectitle}% + \addcontentsline{toc}{section}{% + \@ifundefined{web@latextoc}{}{% + \ifx\web@latextoc\eq@YES\else + \protect\numberline{}\fi}\exsectitle}} +\@ifpackageloaded{web}{\def\eq@normallheader{\lheader{\rightmark}}} + {\let\eq@normallheader\relax} +\@ifpackageloaded{web}{\def\eq@defaultlheader{\lheader{\aeb@setmarks}}} + {\let\eq@defaultlheader\relax} +\newif\ifExSolutionsSet \ExSolutionsSetfalse +\newcommand{\exerSolnInput} +{% + \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd%\ifvspacewithsolns + \eqe@IWO\@auxout{\string\expandafter\string\gdef + \string\csname\space eqExamQuesLastPage\string\endcsname + {\arabic{page}}}\fi} + \let\webnewpage\relax + \ifsolutionsonly\else\immediate\closeout\ex@solns\fi + \ifeq@nosolutions\else + \iftherearesolutions + \ifsolutionsonly\eq@solutionshook + \eqsolutionshook + \else + \newpage\eq@solutionshook + \eqsolutionshook\markright{}\eq@normallheader + \fi + \markright{\exsectitle}% + \ifx\webnewpage\relax + \def\webnewpage{\global\let\webnewpage\newpage}% + \fi + \priorexsectitle\exerSolnsHeadnToc\priorexslinput + \InputIfFileExists{\jobname.sol} + {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz} + {!!! Solutions to exercises not found}}% + \global\ExSolutionsSetfalse + \newpage\eq@defaultlheader + \fi + \fi +} +\def\include@solutions{% + \exerSolnInput +} +\newcommand{\prior@questionsHook}{} +\let\qMark@Hook\@empty +\let\aebtitleQuiz\@empty +\newcommand{\post@questionsHook}{} +\newcommand{\quesNumColor}[1]{\def\eq@quesNumCol{#1}} +\quesNumColor{blue} +\renewcommand{\theeqquestionnoi}{\arabic{eqquestionnoi}} +\newcommand{\labeleqquestionnoi}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoi.} +\renewcommand\theeqquestionnoii{(\alph{eqquestionnoii})} +\newcommand{\labeleqquestionnoii}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoii} +\renewcommand\theeqquestionnoiii{(\roman{eqquestionnoiii})} +\newcommand{\labeleqquestionnoiii}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoiii} +\define@key{props@ques}{labelwidthTo}% + [\normalsize\normalfont\bfseries00.]% + {\def\propQ@labelwidthTo{#1}} +\define@key{props@ques}{labelwidth}[]{\def\propQ@labelwidth{#1}} +\let\propQ@labelwidth\@empty +\define@key{props@ques}{topsep}[\the\topsep]{\edef\propQ@topsep{#1}} +\define@key{props@ques}{partopsep}[\the\partopsep]% + {\edef\propQ@partopsep{#1}} +\define@key{props@ques}{parsep}[\the\parsep]{\edef\propQ@parsep{#1}} +\define@key{props@ques}{itemsep}[\the\itemsep]{\edef\propQ@itemsep{#1}} +\define@key{props@ques}{labelsepTo}[\normalsize\normalfont\ ]% + {\def\propQ@labelsepTo{#1}} +\define@key{props@ques}{labelsep}[\@empty]{\def\propQ@labelsep{#1}} +\let\propQ@labelsep\@empty +\define@key{props@ques}{color}[blue]{\quesNumColor{#1}} +\setkeys{props@ques}{labelwidthTo,topsep,partopsep,parsep,% + itemsep,labelsepTo,color}% +\newenvironment{questions}[1][] +{% + \ifnum\@eqquestiondepth>\tw@\@toodeep\else + \advance\@eqquestiondepth\@ne\fi + \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% + \toks@=\expandafter\expandafter\expandafter{#1}\expandafter + \xdef\csname quesOpts\@quesctr\endcsname{\the\toks@}% + \edef\tempexp{\noexpand\setkeys{props@ques}{\the\toks@}}\tempexp + \list{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}% + \global\let\eqQT\eq@na% + {\@tempcnta=0 \let\@thispr@b\@empty + \@whilenum\@tempcnta<\@eqquestiondepth\do{\advance\@tempcnta\@ne + \ifx\@thispr@b\@empty\edef\@thispr@b{% + \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\else + \edef\@thispr@b{\@thispr@b% + \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\fi + }\xdef\@currentQues{\@thispr@b}}% + \makebox[\labelwidth][r]{\normalfont\@nameuse{label\@quesctr}}% + \xdef\eq@pageThisQ{\the\c@page}% + \post@questionsHook}{\usecounter{\@quesctr}% + \ifx\propQ@labelsep\@empty + \settowidth{\labelsep}{\propQ@labelsepTo}\else + \setlength{\labelsep}{\propQ@labelsep}\fi + \ifx\propQ@labelwidth\@empty + \settowidth{\labelwidth}% + {\propQ@labelwidthTo\hspace{\labelsep}}\else + \settowidth{\labelwidth}{\hspace{\propQ@labelwidth}% + \hspace{\labelsep}}\fi + \setlength{\topsep}{\propQ@topsep}% + \setlength{\partopsep}{\propQ@partopsep}% + \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi + \setlength{\parsep}{\propQ@parsep}% + \setlength{\itemsep}{\propQ@itemsep}% + \setlength{\itemindent}{0pt}% + \setlength{\leftmargin}{\labelwidth}% + }% +}{\endlist} +\def\pushquestions{\expandafter\xdef\csname save\@quesctr\endcsname + {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}} +\def\popquestions{% + \begin{questions}[\csname quesOpts\@quesctr\endcsname]% + \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}% + \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}} +\newcommand{\priorsqhook}[1]{\def\sq@priorhook{#1}} +\priorsqhook{} +\newcommand{\abovesqskip}[1]{\def\sq@aboveskip{#1}} +\abovesqskip{\par\medskip} +\long\def\endsqhook#1{\def\sq@afterhook{#1}} +\endsqhook{} +\def\@shortquizCnt{0} +\def\@sqGenBaseName{eqSqBn\@shortquizCnt} +\let\sqhspace\space +\let\ListOfSQuizNames\@empty +\newenvironment{shortquiz} +{% + \xdef\eq@pageThisQ{\the\c@page}% + \let\@currentQues\@empty + {\count0=\@shortquizCnt \advance\count0by1\relax + \xdef\@shortquizCnt{\the\count0}}% + \goodbreak\@ifstar{\sqForms\@shortquiz}% + {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else + \def\sqstar{}\sqLinks\fi\@shortquiz}% +}{\aeb@endshortquiz} +\newenvironment{shortquiz*} +{% + \xdef\eq@pageThisQ{\the\c@page}% + {\count0=\@shortquizCnt\advance\count0by1\relax + \xdef\@shortquizCnt{\the\count0 }}% + \sqForms\@shortquiz +}{\aeb@endshortquiz} +\def\@shortquiz{\@ifnextchar[% + {\@@shortquiz}{\@@shortquiz[\@sqGenBaseName]}} +\def\sq@setCLN#1{\ifx\aebTitleQuiz\@empty + \protected@edef\@currentlabelname{#1}\else + \protected@edef\@currentlabelname{\@currentlabelname}\fi +} +\let\isQZ=q \let\isSQZ=s +\let\eqQuizType\relax +\def\@@shortquiz[#1]{%\begingroup + \gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}% + \edef\tmp@Exp{\noexpand\g@addto@macro\noexpand + \ListOfSQuizNames{,#1}}\tmp@Exp + \global\let\eqQzQuesList\@empty + \let\eq@AddProbToQzQuesList\relax + \edef\@currentlabel{\@shortquizCnt}% + \edef\@currentHref{shortquiz.\@shortquizCnt}% + \global\let\eqQuizType\isSQZ\let\@qzsolndest\@empty + \if\sqstar*\relax + \let\@Ans\Ans@sq@f + \ifx\oField\@empty + \typeout{^^JExerquiz: Base field name required when using + shortquiz with '*' option}% + \PackageInfo{exerquiz}{Assuming link style^^J}% + \let\@Ans\Ans@sq@l + \fi + \else + \let\@Ans\Ans@sq@l + \fi + \setcounter{questionno}{0}% + \let\answers\answers@sq + \let\endanswers\endanswers@sq + \let\manswers\manswers@sq + \let\endmanswers\endmanswers@sq + \let\solution\solution@sq + \let\endsolution\endsolution@sq + \sq@aboveskip\sq@priorhook\ignorespaces +} +\newcommand\belowsqskip[1]{\def\aftershortquizskip{#1}} +\belowsqskip{\medskip} +\def\aeb@endshortquiz{\setcounter{quizno}{0}% + \sq@afterhook + \global\let\sqlabel\eq@sqlabel + \global\let\sqslrtnlabel\eq@sqslrtnlabel + \global\let\sqsllabel\eq@sqsllabel + \par\aftershortquizskip +} +\def\sqLinks{\def\sqstar{}}\sqLinks +\def\sqForms{\def\sqstar{*}} +\let\eq@tq@star\relax +\def\qzPriorSolutionAfterHook{\smallskip} +\let\sqPostHeaderHook\@empty +\let\qPostHeaderHook\@empty +\let\eq@sqPostHeaderHook\@empty +\let\eq@qPostHeaderHook\@empty +\let\prior@eqQt\@empty +\let\prior@eqSQt\@empty +\def\sqsolafterhspace{\space} +\newif\ifmakeQzSlLocal \makeQzSlLocalfalse +\def\makeQzSolnsLocalOn{\makeQzSlLocaltrue} +\def\makeQzSolnsLocalOff{\makeQzSlLocalfalse} +\def\solution@sq{\let\eq@next\relax + \ifx\@qzsolndest\@empty + \PackageWarning{exerquiz}% + {* Solutions unexpected here, will *\MessageBreak + * assume solutionsafter option *}% + \eq@solutionsaftertrue + \fi + \ifeq@solutionsafter + \par\qzPriorSolutionAfterHook\noindent + \if!\sqsolafter!\else + \sqsolafter\sqsolafterhspace\fi\ignorespaces + \else + \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns + \set@display@protect + \immediate\write\verbatim@out{% + \ifmakeQzSlLocal\protect\begingroup^^J\fi + \if\eqQuizType\isQZ + \ifx\prior@eqQt\@empty\else\prior@eqQt\fi + \protect\eqQt{\eqFilterArg}\else + \ifx\prior@eqSQt\@empty\else\prior@eqSQt\fi + \protect\eqSQt{\eqFilterArg}\fi + \protect\quizSolnHeader\if\eqQuizType\isQZ\ifx\allow@peek\eq@NO + [{\curr@quiz}{\currQuizStartPage}]\fi\fi + {\@qzsolndest}{\sqsllabel}\protect\eqterminex + \if\eqQuizType\isQZ\expandafter\eq@qPostHeaderHook + \expandafter\qPostHeaderHook\else + \expandafter\eq@sqPostHeaderHook + \expandafter\sqPostHeaderHook\fi}% + \set@typeset@protect + \expandafter\verbatimwrite\fi +} +\let\qzSolutionsAfterHook\@empty +\def\endsolution@sq +{% + \ifeq@solutionsafter + \eq@fititin{\mbox{\sqslrtnlabel}}\par\qzSolutionsAfterHook + \aftergroup\ignorespaces + \else + \endverbatimwrite + \ifx\@qzsolndest\@empty\else\set@display@protect + \immediate\write\verbatim@out{\eqSqSolnTrailer}% + \set@typeset@protect + \fi + \fi + \global\let\@qzsolndest\@empty +} +\def\fpAfterSolutionsSkip{\par\medskip} +\let\eqSqSolnTrailerHook\@empty +\let\eqQzSolnTrailerHook\@empty +\newcommand\eqSqSolnTrailer{% + \if\eqQuizType\isQZ + \eqQzSolnTrailerHook + \protect\ReturnTo{page.\eq@pageThisQ}% + {\protect\mbox{\sqslrtnlabel}}\string\endeqQt + \else + \eqSqSolnTrailerHook + \protect\ReturnTo{page.\eq@pageThisQ}% + {\protect\mbox{\sqslrtnlabel}}\string\endeqSQt% + \fi + \ifeqforpaper\protect\fpAfterSolutionsSkip\fi^^J% + \ifmakeQzSlLocal\protect\endgroup^^J\fi +} +\let\eqSQt\@gobble +\let\endeqSQt\relax +\let\eqQt\@gobble +\let\endeqQt\relax +\let\prior@quizSolnHeaderHook\@empty +\newcommand\quizSolnHeader[3][]{% + \prior@quizSolnHeaderHook + \ifeqforpaper\else\webnewpage\fi\noindent + #2% + \solnspace +} +\newif\iftherearequizsolutions \therearequizsolutionsfalse +\let\aeb@FLOverride\relax +\def\includequizsolutions{\@ifstar + {\let\resetQZtsolns\relax\includequizsolutionsi} + {\def\resetQZtsolns{\global\let\include@quizsolutions\relax}% + \includequizsolutionsi}% +} +\newcommand{\includequizsolutionsi}[1][]{% + \filterFor{#1}\includequizsolutionsii +} +\def\includequizsolutionsii{% + \include@quizsolutions + \resetQZtsolns + \let\eqFilterArg\@empty +} +\newcommand\useForms{\def\aeb@FLOverride{f}} +\newcommand\useLinks{\def\aeb@FLOverride{l}} +\newcommand\restoreFLTypeDefault{\global\let\aeb@FLOverride\relax} +\let\aeb@FLOverride\relax +\let\aebtitleQuiz\@empty +\let\aebTitleQuiz\@empty +\def\pushEnvir{\xdef\eq@currenvir{\@currenvir}\endgroup} +\def\popEnvir{\begingroup\@endpefalse + \edef\@currenvir{\eq@currenvir}% + \edef\@currenvline{\on@line}% +} +\def\answers@sq{\parindent0pt + \ifx\solutionparshape\@empty\else + \pushEnvir\par\noindent\expandafter\popEnvir\fi + \stepcounter{questionno}% + \if\sqstar*\relax + \if\aeb@FLOverride\eq@l + \let\@Ans\Ans@sq@l\else + \let\@Ans\Ans@sq@f\fi + \else + \if\aeb@FLOverride\eq@f + \let\@Ans\Ans@sq@f\else + \let\@Ans\Ans@sq@l\fi + \fi + \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}% + {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} +\def\manswers@sq{\parindent0pt + \@ifundefined{ifuserectforms}{} + {\if\aeb@FLOverride\eq@f\ifuserectforms + \useRectForMC\else\useCircForMC\fi\fi}% + \ifx\solutionparshape\@empty\else + \pushEnvir\par\noindent\expandafter\popEnvir\fi + \stepcounter{questionno}% + \if\sqstar*\relax + \if\aeb@FLOverride\eq@l + \let\@Ans\Ans@ck@sq@l\else + \let\@Ans\Ans@ck@sq@f\fi + \else + \if\aeb@FLOverride\eq@f + \let\@Ans\Ans@ck@sq@f\else + \let\@Ans\Ans@ck@sq@l\fi + \fi + \def\aeb@answerType{c}\@ifnextchar[{\answers@@sq}% + {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} +\let\sq@hwdest\@empty % hard-wired destination +\def\answers@@sq[#1]#2{% + \xdef\aeb@numCols{#2}% + \ifx\sq@hwdest\@empty + \xdef\@qzsolndest{#1}\else + \gdef\@qzsolndest{\sq@hwdest}\fi + \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list + \else + \gdef\eq@listType{0}\expandafter\answers@@sq@tabular + \fi{\aeb@numCols}% +} +\def\setMClabelsepDefault#1{\def\eq@hspanner@default{#1}} +\def\setMClabelsep#1{\def\eq@hspanner{#1}} +\setMClabelsep{\ }\setMClabelsepDefault{\ } +\def\resetMClabelsep{\expandafter\setMClabelsep\expandafter + {\eq@hspanner@default}} +\def\eq@lw@l{\eq@l@l\eq@hspanner} +\def\eq@l@l{\normalsize\normalfont(d)} +\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner} +\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{} +\let\eq@ansChoiceArray\@empty +\def\eq@recordAnsChoice{% + \ifx\eq@ansChoiceArray\@empty + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi + \tmp@exp +} +\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% + \item\relax\noindent\if\eq@listType\eq@One + \addtocounter{quizno}{-1}\@ifundefined{ifwithsoldoc} + {\refstepcounter{quizno}}{\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi + \ignorespaces} +\newenvironment{answers@sq@list}[1] +{% + \ifx\aeb@answerType\eq@r + \let\endanswers\endanswers@sq@list\else + \let\endmanswers\endanswers@sq@list\fi + \list{\strut\@Ans}{% + \if\sqstar*\relax + \settowidth{\labelwidth}{\eq@lw@f}\else + \settowidth{\labelwidth}{\eq@lw@l}\fi + \setlength{\topsep}{-\parskip+\aboveanswersSkip}% + \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% + \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}% + \setlength{\listparindent}{\parindent}% + \ifnum\exerwparts@cols>1\relax + \ifx\itsExerParts\eq@YES + \setlength{\leftmargin}{\labelwidth}\else + \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi + \else + \ifx\solutionparshape\@empty + \setlength{\leftmargin}{\labelwidth}\else + \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi\fi + \setlength{\labelsep}{0pt}% + \def\Ans{\Ans@list}% + }% +}% +{\endlist\setcounter{quizno}{0}\eq@answersEndHook} +\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% + \leavevmode\@Ans +} +\newcommand\sqtabsep[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty + \def\sq@tabsep{1.5pt}\else\def\sq@tabsep{#1}\fi} +\sqtabsep{1.5pt} +\def\sqTabPos#1{\def\sq@TabPos{[#1]}}\sqTabPos{} +\def\answers@@sq@tabular#1{% + \ifinner + \ifx\itsExerParts\eq@YES\par\removelastskip + \removelastparskip\vskip\aboveanswersSkip\fi + \else\par\removelastskip\removelastparskip + \vskip\aboveanswersSkip\fi + \noindent\ifnum\exerwparts@cols>1\relax\parshape=0\fi + \tabcolsep=0pt + \eq@tmpdima=\linewidth + \@tempcnta#1\relax + \advance\@tempcnta-1\relax + \multiply\@tempcnta by2 + \@tempdima\sq@tabsep\relax + \multiply\@tempdima\@tempcnta + \advance\eq@tmpdima-\@tempdima + \divide\eq@tmpdima by#1 + \def\Ans{\Ans@tabular}% + \tabcolsep\sq@tabsep\relax + \expandafter\tabular\sq@TabPos{@{}*{#1}{p{\eq@tmpdima}}@{}}}% +\let\eq@save@doendpe\@doendpe +\def\reset@doendpe#1{\global\eq@scratchtoks=\expandafter{#1}% + \gdef\@doendpe{\par\@endpetrue\global\let\@doendpe\eq@save@doendpe + \def\par{\@restorepar + \expandafter\everypar + \expandafter{\the\eq@scratchtoks}\par\@endpefalse}% + \everypar{{\setbox\z@\lastbox}% + \everypar{}\@endpefalse}\the\eq@scratchtoks + }% +} +\newcommand\answersEndHook[1]{\def\eq@answersEndHook{#1}} +\let\eq@answersEndHook\@empty +\def\endanswers@sq{\endtabular\setcounter{quizno}{0}% + \eq@answersEndHook\reset@doendpe{\the\everypar}% + \ifinner\else%\par + \removelastskip + \vspace{\aboveanswersSkip}\@endpetrue\fi +} +\def\endmanswers@sq{\endtabular\setcounter{quizno}{0}% + \eq@answersEndHook\reset@doendpe{\the\everypar}% + \ifinner\else%\par + \removelastskip + \vspace{\aboveanswersSkip}\@endpetrue\fi +} +\def\popiiictm{\special{CTM: pop pop pop}} +\def\aebChoiceAltFmt{\noexpand\ifaebshowgrayletters + \Alph{quizno}\noexpand\else\linkContentFormat\noexpand\fi} +\def\linkContentFormat{% + \if\probstar*\Alph{quizno}\else\alph{quizno}\fi} +\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% +\def\Ans@sq@l{% + \leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else + \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} + {\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi\PBS\raggedright + \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% + \eq@tmpdima=\wd\eq@tmpbox + \def\link@@Content{\linkContentWrapper}% + \hangindent=\eq@tmplength\hangafter=1\relax + \Ans@sq@l@driver +\eq@hspanner\ignorespaces} +\let\Ans@ck@sq@l\Ans@sq@l +\let\rbf@Opts\@empty +\def\Ans@sq@f{% + \if\eq@listType\eq@One\stepcounter{quizno}\else + \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} + {\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi\PBS\raggedright + \settowidth{\eq@tmplength}{\eq@lw@f}% + \eq@tmpdima=\wd\eq@tmpbox% + \hangindent=\eq@tmplength\hangafter=1\relax + \insertGrayLetters % 6.3d + \Ans@sq@f@driver +\eq@hspanner\ignorespaces} +\let\Ans@ck@sq@f\Ans@sq@f +\newskip\aboveanswersSkip +\setlength\aboveanswersSkip{3pt} +\providecommand\graylettersColor{gray} +\def\insertGrayLetters{\ifaebshowgrayletters + \rlap{\makebox[\RadioFieldSize]% + {\textcolor{\graylettersColor}{\Alph{quizno}}}}\else\relax\fi} +\newcount\eq@tabColCnt +\define@key{bchoice}{nCols}{\def\bChoiceNumCols{#1}} +\@for\eqi:=1,2,3,4,5,6,7,8,9,10 \do{\edef\temp@expand@def{% + \noexpand\define@key{bchoice}{\eqi}[\eqi]{% + \noexpand\def\noexpand\bChoiceNumCols{\eqi}}% + }\temp@expand@def +} +\def\bChoiceNumCols{\aeb@numCols} +\define@key{bchoice}{random}[true]{% + \csname if#1\endcsname\eq@randomizeChoicestrue + \else\eq@randomizeChoicesfalse\fi +} +\define@key{bchoice}{label}[]{\xdef\bChoiceLabel{#1}} +\def\bChoices{\@ifnextchar[{\@ansChoices}{\@ansChoices[\aeb@numCols]}} +\def\@ansChoices[#1]% +{% + \global\let\@tempholdSaveAns\@empty %4/5 + \global\let\@tempholdSaveChoice\@empty %4/5 + \global\let\bChoiceLabel\@empty %4/5 + \setkeys{bchoice}{#1}% + \global\eq@tabColCnt=0 + \ifnum\aeb@numCols=1 % list mode + \def\eq@next{\@layoutListAns}\else % tabular mode + \def\eq@next{\@layoutTabularAns{\bChoiceNumCols}}\fi + \eq@next +} +\let\eChoices\relax +\def\@layoutListAns{\@ifnextchar\Ans{\@getListAns}% + {\@lookforendansChoices{\@layoutListAns}}% +} +\newcommand{\eq@saveAns}[2][]{% + \let\eq@next\@@@SaveAnsGobbleAns + \ifx\bChoiceLabel\@empty\else + \def\eq@savedAnsOpt{#1}\def\eq@savedAnsZO{#2}% + \if\eq@savedAnsZO1 \let\eq@next\@@@SaveAns\fi + \fi\eq@next +} +\long\def\@@@SaveAns#1\eAns{% 4/5 + \g@addto@macro\@tempholdSaveAns{\\{\ignorespaces#1}}% + \addtocounter{quizno}{1}% + \edef\temp@expand{\noexpand\g@addto@macro\noexpand + \@tempholdSaveChoice{% + \noexpand\\{\ifx\sqstar\@empty\aebChoiceAltFmt\else + \ifaebshowgrayletters\Alph{quizno}\else + \linkContentFormat\fi\fi}}}\temp@expand + \addtocounter{quizno}{-1}% +} +\newif\ifoxfordcomma \oxfordcommatrue +\def\oxfordCommaOn{\oxfordcommatrue} +\def\oxfordCommaOff{\oxfordcommafalse} +\def\eq@insertComma{% + \ifx\eq@comma\@empty + \ifnum\@nameuse{NumAns\eq@namearg}>2\relax + \def\eq@comma{,}\fi + \else\ifx\eq@insertAnd\@empty\eq@comma\space + \else\ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}% + \ifoxfordcomma\eq@comma\fi\else\eq@comma\fi\space + \fi + \fi +} +\newcommand\eqAnd{and}\def\eq@insertAnd{% + \ifnum\@nameuse{NumAns\eq@namearg}<2\relax\else + \ifnum\@nameuse{NumAns\eq@namearg}>2\relax + \else\leavevmode\space\fi\eqAnd\space\fi} +\long\def\eq@displayAns#1{\advance\@tempcnta1\relax + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} +\def\eq@displayAlts#1{\advance\@tempcnta1 + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi + \savedAltFmt{#1}} +\def\eq@displayAltsAns#1{\advance\@tempcnta1\relax + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} +\newcommand{\savedAltFmt}[1]{(#1)} +\newcommand{\useSavedAns}{\bgroup\@ifstar{\useSavedAns@i} + {\let\eq@insertAnd\@empty\useSavedAns@i}} +\newcommand{\useSavedAns@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\let\label\@gobble + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAns\@nameuse{SavedAns#2}\else + \@nameuse{SavedAns#2-Idx#1}\fi + \egroup +} +\newcommand{\useSavedAlts}{\bgroup\@ifstar{\useSavedAlts@i} + {\let\eq@insertAnd\@empty\useSavedAlts@i}} +\newcommand{\useSavedAlts@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\@nameuse{caseFor#2}% + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAlts\@nameuse{SavedAlts#2}\else + \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}}\fi + \egroup +} +\newcommand{\useSavedAltsAns}{\bgroup\@ifstar{\useSavedAltsAns@i} + {\let\eq@insertAnd\@empty\useSavedAltsAns@i}} +\newcommand{\useSavedAltsAns@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\@nameuse{caseFor#2}\let\label\@gobble + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAltsAns\@nameuse{SavedAltsAns#2}\else + \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}} + \@nameuse{SavedAns#2-Idx#1}\fi + \egroup +} +\newcommand{\useSavedNumAns}[1]{\@nameuse{NumAns#1}} +\long\def\@@@SaveAnsGobbleAns#1\eAns{} % 4/5 +\long\def\@getListAns\Ans#1\eAns{%\@@par %start new paragraph + \eq@saveAns#1\eAns % 4/5 + \Ans#1\vspace{\@rowskip}% + \@layoutListAns +} +\long\def\@lookforendansChoices#1{% + \@ifnextchar\eChoices{\rowsep{\rowsep@default}% + \expandafter\@findendans\@gobble}{\expandafter#1\@gobble}% +} +\def\@layoutTabularAns#1{% + \let\eq@tabSep\@empty + \xdef\numShortCols{#1}% + \ifnum#1>\aeb@numCols \xdef\numShortCols{\aeb@numCols}\fi + \@@layoutTabularAns +} +\def\@@layoutTabularAns{% + \@ifnextchar\Ans{\@getTabAns}% + {\@lookforendansChoices{\@@layoutTabularAns}}% +} +\def\rowsep#1{\gdef\@rowsep{[#1]}\gdef\@rowskip{#1}}% +\rowsep{\rowsep@default} +\def\rowsepDefault#1{\def\rowsep@default{#1}} +\def\rowsep@default{0pt} +\long\def\@getTabAns\Ans#1\eAns{% + \eq@saveAns#1\eAns + \global\advance\eq@tabColCnt1 + \let\@save@tabSep=\eq@tabSep + \ifnum\eq@tabColCnt=\numShortCols + \global\eq@tabColCnt=0 + \xdef\eq@tabSep{\noexpand\\\noalign{\kern\@rowskip\relax}}% + \else + \gdef\eq@tabSep{&}% + \fi + \@ifnextchar\eChoices{\@save@tabSep\Ans#1\rowsep{\rowsep@default} + \expandafter\@findendans\@gobble}% + {\@save@tabSep\Ans#1\@@layoutTabularAns}% +} +\def\@findendans{\@ifnextchar\end{% 4/5 + \ifx\bChoiceLabel\@empty\else + \processLabeledAns\fi + }{\expandafter\@findendans\@gobble}}% +\def\defineEachAns#1{\advance\count0by1\relax + \@temptokena={#1}\csarg\xdef + {SavedAns\bChoiceLabel-Idx\the\count0}{\the\@temptokena}% + \ifsolutionsonly\else + {\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}}}\fi +} +\def\defineEachChoice#1{\advance\count0by1\relax + \@temptokena={#1}\csarg\xdef + {SavedAlts\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}\ifsolutionsonly\else + {\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAlts\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}}}\fi +} +\def\processLabeledAns{% + \bgroup + \let\label\@gobble +\if\aeb@FLOverride\eq@l + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\else + \ifaebshowgrayletters + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOn}\else + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\fi +\fi + \toks@=\expandafter{\@tempholdSaveAns}\csarg + \xdef{SavedAns\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAns\bChoiceLabel}{\the\toks@}}}\fi + \count0=0\relax\let\\\defineEachAns\the\toks@ + \xdef\@currNCntAns{\the\count0 }\csarg + \xdef{NumAns\bChoiceLabel}{\@currNCntAns}% + \ifsolutionsonly\else{\eq@IWDefs{\string + \csarg\string\gdef{NumAns\bChoiceLabel}{\the\count0 }}}\fi + \toks@=\expandafter{\@tempholdSaveChoice}\csarg + \xdef{SavedAlts\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAlts\bChoiceLabel}{\the\toks@}}}\fi + \count0=0\relax\let\\\defineEachChoice\the\toks@ + \count0=1\relax\toks@={}%{\ignorespaces\@gobble}% + \loop + \edef\temp@exp{\the\toks@\noexpand\\{% + \noexpand\useSavedAlts[\the\count0]{\bChoiceLabel} + \noexpand\useSavedAns[\the\count0]{\bChoiceLabel}}}% + \toks@=\expandafter{\temp@exp}% + \ifnum\count0<\@currNCntAns + \advance\count0by1 + \repeat + \csarg\xdef{SavedAltsAns\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAltsAns\bChoiceLabel}{\the\toks@}}}\fi + \egroup +} +\def\graylettersOn{\aebshowgrayletterstrue} +\def\graylettersOff{\aebshowgraylettersfalse} +\def\aeb@exiii{\expandafter\expandafter\expandafter} +\def\REF{\@ifstar{\let\isREFstar\eq@One\aeb@REFstar} + {\let\isREFstar\eq@Zero\aeb@REF}} +\def\aeb@REFstar#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} + {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% + \else\ref*{#1}\fi}% +} +\def\aeb@REF#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} + {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% + \else\ref{#1}\fi}% +} +\def\aeb@buildUpperCaseRef#1{% + \xdef\tmp@expand{\aeb@exiii\@firstoftwo\csname r@#1\endcsname}% + \xdef\tmp@expand{\uppercase{\tmp@expand}}\tmp@expand +} +\endinput +%% +%% End of file `eqexam.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqfin.def b/texmf-dist/tex/latex/acrotex/eqfin.def index 9dc6a740..c05ff709 100644 --- a/texmf-dist/tex/latex/acrotex/eqfin.def +++ b/texmf-dist/tex/latex/acrotex/eqfin.def @@ -1,79 +1,79 @@ -%% -%% This is file `eqfin.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqfin') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqfin.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqfin.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Paivi Porras %% -%% e-mail address: paivi.porras@lut.fi %% -%% Language: Finnish %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{Harjoitus} -\renewcommand\exlabelsol{Harjoitus} - -\renewcommand\exsectitle{Ratkaisut} -\renewcommand\exsecrunhead{Ratkaisu \exlabelsol } - -\renewcommand{\eq@exsolafterDefault}{\textit{Ratkaisu}:} - -\renewcommand\eq@sqslsectitle{Vastaukset testikysymyksiin} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Vastaukset testikysymyksiin} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{Vastaus testikysymykseen:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Ratkaisu}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Testikysymys}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Lopeta testi} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Oikein!"} %muokattu -\renewcommand\eqsqwgmsg{"V\string\344\string\344rin!"} %m - -\renewcommand\eq@bqlabel{Aloita testi} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabelISO} - -\renewcommand\eq@eqlabel{Lopeta testi} -\renewcommand\eqlabel{\eq@eqlabel} - -\renewcommand\eq@Score{Pisteet:}\renewcommand\eq@OutOf{/} -\renewcommand\eqInitQuizMsg{%m - "Testi on aloitettava painamalla "+msg+"."} -\renewcommand\eqMadeChoice{%m - "Olet jo kerran valinnut. - Valintasi oli ("+Responses[probno]+")." -+" Haluatko vaihtaa?"} -\AtEndOfPackage{% -\renewcommand\eq@local@CA{Oikein} -\renewcommand\eq@local@RC{Omat vastaukset!} -\renewcommand\eq@local@AC{Ole hyv\string\344!}} -\endinput -%% -%% End of file `eqfin.def'. +%% +%% This is file `eqfin.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqfin') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqfin.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqfin.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Paivi Porras %% +%% e-mail address: paivi.porras@lut.fi %% +%% Language: Finnish %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{Harjoitus} +\renewcommand\exlabelsol{Harjoitus} + +\renewcommand\exsectitle{Ratkaisut} +\renewcommand\exsecrunhead{Ratkaisu \exlabelsol } + +\renewcommand{\eq@exsolafterDefault}{\textit{Ratkaisu}:} + +\renewcommand\eq@sqslsectitle{Vastaukset testikysymyksiin} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Vastaukset testikysymyksiin} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{Vastaus testikysymykseen:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Ratkaisu}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Testikysymys}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Lopeta testi} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Oikein!"} %muokattu +\renewcommand\eqsqwgmsg{"V\string\344\string\344rin!"} %m + +\renewcommand\eq@bqlabel{Aloita testi} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabelISO} + +\renewcommand\eq@eqlabel{Lopeta testi} +\renewcommand\eqlabel{\eq@eqlabel} + +\renewcommand\eq@Score{Pisteet:}\renewcommand\eq@OutOf{/} +\renewcommand\eqInitQuizMsg{%m + "Testi on aloitettava painamalla "+msg+"."} +\renewcommand\eqMadeChoice{%m + "Olet jo kerran valinnut. + Valintasi oli ("+Responses[probno]+")." ++" Haluatko vaihtaa?"} +\AtEndOfPackage{% +\renewcommand\eq@local@CA{Oikein} +\renewcommand\eq@local@RC{Omat vastaukset!} +\renewcommand\eq@local@AC{Ole hyv\string\344!}} +\endinput +%% +%% End of file `eqfin.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqfr.def b/texmf-dist/tex/latex/acrotex/eqfr.def index 701f798e..ef3f5a46 100644 --- a/texmf-dist/tex/latex/acrotex/eqfr.def +++ b/texmf-dist/tex/latex/acrotex/eqfr.def @@ -1,76 +1,76 @@ -%% -%% This is file `eqfr.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqfr') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqfr.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%%%%% eqfr.def %%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Jean-Michel SARLAT %% -%% Language: French %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{Exercice} -\renewcommand\exlabelsol{\exlabel} - -\renewcommand{\eq@exsolafterDefault}{\textit{Solution} :} - -\renewcommand\exsectitle{Solutions des \exlabelsol s} -\renewcommand\exsecrunhead{\exsectitle} - -\renewcommand\eq@sqslsectitle{Les r\'{e}ponses aux questionnaires} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Les r\'{e}ponses aux questionnaires} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \protect\textbf{R\protect\'{e}ponse :}} -\renewcommand\sqsllabel{\eq@sqsllabel}% User access - -\renewcommand\sqsolafter{\textit{Solution} :} - -\renewcommand\eq@sqlabel{\textcolor{red}{Question.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Retour au questionnaire.} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Exact !"} -\renewcommand\eqsqwgmsg{"Faux !"} - -\renewcommand\eq@bqlabel{D\'ebut} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{D\string\351but} -\renewcommand\bqlabelISO{\eq@bqlabelISO} - -\renewcommand\eq@eqlabel{Fin} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Score :}\renewcommand\eq@OutOf{sur} -\renewcommand\eqInitQuizMsg{% - "Vous devez initialiser le questionnaire ! Clicker sur "+msg+"."} -\renewcommand\eqMadeChoice{ - "Vous avez d\string\\351j\string\\340 fait un choix," - + " ce choix est ("+Responses[probno]+")." - + " Souhaitez vous le modifier ?"} -\renewcommand\eq@local@CA{% - R\texorpdfstring{\'}{\string\351}ponses} -\renewcommand\eq@local@RC{Correctes} -\renewcommand\eq@local@AC{SVP !} -\endinput -%% -%% End of file `eqfr.def'. +%% +%% This is file `eqfr.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqfr') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqfr.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%%%%% eqfr.def %%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Jean-Michel SARLAT %% +%% Language: French %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{Exercice} +\renewcommand\exlabelsol{\exlabel} + +\renewcommand{\eq@exsolafterDefault}{\textit{Solution} :} + +\renewcommand\exsectitle{Solutions des \exlabelsol s} +\renewcommand\exsecrunhead{\exsectitle} + +\renewcommand\eq@sqslsectitle{Les r\'{e}ponses aux questionnaires} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Les r\'{e}ponses aux questionnaires} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \protect\textbf{R\protect\'{e}ponse :}} +\renewcommand\sqsllabel{\eq@sqsllabel}% User access + +\renewcommand\sqsolafter{\textit{Solution} :} + +\renewcommand\eq@sqlabel{\textcolor{red}{Question.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Retour au questionnaire.} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Exact !"} +\renewcommand\eqsqwgmsg{"Faux !"} + +\renewcommand\eq@bqlabel{D\'ebut} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{D\string\351but} +\renewcommand\bqlabelISO{\eq@bqlabelISO} + +\renewcommand\eq@eqlabel{Fin} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Score :}\renewcommand\eq@OutOf{sur} +\renewcommand\eqInitQuizMsg{% + "Vous devez initialiser le questionnaire ! Clicker sur "+msg+"."} +\renewcommand\eqMadeChoice{ + "Vous avez d\string\\351j\string\\340 fait un choix," + + " ce choix est ("+Responses[probno]+")." + + " Souhaitez vous le modifier ?"} +\renewcommand\eq@local@CA{% + R\texorpdfstring{\'}{\string\351}ponses} +\renewcommand\eq@local@RC{Correctes} +\renewcommand\eq@local@AC{SVP !} +\endinput +%% +%% End of file `eqfr.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqit.def b/texmf-dist/tex/latex/acrotex/eqit.def index 5fda30b2..65cf7e31 100644 --- a/texmf-dist/tex/latex/acrotex/eqit.def +++ b/texmf-dist/tex/latex/acrotex/eqit.def @@ -1,64 +1,64 @@ -%% -%% This is file `eqit.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqit') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqit.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqit.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: PierLuigi Zezza %% -%% e-mail address: pzezza@cce.unifi.it %% -%% Language: Italian %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{Esercizio} -\renewcommand\exlabelsol{\exlabel} -\renewcommand\exsectitle{Soluzioni degli Esercizi } -\renewcommand\exsecrunhead{\exsectitle} -\renewcommand{\eq@exsolafterDefault}{\textit{Soluzione}:} -\renewcommand\eq@sqslsectitle{Soluzioni dei Quiz} -\renewcommand\sqslsectitle{\eq@sqslsectitle} -\renewcommand\eq@sqslsecrunhead{Soluzioni dei Quiz} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} -\renewcommand\eq@sqsllabel{\string\textbf{Soluzione del Quiz:}} -\renewcommand\sqsllabel{\eq@sqsllabel} -\renewcommand\sqsolafter{\textit{Soluzione}:} -\renewcommand\eq@sqlabel{\textcolor{red}{Quiz.}} -\renewcommand\sqlabel{\eq@sqlabel} -\renewcommand\eq@sqslrtnlabel{Fine Quiz} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} -\renewcommand\eqsqrtmsg{"Giusto!"} -\renewcommand\eqsqwgmsg{"Sbagliato!"} -\renewcommand\eq@bqlabel{Inizio Test} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} -\renewcommand\eq@eqlabel{Fine Test} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Punteggio:}\renewcommand\eq@OutOf{su} -\renewcommand\eqInitQuizMsg{"Dovete inizializzare il Quiz! - Click su "+msg+"."} -\renewcommand\eqMadeChoice{% - "Avete gi\string\\340 fatto una scelta. - La vostra scelta era ("+Responses[probno]+"). - Volete cambiarla ?"} -\renewcommand\eq@local@CA{Correggere} -\renewcommand\eq@local@RC{Le mie risposte!} -\renewcommand\eq@local@AC{Per favore!} -\endinput -%% -%% End of file `eqit.def'. +%% +%% This is file `eqit.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqit') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqit.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqit.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: PierLuigi Zezza %% +%% e-mail address: pzezza@cce.unifi.it %% +%% Language: Italian %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{Esercizio} +\renewcommand\exlabelsol{\exlabel} +\renewcommand\exsectitle{Soluzioni degli Esercizi } +\renewcommand\exsecrunhead{\exsectitle} +\renewcommand{\eq@exsolafterDefault}{\textit{Soluzione}:} +\renewcommand\eq@sqslsectitle{Soluzioni dei Quiz} +\renewcommand\sqslsectitle{\eq@sqslsectitle} +\renewcommand\eq@sqslsecrunhead{Soluzioni dei Quiz} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} +\renewcommand\eq@sqsllabel{\string\textbf{Soluzione del Quiz:}} +\renewcommand\sqsllabel{\eq@sqsllabel} +\renewcommand\sqsolafter{\textit{Soluzione}:} +\renewcommand\eq@sqlabel{\textcolor{red}{Quiz.}} +\renewcommand\sqlabel{\eq@sqlabel} +\renewcommand\eq@sqslrtnlabel{Fine Quiz} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} +\renewcommand\eqsqrtmsg{"Giusto!"} +\renewcommand\eqsqwgmsg{"Sbagliato!"} +\renewcommand\eq@bqlabel{Inizio Test} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} +\renewcommand\eq@eqlabel{Fine Test} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Punteggio:}\renewcommand\eq@OutOf{su} +\renewcommand\eqInitQuizMsg{"Dovete inizializzare il Quiz! + Click su "+msg+"."} +\renewcommand\eqMadeChoice{% + "Avete gi\string\\340 fatto una scelta. + La vostra scelta era ("+Responses[probno]+"). + Volete cambiarla ?"} +\renewcommand\eq@local@CA{Correggere} +\renewcommand\eq@local@RC{Le mie risposte!} +\renewcommand\eq@local@AC{Per favore!} +\endinput +%% +%% End of file `eqit.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqnl.def b/texmf-dist/tex/latex/acrotex/eqnl.def index 6cd37a7c..ece9db37 100644 --- a/texmf-dist/tex/latex/acrotex/eqnl.def +++ b/texmf-dist/tex/latex/acrotex/eqnl.def @@ -1,80 +1,80 @@ -%% -%% This is file `eqnl.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqnl') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqnl.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqnl.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Henny Wilbrink %% -%% e-mail address: wsdwhw@win.tue.nl %% -%% Language: Dutch %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{Opgave} -\renewcommand\exlabelsol{\exlabel} - -\renewcommand\exsectitle{Oplossingen van de Opgaven} -\renewcommand\exsecrunhead{\exsectitle} - -\renewcommand{\eq@exsolafterDefault}{\textit{Oplossing}:} - -\renewcommand\eq@sqslsectitle{Oplossingen van de Toetsen} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Oplossingen van de Toetsen} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand{\eq@exsolafterDefault}{\textit{Oplossing}:} - -\renewcommand\eq@sqsllabel{\string\textbf{Oplossing van Toets:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Oplossing}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Toets.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Terug naar Toets} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Goed!"} -\renewcommand\eqsqwgmsg{"Fout!"} - -\renewcommand\eq@bqlabel{Begin Toets} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Einde Toets} -\renewcommand\eqlabel{\eq@eqlabel} - -\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{van de} - -\renewcommand\eqInitQuizMsg{% - "U moet de Toets initialiseren! Klik op "+msg+"."} -\renewcommand\eqMadeChoice{% - "U hebt al een keuze gemaakt. - Uw keuze was ("+Responses[probno]+"). - Wil u dit veranderen?"} -\renewcommand\eq@local@CA{Corrigeer} -\renewcommand\eq@local@RC{Mijn Antwoorden!} -\renewcommand\eq@local@AC{AUB!} -\endinput -%% -%% End of file `eqnl.def'. +%% +%% This is file `eqnl.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqnl') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqnl.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqnl.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Henny Wilbrink %% +%% e-mail address: wsdwhw@win.tue.nl %% +%% Language: Dutch %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{Opgave} +\renewcommand\exlabelsol{\exlabel} + +\renewcommand\exsectitle{Oplossingen van de Opgaven} +\renewcommand\exsecrunhead{\exsectitle} + +\renewcommand{\eq@exsolafterDefault}{\textit{Oplossing}:} + +\renewcommand\eq@sqslsectitle{Oplossingen van de Toetsen} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Oplossingen van de Toetsen} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand{\eq@exsolafterDefault}{\textit{Oplossing}:} + +\renewcommand\eq@sqsllabel{\string\textbf{Oplossing van Toets:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Oplossing}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Toets.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Terug naar Toets} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Goed!"} +\renewcommand\eqsqwgmsg{"Fout!"} + +\renewcommand\eq@bqlabel{Begin Toets} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Einde Toets} +\renewcommand\eqlabel{\eq@eqlabel} + +\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{van de} + +\renewcommand\eqInitQuizMsg{% + "U moet de Toets initialiseren! Klik op "+msg+"."} +\renewcommand\eqMadeChoice{% + "U hebt al een keuze gemaakt. + Uw keuze was ("+Responses[probno]+"). + Wil u dit veranderen?"} +\renewcommand\eq@local@CA{Corrigeer} +\renewcommand\eq@local@RC{Mijn Antwoorden!} +\renewcommand\eq@local@AC{AUB!} +\endinput +%% +%% End of file `eqnl.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqno.def b/texmf-dist/tex/latex/acrotex/eqno.def index 1f29f357..fee78977 100644 --- a/texmf-dist/tex/latex/acrotex/eqno.def +++ b/texmf-dist/tex/latex/acrotex/eqno.def @@ -1,81 +1,81 @@ -%% -%% This is file `eqno.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqno') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqno.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqno.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Hans Fredrik Nordhaug %% -%% e-mail address: hansfn@mi.uib.no %% -%% Language: Norwegian %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{{\O}velse} -\renewcommand\exlabelsol{{\protect\O}velse} - -\renewcommand\exsectitle{L{\o}sning p{\aa} {\o}velsene} -\renewcommand\exsecrunhead{L{\protect\o}sning p{\protect\aa} - {\protect\o}velsene} - -\renewcommand{\eq@exsolafterDefault}{\textit{L{\o}sning}:} - -\renewcommand\eq@sqslsectitle{L{\o}sning p{\aa} oppgavene} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{L{\o}sning p{\aa} oppgavene} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \protect\textbf{L{\protect\o}sning p{\protect\aa} oppgave:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{L{\o}sning}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Oppgave}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Slutt} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Rett!"} -\renewcommand\eqsqwgmsg{"Feil!"} - -\renewcommand\eq@bqlabel{Start oppgaver} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Slutt} -\renewcommand\eqlabel{\eq@eqlabel} - -\renewcommand\eqScore{Poeng:}\renewcommand\eqOutOf{av} -\renewcommand\eqInitQuizMsg{"Du m\string\\345 initialisere testen!" -+" Klikk p\string\\345 "+msg+"."} -\renewcommand\eqMadeChoice{% - "Du har allerede gjort et valg. - Valget var ("+Responses[probno]+"). - Vil du endre det?"} -\renewcommand\eq@local@CA{Rett} -\renewcommand\eq@local@RC{mine svar!} -\renewcommand\eq@local@AC{% - V\texorpdfstring{\ae}{\string\346}r - s\texorpdfstring{\r}{\string\345}snill!} -\endinput -%% -%% End of file `eqno.def'. +%% +%% This is file `eqno.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqno') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqno.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqno.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Hans Fredrik Nordhaug %% +%% e-mail address: hansfn@mi.uib.no %% +%% Language: Norwegian %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{{\O}velse} +\renewcommand\exlabelsol{{\protect\O}velse} + +\renewcommand\exsectitle{L{\o}sning p{\aa} {\o}velsene} +\renewcommand\exsecrunhead{L{\protect\o}sning p{\protect\aa} + {\protect\o}velsene} + +\renewcommand{\eq@exsolafterDefault}{\textit{L{\o}sning}:} + +\renewcommand\eq@sqslsectitle{L{\o}sning p{\aa} oppgavene} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{L{\o}sning p{\aa} oppgavene} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \protect\textbf{L{\protect\o}sning p{\protect\aa} oppgave:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{L{\o}sning}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Oppgave}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Slutt} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Rett!"} +\renewcommand\eqsqwgmsg{"Feil!"} + +\renewcommand\eq@bqlabel{Start oppgaver} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Slutt} +\renewcommand\eqlabel{\eq@eqlabel} + +\renewcommand\eqScore{Poeng:}\renewcommand\eqOutOf{av} +\renewcommand\eqInitQuizMsg{"Du m\string\\345 initialisere testen!" ++" Klikk p\string\\345 "+msg+"."} +\renewcommand\eqMadeChoice{% + "Du har allerede gjort et valg. + Valget var ("+Responses[probno]+"). + Vil du endre det?"} +\renewcommand\eq@local@CA{Rett} +\renewcommand\eq@local@RC{mine svar!} +\renewcommand\eq@local@AC{% + V\texorpdfstring{\ae}{\string\346}r + s\texorpdfstring{\r}{\string\345}snill!} +\endinput +%% +%% End of file `eqno.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqpo.def b/texmf-dist/tex/latex/acrotex/eqpo.def index dc495ea4..b9b52bce 100644 --- a/texmf-dist/tex/latex/acrotex/eqpo.def +++ b/texmf-dist/tex/latex/acrotex/eqpo.def @@ -1,90 +1,90 @@ -%% -%% This is file `eqpo.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqpo') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqpo.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqpo.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Jerzy Mycielski %% -%% e-mail address: jmyc@poczta.onet.pl %% -%% Language: Polish %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% The polish accented characters included in pdfendconding is -%% lslash and oacute, not included are zacute, zdot, cacute, -%% nacute, sacute, aogonek, eogonek and corresponding capital -%% characters. -\renewcommand\exlabel{Zadanie} -\renewcommand\exlabelsol{\exlabel} - -\renewcommand\exsectitle{Rozwi\k{a}zania Zada\'{n}} -\renewcommand\exsecrunhead{\protect\exsectitle} - -\renewcommand{\eq@exsolafterDefault}{\textit{Rozwi\k{a}znie}:} - -\renewcommand\eq@sqslsectitle{Rozwi\k{a}zania Test\'{o}w} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{Rozwi\protect\k{a}zania - Test\protect\'{o}w} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{\string\textbf{Rozwi\protect\k{a}zanie - Testu:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Rozwi\k{a}zanie}:} - -\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{Zako\ifeq@solutionsafter\else - \expandafter\protect\fi\'{n}cz Test} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\renewcommand\eqsqrtmsg{"Dobrze!"} -\renewcommand\eqsqwgmsg{"\string\\u0179le!"} - -\renewcommand\eq@bqlabel{Rozpocznij Test} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{Zakoncz Test} -\renewcommand\eqlabel{\eq@eqlabel} - -\renewcommand\eq@Score{Punkt\'{o}w:} -\renewcommand\eq@OutOf{z mozliwych} -\renewcommand\eqQuizTotalMsg{"\eqScore\space"+Score + - " \eqOutOf\space"+nQuestions} - -\renewcommand\eqInitQuizMsg{"Musisz rozpoczac Test! Kliknij - na "+msg+"."} - -\renewcommand\eqMadeChoice{% - "Juz dokonal\string\\233e\string\\u015B wyboru. - Twoim wyborem by\string\\233o ("+Responses[probno]+"). - Czy chcesz go zmieni\string\\u0107?"} - -\renewcommand\eq@local@CA{Popraw} -\renewcommand\eq@local@RC{Moje odpowiedzi!} -\renewcommand\eq@local@AC{Prosze!} -\endinput -%% -%% End of file `eqpo.def'. +%% +%% This is file `eqpo.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqpo') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqpo.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqpo.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Jerzy Mycielski %% +%% e-mail address: jmyc@poczta.onet.pl %% +%% Language: Polish %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% The polish accented characters included in pdfendconding is +%% lslash and oacute, not included are zacute, zdot, cacute, +%% nacute, sacute, aogonek, eogonek and corresponding capital +%% characters. +\renewcommand\exlabel{Zadanie} +\renewcommand\exlabelsol{\exlabel} + +\renewcommand\exsectitle{Rozwi\k{a}zania Zada\'{n}} +\renewcommand\exsecrunhead{\protect\exsectitle} + +\renewcommand{\eq@exsolafterDefault}{\textit{Rozwi\k{a}znie}:} + +\renewcommand\eq@sqslsectitle{Rozwi\k{a}zania Test\'{o}w} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{Rozwi\protect\k{a}zania + Test\protect\'{o}w} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{\string\textbf{Rozwi\protect\k{a}zanie + Testu:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Rozwi\k{a}zanie}:} + +\renewcommand\eq@sqlabel{\textcolor{red}{Test.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{Zako\ifeq@solutionsafter\else + \expandafter\protect\fi\'{n}cz Test} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\renewcommand\eqsqrtmsg{"Dobrze!"} +\renewcommand\eqsqwgmsg{"\string\\u0179le!"} + +\renewcommand\eq@bqlabel{Rozpocznij Test} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{Zakoncz Test} +\renewcommand\eqlabel{\eq@eqlabel} + +\renewcommand\eq@Score{Punkt\'{o}w:} +\renewcommand\eq@OutOf{z mozliwych} +\renewcommand\eqQuizTotalMsg{"\eqScore\space"+Score + + " \eqOutOf\space"+nQuestions} + +\renewcommand\eqInitQuizMsg{"Musisz rozpoczac Test! Kliknij + na "+msg+"."} + +\renewcommand\eqMadeChoice{% + "Juz dokonal\string\\233e\string\\u015B wyboru. + Twoim wyborem by\string\\233o ("+Responses[probno]+"). + Czy chcesz go zmieni\string\\u0107?"} + +\renewcommand\eq@local@CA{Popraw} +\renewcommand\eq@local@RC{Moje odpowiedzi!} +\renewcommand\eq@local@AC{Prosze!} +\endinput +%% +%% End of file `eqpo.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqru.def b/texmf-dist/tex/latex/acrotex/eqru.def index d6416359..7fd549d4 100644 --- a/texmf-dist/tex/latex/acrotex/eqru.def +++ b/texmf-dist/tex/latex/acrotex/eqru.def @@ -1,179 +1,179 @@ -%% -%% This is file `eqru.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqru') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqru.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%% eqru.def %%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Sergei V. Znamenskii %% -%% e-mail address: znamensk@rustex.botik.ru %% -%% Language: Russian %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\expandafter\ifx\csname inputencoding\endcsname\relax -\RequirePackage{inputenc}\fi -\inputencoding{cp1251}\makeatletter -\expandafter\ifx\csname Russian\endcsname\relax -\RequirePackage[russian]{babel}\fi - \def\web@versionlabel{\^{A}{\aa}ð\~{n}\`{e}\"{y}}% - \def\web@toc{\~{N}\^{\i}\"{a}{\aa}ð{\ae}\`{a}\'{\i}\`{e}{\aa}}% - \def\web@continued{\"{\i}ð\^{\i}\"{a}\^{\i}\"{e}{\ae}.}% - \def\web@article{\'{I}\`{a}{\div}\`{a}\"{e}\^{\i} - \hyperlink{section.1}{}}% - \def\web@directory{\"{I}\`{a}\"{\i}\^{e}\`{a}}% - \def\web@revision{\"{A}\`{a}\`{o}\`{a} \"{\i}\^{\i}\~{n}\"{e}% - {\aa}\"{a}\'{\i}{\aa}\~{a}\^{\i} \`{e}\c{c}\`{\i}{\aa}% - \'{\i}{\aa}\'{\i}\`{e}\"{y}:}% - \def\web@copyright{\^{E}\^{\i}\"{\i}\`{e}ð\`{a}\'{e}\`{o}}% - \def\web@section{\textsection\ }% - % Label Navibar - \def\web@back{\'{I}\`{a}\c{c}\`{a}\"{a}}% - \def\web@doc{\"{A}\^{\i}\^{e}.}% restricted to three characters - -\renewcommand\exlabel{\'{O}\"{\i}ð\`{a}{\ae}\'{\i}{\aa}\'{\i}\`{e}{\aa}} -\renewcommand\exlabelsol{\^{E} \'{o}\"{\i}ð\`{a}{\ae}% - \'{\i}{\aa}\'{\i}\`{e}þ} - -\renewcommand\exsectitle{Ð{\aa}{\o}{\aa}\'{\i}\`{e}\"{y} - \'{o}\"{\i}ð\`{a}{\ae}\'{\i}{\aa}\'{\i}\`{e}\'{e}} -\renewcommand\exsecrunhead{\exsectitle} %% change to @ form - -\renewcommand\exsolafter{\textit{Ð{\aa}{\o}{\aa}\'{\i}\`{e}{\aa}}:} - -\renewcommand\eq@sqslsectitle{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u} - \^{e} \`{o}{\aa}\~{n}\`{o}\`{a}\`{\i}} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -\renewcommand\eq@sqslsecrunhead{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u} - \^{e} \^{e}\^{\i}ð\^{\i}\`{o}\^{e}\`{e}\`{\i} - \`{o}{\aa}\~{n}\`{o}\`{a}\`{\i}} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -\renewcommand\eq@sqsllabel{% - \string\textbf{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u}:}} -\renewcommand\sqsllabel{\eq@sqsllabel} - -\renewcommand\sqsolafter{\textit{Ð{\aa}{\o}{\aa}\'{\i}\`{e}{\aa}}:} - -\renewcommand\eq@sqlabel{% - \textcolor{red}{\c{C}\`{a}\"{a}\`{a}\'{\i}\`{e}{\aa}.}} -\renewcommand\sqlabel{\eq@sqlabel} - -\renewcommand\eq@sqslrtnlabel{\^{a}{\aa}ð\'{\i}\'{o}\`{o}\"{u}\~{n}\"{y}} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -\cyrCommand\eqsqslrtnlabel{\^{E} \^{o}\^{\i}ð\`{\i}\'{o}\"{e}% - \`{e}ð\^{\i}\^{a}\^{e}{\aa} \c{c}\`{a}\"{a}\`{a}\'{\i}\`{e}\"{y}} -\renewcommand\eq@sqslrtnlabel{\eqsqslrtnlabel} - -\renewcommand\eq@bqlabel{CTAPT} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} - -\renewcommand\eq@eqlabel{\^{O}\`{E}\'{I}\`{E}{\O}} -\renewcommand\eqlabel{\eq@eqlabel} -\def\ScoreFieldDefaults -{% - \Ff{\FfReadOnly}\BC{1 0 0}\BG{}\S{S} - \DV{\^{A}{\aa}ð\'{\i}\^{\i}:}\W{1} -} -\renewcommand\eq@local@CA{\`{E}\~{n}\"{\i}ð\`{a}\^{a}\`{e}\`{o}\"{u}} -\renewcommand\eq@local@RC{\`{\i}\^{\i}\`{e} \^{\i}\`{o}\^{a}{\aa}% - \`{o}\^{u}!} -\renewcommand\eq@local@AC{\"{I}\^{\i}{\ae}\`{a}\"{e}\'{o}\'{e}\~{n}% - \`{o}\`{a}!} -%% In Cyrillic, at least with pdflatex v.1.40.3 , the same \eq@Score -%% unfortunately can not serve both \ScoreFieldDefaults and -%% \eqQuizTotalMsg. - -\renewcommand\eq@Score{\u0412\u0435\u0440\u043D\u043E:} -\renewcommand\eq@OutOf{\u0438\u0437} - -\def\eqsqrtmsg{"\u0412\u0435\u0440\u043D\u043E!"} -\def\eqsqwgmsg{"\u041E\u0448\u0438\u0431\u043A\u0430!"} - -\def\eqInitQuizMsg{"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 - \u043D\u0430 \u00AB"+msg+"\u00BB, \u0447\u0442\u043E\u0431\u044B - \u043D\u0430\u0447\u0430\u0442\u044C - \u043E\u0442\u0432\u0435\u0442."} - -\renewcommand\eqMadeChoice{"\u0412\u044B \u0443\u0436\u0435 - \u0432\u044B\u0431\u0440\u0430\u043B\u0438 - \u043E\u0442\u0432\u0435\u0442 - ("+Responses[probno]+"). \u0418\u043B\u0438 \u0412\u044B - \u043F\u0435\u0440\u0435\u0434\u0443\u043C\u0430\u043B\u0438?"} -\renewcommand\eq@local@CorrAnsButton{Ans} -\renewcommand\eqerrABS{"\u0417\u043D\u0430\u043A\u0438 - \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E\u0439 - \u0432\u0435\u043B\u0438\u0447\u0438\u043D\u044B \u043D\u0435 - \u0441\u0431\u0430\u043B\u0430\u043D\u0441\u0438\u0440\u043E\u0432% - \u0430\u043D\u044B. - \u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435, - \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430."} -\renewcommand\eqerrBadMathFunc{"\u0412\u044B\u0440\u0430\u0436\u0435% - \u043D\u0438\u0435 `"+aF[i]+"' \u043D\u0435 \u044F\u0432\u043B% - \u044F\u0435\u0442\u0441\u044F \u043D\u0438 - \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0439 " - +"\u0444\u0443\u043D\u043A\u0446\u0438\u0435\u0439, - \u043D\u0438 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D% - \u044B\u043C\u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447% - \u0435\u0441\u043A\u0438\u043C \u0432\u044B\u0440\u0430\u0436\u0435% - \u043D\u0438\u0435\u043C."} -\renewcommand\eqParens{"\u041A\u0440\u0443\u0433\u043B\u044B\u0435 - \u0441\u043A\u043E\u0431\u043A\u0438"} -\renewcommand\eqBrackets{"\u041A\u0432\u0430\u0434\u0440\u0430\u0442% - \u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438"} -\renewcommand\eqBraces{"\u0424\u0438\u0433\u0443\u0440\u043D\u044B\u0435 - \u0441\u043A\u043E\u0431\u043A\u0438"} -\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " \u043D\u0435 - \u0441\u0431\u0430\u043B\u0430\u043D\u0441\u0438\u0440% - \u043E\u0432\u0430\u043D\u043E. - \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, - \u0438\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435."} -\renewcommand\eqerrBadExp{"\u0418\u0441\u043F\u0440\u0430\u0432% - \u044C\u0442\u0435, \u043F\u043E\u0436\u0430\u043B\u0443\u0439% - \u0441\u0442\u0430, \u0432\u044B\u0440\u0430\u0436\u0435\u043D% - \u0438\u0435 \u0441\u043E \u0441\u0442\u0435\u043F\u0435\u043D% - \u044C\u044E."} -\renewcommand\eqerrUnfinishQuiz{"\u041F\u043E\u0436\u0430\u043B\u0443% - \u0439\u0441\u0442\u0430, \u0437\u0430\u043A\u043E\u043D\u0447% - \u0438\u0442\u0435 \u043D\u0430\u0447\u0430\u0442\u043E\u0435 - \u0440\u0430\u043D\u0435\u0435 \u0437\u0430\u0434\u0430\u043D% - \u0438\u0435."} -\renewcommand\noPeekMsg{"\u0420\u0435\u0448\u0435\u043D\u0438\u044F - \u043D\u0435 \u043F\u043E\u043A\u0430\u0436\u0443\u0442\u0441\u044F, - \u043F\u043E\u043A\u0430 \u0437\u0430\u0434\u0430\u043D\u0438\u0435 - \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043A - \u043E\u043D\u0447\u0435\u043D\u043E!"} -\renewcommand\highThresholdMsg{"\u0412\u044B \u043D\u0435 - \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 - \u043E\u0446\u0435\u043D\u043A\u0438, \u043F\u043E\u043A\u0430 - \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u0442\u0435 - \u043D\u0430 \u0412\u0421\u0415 \u0432\u043E\u043F\u0440\u043E% - \u0441\u044B."} -\renewcommand\eqSyntaxErrorUndefVar{"\u0421\u0438\u043D\u0442\u0430% - \u043A\u0441\u0438\u0447\u0435\u0441\u043A\u0430\u044F - \u043E\u0448\u0438\u0431\u043A\u0430: - \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, - \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F - \u043D\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435% - \u043D\u0430."} -\endinput -%% -%% End of file `eqru.def'. +%% +%% This is file `eqru.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqru') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqru.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%% eqru.def %%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Sergei V. Znamenskii %% +%% e-mail address: znamensk@rustex.botik.ru %% +%% Language: Russian %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\expandafter\ifx\csname inputencoding\endcsname\relax +\RequirePackage{inputenc}\fi +\inputencoding{cp1251}\makeatletter +\expandafter\ifx\csname Russian\endcsname\relax +\RequirePackage[russian]{babel}\fi + \def\web@versionlabel{\^{A}{\aa}ð\~{n}\`{e}\"{y}}% + \def\web@toc{\~{N}\^{\i}\"{a}{\aa}ð{\ae}\`{a}\'{\i}\`{e}{\aa}}% + \def\web@continued{\"{\i}ð\^{\i}\"{a}\^{\i}\"{e}{\ae}.}% + \def\web@article{\'{I}\`{a}{\div}\`{a}\"{e}\^{\i} + \hyperlink{section.1}{}}% + \def\web@directory{\"{I}\`{a}\"{\i}\^{e}\`{a}}% + \def\web@revision{\"{A}\`{a}\`{o}\`{a} \"{\i}\^{\i}\~{n}\"{e}% + {\aa}\"{a}\'{\i}{\aa}\~{a}\^{\i} \`{e}\c{c}\`{\i}{\aa}% + \'{\i}{\aa}\'{\i}\`{e}\"{y}:}% + \def\web@copyright{\^{E}\^{\i}\"{\i}\`{e}ð\`{a}\'{e}\`{o}}% + \def\web@section{\textsection\ }% + % Label Navibar + \def\web@back{\'{I}\`{a}\c{c}\`{a}\"{a}}% + \def\web@doc{\"{A}\^{\i}\^{e}.}% restricted to three characters + +\renewcommand\exlabel{\'{O}\"{\i}ð\`{a}{\ae}\'{\i}{\aa}\'{\i}\`{e}{\aa}} +\renewcommand\exlabelsol{\^{E} \'{o}\"{\i}ð\`{a}{\ae}% + \'{\i}{\aa}\'{\i}\`{e}þ} + +\renewcommand\exsectitle{Ð{\aa}{\o}{\aa}\'{\i}\`{e}\"{y} + \'{o}\"{\i}ð\`{a}{\ae}\'{\i}{\aa}\'{\i}\`{e}\'{e}} +\renewcommand\exsecrunhead{\exsectitle} %% change to @ form + +\renewcommand\exsolafter{\textit{Ð{\aa}{\o}{\aa}\'{\i}\`{e}{\aa}}:} + +\renewcommand\eq@sqslsectitle{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u} + \^{e} \`{o}{\aa}\~{n}\`{o}\`{a}\`{\i}} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +\renewcommand\eq@sqslsecrunhead{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u} + \^{e} \^{e}\^{\i}ð\^{\i}\`{o}\^{e}\`{e}\`{\i} + \`{o}{\aa}\~{n}\`{o}\`{a}\`{\i}} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +\renewcommand\eq@sqsllabel{% + \string\textbf{\^{I}\`{o}\^{a}{\aa}\`{o}\^{u}:}} +\renewcommand\sqsllabel{\eq@sqsllabel} + +\renewcommand\sqsolafter{\textit{Ð{\aa}{\o}{\aa}\'{\i}\`{e}{\aa}}:} + +\renewcommand\eq@sqlabel{% + \textcolor{red}{\c{C}\`{a}\"{a}\`{a}\'{\i}\`{e}{\aa}.}} +\renewcommand\sqlabel{\eq@sqlabel} + +\renewcommand\eq@sqslrtnlabel{\^{a}{\aa}ð\'{\i}\'{o}\`{o}\"{u}\~{n}\"{y}} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +\cyrCommand\eqsqslrtnlabel{\^{E} \^{o}\^{\i}ð\`{\i}\'{o}\"{e}% + \`{e}ð\^{\i}\^{a}\^{e}{\aa} \c{c}\`{a}\"{a}\`{a}\'{\i}\`{e}\"{y}} +\renewcommand\eq@sqslrtnlabel{\eqsqslrtnlabel} + +\renewcommand\eq@bqlabel{CTAPT} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} + +\renewcommand\eq@eqlabel{\^{O}\`{E}\'{I}\`{E}{\O}} +\renewcommand\eqlabel{\eq@eqlabel} +\def\ScoreFieldDefaults +{% + \Ff{\FfReadOnly}\BC{1 0 0}\BG{}\S{S} + \DV{\^{A}{\aa}ð\'{\i}\^{\i}:}\W{1} +} +\renewcommand\eq@local@CA{\`{E}\~{n}\"{\i}ð\`{a}\^{a}\`{e}\`{o}\"{u}} +\renewcommand\eq@local@RC{\`{\i}\^{\i}\`{e} \^{\i}\`{o}\^{a}{\aa}% + \`{o}\^{u}!} +\renewcommand\eq@local@AC{\"{I}\^{\i}{\ae}\`{a}\"{e}\'{o}\'{e}\~{n}% + \`{o}\`{a}!} +%% In Cyrillic, at least with pdflatex v.1.40.3 , the same \eq@Score +%% unfortunately can not serve both \ScoreFieldDefaults and +%% \eqQuizTotalMsg. + +\renewcommand\eq@Score{\u0412\u0435\u0440\u043D\u043E:} +\renewcommand\eq@OutOf{\u0438\u0437} + +\def\eqsqrtmsg{"\u0412\u0435\u0440\u043D\u043E!"} +\def\eqsqwgmsg{"\u041E\u0448\u0438\u0431\u043A\u0430!"} + +\def\eqInitQuizMsg{"\u041A\u043B\u0438\u043A\u043D\u0438\u0442\u0435 + \u043D\u0430 \u00AB"+msg+"\u00BB, \u0447\u0442\u043E\u0431\u044B + \u043D\u0430\u0447\u0430\u0442\u044C + \u043E\u0442\u0432\u0435\u0442."} + +\renewcommand\eqMadeChoice{"\u0412\u044B \u0443\u0436\u0435 + \u0432\u044B\u0431\u0440\u0430\u043B\u0438 + \u043E\u0442\u0432\u0435\u0442 + ("+Responses[probno]+"). \u0418\u043B\u0438 \u0412\u044B + \u043F\u0435\u0440\u0435\u0434\u0443\u043C\u0430\u043B\u0438?"} +\renewcommand\eq@local@CorrAnsButton{Ans} +\renewcommand\eqerrABS{"\u0417\u043D\u0430\u043A\u0438 + \u0430\u0431\u0441\u043E\u043B\u044E\u0442\u043D\u043E\u0439 + \u0432\u0435\u043B\u0438\u0447\u0438\u043D\u044B \u043D\u0435 + \u0441\u0431\u0430\u043B\u0430\u043D\u0441\u0438\u0440\u043E\u0432% + \u0430\u043D\u044B. + \u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435, + \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430."} +\renewcommand\eqerrBadMathFunc{"\u0412\u044B\u0440\u0430\u0436\u0435% + \u043D\u0438\u0435 `"+aF[i]+"' \u043D\u0435 \u044F\u0432\u043B% + \u044F\u0435\u0442\u0441\u044F \u043D\u0438 + \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0439 " + +"\u0444\u0443\u043D\u043A\u0446\u0438\u0435\u0439, + \u043D\u0438 \u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D% + \u044B\u043C\u043C\u0430\u0442\u0435\u043C\u0430\u0442\u0438\u0447% + \u0435\u0441\u043A\u0438\u043C \u0432\u044B\u0440\u0430\u0436\u0435% + \u043D\u0438\u0435\u043C."} +\renewcommand\eqParens{"\u041A\u0440\u0443\u0433\u043B\u044B\u0435 + \u0441\u043A\u043E\u0431\u043A\u0438"} +\renewcommand\eqBrackets{"\u041A\u0432\u0430\u0434\u0440\u0430\u0442% + \u043D\u044B\u0435 \u0441\u043A\u043E\u0431\u043A\u0438"} +\renewcommand\eqBraces{"\u0424\u0438\u0433\u0443\u0440\u043D\u044B\u0435 + \u0441\u043A\u043E\u0431\u043A\u0438"} +\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " \u043D\u0435 + \u0441\u0431\u0430\u043B\u0430\u043D\u0441\u0438\u0440% + \u043E\u0432\u0430\u043D\u043E. + \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, + \u0438\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435."} +\renewcommand\eqerrBadExp{"\u0418\u0441\u043F\u0440\u0430\u0432% + \u044C\u0442\u0435, \u043F\u043E\u0436\u0430\u043B\u0443\u0439% + \u0441\u0442\u0430, \u0432\u044B\u0440\u0430\u0436\u0435\u043D% + \u0438\u0435 \u0441\u043E \u0441\u0442\u0435\u043F\u0435\u043D% + \u044C\u044E."} +\renewcommand\eqerrUnfinishQuiz{"\u041F\u043E\u0436\u0430\u043B\u0443% + \u0439\u0441\u0442\u0430, \u0437\u0430\u043A\u043E\u043D\u0447% + \u0438\u0442\u0435 \u043D\u0430\u0447\u0430\u0442\u043E\u0435 + \u0440\u0430\u043D\u0435\u0435 \u0437\u0430\u0434\u0430\u043D% + \u0438\u0435."} +\renewcommand\noPeekMsg{"\u0420\u0435\u0448\u0435\u043D\u0438\u044F + \u043D\u0435 \u043F\u043E\u043A\u0430\u0436\u0443\u0442\u0441\u044F, + \u043F\u043E\u043A\u0430 \u0437\u0430\u0434\u0430\u043D\u0438\u0435 + \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043A + \u043E\u043D\u0447\u0435\u043D\u043E!"} +\renewcommand\highThresholdMsg{"\u0412\u044B \u043D\u0435 + \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 + \u043E\u0446\u0435\u043D\u043A\u0438, \u043F\u043E\u043A\u0430 + \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u0442\u0435 + \u043D\u0430 \u0412\u0421\u0415 \u0432\u043E\u043F\u0440\u043E% + \u0441\u044B."} +\renewcommand\eqSyntaxErrorUndefVar{"\u0421\u0438\u043D\u0442\u0430% + \u043A\u0441\u0438\u0447\u0435\u0441\u043A\u0430\u044F + \u043E\u0448\u0438\u0431\u043A\u0430: + \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, + \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F + \u043D\u0435 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435% + \u043D\u0430."} +\endinput +%% +%% End of file `eqru.def'. diff --git a/texmf-dist/tex/latex/acrotex/eqtr.def b/texmf-dist/tex/latex/acrotex/eqtr.def index d587b854..b24f35d3 100644 --- a/texmf-dist/tex/latex/acrotex/eqtr.def +++ b/texmf-dist/tex/latex/acrotex/eqtr.def @@ -1,106 +1,106 @@ -%% -%% This is file `eqtr.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,eqtr') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{eqtr.def} - \ifmakeExSlLocal\protect\endgroup^^J\fi -%%%%%%%%%%%%%%%%%%%% eqtr.def %%%%%%%%%%%%%%%%%%%%%%%%%% -%% Foreign language support for the exerquiz package. %% -%% Name of translator: Mahmut Ko\c{c}ak %% -%% e-mail address: mkocak@ogu.edu.tr %% -%% Language: Turkish %% -%% %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\renewcommand\exlabel{Al\i \c st\i rma} -\renewcommand\exlabelsol{\noexpand\c C\noexpand\"oz\noexpand\"um} -\renewcommand\exsectitle{\exlabel lar{\i}n \c C\"oz\"umleri } -\renewcommand\exsecrunhead{Al\noexpand\i \noexpand\c st\noexpand\i rma - \exlabelsol leri } -\renewcommand\exsolafter{\textbf{\c C\"oz\"um}:} -\renewcommand\eq@sqslsectitle{Kuizlerin \c C\"oz\"umleri } -\renewcommand\sqslsectitle{\eq@sqslsectitle} -\renewcommand\eq@sqslsecrunhead{Kuizlerin \c C\"oz\"umleri} -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} -\renewcommand\eq@sqsllabel{% - \protect\textbf{Kuiz \noexpand\c C\noexpand\"oz\noexpand\"um% - \noexpand\"u:}} -\renewcommand\sqsllabel{\eq@sqsllabel} -\renewcommand\sqsolafter{\textit{\c C\"oz\"um}:} -\renewcommand\eq@sqlabel{\textcolor{red}{Soru}} -\renewcommand\sqlabel{\eq@sqlabel} -\renewcommand\eq@sqslrtnlabel{Kuizi Bitir} -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} -\renewcommand\eqsqrtmsg{"Do\protect\u011Fru!"} -\renewcommand\eqsqwgmsg{"Yanl\protect\u0131\protect\u015F!"} -\renewcommand\eq@bqlabel{Kuize Ba\c sla} -\renewcommand\bqlabel{\eq@bqlabel} -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabelISO} -\renewcommand\eq@eqlabel{Kuizi Bitir} -\renewcommand\eqlabel{\eq@eqlabel} -\renewcommand\eq@Score{Skor:} -\renewcommand\eq@OutOf{\protect\374zerinden} -\renewcommand\eqQuizTotalMsg{% - "\eqScore\space"+nQuestions+" \eqOutOf\space"+Score} - \renewcommand\eqQuizPointsMsg{% - "\eqptScore\space"+nPointTotal+" \eqOutOf\space"+ptScore} -\renewcommand\eq@local@CorrAnsButton{Cevap} -\renewcommand\eqInitQuizMsg{% - "Kuizi Bitirdiniz. Do\protect\u011Fru cevaplar\protect\u0131 - g\protect\u00F6rmek i\protect\u00E7in 'cevap' - tu\protect\u015Flar\protect\u0131na - bas\protect\u0131n\protect\u0131z."} -\renewcommand\eqMadeChoice{% - "Bir se\protect\u00E7im yapt\protect\u0131n\protect\u0131z. - Se\protect\u00E7iminiz ("+Responses[probno]+") idi." - +" Se\protect\u00E7iminizi de\protect\u011Fi\protect\u015Ftirmek - istermisiniz?"} -\renewcommand\eqerrABS{"Mutlak de\protect\u011Fer do\protect\u011Fru - degil. L\protect\u00FCtfen d\protect\u00FCzeltiniz."} -\renewcommand\eqerrBadMathFunc{" `"+aF[i]+"' ifadesi - tan\protect\u0131ml\protect\u0131 bir fonksiyon veya - ge\protect\u00E7erli bir matematiksel ifade de\protect\u011Fil."} -\renewcommand\eqParens{"Parentezler"} -\renewcommand\eqBrackets{"S\protect\u00FCsl\protect\u00FC Parentazle"} -\renewcommand\eqBraces{"K\protect\u00F6\protect\u015Feli Parentezler"} -\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " do\protect\u011Fru - de\protect\u011Fil. L\protect\u00FCtfen d\protect\u00FCzeltiniz."} -\renewcommand\eqerrBadExp{"Ge\protect\u00E7ersiz matematiksel ifade. - \protect\u00FCstel ifadeli bir hata. - L\protect\u00FCtfen d\protect\u00FCzeltiniz."} -\renewcommand\eqerrUnfinishQuiz{"Bitirilmemi\protect\u015F bir kuiz var, - di\protect\u011Fer kuize ge\protect\u00E7meden \protect\u00F6nce - bu kuizi tamamlay\protect\u0131n."} -\renewcommand\noPeekMsg{"Kuizi bitirmeden yada kuizden - ba\protect\u015Far\protect\u0131l\protect\u0131 olana kadar - \protect\u00E7\protect\u00F6z\protect\u00FCmleri - g\protect\u00F6remezsiniz.!"} -\renewcommand\highThresholdMsg{"Kuiz sonucu hesaplanmadan - \protect\u00F6nce b\protect\u00FCt\protect\u00FCn - sorular\protect\u0131 cevapland\protect\u0131rmal\protect - \u0131s\protect\u0131n\protect\u0131z."} -\renewcommand\eqSyntaxErrorUndefVar{"Syntax Error: Tan\protect - \u0131mlanmam\protect\u0131\protect\u015F de\protect\u011Fi\protect - \u015Fken veya ifadeler istenilen formatta yaz\protect - \u0131lmam\protect\u0131\protect\u015Ft\protect\u0131r."} -\renewcommand\eq@local@CA{Dogru} -\renewcommand\eq@local@RC{Benim Cevaplar\protect\u0131m!} -\renewcommand\eq@local@AC{L\protect\374tfen!} -\endinput -%% -%% End of file `eqtr.def'. +%% +%% This is file `eqtr.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,eqtr') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{eqtr.def} + \ifmakeExSlLocal\protect\endgroup^^J\fi +%%%%%%%%%%%%%%%%%%%% eqtr.def %%%%%%%%%%%%%%%%%%%%%%%%%% +%% Foreign language support for the exerquiz package. %% +%% Name of translator: Mahmut Ko\c{c}ak %% +%% e-mail address: mkocak@ogu.edu.tr %% +%% Language: Turkish %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand\exlabel{Al\i \c st\i rma} +\renewcommand\exlabelsol{\noexpand\c C\noexpand\"oz\noexpand\"um} +\renewcommand\exsectitle{\exlabel lar{\i}n \c C\"oz\"umleri } +\renewcommand\exsecrunhead{Al\noexpand\i \noexpand\c st\noexpand\i rma + \exlabelsol leri } +\renewcommand\exsolafter{\textbf{\c C\"oz\"um}:} +\renewcommand\eq@sqslsectitle{Kuizlerin \c C\"oz\"umleri } +\renewcommand\sqslsectitle{\eq@sqslsectitle} +\renewcommand\eq@sqslsecrunhead{Kuizlerin \c C\"oz\"umleri} +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} +\renewcommand\eq@sqsllabel{% + \protect\textbf{Kuiz \noexpand\c C\noexpand\"oz\noexpand\"um% + \noexpand\"u:}} +\renewcommand\sqsllabel{\eq@sqsllabel} +\renewcommand\sqsolafter{\textit{\c C\"oz\"um}:} +\renewcommand\eq@sqlabel{\textcolor{red}{Soru}} +\renewcommand\sqlabel{\eq@sqlabel} +\renewcommand\eq@sqslrtnlabel{Kuizi Bitir} +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} +\renewcommand\eqsqrtmsg{"Do\protect\u011Fru!"} +\renewcommand\eqsqwgmsg{"Yanl\protect\u0131\protect\u015F!"} +\renewcommand\eq@bqlabel{Kuize Ba\c sla} +\renewcommand\bqlabel{\eq@bqlabel} +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabelISO} +\renewcommand\eq@eqlabel{Kuizi Bitir} +\renewcommand\eqlabel{\eq@eqlabel} +\renewcommand\eq@Score{Skor:} +\renewcommand\eq@OutOf{\protect\374zerinden} +\renewcommand\eqQuizTotalMsg{% + "\eqScore\space"+nQuestions+" \eqOutOf\space"+Score} + \renewcommand\eqQuizPointsMsg{% + "\eqptScore\space"+nPointTotal+" \eqOutOf\space"+ptScore} +\renewcommand\eq@local@CorrAnsButton{Cevap} +\renewcommand\eqInitQuizMsg{% + "Kuizi Bitirdiniz. Do\protect\u011Fru cevaplar\protect\u0131 + g\protect\u00F6rmek i\protect\u00E7in 'cevap' + tu\protect\u015Flar\protect\u0131na + bas\protect\u0131n\protect\u0131z."} +\renewcommand\eqMadeChoice{% + "Bir se\protect\u00E7im yapt\protect\u0131n\protect\u0131z. + Se\protect\u00E7iminiz ("+Responses[probno]+") idi." + +" Se\protect\u00E7iminizi de\protect\u011Fi\protect\u015Ftirmek + istermisiniz?"} +\renewcommand\eqerrABS{"Mutlak de\protect\u011Fer do\protect\u011Fru + degil. L\protect\u00FCtfen d\protect\u00FCzeltiniz."} +\renewcommand\eqerrBadMathFunc{" `"+aF[i]+"' ifadesi + tan\protect\u0131ml\protect\u0131 bir fonksiyon veya + ge\protect\u00E7erli bir matematiksel ifade de\protect\u011Fil."} +\renewcommand\eqParens{"Parentezler"} +\renewcommand\eqBrackets{"S\protect\u00FCsl\protect\u00FC Parentazle"} +\renewcommand\eqBraces{"K\protect\u00F6\protect\u015Feli Parentezler"} +\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " do\protect\u011Fru + de\protect\u011Fil. L\protect\u00FCtfen d\protect\u00FCzeltiniz."} +\renewcommand\eqerrBadExp{"Ge\protect\u00E7ersiz matematiksel ifade. + \protect\u00FCstel ifadeli bir hata. + L\protect\u00FCtfen d\protect\u00FCzeltiniz."} +\renewcommand\eqerrUnfinishQuiz{"Bitirilmemi\protect\u015F bir kuiz var, + di\protect\u011Fer kuize ge\protect\u00E7meden \protect\u00F6nce + bu kuizi tamamlay\protect\u0131n."} +\renewcommand\noPeekMsg{"Kuizi bitirmeden yada kuizden + ba\protect\u015Far\protect\u0131l\protect\u0131 olana kadar + \protect\u00E7\protect\u00F6z\protect\u00FCmleri + g\protect\u00F6remezsiniz.!"} +\renewcommand\highThresholdMsg{"Kuiz sonucu hesaplanmadan + \protect\u00F6nce b\protect\u00FCt\protect\u00FCn + sorular\protect\u0131 cevapland\protect\u0131rmal\protect + \u0131s\protect\u0131n\protect\u0131z."} +\renewcommand\eqSyntaxErrorUndefVar{"Syntax Error: Tan\protect + \u0131mlanmam\protect\u0131\protect\u015F de\protect\u011Fi\protect + \u015Fken veya ifadeler istenilen formatta yaz\protect + \u0131lmam\protect\u0131\protect\u015Ft\protect\u0131r."} +\renewcommand\eq@local@CA{Dogru} +\renewcommand\eq@local@RC{Benim Cevaplar\protect\u0131m!} +\renewcommand\eq@local@AC{L\protect\374tfen!} +\endinput +%% +%% End of file `eqtr.def'. diff --git a/texmf-dist/tex/latex/acrotex/exerquiz.sty b/texmf-dist/tex/latex/acrotex/exerquiz.sty index 8583fa71..c12a83b7 100644 --- a/texmf-dist/tex/latex/acrotex/exerquiz.sty +++ b/texmf-dist/tex/latex/acrotex/exerquiz.sty @@ -1,4667 +1,4667 @@ -%% -%% This is file `exerquiz.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{exerquiz} - [2018/03/21 v8.2.2 % - Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)] -\usepackage{keyval} -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\RequirePackage{ifluatex} -\@ifundefined{exqtable}{\def\exqtable{table}}{} -\IfFileExists{xcolor.sty}{% - \def\eq@ColorPackage{xcolor}% - \PassOptionsToPackage{\exqtable,hyperref}{xcolor}} - {\def\eq@ColorPackage{color}} -\DeclareOption{noxcolor}{\def\eq@ColorPackage{color}} -\DeclareOption{forpaper}{% - \eqforpapertrue\PassOptionsToPackage{monochrome}{\eq@ColorPackage} - \AtBeginDocument{\ifnum\eq@drivernum=4 \else\AllowPeeking\fi} -} -\DeclareOption{forcolorpaper}{\eqforpapertrue % for print - \AtBeginDocument{\ifnum\eq@drivernum=4 \else\AllowPeeking\fi} -} -\DeclareOption{preview}{\PassOptionsToPackage{preview}{eforms}} -\DeclareOption{nosolutions}{\eq@nosolutionstrue\eq@nolinktrue} -\DeclareOption{noquizsolutions}{\eq@noquizsolutionstrue\eq@nolinktrue} -\let\eq@YES=y \let\eq@NO=n -\let\eq@One=1 \let\eq@Zero=0 -\def\eq@r{r}\let\eq@f=f \let\eq@l=l -\DeclareOption{online}{\let\eq@online\eq@YES} -\let\eq@online\eq@NO -\DeclareOption{nohiddensolutions}{\eq@globalshowsolutionstrue} -\DeclareOption{noHiddensolutions}% - {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}} -\DeclareOption{solutionsafter}{\eq@solutionsaftertrue\eq@nolinktrue} -\DeclareOption{solutionsonly}{\solutionsonlytrue\answerkeytrue - \therearesolutionstrue\AtEndOfPackage{\let\exerSolnsHeadnToc\relax}} -\newif\ifsolutionsonly\solutionsonlyfalse -\@ifundefined{ifanswerkey}{\newif\ifanswerkey\answerkeyfalse}{} -\DeclareOption{contsolns}{\AtEndOfPackage{\InputIfFileExists - {contsolns.def}{\contsolnsInputMsg}{\contsolnsErrorMsg}}} -\def\contsolnsInputMsg{\PackageInfo{exerquiz}{contsolns option, - inputting file contsolns.def}} -\def\contsolnsErrorMsg{\PackageWarning{exerquiz}{contsolns option, - cannot find file contsolns.def}} -\DeclareOption{nocorrections}{\nocorrectionstrue} -\DeclareOption{proofing}{\eq@proofingtrue} -\newif\ifaebshowgrayletters\aebshowgraylettersfalse -\DeclareOption{showgrayletters}{\aebshowgrayletterstrue} -\@ifundefined{ifvspacewithsolns}{% - \DeclareOption{vspacewithsolns}{\vspacewithsolnstrue} - \newif\ifvspacewithsolns\vspacewithsolnsfalse -}{} -\@ifundefined{ifdisplayworkarea}{\newif\ifdisplayworkarea - \displayworkareafalse}{} -\DeclareOption{nodljs}{\PassOptionsToPackage{nodljs}{insdljs}% - \AtEndOfPackage{\let\importdljs\eq@YES}} -\DeclareOption{execJS}{\PassOptionsToPackage{execJS}{insdljs}} -\DeclareOption{exercisesonly}{\PassOptionsToPackage{nodljs}{insdljs}} -\DeclareOption{debug}{\PassOptionsToPackage{debug}{insdljs}} -\DeclareOption{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}} -\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def} - {\PackageInfo{exerquiz}{inputting aebrandom.def}} - {cannot find aebrandom.def}} -\newif \ifusesumrytbls \usesumrytblsfalse -\DeclareOption{usesumrytbls}{\usesumrytblstrue - \def\inputSumryTblCode{\InputIfFileExists{aebsumrytbls.def} - {\PackageInfo{exerquiz}{inputting aebsumrytbls.def}}% - {cannot find aebsumrytbls.def}}} -\let\inputSumryTblCode\relax -\DeclareOption{usemcfi}{% - \def\inputMCFICode{\InputIfFileExists{usemcfi.def} - {\PackageInfo{exerquiz}{inputting usemcfi.def}}% - {cannot find usemcfi.def}}} -\let\inputMCFICode\relax -\newif\ifwithinMCFI\withinMCFIfalse -\DeclareOption{dvipsone}{% - \def\eq@drivernum{0}\def\eq@driver{dvipsone}% - \PassOptionsToPackage{dvipsone}{eforms} -} -\DeclareOption{dvips}{% - \def\eq@drivernum{0}\def\eq@driver{dvips}% - \PassOptionsToPackage{dvips}{eforms} -} -\DeclareOption{pdftex}{% - \def\eq@drivernum{1}\def\eq@driver{pdftex}% - \PassOptionsToPackage{pdftex}{\eq@ColorPackage} - \PassOptionsToPackage{pdftex}{eforms} -} -\DeclareOption{luatex}{% - \def\eq@drivernum{1}\def\eq@driver{luatex}% - \PassOptionsToPackage{luatex}{\eq@ColorPackage} - \PassOptionsToPackage{luatex}{eforms} -} -\DeclareOption{dvipdfm}{% - \def\eq@drivernum{2}\def\eq@driver{dvipdfm}% - \PassOptionsToPackage{dvipdfm}{\eq@ColorPackage}% - \PassOptionsToPackage{dvipdfm}{eforms}% -} -\DeclareOption{dvipdfmx}{% - \def\eq@drivernum{2}\def\eq@driver{dvipdfmx}% - \PassOptionsToPackage{dvipdfmx}{\eq@ColorPackage}% - \PassOptionsToPackage{dvipdfmx}{eforms}% -} -\DeclareOption{xetex}{% - \def\eq@drivernum{2}\def\eq@driver{xetex}% - \PassOptionsToPackage{xetex}{\eq@ColorPackage} - \PassOptionsToPackage{xetex}{eforms}% -} -\DeclareOption{textures}{\def\eq@drivernum{3}% - \def\eq@driver{textures}% - \PassOptionsToPackage{textures}{\eq@ColorPackage}% - \PassOptionsToPackage{textures}{eforms}% -} -\DeclareOption{dviwindo}{\def\eq@drivernum{4}\def\eq@driver{dviwindo}% - \eq@noformstrue\PassOptionsToPackage{nodljs}{insdljs}} -\DeclareOption{unicode}{\PassOptionsToPackage{unicode}{hyperref}} -\DeclareOption{useui}{\PassOptionsToPackage{useui}{eforms}} -\let\LangRedefinitions\relax -\DeclareOption{french}{% - \def\LangRedefinitions{\InputIfFileExists{eqfr.def}% - {\PackageInfo{exerquiz}{Inputting French Option}}% - {\PackageInfo{exerquiz}{French Option: Cannot find the file - eqfr.def, using the default, English.}}}} -\DeclareOption{german}{% - \def\LangRedefinitions{\InputIfFileExists{eqde.def}% - {\PackageInfo{exerquiz}{Inputting German Option}}% - {\PackageInfo{exerquiz}{German Option: Kann die Datei eqde.def - nicht finden, benutze Default, Englisch.}}}} -\DeclareOption{norsk}{% - \def\LangRedefinitions{\InputIfFileExists{eqno.def}% - {\PackageInfo{exerquiz}{Inputting Norsk Option}}% - {\PackageInfo{exerquiz}{Norsk Option: Cannot find the file eqno.def, - using the default, English.}}}} -\DeclareOption{dutch}{% - \def\LangRedefinitions{\InputIfFileExists{eqnl.def}% - {\PackageInfo{exerquiz}{Inputting Dutch Option}}% - {\PackageInfo{exerquiz}{Dutch Option: Kan bestand eqnl.def niet - vinden, gebruik default, Engels.}}}} -\DeclareOption{spanish}{% - \def\LangRedefinitions{\InputIfFileExists{eqes.def}% - {\PackageInfo{exerquiz}{Inputting Spanish Option}}% - {\PackageInfo{exerquiz}{Spanish Option: Opci\'on Espa\~nola: no puede - encontrar el fichero eqes.def, usar\'a por defecto, English.}}}} -\DeclareOption{italian}{% - \def\LangRedefinitions{\InputIfFileExists{eqit.def}% - {\PackageInfo{exerquiz}{Opzione Lingua Italiana}}% - {\PackageInfo{exerquiz}{pzione Italiano: Non trovo il file eqit.def, - utilizzo quello di default, English.}}}} -\DeclareOption{russian}{% - \@ifpackageloaded{hyperref}{% - \ifHy@unicode\else\PackageWarning{exerquiz}{% - The unicode option recommended for hyperref\MessageBreak}\fi - }{\PassOptionsToPackage{unicode}{hyperref}} - \def\LangRedefinitions{\InputIfFileExists{eqru.def}% - {\PackageInfo{exerquiz}{Inputting Russian Option}}% - {\PackageInfo{exerquiz}{Russian Option: Cannot find the file - eqru.def, using the default, English.}}}} -\DeclareOption{dansk}{% - \def\LangRedefinitions{\InputIfFileExists{eqda.def}% - {\PackageInfo{exerquiz}{Inputting Dansk Option}}% - {\PackageInfo{exerquiz}{Dansk Option: Cannot find the file eqda.def, - using the default, English.}}}} -\DeclareOption{polish}{% - \def\LangRedefinitions{\InputIfFileExists{eqpo.def}% - {\PackageInfo{exerquiz}{Inputting Polish Option}}% - {\PackageInfo{exerquiz}{Polish Option: Cannot find the file - eqpo.def, using the default, English.}}}} -\DeclareOption{finnish}{% - \def\LangRedefinitions{\InputIfFileExists{eqfin.def}% - {\PackageInfo{exerquiz}{Inputting Finnish Option}}% - {\PackageInfo{exerquiz}{Finnish Option: Cannot find the file - eqfin.def, using the default, English.}}}} -\DeclareOption{catalan}{% - \def\LangRedefinitions{\InputIfFileExists{eqcat.def}% - {\PackageInfo{exerquiz}{Inputting Catalan Option}}% - {\PackageInfo{exerquiz}{Catalan Option: Cannot find the file - eqcat.def, using the default, English.}}}} -\DeclareOption{czech}{% - \def\LangRedefinitions{\InputIfFileExists{eqcz.def}% - {\PackageInfo{exerquiz}{Inputting Czech Option}}% - {\PackageInfo{exerquiz}{Czech Option: Cannot find the file eqcz.def, - using the default, English.}}}} -\DeclareOption{brazil}{% - \def\LangRedefinitions{\InputIfFileExists{eqbr.def}% - {\PackageInfo{exerquiz}{Inputting Brazilian Portuguese Option}}% - {\PackageInfo{exerquiz}{Portuguese Option: Opc\~ao Portugu\^es: - n\~ao foi poss\'ivel encontrar o arquivo eqbr.def, usaremos - o padr\~ao, English.}}}} -\DeclareOption{turkish}{% - \@ifpackageloaded{hyperref}{% - \ifHy@unicode\else\PackageWarning{exerquiz}{% - The unicode option recommended for hyperref\MessageBreak}\fi - }{\PassOptionsToPackage{unicode}{hyperref}} - \def\LangRedefinitions{\InputIfFileExists{eqtr.def}% - {\PackageInfo{exerquiz}{Inputting Turkish Option}}% - {\PackageInfo{exerquiz}{Cannot find the file eqtk.def, - using the default, English.}}}} -\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}} -\@ifpackageloaded{xcolor}% -{% - \@ifpackagelater{xcolor}{2004/07/04}{} - {% - \PackageError{exerquiz}{% - *************************************************\MessageBreak - * Your Version of `xcolor.sty' is too old!\MessageBreak - * You need the version from 2004/07/04 or newer\MessageBreak - * or use: \string\usepackage[noxcolor]{exerquiz}\MessageBreak - *************************************************}{}% - }% -}{} -\let\iterate\relax -\newif\ifeq@solutionsafter \eq@solutionsafterfalse -\newif\ifeq@hidesolution \eq@hidesolutionfalse -\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse -\newif\ifeq@nosolutions \eq@nosolutionsfalse -\newif\ifeq@proofing \eq@proofingfalse -\providecommand\turnProofingOn{\eq@proofingtrue} -\providecommand\turnProofingOff{\eq@proofingfalse} -\newif\ifeqforpaper \eqforpaperfalse -\newif\ifeq@noforms \eq@noformsfalse -\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse -\newif\ifnocorrections \nocorrectionsfalse -\@ifundefined{ifeqe@flextended}{\newif\ifeqe@flextended - \eqe@flextendedfalse}{} -\@ifundefined{ifcont@nnot}{\newif\ifcont@nnot \cont@nnotfalse}{} -\@ifundefined{if@eqalignfilllinestoleft}{\newif\if@eqalignfilllinestoleft - \@eqalignfilllinestoleftfalse}{} -\newif\ifkeepdeclaredvspacing \keepdeclaredvspacingfalse -\newif\ifeq@nolink \eq@nolinkfalse -\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi} -\def\hidesymbol{h}\def\Hidesymbol{H} -\newif\iftherearesolutions \therearesolutionsfalse -\newif\ifIsRespBox \global\IsRespBoxfalse -\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue} -\newif\ifcqSA\cqSAfalse -\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse - \displayworkareatrue\ifvspacewithsolns\eq@nosolutionsfalse\else - \eq@nosolutionstrue\fi\eq@proofingfalse\answerkeyfalse} -\def\NoSpaceToWork{\let\eq@insertverticalspace\eq@NO} -\def\SpaceToWork{\let\eq@insertverticalspace\eq@YES} -\SpaceToWork -\long\def\ifNoSolutions#1#2{% - \ifeq@nosolutions\expandafter#1\else - \expandafter#2\fi -} -\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse -\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse -\def\turnOnRandomize{\eq@randomizeallChoicestrue} -\def\obeyLocalRandomize{\eq@randomizeallChoicesfalse} -\let\saveRandomSeed\relax -\let\inputRandomSeed\relax -\def\CorrectionsOn{\global\nocorrectionsfalse} -\def\CorrectionsOff{\global\nocorrectionstrue} -\AtBeginDocument{\ifeq@noforms\else\Form\fi} -\AtEndDocument{% - \include@solutions - \ifeq@noforms\else\include@quizsolutions\fi - \clearpage - \csname endForm\endcsname - \if\eq@drivernum2\else\clearpage\fi -} -\InputIfFileExists{exerquiz.cfg}{}{} -\@ifpackageloaded{web}{% - \ExecuteOptions{\eq@driver@name}% -}{% - \ifluatex\ExecuteOptions{luatex}\else - \ifpdf\ExecuteOptions{pdftex}\else - \ifxetex\ExecuteOptions{xetex}\else - \InputIfFileExists{web.cfg}{} - {\@ifundefined{l@tex@@@@driver}{\ExecuteOptions{dvips}} - {\ExecuteOptions{dvipsone}}}\fi\fi\fi -} -\ProcessOptions -\RequirePackage{array} -\RequirePackage{\eq@ColorPackage} -\RequirePackage{comment} -\RequirePackage{verbatim} -\RequirePackage{hyperref} -\RequirePackage{amssymb}% used for return symbols -\RequirePackage{eforms}[2012/06/20] -\@ifundefined{eq@drivernum}{% - \PackageError{exerquiz}% - {You have not specified dvips, dvipsone, pdftex, dvipdfm, - dvipdfmx, or xetex - \MessageBreak in the option list of the exerquiz package} - {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, - dvipdfmx, or xetex - \MessageBreak in the option list of the exerquiz package.} -}{} -\edef\eq@restoreCats{% dps17 - \catcode`\noexpand\"=\the\catcode`\"\relax - \catcode`\noexpand\'=\the\catcode`\'\relax - \catcode`\noexpand\,=\the\catcode`\,\relax - \catcode`\noexpand\(=\the\catcode`\(\relax - \catcode`\noexpand\!=\the\catcode`\!\relax - \catcode`\noexpand\_=\the\catcode`\_\relax -} -\@makeother\"\@makeother\'\@makeother\,% -\@makeother\(\@makeother\!\@makeother\_ -\@ifundefined{ifsolutionsAtEnd} - {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{} -\ifeq@nosolutions\solutionsAtEndfalse\fi -\ifeq@solutionsafter\solutionsAtEndfalse\fi -\@ifundefined{if@fleqn}{\let\fleqnOn\relax\let\fleqnOff\relax} - {\def\fleqnOn{\@fleqntrue}\def\fleqnOff{\@fleqnfalse}} -\@ifundefined{if@inclkey}{\newif\if@inclkey\@inclkeytrue}{} -\def\eqretnSymb{$\blacksquare$}%{\rule{6bp}{6.8bp}} -\newcommand\exlabel{Exercise} -\newcommand\exlabelsol{\exlabel} -\newcommand\exsectitle{Solutions to \exlabel s} -\newcommand\exsecrunhead{\exsectitle} %% change to @ form -\newcommand{\exsolafter}{\eq@exsolafterDefault} -\newcommand{\resetSolnAfterToDefault}{% - \def\exsolafter{\eq@exsolafterDefault}} -\newcommand{\exsolafterDefault}[1]{\def\eq@exsolafterDefault{#1}% - \def\exSolafterDefault{#1}\resetSolnAfterToDefault} -\exsolafterDefault{\textit{Solution}:} -\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}} -\newcommand{\adjDisplayBelow}{\vskip-\lastskip\vskip-\baselineskip} -\newcommand{\adjDisplayBelowPlus}{\adjDisplayBelow\recoverDisplayBelow} -\def\recoverDisplayBelow{\vskip\belowdisplayskip} -\newcommand\eq@sqslsectitle{Solutions to Quizzes} -\newcommand\sqslsectitle{\eq@sqslsectitle} -\newcommand\eq@sqslsecrunhead{Solutions to Quizzes} -\newcommand\sqslsecrunhead{\eq@sqslsecrunhead} -\newcommand\eq@sqsllabel{\protect\textbf{Solution to Quiz:}} -\newcommand\sqsllabel{\eq@sqsllabel} -\newcommand\sqsolafter{\textit{Solution}:} -\newcommand{\sqDefaultFmtTitle}[1]% - {\def\eq@sqlabel{#1}\def\sqlabel{#1}} -\newcommand\sqlabel{\eq@sqlabel} -\sqDefaultFmtTitle{\textcolor{red}{Quiz}} -\newcommand\eq@sqslrtnlabel{\protect\eqretnSymb} -\newcommand\sqslrtnlabel{\eq@sqslrtnlabel} -\newcommand\eqsqrtmsg{"Right!"} -\newcommand\eqsqwgmsg{"Wrong!"} -\newcommand\doNotShowAgainMsg{Do not show this message again} -\newcommand\eq@bqlabel{Begin Quiz} -\newcommand\bqlabel{\eq@bqlabel} -\newcommand\eq@bqlabelISO{\eq@bqlabel} -\newcommand\bqlabelISO{\eq@bqlabelISO} -\newcommand\setDefShortQuizLabelName[1]% - {\def\eq@defaultShortQuizLabelName{#1}} -\setDefShortQuizLabelName{Quiz} -\newcommand\setDefQuizLabelName[1] - {\def\eq@defaultQuizLabelName{#1}} -\setDefQuizLabelName{Quiz} -\newcommand\eq@eqlabel{End Quiz} -\newcommand\eqlabel{\eq@eqlabel} -\newcommand\eq@Score{Score:}\newcommand\eq@OutOf{out of} -\newcommand\eq@ptScore{Score:} -\newcommand\stOutOf{of} -\newcommand\eqScore{\eq@Score}\newcommand\eqOutOf{\eq@OutOf} -\newcommand\eqptScore{\eq@ptScore} -\newcommand\eqInitQuizMsg{% - "You must initialize the Quiz! Click on "+msg+"."} -\newcommand\eqQuizTotalMsg{% - "\eqScore\space"+Score+" \eqOutOf\space"+nQuestions} -\newcommand\eqQuizPointsMsg{% - "\eqptScore\space"+ptScore+" \eqOutOf\space"+nPointTotal} -\newcommand\eqQuizPercentMsg{pcScore+"\%"} -\newcommand\eqQuizGradeMsg{quizGrade} -\newcommand\eqMadeChoice{% - "You have already made a choice." - + " Your choice was ("+Responses[probno]+")." - + " Do you want to change it?"} -\newcommand\eq@local@CA{Correct} -\newcommand\eq@local@RC{My Answers!} -\newcommand\eq@local@AC{Please!} -\newcommand\eq@local@CorrAnsButton{Ans} -\newcommand{\eq@local@sqClearButton}{Clear} -\newcommand\eqerrABS{"Absolute values not balanced. Please correct."} -\dlJSStr[noquotes]\eqerrBadMathFunc{"The expression \""+aF[i] - +"\" is neither a defined function nor a valid math expression."} -\newcommand\eqParens{"Parentheses"} -\newcommand\eqBrackets{"Brackets"} -\newcommand\eqBraces{"Braces"} -\newcommand\eqerrDelimNotBal{aGroup[i][2] + " not balanced. - Please correct."} -\newcommand\eqerrBadExp{"Invalid mathematical expression. - A problem with one of the exponents. Please correct."} -\newcommand\eqerrUnfinishQuiz{"There is an unfinished quiz, - please finish before moving on to another."} -\newcommand\noPeekMsg{"Viewing Solutions to quizzes is not allowed - until you take or finish this quiz!"} -\newcommand\highThresholdMsg{"You are required to respond to all - questions before the quiz is evaluated."} -\newcommand\eqSyntaxErrorUndefVar{"Syntax Error: Possibly an undefined - variable present, or an expression is not written in an expected - format."} -\dlJSStr[noquotes]{\eqSyntaxErrorComma}{% - "Syntax Error: A comma was found" - + " in your response \"" - + UserAns + "\". Please remove the comma, or this answer" - + " will be marked as wrong."} -\newcommand{\limSelWarningMsg}{"For this question, you are allowed to - make at most " + n + " selections."} -\newcommand{\defaultReqFormMsg}{% - "The expression is not in the expected form."} -\PackageInfo{exerquiz}{* Using \eq@driver\space option *} -\ifsolutionsonly -\InputIfFileExists{\jobname_xdefs.cut}{% - \typeout{^^JExerquiz|Eqexam: Reading \jobname_xdefs.cut^^J}} - {\PackageWarningNoLine{exerquiz|eqexam}{% - \jobname_xdefs.cut not found.\MessageBreak - Recompile file under the vspacewithsolns\MessageBreak - option, then compile with the solutionsonly\MessageBreak - option}} -\else -\newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol -\newcommand{\writeToExSolns}[1]{% - \set@display@protect - \immediate\write\ex@solns{#1}% - \set@typeset@protect -} -\newwrite\eq@xrefdefns \immediate\openout\eq@xrefdefns\jobname_xdefs.cut -\fi -\newwrite\quiz@solns \immediate\openout \quiz@solns \jobname.qsl -\newcommand{\writeToQzSolns}[1]{% - \set@display@protect - \immediate\write\quiz@solns{#1}% - \set@typeset@protect -} -\def\eq@IWAuxOut#1{\immediate\write\@auxout{#1}} -\def\eq@IWDefs#1{\immediate\write\eq@xrefdefns{#1}} -\newcounter{eqexno} \setcounter{eqexno}{0} -\newcounter{@exno} \setcounter{@exno}{0} % running exno -\newcounter{quizno} \setcounter{quizno}{0} -\renewcommand\thequizno{\alph{quizno}} -\def\theHquizno{\curr@quiz.\theeqquestionnoi.% - \ifcase\@eqquestiondepth\or\or\arabic{eqquestionnoii}.% - \or\arabic{eqquestionnoii}.\roman{eqquestionnoiii}.% - \else\fi\alph{quizno}} -\newlength\eqemargin \eqemargin=0pt -\newcounter{eqpointvalue} \setcounter{eqpointvalue}{0} -\newlength\eq@tmplength -\newlength\eqtmplength -\newcounter{questionno} -\newcounter{eqquestionnoi} -\newcounter{eqquestionnoii} -\newcounter{eqquestionnoiii} -\newcount\@eqquestiondepth \@eqquestiondepth=0 -\newcounter{grpquestionno} -\newcounter{partno} -\newif\ifuseNumForParts\useNumForPartsfalse -\def\alphaParts{\def\partnoFmt{\alph}\useNumForPartsfalse}\alphaParts -\def\numberParts{\def\partnoFmt{\arabic}\useNumForPartstrue} -\renewcommand\thepartno{\partnoFmt{partno}} -\newtoks\eq@scratchtoks -\def\theHpartno{partno\the@exno\thepartno} -\def\verbatimwrite{\@bsphack - \let\do\@makeother\dospecials - \catcode`\^^M\active \catcode`\^^I=12 - \def\verbatim@processline{% - \immediate\write\verbatim@out - {\the\verbatim@line}}% - \verbatim@start} -\def\endverbatimwrite{\@esphack} -\providecommand\PBS[1]{\let\temp=\\#1\let\\=\temp} -\newcommand\exlabelformat{{\scshape\exlabel\ \theeqexno.}} -\newcommand\exlabelformatwp{\exlabelformat} -\newcommand\exsllabelformat{\protect\textbf{\exlabelsol\ \theeqexno.}} -\newcommand\exsllabelformatwp - {\protect\textbf{\exlabelsol\ \theeqexno(\thepartno)}} -\newcommand\exrtnlabelformat{$\square$} -\newcommand\exrtnlabelformatwp{$\square$} -\newcommand{\belowexskip}[1]{\setlength{\eq@tmplength}{#1}% - \edef\eq@exerskip{\noexpand\removelastparskip - \noexpand\vskip\the\eq@tmplength\relax\kern0pt}} -\let\eqexerskip\belowexskip -\belowexskip{\medskipamount} -\newcommand{\aboveexskip}[1]{\setlength{\eq@tmplength}{#1}% - \edef\eq@priorexskip{\noexpand\vskip\the\eq@tmplength\relax - \kern0pt}} -\let\priorexskip\aboveexskip -\aboveexskip{\medskipamount} -\let\eq@postexerciseHook\relax -\newcommand\belowexsolnskip{\protect\medskip} -\def\removelastparskip{\ifdim\parskip>0pt\vskip-\parskip\fi} -\newcommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}} -\nolinkcolor{blue} -\newcommand{\exerSolnsInExtFile}[2][] - {\let\exerSolns@ExtFile\eq@YES\gdef\eq@exerSolns@fileName{#2}% - \gdef\exerSolns@ReturnPath{#1}} -\let\exerSolns@ExtFile\eq@NO -\def\exerSolns@ReturnPath{} -\let\marginparpriorhook\@empty % used to material before the exercise -\let\marginparafterhook\@empty % used to material after the exercise -\let\afterlabelhskip\space -\let\exersolnheadhook\@empty -\let\exer@solnheadhook\@empty -\newcommand{\eqexheader} -{% - \ifeq@nolink % no link to solution - \mbox{\color{\@nolinkcolor}\if\exerstar*\exlabelformatwp\else - \exlabelformat\fi}% - \else - \if\exerSolns@ExtFile\eq@YES - \mbox{\href{\eq@exerSolns@fileName\#ex.\the@exno}% - {\exlabelformat}}% - \else - \mbox{\hyperlink{ex.\the@exno}{\exlabelformat}}% - \fi - \fi -} -\def\eqexheader@wrapper{\hypertarget{qex.\the@exno}{\eqexheader}} -\newcommand{\partsformat}[1]{\def\eq@partsformat{#1}} -\partsformat{(\hfil\thepartno\hfil)} -\newcommand{\defaultpartsformat}{% - \partsformat{(\hfil\thepartno\hfil)}} -\let\exlisttabheaderpriorhook\@empty -\let\exlisttabheaderafterhook\@empty -\newcommand{\eqexlisttabheader} -{% - \exlisttabheaderpriorhook - \ifeq@nolink - \color{\@nolinkcolor}\eq@partsformat - \else - \if\exerSolns@ExtFile\eq@YES - \href{\eq@exerSolns@fileName\#ex.\the@exno\thepartno}% - {\eq@partsformat}% - \else - \hyperlink{ex.\the@exno\thepartno}{\eq@partsformat}% - \fi - \fi -} -\newcount\cq@Cnt -\def\cq@CutName{cq-\the\cq@Cnt.cut} -\let\cq@star\eq@NO -\newif\ifcqqs \cqqstrue -\newif\ifcqIsActive \cqIsActivefalse -\def\cqQS{\@ifstar{\cqQSV}{\cqQSA}} -\def\cqQSA#1#2{\ifcqqs#1\else#2\fi} -\@ifpackageloaded{web}{\@ifundefined{IF@AorBswitch}{% - \PackageWarningNoLine{A version of the web package - dated\MessageBreak 2016/11/03 or later is required - for \string\cqQS}}}{}% -\@ifundefined{webtempboxi}{\newbox\webtempboxi - \newbox\webtempboxii}{} -\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} -\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} -\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} -\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} -\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} -\providecommand\SETTEMPBOXi{\IF@AorBswitch\else - \afterassignment\TRUEACTIONia\fi - \setbox\webtempboxi=\hbox} -\providecommand\SETTEMPBOXii{\IF@AorBswitch - \afterassignment\FALSEACTIONiia\fi - \setbox\webtempboxii=\hbox} -\def\cqQSV{\let\IF@AorBswitch\ifcqqs - \IF@AorBswitch - \def\eq@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else - \def\eq@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi - \eq@next} -\def\eq@turnMessageOff{\let\save@message\message - \let\message\@gobble} -\def\eq@turnMessageOn{\let\message\save@message} -\def\eqCQDeclarations{\cqqsfalse\eq@turnMessageOff - \includecomment{sPage}\excludecomment{qPage}% - \eq@turnMessageOn} -\def\eqTopOfSolnPage{\cqSAfalse - \eqCQDeclarations} -\eq@turnMessageOff -\includecomment{qPage}\excludecomment{sPage} -\eq@turnMessageOn -\def\writecqQSfalse{\writeToExSolns{\protect\eqTopOfSolnPage}} -\AtBeginDocument{\writecqQSfalse} -\newenvironment{cq@CQ} -{% - \global\cqIsActivetrue - \global\advance\cq@Cnt1\relax - \immediate\openout\CommentStream=\cq@CutName - \let\verbatim@out\CommentStream - \verbatimwrite -}{% - \endverbatimwrite - \immediate\closeout\CommentStream - \ifx\cq@star\eq@YES - \xdef\cq@INPUTCUT{\noexpand\cqqstrue - \noexpand\input{\cq@CutName}\noexpand - \def@QuesToSoln}\else - \xdef\cq@INPUTCUT{\noexpand\cqqstrue - \noexpand\input{\cq@CutName}\noexpand - \p@ssQuesToSoln}\fi - \aftergroup\cq@INPUTCUT -} -\newenvironment{cqs@CQ}{\let\cq@star\eq@YES\cq@CQ}{\endcq@CQ} -\def\declCQQuesStr#1{\def\cqQStr{#1}} -\declCQQuesStr{Question} -\def\declCQSolStr#1{\def\cqSStr{#1}} -\declCQSolStr{Solution} -\newcommand\declCQPre[1]{\def\cq@Pre{#1}} -\declCQPre{\emph{\cqQStr}:\space} -\newcommand\declCQPost[1]{\def\cq@Post{#1}} -\declCQPost{\par\medskip\noindent\emph{\cqSStr}:\space\ignorespaces} -\def\cqFmtPasteQues#1{\cq@Pre\input{#1}\cq@Post} -\def\p@ssQuesToSoln{\ifeq@hidesolution\else - \global\terminexchangedtrue % dps cq - \writeToExSolns{\protect - \decleqterminex{\protect\cqFmtPasteQues{\cq@CutName}}}\fi} -\def\declCopyQues#1{\def\cqCopiedQues{#1}} -\def\def@QuesToSoln{\restoreNormalSolns - \global\terminexchangedfalse % dps cq - \ifeq@hidesolution\else\writeToExSolns{\protect - \declCopyQues{\protect\input{\cq@CutName}}}\fi} -\newcommand\restoreNormalSolns{% - \writeToExSolns{\protect\decleqterminex{\protect\eqterminexDEF}}} -\newcommand{\eq@CommonCmd}[1]{\def\eq@@CommonCmd{#1}#1} -\let\eq@@CommonCmd\@empty -\newcommand\gExCommonCmd[1]{\gdef\gEx@CommonCmd{\eq@CommonCmd{#1}}} -\let\gEx@CommonCmd\@empty -\let\endexerhook\@empty -\newenvironment{exercise} -{% - \let\cq\cq@CQ\let\endcq\endcq@CQ - \csarg\let{cq*}\cqs@CQ - \csarg\let{endcq*}\endcqs@CQ - \par\removelastskip\eq@priorexskip\noindent - \let\eqCommonCmd\eq@CommonCmd - \def\eq@argi{eqexno}%% use eqexno counter - \if\eq@exerstarEnv*\def\exerstar{*}\else\def\exerstar{x}\fi - \def\currhideopt{x}% - \@ifnextchar[{\exercise@}% - {\if\exerstar*\def\eq@next{\@exercise}\else - \def\eq@next{\exercise@@}\fi\eq@next}% -}{\eq@postexerciseHook\endexerhook\par - \global\eq@exerciseheadingtrue\removelastskip\eq@exerskip} -\def\exercise@[#1]{\edef\eq@arg{#1}% - \if\eq@arg h\def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse\fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H% - \edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse - \fi - \def\eq@next{\@exercise}% H, no *, no counter - \else - \def\currhideopt{x}% - \ifx\eq@arg\@empty\else\def\eq@argi{#1}\fi - \if\exerstar*\def\eq@next{\@exercise}\else - \def\eq@next{\exercise@@}\fi - \fi - \fi -\eq@next} -\def\exercise@@{\@ifstar{\def\exerstar{*}\@exercise}{\exercise@@@}} -\def\exercise@@@{\@ifnextchar[{\exercise@@@@}{\@exercise}} -\def\exercise@@@@[#1]{\edef\eq@arg{#1}% - \if\eq@arg h\def\currhideopt{h}% - \eq@hidesolutiontrue\eq@nolinktrue - \ifeq@globalshowsolutions - \eq@hidesolutionfalse\eq@nolinkfalse\fi - \def\eq@next{\@exercise}% h, no *, no counter - \else - \if\eq@arg H\edef\currhideopt{\Hidesymbol}% - \eq@hidesolutiontrue\eq@nolinktrue% - \def\eq@next{\@exercise}% h, no *, no counter - \else - \def\currhideopt{x}% - \PackageWarning{exerquiz}{The option #1 is not recognized} - \let\eq@next\relax - \fi - \fi -\eq@next} -\newif\ifeq@exerciseheading \eq@exerciseheadingtrue -\let\prior@exerSolnHeaderHook\@empty -\newcommand\exerSolnHeader[3]{% - \prior@exerSolnHeaderHook - \ifeqforpaper\else\webnewpage\fi\markright{#1}%\par\noindent% - \noindent\hypertarget{#2}{#3}\relax - \solnhspace -} -\let\solnItemMngt\relax -\let\eqEXt\@gobbletwo -\let\endeqEXt\relax -\let\eqExtArg\@empty -\let\eqFilterArg\@empty -\let\eqExerSolnHeader\@empty -\let\solutionparshape\@empty -\def\eq@pslnaindnt{0pt} -\let\eq@setPrbSolnAftrIndnt\relax -\newcommand{\setPrbSolnAftrIndent}[1]{\ifdim#1=0pt - \def\eq@pslnaindnt{0pt}\let\eq@setPrbSolnAftrIndnt\relax\else - \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{% - \expandafter\noexpand\expandafter\parindent#1\noexpand\relax}\fi -} -\newif\if@restorejustify \@restorejustifyfalse -\newcommand\restoreJustifyOn{\@restorejustifytrue} -\newcommand\restoreJustifyOff{\@restorejustifyfalse} -\def\restorejustify{\if@restorejustify - \@rightskip\z@skip \rightskip\@rightskip - \leftskip\z@skip \let\\\@normalcr\fi} -\def\@exercise{% - \global\let\solutionparshape\@empty - \let\verbatim@out=\ex@solns - \if\eq@argi0\else\refstepcounter{\eq@argi}\fi\stepcounter{@exno}% - \if\exerstar*% if exercise with parts - \eq@nolinktrue - \else - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide % - \ifeq@hidesolution\else - \global\let\eqExerSolnHeader\eq@@writeexheader - \fi - \fi - \fi - \fi - \ifvmode\ifdim\lastskip>\z@ - \vskip-\lastskip - \fi\fi - \if\exerstar*% - \let\solution\solnexer@woparts - \let\endsolution\endsolnexer@woparts - \let\parts\exercise@parts - \let\endparts\endexercise@parts - \else - \let\solution\solnexer@woparts - \let\endsolution\endsolnexer@woparts - \let\parts\relax - \let\endparts\relax - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \fi - \eq@initializeContAnnot - \ifeq@exerciseheading - \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper - \afterlabelhskip\marginparafterhook\gEx@CommonCmd - \eq@setPrbSolnAftrIndnt\ignorespaces\fi -} -\newif\ifterminexchanged \terminexchangedfalse % dps cq -\newcommand\decleqterminex[1]{\def\eqterminex{#1}} -\def\eqterminexDEF{\relax\ignorespaces} -\decleqterminex{\eqterminexDEF} -\newif\ifmakeExSlLocal \makeExSlLocalfalse -\def\makeExSolnsLocalOn{\makeExSlLocaltrue} -\def\makeExSolnsLocalOff{\makeExSlLocalfalse} -\def\eqExerSolnHeaderSngl{% - \ifmakeExSlLocal\protect\begingroup^^J\fi - \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect - \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}% - {\exsllabelformat}\exer@solnheadhook - \exersolnheadhook\protect\eqterminex -} -\def\eq@@writeexheader{\set@display@protect - \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}% - \set@typeset@protect -} -\def\eqExerSolnHeaderList{% - \ifmakeExSlLocal\protect\begingroup^^J\fi - \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect - \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}% - {ex.\the@exno\thepartno}{\exsllabelformatwp}% - \exer@solnheadhook\exersolnheadhook\protect\eqterminex -} -\def\eq@@writeexheaderlist{\set@display@protect - \immediate\write\verbatim@out{\eqExerSolnHeaderList}% - \set@typeset@protect -} -\long\def\setsolnspace#1{\def\newsolnspace{#1}% - \let\solnspace\newsolnspace} -\newif\ifeq@ckSolnVspace \eq@ckSolnVspacetrue -\def\ckSolnOpt{\global\eq@ckSolnVspacetrue} -\def\noSolnOpt{\global\eq@ckSolnVspacefalse} -\let\solnhspace\space -\let\solnspace\space -\let\exsolnonceonlytophook\relax -\def\solnexer@woparts{% - \ifanswerkey\ifeqe@flextended\ifcont@nnot - \ifx\solutionparshape\@empty\else % dpsj8 - \pushEnvir - \everypar{}\if@eqalignfilllinestoleft\else - \parshape=1 \leadinIndent \linewidth\fi - \popEnvir - \fi\fi\fi\fi\def\bLeaveVspace{x}% = no vertical space added - \exsolnonceonlytophook % dps27 - \global\let\exsolnonceonlytophook\relax - \@ifundefined{KV@eqefillLines@bgonly}{} - {\ifKV@eqefillLines@bgonly\ifvmode\else - \par\leavevmode\strut\fi\fi - \ifKV@eqefillLines@outlineonly\leavevmode\strut\fi}% - \ifeq@ckSolnVspace - \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%] - {\solnexer@@woparts[\null]}}\else - \def\eq@next{\solnexer@@woparts[\null]}\fi - \eq@next -} -\let\eqPriorVspace\@gobble -\newif\if@eqlinedfiller \@eqlinedfillerfalse -\newcommand{\vspaceFiller}[1]{\vfill} -\newcommand{\vspaceFillerDefault}[1]{\vfill} -\def\eqWriteLine{\hfill} -\def\eq@linesXPgs{% - \begingroup\offinterlineskip\parskip0pt - \@tempcnta=0 - \@whilenum\@tempcnta<\soln@keys@nLines\relax\do - {\vskip0pt\penalty-50\vglue\wlVspace\eqWriteLine - \advance\@tempcnta1\relax}\par\endgroup -} -\let\leavevspace\relax % dpsj5 -\newcommand{\vspaceFmt}[1]{% - \ifx\solutionparshape\@empty\else - \advance\linewidth-\leadinIndentPrtSep\fi - \ifdim\sameVspace>0pt - \let\bLeaveVspace\@empty - \def\leavevspace{% - \ifx\eq@insertverticalspace\eq@YES\par\eq@quessolskip - \eqPriorVspace{#1}{\nobreak\noindent - \if@eqlinedfiller - \ifx\soln@keys@nLines\@empty - \def\eq@lines@next{\vspaceFiller{#1}}\else - \def\eq@lines@next{\eq@linesXPgs}\fi - \else - \def\eq@lines@next{\parbox[b][#1][t]{\linewidth} - {\vspaceFiller{#1}}}% - \fi\eq@lines@next}% - \fi - }\expandafter\leavevspace % dpsj6 - \fi -} -\define@key{soln@keys}{nLines}[]{\def\soln@keys@nLines{#1}} -\let\soln@keys@nLines\@empty -\def\eqKV@errx#1{\xdef\XKV@rm{\@tempa}} -\def\eqSolnForEqexam#1{% - \let\soln@keys@nLines\@empty - \setkeys*{soln@keys}{#1}% - \ifx\soln@keys@nLines\@empty - \ifx\minVspacet@bs\@empty\xdef\sameVspace{\XKV@rm}\else - \xdef\sameVspace{\minVspacet@bs}\fi - \else - \@tempdima\wlVspace - \@tempdima=\soln@keys@nLines\@tempdima - \xdef\sameVspace{\the\@tempdima}% - \ifx\XKV@rm\@empty\else - \if@equsedim\let\soln@keys@nLines\@empty - \xdef\sameVspace{\XKV@rm}\fi - \fi - \fi - \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi -} -\def\solnexer@@woparts[#1]{% - \ifcqIsActive\else\ifterminexchanged - \restoreNormalSolns\fi\fi % dps cq - \global\cqIsActivefalse - \def\eq@argi{#1}\def\eq@null{\null}% - \ifx\eq@argi\@empty\gdef\sameVspace{0pt}\else - \ifx\eq@argi\eq@null\gdef\sameVspace{0pt}\else - \@ifundefined{PointsOnLeft}{% - \let\eqKV@errx@SAVE\KV@errx - \let\KV@errx\eqKV@errx\let\XKV@rm\@empty - \edef\temp@exp{\noexpand\setkeys*{soln@keys}{#1}}\temp@exp - \let\KV@errx\eqKV@errx@SAVE - \ifx\soln@keys@nLines\@empty\else - \PackageInfo{exerquiz}{% - nLines key detected in solution environment,\MessageBreak - is not not recognized without eqexam,\MessageBreak - will remove it}% - \let\soln@keys@nLines\@empty\fi - \xdef\sameVspace{\XKV@rm}% - }{\eqSolnForEqexam{#1}}% - \fi\fi - \solnexer@@@woparts -} -\def\solnsafterSkip#1{\setlength{\@tempdima}{#1}% - \edef\solnsafterSkipAmt{\the\@tempdima}% - \def\solutionsafterSkip{\vskip\solnsafterSkipAmt\relax}} -\solnsafterSkip{\smallskipamount} -\def\@solnafterSkipOnce#1{\setlength{\@tempdima}{#1}% - \xdef\@solnafterSkipOnceAmt{\the\@tempdima}}% -\def\@@solnafterSkipOnce{\vskip\@solnafterSkipOnceAmt\relax %dpsj3 - \gdef\@solnafterSkipOnceAmt{0pt}} -\def\@solnafterSkipOnceAmt{0pt} -\def\quessolSkip#1{\setlength{\@tempdima}{#1}% - \edef\eq@quessolskip{\noexpand\vskip\the\@tempdima\relax}} -\def\eq@quessolskip{\vskip\smallskipamount} -\def\eqe@debugVertSkip#1{} -\def\eqe@showEndHere#1{#1} -\def\eqe@setStartSolns{% - \xdef\eq@startSoln{\the\pagetotal}% - \eqe@debugVertSkip{\marginpar{\smash{b[\sameVspace]}}}% -} -\let\eqSavedComment\comment -\let\eqSavedEndCommet\endcomment -\def\setTabulrSolnEnv{% - \@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}% - \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE - \leftmargin\leftmarginii \labelwidth\leftmarginii - \advance\labelwidth-\labelsep}% - \def\everyparShape{\everypar{\parshape \@ne 0pt \linewidth}}% - \reset@doendpe{\parshape \@ne 0pt \linewidth}% - \parshape \@ne 0pt \linewidth - \everyparShape -} -\newif\ifthereissolution -\let\priorexsolafterList\@empty -\let\priorexsolafterTab\@empty -\let\priorexsolafterSngl\@empty -\def\eq@Hid{H}\def\eq@hid{h} -\def\solutionafterExCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty - \let\eqSolnExCmds\relax\else - \def\eqSolnExCmds{#1}\fi} -\let\eqSolnExCmds\relax -\def\eq@b@ddCodeSpecialDef#1{#1}% dpsj4 -\let\eq@b@ddCodeSpecial\eq@b@ddCodeSpecialDef % dpsj4 -\def\solnexer@@@woparts{\ifeq@solutionsafter\else - \expandafter\begingroup\fi %dpsj10 - \global\thereissolutiontrue - \global\let\procsoln\relax % dpsj6 - \global\let\endprocsoln\relax % dpsj6 - \def\exerwparts@cols{0}% - \let\verbatim@out\ex@solns - \if\currhideopt\eq@Hid - \let\minVspacet@bs\@empty - \let\procsoln\eqSavedComment - \let\endprocsoln\eqSavedEndCommet - \def\eq@next{\procsoln}% - \else - \eq@ckglobalhide - \ifeq@hidesolution - \let\procsoln\eqSavedComment - \let\endprocsoln\eqSavedEndCommet - \else - \ifeq@solutionsafter\else - \ifx\eq@@CommonCmd\@empty\else - \set@display@protect - \immediate\write\verbatim@out{\eq@@CommonCmd}% - \set@typeset@protect - \fi - \fi - \let\procsoln\verbatimwrite - \let\endprocsoln\endverbatimwrite - \fi - \def\eq@next{% - \ifeq@solutionsafter - \let\procsoln\relax % dpsj6 - \let\endprocsoln\relax - \removelastskip\removelastparskip - \cqSAtrue\eqCQDeclarations - \declCopyQues{\input{\cq@CutName}}% - \ifx\exsolafter\@empty - \ifdim\sameVspace=0pt\eqe@setStartSolns - \else - \solutionsafterSkip - \@@solnafterSkipOnce % dpsj3 - \eqe@setStartSolns - \fi - \else\par\kern0pt - \solutionsafterSkip - \@@solnafterSkipOnce % dpsj3 - \noindent\strut\eqe@setStartSolns - \fi - \parskip\eqeques@parsep - \ifx\endparts\endexercise@parts@tabular - \eq@setPrbSolnAftrIndnt - \restorejustify - \fi - \ifx\endparts\endexercise@parts@tabular\expandafter - \priorexsolafterTab\else - \ifx\endparts\endexercise@parts@list\expandafter - \priorexsolafterList\else\expandafter - \priorexsolafterSngl\fi\fi - \exsolafter\space\ignorespaces - \solutionparshape - \else - \eqExerSolnHeader - \global\let\eqExerSolnHeader\@empty - \global\therearesolutionstrue\expandafter\procsoln - \fi - }% - \fi - \eq@b@ddCodeSpecial{\eq@next}% -}% dpsj4 -\let\endsolnexerhook\@empty -\let\pkg@endsolnexerhook\@empty -\let\endsolnexerhookaux\@empty -\def\eq@fititin#1{\noindent\unskip\nobreak\hfill\penalty100 - \hskip1em\hbox{}\nobreak\hfill#1}% -\let\eqfititin\eq@fititin -\def\ReturnTo#1#2{\eq@fititin{\hyperlink{#1}{#2}}} -\def\xReturnTo#1#2{\eq@fititin{\href{#1}{#2}}} -\newcommand\eqExerSolnTrailer{% - \if\exerSolns@ExtFile\eq@YES\protect\xReturnTo - {\exerSolns@ReturnPath\jobname\#qex.\the@exno}% - \else\protect\ReturnTo{qex.\the@exno}\fi - {\protect\mbox{\if\exerstar*\exrtnlabelformatwp\else - \exrtnlabelformat\fi}}% - \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J% - \ifmakeExSlLocal\protect\endgroup^^J\fi -} -\let\eq@e@ddCodeSpecialDef\relax % dpsj4 -\let\eq@e@ddCodeSpecial\eq@e@ddCodeSpecialDef % dpsj6 -\let\kdvsp@Restore\relax % dpsj20 -\def\endsolnexer@woparts{\endprocsoln\eq@e@ddCodeSpecial - \pkg@endsolnexerhook % djsj8 moved from the end of the macro - \ifeq@solutionsafter\else - \expandafter\endgroup\fi % from \begingroup at \solnexer@@@woparts - \global\let\exsolnonceonlytophook\relax - \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi % dpsj5 - \ifvspacewithsolns\vspaceFmt{\sameVspace}\else - \ifeq@nosolutions\ifeq@solutionsafter\else - \vspaceFmt{\sameVspace}\fi\fi\fi - \if\currhideopt H% - \ifkeepdeclaredvspacing\vskip\sameVspace\fi - \else - \ifeq@solutionsafter - \ifx\isitleadin\eq@YES\parshape=0 \fi % dpsj9 - \if\exerstar*% - \eq@fititin{\mbox{\exrtnlabelformatwp}}\else - \eq@fititin{\mbox{\exrtnlabelformat}}\fi - \ifx\istabularexer\eq@YES\unskip\kern0pt\else\par\fi % dpsj6 - \ifx\minVspacet@bs\@empty - \ifkeepdeclaredvspacing - \@tempdima\pagetotal - \advance\@tempdima-\eq@startSoln - \@tempdimb\sameVspace\relax - \ifdim\@tempdimb>1sp\relax - \advance\@tempdimb-\@tempdima - \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt - \let\eqe@showEndHere\@gobble - \edef\tmp@exp{\noexpand\marginpar{% - \noexpand\smash{e: adj \the\@tempdimb}}}% - \eqe@debugVertSkip{\tmp@exp}% - \fi - \fi - \fi - \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}% - \fi - \else - \eq@ckglobalhide - \ifeq@hidesolution\else - \endsolnexerhookaux - \let\verbatim@out\ex@solns - \set@display@protect - \immediate\write\verbatim@out{\eqExerSolnTrailer}% - \set@typeset@protect - \fi - \fi - \fi - \kdvsp@Restore % dpsj20 - \endsolnexerhook\penalty0\relax} -\let\eq@exerstarEnv\relax -\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise} -{\endexercise} -\def\exerwparts@cols{0} -\let\topofpartshook\relax -\let\@listiiredefined\eq@NO -\let\itsExerParts\eq@NO -\newif\if@tableadinitem\@tableadinitemfalse -\newcommand{\tableadin@external}{\PackageError{exerquiz/eqexam} - {The \string\tableadin\space command is designed\MessageBreak - for the problem* environment of eqexam}{Use \string\tableadin\space - in the problem* environment of eqexam.}% -} -\let\tableadin\tableadin@external -\newcommand{\eq@tableadinparts}{\item\relax - \PackageError{exerquiz/eqexam}{The \string\tableadin\space - command is not allowed in the\MessageBreak - parts environment}{Use \string\tableadin\space - in the problem* environment of eqexam.}% -} -\let\istabularexer\eq@NO -\def\exercise@parts{\let\rlspar\relax - \ifx\solutionparshape\@empty - \let\isitleadin\eq@NO - \if@tableadinitem\let\rlspar\@gobbletwo\fi - \else\let\isitleadin\eq@YES\fi - \rlspar\removelastskip\par - \if\isitleadin\eq@YES - \def\eqparts@topsep{0pt}% - \vskip\eqparts@itemsep\relax\fi - \topofpartshook - \let\itsExerParts\eq@YES - \global\let\@listiiredefined\eq@NO - \def\exerwparts@cols{0}\@ifnextchar[% - {% - \if@tableadinitem\else\removelastparskip\fi - \let\endparts\endexercise@parts@tabular\exercise@parts@tabular@}% - {\let\endparts\endexercise@parts@list\exercise@parts@list}} -\def\eq@extralabelsep{0pt} -\newcommand{\setPartsWidth}[1]{\def\parts@indent{\normalfont#1}% - \bgroup\settowidth{\eq@tmpdima}{\parts@indent}% - \xdef\widthOfParts{\the\eq@tmpdima}\egroup} -\setPartsWidth{(d)} -\def\eqe@prtsepPrb{\ } -\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}} -\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}} -\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}} -\eqequesparsep{0pt} -\let\prior@parts@hook\@empty -\let\post@parts@hook\@empty -\let\abovepartshook\@empty -\let\belowpartshook\@empty -\let\eqp@rtc@lcm@rk\relax -\let\eq@insertContAnnot\relax -\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk - \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse - \@ifnextchar[{\@ckhide}{\eq@item}} -\newcommand{\partsitemsep}[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@itemsep{\the\@tempdima}}} -\let\eqpartsitemsep\partsitemsep -\def\eqparts@itemsep{0pt} -\newcommand\partsparsep[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@parsep{\the\@tempdima}}} -\def\eqparts@parsep{0pt} -\newcommand\partstopsep[1]{{% - \setlength{\@tempdima}{#1}% - \xdef\eqparts@topsep{\the\@tempdima}}} -\def\eqparts@topsep{3pt} -\newcommand{\leadinitem@external}{\PackageError{exerquiz/eqexam} - {The \string\leadinitem\space command is designed to be\MessageBreak - the first item in the problem*\MessageBreak - environment above the parts environment} - {Use \string\leadinitem\space in the problem* environment.}% -} -\let\leadinitem\leadinitem@external -\let\itsforleadinitem\eq@NO -\newcommand{\eq@leadinitemparts}{\item\relax - \PackageError{exerquiz/eqexam}{The \string\leadinitem\space - command is not allowed in the\MessageBreak - parts environment} - {Use \string\leadinitem\space in the problem* environment.}% -} -\def\eq@handleOptArg[#1]{\def\eq@optArg{[#1]}\eq@handleOptArgi} -\def\eq@handleOptArgi{\expandafter - \eq@item@latex\eq@optArg\exlisttabheaderafterhook} -\newif\ifwithinparts -\let\ex@listtabheader@fterhook\@empty -\newenvironment{exercise@parts@list}{% - \settowidth{\eq@tmplength}{\parts@indent}% - \edef\widthOfParts{\the\eq@tmplength}% - \eq@initializeContAnnot\eq@nolinkfalse\prior@parts@hook - \abovepartshook\list{\normalfont - \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter - \eq@nolinktrue\fi\fi - \if\currhideopt H% - \else - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else - \ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \global\let\eqExerSolnHeader\eq@@writeexheaderlist - \fi - \fi - \fi - \fi - \makebox[\widthOfParts][r]{\eqexlisttabheader}% -}{% - \usecounter{partno}% - \if\isitleadin\eq@YES - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else - \setcounter{partno}{1}\fi\fi - \let\leadinitem\eq@leadinitemparts - \let\tableadin\eq@tableadinparts - \global\let\solutionparshape\@empty - \setlength{\topsep}{\eqparts@topsep}% - \setlength{\parskip}{0pt}% - \setlength{\partopsep}{0pt plus 1pt minus 1pt}% - \ifdim\eqeques@parsep=0pt - \setlength{\parsep}{\eqparts@parsep}% - \else - \setlength{\parsep}{\eqeques@parsep}% - \fi - \setlength{\itemsep}{\eqparts@itemsep-\parsep}% - \setlength{\itemindent}{0pt}% - \setlength{\listparindent}{\parindent}% - \settowidth{\labelsep}{\normalfont\eqe@prtsepPrb}% - \addtolength{\labelsep}{\eq@extralabelsep}% - \settowidth{\labelwidth}{\parts@indent}% - \setlength{\leftmargin}{\labelwidth}% - \addtolength{\leftmargin}{\labelsep}% - \let\eq@item@latex\item - \def\eq@item{\@ifnextchar[{\eq@handleOptArg} - {\eq@item@latex\ex@listtabheader@fterhook - \exlisttabheaderafterhook}}% - \def\eqthisenv{parts}\withinpartstrue - \def\item{\ifx\@currenvir\eqthisenv - \def\eq@next{\eq@item@common}\else - \def\eq@next{\eq@item}\fi - \eq@next}% -}}{\endlist\global\let\leadinitem\leadinitem@external - \post@parts@hook\belowpartshook} -\def\eq@initializeContAnnot{\@ifundefined{eqequestions} - {\global\let\eqeCurrProb\relax} - {\xdef\eqeCurrProb{\theeqquestionnoi}}% - \xdef\eq@currProbStartPage{\arabic{page}}% -} -\define@key{tabp@rts}{nCols}{\def\exerwparts@cols{#1}} -\define@key{tabp@rts}{minVspace}{\def\minVspacet@bs{#1}} -\let\minVspacet@bs\@empty -\def\minVspacetabs#1{\def\minVspacet@bs{#1}} -\def\priorexsolafterTab{\ifkeepdeclaredvspacing - \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else - \priorexsolafterTab@cont\fi\fi\fi} -\def\priorexsolafterTab@cont{\let\exsolafter@save\exsolafter - \let\exsolafter\@empty - \makebox[0pt][r]{\parbox[t][\minVspacet@bs][t]{0pt} - {\strut\hfill\vfill\strut}}% - \minipage[t]{\linewidth}\exsolafter@save} -\def\pkg@endsolnexerhook{\ifkeepdeclaredvspacing - \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else - \endminipage\fi\fi\fi} -\def\exercise@parts@tabular@[#1]{% - \inittabMark - \let\eq@insertContAnnot\relax - \let\exerwparts@cols\@empty - \setkeys*{tabp@rts}{#1}\ifx\exerwparts@cols\@empty - \edef\exerwparts@cols{\XKV@rm}\fi - \ifx\minVspacet@bs\@empty\keepdeclaredvspacingfalse\fi - \let\istabularexer\eq@YES - \@tempcnta\exerwparts@cols\relax - \ifnum\@tempcnta<2\relax - \PackageError{exerquiz}{% - The number of columns for parts\MessageBreak - needs to be an integer greater than 1} - {Enter an integer, 2 or larger}\fi - \exercise@parts@tabular} -\newcount\eq@extabColCnt -\def\autotabOn{\let\eq@tabMarkChk\relax% - \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOn}} -\def\autotabOff{\let\eq@tabMarkChk\@gobble - \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOff}} -\autotabOff -\def\inittabMark{\global\eq@extabColCnt=0 } -\def\resettabMark{\global\eq@extabColCnt=1 } -\newcommand\autotabnewline[1][\eqparts@tabrowsep]{% - \ifnum\exerwparts@cols>0\relax - \ifx\eq@tabMarkChk\@gobble - \def\eq@atnext{\expandafter - \tabularnewline\expandafter[#1]}\else - \def\eq@atnext{\resettabMark\tabularnewline - \noalign{\expandafter\kern#1}}\fi - \expandafter\eq@atnext\fi} -\def\eq@tabMark{% - \ifnum\eq@extabColCnt=0\relax - \global\advance\eq@extabColCnt1\relax - \let\eq@next\relax - \else - \ifnum\eq@extabColCnt=1\relax - \let\eq@next\relax - \else - \ifnum\eq@extabColCnt>\exerwparts@cols - \let\eq@next\autotabnewline - \else\def\eq@next{&}\fi - \fi - \fi - \eq@next - \global\advance\eq@extabColCnt1\relax -} -\newcommand\partstabcolsep[1]{\def\eq@partstabcolsep{#1}} -\partstabcolsep{1.5pt} -\newcommand\partstabtopsep[1]{\def\eq@partstabtopsep{#1}} -\partstabtopsep{3pt} -\def\eq@vpartstabtopsep{\vskip\eq@partstabtopsep\relax} -\newcommand\partstabrowsep[1]{\setlength{\@tempdima}{#1}% - \edef\eqparts@tabrowsep{\the\@tempdima}} -\partstabrowsep{0pt} -\newenvironment{exercise@parts@tabular}{% - \setcounter{partno}{0}% - \def\tablrIndent{\hglue\prtsIndntSep\relax}% - \if\isitleadin\eq@YES - \if$\the\everypar$\let\tablrIndent\relax\fi - \setcounter{partno}{1}\fi - \let\leadinitem\eq@leadinitemparts - \let\tableadin\eq@tableadinparts - \global\let\solutionparshape\@empty - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \sbox{\eq@tmpbox}{\parts@indent}% - \let\eq@item@latex\item - \let\eq@item\item@part@tabular - \def\eqthisenv{parts}\withinpartstrue - \def\item{\ifx\@currenvir\eqthisenv - \def\eq@next{\eq@tabMarkChk\eq@tabMark\eq@item@common}\else - \def\eq@next{\eq@item@latex}\fi - \eq@next}\eq@nolinkfalse - \@ifundefined{@xtabularcr}{\let\@xarraycr\eq@xtabularcr} - {\let\@xtabularcr\eq@xtabularcr}% - \eq@tmpdima=\linewidth - \advance\eq@tmpdima-\prtsIndntSep\relax - \@tempcnta\exerwparts@cols\relax - \advance\@tempcnta-1\relax - \multiply\@tempcnta2\relax - \@tempdima\prtsIndntSep\relax - \divide\@tempdima 2\relax - \edef\halfWidth{\the\@tempdima}% - \advance\@tempdima\eq@partstabcolsep\relax - \tabcolsep\@tempdima - \multiply\@tempdima\@tempcnta - \advance\eq@tmpdima-\@tempdima - \divide\eq@tmpdima by\exerwparts@cols\relax %dpsj3 - \edef\widthOfPartsBox{\the\eq@tmpdima}% dpsj2 - \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi - \noindent\normalbaselines\kern0pt - \prior@parts@hook\abovepartshook - \tablrIndent\tabular[t]{@{}*{\exerwparts@cols}{>{\setTabulrSolnEnv - \parskip\eqeques@parsep\relax - \parindent0pt\relax\strut}p{\eq@tmpdima}}@{\hidewidth}}% -}{\endtabular\kern0pt - \@ifundefined{@listii@SAVE}{}{\global\let\@listii\@listii@SAVE - \global\let\@listii@SAVE\relax}% - \post@parts@hook\belowpartshook - \aftergroup\eqe@innermarkpts - \aftergroup\eq@vpartstabtopsep} -\let\eqe@innermarkpts\relax -\def\item@part@tabular{\refstepcounter{partno}% - \global\let\eqExerSolnHeader\@empty - \ifeq@solutionsafter - \eq@nolinktrue % no link to solution - \else\ifeq@nosolutions - \eq@nolinktrue % no link to solution - \else - \eq@ckglobalhide - \ifeq@hidesolution\eq@nolinktrue\else - \gdef\eqExerSolnHeader{\eq@@writeexheaderlist}% - \fi\fi\fi - \if@restorejustify\restorejustify\else\PBS\raggedright\fi - \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% - \xdef\prtsIndntSep{\the\eq@tmplength}% - \sbox{\eq@tmpbox}{\parts@indent}% - \eq@tmpdima=\wd\eq@tmpbox - \addtolength\eq@tmplength{\eq@extralabelsep}% - \xdef\partshangamount{\the\eq@tmplength}% - \parshape \@ne 0pt \linewidth - \everypar{\parshape \@ne 0pt \linewidth}% - \eq@setPrbSolnAftrIndnt - \makebox[0pt][r]{\eqexlisttabheader\eqe@prtsepPrb}% - \ex@listtabheader@fterhook - \exlisttabheaderafterhook\ignorespaces -} -\def\@ckhide[#1]{\edef\eq@arg{#1}% - \def\currhideopt{x}% - \ifx\eq@arg\@empty\else - \if\eq@arg\eq@Hid - \eq@hidesolutiontrue\eq@nolinktrue% - \edef\currhideopt{\Hidesymbol}% - \else - \ifeq@globalshowsolutions\else - \if\eq@arg\eq@hid - \eq@hidesolutiontrue\eq@nolinktrue% - \def\currhideopt{h}% - \fi - \fi - \fi\fi - \eq@item -} -\def\tabControlOn{\@ifundefined{@xtabularcr} - {\let\save@@xtabularcr\@xarraycr} - {\let\save@@xtabularcr\@xtabularcr}} -\def\tabControlOff{\@ifundefined{@xtabularcr} - {\let\@xarraycr\save@@xtabularcr} - {\let\@xtabularcr\save@@xtabularcr}} -\AtBeginDocument{\tabControlOn} -\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr} - {\eqe@tab@parts@rowsep}}% -\def\eqe@tab@parts@rowsep{\save@@xtabularcr - \noalign{\expandafter\kern\eqparts@tabrowsep}}% -\define@key{exEnum}{labelwidthTo}[\normalsize\normalfont\bfseries00.\ ]% - {\def\exE@labelwidthTo{#1}} -\define@key{exEnum}{labelwidth}[\@empty]{\def\exE@labelwidth{#1}} -\let\exE@labelwidth\@empty -\define@key{exEnum}{topsep}[3pt]{\def\exE@topsep{#1}} -\define@key{exEnum}{parsep}[3pt]{\def\exE@parsep{#1}} -\define@key{exEnum}{itemsep}[0pt]{\def\exE@itemsep{#1}} -\define@key{exEnum}{labelsep}[\normalsize\normalfont\ ]% - {\settowidth{\@tempdima}{#1}\edef\exE@labelsep{\the\@tempdima}} -\define@key{exEnum}{continue}[]{\let\eq@ExEnumResetCnt\@empty} -\def\eq@ExEnumResetCnt{\setcounter{questionno}{0}} -\setkeys{exEnum}{labelwidthTo,topsep,parsep,itemsep,labelsep}% -\newenvironment{exEnumerate}[1][]{\everypar{}% - \toks@=\expandafter{#1}% - \edef\tempexp{\noexpand\setkeys{exEnum}{\the\toks@}}\tempexp - \eq@ExEnumResetCnt - \let\afterlabelhskip\@empty - \let\solnhspace\@empty - \aboveexskip{0pt}\belowexskip{\exE@parsep}%\belowexskip{0pt}% - \def\eqexheader@wrapper{\makebox[0pt][r]{% - \hypertarget{qex.\the@exno}{\eqexheader}\hspace{\labelsep}}}% - \def\exbookmarkfmt{\thequestionno.\space} - \def\partbookmarkfmt{(\thepartno)\space} - \def\setENum{\Elabel\if\exerstar*\thequestionno(\thepartno)\else - \thequestionno\fi}% - \ifExSolutionsSet\else - \writeToExSolns{^^J\protect\begin{exEnumerate}^^J}\fi - \list{}{% - \ifx\exE@labelwidth\@empty - \settowidth{\labelwidth}{\exE@labelwidthTo}\else - \setlength{\labelwidth}{\exE@labelwidth}\fi - \setlength{\topsep}{\exE@topsep}% - \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi - \setlength{\parsep}{\exE@parsep}% - \setlength{\itemsep}{\exE@itemsep}% - \setlength{\itemindent}{0pt}% - \setlength{\listparindent}{0pt}% - \setlength{\itemindent}{0pt}% - \settowidth{\labelsep}{\normalfont\ }% - \setlength{\leftmargin}{\labelwidth}% - }\item\relax}{\ifExSolutionsSet\else - \writeToExSolns{\protect\end{exEnumerate}^^J}\fi -\endlist} -\newenvironment{enumex}{% - \renewcommand\exlabelformat{\textbf{\thequestionno.}}% - \renewcommand\exsllabelformat - {\protect\makebox[0pt][r]{\protect\textbf{\thequestionno.\ }}}% -\begin{exercise}[questionno]}{\end{exercise}} -\newenvironment{enumex*}{% - \renewcommand\exlabelformatwp{\textbf{\thequestionno.}}% - \renewcommand\exsllabelformatwp - {\protect\makebox[0pt][r]{\protect\textbf{\thequestionno.}\ }% - \protect\textbf{(\thepartno)}\ }% -\begin{exercise*}[questionno]}{\end{exercise*}} -\def\includeexersolutions{\@ifstar - {\let\resetEXsolns\relax\includeexersolutionsi} - {\def\resetEXsolns{\global\let\include@solutions\relax}% - \includeexersolutionsi}% -} -\newcommand{\includeexersolutionsi}[1][]{% - \filterFor{#1}\includeexersolutionsii -} -\def\includeexersolutionsii{% - \if\exerSolns@ExtFile\eq@NO - \include@solutions - \resetEXsolns - \let\eqFilterArg\@empty - \fi -} -\long\def\gobbleToEndEXt#1\endeqEXt{% - \ifeqforpaper\expandafter\@gobbletwo\fi} -\newcommand\filterFor[1]{\def\eqFilterArg{#1}} -\newcommand\inclEXtFilter[2]{\def\eqargii{#2}\ifx\eqargii\eqFilterArg - \else\expandafter\gobbleToEndEXt\fi} -\newcommand\useEXtFilter{\let\eqEXt\inclEXtFilter} -\let\eqsolutionshook\@empty -\let\eq@solutionshook\@empty -\let\priorexsectitle\@empty -\let\priorexslinput\@empty -\def\exerSolnsHeadnToc{\section*{\exsectitle}% - \addcontentsline{toc}{section}{% - \@ifundefined{web@latextoc}{}{% - \ifx\web@latextoc\eq@YES\else - \protect\numberline{}\fi}\exsectitle}} -\@ifpackageloaded{web}{\def\eq@normallheader{\lheader{\rightmark}}} - {\let\eq@normallheader\relax} -\@ifpackageloaded{web}{\def\eq@defaultlheader{\lheader{\aeb@setmarks}}} - {\let\eq@defaultlheader\relax} -\newif\ifExSolutionsSet \ExSolutionsSetfalse -\newcommand{\exerSolnInput} -{% - \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd%\ifvspacewithsolns - \eqe@IWO\@auxout{\string\expandafter\string\gdef - \string\csname\space eqExamQuesLastPage\string\endcsname - {\arabic{page}}}\fi} - \let\webnewpage\relax - \ifsolutionsonly\else\immediate\closeout\ex@solns\fi - \ifeq@nosolutions\else - \iftherearesolutions - \ifsolutionsonly\eq@solutionshook - \eqsolutionshook - \else - \newpage\eq@solutionshook - \eqsolutionshook\markright{}\eq@normallheader - \fi - \markright{\exsectitle}% - \ifx\webnewpage\relax - \def\webnewpage{\global\let\webnewpage\newpage}% - \fi - \priorexsectitle\exerSolnsHeadnToc\priorexslinput - \InputIfFileExists{\jobname.sol} - {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz} - {!!! Solutions to exercises not found}}% - \global\ExSolutionsSetfalse - \newpage\eq@defaultlheader - \fi - \fi -} -\def\include@solutions{% - \if\exerSolns@ExtFile\eq@NO - \exerSolnInput - \fi -} -\let\eqexpdfentry=0 -\let\eq@postexerciseHook\relax -\def\eq@postexerciseHook@BM{% - \xdef\Hy@currentbookmarklevel{\eq@currentbookmarklevel}} -{\count0=\value{tocdepth} -\advance\count0by2 \xdef\eqbmkmrkdepth{\the\count0}} -\@ifundefined{Hy@bookmarksdepth} - {\setcounter{tocdepth}{\eqbmkmrkdepth}} - {\hypersetup{bookmarksdepth=\eqbmkmrkdepth}} -\newcommand{\exbookmarkfmt}{\exlabel\space\theeqexno.\space} -\newcommand{\partbookmarkfmt}{(\thepartno)\space} -\newcommand{\expdfbookmark}[1]{\relax - \def\expdfbookmarktitle{#1}% - \ifx\eq@postexerciseHook\relax - \let\eq@postexerciseHook\eq@postexerciseHook@BM - \else - \let\eq@postexerciseHook@save\eq@postexerciseHook - \def\eq@postexerciseHook@BM@plus{\eq@postexerciseHook@save - \eq@postexerciseHook@BM}% - \let\eq@postexerciseHook\eq@postexerciseHook@BM@plus - \fi - \if\exerstar*% - \if\eqexpdfentry0\let\eqexpdfentry=1 - \xdef\eq@currentbookmarklevel{\Hy@currentbookmarklevel}% - \def\eqex@next{\subpdfbookmark{\exbookmarkfmt#1}% - {qex.\the@exno}}% - \else - \def\eqex@next{\belowpdfbookmark{\partbookmarkfmt#1}% - {qex.\the@exno.\thepartno}}% - \fi - \else - \xdef\eq@currentbookmarklevel{\Hy@currentbookmarklevel}% - \def\eqex@next{\subpdfbookmark{\exbookmarkfmt#1}% - {qex.\the@exno}}% - \fi - \eqex@next\ignorespaces -} -\ifeq@noforms\endinput\fi -\definecolor{webgreen}{rgb}{0,.6,0} -\newcommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}} -\proofingsymbolColor{red} -\let\@proofsymbolredefined=0 -\newcommand{\proofingsymbol}[1]{\let\@proofsymbolredefined=1% - \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}} -\def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{\ding{52}}} -\def\setproofingsymbol{% - \if\@proofsymbolredefined1\else - \@ifpackageloaded{pifont}{\proofingsymbol{\ding{52}}} - {\proofingsymbol{$\bullet$}}\fi -} -\AtBeginDocument{\setproofingsymbol} -\newcommand{\prior@questionsHook}{} -\let\qMark@Hook\@empty -\let\aebtitleQuiz\@empty -\newcommand{\post@questionsHook}{} -\newcommand{\quesNumColor}[1]{\def\eq@quesNumCol{#1}} -\quesNumColor{blue} -\renewcommand{\theeqquestionnoi}{\arabic{eqquestionnoi}} -\newcommand{\labeleqquestionnoi}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoi.} -\renewcommand\theeqquestionnoii{(\alph{eqquestionnoii})} -\newcommand{\labeleqquestionnoii}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoii} -\renewcommand\theeqquestionnoiii{(\roman{eqquestionnoiii})} -\newcommand{\labeleqquestionnoiii}{% - \color{\eq@quesNumCol}\bfseries\theeqquestionnoiii} -\define@key{props@ques}{labelwidthTo}% - [\normalsize\normalfont\bfseries00.]% - {\def\propQ@labelwidthTo{#1}} -\define@key{props@ques}{labelwidth}[]{\def\propQ@labelwidth{#1}} -\let\propQ@labelwidth\@empty -\define@key{props@ques}{topsep}[\the\topsep]{\edef\propQ@topsep{#1}} -\define@key{props@ques}{partopsep}[\the\partopsep]% - {\edef\propQ@partopsep{#1}} -\define@key{props@ques}{parsep}[\the\parsep]{\edef\propQ@parsep{#1}} -\define@key{props@ques}{itemsep}[\the\itemsep]{\edef\propQ@itemsep{#1}} -\define@key{props@ques}{labelsepTo}[\normalsize\normalfont\ ]% - {\def\propQ@labelsepTo{#1}} -\define@key{props@ques}{labelsep}[\@empty]{\def\propQ@labelsep{#1}} -\let\propQ@labelsep\@empty -\define@key{props@ques}{color}[blue]{\quesNumColor{#1}} -\setkeys{props@ques}{labelwidthTo,topsep,partopsep,parsep,% - itemsep,labelsepTo,color}% -\newenvironment{questions}[1][] -{% - \ifnum\@eqquestiondepth>\tw@\@toodeep\else - \advance\@eqquestiondepth\@ne\fi - \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% - \toks@=\expandafter\expandafter\expandafter{#1}\expandafter - \xdef\csname quesOpts\@quesctr\endcsname{\the\toks@}% - \edef\tempexp{\noexpand\setkeys{props@ques}{\the\toks@}}\tempexp - \list{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}% - \global\let\eqQT\eq@na% - {\@tempcnta=0 \let\@thispr@b\@empty - \@whilenum\@tempcnta<\@eqquestiondepth\do{\advance\@tempcnta\@ne - \ifx\@thispr@b\@empty\edef\@thispr@b{% - \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\else - \edef\@thispr@b{\@thispr@b% - \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\fi - }\xdef\@currentQues{\@thispr@b}}% - \makebox[\labelwidth][r]{\normalfont\@nameuse{label\@quesctr}}% - \xdef\eq@pageThisQ{\the\c@page}% - \post@questionsHook}{\usecounter{\@quesctr}% - \ifx\propQ@labelsep\@empty - \settowidth{\labelsep}{\propQ@labelsepTo}\else - \setlength{\labelsep}{\propQ@labelsep}\fi - \ifx\propQ@labelwidth\@empty - \settowidth{\labelwidth}% - {\propQ@labelwidthTo\hspace{\labelsep}}\else - \settowidth{\labelwidth}{\hspace{\propQ@labelwidth}% - \hspace{\labelsep}}\fi - \setlength{\topsep}{\propQ@topsep}% - \setlength{\partopsep}{\propQ@partopsep}% - \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi - \setlength{\parsep}{\propQ@parsep}% - \setlength{\itemsep}{\propQ@itemsep}% - \setlength{\itemindent}{0pt}% - \setlength{\leftmargin}{\labelwidth}% - }% -}{\endlist} -\def\pushquestions{\expandafter\xdef\csname save\@quesctr\endcsname - {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}} -\def\popquestions{% - \begin{questions}[\csname quesOpts\@quesctr\endcsname]% - \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}% - \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}} -\newcommand{\priorsqhook}[1]{\def\sq@priorhook{#1}} -\priorsqhook{} -\newcommand{\abovesqskip}[1]{\def\sq@aboveskip{#1}} -\abovesqskip{\par\medskip} -\long\def\endsqhook#1{\def\sq@afterhook{#1}} -\endsqhook{} -\def\@shortquizCnt{0} -\def\@sqGenBaseName{eqSqBn\@shortquizCnt} -\let\sqhspace\space -\let\ListOfSQuizNames\@empty -\newenvironment{shortquiz} -{% - \xdef\eq@pageThisQ{\the\c@page}% - \let\@currentQues\@empty - {\count0=\@shortquizCnt \advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0}}% - \goodbreak\@ifstar{\sqForms\@shortquiz}% - {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else - \def\sqstar{}\sqLinks\fi\@shortquiz}% -}{\aeb@endshortquiz} -\newenvironment{shortquiz*} -{% - \xdef\eq@pageThisQ{\the\c@page}% - {\count0=\@shortquizCnt\advance\count0by1\relax - \xdef\@shortquizCnt{\the\count0 }}% - \sqForms\@shortquiz -}{\aeb@endshortquiz} -\def\@shortquiz{\@ifnextchar[% - {\@@shortquiz}{\@@shortquiz[\@sqGenBaseName]}} -\def\sq@setCLN#1{\ifx\aebTitleQuiz\@empty - \protected@edef\@currentlabelname{#1}\else - \protected@edef\@currentlabelname{\@currentlabelname}\fi -} -\let\isQZ=q \let\isSQZ=s -\def\sq@IDTxtField{\makebox[0pt][l]{\textField[\autoCenter{n}\BC{}\BG{} - \S{S}\textSize{0}\Ff{\FfReadOnly} - \AA{\AAFormat{% - var \oField=new Object;\r - \oField.Grp={}; - \ifx\defaultColorJSLoc\@empty\else\r - \oField.DefaultColorJSLoc=\defaultColorJSLoc;\fi - \ifx\rghtColorJSLoc\@empty\else\r - \oField.RightColorJSLoc=\rghtColorJSLoc;\fi - \ifx\wrngColorJSLoc\@empty\else\r - \oField.WrongColorJSLoc=\wrngColorJSLoc;\fi - \ifx\rghtAnsSymbJSLoc\@empty\else\r - \oField.RightAnsSymbJSLoc=\rghtAnsSymbJSLoc;\fi - \ifx\wrngAnsSymbJSLoc\@empty\else\r - \oField.WrongAnsSymbJSLoc=\wrngAnsSymbJSLoc;\fi - }}]{sqID\oField}{0bp}{0bp}}% -} -\def\qz@IDTxtField{\makebox[0pt][l]{\textField[\autoCenter{n}\BC{}\BG{} - \S{S}\textSize{0}\Ff{\FfReadOnly} - \AA{\AAFormat{if(typeof aQuizzesInDoc=="undefined")\r\t - var aQuizzesInDoc=new Array();\r - if (aQuizzesInDoc.indexOf("\oField")) aQuizzesInDoc.push("\oField"); - }}]{qzID\oField}{0bp}{0bp}}} -\let\eqQuizType\relax -\def\@@shortquiz[#1]{%\begingroup - \gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}% - \edef\tmp@Exp{\noexpand\g@addto@macro\noexpand - \ListOfSQuizNames{,#1}}\tmp@Exp - \global\let\eqQzQuesList\@empty - \let\eq@AddProbToQzQuesList\relax - \edef\@currentlabel{\@shortquizCnt}% - \edef\@currentHref{shortquiz.\@shortquizCnt}% - \global\let\eqQuizType\isSQZ\let\@qzsolndest\@empty - \if\sqstar*\relax - \let\@Ans\Ans@sq@f - \ifx\oField\@empty - \typeout{^^JExerquiz: Base field name required when using - shortquiz with '*' option}% - \PackageInfo{exerquiz}{Assuming link style^^J}% - \let\@Ans\Ans@sq@l - \fi - \else - \let\@Ans\Ans@sq@l - \fi - \setcounter{questionno}{0}% - \let\answers\answers@sq - \let\endanswers\endanswers@sq - \let\manswers\manswers@sq - \let\endmanswers\endmanswers@sq - \let\solution\solution@sq - \let\endsolution\endsolution@sq - \let\ifstaroption\eq@ifstaroption - \if\eq@tq@star*% - \def\sqlabel{\aebtitleQuiz\@gobbletwo}% - \fi - \sq@aboveskip\sq@priorhook - \@ifundefined{PointsOnLeft}% - {\sq@setCLN{\eq@defaultShortQuizLabelName}% - \ifx\sqlabel\@empty\else\noindent\fi - \hypertarget{sqH\@currentHref}{}\sq@IDTxtField - \ifx\sqlabel\@empty\else\expandafter - \sqlabel\expandafter\sqhspace\fi - {\set@typeset@protect\aebtitleQuiz}}{}\ignorespaces -} -\newcommand\belowsqskip[1]{\def\aftershortquizskip{#1}} -\belowsqskip{\medskip} -\def\aeb@endshortquiz{\setcounter{quizno}{0}% - \sq@afterhook - \global\let\aebtitleQuiz\@empty - \global\let\aebTitleQuiz\@empty - \global\let\eq@tq@star\relax - \global\let\sqlabel\eq@sqlabel - \global\let\sqslrtnlabel\eq@sqslrtnlabel - \global\let\sqsllabel\eq@sqsllabel - \par\aftershortquizskip -} -\def\sqLinks{\def\sqstar{}}\sqLinks -\def\sqForms{\def\sqstar{*}} -\let\eq@tq@star\relax -\def\qzPriorSolutionAfterHook{\smallskip} -\let\sqPostHeaderHook\@empty -\let\qPostHeaderHook\@empty -\let\eq@sqPostHeaderHook\@empty -\let\eq@qPostHeaderHook\@empty -\let\prior@eqQt\@empty -\let\prior@eqSQt\@empty -\def\sqsolafterhspace{\space} -\newif\ifmakeQzSlLocal \makeQzSlLocalfalse -\def\makeQzSolnsLocalOn{\makeQzSlLocaltrue} -\def\makeQzSolnsLocalOff{\makeQzSlLocalfalse} -\def\solution@sq{\let\eq@next\relax - \ifx\@qzsolndest\@empty - \PackageWarning{exerquiz}% - {* Solutions unexpected here, will *\MessageBreak - * assume solutionsafter option *}% - \eq@solutionsaftertrue - \fi - \ifeq@solutionsafter - \par\qzPriorSolutionAfterHook\noindent - \if!\sqsolafter!\else - \sqsolafter\sqsolafterhspace\fi\ignorespaces - \else - \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns - \set@display@protect - \immediate\write\verbatim@out{% - \ifmakeQzSlLocal\protect\begingroup^^J\fi - \if\eqQuizType\isQZ - \ifx\prior@eqQt\@empty\else\prior@eqQt\fi - \protect\eqQt{\eqFilterArg}\else - \ifx\prior@eqSQt\@empty\else\prior@eqSQt\fi - \protect\eqSQt{\eqFilterArg}\fi - \protect\quizSolnHeader\if\eqQuizType\isQZ\ifx\allow@peek\eq@NO - [{\curr@quiz}{\currQuizStartPage}]\fi\fi - {\@qzsolndest}{\sqsllabel}\protect\eqterminex - \if\eqQuizType\isQZ\expandafter\eq@qPostHeaderHook - \expandafter\qPostHeaderHook\else - \expandafter\eq@sqPostHeaderHook - \expandafter\sqPostHeaderHook\fi}% - \set@typeset@protect - \expandafter\verbatimwrite\fi -} -\let\qzSolutionsAfterHook\@empty -\def\endsolution@sq -{% - \ifeq@solutionsafter - \eq@fititin{\mbox{\sqslrtnlabel}}\par\qzSolutionsAfterHook - \aftergroup\ignorespaces - \else - \endverbatimwrite - \ifx\@qzsolndest\@empty\else\set@display@protect - \immediate\write\verbatim@out{\eqSqSolnTrailer}% - \set@typeset@protect - \fi - \fi - \global\let\@qzsolndest\@empty -} -\newcommand\pnphDflt{.1\textheight} -\newcommand{\promoteNewPageHere}[1][\pnphDflt]{% - \@ifnextchar\bgroup{\eq@promoteNewPageHere} - {\eq@promoteNewPageHere{#1}}% -} -\def\eq@promoteNewPageHere#1{\par - \bgroup\@nobreakfalse\addpenalty{-500}% - \setlength{\@tempdimb}{#1}% - \@tempdima \pagegoal \advance \@tempdima -\pagetotal - \ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak - \else\newpage\penalty1\fi\fi\egroup -} -\newcommand{\saveDest}[1][]{% - \def\sd@arg{#1}\ifx\sd@arg\@empty - \xdef\holdDest{\@qzsolndest}\else - \xdef\@qzsolndest{#1}\xdef\holdDest{#1}\fi} -\def\useDest{\def\@qzsolndest{\holdDest}} -\let\holdDest\@empty -\def\fpAfterSolutionsSkip{\par\medskip} -\let\eqSqSolnTrailerHook\@empty -\let\eqQzSolnTrailerHook\@empty -\newcommand\eqSqSolnTrailer{% - \if\eqQuizType\isQZ - \eqQzSolnTrailerHook - \protect\ReturnTo{page.\eq@pageThisQ}% - {\protect\mbox{\sqslrtnlabel}}\string\endeqQt - \else - \eqSqSolnTrailerHook - \protect\ReturnTo{page.\eq@pageThisQ}% - {\protect\mbox{\sqslrtnlabel}}\string\endeqSQt% - \fi - \ifeqforpaper\protect\fpAfterSolutionsSkip\fi^^J% - \ifmakeQzSlLocal\protect\endgroup^^J\fi -} -\let\eqSQt\@gobble -\let\endeqSQt\relax -\let\eqQt\@gobble -\let\endeqQt\relax -\let\prior@quizSolnHeaderHook\@empty -\newcommand\quizSolnHeader[3][]{% - \prior@quizSolnHeaderHook - \ifeqforpaper\else\webnewpage\fi\noindent - \def\eq@argi{#1}% - \ifx\eq@argi\@empty\else\noPeek#1\fi - \hypertarget{#2}{#3}\relax - \solnspace -} -\def\AllowPeeking{\global\let\allow@peek\eq@YES}\AllowPeeking -\def\NoPeeking{\global\let\allow@peek\eq@NO} -\def\noPeekAction#1#2{% - /AA <> >> -} -\newif\iftherearequizsolutions \therearequizsolutionsfalse -\let\aeb@FLOverride\relax -\def\includequizsolutions{\@ifstar - {\let\resetQZtsolns\relax\includequizsolutionsi} - {\def\resetQZtsolns{\global\let\include@quizsolutions\relax}% - \includequizsolutionsi}% -} -\newcommand{\includequizsolutionsi}[1][]{% - \filterFor{#1}\includequizsolutionsii -} -\def\includequizsolutionsii{% - \include@quizsolutions - \resetQZtsolns - \let\eqFilterArg\@empty -} -\let\eqqzsolutionshook\@empty -\let\priorsqslsectitle\@empty -\let\priorsqslinput\@empty -\def\quizSolnsHeadnToc{\section*{\sqslsectitle}% - \addcontentsline{toc}{section}{% - \@ifundefined{web@latextoc}{}{% - \ifx\web@latextoc\eq@YES\else - \protect\numberline{}\fi}\sqslsectitle}} -\newcommand{\quizSolnInput} -{% - \global\let\webnewpage\relax - \immediate\closeout\quiz@solns - \ifeq@noquizsolutions\else - \iftherearequizsolutions\newpage\markright{}% - \eq@normallheader\markright{\sqslsecrunhead}% - \ifx\webnewpage\relax - \def\webnewpage{\global\let\webnewpage\newpage}\fi - \priorsqslsectitle\quizSolnsHeadnToc\priorsqslinput - \InputIfFileExists{\jobname.qsl}{}% - {!!! Solutions to quizzes not found} - \eqqzsolutionshook - \newpage\eq@defaultlheader - \fi - \fi -} -\def\include@quizsolutions{\quizSolnInput} -\newcommand{\priorqhook}[1]{\def\q@priorhook{#1}} -\priorqhook{} -\newcommand{\aboveqskip}[1]{\def\q@aboveskip{#1}} -\aboveqskip{\par\medskip} -\newcommand{\qhspace}{\space} -\def\endqhook#1{\def\eq@prior@endQuiz{#1}} -\endqhook{} -\newcommand{\belowqHooknSkip}[1]{\def\eq@belowqskip{#1}} -\belowqHooknSkip{\medskip} -\def\belowqskip{\belowqHooknSkip} -\let\eq@initializeServerSubmit\@empty -\newcommand{\quiztype}[1]{% - \def\@quiztype{#1}\def\aeb@FLOverride{#1}} -\let\@quiztype\@empty -\newcommand{\defaultquiztype}{\let\@quiztype\@empty - \let\aeb@FLOverride\relax} -\let\aeb@FLOverride\relax -\def\@setFormLinkType{% - \if\qstar*% - \ifx\aeb@FLOverride\relax% - \def\@@quiztype{f}% - \else - \if\aeb@FLOverride l\def\@@quiztype{l}\else - \def\@@quiztype{f}\fi - \fi - \else - \ifx\aeb@FLOverride\relax - \def\@@quiztype{l}% - \else - \if\aeb@FLOverride f\def\@@quiztype{f}\else - \def\@@quiztype{l}\fi - \fi - \fi -} -\def\setdefault@Ans{\@setFormLinkType - \expandafter\global\expandafter - \let\expandafter\@Ans\expandafter=\csname Ans@\@@quiztype\endcsname -} -\newcommand\useForms{\def\aeb@FLOverride{f}} -\newcommand\useLinks{\def\aeb@FLOverride{l}} -\newcommand\restoreFLTypeDefault{\global\let\aeb@FLOverride\relax} -\let\aeb@FLOverride\relax -\newenvironment{quiz} -{\goodbreak\@ifstar{\gdef\qstar{*}\@quiz*f}{\gdef\qstar{x}\@quiz*l}} - {\aeb@endquiz} -\def\@quizCnt{0} -\let\ListOfQuizNames\@empty -\def\@quiz*#1#2{% - \xdef\eq@pageThisQ{\the\c@page}% - \let\@currentQues\@empty - \global\let\eqQzQuesList\@empty - \global\let\pointValuesArray\@empty - \global\let\ptypeArray\@empty - \global\let\corrAnsArray\@empty - {\count0=\@quizCnt\advance\count0by1\relax - \xdef\@quizCnt{\the\count0 }}% - \edef\@currentlabel{\@quizCnt}% - \edef\@currentHref{quiz.\@quizCnt}% - \sq@setCLN{\eq@defaultQuizLabelName}% - \setcounter{eqpointvalue}{0}\setcounter{questionno}{0}% - \eq@initializeServerSubmit - \global\let\eqQuizType\isQZ %\tabcolsep=0pt - \gdef\eqPTs{1}\global\let\eqQT\eq@na - \g@addto@macro\ListOfQuizNames{,#2}% - \gdef\quiz@total{#2}\xdef\curr@quiz{#2}\xdef\oField{#2}% - \xdef\currQuiz{#2}\xdef\currQuizStartPage{\thepage}% - \xdef\aPointType{0}% - \def\fieldJSStr@CMD{\fieldJSStr*[noquotes]\bqlabelISO}% - \expandafter\fieldJSStr@CMD\expandafter{\bqlabelISO}% - \ifx\@quiztype\@empty\gdef\@@quiztype{#1}\else - \xdef\@@quiztype{\@quiztype}\fi - \let\@qzsolndest\@empty - \let\answers\answers@q\let\endanswers\endanswers@q - \let\manswers\manswers@q\let\endmanswers\endanswers@q - \let\solution\solution@sq\let\endsolution\endsolution@sq - \expandafter% - \xdef\csname titleOf\currQuiz\endcsname{\aebTitleQuiz}% - \q@aboveskip\q@priorhook\noindent\hypertarget{qzH\@currentHref}{}% - \eq@beginQuiz\qhspace{\set@typeset@protect\aebtitleQuiz}% - \ignorespaces -} -\def\aeb@endquiz -{% - \eq@prior@endQuiz\noindent\eq@endQuiz - \global\let\eqQuizType\relax - \global\let\aebtitleQuiz\@empty - \global\let\aebTitleQuiz\@empty - \global\let\bqlabel\eq@bqlabel % reset beginning label to default - \global\let\eqlabel\eq@eqlabel % reset ending label to default - \global\let\sqsllabel\eq@sqsllabel - \global\let\sqslrtnlabel\eq@sqslrtnlabel - \global\let\bqlabelISO\eq@bqlabelISO - \eq@belowqskip -} -\newenvironment{quiz*}{\goodbreak\gdef\qstar{*}\@quiz*f}{\aeb@endquiz} -\newcommand\eq@beginQuiz{\eq@BeginQuizLink} -\newcommand\eq@endQuiz{\eq@EndQuizLink} -\newcommand\useBeginQuizButton[1][] - {\renewcommand\eq@beginQuiz{\eq@BeginQuizButton[#1]}} -\newcommand\useEndQuizButton[1][] - {\renewcommand\eq@endQuiz{\eq@EndQuizButton[#1]}} -\newcommand\useBeginQuizLink - {\renewcommand\eq@beginQuiz{\eq@BeginQuizLink}} -\newcommand\useEndQuizLink - {\renewcommand\eq@endQuiz{\eq@EndQuizLink}} -\newcommand\@initQuiz{% - var \curr@quiz=new Object();\jsR - lstOfQuizzes["\curr@quiz"]=\curr@quiz;\jsR - \curr@quiz.oAlertCheck={bAfterValue:false};\jsR - \curr@quiz.Grp={}; - \ifx\defaultColorJSLoc\@empty\else\jsR - \oField.DefaultColorJSLoc=\defaultColorJSLoc;\fi - \ifx\rghtColorJSLoc\@empty\else\jsR - \oField.RightColorJSLoc=\rghtColorJSLoc;\fi - \ifx\wrngColorJSLoc\@empty\else\jsR - \oField.WrongColorJSLoc=\wrngColorJSLoc;\fi - \ifx\partialColorJSLoc\@empty\else\jsR - \oField.PartialColorJSLoc=\partialColorJSLoc;\fi - \ifx\rghtAnsSymbJSLoc\@empty\else\jsR - \oField.RightAnsSymbJSLoc=\rghtAnsSymbJSLoc;\fi - \ifx\wrngAnsSymbJSLoc\@empty\else\jsR - \oField.WrongAnsSymbJSLoc=\wrngAnsSymbJSLoc;\fi - \ifx\corrAnsSymbJSLoc\@empty\else\jsR - \oField.CorrAnsSymbJSLoc=\corrAnsSymbJSLoc;\fi - \ifx\eqGradeScaleLoc\@empty\else\jsR - \oField.GradeScaleLoc=new Array(\eqGradeScaleLoc);\fi - \ifx\eqCorrLocalChoiceFully\@empty\else\jsR % dpsf07 - \oField.fullyCorrectLoc=\eqCorrLocalChoiceFully;\fi - \ifx\priorInitQuiz\@empty\else\jsR\priorInitQuiz\fi %\jsR - InitializeQuiz("\curr@quiz",\ifnocorrections0\else1\fi); - \ifx\eq@CGI\@empty\jsR\curr@quiz.isSubmitted=false;\else - \jsR\curr@quiz.isSubmitted=true;\fi - \jsR\curr@quiz.initializeWith=% -'InitializeQuiz("\curr@quiz",\ifnocorrections0\else1\fi);' - \ifx\postInitQuiz\@empty\else\jsR\postInitQuiz\fi -} -\newcommand{\priorInitQuiz}{} -\newcommand{\postInitQuiz}{} -\let\eq@submitURL\@empty -\let\eq@insertHiddenFields\@empty -\def\eq@@BeginQuizLinkActions -{% - \A{\JS{% - \@initQuiz - }}% -} -\def\eq@BeginQuizLinkDefaults{\Border{0 0 0}} -\let\bqlabelFmt\@empty -\def\eq@BeginQuizLink -{% - \qz@IDTxtField - \set@@Link{}{}{}{\color{\@linkcolor}\bqlabelFmt\bqlabel}{}% - {\eq@setWidgetProps\setLink@driver}% - {\eq@BeginQuizLinkDefaults\eq@@BeginQuizLinkActions\every@Link}% - \space\ignorespaces -} -\newcommand\priorSubmitQuiz{} -\newcommand\postSubmitQuiz{} -\def\eq@@EndQuizLinkActions{\A{\JS{% - if (!isQuizInitialized("\curr@quiz"))\jsR\jsT - eqAppAlert(InitMsg("\bqlabelISO"),3);\jsR - else {\jsR\jsT - if (\minQuizResp(\thequestionno)) {\jsR\jsT\jsT - \curr@quiz.PtValues=new % - Array(\pointValuesArray);\jsR\jsT\jsT - ProbType = [\ptypeArray];\jsR\jsT\jsT -\if@inclkey - \curr@quiz.CorrAns=(new % - Array(\corrAnsArray));\jsR\jsT\jsT -\fi - DisplayQuizResults("\curr@quiz",\theeqpointvalue,% - \thequestionno);\jsR\jsT\jsT - var h=this.getField("ScoreData.\curr@quiz");\jsR\jsT\jsT - h.value=Score+";"+NQuestions+";"% - +ptScore+";"+NPointTotal;\jsR\jsT\jsT - \eq@submitURL - \postSubmitQuiz - \jsT\jsT resetQuiz("\curr@quiz");\jsR\jsT - }\jsR - }}}% -} -\def\eq@EndQuizLinkDefaults{\Border{0 0 0}} -\let\eqlabelFmt\@empty -\def\eq@EndQuizLink -{% - \ifx\eq@CGI\@empty - \let\eq@submitURL\@empty - \let\eq@insertHiddenFields\@empty - \fi - \set@@Link{}{}{}{\color{\@linkcolor}\eqlabelFmt\eqlabel}{}% - {\eq@setWidgetProps\setLink@driver}% - {\eq@EndQuizLinkDefaults\eq@@EndQuizLinkActions\every@Link}% - \makebox[0pt][r]{\textField[\BC{}\autoCenter{n}]% - {htxtfld.\curr@quiz}{0bp}{0bp}}% - \makebox[0pt][r]{\eq@hiddenScoreData\eq@insertHiddenFields}% - \global\let\eq@CGI\@empty\ignorespaces -} -\def\BeginQuizButtonDefaults -{% - \CA{\bqlabel}\H{P}\F{\FPrint} - \BC{1 0 0}\BG{.7529 .7529 .7529}\W{1}\S{B} -} -\def\eq@@BeginQuizButtonActions -{% - \A{\JS{% - \@initQuiz - }}% -} -\newcommand\eq@BeginQuizButton[1][] -{% - \mbox{\qz@IDTxtField\push@@Button{#1}{beginQuiz.\curr@quiz}{}% - {\DefaultHeightOfWidget}{\eq@protect\A}% - {\eq@setButtonProps\eq@Button@driver}% - {\BeginQuizButtonDefaults\eq@@BeginQuizButtonActions - \every@ButtonField\every@BeginQuizButton}}% -} -\def\EndQuizButtonDefaults -{% - \CA{\eqlabel}\F{\FPrint}\BC{1 0 0} - \BG{.7529 .7529 .7529}\W{1}\S{B}\H{P} -} -\def\eq@@EndQuizButtonActions{\A{\JS{% - if (!isQuizInitialized("\curr@quiz"))\jsR\jsT - eqAppAlert(InitMsg("\bqlabelISO"),3);\jsR - else {\jsR\jsT - if (\minQuizResp(\thequestionno)&&_ModalNotOn){\jsR\jsT\jsT - \curr@quiz.PtValues=(new % - Array(\pointValuesArray));\jsR\jsT\jsT - ProbType=[\ptypeArray];\jsR\jsT\jsT -\if@inclkey - \curr@quiz.CorrAns=(new % - Array(\corrAnsArray));\jsR\jsT\jsT -\fi - DisplayQuizResults("\curr@quiz",\theeqpointvalue,% - \thequestionno);\jsR\jsT\jsT - var h=this.getField("ScoreData.\curr@quiz");\jsR\jsT\jsT - h.value=Score+";"+NQuestions+";"% - +ptScore+";"+NPointTotal;\jsR\jsT\jsT - \eq@submitURL - \postSubmitQuiz - \jsT\jsT resetQuiz("\curr@quiz");\jsR\jsT - }\jsR - }}}% -} -\newcommand{\eq@hiddenScoreData}{\makebox[0pt][r]{% - \textField[\BC{}\F{\FHidden}]{ScoreData.\curr@quiz}{0bp}{0bp}}} -\newcommand\eq@EndQuizButton[1][] -{% - \ifx\eq@CGI\@empty - \let\eq@submitURL\@empty - \let\eq@insertHiddenFields\@empty - \fi - \mbox{\push@@Button{#1}{endQuiz.\curr@quiz}{}% - {\DefaultHeightOfWidget}{\eq@protect\A}% - {\eq@setButtonProps\eq@Button@driver}% - {\EndQuizButtonDefaults\eq@@EndQuizButtonActions - \every@ButtonField\every@EndQuizButton}}% - \makebox[0pt][r]{\eq@hiddenScoreData\eq@insertHiddenFields}% - \global\let\eq@CGI\@empty -} -\newcommand\databaseName[1]{\gdef\db@Name{#1}}\def\db@Name{} -\newcommand\tableName[1]{\gdef\db@Table{#1}}\def\db@Table{} -\newcommand\eqCGI{\definePath{\eq@CGI}}\def\eq@CGI{} -\newcommand\eqSubmit{\hyper@normalise\eqSubmiti} -\def\eqSubmiti#1{\xdef\eq@CGI{"#1"}\eqSubmitii} -\def\eqSubmitii#1#2{\databaseName{#1}\tableName{#2}} -\providecommand{\rtnURL}{\definePath{\thisRtnURL}} -\let\thisRtnURL\@empty -\newcommand\addHiddenTextField[3][]{} -\newcommand\populateHiddenField[2]{} -\def\eqButtonDefaults -{% - \CA{\eq@local@CA}\AC{}\H{P}\W{1}\S{B} - \BC{1 0 0}\BG{.7529 .7529 .7529} -} -\def\@@eqButtonActions -{% - \A{\JS{if (isEndQuizPushed("\eqBaseName")){\jsR\jsT% - correctQuiz("\eqBaseName",\thequestionno);% - \ifusesumrytbls\jsR\jsT\else\jsR\fi - if (typeof correctSumryTbl == "function")\jsR\jsT\jsT - correctSumryTbl("\eqBaseName",\thequestionno);\jsR - } - }}% -} -\newcommand\eqButton[2][] -{% - \ifnocorrections\else - \def\eqBaseName{#2}% - \mbox{\push@@Button{#1}{correct.#2}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\eqButtonDefaults\@@eqButtonActions\every@ButtonField - \every@eqButton}}% - \fi -} -\def\CorrButton{\eqButton} -\def\rbMarkup@Defaults -{% - \BC{}\F{\FHidden}\Ff{\FfReadOnly}\textSize{12} - \textColor{0 g}\symbolchoice{check}\W{} -} -\newcommand\rbMarkup[1][]{% - \ifx\grpquestions\eq@One - \def\Fld@name{% - \oField.\thequestionno.\thegrpquestionno}\else - \def\Fld@name{\oField.\thequestionno}\fi - \mbox{\check@@Box{#1\V{Yes}\DV{Yes}}% - {rbmarkup.\Fld@name}% - {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\rbMarkup@Defaults\every@CheckBox\every@rbMarkup}}}% -\newcommand\minQuizResp{lowThreshold} -\newcommand\PTs{\@ifstar{\def\eq@star{*}\@PTs}{\def\eq@star{x}\@PTs}} -\def\@PTs#1{\gdef\eq@PTs{#1}\ifx\eq@PTs\@empty\gdef\eq@PTs{1}\fi - \global\let\eqPTs\eq@PTs\global\let\eq@PTs\@empty - \if\eq@star*\else\PTs@Hook\fi} -\def\eq@PTs{0} % initialize this variable -\newcommand\QT[1] -{% - \gdef\eq@qT{#1}\ifx\eq@qT\@empty\global\let\eq@qT\eq@na\fi - \global\let\eqQT\eq@qT\global\let\eq@qT\eq@na -} -\def\eq@na{na} % not applicable -\let\eq@qT\eq@na -\newcommand\PTsHook[1]{\def\PTs@Hook{#1}} -\let\PTs@Hook\@empty -\let\eq@PTs\@empty -\newcommand\eqGradeScale{% - "A",[90, 100],"B",[80,90],"C",[70,80],"D",[60,70],"F",[0,60]} -\let\eqGradeScaleLoc\@empty -\newcommand{\resetGradeScaleLoc}{\global\let\eqGradeScaleLoc\@empty} -\def\tallywidth#1{\def\TBW{#1}} -\def\TBW{15bp} -\def\DefaultHeightOfWidget{11bp} -\def\RadioFieldSize{11bp} -\def\RBW{2in} % Response Box width (math,txt, txtpc, answer field) -\def\SFW{1.5in} % Score Field Width -\def\GFW{20pt} % Grade Field Width -\def\PtFW{1.5in} % Point Field Width -\def\PcFW{1.5in} % Percent Field Width -\def\ScoreFieldDefaults -{% - \Ff{\FfReadOnly}\BC{1 0 0}\BG{}\S{S} - \DV{\eqScore}\V{\eqScore}\W{1} -} -\newcommand\ScoreField[2][] -{% - \mbox{\text@@Field{#1}{ScoreField.#2}{\SFW}% - {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% - {\ScoreFieldDefaults\every@eqTextField\every@ScoreField}}% -} -\def\GradeFieldDefaults -{% - \textColor{0 0 1 rg}\BC{1 0 0}\BG{1 1 1}\S{S} - \Ff{\FfReadOnly}\Q{1}\W{1} -} -\newcommand\GradeField[2][] -{% - \mbox{\text@@Field{#1}{GradeField.#2}{\GFW}% - {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% - {\GradeFieldDefaults\every@eqTextField\every@GradeField}}% -} -\def\AnswerFieldDefaults -{% - \BC{0 0 0}\S{S}\Ff{\FfReadOnly}\W{1}% - \presets{\eq@resetAnsFieldOnClose}% -} -\let\eq@resetAnsFieldOnClose\@empty -\newcommand{\noResetAnsFieldOnClose}{% - \global\let\eq@resetAnsFieldOnClose\@empty} -\newcommand{\resetAnsFieldOnClose}{% - \gdef\eq@resetAnsFieldOnClose{% - \AApageclose{this.resetForm(["\Fld@name"]);}}} -\newcommand\AnswerField[2][] -{% - \mbox{\text@@Field{#1}{Ans.#2}{\RBW}{\DefaultHeightOfWidget}% - {}{\eq@setWidgetProps\eq@TextField}% - {\AnswerFieldDefaults\every@eqTextField\every@AnswerField}}% -} -\newcommand\autoAnswerField{% - \@ifundefined{lfooter}{\def\eq@next{\eq@autoAnswerFieldgobble}% - \PackageError{exerquiz}{The \string\autoAnswerField\space - command\MessageBreak requires the web package}{Use web package} - }{% - \PackageInfo{exerquiz}{% - For this auto answer field feature to run\MessageBreak - the webheadings pagestyle of the web package\MessageBreak - is required}\def\eq@next{\eq@autoAnswerField}% - \ifx\web@lfoot\@empty\else - \PackageWarning{exerquiz}{The left running footer already in - use\MessageBreak Will overwrite what is there now. - Better fix it.}\fi - }% - \eq@next -} -\newcommand\eq@autoAnswerFieldgobble[1][]{\relax} -\newcommand\autoAnsFldRaiseBox[1]{\def\ef@aAFRB{#1}} -\autoAnsFldRaiseBox{0pt} -\let\autoAFOpts\@empty -\newcommand\eq@autoAnswerField[1][]{\gdef\autoAFOpts{#1}% - \def\eq@insertAnswerField{\AnswerField[#1]{\currQuiz}}% - \eq@@autoAnswerField -} -\newcommand\eq@@autoAnswerField{\lfooter{\ifIsRespBox - \raisebox{\ef@aAFRB}{\eq@insertAnswerField}% - \global\IsRespBoxfalse\fi}% -} -\newcommand\manualAnswerField[1][\autoAFOpts]{% - \expandafter\AnswerField\expandafter[#1]{\currQuiz}} -\def\PointsFieldDefaults -{% - \rawPDF{}\BC{1 0 0}\BG{}\W{1}\S{S}\Ff{\FfReadOnly} - } -\newcommand\PointsField[2][] -{% - \mbox{\text@@Field{#1}{PointsField.#2}{\PtFW}% - {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% - {\PointsFieldDefaults\every@eqTextField\every@PointsField}}% -} -\def\PercentFieldDefaults -{% - \rawPDF{}\BC{1 0 0}\BG{}\W{1}\S{S}\Ff{\FfReadOnly}% -} -\newcommand\PercentField[2][] -{% - \mbox{\text@@Field{#1}{PercentField.#2}{\PcFW}% - {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% - {\PercentFieldDefaults\every@eqTextField\every@PercentField}}% -} -\newcommand\RestoreScoreField -{% - \global\let\eqScore\eq@Score - \global\let\eqOutOf\eq@OutOf -} -\def\DeclareQuiz#1{\edef\oField{#1}% - \edef\thisQuiz{#1}\edef\curr@quiz{#1}% - \edef\currQuiz{#1}\edef\curr@quiz{#1}% -} -\let\Quiz\DeclareQuiz -\def\aeb@noindgobble{\noindent\@gobbletwo} -\let\startQuizHere\relax -\let\endQuizHere\relax -\let\dockQuiz\relax -\newcommand\floatQuiz{% - \global\let\eq@beginQuiz@saved\eq@beginQuiz - \global\let\eq@endQuiz@saved\eq@endQuiz - \global\let\startQuizHere\eq@beginQuiz - \global\let\endQuizHere\eq@endQuiz - \global\let\eq@beginQuiz\aeb@noindgobble - \global\let\eq@endQuiz\@empty - \global\let\dockQuiz\eq@dockQuiz -} -\newcommand\eq@dockQuiz{% - \global\let\eq@beginQuiz\eq@beginQuiz@saved - \global\let\eq@endQuiz\eq@endQuiz@saved - \global\let\startQuizHere\relax - \global\let\endQuizHere\relax - \global\let\eq@beginQuiz@saved\relax - \global\let\eq@endQuiz@saved - \global\let\dockQuiz\relax -} -\def\fancyQuizHeaders{% - \global\let\eq@sqsllabel@fancy@save\eq@sqsllabel - \gdef\eq@sqsllabel{\eq@fancyQuizHeaders}} -\def\eq@fancyQuizHeaders{% - \if\eqQuizType\isQZ\expandafter\eq@fancyQuizHeadersfmt\else - \expandafter\eq@fancyShrtQuizHeadersfmt\fi -} -\let\eq@sqsllabel@fancy@save\@empty -\def\restoreDefaultQuizHeaders{% - \global\let\eq@sqsllabel\eq@sqsllabel@fancy@save} -\newcommand\fncyQHdrsColor{blue} -\newcommand\FncyHdrsFmtNoTitleQuiz{Solution to Quiz:} -\newcommand\FncyHdrsFmtQuestion{Question} -\newcommand\dfltFncyQHdrsFmt{% - \protect\bfseries\protect\color{\fncyQHdrsColor}% - \ifx\aebTitleQuiz\@empty - \ifnum\@eqquestiondepth>0\relax\FncyHdrsFmtNoTitleQuiz\fi - \else\aebTitleQuiz:\ifnum\@eqquestiondepth=0\else\protect\ % - \FncyHdrsFmtQuestion\fi\fi\ifcase\@eqquestiondepth - \ifx\aebTitleQuiz\@empty\FncyHdrsFmtNoTitleQuiz\fi - \or\space\arabic{eqquestionnoi}.% - \or\space\arabic{eqquestionnoi}(\alph{eqquestionnoii})% - \or\space\arabic{eqquestionnoi}(\alph{eqquestionnoii})% - (\roman{eqquestionnoiii})\fi -} -\newcommand\dclrFncyQzHdrsFmt[1]{% - \def\eq@fancyQuizHeadersfmt{{#1}}% -} -\dclrFncyQzHdrsFmt{\dfltFncyQHdrsFmt} -\newcommand\dclrFncySqHdrsFmt[1]{% - \def\eq@fancyShrtQuizHeadersfmt{{#1}}% -} -\dclrFncySqHdrsFmt{\dfltFncyQHdrsFmt} -\let\tqhspace\space -\newcommand\titleQuiz[1][]{#1\@titleQuizi} -\def\@titleQuizi{\makeatletter - \@ifstar{\def\eq@tq@star{*}\eq@titleQuiz}% -{\def\eq@tq@star{x}\eq@titleQuiz}} -\def\eq@titleQuiz#1{% - \gdef\aebTitleQuiz{#1}\def\@currentlabelname{#1}% - \gdef\aeb@@titleQuiz{#1}% - \gdef\aebtitleQuiz{\mbox{\titleQuizfmt{#1}}\tqhspace}% -\makeatother} -\let\aebtitleQuiz\@empty -\let\aebTitleQuiz\@empty -\newcommand\titleQuizfmt{\bfseries} -\def\ifQuizType#1#2{\if\eqQuizType\isQZ\def\qt@next{#1}% - \else\def\qt@next{#2}\fi\qt@next} -\def\eq@ifstaroption#1#2{\if\eq@tq@star*\def\sq@next{#1}% - \else\def\sq@next{#2}\fi\sq@next} -\let\eq@tq@star\relax -\def\ifstaroption{\PackageWarning{exerquiz} - {\protect\ifstaroption\space is only defined within the\MessageBreak - shortquiz environment. Gobbling up its two\MessageBreak - arguments, sorry. This occurred}% - \@gobbletwo -} -\newcounter{qMarkCnt} -\def\multipartquestion{\global\let\aeb@multipart\eq@One} -\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts} -\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt} -\let\aeb@multipart\eq@Zero -\newcommand\pcMarkupColor{red} -\def\markupWidth{12bp}\def\markupHeight{8bp}\def\markupTextSize{0} -\newcommand{\aeb@creditmarkup}{% - \textField[\Ff\FfReadOnly\BC{}\F\FHidden - \textColor{\pcMarkupColor}\textSize{\markupTextSize}\autoCenter{n}% - \DV{0 \eqptsLabel}\V{0 \eqptsLabel}]% - {qMark.\currQuiz.\thequestionno.\arabic{qMarkCnt}}% - {\markupWidth}{\markupHeight}% -} -\def\showCreditMarkup{% - \def\qMark{\if\aeb@multipart\eq@Zero\aeb@creditmarkup - \stepcounter{qMarkCnt}\else\global\let\aeb@multipart\eq@Zero\fi}% - \def\qMark@Hook{\aeb@creditmarkupfmt}% -} -\def\hideCreditMarkup{\global\let\qMark@Hook\@empty} -\newcommand{\aeb@creditmarkupfmt}{\makebox[0pt][r]{\qMark\hspace{-2bp}}} -\long\def\gobbleToEndQt#1\endeqQt{\ifeqforpaper\expandafter\@gobble\fi} -\long\def\gobbleToEndSQt#1\endeqSQt{% - \ifeqforpaper\expandafter\@gobble\fi} -\newcommand\inclQtFilter[1]{\def\eqarg{#1}\ifx\eqarg\eqFilterArg - \else\expandafter\gobbleToEndQt\fi} -\newcommand{\exclQt}[1]{\gobbleToEndQt} -\newcommand{\useQtFilter}{% - \let\eqQt\inclQtFilter\let\eqSQt\exclSQt -} -\newcommand\inclSQtFilter[1]{\def\eqarg{#1}\ifx\eqarg\eqFilterArg - \else\expandafter\gobbleToEndSQt\fi} -\newcommand{\exclSQt}[1]{\gobbleToEndSQt} -\newcommand{\useSQtFilter}{\let\eqSQt\inclSQtFilter\let\eqQt\exclQt} -\newcommand{\sqbookmarkfmt}{Short Quiz \@shortquizCnt.\space} -\newcommand{\qzbookmarkfmt}{Quiz \@quizCnt.\space} -\newcommand{\quizpdfbookmark}[1]{\relax\def\argi{#1}% - \if\eqQuizType\isSQZ\edef\aeb@bmmrkdest{sqbm.\@shortquizCnt}% - \def\aeb@thisbkmrkfmt{\sqbookmarkfmt}\else - \edef\aeb@bmmrkdest{qzbm.\@quizCnt}% - \def\aeb@thisbkmrkfmt{\qzbookmarkfmt}\fi - \def\quizpdfbookmarktitle{#1}% - \def\eqex@next{\belowpdfbookmark{\aeb@thisbkmrkfmt#1}% - {\aeb@bmmrkdest}}% - \ifx\aebTitleQuiz\@empty\else\ifx\argi\@empty - \def\quizpdfbookmarktitle{\aebTitleQuiz}% - \def\eqex@next{\belowpdfbookmark{\aebTitleQuiz}% - {\aeb@bmmrkdest}}\fi\fi - \eqex@next\ignorespaces -} -\def\pushEnvir{\xdef\eq@currenvir{\@currenvir}\endgroup} -\def\popEnvir{\begingroup\@endpefalse - \edef\@currenvir{\eq@currenvir}% - \edef\@currenvline{\on@line}% -} -\def\answers@sq{\parindent0pt - \ifx\solutionparshape\@empty\else - \pushEnvir\par\noindent\expandafter\popEnvir\fi - \stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride\eq@l - \let\@Ans\Ans@sq@l\else - \let\@Ans\Ans@sq@f\fi - \else - \if\aeb@FLOverride\eq@f - \let\@Ans\Ans@sq@f\else - \let\@Ans\Ans@sq@l\fi - \fi - \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\def\manswers@sq{\parindent0pt - \@ifundefined{ifuserectforms}{} - {\if\aeb@FLOverride\eq@f\ifuserectforms - \useRectForMC\else\useCircForMC\fi\fi}% - \ifx\solutionparshape\@empty\else - \pushEnvir\par\noindent\expandafter\popEnvir\fi - \stepcounter{questionno}% - \if\sqstar*\relax - \if\aeb@FLOverride\eq@l - \let\@Ans\Ans@ck@sq@l\else - \let\@Ans\Ans@ck@sq@f\fi - \else - \if\aeb@FLOverride\eq@f - \let\@Ans\Ans@ck@sq@f\else - \let\@Ans\Ans@ck@sq@l\fi - \fi - \def\aeb@answerType{c}\@ifnextchar[{\answers@@sq}% - {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} -\let\sq@hwdest\@empty % hard-wired destination -\def\answers@@sq[#1]#2{% - \xdef\aeb@numCols{#2}% - \ifx\sq@hwdest\@empty - \xdef\@qzsolndest{#1}\else - \gdef\@qzsolndest{\sq@hwdest}\fi - \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list - \else - \gdef\eq@listType{0}\expandafter\answers@@sq@tabular - \fi{\aeb@numCols}% -} -\def\setMClabelsepDefault#1{\def\eq@hspanner@default{#1}} -\def\setMClabelsep#1{\def\eq@hspanner{#1}} -\setMClabelsep{\ }\setMClabelsepDefault{\ } -\def\resetMClabelsep{\expandafter\setMClabelsep\expandafter - {\eq@hspanner@default}} -\def\eq@lw@l{\eq@l@l\eq@hspanner} -\def\eq@l@l{\normalsize\normalfont(d)} -\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner} -\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{} -\let\eq@ansChoiceArray\@empty -\def\eq@recordAnsChoice{% - \ifx\eq@ansChoiceArray\@empty - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi - \tmp@exp -} -\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% - \item\relax\noindent\if\eq@listType\eq@One - \addtocounter{quizno}{-1}\@ifundefined{ifwithsoldoc} - {\refstepcounter{quizno}}{\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi - \ignorespaces} -\newenvironment{answers@sq@list}[1] -{% - \ifx\aeb@answerType\eq@r - \let\endanswers\endanswers@sq@list\else - \let\endmanswers\endanswers@sq@list\fi - \list{\strut\@Ans}{% - \if\sqstar*\relax - \settowidth{\labelwidth}{\eq@lw@f}\else - \settowidth{\labelwidth}{\eq@lw@l}\fi - \setlength{\topsep}{-\parskip+\aboveanswersSkip}% - \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% - \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}% - \setlength{\listparindent}{\parindent}% - \ifnum\exerwparts@cols>1\relax - \ifx\itsExerParts\eq@YES - \setlength{\leftmargin}{\labelwidth}\else - \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi - \else - \ifx\solutionparshape\@empty - \setlength{\leftmargin}{\labelwidth}\else - \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi\fi - \setlength{\labelsep}{0pt}% -% \settowidth{\labelsep}{\eq@hspanner}% - \def\Ans{\Ans@list}% - }% -}% -{\endlist\setcounter{quizno}{0}\eq@answersEndHook} -\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% - \leavevmode\@Ans -} -\newcommand\sqtabsep[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty - \def\sq@tabsep{1.5pt}\else\def\sq@tabsep{#1}\fi} -\sqtabsep{1.5pt} -\def\sqTabPos#1{\def\sq@TabPos{[#1]}}\sqTabPos{} -\def\answers@@sq@tabular#1{% - \ifinner - \ifx\itsExerParts\eq@YES\par\removelastskip - \removelastparskip\vskip\aboveanswersSkip\fi - \else\par\removelastskip\removelastparskip - \vskip\aboveanswersSkip\fi - \noindent\ifnum\exerwparts@cols>1\relax\parshape=0\fi - \tabcolsep=0pt - \eq@tmpdima=\linewidth - \@tempcnta#1\relax - \advance\@tempcnta-1\relax - \multiply\@tempcnta by2 - \@tempdima\sq@tabsep\relax - \multiply\@tempdima\@tempcnta - \advance\eq@tmpdima-\@tempdima - \divide\eq@tmpdima by#1 - \def\Ans{\Ans@tabular}% - \tabcolsep\sq@tabsep\relax - \expandafter\tabular\sq@TabPos{@{}*{#1}{p{\eq@tmpdima}}@{}}}% -\let\eq@save@doendpe\@doendpe -\def\reset@doendpe#1{\global\eq@scratchtoks=\expandafter{#1}% - \gdef\@doendpe{\par\@endpetrue\global\let\@doendpe\eq@save@doendpe - \def\par{\@restorepar - \expandafter\everypar - \expandafter{\the\eq@scratchtoks}\par\@endpefalse}% - \everypar{{\setbox\z@\lastbox}% - \everypar{}\@endpefalse}\the\eq@scratchtoks - }% -} -\newcommand\answersEndHook[1]{\def\eq@answersEndHook{#1}} -\let\eq@answersEndHook\@empty -\def\endanswers@sq{\endtabular\setcounter{quizno}{0}% - \eq@answersEndHook\reset@doendpe{\the\everypar}% - \ifinner\else%\par - \removelastskip - \vspace{\aboveanswersSkip}\@endpetrue\fi -} -\def\endmanswers@sq{\endtabular\setcounter{quizno}{0}% - \eq@answersEndHook\reset@doendpe{\the\everypar}% - \ifinner\else%\par - \removelastskip - \vspace{\aboveanswersSkip}\@endpetrue\fi -} -\def\popiiictm{\special{CTM: pop pop pop}} -\def\sqWrongRespJS{OnBlurRespBox( false, "\oField" );} -\def\sqRightRespJS{OnBlurRespBox( true, "\oField" );} -\def\Ans@sq@l@Actions -{% - \A{\if\Ans@choice1 - \JS{\sqRightRespJS} - \ifx\@qzsolndest\@empty\else - \ifeq@solutionsafter\else - /Next <> - \fi - \fi - \else - \JS{\sqWrongRespJS\jsR - \ifx\oField\@empty\else - updateTally("\oField.\thequestionno"); - \fi}% - \fi - }% -} -\def\linkContentFormat{\alph{quizno}} -\def\aebChoiceAltFmt{\noexpand\ifaebshowgrayletters - \Alph{quizno}\noexpand\else\linkContentFormat\noexpand\fi} -\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% -\def\Ans@sq@l{% - \leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else - \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} - {\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi\PBS\raggedright - \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% - \eq@tmpdima=\wd\eq@tmpbox - \def\link@@Content{\linkContentWrapper}% - \hangindent=\eq@tmplength\hangafter=1\relax - \set@@Link{}{}{}% - {\makebox[\eq@tmpdima]{\color{\@linkcolor}\link@@Content}} - {\eq@protect\A}{\eq@setWidgetProps\setLink@driver}% - {\set@LinkTextDefaults\Ans@sq@l@Actions\every@Link}% - \Ans@proofing{\eq@tmpdima}% -\eq@hspanner\ignorespaces} -\def\Ans@ck@sq@l{\Ans@ck@sq@f} -\def\@@Ans@sq@f@Defaults -{% - \BC{0 0 0}\Ff{\FfNoToggleToOff}\W{1} - \F{\FPrint}\textSize{12}\textColor{0 g} -} -\def\sqTurnOffAlerts{\let\@sqTurnOffAlerts\eq@Zero} -\def\sqTurnOnAlerts{\let\@sqTurnOffAlerts\eq@One} -\sqTurnOnAlerts -\def\sqNoCorrections{\let\@sqAlertsOnly\eq@One} -\def\sqCorrections{\let\@sqAlertsOnly\eq@Zero} -\sqNoCorrections -\def\Ans@sq@f@ActionsTrue{% - \if\@sqTurnOffAlerts1OnBlurRespBox(true,"\oField");\jsR\fi - \ifx\@qzsolndest\@empty\else\ifeq@solutionsafter\else - jmpToNamedDest("\oField","\@qzsolndest",% - \if\@sqTurnOffAlerts00\else1\fi);\fi - \fi\eqAddAAMouseUpMC} -\def\Ans@sq@f@ActionsFalse{% - \if\@sqTurnOffAlerts1OnBlurRespBox(false,"\oField" );\jsR\fi - \ifx\oField\@empty\else - updateTally("\oField.\thequestionno"); - \fi\jsR\eqAddAAMouseUpMC} -\def\Ans@sq@f@Actions{\A{\if\Ans@choice\eq@One - \JS{\Ans@sq@f@ActionsTrue}\else - \JS{\Ans@sq@f@ActionsFalse}\fi}% - \AAmousedown{updateTally.downState=!!event.target.isBoxChecked% - (\arabic{quizno}-1);}} -\def\Ans@proofing#1{\ifeq@proofing\if\Ans@choice1\relax - \llap{\@proofingsymbol\,\hskip#1\relax}% - \fi\fi} -\def\sqRghtSymbChoice#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \edef\sq@corrsymch{\sqRghtSymbChoiceDef}\else - \edef\sq@corrsymch{#1}\fi} -\def\sqRghtSymbColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \edef\sq@corrsymcol{\sqRghtSymbColorDef}\else - \edef\sq@corrsymcol{#1}\fi} -\def\sqWrngSymbChoice#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \edef\sq@wrgsymch{\sqWrngSymbChoiceDef}\else - \edef\sq@wrgsymch{#1}\fi} -\def\sqWrngSymbColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \edef\sq@wrgsymcol{\sqWrngSymbColorDef}\else - \edef\sq@wrgsymcol{#1}\fi} -\def\sqRghtSymbChoiceDef{check} -\def\sqRghtSymbColorDef{0 .6 0 rg} -\def\sqWrngSymbChoiceDef{cross} -\def\sqWrngSymbColorDef{1 0 0 rg} -\edef\sq@corrsymch{\sqRghtSymbChoiceDef} -\edef\sq@corrsymcol{\sqRghtSymbColorDef} -\edef\sq@wrgsymch{\sqWrngSymbChoiceDef} -\edef\sq@wrgsymcol{\sqWrngSymbColorDef} -\def\sqResetSymbToDef{% - \sqRghtSymbChoice{}\sqRghtSymbColor{}% - \sqWrngSymbChoice{}\sqWrngSymbColor{}% -} -\def\qChoiceSymb#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \edef\qz@chksymb{\qChoiceSymbDef}\else - \edef\qz@chksymb{#1}\fi} -\def\qChoiceColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty - \edef\qz@chksymbcol{\qChoiceColorDef}\else - \edef\qz@chksymbcol{#1}\fi} -\def\qChoiceSymbDef{check} -\def\qChoiceColorDef{0 0 0 rg} -\edef\qz@chksymb{\qChoiceSymbDef} -\edef\qz@chksymbcol{\qChoiceColorDef} -\let\rbf@Opts\@empty -\def\Ans@sq@f{% - \if\eq@listType\eq@One\stepcounter{quizno}\else - \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} - {\ifwithsoldoc\stepcounter{quizno}\else - \refstepcounter{quizno}\fi}\fi\PBS\raggedright - \if\Ans@choice\eq@One - \def\rbf@Opts{\symbolchoice{\sq@corrsymch}% - \textColor{\sq@corrsymcol}}\else - \def\rbf@Opts{\symbolchoice{\sq@wrgsymch}% - \textColor{\sq@wrgsymcol}}\fi - \settowidth{\eq@tmplength}{\eq@lw@f}% - \eq@tmpdima=\wd\eq@tmpbox% - \hangindent=\eq@tmplength\hangafter=1\relax - \insertGrayLetters % 6.3d - \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% - {mc.\oField.\thequestionno}% - {\RadioFieldSize}% 11/16/05 changed from \oField to mc.\oField - {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton - \every@sqRadioButton}}% - \Ans@proofing{\RadioFieldSize}% -\eq@hspanner\ignorespaces} -\def\@@Ans@ck@sq@f@Defaults -{% - \BC{0 0 0}\Ff{\FfNoToggleToOff} - \F{\FPrint}\textSize{12}\textColor{0 g}\W{1} -} -\begingroup -\catcode`\&=12 -\gdef\eq@AND{&&} -\endgroup -\def\Ans@ck@sq@f@ActionsTrue{% - var fName=event.target.name;\jsR - var g=this.getField("mc.\oField.\thequestionno");\jsR - var a=g.getArray();\jsR - for (var i=0; i=a.length) jmpToNamedDest("\oField","\@qzsolndest",% - \if\@sqTurnOffAlerts00\else1\fi); - \fi - \fi\eqAddAAMouseUpMS} -\def\Ans@ck@sq@f@ActionsFalse{% - var fName=event.target.name;\jsR - var g=this.getField("mc.\oField.\thequestionno");\jsR - var a=g.getArray();\jsR - for (var i=0; i> -} -\def\Ans@c@f@Defaults -{% - \BC{0 0 0}\S{S}\W{1}\F{\FHidden}\textSize{12} - \textColor{0 g}\symbolchoice{circle} -} -\let\bottomOfAnsfStack\relax -\providecommand\graylettersColor{gray} -\def\insertGrayLetters{\ifaebshowgrayletters - \rlap{\makebox[\RadioFieldSize]% - {\textcolor{\graylettersColor}{\Alph{quizno}}}}\else\relax\fi} -\def\Ans@@f -{% - \settowidth{\eq@tmplength}{\eq@lw@f}% - \hangindent=\eq@tmplength\hangafter=1 - \bottomOfAnsfStack\insertGrayLetters - \edef\rbf@Opts{\ifaeb@usecircles\else - \noexpand\symbolchoice{\qz@chksymb}\fi - \noexpand\textColor{\qz@chksymbcol}}% - \if\Ans@choice1\eq@recordAnsChoice\fi - \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% - {mc.\curr@quiz.\thequestionno}% - {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@RadioCheck@driver}% - {\Ans@r@f@Defaults\Ans@r@f@Actions\every@RadioButton - \every@qRadioButton\insert@circlesymbol}}% - \let\late@options\@empty - \ifnocorrections\else - \if\Ans@choice1\relax - \edef\Ans@c@f@Choice{\noexpand\DV{Yes}% - \ifx\@qzsolndest\@empty\noexpand\Ff{\FfReadOnly}% - \else - \ifeq@noquizsolutions - \noexpand\Ff{\FfReadOnly}% - \else - \noexpand\A{\noexpand\quiz@SolutionActionHook}% - \fi - \fi - }% - \else - \def\Ans@c@f@Choice{\Ff{\FfReadOnly}}% - \fi - \ifaeb@usecircles\def\late@options{\BC{}}\fi - \if\Ans@choice1\relax - \ifx\@qzsolndest\@empty\else - \ifeq@noquizsolutions\else - \edef\late@options{\noexpand\BC{\solution@Color}}% - \fi - \fi - \fi - \makebox[0pt][r]{\check@@Box{}% - {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% - {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\Ans@c@f@Defaults\Ans@c@f@Choice\every@CheckBox - \every@qCheckBox\late@options}}% - \fi - \Ans@proofing{\RadioFieldSize}% -\eq@hspanner\ignorespaces} -\def\limitSelectionTo#1{\def\eqlimselTo{#1}} -\let\eqlimselTo\@empty -\def\Ans@ck@f{\leavevmode\if\eq@listType1\stepcounter{quizno}% - \else\refstepcounter{quizno}\fi - \if\Ans@choice1\eq@recordAnsChoice\fi - \PBS\raggedright\Ans@@ck@f} -\def\Ans@ck@f@Defaults -{% - \BC{0 0 0}\S{S}\W{1}\Ff{\FfNoToggleToOff} - \textSize{12}\textColor{0 g} -} -\def\Ans@ck@f@Actions -{% - \A{\JS{% - var _bOK=true;\jsR -\ifx\eqlimselTo\@empty\else _bOK = LimitSelection(\eqlimselTo,% -"mck.\curr@quiz.\thequestionno","\arabic{quizno}");\jsR\fi -if (_bOK) {\jsR\jsT - var aPMSretn=ProcessMultiSelection(\Ans@choice,"\alph{quizno}",% -\thequestionno,\arabic{quizno},"\curr@quiz",\eqPTs,\eq@pPTs);\jsR\jsT - RecordProblemType("\eqQT",\thequestionno);\jsR\jsT - ProcessQuestion(aPMSretn[0],aPMSretn[1],\thequestionno,% -\arabic{quizno},"\curr@quiz",0,\ifnocorrections0\else1\fi,% -"\bqlabelISO"\if\eqQuizType\isQZ\ifx\eq@online\eq@YES -\ifeq@noquizsolutions\else,1\fi\fi\fi);\jsR -}}}% -} -\def\quiz@SolutionActionHook{% - /S/GoTo/D(\@qzsolndest)/Next<<\JS{this.resetForm(% -["mcq.\curr@quiz.\thequestionno.\arabic{quizno}"]);}>> -} -\def\Ans@@ck@f -{% - \settowidth{\eq@tmplength}{\eq@lw@f}% - \hangindent=\eq@tmplength\hangafter=1 - \bottomOfAnsfStack\insertGrayLetters - \bottomOfAnsfStack\insertGrayLetters -\def\cbf@Opts{\symbolchoice{\qz@chksymb}% - \textColor{\qz@chksymbcol}}% - \mbox{\expandafter\check@@Box\expandafter{\cbf@Opts}% - {mck.\curr@quiz.\thequestionno.\arabic{quizno}}% - {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% - {\eq@protect\A}{\eq@setWidgetProps\eq@RadioCheck@driver}% - {\Ans@ck@f@Defaults\Ans@ck@f@Actions\every@RadioButton - \every@qckCheckbox}}% - \ifnocorrections\else - \if\Ans@choice1\relax - \edef\Ans@c@f@Choice{\noexpand\DV{Yes}% - \ifx\@qzsolndest\@empty\noexpand\Ff{\FfReadOnly}% - \else - \ifeq@noquizsolutions - \noexpand\Ff{\FfReadOnly}% - \else - \noexpand\A{\noexpand\quiz@SolutionActionHook}% - \fi - \fi - }% - \else - \def\Ans@c@f@Choice{\Ff{\FfReadOnly}}% - \fi - \let\late@options\@empty - \if\Ans@choice1\relax - \ifx\@qzsolndest\@empty\else - \ifeq@noquizsolutions\else - \edef\late@options{\noexpand\BC{\solution@Color}}% - \fi - \fi - \fi - \makebox[0pt][r]{\check@@Box{}% - {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% - {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% - {\eq@setWidgetProps\eq@RadioCheck@driver}% - {\Ans@c@f@Defaults\Ans@c@f@Choice\every@CheckBox - \every@qCheckBox\late@options}}% - \fi - \Ans@proofing{\RadioFieldSize}% -\eq@hspanner\ignorespaces} -\newcount\eq@tabColCnt -\define@key{bchoice}{nCols}{\def\bChoiceNumCols{#1}} -\@for\eqi:=1,2,3,4,5,6,7,8,9,10 \do{\edef\temp@expand@def{% - \noexpand\define@key{bchoice}{\eqi}[\eqi]{% - \noexpand\def\noexpand\bChoiceNumCols{\eqi}}% - }\temp@expand@def -} -\def\bChoiceNumCols{\aeb@numCols} -\define@key{bchoice}{random}[true]{% - \csname if#1\endcsname\eq@randomizeChoicestrue - \else\eq@randomizeChoicesfalse\fi -} -\define@key{bchoice}{label}[]{\xdef\bChoiceLabel{#1}} -\def\bChoices{\@ifnextchar[{\@ansChoices}{\@ansChoices[\aeb@numCols]}} -\def\@ansChoices[#1]% -{% - \global\let\@tempholdSaveAns\@empty %4/5 - \global\let\@tempholdSaveChoice\@empty %4/5 - \global\let\bChoiceLabel\@empty %4/5 - \setkeys{bchoice}{#1}% - \global\eq@tabColCnt=0 - \ifnum\aeb@numCols=1 % list mode - \def\eq@next{\@layoutListAns}\else % tabular mode - \def\eq@next{\@layoutTabularAns{\bChoiceNumCols}}\fi - \eq@next -} -\let\eChoices\relax -\def\@layoutListAns{\@ifnextchar\Ans{\@getListAns}% - {\@lookforendansChoices{\@layoutListAns}}% -} -\newcommand{\eq@saveAns}[2][]{% - \let\eq@next\@@@SaveAnsGobbleAns - \ifx\bChoiceLabel\@empty\else - \def\eq@savedAnsOpt{#1}\def\eq@savedAnsZO{#2}% - \if\eq@savedAnsZO1 \let\eq@next\@@@SaveAns\fi - \fi\eq@next -} -\long\def\@@@SaveAns#1\eAns{% 4/5 - \g@addto@macro\@tempholdSaveAns{\\{\ignorespaces#1}}% - \addtocounter{quizno}{1}% - \edef\temp@expand{\noexpand\g@addto@macro\noexpand - \@tempholdSaveChoice{% - \noexpand\\{\ifx\sqstar\@empty\aebChoiceAltFmt\else - \ifaebshowgrayletters\Alph{quizno}\else - \linkContentFormat\fi\fi}}}\temp@expand - \addtocounter{quizno}{-1}% -} -\newif\ifoxfordcomma \oxfordcommatrue -\def\oxfordCommaOn{\oxfordcommatrue} -\def\oxfordCommaOff{\oxfordcommafalse} -\def\eq@insertComma{% - \ifx\eq@comma\@empty - \ifnum\@nameuse{NumAns\eq@namearg}>2\relax - \def\eq@comma{,}\fi - \else\ifx\eq@insertAnd\@empty\eq@comma\space - \else\ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}% - \ifoxfordcomma\eq@comma\fi\else\eq@comma\fi\space - \fi - \fi -} -\newcommand\eqAnd{and}\def\eq@insertAnd{% - \ifnum\@nameuse{NumAns\eq@namearg}<2\relax\else - \ifnum\@nameuse{NumAns\eq@namearg}>2\relax - \else\leavevmode\space\fi\eqAnd\space\fi} -\long\def\eq@displayAns#1{\advance\@tempcnta1\relax - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} -\def\eq@displayAlts#1{\advance\@tempcnta1 - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi - \savedAltFmt{#1}} -\def\eq@displayAltsAns#1{\advance\@tempcnta1\relax - \eq@insertComma - \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} -\newcommand{\savedAltFmt}[1]{(#1)} -\newcommand{\useSavedAns}{\bgroup\@ifstar{\useSavedAns@i} - {\let\eq@insertAnd\@empty\useSavedAns@i}} -\newcommand{\useSavedAns@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\let\label\@gobble - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAns\@nameuse{SavedAns#2}\else - \@nameuse{SavedAns#2-Idx#1}\fi - \egroup -} -\newcommand{\useSavedAlts}{\bgroup\@ifstar{\useSavedAlts@i} - {\let\eq@insertAnd\@empty\useSavedAlts@i}} -\newcommand{\useSavedAlts@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\@nameuse{caseFor#2}% - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAlts\@nameuse{SavedAlts#2}\else - \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}}\fi - \egroup -} -\newcommand{\useSavedAltsAns}{\bgroup\@ifstar{\useSavedAltsAns@i} - {\let\eq@insertAnd\@empty\useSavedAltsAns@i}} -\newcommand{\useSavedAltsAns@i}[2][]{\@tempcnta=0\relax - \def\eq@namearg{#2}\@nameuse{caseFor#2}\let\label\@gobble - \def\eq@argi{#1}\ifx\eq@argi\@empty - \let\eq@comma\@empty - \let\\\eq@displayAltsAns\@nameuse{SavedAltsAns#2}\else - \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}} - \@nameuse{SavedAns#2-Idx#1}\fi - \egroup -} -\newcommand{\useSavedNumAns}[1]{\@nameuse{NumAns#1}} -\long\def\@@@SaveAnsGobbleAns#1\eAns{} % 4/5 -\long\def\@getListAns\Ans#1\eAns{%\@@par %start new paragraph - \eq@saveAns#1\eAns % 4/5 - \Ans#1\vspace{\@rowskip}% - \@layoutListAns -} -\long\def\@lookforendansChoices#1{% - \@ifnextchar\eChoices{\rowsep{\rowsep@default}% - \expandafter\@findendans\@gobble}{\expandafter#1\@gobble}% -} -\def\@layoutTabularAns#1{% - \let\eq@tabSep\@empty - \xdef\numShortCols{#1}% - \ifnum#1>\aeb@numCols \xdef\numShortCols{\aeb@numCols}\fi - \@@layoutTabularAns -} -\def\@@layoutTabularAns{% - \@ifnextchar\Ans{\@getTabAns}% - {\@lookforendansChoices{\@@layoutTabularAns}}% -} -\def\rowsep#1{\gdef\@rowsep{[#1]}\gdef\@rowskip{#1}}% -\rowsep{\rowsep@default} -\def\rowsepDefault#1{\def\rowsep@default{#1}} -\def\rowsep@default{0pt} -\long\def\@getTabAns\Ans#1\eAns{% - \eq@saveAns#1\eAns - \global\advance\eq@tabColCnt1 - \let\@save@tabSep=\eq@tabSep - \ifnum\eq@tabColCnt=\numShortCols - \global\eq@tabColCnt=0 - \xdef\eq@tabSep{\noexpand\\\noalign{\kern\@rowskip\relax}}% - \else - \gdef\eq@tabSep{&}% - \fi - \@ifnextchar\eChoices{\@save@tabSep\Ans#1\rowsep{\rowsep@default} - \expandafter\@findendans\@gobble}% - {\@save@tabSep\Ans#1\@@layoutTabularAns}% -} -\def\@findendans{\@ifnextchar\end{% 4/5 - \ifx\bChoiceLabel\@empty\else - \processLabeledAns\fi - }{\expandafter\@findendans\@gobble}}% -\def\defineEachAns#1{\advance\count0by1\relax - \@temptokena={#1}\csarg\xdef - {SavedAns\bChoiceLabel-Idx\the\count0}{\the\@temptokena}% - \ifsolutionsonly\else - {\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}}}\fi -} -\def\defineEachChoice#1{\advance\count0by1\relax - \@temptokena={#1}\csarg\xdef - {SavedAlts\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}\ifsolutionsonly\else - {\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAlts\bChoiceLabel-Idx\the\count0}% - {\the\@temptokena}}}\fi -} -\def\processLabeledAns{% - \bgroup - \let\label\@gobble -\if\aeb@FLOverride\eq@l - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\else - \ifaebshowgrayletters - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOn}\else - \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\fi -\fi - \toks@=\expandafter{\@tempholdSaveAns}\csarg - \xdef{SavedAns\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAns\bChoiceLabel}{\the\toks@}}}\fi - \count0=0\relax\let\\\defineEachAns\the\toks@ - \xdef\@currNCntAns{\the\count0 }\csarg - \xdef{NumAns\bChoiceLabel}{\@currNCntAns}% - \ifsolutionsonly\else{\eq@IWDefs{\string - \csarg\string\gdef{NumAns\bChoiceLabel}{\the\count0 }}}\fi - \toks@=\expandafter{\@tempholdSaveChoice}\csarg - \xdef{SavedAlts\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAlts\bChoiceLabel}{\the\toks@}}}\fi - \count0=0\relax\let\\\defineEachChoice\the\toks@ - \count0=1\relax\toks@={}%{\ignorespaces\@gobble}% - \loop - \edef\temp@exp{\the\toks@\noexpand\\{% - \noexpand\useSavedAlts[\the\count0]{\bChoiceLabel} - \noexpand\useSavedAns[\the\count0]{\bChoiceLabel}}}% - \toks@=\expandafter{\temp@exp}% - \ifnum\count0<\@currNCntAns - \advance\count0by1 - \repeat - \csarg\xdef{SavedAltsAns\bChoiceLabel}{\the\toks@}% - \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string - \csarg\string\gdef{SavedAltsAns\bChoiceLabel}{\the\toks@}}}\fi - \egroup -} -\def\graylettersOn{\aebshowgrayletterstrue} -\def\graylettersOff{\aebshowgraylettersfalse} -\def\aeb@exiii{\expandafter\expandafter\expandafter} -\def\REF{\@ifstar{\let\isREFstar\eq@One\aeb@REFstar} - {\let\isREFstar\eq@Zero\aeb@REF}} -\def\aeb@REFstar#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref*{#1}\fi}% -} -\def\aeb@REF#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} - {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% - \else\ref{#1}\fi}% -} -\def\aeb@buildUpperCaseRef#1{% - \xdef\tmp@expand{\aeb@exiii\@firstoffive\csname r@#1\endcsname}% - \xdef\tmp@expand{\uppercase{\tmp@expand}}% - \if\isREFstar\eq@One\tmp@expand\else\hyperref[#1]{\tmp@expand}\fi -} -\newif\ifaeb@usecircles\aeb@usecirclesfalse -\let\insert@circlesymbol\@empty -\def\useMCCircles{\useForms - \ifaeb@usecircles\else - \global\aeb@usecirclestrue - \gdef\insert@circlesymbol{\symbolchoice{circle}}% - \fi -} -\def\useMCRects{\useForms - \ifaeb@usecircles\global\aeb@usecirclesfalse - \global\let\insert@circlesymbol\@empty - \fi -} -\let\useMCCRects\useMCRects -\let\oqpriorhook\@empty -\newenvironment{oQuestion}[1]{% - \let\@currentQues\@empty - \xdef\eq@pageThisQ{\the\c@page}% - \global\let\eqQzQuesList\@empty - \xdef\oField{#1}\xdef\curr@quiz{#1}\xdef\currQuiz{#1}% - \g@addto@macro\ListOfSQuizNames{,#1}\let\@qzsolndest\@empty - \let\eqQuizType\isSQZ\gdef\eqPTs{1}\global\let\eqQT\eq@na - \let\answers\answers@sq - \let\endanswers\endanswers@sq - \let\manswers\manswers@sq - \let\endmanswers\endmanswers@sq - \let\solution\solution@sq - \let\endsolution\endsolution@sq - \noindent\oqpriorhook\sq@IDTxtField\ifx\aebTitleQuiz\@empty - \else\aebtitleQuiz\fi\ignorespaces -}{% - \global\let\aebtitleQuiz\@empty - \global\let\aebTitleQuiz\@empty - \global\let\eq@tq@star\relax - \aftergroup\ignorespaces -} -\def\oSolution#1{\edef\@qzsolndest{#1}} -\def\replaceExclPt#1{\def\replaceexclaim{#1}} -\replaceExclPt{false} -\def\negPointsAllowed{\def\negpointsallowed{true}} -\@onlypreamble{\negPointsAllowed} -\def\negpointsallowed{false} -\def\negPointsMarkupAllowed{\def\negpointsmarkupallowed{true}} -\def\negpointsmarkupallowed{false} -\@onlypreamble{\negPointsMarkupAllowed} -\def\requireAlertBox{\def\bcheckboxused{false}} -\def\allowNoAlertBox{\def\bcheckboxused{true}} -\allowNoAlertBox -\newcommand\RespBoxNT{\RespBoxMath} -\newcommand\RespBox{\RespBoxMath} -\newcommand\RespBoxMath{\def\rbFlag{0}\begingroup\Hy@unicodefalse - \@makeother\^\@makeother\&\@RespBox} -\def\eq@rpl#1#2{_rplVarsBy('#1','#2')@} % dps17 -\ifnum\eq@drivernum=0\def\RorRT{\r\t}\else\def\RorRT{\r}\fi -\def\toAltApprCnt{0}\def\toAltApprVar{_toAltAppr\toAltApprCnt} -\def\toAltApprCntInc{{\@tempcnta=\toAltApprCnt\relax - \advance\@tempcnta1\relax - \xdef\toAltApprCnt{\the\@tempcnta}}} -\def\setCoreInitAltAppr{% -var\eqSP_substVars=\indepVars;\RorRT -var\eqSP_mathVars=processMathVars(_substVars);\RorRT -var\eqSP_substValue=getSubstValue(_substVars,event.value);\RorRT - event.value=RespBoxAppr(event);\RorRT - getSubstValue.aSubsts=[];% -} -\def\bInitAltAppr{\ifShowAppr - \def\ShowApprSAVE{true}\toAltApprCntInc\ShowApprfalse - \def\eqAddAAFormat{\ifnum\eq@drivernum=0try\eqLBr\RorRT\fi - \setCoreInitAltAppr\ifnum\eq@drivernum=0 \r\eqRBr catch(e){\RorRT - var\eqSP\toAltApprVar=% - app.setTimeOut('this.resetForm("'+event.target.name+'");% - app.clearTimeOut(\toAltApprVar);',250);\r}\fi}\else - \def\ShowApprSAVE{false}\fi -} -\def\eInitAltAppr{\@nameuse{ShowAppr\ShowApprSAVE}% - \ifShowAppr\altApprOn\let\eqAddAAFormat\@empty\fi} -\def\AAKqRespBoxMath{% - if(event.willCommit){\r\t - RecordPointValue(\eqPTs,\thequestionno\ifx\grpquestions1,% -\thegrpquestionno,\grpPointValue,\grpTotalWeight,% -"\grpEvalFunction"\fi);\r\t - RecordProblemType("\eqQT",\thequestionno);\r\t -\ifSubstVars % dps17 - var\eqSP_substVars=\indepVars;\r\t - var\eqSP_mathVars=processMathVars(_substVars);\r\t - var\eqSP_substValue=getSubstValue(_substVars,event.value);\r\t - var\eqSP_substAns=getSubstValue(_substVars,"\eqCorrectAns");\r\t - var\eqSP retn=\processJSfunc(\rbArgs,% - \compareJSfunc,_substValue);\r\t -\else - var\eqSP_mathVars=\indepVars;\r\t - var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc);\r\t -\fi - ProcUserResp(retn,event.value,\thequestionno,% -0\ifx\grpquestions1,\thegrpquestionno\fi);\r - }\r - if (!isQuizInitialized("\currQuiz")) {\r\t - \eqObjAlert\space eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t - event.rc = false;\r - } -} -\def\RespBoxMathDefaults -{% - \BC{0 0 0}\S{S}\textColor{0 g}\F{\FPrint}\W{1} -} -\def\moreRespBoxMathDefaults -{% - \edef\@moreRespBoxMathDefaults{% - \if\eqQuizType\isQZ\ifx\eq@online\eq@YES - \ifeq@noquizsolutions - \else\noexpand\Ff{\FfReadOnly}\fi\fi\fi - }% -} -\let\eqAddAAFormat\@empty -\def\eqSP{\string\040} % dps17 -\def\eqLBr{\string\173} -\def\eqRBr{\string\175} -\def\@@RespBoxMathActions{% - \AA{\if\eqQuizType\isQZ - \AAKeystroke{\AAKqRespBoxMath\eqAddAAKeystroke} - \AAFormat{\ifShowAppr\ifSubstVars\ifarrowDelim % dps17 - try{event.value=RespBoxAppr(event);}catch(e){}\r - \fi\fi\fi\eqAddAAFormat} - \else - \AAKeystroke{if(event.willCommit) {\r\t -\ifSubstVars% - var\eqSP_substVars=\indepVars;\r\t - var\eqSP_mathVars=processMathVars(_substVars);\r\t - var\eqSP_substValue=getSubstValue(_substVars,event.value);\r\t - var\eqSP_substAns=getSubstValue(_substVars,"\eqCorrectAns");\r\t - var\eqSP retn=\processJSfunc(\rbArgs,% - \compareJSfunc,_substValue);\r\t -\else - var\eqSP_mathVars=\indepVars;\r\t - var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc); -\fi -\if\@sqTurnOffAlerts1\r\t - OnBlurRespBox(retn,"\curr@quiz"); -\fi - \eqAddAAKeystroke\r - }} - \AAFormat{\ifShowAppr\ifSubstVars\ifarrowDelim % dps17 - try{event.value=RespBoxAppr(event);}catch(e){}\r\fi\fi\fi - \eqAddAAFormat}% - \AAOnFocus{\JS{var retn = null;}}% - \AAOnBlur{\JS{OnBlurRespBox(null,"\curr@quiz");}}% -\fi - } -} -\def\annot@subtype@rbm{rbm} -\newcommand\@RespBox[1][] -{% - \edef\annot@subtype{\annot@subtype@rbm}% - \eq@AddProbToQzQuesList - \smallskip\ifx\grpquestions\eq@Zero - \addtocounter{eqpointvalue}{\eqPTs}\fi - \if\eqQuizType\isQZ - \def\rbFlag{1}\global\IsRespBoxtrue - \ifx\grpquestions\eq@One - \stepcounter{grpquestionno}% - \def\Fld@name{% - grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% - \else - \eq@recordThesePTs\eq@recordProbType - \edef\eqtmp{\aPointType}% - \xdef\aPointType{\eqtmp,[\eqPTs,"math"]}% - \stepcounter{questionno}% - \def\Fld@name{obj.\curr@quiz.\thequestionno}% - \fi - \else % shortquiz - \ifx\grpquestions\eq@One - \stepcounter{grpquestionno}% - \def\Fld@name{% - grpobj.\oField.\thequestionno.\thegrpquestionno}% - \else - \stepcounter{questionno}% - \def\Fld@name{% - obj.\oField.\thequestionno}% - \fi - \fi - \let\Array\aeb@array - \moreRespBoxMathDefaults - \leavevmode\hbox\bgroup\let\rpl\eq@rpl - \text@@Field{#1}{\Fld@name}% - {\RBW}{\DefaultHeightOfWidget}% - {\eq@protect\AA}{\eq@setWidgetProps\eq@RespBox}% - {\RespBoxMathDefaults\@moreRespBoxMathDefaults - \@@RespBoxMathActions\every@eqTextField\every@RespBoxMath}% -} -\def\eq@RespBox#1{\pdfstringdef\eqCorrectAns{#1}% - \gdef\eqCorrectAnsTeX{#1}\if\grpquestions\eq@Zero - \ifwithinMCFI\gdef\s@veCorrAnsMCFI{"#1"}\fi - \else - \eq@recordGrpAnsArray{"#1"}\fi - \@ifnextchar({\@eq@RespBox{#1}}{\@eq@RespBox{#1}(x)}} -\def\@eq@RespBox#1(#2){\@ifnextchar[{\@eq@RespB@x{#1}(#2)}% - {\@ifstar{\@eq@RespB@x{#1}(#2)[\curr@quiz.\thequestionno]}% - {\@eq@RespB@x{#1}(#2)[]}}} -\def\eq@ZERO{0} -\def\defaultRDPrecision#1{\def\eq@defaultRDPrecision{#1}} -\defaultRDPrecision{1E-14} -\newif\ifarrowDelim\arrowDelimfalse % dps17 -\def\rpl@#1#2{\rpl@i#1->\@nil} -\def\rpl@i#1->#2\@nil{\def\argii{#2}\ifx\argii\@empty\else - \global\arrowDelimtrue\fi} -\def\GiiRpli#1{\global\arrowDelimfalse\GiiRplii#1\rpl{}{}\@nil} -\def\GiiRplii#1\rpl#2#3#4\@nil{\def\argiv{#4}% - \ifx\argiv\@empty\let\eq@next\relax\else - \rpl@{#2}{#3}\ifarrowDelim\let\eq@next\relax\else - \def\eq@next{\GiiRplii#4\@nil}\fi\fi - \eq@next} -\def\isAltApprSpec#1{\bgroup\if\frstIsrpl\eq@YES\GiiRpli{#1}\else - \expandafter\GiiRpli\expandafter{#1}\fi\egroup} % dps17 -\def\isFrstrpl#1#2\@nil{\ifx#1\rpl\let\frstIsrpl\eq@YES\else - \let\frstIsrpl\eq@NO\fi} -\def\cntComm@s#1{\@tempcnta\z@\expandafter\cntComm@si#1,,\@nil} -\def\cntComm@si#1,#2,\@nil{\def\argii{#2}\ifx\argii\@empty - \def\eq@next{\edef\nC{\the\@tempcnta}}\else - \advance\@tempcnta\@ne\def\eq@next{\cntComm@si#2,\@nil}\fi - \eq@next}\def\eq@SC{;}\def\rplSofT#1#2{#2} -\def\cntVars#1{\let\rpl\rplSofT\edef\eV@rs{#1}\let\rpl\eq@rpl - \cntComm@s{\eV@rs}\ifnum\nC>\z@ - \@tempcnta\nC\relax\advance\@tempcnta\@ne - \xdef\nV{\the\@tempcnta}\else\@tempcnta\z@ - \expandafter\cntVarsi\eV@rs;\@nil\fi} - \def\cntVarsi#1#2\@nil{\def\argii{#2}% - \ifx\argii\eq@SC\def\eq@next{\advance\@tempcnta\@ne - \edef\nV{\the\@tempcnta}}\else\advance\@tempcnta\@ne - \def\eq@next{\cntVarsi#2\@nil}\fi - \eq@next} -\def\eq@X{x} -\def\eq@isThereRept#1{\let\eq@isRept\eq@Zero\expandafter - \eq@isThereRepti#1*\@nil} -\def\eq@isThereRepti#1*#2\@nil{\def\argii{#2}\ifx\argii\@empty - \let\eq@isRept\eq@Zero\else\let\eq@isRept\eq@One\fi} -\def\eq@obeyReptOfIntrvls#1{% - \expandafter\eq@isThereRept\expandafter{#1}% sets \eq@isRept - \if\eq@isRept\eq@Zero\relax\let\eq@interv@ls\@empty\expandafter - \g@addto@macro\expandafter\eq@interv@ls - \expandafter{#1}\let\eq@next\relax\else\let\eq@interv@ls\@gobble - \def\eq@next{\expandafter - \eq@obeyReptOfIntrvlsi#1x[]x\@nil}\fi\eq@next} -\def\eq@obeyReptOfIntrvlsi#1[#2]#3#4x#5\@nil{% - \def\argi{#2}\def\argii{#3}\def\argiv{#5}% - \ifx\argi\@empty\let\eq@next\relax\else - \ifx\argii\eq@X\g@addto@macro\eq@interv@ls{x[#2]}% - \def\eq@next{\eq@obeyReptOfIntrvlsi#4x#5x\@nil}\else - % repetition of an interval - \eq@ddtorepIntrvl{[#2]}{#4}% - \def\eq@next{\eq@obeyReptOfIntrvlsi#5x\@nil}\fi - \fi - \eq@next -} -\def\eq@ddtorepIntrvl#1#2{\@tempcnta=#2 \eq@ddtorepIntrvli{#1}{#2}} -\def\eq@ddtorepIntrvli#1#2{\@whilenum\@tempcnta>\z@\do - {\g@addto@macro\eq@interv@ls{x#1}\advance\@tempcnta\m@ne}} -\def\cntIv@ls#1{\@tempcnta\z@\expandafter\cntIv@lsi#1xxx\@nil}% -\def\cntIv@lsi#1x#2x\@nil{\def\argii{#2}\ifx\argii\eq@X - \advance\@tempcnta\@ne - \edef\nI{\the\@tempcnta}\let\eq@next\relax\else - \advance\@tempcnta\@ne\def\eq@next{\cntIv@lsi#2x\@nil}\fi -\eq@next} -\begingroup\@makeother\& -\gdef\eq@ProcIntrvls#1{\expandafter - \eq@ProcIntrvlsi#1&&\@nil} -\gdef\eq@ProcIntrvlsi#1\@nil{\def\argii{#2}% - \ifx\argii\@empty - \eq@obeyReptOfIntrvls{#1}% - \cntIv@ls{\eq@interv@ls}% - \else - \eq@obeyReptOfIntrvls{#1}% - \edef\interv@ls{\eq@interv@ls}% - \cntIv@ls{\eq@interv@ls}% - \eq@obeyReptOfIntrvls{#2}% - \edef\eq@interv@ls{\interv@ls&\eq@interv@ls}% - \fi -} -\endgroup -\def\@eq@RespB@x#1(#2)[#3]#4#5#6{\xdef\@qzsolndest{#3}% dps17 - \gdef\indepVars{"#2"}\isFrstrpl#2\@nil\if\frstIsrpl\eq@YES - \def\@IVi{#2}\else\expandafter\def\expandafter - \@IVi\expandafter{#2}\fi\edef\@IVii{#2}\ifx\@IVi\@IVii - \global\SubstVarsfalse\else\global\SubstVarstrue - \isAltApprSpec{#2}\fi - \cntVars{#2}\def\eq@precision{#5}% - \ifx\eq@precision\eq@ZERO - \def\eq@defaultCompare{reldiffCompare}% - \def\rbArgstmp{\rbFlag,% dps17 - \ifSubstVars_substAns\else"#1"\fi,#4,% - \eq@defaultRDPrecision}\else - \def\eq@defaultCompare{diffCompare}% - \def\rbArgstmp{\rbFlag,% dps17 - \ifSubstVars_substAns\else"#1"\fi,#4,#5}\fi - \edef\eq@ixparam{#6}\expandafter\eq@chkivIntrvls\eq@ixparam\\% -} -\def\viidna{[0,1]} -\def\eq@chkivIntrvls{\@ifnextchar[{\eq@chkivIntrvlsi}% - {\eq@chkivIntrvlsii}} -\def\eq@chkivIntrvlsi#1\\{\eq@ProcIntrvls{#1}% - \def\rbArgs{\rbArgstmp,"\eq@interv@ls",_mathVars}% dps17 - \@ifnextchar[{\@eq@@RespBox[ \expandafter\@gobble}% - {\@eq@@RespBox[\eq@defaultCompare]}% -} -\def\eq@chkivIntrvlsii#1\\#2{\def\nI{1}% - \def\rbArgs{\rbArgstmp,"[#1,#2]",_mathVars}% - \@ifnextchar[{\@eq@@RespBox}{\@eq@@RespBox[\eq@defaultCompare]}% -} -\def\@eq@@RespBox[#1]{\@ifstar{\jsRespBox[#1]}% - {\jsRespBox[#1]{ProcResp}}} -\def\eq@ProcRespIntervals{ProcRespIntervals} -\def\eq@ProcRespSetNum{ProcRespSetNum} -\def\eq@ProcRespSetSym{ProcRespSetSym} -\def\eq@ProcRespEvalEq{ProcRespEvalEq} -\def\eq@ProcRespEvalEqNonZero{ProcRespEvalEqNonZero} -\def\eq@ProcRespEvalEqList{ProcRespEvalEqList} -\def\eq@ProcRespEvalEqListNonZero{ProcRespEvalEqListNonZero} -\def\jsRespBox[#1]#2{\def\compareJSfunc{#1}% - \def\processJSfunc{#2}\gdef\g@processJSfunc{#2}% 01/11 - \ifnum\nV=\nI\relax\else - \ifx\processJSfunc\eq@ProcRespSetNum\else - \ifx\processJSfunc\eq@ProcRespSetSym\else - \ifx\processJSfunc\eq@ProcRespEvalEq\else - \ifx\processJSfunc\eq@ProcRespEvalEqNonZero\else - \ifx\processJSfunc\eq@ProcRespEvalEqList\else - \ifx\processJSfunc\eq@ProcRespEvalEqListNonZero\else - \PackageWarning{exerquiz}{The number of variables does not - match\MessageBreak the number of intervals. The - problem\MessageBreak may not evaluate properly}\fi\fi\fi\fi\fi\fi\fi - \ifx\eq@ProcRespIntervals\g@processJSfunc - \let\@inmathwarn@SAVE\@inmathwarn\let\@inmathwarn\@gobble - \pdfstringdef{\eqCorrectAns}{\eqCorrectAns}% - \let\@inmathwarn\@inmathwarn@SAVE\fi -\ifx\grpquestions\eq@Zero - \eq@recordCorrAns{"\eqCorrectAns"}% 2018/03/18 -\fi - \ifeq@proofing\makebox[0pt][l]{\space\math@correctAnswer}\fi - \eq@TextField % send to the driver-dependent macro - \egroup % hbox - \endgroup % \RespBoxMath -} -\def\gobbleMacro#1>{} -\gdef\math@correctAnswer{\ttfamily - \color{\@proofingsymbolColor}\spaceskip=2pt\xspaceskip=2pt% - \expandafter\gobbleMacro\meaning\eqCorrectAnsTeX -} -\newcommand\RespBoxTxtNT{\def\rbFlag{0}\@RespBoxTxt} -\newcommand\RespBoxTxt{\def\rbFlag{0}\@RespBoxTxt} -\def\RespBoxTxtOnBlur{OnBlurRespBox(% - \if\@sqTurnOffAlerts1retn\else null\fi,"\curr@quiz");} -\def\eqObjAlert{% - \ifx\eqQuizType\isQZ\ifx\eq@online\eq@YES\ifeq@noquizsolutions - \else if (false)\fi\fi\fi} -\begin{defineJS}[% - \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxt} -if(event.willCommit){ - RecordPointValue(@eqPTs,@thequestionno@ifx@grpquestions1,% -@thegrpquestionno,@grpPointValue,@grpTotalWeight,% -"@grpEvalFunction"@fi); - RecordProblemType("@eqQT",@thequestionno); - var retn = ProcRespTxt(@rbTxtAlt); - ProcUserResp(retn,event.value,@thequestionno,% -0@ifx@grpquestions1,@thegrpquestionno@fi); -} -if (!isQuizInitialized("@currQuiz")) { - @eqObjAlert@space eqAppAlert(InitMsg("@bqlabelISO"),3); - event.rc = false; -} -\end{defineJS} -\def\RespBoxTxtDefaults -{% - \BC{0 0 0}\W{1}\S{S}\textColor{0 g}\F{\FPrint}% -} -\def\moreRespBoxTxtDefaults -{% - \edef\@moreRespBoxTxtDefaults{% - \if\eqQuizType\isQZ\ifx\eq@online\eq@YES - \ifeq@noquizsolutions\else - \noexpand\Ff{\FfReadOnly}\fi\fi\fi - }% -} -\def\@@RespBoxTxtActions -{% - \AA{\if\eqQuizType\isQZ - \AAKeystroke{\AAKqRespBoxTxt\eqAddAAKeystroke} - \AAFormat{\eqAddAAFormat} - \else - \AAKeystroke{% - if(event.willCommit) {\r\t - retn = ProcRespTxt(\rbTxtAlt);\r -\if\@sqTurnOffAlerts1 - \t\RespBoxTxtOnBlur\r -\fi - \eqAddAAKeystroke\r - }% - } - \AAFormat{\eqAddAAFormat} - \AAOnFocus{\JS{var retn = null;}} -\if\@sqTurnOffAlerts0 - \AAOnBlur{\JS{\RespBoxTxtOnBlur}}% -\fi - \fi - } -} -\def\annot@subtype@rbt{rbt} -\newcommand\@RespBoxTxt[1][] -{% - \edef\annot@subtype{\annot@subtype@rbt}% - \eq@AddProbToQzQuesList - \ifx\grpquestions\eq@Zero\addtocounter{eqpointvalue}{\eqPTs}\fi - \if\eqQuizType\isQZ - \def\rbFlag{1}\global\IsRespBoxtrue - \ifx\grpquestions\eq@One - \stepcounter{grpquestionno}% - \def\Fld@name{% - grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% - \else - \eq@recordThesePTs\eq@recordProbType - \edef\eqtmp{\aPointType}% - \xdef\aPointType{\eqtmp,[\eqPTs,"text"]}% - \stepcounter{questionno}% - \def\Fld@name{obj.\curr@quiz.\thequestionno}% - \fi - \else - \stepcounter{questionno}% - \def\Fld@name{obj.\oField.\thequestionno}% - \fi - \moreRespBoxTxtDefaults - \leavevmode\hbox\bgroup\text@@Field{#1}{\Fld@name}% - {\RBW}{\DefaultHeightOfWidget}% - {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxTxt}% - {\RespBoxTxtDefaults\@moreRespBoxTxtDefaults - \@@RespBoxTxtActions\every@eqTextField\every@RespBoxTxt}% -} -\def\@@RespBoxTxt#1#2{% - \@ifnextchar[{\@@@RespBoxTxt{#1}{#2}} - {\@ifstar{\@@@RespBoxTxt{#1}{#2}[\curr@quiz.\thequestionno]}% - {\@@@RespBoxTxt{#1}{#2}[]}}} -\def\eq@ZERO{0}\def\eq@ONE{1}\def\eq@TWO{2} -\def\@@@RespBoxTxt#1#2[#3]#4{% - \xdef\@qzsolndest{#3}% - \def\eq@argi{#1}\ifx\eq@argi\eq@ZERO\else - \ifx\eq@argi\eq@ONE\else\ifx\eq@argi\eq@TWO\else - \def\eq@argi{-1}\fi\fi\fi - \def\eq@argii{#2}\ifx\eq@argii\eq@ONE\else\def\eq@argii{0}\fi - \begingroup - \ifnum\eq@argii=1\relax - \def\rexpStr##1{\eqbs\eqbs\eqbs\eqbs##1}% - \def\\##1{\eqbs\eqbs\eqbs\eqbs##1}% - \def\word##1{\\b##1\\b}\def\any{@any@}\fi - \xdef\rbTxtAlt{\rbFlag,\eq@argi,\eq@argii}% - \global\let\txtAltList\@empty - \count0=#4 \ifnum\count0 > 0 \expandafter\@argRead\else - \PackageError{exerquiz}{% - The fourth required parameter of \string\RespBoxTxt\MessageBreak - is required to be a positive integer. You entered\MessageBreak - #4\space instead}{Enter a positive integer.}\fi -} -\def\@argRead#1{\xdef\jsTempArgs{\txtAltList}% - \ifx\txtAltList\@empty\xdef\txtAltList{"#1"}\else - \xdef\txtAltList{\jsTempArgs,"#1"}\fi\@@argRead} -\def\@@argRead{\advance\count0 by-1\relax - \ifnum\count0=0\relax - \def\eq@next{\endgroup - \xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}% - \if\grpquestions\eq@Zero - \ifwithinMCFI - \xdef\s@veCorrAnsMCFI{[\txtAltList]}\else - \eq@recordCorrAns{[\txtAltList]}\fi - \else - \eq@recordGrpAnsArray{[\txtAltList]}% - \fi - \eq@@RespBoxTxt - }% - \else - \def\eq@next{\@argRead}% - \fi\eq@next -} -\def\eq@@RespBoxTxt{% - \ifeq@proofing\makebox[0pt][l]{\space\txt@correctAnswer}\fi - \eq@TextField - \egroup -} -\def\gobbleTxt#1>#2,#3,#4,{} -\gdef\txt@correctAnswer{\ttfamily\color{\@proofingsymbolColor}% - \spaceskip=2pt\xspaceskip=2pt - \expandafter\gobbleTxt\meaning\rbTxtAlt -} -\begin{defineJS}[% - \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxtPC} -if(event.willCommit){ - RecordPointValue(@eqPTs,@thequestionno@ifx@grpquestions1,% -@thegrpquestionno,@grpPointValue,@grpTotalWeight,% -"@grpEvalFunction"@fi); - RecordProblemType("@eqQT",@thequestionno); - var retn = ProcRespTxtPC(@rbTxtAlt); -@ifx@grpquestions1% - ProbValue[@thequestionno][3+@thegrpquestionno]% -=ProcRespTxtPC.txtPCpCr;@else% - ProbValue[@thequestionno]=ProcRespTxtPC.txtPCpCr;@fi - ProcUserResp(retn,event.value,@thequestionno,0% -@ifx@grpquestions1,@thegrpquestionno@fi); -} -if (!isQuizInitialized("@currQuiz")) { - @eqObjAlert@space eqAppAlert(InitMsg("@bqlabelISO"),3); - event.rc = false; -} -\end{defineJS} -\def\@@RespBoxTxtPCActions -{% - \AA{\if\eqQuizType\isQZ - \AAKeystroke{\AAKqRespBoxTxtPC} - \else - \AAKeystroke{% - if(event.willCommit) {\r\t - retn = ProcRespTxtPC(\rbTxtAlt);\r -\if\@sqTurnOffAlerts1% - \t\RespBoxTxtOnBlur\r -\fi - }% - } - \AAOnFocus{\JS{var retn = null;}} -\if\@sqTurnOffAlerts0% - \AAOnBlur{\JS{\RespBoxTxtOnBlur}}% -\fi - \fi - } -} -\newcommand{\RespBoxTxtPC}{\def\rbFlag{0}\@RespBoxTxtPC} -\def\annot@subtype@rbtpc{rbtpc} -\newcommand\@RespBoxTxtPC[1][] -{% - \edef\annot@subtype{\annot@subtype@rbtpc}% - \eq@AddProbToQzQuesList - \smallskip\ifx\grpquestions\eq@Zero - \addtocounter{eqpointvalue}{\eqPTs}\fi - \if\eqQuizType\isQZ\def\rbFlag{1}\global\IsRespBoxtrue - \ifx\grpquestions\eq@One - \stepcounter{grpquestionno}% - \def\Fld@name{% - grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% - \else - \eq@recordThesePTs\eq@recordProbType - \edef\eqtmp{\aPointType}% - \xdef\aPointType{\eqtmp,[\eqPTs,"text"]}% - \stepcounter{questionno}% - \def\Fld@name{obj.\curr@quiz.\thequestionno}% - \fi - \else - \stepcounter{questionno}% - \def\Fld@name{obj.\oField.\thequestionno}% - \fi - \moreRespBoxTxtDefaults - \leavevmode\hbox\bgroup\text@@Field{#1}{\Fld@name}% - {\RBW}{\DefaultHeightOfWidget}% - {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxTxtPC}% - {\RespBoxTxtDefaults\@moreRespBoxTxtDefaults - \@@RespBoxTxtPCActions\every@eqTextField\every@RespBoxTxt}% -} -\def\@@RespBoxTxtPC#1{\@ifnextchar[{\@@@RespBoxTxtPC{#1}} - {\@ifstar{\@@@RespBoxTxtPC{#1}[\curr@quiz.\thequestionno]}% - {\@@@RespBoxTxtPC{#1}[]}}} -\def\@@@RespBoxTxtPC#1[#2]#3{\xdef\@qzsolndest{#2}% - \begingroup - \def\rexpStr##1{\eqbs\eqbs\eqbs\eqbs##1}% - \def\\##1{\eqbs\eqbs\eqbs\eqbs##1}% - \def\word##1{\\b##1\\b}\def\any{@any@} - \gdef\rbTxtAlt{\rbFlag,#1,1}% force sub-string match - \global\let\txtAltList\@empty - \count0=#3 \ifnum\count0>0 \expandafter\@argReadPC\else - \PackageError{exerquiz}{% - The third required parameter of - \string\RespBoxTxtPC\MessageBreak - is required to be a positive integer. - You entered\MessageBreak #3\space instead} - {Enter a positive integer.}\fi -} -\newcommand\@argReadPC[2][0]{\xdef\jsTempArgs{\txtAltList}% - \ifx\txtAltList\@empty\xdef\txtAltList{["#2",#1]}\else - \xdef\txtAltList{\jsTempArgs,["#2",#1]}\fi\@@argReadPC} -\def\@@argReadPC{\advance\count0 by-1\relax - \ifnum\count0=0\relax - \def\eq@next{\endgroup - \xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}% - \if\grpquestions\eq@Zero - \ifwithinMCFI - \xdef\s@veCorrAnsFCFI{[\txtAltList]}\else - \eq@recordCorrAns{[\txtAltList]}\fi - \else - \eq@recordGrpAnsArray{[\txtAltList]}% - \fi - \eq@@RespBoxTxtPC - }% - \else - \def\eq@next{\@argReadPC}% - \fi\eq@next -} -\def\eq@@RespBoxTxtPC{% - \ifeq@proofing\makebox[0pt][l]{\space\txt@correctAnswer}\fi - \eq@TextField - \egroup -} -\def\RespBoxEssayDefaults -{% - \BC{0 0 0}\W{1}\S{S}\Ff{\FfMultiline}\rawPDF{}% -} -\def\@@RespBoxEssayActions -{% - \AA{\if\eqQuizType\isQZ - \AAKeystroke{% - if(event.willCommit){\jsR\jsT - RecordPointValue(\eqPTs,\thequestionno);\jsR\jsT - RecordProblemType("\eqQT",\thequestionno);\jsR\jsT - }\jsR - if (!isQuizInitialized("\curr@quiz")) {\jsR\jsT - @eqObjAlert\space eqAppAlert(% - InitMsg("\bqlabelISO"),3);\jsR\jsT - event.rc = false;\jsR - }% - }% - \fi - } -} -\newcommand\RespBoxEssay[3][] -{% - \smallskip\addtocounter{eqpointvalue}{\eqPTs}% - \stepcounter{questionno}% - \mbox{\text@@Field{#1}{essay.\curr@quiz.\thequestionno}{#2}{#3}% - \edef\eqtmp{\aPointType}\xdef\aPointType{\eqtmp,[\eqPTs,"essay"]}% - {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxEssayActions - \eq@TextField}{\RespBoxEssayDefaults\every@eqTextField}}% -} -\let\@@sqTallyBoxActions\@empty -\@ifundefined{calcOrder}{% -\ifpdf\def\@@sqTallyBoxActions{% - \AA{\AAValidate{getTotalTally("\oField");}}}\fi}{} -\def\sqTallyBoxDefaults -{% - \BC{0 0 0}\W{1}\textColor{1 0 0 rg}\S{I}\Q{2}\Ff{\FfReadOnly} -} -\ifpdf\def\@@sqTallyBoxActions{% - \AA{\AAValidate{getTotalTally("\oField");}}}\else - \let\@@sqTallyBoxActions\@empty -\fi -\newcommand\sqTallyBox[1][] -{% - \mbox{\text@@Field{#1}{tally.\oField.\thequestionno}% - {\TBW}{\DefaultHeightOfWidget}% - {}{\eq@setWidgetProps\eq@TextField}% - {\sqTallyBoxDefaults\@@sqTallyBoxActions\every@eqTextField - \every@sqTallyBox}}% -} -\def\sqTallyTotalDefaults -{% - \rawPDF{}\W{1}\BC{0 0 0}\S{I}\textColor{1 0 0 rg}% - \Q{2}\Ff{\FfReadOnly}% -} -\def\@@sqTallyTotalActions -{% - \AA{% - \AAKeystroke{AFNumber_Keystroke(0,0,0,0,"",true);} - \AAFormat{AFNumber_Format(0,0,0,0,"",true);} - \AACalculate{% - AFSimple_Calculate("SUM",new Array("tally.\oField")); - }} -} -\newcommand\sqTallyTotal[1][] -{% - \mbox{\text@@Field{#1}{tallytotal.\oField}{\TBW}% - {\DefaultHeightOfWidget}{\eq@protect\AA}% - {\eq@setWidgetProps\eq@TextField}% - {\sqTallyTotalDefaults\@@sqTallyTotalActions\every@eqTextField - \every@sqTallyTotal}}% -} -\def\CorrAnsButtonDefaults -{% - \CA{\eq@local@CorrAnsButton}\W{1}\S{S} - \BC{0 0 0}\BG{.7529 .7529 .7529}\H{P} -} -\def\normalCABtnBC{0 0 0} -\def\qCorrAnsButtonActionHook{\JS{% -\ifx\@qzsolndest\@empty\else - if (event.shift)\jsR\jsT - this.gotoNamedDest("\@qzsolndest");\jsR - else {\jsR\jsT\fi -\ifShowAppr % dps17 - \ifarrowDelim - if (typeof event.target.appr=="undefined")\r\JST\t - event.target.appr=false;\r\JST - event.target.appr=!event.target.appr;\r\JST - if (event.target.appr) {\r\t\JST - var _substVars=\indepVars;\r\t\JST - var _substAns=getSubstValue(_substVars,"\CorrectAns");\r\t\JST - var value=RespBoxAppr("\CorrectAns");\r\JST - } else value="\CorrectAns";\r\JST - \else - value="\CorrectAns";\r\JST - \fi -\else - value="\CorrectAns";\r\JST -\fi - \processJSfunc("Ans.\curr@quiz",value,\currQuiz);\r -\ifx\@qzsolndest\@empty\else % dps17 - }\fi -}} - \def\sqCorrAnsButtonActionHook - {% - \JS{% - \ifx\@qzsolndest\@empty\else - if (event.shift)\jsR\jsT - this.gotoNamedDest("\@qzsolndest");\jsR - else\jsR\jsT - \fi - \processJSfunc("obj.\oField.\thequestionno","\CorrectAns",% -\currQuiz); - }% - } -\newcommand\CorrAnsButton[1][]{\eq@@CorrAnsButton{#1}} -\def\eq@@CorrAnsButton#1#2{\bgroup\makeJSspecials % 1/12 - \@ifstar{\eq@@@CorrAnsButton{#1}{#2}}{% - \eq@@@CorrAnsButton{#1}{#2}{DisplayAnswer}}% -} -\def\eq@@@CorrAnsButton#1#2#3{\gdef\CorrectAns{#2}% - \def\processJSfunc{#3}\ifx\@qzsolndest\@empty\let\JST\@empty\else - \let\JST\jsT\fi % dps17 - \ifx\eq@ProcRespIntervals\g@processJSfunc % 01/11 - \let\@inmathwarn@SAVE\@inmathwarn\let\@inmathwarn\@gobble - \pdfstringdef{\CorrectAns}{\CorrectAns}% - \let\@inmathwarn\@inmathwarn@SAVE\fi - \if\eqQuizType\isQZ\def\Fld@name{corr.\curr@quiz.\thequestionno}% - \else\def\Fld@name{corr.\oField.\thequestionno}\fi - \if\eqQuizType\isQZ - \edef\@@CorrAnsButtonActions{\noexpand\F{\FHidden}% - \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC}% - \else\noexpand\BC{\solution@Color}\fi - \noexpand\A{\noexpand\qCorrAnsButtonActionHook}}% - \ifeq@noquizsolutions\else % dps17 (\let\rpl\eq@rpl) - \mbox{\let\rpl\eq@rpl - \push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\CorrAnsButtonDefaults\@@CorrAnsButtonActions - \every@ButtonField\every@CorrAnsButton}}% - \fi - \else - \edef\@@CorrAnsButtonActions{% - \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} - \else\noexpand\BC{\solution@Color}\fi - \noexpand\A{\noexpand\sqCorrAnsButtonActionHook}}% - \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\CorrAnsButtonDefaults\@@CorrAnsButtonActions - \every@ButtonField\every@CorrAnsButton}}% - \fi - \egroup -} -\def\sqClearButtonDefaults -{% - \CA{\eq@local@sqClearButton}\textColor{0 g}\F{\FPrint} - \BC{0 0 0}\BG{.7529 .7529 .7529}\W{1}\S{B}\Ff{\FfNoExport} -} -\def\@@sqClearButtonActions -{% - \A{\JS{ProcessIt = false;\jsR - if ( typeof \oField\space== "undefined" )\jsR\jsT - \oField\space= new Object;\jsR - if (typeof appAlerts["\oField"] == "undefined")\jsR\jsT - appAlerts["\oField"] = new Object;\jsR - this.resetForm(new Array("mc.\oField","obj.\oField",% - "tally.\oField","grpobj.\oField"));\jsR - var f = this.getField("obj.\oField");\jsR - if ( f != null ) f.strokeColor=\ifx\defaultColorJSLoc\@empty -\defaultColorJS\else\defaultColorJSLoc\fi;\jsR - f = this.getField("grpobj.\oField");\jsR - if ( f != null ) f.strokeColor=\ifx\defaultColorJSLoc\@empty -\defaultColorJS\else\defaultColorJSLoc\fi;\jsR - f = this.getField("rbmarkup.\oField");\jsR - if ( f != null ) f.display=display.hidden;\jsR - \oField.Grp = {};\jsR - appAlerts["\oField"].bAfterValue=false;\jsR - ProcessIt=true;}% - } -} -\newcommand\sqClearButton[1][] -{% - \mbox{\push@@Button{#1}{clear.\oField}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\sqClearButtonDefaults\@@sqClearButtonActions\every@ButtonField - \every@sqClearButton}}% -} -\def\PromptButtonDefaults -{% - \CA{\eq@local@CorrAnsButton}\W{1}\S{S}\BC{0 0 0} - \BG{.7529 .7529 .7529}\H{P} -} -\newcommand{\promptButtonMsg}{% - "Would you like to see the correct answer at this time? "\r\t\t - + "Your current answer will be the one that will be scored. "\r\t\t - + "If you click on \\"Yes\\", - you will not be able to change your answer." -} -\newcommand{\AnsPromptBtnStr}{Answer:\space} -\def\PromptButtonActionHook -{% - \JS{% - if (!isQuizInitialized("\currQuiz")) {\r\t - eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t - event.rc=false;\r - } else {\r\t - if ( !\currQuiz.oAlertCheck.bAfterValue ) {\r\t - var resp=eqAppAlert({\r\t\t - cMsg:\promptButtonMsg,\r\t\t - nIcon: 2, nType: 2,\r\t\t - cTitle: ("AcroTeX Prompt Message"),\r\t\t - oCheckbox: \currQuiz.oAlertCheck\r\t - });\r\t - }\r - if ( promptQuiz.oAlertCheck.bAfterValue || resp==4 )\r\t - {\r\t\t - var field=this.getField(% - "obj.\currQuiz.\thequestionno");\r\t\t - field.readonly=true;\r\t\t - field=this.getField("Ans.\currQuiz");\r\t\t - if (field!=null) - field.value = "\AnsPromptBtnStr\PromptAns";\r\t - }\r - } - }% -} -\newcommand\@PromptButton[2][] -{% - \def\PromptAns{#2}\if\eqQuizType\isQZ - \def\Fld@name{promptButton.\curr@quiz.\thequestionno}% - \else\def\Fld@name{promptButton.\oField.\thequestionno}\fi - \if\eqQuizType\isQZ - \def\@@PromptButtonActions{% - \A{\PromptButtonActionHook}}% - \mbox{\push@@Button{#1}{\Fld@name}{}% - {\DefaultHeightOfWidget}{\eq@protect\A}% - {\eq@setButtonProps\eq@Button@driver}% - {\PromptButtonDefaults\@@PromptButtonActions - \every@ButtonField\every@CorrAnsButton}}% - \else\PackageWarning{exerquiz}{The \string\PromptButton - is for quiz questions only.} - \fi -} -\newcommand{\PromptButton}{\makebox[0pt][r] % assumes xcolor - {\@PromptButton[\textColor{1 0 0 rg}]{\CorrectAns}}} -\let\eq@ansGrpArray\@empty -\def\eq@recordGrpAnsArray#1{% - \ifx\eq@ansGrpArray\@empty - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansGrpArray{#1}}\else - \edef\tmp@exp{\noexpand\g@addto@macro - \noexpand\eq@ansGrpArray{,#1}}\fi - \tmp@exp -} -\let\grpquestions\eq@Zero -\def\mathGrp{\global\let\eq@ansGrpArray\@empty - \@ifnextchar[{\@imathGrp}{\@imathGrp[groupEval]}} -\def\@imathGrp[#1]{\def\argi{#1}% - \@ifnextchar[{\@iimathGrp}{\@iimathGrp[]}} -\def\@iimathGrp[#1]{\def\argii{#1}% - \eq@AddProbToQzQuesList - \global\let\grpquestions\eq@One - \setcounter{grpquestionno}{0}% - \stepcounter{questionno}% - \xdef\beginGrp{\thequestionno}% - \xdef\grpPointValue{\eqPTs}% - \eq@recordThesePTs\eq@recordProbType - \if\eqQuizType\isQZ - \edef\eqtmp{\aPointType}% - \xdef\aPointType{\eqtmp,[\eqPTs,"grp"]}\fi - \addtocounter{eqpointvalue}{\eqPTs}% - \ifx\argii\@empty - \xdef\grpTotalWeight{\eqPTs}% - \xdef\grpEvalFunction{\argi}% - \else - \xdef\grpTotalWeight{\argi}% - \xdef\grpEvalFunction{\argii}% - \fi -} -\def\endmathGrp{\global\let\grpquestions\eq@Zero - \eq@recordCorrAns{[\eq@ansGrpArray]}% - \xdef\endGrp{\thequestionno}} -\def\CorrAnsButtonGrpDefaults -{% - \CA{\eq@local@CorrAnsButton}\W{1}\S{S}\BC{0 0 0} - \BG{.7529 .7529 .7529}\H{P} -} -\def\CorrAnsButtonGrpActionHook{\JS{% -\ifx\@qzsolndest\@empty\else - if (event.shift)\jsR\jsT - this.gotoNamedDest("\@qzsolndest");\jsR - else\jsR -\fi - {\jsR\jsT - var aCorrectAns=\CorrectAns;\jsR\jsT - var beginGrp = 1;\jsR\jsT - grpOffset = beginGrp;\jsR\jsT - if ( \currQuiz.Grp==null ) \currQuiz.Grp = {};\jsR\jsT - if (typeof \currQuiz.Grp["\thequestionno"]=="undefined")\jsR\jsT - {\jsR\jsT\jsT - \currQuiz.Grp["\thequestionno"] = {offset: 0};\jsR\jsT\jsT - var f = this.getField(% - "grpobj.\curr@quiz.\thequestionno." - + grpOffset)\jsR\jsT\jsT - if ( f.readonly ) {\jsR\jsT\jsT - f.readonly = false;\jsR\jsT\jsT - f.setFocus();\jsR\jsT\jsT - eqDelay = app.setTimeOut(% - "f.readonly = true; - app.clearTimeOut(eqDelay);",10);\jsR\jsT - } else f.setFocus();\jsR\jsT - }\jsR\jsT - else \jsR\jsT - {\jsR\jsT\jsT - \currQuiz.Grp["\thequestionno"].offset = - ++\currQuiz.Grp["\thequestionno"].offset - \% aCorrectAns.length;\jsR\jsT\jsT - grpOffset = beginGrp - + \currQuiz.Grp["\thequestionno"].offset;\jsR\jsT\jsT - var f = this.getField("grpobj.\curr@quiz.\thequestionno." - + grpOffset);\jsR\jsT\jsT - if ( f.readonly ) {\jsR\jsT\jsT - f.readonly = false;\jsR\jsT\jsT - f.setFocus();\jsR\jsT\jsT - eqDelay = app.setTimeOut("f.readonly = true; - app.clearTimeOut(eqDelay);",10);\jsR\jsT - } else f.setFocus();\jsR\jsT - }\jsR\jsT -\if\eqQuizType\isQZ - DisplayAnswer("Ans.\curr@quiz", - aCorrectAns[\currQuiz.Grp["\thequestionno"].offset],% -\currQuiz); -\else - DisplayAnswer("grpobj.\oField.\thequestionno."+ grpOffset, - aCorrectAns[\currQuiz.Grp["\thequestionno"].offset],% -\oField);\jsR -\fi - } -}} -\newcommand\CorrAnsButtonGrp[2][] -{% - \makeStringArray{#2}% - \edef\CorrectAns{\stringArray}% - \if\eqQuizType\isQZ\def\Fld@name{corr.\curr@quiz.\thequestionno}% - \else\edef\currQuiz{\oField}% - \def\Fld@name{corr.\oField.\thequestionno}\fi - \if\eqQuizType\isQZ - \edef\@@CorrAnsButtonGrpActions{\noexpand\F{\FHidden}% - \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} - \else\noexpand\BC{\solution@Color}\fi - \noexpand\A{\noexpand\CorrAnsButtonGrpActionHook}}% - \ifeq@noquizsolutions\else - \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\CorrAnsButtonGrpDefaults\@@CorrAnsButtonGrpActions - \every@ButtonField\every@CorrAnsButton}}% - \fi - \else - \edef\@@CorrAnsButtonGrpActions{% - \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} - \else\noexpand\BC{\solution@Color}\fi - \noexpand\A{\noexpand\CorrAnsButtonGrpActionHook}}% - \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% - {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% - {\CorrAnsButtonGrpDefaults\@@CorrAnsButtonGrpActions - \every@ButtonField\every@CorrAnsButton}}% - \fi -} -\def\makeStringArray#1{\def\stringArray{[}\@makeStringArray#1,\@nil} -\def\@makeStringArray#1,#2\@nil{% - \edef\eq@temp{\stringArray}\def\argii{#2}% - \ifx\argii\@empty - \edef\stringArray{\eq@temp"#1"]}% - \def\eq@next{}% - \else - \edef\stringArray{\eq@temp"#1",}% - \def\eq@next{\@makeStringArray#2\@nil}% - \fi - \eq@next -} -\let\@eqListExp\relax -\let\@currentQues\@empty -\let\eqQzQuesList\@empty -\def\eq@AddProbToQzQuesList{% - \edef\eq@tmpExp{\noexpand\g@addto@macro% - \noexpand\eqQzQuesList{% - \noexpand\@eqListExp{\@currentQues}{\thepage}}}% - \ifx\grpquestions\eq@Zero\eq@tmpExp\fi -} -\LangRedefinitions -\input{aebjs.def} -\inputSumryTblCode -\inputMCFICode -\newcommand{\solutionColor}[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty - \def\solution@Color{\solutionColorDef}\else - \def\solution@Color{#1}\fi} -\newcommand{\solutionColorDef}{0 .6 0} -\solutionColor{\solutionColorDef} -\@ifundefined{jsColor}{% - \InputIfFileExists{eqcolor.def}{\PackageInfo{exerquiz} - {Inputting eqcolor.def}} - {\PackageError{exerquiz}{cannot find eqcolor.def} - {Refresh your file name database and try again.}} -}{} -\newcommand\rghtColorJSDef{["RGB", 0, .6, 0]} -\newcommand\rghtColorJS{\rghtColorJSDef} -\newcommand\wrngColorJSDef{color.red} -\newcommand\wrngColorJS{\wrngColorJSDef} -\newcommand\partialColorJSDef{color.blue} -\newcommand\partialColorJS{\partialColorJSDef} -\newcommand\defaultColorJSDef{color.black} -\newcommand\defaultColorJS{\defaultColorJSDef} -\let\defaultColorJSLoc\@empty -\let\defaultColorJSLocDef\@empty -\let\rghtColorJSLoc\@empty -\let\rghtColorJSLocDef\@empty -\let\wrngColorJSLoc\@empty -\let\wrngColorJSLocDef\@empty -\let\partialColorJSLoc\@empty -\let\partialColorJSLocDef\@empty -\def\chooseJSsymbol{\@ifstar{\let\eq@isstar\eq@YES\chooseJSsymboli} - {\let\eq@isstar\eq@NO\chooseJSsymboli}} -\def\chooseJSsymboli#1{\lowercase{\edef\eq@arg{#1}}% - \def\eq@carg{check}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.ch}\else - \def\eq@carg{cross}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.cr}\else - \def\eq@carg{diamond}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.di}\else - \def\eq@carg{circle}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.ci}\else - \def\eq@carg{star}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.st}\else - \def\eq@carg{square}\ifx\eq@arg\eq@carg - \def\eq@retnStyle{style.sq}\else - \let\eq@retnStyle\@empty - \ifx\eq@isstar\eq@NO\PackageWarning{exerquiz} - {Argument `#1' not recognized.\MessageBreak - Permissible values are check, cross, diamond,\MessageBreak - circle, star, square. Will use the default}\fi - \fi\fi\fi\fi\fi\fi -} -\newcommand\setRghtAnsSymb[1]{\chooseJSsymbol{#1}% - \ifx\eq@retnStyle\@empty\else - \edef\rghtAnsSymbJS{\eq@retnStyle}% - \edef\rghtAnsSymb{\eq@carg}\fi} -\def\rghtAnsSymbJS{style.ch} -\def\rghtAnsSymb{check} -\newcommand\setCorrAnsSymb[1]{\chooseJSsymbol{#1}% - \ifx\eq@retnStyle\@empty\else - \edef\corrAnsSymbJS{\eq@retnStyle}% - \edef\corrAnsSymb{\eq@carg}\fi} -\def\corrAnsSymbJS{style.ci} -\def\corrAnsSymb{circle} -\newcommand\setWrngAnsSymb[1]{\chooseJSsymbol{#1}% - \ifx\eq@retnStyle\@empty\else - \edef\wrngAnsSymbJS{\eq@retnStyle}% - \edef\wrngAnsSymb{\eq@carg}\fi} -\def\wrngAnsSymbJS{style.cr} -\def\wrngAnsSymb{cross} -\def\setRghtAnsSymbLoc#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \let\rghtAnsSymbJSLoc\@empty\else - \edef\rghtAnsSymbJSLoc{\eq@retnStyle}\fi -} -\def\setCorrAnsSymbLoc#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \let\corrAnsSymbJSLoc\@empty\else - \edef\corrAnsSymbJSLoc{\eq@retnStyle}\fi -} -\def\setWrngAnsSymbLoc#1{\chooseJSsymbol*{#1}% - \ifx\eq@retnStyle\@empty - \let\wrngAnsSymbJSLoc\@empty\else - \edef\wrngAnsSymbJSLoc{\eq@retnStyle}\fi -} -\let\rghtAnsSymbJSLoc\@empty -\let\rghtAnsSymbJSLocDef\@empty -\let\corrAnsSymbJSLoc\@empty -\let\corrAnsSymbJSLocDef\@empty -\let\wrngAnsSymbJSLoc\@empty -\let\wrngAnsSymbJSLocDef\@empty -\newcommand\everyeqTextField[1]{\def\every@eqTextField{#1}} -\def\every@eqTextField{} -\newcommand\everyRespBoxMath[1]{\def\every@RespBoxMath{#1}} -\def\every@RespBoxMath{} -\newcommand\everyRespBoxTxt[1]{\def\every@RespBoxTxt{#1}} -\def\every@RespBoxTxt{} -\newcommand\everyrbMarkup[1]{\def\every@rbMarkup{#1}} -\def\every@rbMarkup{} -\newcommand\everysqTallyBox[1]{\def\every@sqTallyBox{#1}} -\def\every@sqTallyBox{} -\newcommand\everysqTallyTotal[1]{\def\every@sqTallyTotal{#1}} -\def\every@sqTallyTotal{} -\newcommand\everyScoreField[1]{\def\every@ScoreField{#1}} -\def\every@ScoreField{} -\newcommand\everyAnswerField[1]{\def\every@AnswerField{#1}} -\def\every@AnswerField{} -\newcommand\everyPointsField[1]{\def\every@PointsField{#1}} -\def\every@PointsField{} -\newcommand\everyPercentField[1]{\def\every@PercentField{#1}} -\def\every@PercentField{} -\newcommand\everyGradeField[1]{\def\every@GradeField{#1}} -\def\every@GradeField{} -\newcommand{\everysqRadioButton}[1]{\def\every@sqRadioButton{#1}} -\def\every@sqRadioButton{} -\newcommand{\everyqRadioButton}[1]{\def\every@qRadioButton{#1}} -\def\every@qRadioButton{} -\newcommand{\everyqckCheckBox}[1]{\def\every@qckCheckbox{#1}} -\def\every@qckCheckbox{} -\newcommand{\everyqCheckBox}[1]{\def\every@qCheckBox{#1}} -\def\every@qCheckBox{} -\newcommand{\everysqCheckBox}[1]{\def\every@sqCheckBox{#1}} -\def\every@sqCheckBox{} -\let\everyeqButtonField\everyButtonField -\newcommand\everyCorrAnsButton[1]{\def\every@CorrAnsButton{#1}} -\def\every@CorrAnsButton{} -\newcommand\everysqClearButton[1]{\def\every@sqClearButton{#1}} -\def\every@sqClearButton{} -\newcommand\everyeqButton[1]{\def\every@eqButton{#1}} -\newcommand\everyCorrButton{\everyeqButton} -\def\every@eqButton{} -\newcommand\everyBeginQuizButton[1]{\def\every@BeginQuizButton{#1}} -\def\every@BeginQuizButton{} -\newcommand\everyEndQuizButton[1]{\def\every@EndQuizButton{#1}} -\def\every@EndQuizButton{} -\let\everyeqGenButton\everyPushButton -\let\every@eqGenButton\every@PushButton -\let\eqGenButton\pushButton -\newcommand\everyeqIcon[1]{\def\every@eqIcon{#1}} -\def\every@eqIcon{} -\def\formatInitAltApprs{\formatInitAltApprs} -\def\@eqAddAAFormat#1{\def\@rgi{#1}\ifx\@rgi\formatInitAltApprs - \bInitAltAppr\else\def\eqAddAAFormat{#1}\fi} -\def\eqAddAAFormat{} -\def\formatAsSet{try{formatAsSet()}catch(e){}} -\def\formatAsVector{try{formatAsVector()}catch(e){}} -\def\eq@SupActnLst{{\AddAAKeystroke}{\AddAAMouseUpMC}% - {\AddAAMouseUpMS}{\AddAAFormat}} -\newcommand\setActionKeys{\edef\catOfAt{\the\catcode`@}% - \ifnum\catOfAt=11 \let\eq@CatTail\relax\else - \makeatletter\let\eq@CatTail\makeatother\fi\setActionKeysi} -\def\setActionKeysi#1{\let\eq@itsGood\eq@One - \def\setActionKeys@cont{\processAppArgs#1\end\@nil}% - \begingroup\eq@checkivValidKeys#1\end\ef@nil\endgroup\eq@CatTail} -\def\eq@checkivValidKeys#1#2{\def\eq@GOOD{good}\expandafter - \@tfor\expandafter - \@ction\expandafter:\expandafter=\eq@SupActnLst\do{% - \expandafter\def\@ction{good}}% - \ifx\end#1% if #1=\end, #2=\ef@nil. - \def\eq@next{\aftergroup\setActionKeys@cont}% - \else - \if\eq@itsGood\eq@One - \let\itp@ss0\let\@@next\relax - \expandafter\@tfor\expandafter - \@ction\expandafter:\expandafter=\eq@SupActnLst\do{% - \expandafter\ifx\expandafter#1\@ction - \let\itp@ss\eq@One\@break@tfor - \fi}% do - \if\itp@ss\eq@Zero\let\eq@itsGood\eq@Zero - \def\eq@next{\def\eq@lastArg{#1}\expandafter - \eq@sqkErrorMsg\ef@gobbletonil}\else - \let\eq@next\eq@checkivValidKeys\fi - \else\let\eq@next\ef@gobbletonil\fi - \fi %\ifx\end - \eq@next -} -\def\eq@sqkErrorMsg#1{\PackageError{exerquiz}{The key \expandafter - \string\eq@lastArg\space is not supported by - \string\setActionKeys.\MessageBreak - Remove the key or correct the spelling of the key}{}} -\def\addToAction{\makeatletter\@ifstar{\let\isSt@r\eq@YES\@ddToAction} - {\let\isSt@r\eq@NO\@ddToAction}} -\def\@ddToAction#1#2{\let\eq@itsGood\eq@One - \def\setActionKeys@cont{\@@ddToAction{#1}{#2}}\begingroup - \eq@checkivValidKeys{#1}{#2}\end\ef@nil\endgroup\makeatother} -\def\@@ddToAction#1#2{\@getCmdName{#1}% - \if\isSt@r\eq@YES\toks2={#2}% - \toks@=\aeb@exiii{\csname eq\@CmdName\endcsname}% - \edef\tmp@tokshold{\the\toks2 \the\toks@}% - \toks@=\expandafter{\tmp@tokshold}\else - \toks@=\aeb@exiii{\csname eq\@CmdName\endcsname#2}\fi - \expandafter\edef\csname eq\@CmdName\endcsname{\the\toks@}% -} -\def\@eqAddAAKeystroke#1{\def\argi{#1}\ifx\argi\@empty - \def\eqAddAAKeystroke{}\else\def\eqAddAAKeystroke{#1}\fi} %\r -\def\eqAddAAKeystroke{} -\def\@eqAddAAMouseUpMC#1{\def\argi{#1}\ifx\argi\@empty - \def\eqAddAAMouseUpMC{}\else\def\eqAddAAMouseUpMC{#1}\fi} -\def\eqAddAAMouseUpMC{} -\def\@eqAddAAMouseUpMS#1{\def\argi{#1}\ifx\argi\@empty - \def\eqAddAAMouseUpMS{}\else\def\eqAddAAMouseUpMS{#1}\fi} -\def\eqAddAAMouseUpMS{} -\def\eqIconDefaults -{% - \rawPDF{}\S{}\mkIns{/TP 1}\W{} - \CA{}\RC{}\AC{}\BC{}\BG{}\H{N} - \textColor{0 g}\Ff{\FfReadOnly} -} -\newcommand\eqIcon[4][] -{% - \mbox{\push@@Button{#1}{#2}{#3}{#4}{}{\eq@setButtonProps - \eq@Button@driver}{\eqIconDefaults\every@ButtonField - \every@eqIcon}}% -} -\eq@restoreCats -\endinput -%% -%% End of file `exerquiz.sty'. +%% +%% This is file `exerquiz.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{exerquiz} + [2018/03/21 v8.2.2 % + Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)] +\usepackage{keyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} +\@ifundefined{exqtable}{\def\exqtable{table}}{} +\IfFileExists{xcolor.sty}{% + \def\eq@ColorPackage{xcolor}% + \PassOptionsToPackage{\exqtable,hyperref}{xcolor}} + {\def\eq@ColorPackage{color}} +\DeclareOption{noxcolor}{\def\eq@ColorPackage{color}} +\DeclareOption{forpaper}{% + \eqforpapertrue\PassOptionsToPackage{monochrome}{\eq@ColorPackage} + \AtBeginDocument{\ifnum\eq@drivernum=4 \else\AllowPeeking\fi} +} +\DeclareOption{forcolorpaper}{\eqforpapertrue % for print + \AtBeginDocument{\ifnum\eq@drivernum=4 \else\AllowPeeking\fi} +} +\DeclareOption{preview}{\PassOptionsToPackage{preview}{eforms}} +\DeclareOption{nosolutions}{\eq@nosolutionstrue\eq@nolinktrue} +\DeclareOption{noquizsolutions}{\eq@noquizsolutionstrue\eq@nolinktrue} +\let\eq@YES=y \let\eq@NO=n +\let\eq@One=1 \let\eq@Zero=0 +\def\eq@r{r}\let\eq@f=f \let\eq@l=l +\DeclareOption{online}{\let\eq@online\eq@YES} +\let\eq@online\eq@NO +\DeclareOption{nohiddensolutions}{\eq@globalshowsolutionstrue} +\DeclareOption{noHiddensolutions}% + {\eq@globalshowsolutionstrue\AtBeginDocument{\def\Hidesymbol{h}}} +\DeclareOption{solutionsafter}{\eq@solutionsaftertrue\eq@nolinktrue} +\DeclareOption{solutionsonly}{\solutionsonlytrue\answerkeytrue + \therearesolutionstrue\AtEndOfPackage{\let\exerSolnsHeadnToc\relax}} +\newif\ifsolutionsonly\solutionsonlyfalse +\@ifundefined{ifanswerkey}{\newif\ifanswerkey\answerkeyfalse}{} +\DeclareOption{contsolns}{\AtEndOfPackage{\InputIfFileExists + {contsolns.def}{\contsolnsInputMsg}{\contsolnsErrorMsg}}} +\def\contsolnsInputMsg{\PackageInfo{exerquiz}{contsolns option, + inputting file contsolns.def}} +\def\contsolnsErrorMsg{\PackageWarning{exerquiz}{contsolns option, + cannot find file contsolns.def}} +\DeclareOption{nocorrections}{\nocorrectionstrue} +\DeclareOption{proofing}{\eq@proofingtrue} +\newif\ifaebshowgrayletters\aebshowgraylettersfalse +\DeclareOption{showgrayletters}{\aebshowgrayletterstrue} +\@ifundefined{ifvspacewithsolns}{% + \DeclareOption{vspacewithsolns}{\vspacewithsolnstrue} + \newif\ifvspacewithsolns\vspacewithsolnsfalse +}{} +\@ifundefined{ifdisplayworkarea}{\newif\ifdisplayworkarea + \displayworkareafalse}{} +\DeclareOption{nodljs}{\PassOptionsToPackage{nodljs}{insdljs}% + \AtEndOfPackage{\let\importdljs\eq@YES}} +\DeclareOption{execJS}{\PassOptionsToPackage{execJS}{insdljs}} +\DeclareOption{exercisesonly}{\PassOptionsToPackage{nodljs}{insdljs}} +\DeclareOption{debug}{\PassOptionsToPackage{debug}{insdljs}} +\DeclareOption{allowrandomize}{\AtEndOfPackage{\inputRandomizeChoices}} +\def\inputRandomizeChoices{\InputIfFileExists{aebrandom.def} + {\PackageInfo{exerquiz}{inputting aebrandom.def}} + {cannot find aebrandom.def}} +\newif \ifusesumrytbls \usesumrytblsfalse +\DeclareOption{usesumrytbls}{\usesumrytblstrue + \def\inputSumryTblCode{\InputIfFileExists{aebsumrytbls.def} + {\PackageInfo{exerquiz}{inputting aebsumrytbls.def}}% + {cannot find aebsumrytbls.def}}} +\let\inputSumryTblCode\relax +\DeclareOption{usemcfi}{% + \def\inputMCFICode{\InputIfFileExists{usemcfi.def} + {\PackageInfo{exerquiz}{inputting usemcfi.def}}% + {cannot find usemcfi.def}}} +\let\inputMCFICode\relax +\newif\ifwithinMCFI\withinMCFIfalse +\DeclareOption{dvipsone}{% + \def\eq@drivernum{0}\def\eq@driver{dvipsone}% + \PassOptionsToPackage{dvipsone}{eforms} +} +\DeclareOption{dvips}{% + \def\eq@drivernum{0}\def\eq@driver{dvips}% + \PassOptionsToPackage{dvips}{eforms} +} +\DeclareOption{pdftex}{% + \def\eq@drivernum{1}\def\eq@driver{pdftex}% + \PassOptionsToPackage{pdftex}{\eq@ColorPackage} + \PassOptionsToPackage{pdftex}{eforms} +} +\DeclareOption{luatex}{% + \def\eq@drivernum{1}\def\eq@driver{luatex}% + \PassOptionsToPackage{luatex}{\eq@ColorPackage} + \PassOptionsToPackage{luatex}{eforms} +} +\DeclareOption{dvipdfm}{% + \def\eq@drivernum{2}\def\eq@driver{dvipdfm}% + \PassOptionsToPackage{dvipdfm}{\eq@ColorPackage}% + \PassOptionsToPackage{dvipdfm}{eforms}% +} +\DeclareOption{dvipdfmx}{% + \def\eq@drivernum{2}\def\eq@driver{dvipdfmx}% + \PassOptionsToPackage{dvipdfmx}{\eq@ColorPackage}% + \PassOptionsToPackage{dvipdfmx}{eforms}% +} +\DeclareOption{xetex}{% + \def\eq@drivernum{2}\def\eq@driver{xetex}% + \PassOptionsToPackage{xetex}{\eq@ColorPackage} + \PassOptionsToPackage{xetex}{eforms}% +} +\DeclareOption{textures}{\def\eq@drivernum{3}% + \def\eq@driver{textures}% + \PassOptionsToPackage{textures}{\eq@ColorPackage}% + \PassOptionsToPackage{textures}{eforms}% +} +\DeclareOption{dviwindo}{\def\eq@drivernum{4}\def\eq@driver{dviwindo}% + \eq@noformstrue\PassOptionsToPackage{nodljs}{insdljs}} +\DeclareOption{unicode}{\PassOptionsToPackage{unicode}{hyperref}} +\DeclareOption{useui}{\PassOptionsToPackage{useui}{eforms}} +\let\LangRedefinitions\relax +\DeclareOption{french}{% + \def\LangRedefinitions{\InputIfFileExists{eqfr.def}% + {\PackageInfo{exerquiz}{Inputting French Option}}% + {\PackageInfo{exerquiz}{French Option: Cannot find the file + eqfr.def, using the default, English.}}}} +\DeclareOption{german}{% + \def\LangRedefinitions{\InputIfFileExists{eqde.def}% + {\PackageInfo{exerquiz}{Inputting German Option}}% + {\PackageInfo{exerquiz}{German Option: Kann die Datei eqde.def + nicht finden, benutze Default, Englisch.}}}} +\DeclareOption{norsk}{% + \def\LangRedefinitions{\InputIfFileExists{eqno.def}% + {\PackageInfo{exerquiz}{Inputting Norsk Option}}% + {\PackageInfo{exerquiz}{Norsk Option: Cannot find the file eqno.def, + using the default, English.}}}} +\DeclareOption{dutch}{% + \def\LangRedefinitions{\InputIfFileExists{eqnl.def}% + {\PackageInfo{exerquiz}{Inputting Dutch Option}}% + {\PackageInfo{exerquiz}{Dutch Option: Kan bestand eqnl.def niet + vinden, gebruik default, Engels.}}}} +\DeclareOption{spanish}{% + \def\LangRedefinitions{\InputIfFileExists{eqes.def}% + {\PackageInfo{exerquiz}{Inputting Spanish Option}}% + {\PackageInfo{exerquiz}{Spanish Option: Opci\'on Espa\~nola: no puede + encontrar el fichero eqes.def, usar\'a por defecto, English.}}}} +\DeclareOption{italian}{% + \def\LangRedefinitions{\InputIfFileExists{eqit.def}% + {\PackageInfo{exerquiz}{Opzione Lingua Italiana}}% + {\PackageInfo{exerquiz}{pzione Italiano: Non trovo il file eqit.def, + utilizzo quello di default, English.}}}} +\DeclareOption{russian}{% + \@ifpackageloaded{hyperref}{% + \ifHy@unicode\else\PackageWarning{exerquiz}{% + The unicode option recommended for hyperref\MessageBreak}\fi + }{\PassOptionsToPackage{unicode}{hyperref}} + \def\LangRedefinitions{\InputIfFileExists{eqru.def}% + {\PackageInfo{exerquiz}{Inputting Russian Option}}% + {\PackageInfo{exerquiz}{Russian Option: Cannot find the file + eqru.def, using the default, English.}}}} +\DeclareOption{dansk}{% + \def\LangRedefinitions{\InputIfFileExists{eqda.def}% + {\PackageInfo{exerquiz}{Inputting Dansk Option}}% + {\PackageInfo{exerquiz}{Dansk Option: Cannot find the file eqda.def, + using the default, English.}}}} +\DeclareOption{polish}{% + \def\LangRedefinitions{\InputIfFileExists{eqpo.def}% + {\PackageInfo{exerquiz}{Inputting Polish Option}}% + {\PackageInfo{exerquiz}{Polish Option: Cannot find the file + eqpo.def, using the default, English.}}}} +\DeclareOption{finnish}{% + \def\LangRedefinitions{\InputIfFileExists{eqfin.def}% + {\PackageInfo{exerquiz}{Inputting Finnish Option}}% + {\PackageInfo{exerquiz}{Finnish Option: Cannot find the file + eqfin.def, using the default, English.}}}} +\DeclareOption{catalan}{% + \def\LangRedefinitions{\InputIfFileExists{eqcat.def}% + {\PackageInfo{exerquiz}{Inputting Catalan Option}}% + {\PackageInfo{exerquiz}{Catalan Option: Cannot find the file + eqcat.def, using the default, English.}}}} +\DeclareOption{czech}{% + \def\LangRedefinitions{\InputIfFileExists{eqcz.def}% + {\PackageInfo{exerquiz}{Inputting Czech Option}}% + {\PackageInfo{exerquiz}{Czech Option: Cannot find the file eqcz.def, + using the default, English.}}}} +\DeclareOption{brazil}{% + \def\LangRedefinitions{\InputIfFileExists{eqbr.def}% + {\PackageInfo{exerquiz}{Inputting Brazilian Portuguese Option}}% + {\PackageInfo{exerquiz}{Portuguese Option: Opc\~ao Portugu\^es: + n\~ao foi poss\'ivel encontrar o arquivo eqbr.def, usaremos + o padr\~ao, English.}}}} +\DeclareOption{turkish}{% + \@ifpackageloaded{hyperref}{% + \ifHy@unicode\else\PackageWarning{exerquiz}{% + The unicode option recommended for hyperref\MessageBreak}\fi + }{\PassOptionsToPackage{unicode}{hyperref}} + \def\LangRedefinitions{\InputIfFileExists{eqtr.def}% + {\PackageInfo{exerquiz}{Inputting Turkish Option}}% + {\PackageInfo{exerquiz}{Cannot find the file eqtk.def, + using the default, English.}}}} +\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{\eq@ColorPackage}} +\@ifpackageloaded{xcolor}% +{% + \@ifpackagelater{xcolor}{2004/07/04}{} + {% + \PackageError{exerquiz}{% + *************************************************\MessageBreak + * Your Version of `xcolor.sty' is too old!\MessageBreak + * You need the version from 2004/07/04 or newer\MessageBreak + * or use: \string\usepackage[noxcolor]{exerquiz}\MessageBreak + *************************************************}{}% + }% +}{} +\let\iterate\relax +\newif\ifeq@solutionsafter \eq@solutionsafterfalse +\newif\ifeq@hidesolution \eq@hidesolutionfalse +\newif\ifeq@globalshowsolutions \eq@globalshowsolutionsfalse +\newif\ifeq@nosolutions \eq@nosolutionsfalse +\newif\ifeq@proofing \eq@proofingfalse +\providecommand\turnProofingOn{\eq@proofingtrue} +\providecommand\turnProofingOff{\eq@proofingfalse} +\newif\ifeqforpaper \eqforpaperfalse +\newif\ifeq@noforms \eq@noformsfalse +\newif\ifeq@noquizsolutions \eq@noquizsolutionsfalse +\newif\ifnocorrections \nocorrectionsfalse +\@ifundefined{ifeqe@flextended}{\newif\ifeqe@flextended + \eqe@flextendedfalse}{} +\@ifundefined{ifcont@nnot}{\newif\ifcont@nnot \cont@nnotfalse}{} +\@ifundefined{if@eqalignfilllinestoleft}{\newif\if@eqalignfilllinestoleft + \@eqalignfilllinestoleftfalse}{} +\newif\ifkeepdeclaredvspacing \keepdeclaredvspacingfalse +\newif\ifeq@nolink \eq@nolinkfalse +\def\eq@ckglobalhide{\ifeq@globalshowsolutions\eq@hidesolutionfalse\fi} +\def\hidesymbol{h}\def\Hidesymbol{H} +\newif\iftherearesolutions \therearesolutionsfalse +\newif\ifIsRespBox \global\IsRespBoxfalse +\def\SolutionsAfter{\eq@solutionsaftertrue\eq@nolinktrue} +\newif\ifcqSA\cqSAfalse +\def\SolutionsAtEnd{\eq@solutionsafterfalse\eq@nolinkfalse + \displayworkareatrue\ifvspacewithsolns\eq@nosolutionsfalse\else + \eq@nosolutionstrue\fi\eq@proofingfalse\answerkeyfalse} +\def\NoSpaceToWork{\let\eq@insertverticalspace\eq@NO} +\def\SpaceToWork{\let\eq@insertverticalspace\eq@YES} +\SpaceToWork +\long\def\ifNoSolutions#1#2{% + \ifeq@nosolutions\expandafter#1\else + \expandafter#2\fi +} +\newif\ifeq@randomizeChoices \eq@randomizeChoicesfalse +\newif\ifeq@randomizeallChoices \eq@randomizeallChoicesfalse +\def\turnOnRandomize{\eq@randomizeallChoicestrue} +\def\obeyLocalRandomize{\eq@randomizeallChoicesfalse} +\let\saveRandomSeed\relax +\let\inputRandomSeed\relax +\def\CorrectionsOn{\global\nocorrectionsfalse} +\def\CorrectionsOff{\global\nocorrectionstrue} +\AtBeginDocument{\ifeq@noforms\else\Form\fi} +\AtEndDocument{% + \include@solutions + \ifeq@noforms\else\include@quizsolutions\fi + \clearpage + \csname endForm\endcsname + \if\eq@drivernum2\else\clearpage\fi +} +\InputIfFileExists{exerquiz.cfg}{}{} +\@ifpackageloaded{web}{% + \ExecuteOptions{\eq@driver@name}% +}{% + \ifluatex\ExecuteOptions{luatex}\else + \ifpdf\ExecuteOptions{pdftex}\else + \ifxetex\ExecuteOptions{xetex}\else + \InputIfFileExists{web.cfg}{} + {\@ifundefined{l@tex@@@@driver}{\ExecuteOptions{dvips}} + {\ExecuteOptions{dvipsone}}}\fi\fi\fi +} +\ProcessOptions +\RequirePackage{array} +\RequirePackage{\eq@ColorPackage} +\RequirePackage{comment} +\RequirePackage{verbatim} +\RequirePackage{hyperref} +\RequirePackage{amssymb}% used for return symbols +\RequirePackage{eforms}[2012/06/20] +\@ifundefined{eq@drivernum}{% + \PackageError{exerquiz}% + {You have not specified dvips, dvipsone, pdftex, dvipdfm, + dvipdfmx, or xetex + \MessageBreak in the option list of the exerquiz package} + {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, + dvipdfmx, or xetex + \MessageBreak in the option list of the exerquiz package.} +}{} +\edef\eq@restoreCats{% dps17 + \catcode`\noexpand\"=\the\catcode`\"\relax + \catcode`\noexpand\'=\the\catcode`\'\relax + \catcode`\noexpand\,=\the\catcode`\,\relax + \catcode`\noexpand\(=\the\catcode`\(\relax + \catcode`\noexpand\!=\the\catcode`\!\relax + \catcode`\noexpand\_=\the\catcode`\_\relax +} +\@makeother\"\@makeother\'\@makeother\,% +\@makeother\(\@makeother\!\@makeother\_ +\@ifundefined{ifsolutionsAtEnd} + {\newif\ifsolutionsAtEnd\solutionsAtEndtrue}{} +\ifeq@nosolutions\solutionsAtEndfalse\fi +\ifeq@solutionsafter\solutionsAtEndfalse\fi +\@ifundefined{if@fleqn}{\let\fleqnOn\relax\let\fleqnOff\relax} + {\def\fleqnOn{\@fleqntrue}\def\fleqnOff{\@fleqnfalse}} +\@ifundefined{if@inclkey}{\newif\if@inclkey\@inclkeytrue}{} +\def\eqretnSymb{$\blacksquare$}%{\rule{6bp}{6.8bp}} +\newcommand\exlabel{Exercise} +\newcommand\exlabelsol{\exlabel} +\newcommand\exsectitle{Solutions to \exlabel s} +\newcommand\exsecrunhead{\exsectitle} %% change to @ form +\newcommand{\exsolafter}{\eq@exsolafterDefault} +\newcommand{\resetSolnAfterToDefault}{% + \def\exsolafter{\eq@exsolafterDefault}} +\newcommand{\exsolafterDefault}[1]{\def\eq@exsolafterDefault{#1}% + \def\exSolafterDefault{#1}\resetSolnAfterToDefault} +\exsolafterDefault{\textit{Solution}:} +\newcommand{\renameSolnAfterTo}[1]{\def\exsolafter{#1}} +\newcommand{\adjDisplayBelow}{\vskip-\lastskip\vskip-\baselineskip} +\newcommand{\adjDisplayBelowPlus}{\adjDisplayBelow\recoverDisplayBelow} +\def\recoverDisplayBelow{\vskip\belowdisplayskip} +\newcommand\eq@sqslsectitle{Solutions to Quizzes} +\newcommand\sqslsectitle{\eq@sqslsectitle} +\newcommand\eq@sqslsecrunhead{Solutions to Quizzes} +\newcommand\sqslsecrunhead{\eq@sqslsecrunhead} +\newcommand\eq@sqsllabel{\protect\textbf{Solution to Quiz:}} +\newcommand\sqsllabel{\eq@sqsllabel} +\newcommand\sqsolafter{\textit{Solution}:} +\newcommand{\sqDefaultFmtTitle}[1]% + {\def\eq@sqlabel{#1}\def\sqlabel{#1}} +\newcommand\sqlabel{\eq@sqlabel} +\sqDefaultFmtTitle{\textcolor{red}{Quiz}} +\newcommand\eq@sqslrtnlabel{\protect\eqretnSymb} +\newcommand\sqslrtnlabel{\eq@sqslrtnlabel} +\newcommand\eqsqrtmsg{"Right!"} +\newcommand\eqsqwgmsg{"Wrong!"} +\newcommand\doNotShowAgainMsg{Do not show this message again} +\newcommand\eq@bqlabel{Begin Quiz} +\newcommand\bqlabel{\eq@bqlabel} +\newcommand\eq@bqlabelISO{\eq@bqlabel} +\newcommand\bqlabelISO{\eq@bqlabelISO} +\newcommand\setDefShortQuizLabelName[1]% + {\def\eq@defaultShortQuizLabelName{#1}} +\setDefShortQuizLabelName{Quiz} +\newcommand\setDefQuizLabelName[1] + {\def\eq@defaultQuizLabelName{#1}} +\setDefQuizLabelName{Quiz} +\newcommand\eq@eqlabel{End Quiz} +\newcommand\eqlabel{\eq@eqlabel} +\newcommand\eq@Score{Score:}\newcommand\eq@OutOf{out of} +\newcommand\eq@ptScore{Score:} +\newcommand\stOutOf{of} +\newcommand\eqScore{\eq@Score}\newcommand\eqOutOf{\eq@OutOf} +\newcommand\eqptScore{\eq@ptScore} +\newcommand\eqInitQuizMsg{% + "You must initialize the Quiz! Click on "+msg+"."} +\newcommand\eqQuizTotalMsg{% + "\eqScore\space"+Score+" \eqOutOf\space"+nQuestions} +\newcommand\eqQuizPointsMsg{% + "\eqptScore\space"+ptScore+" \eqOutOf\space"+nPointTotal} +\newcommand\eqQuizPercentMsg{pcScore+"\%"} +\newcommand\eqQuizGradeMsg{quizGrade} +\newcommand\eqMadeChoice{% + "You have already made a choice." + + " Your choice was ("+Responses[probno]+")." + + " Do you want to change it?"} +\newcommand\eq@local@CA{Correct} +\newcommand\eq@local@RC{My Answers!} +\newcommand\eq@local@AC{Please!} +\newcommand\eq@local@CorrAnsButton{Ans} +\newcommand{\eq@local@sqClearButton}{Clear} +\newcommand\eqerrABS{"Absolute values not balanced. Please correct."} +\dlJSStr[noquotes]\eqerrBadMathFunc{"The expression \""+aF[i] + +"\" is neither a defined function nor a valid math expression."} +\newcommand\eqParens{"Parentheses"} +\newcommand\eqBrackets{"Brackets"} +\newcommand\eqBraces{"Braces"} +\newcommand\eqerrDelimNotBal{aGroup[i][2] + " not balanced. + Please correct."} +\newcommand\eqerrBadExp{"Invalid mathematical expression. + A problem with one of the exponents. Please correct."} +\newcommand\eqerrUnfinishQuiz{"There is an unfinished quiz, + please finish before moving on to another."} +\newcommand\noPeekMsg{"Viewing Solutions to quizzes is not allowed + until you take or finish this quiz!"} +\newcommand\highThresholdMsg{"You are required to respond to all + questions before the quiz is evaluated."} +\newcommand\eqSyntaxErrorUndefVar{"Syntax Error: Possibly an undefined + variable present, or an expression is not written in an expected + format."} +\dlJSStr[noquotes]{\eqSyntaxErrorComma}{% + "Syntax Error: A comma was found" + + " in your response \"" + + UserAns + "\". Please remove the comma, or this answer" + + " will be marked as wrong."} +\newcommand{\limSelWarningMsg}{"For this question, you are allowed to + make at most " + n + " selections."} +\newcommand{\defaultReqFormMsg}{% + "The expression is not in the expected form."} +\PackageInfo{exerquiz}{* Using \eq@driver\space option *} +\ifsolutionsonly +\InputIfFileExists{\jobname_xdefs.cut}{% + \typeout{^^JExerquiz|Eqexam: Reading \jobname_xdefs.cut^^J}} + {\PackageWarningNoLine{exerquiz|eqexam}{% + \jobname_xdefs.cut not found.\MessageBreak + Recompile file under the vspacewithsolns\MessageBreak + option, then compile with the solutionsonly\MessageBreak + option}} +\else +\newwrite\ex@solns \immediate\openout \ex@solns \jobname.sol +\newcommand{\writeToExSolns}[1]{% + \set@display@protect + \immediate\write\ex@solns{#1}% + \set@typeset@protect +} +\newwrite\eq@xrefdefns \immediate\openout\eq@xrefdefns\jobname_xdefs.cut +\fi +\newwrite\quiz@solns \immediate\openout \quiz@solns \jobname.qsl +\newcommand{\writeToQzSolns}[1]{% + \set@display@protect + \immediate\write\quiz@solns{#1}% + \set@typeset@protect +} +\def\eq@IWAuxOut#1{\immediate\write\@auxout{#1}} +\def\eq@IWDefs#1{\immediate\write\eq@xrefdefns{#1}} +\newcounter{eqexno} \setcounter{eqexno}{0} +\newcounter{@exno} \setcounter{@exno}{0} % running exno +\newcounter{quizno} \setcounter{quizno}{0} +\renewcommand\thequizno{\alph{quizno}} +\def\theHquizno{\curr@quiz.\theeqquestionnoi.% + \ifcase\@eqquestiondepth\or\or\arabic{eqquestionnoii}.% + \or\arabic{eqquestionnoii}.\roman{eqquestionnoiii}.% + \else\fi\alph{quizno}} +\newlength\eqemargin \eqemargin=0pt +\newcounter{eqpointvalue} \setcounter{eqpointvalue}{0} +\newlength\eq@tmplength +\newlength\eqtmplength +\newcounter{questionno} +\newcounter{eqquestionnoi} +\newcounter{eqquestionnoii} +\newcounter{eqquestionnoiii} +\newcount\@eqquestiondepth \@eqquestiondepth=0 +\newcounter{grpquestionno} +\newcounter{partno} +\newif\ifuseNumForParts\useNumForPartsfalse +\def\alphaParts{\def\partnoFmt{\alph}\useNumForPartsfalse}\alphaParts +\def\numberParts{\def\partnoFmt{\arabic}\useNumForPartstrue} +\renewcommand\thepartno{\partnoFmt{partno}} +\newtoks\eq@scratchtoks +\def\theHpartno{partno\the@exno\thepartno} +\def\verbatimwrite{\@bsphack + \let\do\@makeother\dospecials + \catcode`\^^M\active \catcode`\^^I=12 + \def\verbatim@processline{% + \immediate\write\verbatim@out + {\the\verbatim@line}}% + \verbatim@start} +\def\endverbatimwrite{\@esphack} +\providecommand\PBS[1]{\let\temp=\\#1\let\\=\temp} +\newcommand\exlabelformat{{\scshape\exlabel\ \theeqexno.}} +\newcommand\exlabelformatwp{\exlabelformat} +\newcommand\exsllabelformat{\protect\textbf{\exlabelsol\ \theeqexno.}} +\newcommand\exsllabelformatwp + {\protect\textbf{\exlabelsol\ \theeqexno(\thepartno)}} +\newcommand\exrtnlabelformat{$\square$} +\newcommand\exrtnlabelformatwp{$\square$} +\newcommand{\belowexskip}[1]{\setlength{\eq@tmplength}{#1}% + \edef\eq@exerskip{\noexpand\removelastparskip + \noexpand\vskip\the\eq@tmplength\relax\kern0pt}} +\let\eqexerskip\belowexskip +\belowexskip{\medskipamount} +\newcommand{\aboveexskip}[1]{\setlength{\eq@tmplength}{#1}% + \edef\eq@priorexskip{\noexpand\vskip\the\eq@tmplength\relax + \kern0pt}} +\let\priorexskip\aboveexskip +\aboveexskip{\medskipamount} +\let\eq@postexerciseHook\relax +\newcommand\belowexsolnskip{\protect\medskip} +\def\removelastparskip{\ifdim\parskip>0pt\vskip-\parskip\fi} +\newcommand{\nolinkcolor}[1]{\def\@nolinkcolor{#1}} +\nolinkcolor{blue} +\newcommand{\exerSolnsInExtFile}[2][] + {\let\exerSolns@ExtFile\eq@YES\gdef\eq@exerSolns@fileName{#2}% + \gdef\exerSolns@ReturnPath{#1}} +\let\exerSolns@ExtFile\eq@NO +\def\exerSolns@ReturnPath{} +\let\marginparpriorhook\@empty % used to material before the exercise +\let\marginparafterhook\@empty % used to material after the exercise +\let\afterlabelhskip\space +\let\exersolnheadhook\@empty +\let\exer@solnheadhook\@empty +\newcommand{\eqexheader} +{% + \ifeq@nolink % no link to solution + \mbox{\color{\@nolinkcolor}\if\exerstar*\exlabelformatwp\else + \exlabelformat\fi}% + \else + \if\exerSolns@ExtFile\eq@YES + \mbox{\href{\eq@exerSolns@fileName\#ex.\the@exno}% + {\exlabelformat}}% + \else + \mbox{\hyperlink{ex.\the@exno}{\exlabelformat}}% + \fi + \fi +} +\def\eqexheader@wrapper{\hypertarget{qex.\the@exno}{\eqexheader}} +\newcommand{\partsformat}[1]{\def\eq@partsformat{#1}} +\partsformat{(\hfil\thepartno\hfil)} +\newcommand{\defaultpartsformat}{% + \partsformat{(\hfil\thepartno\hfil)}} +\let\exlisttabheaderpriorhook\@empty +\let\exlisttabheaderafterhook\@empty +\newcommand{\eqexlisttabheader} +{% + \exlisttabheaderpriorhook + \ifeq@nolink + \color{\@nolinkcolor}\eq@partsformat + \else + \if\exerSolns@ExtFile\eq@YES + \href{\eq@exerSolns@fileName\#ex.\the@exno\thepartno}% + {\eq@partsformat}% + \else + \hyperlink{ex.\the@exno\thepartno}{\eq@partsformat}% + \fi + \fi +} +\newcount\cq@Cnt +\def\cq@CutName{cq-\the\cq@Cnt.cut} +\let\cq@star\eq@NO +\newif\ifcqqs \cqqstrue +\newif\ifcqIsActive \cqIsActivefalse +\def\cqQS{\@ifstar{\cqQSV}{\cqQSA}} +\def\cqQSA#1#2{\ifcqqs#1\else#2\fi} +\@ifpackageloaded{web}{\@ifundefined{IF@AorBswitch}{% + \PackageWarningNoLine{A version of the web package + dated\MessageBreak 2016/11/03 or later is required + for \string\cqQS}}}{}% +\@ifundefined{webtempboxi}{\newbox\webtempboxi + \newbox\webtempboxii}{} +\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} +\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} +\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} +\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} +\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} +\providecommand\SETTEMPBOXi{\IF@AorBswitch\else + \afterassignment\TRUEACTIONia\fi + \setbox\webtempboxi=\hbox} +\providecommand\SETTEMPBOXii{\IF@AorBswitch + \afterassignment\FALSEACTIONiia\fi + \setbox\webtempboxii=\hbox} +\def\cqQSV{\let\IF@AorBswitch\ifcqqs + \IF@AorBswitch + \def\eq@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else + \def\eq@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi + \eq@next} +\def\eq@turnMessageOff{\let\save@message\message + \let\message\@gobble} +\def\eq@turnMessageOn{\let\message\save@message} +\def\eqCQDeclarations{\cqqsfalse\eq@turnMessageOff + \includecomment{sPage}\excludecomment{qPage}% + \eq@turnMessageOn} +\def\eqTopOfSolnPage{\cqSAfalse + \eqCQDeclarations} +\eq@turnMessageOff +\includecomment{qPage}\excludecomment{sPage} +\eq@turnMessageOn +\def\writecqQSfalse{\writeToExSolns{\protect\eqTopOfSolnPage}} +\AtBeginDocument{\writecqQSfalse} +\newenvironment{cq@CQ} +{% + \global\cqIsActivetrue + \global\advance\cq@Cnt1\relax + \immediate\openout\CommentStream=\cq@CutName + \let\verbatim@out\CommentStream + \verbatimwrite +}{% + \endverbatimwrite + \immediate\closeout\CommentStream + \ifx\cq@star\eq@YES + \xdef\cq@INPUTCUT{\noexpand\cqqstrue + \noexpand\input{\cq@CutName}\noexpand + \def@QuesToSoln}\else + \xdef\cq@INPUTCUT{\noexpand\cqqstrue + \noexpand\input{\cq@CutName}\noexpand + \p@ssQuesToSoln}\fi + \aftergroup\cq@INPUTCUT +} +\newenvironment{cqs@CQ}{\let\cq@star\eq@YES\cq@CQ}{\endcq@CQ} +\def\declCQQuesStr#1{\def\cqQStr{#1}} +\declCQQuesStr{Question} +\def\declCQSolStr#1{\def\cqSStr{#1}} +\declCQSolStr{Solution} +\newcommand\declCQPre[1]{\def\cq@Pre{#1}} +\declCQPre{\emph{\cqQStr}:\space} +\newcommand\declCQPost[1]{\def\cq@Post{#1}} +\declCQPost{\par\medskip\noindent\emph{\cqSStr}:\space\ignorespaces} +\def\cqFmtPasteQues#1{\cq@Pre\input{#1}\cq@Post} +\def\p@ssQuesToSoln{\ifeq@hidesolution\else + \global\terminexchangedtrue % dps cq + \writeToExSolns{\protect + \decleqterminex{\protect\cqFmtPasteQues{\cq@CutName}}}\fi} +\def\declCopyQues#1{\def\cqCopiedQues{#1}} +\def\def@QuesToSoln{\restoreNormalSolns + \global\terminexchangedfalse % dps cq + \ifeq@hidesolution\else\writeToExSolns{\protect + \declCopyQues{\protect\input{\cq@CutName}}}\fi} +\newcommand\restoreNormalSolns{% + \writeToExSolns{\protect\decleqterminex{\protect\eqterminexDEF}}} +\newcommand{\eq@CommonCmd}[1]{\def\eq@@CommonCmd{#1}#1} +\let\eq@@CommonCmd\@empty +\newcommand\gExCommonCmd[1]{\gdef\gEx@CommonCmd{\eq@CommonCmd{#1}}} +\let\gEx@CommonCmd\@empty +\let\endexerhook\@empty +\newenvironment{exercise} +{% + \let\cq\cq@CQ\let\endcq\endcq@CQ + \csarg\let{cq*}\cqs@CQ + \csarg\let{endcq*}\endcqs@CQ + \par\removelastskip\eq@priorexskip\noindent + \let\eqCommonCmd\eq@CommonCmd + \def\eq@argi{eqexno}%% use eqexno counter + \if\eq@exerstarEnv*\def\exerstar{*}\else\def\exerstar{x}\fi + \def\currhideopt{x}% + \@ifnextchar[{\exercise@}% + {\if\exerstar*\def\eq@next{\@exercise}\else + \def\eq@next{\exercise@@}\fi\eq@next}% +}{\eq@postexerciseHook\endexerhook\par + \global\eq@exerciseheadingtrue\removelastskip\eq@exerskip} +\def\exercise@[#1]{\edef\eq@arg{#1}% + \if\eq@arg h\def\currhideopt{h}% + \eq@hidesolutiontrue\eq@nolinktrue% + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse\fi + \def\eq@next{\@exercise}% h, no *, no counter + \else + \if\eq@arg H% + \edef\currhideopt{\Hidesymbol}% + \eq@hidesolutiontrue\eq@nolinktrue% + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse + \fi + \def\eq@next{\@exercise}% H, no *, no counter + \else + \def\currhideopt{x}% + \ifx\eq@arg\@empty\else\def\eq@argi{#1}\fi + \if\exerstar*\def\eq@next{\@exercise}\else + \def\eq@next{\exercise@@}\fi + \fi + \fi +\eq@next} +\def\exercise@@{\@ifstar{\def\exerstar{*}\@exercise}{\exercise@@@}} +\def\exercise@@@{\@ifnextchar[{\exercise@@@@}{\@exercise}} +\def\exercise@@@@[#1]{\edef\eq@arg{#1}% + \if\eq@arg h\def\currhideopt{h}% + \eq@hidesolutiontrue\eq@nolinktrue + \ifeq@globalshowsolutions + \eq@hidesolutionfalse\eq@nolinkfalse\fi + \def\eq@next{\@exercise}% h, no *, no counter + \else + \if\eq@arg H\edef\currhideopt{\Hidesymbol}% + \eq@hidesolutiontrue\eq@nolinktrue% + \def\eq@next{\@exercise}% h, no *, no counter + \else + \def\currhideopt{x}% + \PackageWarning{exerquiz}{The option #1 is not recognized} + \let\eq@next\relax + \fi + \fi +\eq@next} +\newif\ifeq@exerciseheading \eq@exerciseheadingtrue +\let\prior@exerSolnHeaderHook\@empty +\newcommand\exerSolnHeader[3]{% + \prior@exerSolnHeaderHook + \ifeqforpaper\else\webnewpage\fi\markright{#1}%\par\noindent% + \noindent\hypertarget{#2}{#3}\relax + \solnhspace +} +\let\solnItemMngt\relax +\let\eqEXt\@gobbletwo +\let\endeqEXt\relax +\let\eqExtArg\@empty +\let\eqFilterArg\@empty +\let\eqExerSolnHeader\@empty +\let\solutionparshape\@empty +\def\eq@pslnaindnt{0pt} +\let\eq@setPrbSolnAftrIndnt\relax +\newcommand{\setPrbSolnAftrIndent}[1]{\ifdim#1=0pt + \def\eq@pslnaindnt{0pt}\let\eq@setPrbSolnAftrIndnt\relax\else + \edef\eq@pslnaindnt{#1}\edef\eq@setPrbSolnAftrIndnt{% + \expandafter\noexpand\expandafter\parindent#1\noexpand\relax}\fi +} +\newif\if@restorejustify \@restorejustifyfalse +\newcommand\restoreJustifyOn{\@restorejustifytrue} +\newcommand\restoreJustifyOff{\@restorejustifyfalse} +\def\restorejustify{\if@restorejustify + \@rightskip\z@skip \rightskip\@rightskip + \leftskip\z@skip \let\\\@normalcr\fi} +\def\@exercise{% + \global\let\solutionparshape\@empty + \let\verbatim@out=\ex@solns + \if\eq@argi0\else\refstepcounter{\eq@argi}\fi\stepcounter{@exno}% + \if\exerstar*% if exercise with parts + \eq@nolinktrue + \else + \if\currhideopt H% + \else + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide % + \ifeq@hidesolution\else + \global\let\eqExerSolnHeader\eq@@writeexheader + \fi + \fi + \fi + \fi + \ifvmode\ifdim\lastskip>\z@ + \vskip-\lastskip + \fi\fi + \if\exerstar*% + \let\solution\solnexer@woparts + \let\endsolution\endsolnexer@woparts + \let\parts\exercise@parts + \let\endparts\endexercise@parts + \else + \let\solution\solnexer@woparts + \let\endsolution\endsolnexer@woparts + \let\parts\relax + \let\endparts\relax + \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter + \eq@nolinktrue\fi\fi + \fi + \eq@initializeContAnnot + \ifeq@exerciseheading + \prior@questionsHook\marginparpriorhook\noindent\eqexheader@wrapper + \afterlabelhskip\marginparafterhook\gEx@CommonCmd + \eq@setPrbSolnAftrIndnt\ignorespaces\fi +} +\newif\ifterminexchanged \terminexchangedfalse % dps cq +\newcommand\decleqterminex[1]{\def\eqterminex{#1}} +\def\eqterminexDEF{\relax\ignorespaces} +\decleqterminex{\eqterminexDEF} +\newif\ifmakeExSlLocal \makeExSlLocalfalse +\def\makeExSolnsLocalOn{\makeExSlLocaltrue} +\def\makeExSolnsLocalOff{\makeExSlLocalfalse} +\def\eqExerSolnHeaderSngl{% + \ifmakeExSlLocal\protect\begingroup^^J\fi + \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect + \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}{ex.\the@exno}% + {\exsllabelformat}\exer@solnheadhook + \exersolnheadhook\protect\eqterminex +} +\def\eq@@writeexheader{\set@display@protect + \immediate\write\verbatim@out{\eqExerSolnHeaderSngl}% + \set@typeset@protect +} +\def\eqExerSolnHeaderList{% + \ifmakeExSlLocal\protect\begingroup^^J\fi + \protect\eqEXt{\eqExtArg}{\eqFilterArg}\protect + \solnItemMngt\protect\exerSolnHeader{\exsecrunhead}% + {ex.\the@exno\thepartno}{\exsllabelformatwp}% + \exer@solnheadhook\exersolnheadhook\protect\eqterminex +} +\def\eq@@writeexheaderlist{\set@display@protect + \immediate\write\verbatim@out{\eqExerSolnHeaderList}% + \set@typeset@protect +} +\long\def\setsolnspace#1{\def\newsolnspace{#1}% + \let\solnspace\newsolnspace} +\newif\ifeq@ckSolnVspace \eq@ckSolnVspacetrue +\def\ckSolnOpt{\global\eq@ckSolnVspacetrue} +\def\noSolnOpt{\global\eq@ckSolnVspacefalse} +\let\solnhspace\space +\let\solnspace\space +\let\exsolnonceonlytophook\relax +\def\solnexer@woparts{% + \ifanswerkey\ifeqe@flextended\ifcont@nnot + \ifx\solutionparshape\@empty\else % dpsj8 + \pushEnvir + \everypar{}\if@eqalignfilllinestoleft\else + \parshape=1 \leadinIndent \linewidth\fi + \popEnvir + \fi\fi\fi\fi\def\bLeaveVspace{x}% = no vertical space added + \exsolnonceonlytophook % dps27 + \global\let\exsolnonceonlytophook\relax + \@ifundefined{KV@eqefillLines@bgonly}{} + {\ifKV@eqefillLines@bgonly\ifvmode\else + \par\leavevmode\strut\fi\fi + \ifKV@eqefillLines@outlineonly\leavevmode\strut\fi}% + \ifeq@ckSolnVspace + \def\eq@next{\@ifnextchar[{\solnexer@@woparts}%] + {\solnexer@@woparts[\null]}}\else + \def\eq@next{\solnexer@@woparts[\null]}\fi + \eq@next +} +\let\eqPriorVspace\@gobble +\newif\if@eqlinedfiller \@eqlinedfillerfalse +\newcommand{\vspaceFiller}[1]{\vfill} +\newcommand{\vspaceFillerDefault}[1]{\vfill} +\def\eqWriteLine{\hfill} +\def\eq@linesXPgs{% + \begingroup\offinterlineskip\parskip0pt + \@tempcnta=0 + \@whilenum\@tempcnta<\soln@keys@nLines\relax\do + {\vskip0pt\penalty-50\vglue\wlVspace\eqWriteLine + \advance\@tempcnta1\relax}\par\endgroup +} +\let\leavevspace\relax % dpsj5 +\newcommand{\vspaceFmt}[1]{% + \ifx\solutionparshape\@empty\else + \advance\linewidth-\leadinIndentPrtSep\fi + \ifdim\sameVspace>0pt + \let\bLeaveVspace\@empty + \def\leavevspace{% + \ifx\eq@insertverticalspace\eq@YES\par\eq@quessolskip + \eqPriorVspace{#1}{\nobreak\noindent + \if@eqlinedfiller + \ifx\soln@keys@nLines\@empty + \def\eq@lines@next{\vspaceFiller{#1}}\else + \def\eq@lines@next{\eq@linesXPgs}\fi + \else + \def\eq@lines@next{\parbox[b][#1][t]{\linewidth} + {\vspaceFiller{#1}}}% + \fi\eq@lines@next}% + \fi + }\expandafter\leavevspace % dpsj6 + \fi +} +\define@key{soln@keys}{nLines}[]{\def\soln@keys@nLines{#1}} +\let\soln@keys@nLines\@empty +\def\eqKV@errx#1{\xdef\XKV@rm{\@tempa}} +\def\eqSolnForEqexam#1{% + \let\soln@keys@nLines\@empty + \setkeys*{soln@keys}{#1}% + \ifx\soln@keys@nLines\@empty + \ifx\minVspacet@bs\@empty\xdef\sameVspace{\XKV@rm}\else + \xdef\sameVspace{\minVspacet@bs}\fi + \else + \@tempdima\wlVspace + \@tempdima=\soln@keys@nLines\@tempdima + \xdef\sameVspace{\the\@tempdima}% + \ifx\XKV@rm\@empty\else + \if@equsedim\let\soln@keys@nLines\@empty + \xdef\sameVspace{\XKV@rm}\fi + \fi + \fi + \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi +} +\def\solnexer@@woparts[#1]{% + \ifcqIsActive\else\ifterminexchanged + \restoreNormalSolns\fi\fi % dps cq + \global\cqIsActivefalse + \def\eq@argi{#1}\def\eq@null{\null}% + \ifx\eq@argi\@empty\gdef\sameVspace{0pt}\else + \ifx\eq@argi\eq@null\gdef\sameVspace{0pt}\else + \@ifundefined{PointsOnLeft}{% + \let\eqKV@errx@SAVE\KV@errx + \let\KV@errx\eqKV@errx\let\XKV@rm\@empty + \edef\temp@exp{\noexpand\setkeys*{soln@keys}{#1}}\temp@exp + \let\KV@errx\eqKV@errx@SAVE + \ifx\soln@keys@nLines\@empty\else + \PackageInfo{exerquiz}{% + nLines key detected in solution environment,\MessageBreak + is not not recognized without eqexam,\MessageBreak + will remove it}% + \let\soln@keys@nLines\@empty\fi + \xdef\sameVspace{\XKV@rm}% + }{\eqSolnForEqexam{#1}}% + \fi\fi + \solnexer@@@woparts +} +\def\solnsafterSkip#1{\setlength{\@tempdima}{#1}% + \edef\solnsafterSkipAmt{\the\@tempdima}% + \def\solutionsafterSkip{\vskip\solnsafterSkipAmt\relax}} +\solnsafterSkip{\smallskipamount} +\def\@solnafterSkipOnce#1{\setlength{\@tempdima}{#1}% + \xdef\@solnafterSkipOnceAmt{\the\@tempdima}}% +\def\@@solnafterSkipOnce{\vskip\@solnafterSkipOnceAmt\relax %dpsj3 + \gdef\@solnafterSkipOnceAmt{0pt}} +\def\@solnafterSkipOnceAmt{0pt} +\def\quessolSkip#1{\setlength{\@tempdima}{#1}% + \edef\eq@quessolskip{\noexpand\vskip\the\@tempdima\relax}} +\def\eq@quessolskip{\vskip\smallskipamount} +\def\eqe@debugVertSkip#1{} +\def\eqe@showEndHere#1{#1} +\def\eqe@setStartSolns{% + \xdef\eq@startSoln{\the\pagetotal}% + \eqe@debugVertSkip{\marginpar{\smash{b[\sameVspace]}}}% +} +\let\eqSavedComment\comment +\let\eqSavedEndCommet\endcomment +\def\setTabulrSolnEnv{% + \@ifundefined{@listii@SAVE}{\global\let\@listii@SAVE\@listii}{}% + \expandafter\def\expandafter\@listii\expandafter{\@listii@SAVE + \leftmargin\leftmarginii \labelwidth\leftmarginii + \advance\labelwidth-\labelsep}% + \def\everyparShape{\everypar{\parshape \@ne 0pt \linewidth}}% + \reset@doendpe{\parshape \@ne 0pt \linewidth}% + \parshape \@ne 0pt \linewidth + \everyparShape +} +\newif\ifthereissolution +\let\priorexsolafterList\@empty +\let\priorexsolafterTab\@empty +\let\priorexsolafterSngl\@empty +\def\eq@Hid{H}\def\eq@hid{h} +\def\solutionafterExCmds#1{\def\@rgi{#1}\ifx\@rgi\@empty + \let\eqSolnExCmds\relax\else + \def\eqSolnExCmds{#1}\fi} +\let\eqSolnExCmds\relax +\def\eq@b@ddCodeSpecialDef#1{#1}% dpsj4 +\let\eq@b@ddCodeSpecial\eq@b@ddCodeSpecialDef % dpsj4 +\def\solnexer@@@woparts{\ifeq@solutionsafter\else + \expandafter\begingroup\fi %dpsj10 + \global\thereissolutiontrue + \global\let\procsoln\relax % dpsj6 + \global\let\endprocsoln\relax % dpsj6 + \def\exerwparts@cols{0}% + \let\verbatim@out\ex@solns + \if\currhideopt\eq@Hid + \let\minVspacet@bs\@empty + \let\procsoln\eqSavedComment + \let\endprocsoln\eqSavedEndCommet + \def\eq@next{\procsoln}% + \else + \eq@ckglobalhide + \ifeq@hidesolution + \let\procsoln\eqSavedComment + \let\endprocsoln\eqSavedEndCommet + \else + \ifeq@solutionsafter\else + \ifx\eq@@CommonCmd\@empty\else + \set@display@protect + \immediate\write\verbatim@out{\eq@@CommonCmd}% + \set@typeset@protect + \fi + \fi + \let\procsoln\verbatimwrite + \let\endprocsoln\endverbatimwrite + \fi + \def\eq@next{% + \ifeq@solutionsafter + \let\procsoln\relax % dpsj6 + \let\endprocsoln\relax + \removelastskip\removelastparskip + \cqSAtrue\eqCQDeclarations + \declCopyQues{\input{\cq@CutName}}% + \ifx\exsolafter\@empty + \ifdim\sameVspace=0pt\eqe@setStartSolns + \else + \solutionsafterSkip + \@@solnafterSkipOnce % dpsj3 + \eqe@setStartSolns + \fi + \else\par\kern0pt + \solutionsafterSkip + \@@solnafterSkipOnce % dpsj3 + \noindent\strut\eqe@setStartSolns + \fi + \parskip\eqeques@parsep + \ifx\endparts\endexercise@parts@tabular + \eq@setPrbSolnAftrIndnt + \restorejustify + \fi + \ifx\endparts\endexercise@parts@tabular\expandafter + \priorexsolafterTab\else + \ifx\endparts\endexercise@parts@list\expandafter + \priorexsolafterList\else\expandafter + \priorexsolafterSngl\fi\fi + \exsolafter\space\ignorespaces + \solutionparshape + \else + \eqExerSolnHeader + \global\let\eqExerSolnHeader\@empty + \global\therearesolutionstrue\expandafter\procsoln + \fi + }% + \fi + \eq@b@ddCodeSpecial{\eq@next}% +}% dpsj4 +\let\endsolnexerhook\@empty +\let\pkg@endsolnexerhook\@empty +\let\endsolnexerhookaux\@empty +\def\eq@fititin#1{\noindent\unskip\nobreak\hfill\penalty100 + \hskip1em\hbox{}\nobreak\hfill#1}% +\let\eqfititin\eq@fititin +\def\ReturnTo#1#2{\eq@fititin{\hyperlink{#1}{#2}}} +\def\xReturnTo#1#2{\eq@fititin{\href{#1}{#2}}} +\newcommand\eqExerSolnTrailer{% + \if\exerSolns@ExtFile\eq@YES\protect\xReturnTo + {\exerSolns@ReturnPath\jobname\#qex.\the@exno}% + \else\protect\ReturnTo{qex.\the@exno}\fi + {\protect\mbox{\if\exerstar*\exrtnlabelformatwp\else + \exrtnlabelformat\fi}}% + \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J% + \ifmakeExSlLocal\protect\endgroup^^J\fi +} +\let\eq@e@ddCodeSpecialDef\relax % dpsj4 +\let\eq@e@ddCodeSpecial\eq@e@ddCodeSpecialDef % dpsj6 +\let\kdvsp@Restore\relax % dpsj20 +\def\endsolnexer@woparts{\endprocsoln\eq@e@ddCodeSpecial + \pkg@endsolnexerhook % djsj8 moved from the end of the macro + \ifeq@solutionsafter\else + \expandafter\endgroup\fi % from \begingroup at \solnexer@@@woparts + \global\let\exsolnonceonlytophook\relax + \ifx\sameVspace\@empty\gdef\sameVspace{0pt}\fi % dpsj5 + \ifvspacewithsolns\vspaceFmt{\sameVspace}\else + \ifeq@nosolutions\ifeq@solutionsafter\else + \vspaceFmt{\sameVspace}\fi\fi\fi + \if\currhideopt H% + \ifkeepdeclaredvspacing\vskip\sameVspace\fi + \else + \ifeq@solutionsafter + \ifx\isitleadin\eq@YES\parshape=0 \fi % dpsj9 + \if\exerstar*% + \eq@fititin{\mbox{\exrtnlabelformatwp}}\else + \eq@fititin{\mbox{\exrtnlabelformat}}\fi + \ifx\istabularexer\eq@YES\unskip\kern0pt\else\par\fi % dpsj6 + \ifx\minVspacet@bs\@empty + \ifkeepdeclaredvspacing + \@tempdima\pagetotal + \advance\@tempdima-\eq@startSoln + \@tempdimb\sameVspace\relax + \ifdim\@tempdimb>1sp\relax + \advance\@tempdimb-\@tempdima + \ifdim\@tempdimb>0pt\vglue\@tempdimb\kern0pt + \let\eqe@showEndHere\@gobble + \edef\tmp@exp{\noexpand\marginpar{% + \noexpand\smash{e: adj \the\@tempdimb}}}% + \eqe@debugVertSkip{\tmp@exp}% + \fi + \fi + \fi + \eqe@showEndHere{\eqe@debugVertSkip{\marginpar{\smash{e}}}}% + \fi + \else + \eq@ckglobalhide + \ifeq@hidesolution\else + \endsolnexerhookaux + \let\verbatim@out\ex@solns + \set@display@protect + \immediate\write\verbatim@out{\eqExerSolnTrailer}% + \set@typeset@protect + \fi + \fi + \fi + \kdvsp@Restore % dpsj20 + \endsolnexerhook\penalty0\relax} +\let\eq@exerstarEnv\relax +\newenvironment{exercise*}{\def\eq@exerstarEnv{*}\exercise} +{\endexercise} +\def\exerwparts@cols{0} +\let\topofpartshook\relax +\let\@listiiredefined\eq@NO +\let\itsExerParts\eq@NO +\newif\if@tableadinitem\@tableadinitemfalse +\newcommand{\tableadin@external}{\PackageError{exerquiz/eqexam} + {The \string\tableadin\space command is designed\MessageBreak + for the problem* environment of eqexam}{Use \string\tableadin\space + in the problem* environment of eqexam.}% +} +\let\tableadin\tableadin@external +\newcommand{\eq@tableadinparts}{\item\relax + \PackageError{exerquiz/eqexam}{The \string\tableadin\space + command is not allowed in the\MessageBreak + parts environment}{Use \string\tableadin\space + in the problem* environment of eqexam.}% +} +\let\istabularexer\eq@NO +\def\exercise@parts{\let\rlspar\relax + \ifx\solutionparshape\@empty + \let\isitleadin\eq@NO + \if@tableadinitem\let\rlspar\@gobbletwo\fi + \else\let\isitleadin\eq@YES\fi + \rlspar\removelastskip\par + \if\isitleadin\eq@YES + \def\eqparts@topsep{0pt}% + \vskip\eqparts@itemsep\relax\fi + \topofpartshook + \let\itsExerParts\eq@YES + \global\let\@listiiredefined\eq@NO + \def\exerwparts@cols{0}\@ifnextchar[% + {% + \if@tableadinitem\else\removelastparskip\fi + \let\endparts\endexercise@parts@tabular\exercise@parts@tabular@}% + {\let\endparts\endexercise@parts@list\exercise@parts@list}} +\def\eq@extralabelsep{0pt} +\newcommand{\setPartsWidth}[1]{\def\parts@indent{\normalfont#1}% + \bgroup\settowidth{\eq@tmpdima}{\parts@indent}% + \xdef\widthOfParts{\the\eq@tmpdima}\egroup} +\setPartsWidth{(d)} +\def\eqe@prtsepPrb{\ } +\providecommand{\prbPrtsep}[1]{\def\eqe@prtsepPrb{#1}} +\providecommand{\exPrtsep}[1]{\def\eqe@prtsepPrb{#1}} +\providecommand{\eqequesparsep}[1]{\def\eqeques@parsep{#1}} +\eqequesparsep{0pt} +\let\prior@parts@hook\@empty +\let\post@parts@hook\@empty +\let\abovepartshook\@empty +\let\belowpartshook\@empty +\let\eqp@rtc@lcm@rk\relax +\let\eq@insertContAnnot\relax +\def\eq@item@common{\eq@insertContAnnot\eqp@rtc@lcm@rk + \def\currhideopt{x}\eq@hidesolutionfalse\eq@nolinkfalse + \@ifnextchar[{\@ckhide}{\eq@item}} +\newcommand{\partsitemsep}[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@itemsep{\the\@tempdima}}} +\let\eqpartsitemsep\partsitemsep +\def\eqparts@itemsep{0pt} +\newcommand\partsparsep[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@parsep{\the\@tempdima}}} +\def\eqparts@parsep{0pt} +\newcommand\partstopsep[1]{{% + \setlength{\@tempdima}{#1}% + \xdef\eqparts@topsep{\the\@tempdima}}} +\def\eqparts@topsep{3pt} +\newcommand{\leadinitem@external}{\PackageError{exerquiz/eqexam} + {The \string\leadinitem\space command is designed to be\MessageBreak + the first item in the problem*\MessageBreak + environment above the parts environment} + {Use \string\leadinitem\space in the problem* environment.}% +} +\let\leadinitem\leadinitem@external +\let\itsforleadinitem\eq@NO +\newcommand{\eq@leadinitemparts}{\item\relax + \PackageError{exerquiz/eqexam}{The \string\leadinitem\space + command is not allowed in the\MessageBreak + parts environment} + {Use \string\leadinitem\space in the problem* environment.}% +} +\def\eq@handleOptArg[#1]{\def\eq@optArg{[#1]}\eq@handleOptArgi} +\def\eq@handleOptArgi{\expandafter + \eq@item@latex\eq@optArg\exlisttabheaderafterhook} +\newif\ifwithinparts +\let\ex@listtabheader@fterhook\@empty +\newenvironment{exercise@parts@list}{% + \settowidth{\eq@tmplength}{\parts@indent}% + \edef\widthOfParts{\the\eq@tmplength}% + \eq@initializeContAnnot\eq@nolinkfalse\prior@parts@hook + \abovepartshook\list{\normalfont + \if\Hidesymbol h\eq@nolinkfalse\ifeq@solutionsafter + \eq@nolinktrue\fi\fi + \if\currhideopt H% + \else + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else + \ifeq@nosolutions + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide + \ifeq@hidesolution\eq@nolinktrue\else + \global\let\eqExerSolnHeader\eq@@writeexheaderlist + \fi + \fi + \fi + \fi + \makebox[\widthOfParts][r]{\eqexlisttabheader}% +}{% + \usecounter{partno}% + \if\isitleadin\eq@YES + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \if\itsforleadinitem\eqe@YES\setcounter{partno}{\fliPartNo}\else + \setcounter{partno}{1}\fi\fi + \let\leadinitem\eq@leadinitemparts + \let\tableadin\eq@tableadinparts + \global\let\solutionparshape\@empty + \setlength{\topsep}{\eqparts@topsep}% + \setlength{\parskip}{0pt}% + \setlength{\partopsep}{0pt plus 1pt minus 1pt}% + \ifdim\eqeques@parsep=0pt + \setlength{\parsep}{\eqparts@parsep}% + \else + \setlength{\parsep}{\eqeques@parsep}% + \fi + \setlength{\itemsep}{\eqparts@itemsep-\parsep}% + \setlength{\itemindent}{0pt}% + \setlength{\listparindent}{\parindent}% + \settowidth{\labelsep}{\normalfont\eqe@prtsepPrb}% + \addtolength{\labelsep}{\eq@extralabelsep}% + \settowidth{\labelwidth}{\parts@indent}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \let\eq@item@latex\item + \def\eq@item{\@ifnextchar[{\eq@handleOptArg} + {\eq@item@latex\ex@listtabheader@fterhook + \exlisttabheaderafterhook}}% + \def\eqthisenv{parts}\withinpartstrue + \def\item{\ifx\@currenvir\eqthisenv + \def\eq@next{\eq@item@common}\else + \def\eq@next{\eq@item}\fi + \eq@next}% +}}{\endlist\global\let\leadinitem\leadinitem@external + \post@parts@hook\belowpartshook} +\def\eq@initializeContAnnot{\@ifundefined{eqequestions} + {\global\let\eqeCurrProb\relax} + {\xdef\eqeCurrProb{\theeqquestionnoi}}% + \xdef\eq@currProbStartPage{\arabic{page}}% +} +\define@key{tabp@rts}{nCols}{\def\exerwparts@cols{#1}} +\define@key{tabp@rts}{minVspace}{\def\minVspacet@bs{#1}} +\let\minVspacet@bs\@empty +\def\minVspacetabs#1{\def\minVspacet@bs{#1}} +\def\priorexsolafterTab{\ifkeepdeclaredvspacing + \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else + \priorexsolafterTab@cont\fi\fi\fi} +\def\priorexsolafterTab@cont{\let\exsolafter@save\exsolafter + \let\exsolafter\@empty + \makebox[0pt][r]{\parbox[t][\minVspacet@bs][t]{0pt} + {\strut\hfill\vfill\strut}}% + \minipage[t]{\linewidth}\exsolafter@save} +\def\pkg@endsolnexerhook{\ifkeepdeclaredvspacing + \ifeq@solutionsafter\ifx\minVspacet@bs\@empty\else + \endminipage\fi\fi\fi} +\def\exercise@parts@tabular@[#1]{% + \inittabMark + \let\eq@insertContAnnot\relax + \let\exerwparts@cols\@empty + \setkeys*{tabp@rts}{#1}\ifx\exerwparts@cols\@empty + \edef\exerwparts@cols{\XKV@rm}\fi + \ifx\minVspacet@bs\@empty\keepdeclaredvspacingfalse\fi + \let\istabularexer\eq@YES + \@tempcnta\exerwparts@cols\relax + \ifnum\@tempcnta<2\relax + \PackageError{exerquiz}{% + The number of columns for parts\MessageBreak + needs to be an integer greater than 1} + {Enter an integer, 2 or larger}\fi + \exercise@parts@tabular} +\newcount\eq@extabColCnt +\def\autotabOn{\let\eq@tabMarkChk\relax% + \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOn}} +\def\autotabOff{\let\eq@tabMarkChk\@gobble + \PackageInfo{exerquiz/eqexam}{Executing \string\autotabOff}} +\autotabOff +\def\inittabMark{\global\eq@extabColCnt=0 } +\def\resettabMark{\global\eq@extabColCnt=1 } +\newcommand\autotabnewline[1][\eqparts@tabrowsep]{% + \ifnum\exerwparts@cols>0\relax + \ifx\eq@tabMarkChk\@gobble + \def\eq@atnext{\expandafter + \tabularnewline\expandafter[#1]}\else + \def\eq@atnext{\resettabMark\tabularnewline + \noalign{\expandafter\kern#1}}\fi + \expandafter\eq@atnext\fi} +\def\eq@tabMark{% + \ifnum\eq@extabColCnt=0\relax + \global\advance\eq@extabColCnt1\relax + \let\eq@next\relax + \else + \ifnum\eq@extabColCnt=1\relax + \let\eq@next\relax + \else + \ifnum\eq@extabColCnt>\exerwparts@cols + \let\eq@next\autotabnewline + \else\def\eq@next{&}\fi + \fi + \fi + \eq@next + \global\advance\eq@extabColCnt1\relax +} +\newcommand\partstabcolsep[1]{\def\eq@partstabcolsep{#1}} +\partstabcolsep{1.5pt} +\newcommand\partstabtopsep[1]{\def\eq@partstabtopsep{#1}} +\partstabtopsep{3pt} +\def\eq@vpartstabtopsep{\vskip\eq@partstabtopsep\relax} +\newcommand\partstabrowsep[1]{\setlength{\@tempdima}{#1}% + \edef\eqparts@tabrowsep{\the\@tempdima}} +\partstabrowsep{0pt} +\newenvironment{exercise@parts@tabular}{% + \setcounter{partno}{0}% + \def\tablrIndent{\hglue\prtsIndntSep\relax}% + \if\isitleadin\eq@YES + \if$\the\everypar$\let\tablrIndent\relax\fi + \setcounter{partno}{1}\fi + \let\leadinitem\eq@leadinitemparts + \let\tableadin\eq@tableadinparts + \global\let\solutionparshape\@empty + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \sbox{\eq@tmpbox}{\parts@indent}% + \let\eq@item@latex\item + \let\eq@item\item@part@tabular + \def\eqthisenv{parts}\withinpartstrue + \def\item{\ifx\@currenvir\eqthisenv + \def\eq@next{\eq@tabMarkChk\eq@tabMark\eq@item@common}\else + \def\eq@next{\eq@item@latex}\fi + \eq@next}\eq@nolinkfalse + \@ifundefined{@xtabularcr}{\let\@xarraycr\eq@xtabularcr} + {\let\@xtabularcr\eq@xtabularcr}% + \eq@tmpdima=\linewidth + \advance\eq@tmpdima-\prtsIndntSep\relax + \@tempcnta\exerwparts@cols\relax + \advance\@tempcnta-1\relax + \multiply\@tempcnta2\relax + \@tempdima\prtsIndntSep\relax + \divide\@tempdima 2\relax + \edef\halfWidth{\the\@tempdima}% + \advance\@tempdima\eq@partstabcolsep\relax + \tabcolsep\@tempdima + \multiply\@tempdima\@tempcnta + \advance\eq@tmpdima-\@tempdima + \divide\eq@tmpdima by\exerwparts@cols\relax %dpsj3 + \edef\widthOfPartsBox{\the\eq@tmpdima}% dpsj2 + \if@tableadinitem\else\vskip\eq@partstabtopsep\relax\fi + \noindent\normalbaselines\kern0pt + \prior@parts@hook\abovepartshook + \tablrIndent\tabular[t]{@{}*{\exerwparts@cols}{>{\setTabulrSolnEnv + \parskip\eqeques@parsep\relax + \parindent0pt\relax\strut}p{\eq@tmpdima}}@{\hidewidth}}% +}{\endtabular\kern0pt + \@ifundefined{@listii@SAVE}{}{\global\let\@listii\@listii@SAVE + \global\let\@listii@SAVE\relax}% + \post@parts@hook\belowpartshook + \aftergroup\eqe@innermarkpts + \aftergroup\eq@vpartstabtopsep} +\let\eqe@innermarkpts\relax +\def\item@part@tabular{\refstepcounter{partno}% + \global\let\eqExerSolnHeader\@empty + \ifeq@solutionsafter + \eq@nolinktrue % no link to solution + \else\ifeq@nosolutions + \eq@nolinktrue % no link to solution + \else + \eq@ckglobalhide + \ifeq@hidesolution\eq@nolinktrue\else + \gdef\eqExerSolnHeader{\eq@@writeexheaderlist}% + \fi\fi\fi + \if@restorejustify\restorejustify\else\PBS\raggedright\fi + \settowidth{\eq@tmplength}{\parts@indent\eqe@prtsepPrb}% + \xdef\prtsIndntSep{\the\eq@tmplength}% + \sbox{\eq@tmpbox}{\parts@indent}% + \eq@tmpdima=\wd\eq@tmpbox + \addtolength\eq@tmplength{\eq@extralabelsep}% + \xdef\partshangamount{\the\eq@tmplength}% + \parshape \@ne 0pt \linewidth + \everypar{\parshape \@ne 0pt \linewidth}% + \eq@setPrbSolnAftrIndnt + \makebox[0pt][r]{\eqexlisttabheader\eqe@prtsepPrb}% + \ex@listtabheader@fterhook + \exlisttabheaderafterhook\ignorespaces +} +\def\@ckhide[#1]{\edef\eq@arg{#1}% + \def\currhideopt{x}% + \ifx\eq@arg\@empty\else + \if\eq@arg\eq@Hid + \eq@hidesolutiontrue\eq@nolinktrue% + \edef\currhideopt{\Hidesymbol}% + \else + \ifeq@globalshowsolutions\else + \if\eq@arg\eq@hid + \eq@hidesolutiontrue\eq@nolinktrue% + \def\currhideopt{h}% + \fi + \fi + \fi\fi + \eq@item +} +\def\tabControlOn{\@ifundefined{@xtabularcr} + {\let\save@@xtabularcr\@xarraycr} + {\let\save@@xtabularcr\@xtabularcr}} +\def\tabControlOff{\@ifundefined{@xtabularcr} + {\let\@xarraycr\save@@xtabularcr} + {\let\@xtabularcr\save@@xtabularcr}} +\AtBeginDocument{\tabControlOn} +\def\eq@xtabularcr{\@ifnextchar[{\save@@xtabularcr} + {\eqe@tab@parts@rowsep}}% +\def\eqe@tab@parts@rowsep{\save@@xtabularcr + \noalign{\expandafter\kern\eqparts@tabrowsep}}% +\define@key{exEnum}{labelwidthTo}[\normalsize\normalfont\bfseries00.\ ]% + {\def\exE@labelwidthTo{#1}} +\define@key{exEnum}{labelwidth}[\@empty]{\def\exE@labelwidth{#1}} +\let\exE@labelwidth\@empty +\define@key{exEnum}{topsep}[3pt]{\def\exE@topsep{#1}} +\define@key{exEnum}{parsep}[3pt]{\def\exE@parsep{#1}} +\define@key{exEnum}{itemsep}[0pt]{\def\exE@itemsep{#1}} +\define@key{exEnum}{labelsep}[\normalsize\normalfont\ ]% + {\settowidth{\@tempdima}{#1}\edef\exE@labelsep{\the\@tempdima}} +\define@key{exEnum}{continue}[]{\let\eq@ExEnumResetCnt\@empty} +\def\eq@ExEnumResetCnt{\setcounter{questionno}{0}} +\setkeys{exEnum}{labelwidthTo,topsep,parsep,itemsep,labelsep}% +\newenvironment{exEnumerate}[1][]{\everypar{}% + \toks@=\expandafter{#1}% + \edef\tempexp{\noexpand\setkeys{exEnum}{\the\toks@}}\tempexp + \eq@ExEnumResetCnt + \let\afterlabelhskip\@empty + \let\solnhspace\@empty + \aboveexskip{0pt}\belowexskip{\exE@parsep}%\belowexskip{0pt}% + \def\eqexheader@wrapper{\makebox[0pt][r]{% + \hypertarget{qex.\the@exno}{\eqexheader}\hspace{\labelsep}}}% + \def\exbookmarkfmt{\thequestionno.\space} + \def\partbookmarkfmt{(\thepartno)\space} + \def\setENum{\Elabel\if\exerstar*\thequestionno(\thepartno)\else + \thequestionno\fi}% + \ifExSolutionsSet\else + \writeToExSolns{^^J\protect\begin{exEnumerate}^^J}\fi + \list{}{% + \ifx\exE@labelwidth\@empty + \settowidth{\labelwidth}{\exE@labelwidthTo}\else + \setlength{\labelwidth}{\exE@labelwidth}\fi + \setlength{\topsep}{\exE@topsep}% + \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi + \setlength{\parsep}{\exE@parsep}% + \setlength{\itemsep}{\exE@itemsep}% + \setlength{\itemindent}{0pt}% + \setlength{\listparindent}{0pt}% + \setlength{\itemindent}{0pt}% + \settowidth{\labelsep}{\normalfont\ }% + \setlength{\leftmargin}{\labelwidth}% + }\item\relax}{\ifExSolutionsSet\else + \writeToExSolns{\protect\end{exEnumerate}^^J}\fi +\endlist} +\newenvironment{enumex}{% + \renewcommand\exlabelformat{\textbf{\thequestionno.}}% + \renewcommand\exsllabelformat + {\protect\makebox[0pt][r]{\protect\textbf{\thequestionno.\ }}}% +\begin{exercise}[questionno]}{\end{exercise}} +\newenvironment{enumex*}{% + \renewcommand\exlabelformatwp{\textbf{\thequestionno.}}% + \renewcommand\exsllabelformatwp + {\protect\makebox[0pt][r]{\protect\textbf{\thequestionno.}\ }% + \protect\textbf{(\thepartno)}\ }% +\begin{exercise*}[questionno]}{\end{exercise*}} +\def\includeexersolutions{\@ifstar + {\let\resetEXsolns\relax\includeexersolutionsi} + {\def\resetEXsolns{\global\let\include@solutions\relax}% + \includeexersolutionsi}% +} +\newcommand{\includeexersolutionsi}[1][]{% + \filterFor{#1}\includeexersolutionsii +} +\def\includeexersolutionsii{% + \if\exerSolns@ExtFile\eq@NO + \include@solutions + \resetEXsolns + \let\eqFilterArg\@empty + \fi +} +\long\def\gobbleToEndEXt#1\endeqEXt{% + \ifeqforpaper\expandafter\@gobbletwo\fi} +\newcommand\filterFor[1]{\def\eqFilterArg{#1}} +\newcommand\inclEXtFilter[2]{\def\eqargii{#2}\ifx\eqargii\eqFilterArg + \else\expandafter\gobbleToEndEXt\fi} +\newcommand\useEXtFilter{\let\eqEXt\inclEXtFilter} +\let\eqsolutionshook\@empty +\let\eq@solutionshook\@empty +\let\priorexsectitle\@empty +\let\priorexslinput\@empty +\def\exerSolnsHeadnToc{\section*{\exsectitle}% + \addcontentsline{toc}{section}{% + \@ifundefined{web@latextoc}{}{% + \ifx\web@latextoc\eq@YES\else + \protect\numberline{}\fi}\exsectitle}} +\@ifpackageloaded{web}{\def\eq@normallheader{\lheader{\rightmark}}} + {\let\eq@normallheader\relax} +\@ifpackageloaded{web}{\def\eq@defaultlheader{\lheader{\aeb@setmarks}}} + {\let\eq@defaultlheader\relax} +\newif\ifExSolutionsSet \ExSolutionsSetfalse +\newcommand{\exerSolnInput} +{% + \@ifundefined{eqe@IWO}{}{\ifsolutionsAtEnd%\ifvspacewithsolns + \eqe@IWO\@auxout{\string\expandafter\string\gdef + \string\csname\space eqExamQuesLastPage\string\endcsname + {\arabic{page}}}\fi} + \let\webnewpage\relax + \ifsolutionsonly\else\immediate\closeout\ex@solns\fi + \ifeq@nosolutions\else + \iftherearesolutions + \ifsolutionsonly\eq@solutionshook + \eqsolutionshook + \else + \newpage\eq@solutionshook + \eqsolutionshook\markright{}\eq@normallheader + \fi + \markright{\exsectitle}% + \ifx\webnewpage\relax + \def\webnewpage{\global\let\webnewpage\newpage}% + \fi + \priorexsectitle\exerSolnsHeadnToc\priorexslinput + \InputIfFileExists{\jobname.sol} + {\global\ExSolutionsSettrue}{\PackageWarning{exerquiz} + {!!! Solutions to exercises not found}}% + \global\ExSolutionsSetfalse + \newpage\eq@defaultlheader + \fi + \fi +} +\def\include@solutions{% + \if\exerSolns@ExtFile\eq@NO + \exerSolnInput + \fi +} +\let\eqexpdfentry=0 +\let\eq@postexerciseHook\relax +\def\eq@postexerciseHook@BM{% + \xdef\Hy@currentbookmarklevel{\eq@currentbookmarklevel}} +{\count0=\value{tocdepth} +\advance\count0by2 \xdef\eqbmkmrkdepth{\the\count0}} +\@ifundefined{Hy@bookmarksdepth} + {\setcounter{tocdepth}{\eqbmkmrkdepth}} + {\hypersetup{bookmarksdepth=\eqbmkmrkdepth}} +\newcommand{\exbookmarkfmt}{\exlabel\space\theeqexno.\space} +\newcommand{\partbookmarkfmt}{(\thepartno)\space} +\newcommand{\expdfbookmark}[1]{\relax + \def\expdfbookmarktitle{#1}% + \ifx\eq@postexerciseHook\relax + \let\eq@postexerciseHook\eq@postexerciseHook@BM + \else + \let\eq@postexerciseHook@save\eq@postexerciseHook + \def\eq@postexerciseHook@BM@plus{\eq@postexerciseHook@save + \eq@postexerciseHook@BM}% + \let\eq@postexerciseHook\eq@postexerciseHook@BM@plus + \fi + \if\exerstar*% + \if\eqexpdfentry0\let\eqexpdfentry=1 + \xdef\eq@currentbookmarklevel{\Hy@currentbookmarklevel}% + \def\eqex@next{\subpdfbookmark{\exbookmarkfmt#1}% + {qex.\the@exno}}% + \else + \def\eqex@next{\belowpdfbookmark{\partbookmarkfmt#1}% + {qex.\the@exno.\thepartno}}% + \fi + \else + \xdef\eq@currentbookmarklevel{\Hy@currentbookmarklevel}% + \def\eqex@next{\subpdfbookmark{\exbookmarkfmt#1}% + {qex.\the@exno}}% + \fi + \eqex@next\ignorespaces +} +\ifeq@noforms\endinput\fi +\definecolor{webgreen}{rgb}{0,.6,0} +\newcommand{\proofingsymbolColor}[1]{\def\@proofingsymbolColor{#1}} +\proofingsymbolColor{red} +\let\@proofsymbolredefined=0 +\newcommand{\proofingsymbol}[1]{\let\@proofsymbolredefined=1% + \def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{#1}}} +\def\@proofingsymbol{\textcolor{\@proofingsymbolColor}{\ding{52}}} +\def\setproofingsymbol{% + \if\@proofsymbolredefined1\else + \@ifpackageloaded{pifont}{\proofingsymbol{\ding{52}}} + {\proofingsymbol{$\bullet$}}\fi +} +\AtBeginDocument{\setproofingsymbol} +\newcommand{\prior@questionsHook}{} +\let\qMark@Hook\@empty +\let\aebtitleQuiz\@empty +\newcommand{\post@questionsHook}{} +\newcommand{\quesNumColor}[1]{\def\eq@quesNumCol{#1}} +\quesNumColor{blue} +\renewcommand{\theeqquestionnoi}{\arabic{eqquestionnoi}} +\newcommand{\labeleqquestionnoi}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoi.} +\renewcommand\theeqquestionnoii{(\alph{eqquestionnoii})} +\newcommand{\labeleqquestionnoii}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoii} +\renewcommand\theeqquestionnoiii{(\roman{eqquestionnoiii})} +\newcommand{\labeleqquestionnoiii}{% + \color{\eq@quesNumCol}\bfseries\theeqquestionnoiii} +\define@key{props@ques}{labelwidthTo}% + [\normalsize\normalfont\bfseries00.]% + {\def\propQ@labelwidthTo{#1}} +\define@key{props@ques}{labelwidth}[]{\def\propQ@labelwidth{#1}} +\let\propQ@labelwidth\@empty +\define@key{props@ques}{topsep}[\the\topsep]{\edef\propQ@topsep{#1}} +\define@key{props@ques}{partopsep}[\the\partopsep]% + {\edef\propQ@partopsep{#1}} +\define@key{props@ques}{parsep}[\the\parsep]{\edef\propQ@parsep{#1}} +\define@key{props@ques}{itemsep}[\the\itemsep]{\edef\propQ@itemsep{#1}} +\define@key{props@ques}{labelsepTo}[\normalsize\normalfont\ ]% + {\def\propQ@labelsepTo{#1}} +\define@key{props@ques}{labelsep}[\@empty]{\def\propQ@labelsep{#1}} +\let\propQ@labelsep\@empty +\define@key{props@ques}{color}[blue]{\quesNumColor{#1}} +\setkeys{props@ques}{labelwidthTo,topsep,partopsep,parsep,% + itemsep,labelsepTo,color}% +\newenvironment{questions}[1][] +{% + \ifnum\@eqquestiondepth>\tw@\@toodeep\else + \advance\@eqquestiondepth\@ne\fi + \def\@quesctr{eqquestionno\romannumeral\the\@eqquestiondepth}% + \toks@=\expandafter\expandafter\expandafter{#1}\expandafter + \xdef\csname quesOpts\@quesctr\endcsname{\the\toks@}% + \edef\tempexp{\noexpand\setkeys{props@ques}{\the\toks@}}\tempexp + \list{\qMark@Hook\prior@questionsHook\gdef\eqPTs{1}% + \global\let\eqQT\eq@na% + {\@tempcnta=0 \let\@thispr@b\@empty + \@whilenum\@tempcnta<\@eqquestiondepth\do{\advance\@tempcnta\@ne + \ifx\@thispr@b\@empty\edef\@thispr@b{% + \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\else + \edef\@thispr@b{\@thispr@b% + \csname theeqquestionno\romannumeral\the\@tempcnta\endcsname}\fi + }\xdef\@currentQues{\@thispr@b}}% + \makebox[\labelwidth][r]{\normalfont\@nameuse{label\@quesctr}}% + \xdef\eq@pageThisQ{\the\c@page}% + \post@questionsHook}{\usecounter{\@quesctr}% + \ifx\propQ@labelsep\@empty + \settowidth{\labelsep}{\propQ@labelsepTo}\else + \setlength{\labelsep}{\propQ@labelsep}\fi + \ifx\propQ@labelwidth\@empty + \settowidth{\labelwidth}% + {\propQ@labelwidthTo\hspace{\labelsep}}\else + \settowidth{\labelwidth}{\hspace{\propQ@labelwidth}% + \hspace{\labelsep}}\fi + \setlength{\topsep}{\propQ@topsep}% + \setlength{\partopsep}{\propQ@partopsep}% + \ifdim\parskip>\z@\addtolength{\topsep}{-\parskip}\fi + \setlength{\parsep}{\propQ@parsep}% + \setlength{\itemsep}{\propQ@itemsep}% + \setlength{\itemindent}{0pt}% + \setlength{\leftmargin}{\labelwidth}% + }% +}{\endlist} +\def\pushquestions{\expandafter\xdef\csname save\@quesctr\endcsname + {\expandafter\the\csname c@\@quesctr\endcsname}\end{questions}} +\def\popquestions{% + \begin{questions}[\csname quesOpts\@quesctr\endcsname]% + \setcounter{\@quesctr}{\csname save\@quesctr\endcsname}% + \@ifnextchar\popquestions{\item[]}{\@ifnextchar\begin{\item[]}{}}} +\newcommand{\priorsqhook}[1]{\def\sq@priorhook{#1}} +\priorsqhook{} +\newcommand{\abovesqskip}[1]{\def\sq@aboveskip{#1}} +\abovesqskip{\par\medskip} +\long\def\endsqhook#1{\def\sq@afterhook{#1}} +\endsqhook{} +\def\@shortquizCnt{0} +\def\@sqGenBaseName{eqSqBn\@shortquizCnt} +\let\sqhspace\space +\let\ListOfSQuizNames\@empty +\newenvironment{shortquiz} +{% + \xdef\eq@pageThisQ{\the\c@page}% + \let\@currentQues\@empty + {\count0=\@shortquizCnt \advance\count0by1\relax + \xdef\@shortquizCnt{\the\count0}}% + \goodbreak\@ifstar{\sqForms\@shortquiz}% + {\if\aeb@FLOverride\eq@f\def\sqstar{*}\else + \def\sqstar{}\sqLinks\fi\@shortquiz}% +}{\aeb@endshortquiz} +\newenvironment{shortquiz*} +{% + \xdef\eq@pageThisQ{\the\c@page}% + {\count0=\@shortquizCnt\advance\count0by1\relax + \xdef\@shortquizCnt{\the\count0 }}% + \sqForms\@shortquiz +}{\aeb@endshortquiz} +\def\@shortquiz{\@ifnextchar[% + {\@@shortquiz}{\@@shortquiz[\@sqGenBaseName]}} +\def\sq@setCLN#1{\ifx\aebTitleQuiz\@empty + \protected@edef\@currentlabelname{#1}\else + \protected@edef\@currentlabelname{\@currentlabelname}\fi +} +\let\isQZ=q \let\isSQZ=s +\def\sq@IDTxtField{\makebox[0pt][l]{\textField[\autoCenter{n}\BC{}\BG{} + \S{S}\textSize{0}\Ff{\FfReadOnly} + \AA{\AAFormat{% + var \oField=new Object;\r + \oField.Grp={}; + \ifx\defaultColorJSLoc\@empty\else\r + \oField.DefaultColorJSLoc=\defaultColorJSLoc;\fi + \ifx\rghtColorJSLoc\@empty\else\r + \oField.RightColorJSLoc=\rghtColorJSLoc;\fi + \ifx\wrngColorJSLoc\@empty\else\r + \oField.WrongColorJSLoc=\wrngColorJSLoc;\fi + \ifx\rghtAnsSymbJSLoc\@empty\else\r + \oField.RightAnsSymbJSLoc=\rghtAnsSymbJSLoc;\fi + \ifx\wrngAnsSymbJSLoc\@empty\else\r + \oField.WrongAnsSymbJSLoc=\wrngAnsSymbJSLoc;\fi + }}]{sqID\oField}{0bp}{0bp}}% +} +\def\qz@IDTxtField{\makebox[0pt][l]{\textField[\autoCenter{n}\BC{}\BG{} + \S{S}\textSize{0}\Ff{\FfReadOnly} + \AA{\AAFormat{if(typeof aQuizzesInDoc=="undefined")\r\t + var aQuizzesInDoc=new Array();\r + if (aQuizzesInDoc.indexOf("\oField")) aQuizzesInDoc.push("\oField"); + }}]{qzID\oField}{0bp}{0bp}}} +\let\eqQuizType\relax +\def\@@shortquiz[#1]{%\begingroup + \gdef\oField{#1}\gdef\curr@quiz{#1}\gdef\currQuiz{#1}% + \edef\tmp@Exp{\noexpand\g@addto@macro\noexpand + \ListOfSQuizNames{,#1}}\tmp@Exp + \global\let\eqQzQuesList\@empty + \let\eq@AddProbToQzQuesList\relax + \edef\@currentlabel{\@shortquizCnt}% + \edef\@currentHref{shortquiz.\@shortquizCnt}% + \global\let\eqQuizType\isSQZ\let\@qzsolndest\@empty + \if\sqstar*\relax + \let\@Ans\Ans@sq@f + \ifx\oField\@empty + \typeout{^^JExerquiz: Base field name required when using + shortquiz with '*' option}% + \PackageInfo{exerquiz}{Assuming link style^^J}% + \let\@Ans\Ans@sq@l + \fi + \else + \let\@Ans\Ans@sq@l + \fi + \setcounter{questionno}{0}% + \let\answers\answers@sq + \let\endanswers\endanswers@sq + \let\manswers\manswers@sq + \let\endmanswers\endmanswers@sq + \let\solution\solution@sq + \let\endsolution\endsolution@sq + \let\ifstaroption\eq@ifstaroption + \if\eq@tq@star*% + \def\sqlabel{\aebtitleQuiz\@gobbletwo}% + \fi + \sq@aboveskip\sq@priorhook + \@ifundefined{PointsOnLeft}% + {\sq@setCLN{\eq@defaultShortQuizLabelName}% + \ifx\sqlabel\@empty\else\noindent\fi + \hypertarget{sqH\@currentHref}{}\sq@IDTxtField + \ifx\sqlabel\@empty\else\expandafter + \sqlabel\expandafter\sqhspace\fi + {\set@typeset@protect\aebtitleQuiz}}{}\ignorespaces +} +\newcommand\belowsqskip[1]{\def\aftershortquizskip{#1}} +\belowsqskip{\medskip} +\def\aeb@endshortquiz{\setcounter{quizno}{0}% + \sq@afterhook + \global\let\aebtitleQuiz\@empty + \global\let\aebTitleQuiz\@empty + \global\let\eq@tq@star\relax + \global\let\sqlabel\eq@sqlabel + \global\let\sqslrtnlabel\eq@sqslrtnlabel + \global\let\sqsllabel\eq@sqsllabel + \par\aftershortquizskip +} +\def\sqLinks{\def\sqstar{}}\sqLinks +\def\sqForms{\def\sqstar{*}} +\let\eq@tq@star\relax +\def\qzPriorSolutionAfterHook{\smallskip} +\let\sqPostHeaderHook\@empty +\let\qPostHeaderHook\@empty +\let\eq@sqPostHeaderHook\@empty +\let\eq@qPostHeaderHook\@empty +\let\prior@eqQt\@empty +\let\prior@eqSQt\@empty +\def\sqsolafterhspace{\space} +\newif\ifmakeQzSlLocal \makeQzSlLocalfalse +\def\makeQzSolnsLocalOn{\makeQzSlLocaltrue} +\def\makeQzSolnsLocalOff{\makeQzSlLocalfalse} +\def\solution@sq{\let\eq@next\relax + \ifx\@qzsolndest\@empty + \PackageWarning{exerquiz}% + {* Solutions unexpected here, will *\MessageBreak + * assume solutionsafter option *}% + \eq@solutionsaftertrue + \fi + \ifeq@solutionsafter + \par\qzPriorSolutionAfterHook\noindent + \if!\sqsolafter!\else + \sqsolafter\sqsolafterhspace\fi\ignorespaces + \else + \global\therearequizsolutionstrue\let\verbatim@out=\quiz@solns + \set@display@protect + \immediate\write\verbatim@out{% + \ifmakeQzSlLocal\protect\begingroup^^J\fi + \if\eqQuizType\isQZ + \ifx\prior@eqQt\@empty\else\prior@eqQt\fi + \protect\eqQt{\eqFilterArg}\else + \ifx\prior@eqSQt\@empty\else\prior@eqSQt\fi + \protect\eqSQt{\eqFilterArg}\fi + \protect\quizSolnHeader\if\eqQuizType\isQZ\ifx\allow@peek\eq@NO + [{\curr@quiz}{\currQuizStartPage}]\fi\fi + {\@qzsolndest}{\sqsllabel}\protect\eqterminex + \if\eqQuizType\isQZ\expandafter\eq@qPostHeaderHook + \expandafter\qPostHeaderHook\else + \expandafter\eq@sqPostHeaderHook + \expandafter\sqPostHeaderHook\fi}% + \set@typeset@protect + \expandafter\verbatimwrite\fi +} +\let\qzSolutionsAfterHook\@empty +\def\endsolution@sq +{% + \ifeq@solutionsafter + \eq@fititin{\mbox{\sqslrtnlabel}}\par\qzSolutionsAfterHook + \aftergroup\ignorespaces + \else + \endverbatimwrite + \ifx\@qzsolndest\@empty\else\set@display@protect + \immediate\write\verbatim@out{\eqSqSolnTrailer}% + \set@typeset@protect + \fi + \fi + \global\let\@qzsolndest\@empty +} +\newcommand\pnphDflt{.1\textheight} +\newcommand{\promoteNewPageHere}[1][\pnphDflt]{% + \@ifnextchar\bgroup{\eq@promoteNewPageHere} + {\eq@promoteNewPageHere{#1}}% +} +\def\eq@promoteNewPageHere#1{\par + \bgroup\@nobreakfalse\addpenalty{-500}% + \setlength{\@tempdimb}{#1}% + \@tempdima \pagegoal \advance \@tempdima -\pagetotal + \ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak + \else\newpage\penalty1\fi\fi\egroup +} +\newcommand{\saveDest}[1][]{% + \def\sd@arg{#1}\ifx\sd@arg\@empty + \xdef\holdDest{\@qzsolndest}\else + \xdef\@qzsolndest{#1}\xdef\holdDest{#1}\fi} +\def\useDest{\def\@qzsolndest{\holdDest}} +\let\holdDest\@empty +\def\fpAfterSolutionsSkip{\par\medskip} +\let\eqSqSolnTrailerHook\@empty +\let\eqQzSolnTrailerHook\@empty +\newcommand\eqSqSolnTrailer{% + \if\eqQuizType\isQZ + \eqQzSolnTrailerHook + \protect\ReturnTo{page.\eq@pageThisQ}% + {\protect\mbox{\sqslrtnlabel}}\string\endeqQt + \else + \eqSqSolnTrailerHook + \protect\ReturnTo{page.\eq@pageThisQ}% + {\protect\mbox{\sqslrtnlabel}}\string\endeqSQt% + \fi + \ifeqforpaper\protect\fpAfterSolutionsSkip\fi^^J% + \ifmakeQzSlLocal\protect\endgroup^^J\fi +} +\let\eqSQt\@gobble +\let\endeqSQt\relax +\let\eqQt\@gobble +\let\endeqQt\relax +\let\prior@quizSolnHeaderHook\@empty +\newcommand\quizSolnHeader[3][]{% + \prior@quizSolnHeaderHook + \ifeqforpaper\else\webnewpage\fi\noindent + \def\eq@argi{#1}% + \ifx\eq@argi\@empty\else\noPeek#1\fi + \hypertarget{#2}{#3}\relax + \solnspace +} +\def\AllowPeeking{\global\let\allow@peek\eq@YES}\AllowPeeking +\def\NoPeeking{\global\let\allow@peek\eq@NO} +\def\noPeekAction#1#2{% + /AA <> >> +} +\newif\iftherearequizsolutions \therearequizsolutionsfalse +\let\aeb@FLOverride\relax +\def\includequizsolutions{\@ifstar + {\let\resetQZtsolns\relax\includequizsolutionsi} + {\def\resetQZtsolns{\global\let\include@quizsolutions\relax}% + \includequizsolutionsi}% +} +\newcommand{\includequizsolutionsi}[1][]{% + \filterFor{#1}\includequizsolutionsii +} +\def\includequizsolutionsii{% + \include@quizsolutions + \resetQZtsolns + \let\eqFilterArg\@empty +} +\let\eqqzsolutionshook\@empty +\let\priorsqslsectitle\@empty +\let\priorsqslinput\@empty +\def\quizSolnsHeadnToc{\section*{\sqslsectitle}% + \addcontentsline{toc}{section}{% + \@ifundefined{web@latextoc}{}{% + \ifx\web@latextoc\eq@YES\else + \protect\numberline{}\fi}\sqslsectitle}} +\newcommand{\quizSolnInput} +{% + \global\let\webnewpage\relax + \immediate\closeout\quiz@solns + \ifeq@noquizsolutions\else + \iftherearequizsolutions\newpage\markright{}% + \eq@normallheader\markright{\sqslsecrunhead}% + \ifx\webnewpage\relax + \def\webnewpage{\global\let\webnewpage\newpage}\fi + \priorsqslsectitle\quizSolnsHeadnToc\priorsqslinput + \InputIfFileExists{\jobname.qsl}{}% + {!!! Solutions to quizzes not found} + \eqqzsolutionshook + \newpage\eq@defaultlheader + \fi + \fi +} +\def\include@quizsolutions{\quizSolnInput} +\newcommand{\priorqhook}[1]{\def\q@priorhook{#1}} +\priorqhook{} +\newcommand{\aboveqskip}[1]{\def\q@aboveskip{#1}} +\aboveqskip{\par\medskip} +\newcommand{\qhspace}{\space} +\def\endqhook#1{\def\eq@prior@endQuiz{#1}} +\endqhook{} +\newcommand{\belowqHooknSkip}[1]{\def\eq@belowqskip{#1}} +\belowqHooknSkip{\medskip} +\def\belowqskip{\belowqHooknSkip} +\let\eq@initializeServerSubmit\@empty +\newcommand{\quiztype}[1]{% + \def\@quiztype{#1}\def\aeb@FLOverride{#1}} +\let\@quiztype\@empty +\newcommand{\defaultquiztype}{\let\@quiztype\@empty + \let\aeb@FLOverride\relax} +\let\aeb@FLOverride\relax +\def\@setFormLinkType{% + \if\qstar*% + \ifx\aeb@FLOverride\relax% + \def\@@quiztype{f}% + \else + \if\aeb@FLOverride l\def\@@quiztype{l}\else + \def\@@quiztype{f}\fi + \fi + \else + \ifx\aeb@FLOverride\relax + \def\@@quiztype{l}% + \else + \if\aeb@FLOverride f\def\@@quiztype{f}\else + \def\@@quiztype{l}\fi + \fi + \fi +} +\def\setdefault@Ans{\@setFormLinkType + \expandafter\global\expandafter + \let\expandafter\@Ans\expandafter=\csname Ans@\@@quiztype\endcsname +} +\newcommand\useForms{\def\aeb@FLOverride{f}} +\newcommand\useLinks{\def\aeb@FLOverride{l}} +\newcommand\restoreFLTypeDefault{\global\let\aeb@FLOverride\relax} +\let\aeb@FLOverride\relax +\newenvironment{quiz} +{\goodbreak\@ifstar{\gdef\qstar{*}\@quiz*f}{\gdef\qstar{x}\@quiz*l}} + {\aeb@endquiz} +\def\@quizCnt{0} +\let\ListOfQuizNames\@empty +\def\@quiz*#1#2{% + \xdef\eq@pageThisQ{\the\c@page}% + \let\@currentQues\@empty + \global\let\eqQzQuesList\@empty + \global\let\pointValuesArray\@empty + \global\let\ptypeArray\@empty + \global\let\corrAnsArray\@empty + {\count0=\@quizCnt\advance\count0by1\relax + \xdef\@quizCnt{\the\count0 }}% + \edef\@currentlabel{\@quizCnt}% + \edef\@currentHref{quiz.\@quizCnt}% + \sq@setCLN{\eq@defaultQuizLabelName}% + \setcounter{eqpointvalue}{0}\setcounter{questionno}{0}% + \eq@initializeServerSubmit + \global\let\eqQuizType\isQZ %\tabcolsep=0pt + \gdef\eqPTs{1}\global\let\eqQT\eq@na + \g@addto@macro\ListOfQuizNames{,#2}% + \gdef\quiz@total{#2}\xdef\curr@quiz{#2}\xdef\oField{#2}% + \xdef\currQuiz{#2}\xdef\currQuizStartPage{\thepage}% + \xdef\aPointType{0}% + \def\fieldJSStr@CMD{\fieldJSStr*[noquotes]\bqlabelISO}% + \expandafter\fieldJSStr@CMD\expandafter{\bqlabelISO}% + \ifx\@quiztype\@empty\gdef\@@quiztype{#1}\else + \xdef\@@quiztype{\@quiztype}\fi + \let\@qzsolndest\@empty + \let\answers\answers@q\let\endanswers\endanswers@q + \let\manswers\manswers@q\let\endmanswers\endanswers@q + \let\solution\solution@sq\let\endsolution\endsolution@sq + \expandafter% + \xdef\csname titleOf\currQuiz\endcsname{\aebTitleQuiz}% + \q@aboveskip\q@priorhook\noindent\hypertarget{qzH\@currentHref}{}% + \eq@beginQuiz\qhspace{\set@typeset@protect\aebtitleQuiz}% + \ignorespaces +} +\def\aeb@endquiz +{% + \eq@prior@endQuiz\noindent\eq@endQuiz + \global\let\eqQuizType\relax + \global\let\aebtitleQuiz\@empty + \global\let\aebTitleQuiz\@empty + \global\let\bqlabel\eq@bqlabel % reset beginning label to default + \global\let\eqlabel\eq@eqlabel % reset ending label to default + \global\let\sqsllabel\eq@sqsllabel + \global\let\sqslrtnlabel\eq@sqslrtnlabel + \global\let\bqlabelISO\eq@bqlabelISO + \eq@belowqskip +} +\newenvironment{quiz*}{\goodbreak\gdef\qstar{*}\@quiz*f}{\aeb@endquiz} +\newcommand\eq@beginQuiz{\eq@BeginQuizLink} +\newcommand\eq@endQuiz{\eq@EndQuizLink} +\newcommand\useBeginQuizButton[1][] + {\renewcommand\eq@beginQuiz{\eq@BeginQuizButton[#1]}} +\newcommand\useEndQuizButton[1][] + {\renewcommand\eq@endQuiz{\eq@EndQuizButton[#1]}} +\newcommand\useBeginQuizLink + {\renewcommand\eq@beginQuiz{\eq@BeginQuizLink}} +\newcommand\useEndQuizLink + {\renewcommand\eq@endQuiz{\eq@EndQuizLink}} +\newcommand\@initQuiz{% + var \curr@quiz=new Object();\jsR + lstOfQuizzes["\curr@quiz"]=\curr@quiz;\jsR + \curr@quiz.oAlertCheck={bAfterValue:false};\jsR + \curr@quiz.Grp={}; + \ifx\defaultColorJSLoc\@empty\else\jsR + \oField.DefaultColorJSLoc=\defaultColorJSLoc;\fi + \ifx\rghtColorJSLoc\@empty\else\jsR + \oField.RightColorJSLoc=\rghtColorJSLoc;\fi + \ifx\wrngColorJSLoc\@empty\else\jsR + \oField.WrongColorJSLoc=\wrngColorJSLoc;\fi + \ifx\partialColorJSLoc\@empty\else\jsR + \oField.PartialColorJSLoc=\partialColorJSLoc;\fi + \ifx\rghtAnsSymbJSLoc\@empty\else\jsR + \oField.RightAnsSymbJSLoc=\rghtAnsSymbJSLoc;\fi + \ifx\wrngAnsSymbJSLoc\@empty\else\jsR + \oField.WrongAnsSymbJSLoc=\wrngAnsSymbJSLoc;\fi + \ifx\corrAnsSymbJSLoc\@empty\else\jsR + \oField.CorrAnsSymbJSLoc=\corrAnsSymbJSLoc;\fi + \ifx\eqGradeScaleLoc\@empty\else\jsR + \oField.GradeScaleLoc=new Array(\eqGradeScaleLoc);\fi + \ifx\eqCorrLocalChoiceFully\@empty\else\jsR % dpsf07 + \oField.fullyCorrectLoc=\eqCorrLocalChoiceFully;\fi + \ifx\priorInitQuiz\@empty\else\jsR\priorInitQuiz\fi %\jsR + InitializeQuiz("\curr@quiz",\ifnocorrections0\else1\fi); + \ifx\eq@CGI\@empty\jsR\curr@quiz.isSubmitted=false;\else + \jsR\curr@quiz.isSubmitted=true;\fi + \jsR\curr@quiz.initializeWith=% +'InitializeQuiz("\curr@quiz",\ifnocorrections0\else1\fi);' + \ifx\postInitQuiz\@empty\else\jsR\postInitQuiz\fi +} +\newcommand{\priorInitQuiz}{} +\newcommand{\postInitQuiz}{} +\let\eq@submitURL\@empty +\let\eq@insertHiddenFields\@empty +\def\eq@@BeginQuizLinkActions +{% + \A{\JS{% + \@initQuiz + }}% +} +\def\eq@BeginQuizLinkDefaults{\Border{0 0 0}} +\let\bqlabelFmt\@empty +\def\eq@BeginQuizLink +{% + \qz@IDTxtField + \set@@Link{}{}{}{\color{\@linkcolor}\bqlabelFmt\bqlabel}{}% + {\eq@setWidgetProps\setLink@driver}% + {\eq@BeginQuizLinkDefaults\eq@@BeginQuizLinkActions\every@Link}% + \space\ignorespaces +} +\newcommand\priorSubmitQuiz{} +\newcommand\postSubmitQuiz{} +\def\eq@@EndQuizLinkActions{\A{\JS{% + if (!isQuizInitialized("\curr@quiz"))\jsR\jsT + eqAppAlert(InitMsg("\bqlabelISO"),3);\jsR + else {\jsR\jsT + if (\minQuizResp(\thequestionno)) {\jsR\jsT\jsT + \curr@quiz.PtValues=new % + Array(\pointValuesArray);\jsR\jsT\jsT + ProbType = [\ptypeArray];\jsR\jsT\jsT +\if@inclkey + \curr@quiz.CorrAns=(new % + Array(\corrAnsArray));\jsR\jsT\jsT +\fi + DisplayQuizResults("\curr@quiz",\theeqpointvalue,% + \thequestionno);\jsR\jsT\jsT + var h=this.getField("ScoreData.\curr@quiz");\jsR\jsT\jsT + h.value=Score+";"+NQuestions+";"% + +ptScore+";"+NPointTotal;\jsR\jsT\jsT + \eq@submitURL + \postSubmitQuiz + \jsT\jsT resetQuiz("\curr@quiz");\jsR\jsT + }\jsR + }}}% +} +\def\eq@EndQuizLinkDefaults{\Border{0 0 0}} +\let\eqlabelFmt\@empty +\def\eq@EndQuizLink +{% + \ifx\eq@CGI\@empty + \let\eq@submitURL\@empty + \let\eq@insertHiddenFields\@empty + \fi + \set@@Link{}{}{}{\color{\@linkcolor}\eqlabelFmt\eqlabel}{}% + {\eq@setWidgetProps\setLink@driver}% + {\eq@EndQuizLinkDefaults\eq@@EndQuizLinkActions\every@Link}% + \makebox[0pt][r]{\textField[\BC{}\autoCenter{n}]% + {htxtfld.\curr@quiz}{0bp}{0bp}}% + \makebox[0pt][r]{\eq@hiddenScoreData\eq@insertHiddenFields}% + \global\let\eq@CGI\@empty\ignorespaces +} +\def\BeginQuizButtonDefaults +{% + \CA{\bqlabel}\H{P}\F{\FPrint} + \BC{1 0 0}\BG{.7529 .7529 .7529}\W{1}\S{B} +} +\def\eq@@BeginQuizButtonActions +{% + \A{\JS{% + \@initQuiz + }}% +} +\newcommand\eq@BeginQuizButton[1][] +{% + \mbox{\qz@IDTxtField\push@@Button{#1}{beginQuiz.\curr@quiz}{}% + {\DefaultHeightOfWidget}{\eq@protect\A}% + {\eq@setButtonProps\eq@Button@driver}% + {\BeginQuizButtonDefaults\eq@@BeginQuizButtonActions + \every@ButtonField\every@BeginQuizButton}}% +} +\def\EndQuizButtonDefaults +{% + \CA{\eqlabel}\F{\FPrint}\BC{1 0 0} + \BG{.7529 .7529 .7529}\W{1}\S{B}\H{P} +} +\def\eq@@EndQuizButtonActions{\A{\JS{% + if (!isQuizInitialized("\curr@quiz"))\jsR\jsT + eqAppAlert(InitMsg("\bqlabelISO"),3);\jsR + else {\jsR\jsT + if (\minQuizResp(\thequestionno)&&_ModalNotOn){\jsR\jsT\jsT + \curr@quiz.PtValues=(new % + Array(\pointValuesArray));\jsR\jsT\jsT + ProbType=[\ptypeArray];\jsR\jsT\jsT +\if@inclkey + \curr@quiz.CorrAns=(new % + Array(\corrAnsArray));\jsR\jsT\jsT +\fi + DisplayQuizResults("\curr@quiz",\theeqpointvalue,% + \thequestionno);\jsR\jsT\jsT + var h=this.getField("ScoreData.\curr@quiz");\jsR\jsT\jsT + h.value=Score+";"+NQuestions+";"% + +ptScore+";"+NPointTotal;\jsR\jsT\jsT + \eq@submitURL + \postSubmitQuiz + \jsT\jsT resetQuiz("\curr@quiz");\jsR\jsT + }\jsR + }}}% +} +\newcommand{\eq@hiddenScoreData}{\makebox[0pt][r]{% + \textField[\BC{}\F{\FHidden}]{ScoreData.\curr@quiz}{0bp}{0bp}}} +\newcommand\eq@EndQuizButton[1][] +{% + \ifx\eq@CGI\@empty + \let\eq@submitURL\@empty + \let\eq@insertHiddenFields\@empty + \fi + \mbox{\push@@Button{#1}{endQuiz.\curr@quiz}{}% + {\DefaultHeightOfWidget}{\eq@protect\A}% + {\eq@setButtonProps\eq@Button@driver}% + {\EndQuizButtonDefaults\eq@@EndQuizButtonActions + \every@ButtonField\every@EndQuizButton}}% + \makebox[0pt][r]{\eq@hiddenScoreData\eq@insertHiddenFields}% + \global\let\eq@CGI\@empty +} +\newcommand\databaseName[1]{\gdef\db@Name{#1}}\def\db@Name{} +\newcommand\tableName[1]{\gdef\db@Table{#1}}\def\db@Table{} +\newcommand\eqCGI{\definePath{\eq@CGI}}\def\eq@CGI{} +\newcommand\eqSubmit{\hyper@normalise\eqSubmiti} +\def\eqSubmiti#1{\xdef\eq@CGI{"#1"}\eqSubmitii} +\def\eqSubmitii#1#2{\databaseName{#1}\tableName{#2}} +\providecommand{\rtnURL}{\definePath{\thisRtnURL}} +\let\thisRtnURL\@empty +\newcommand\addHiddenTextField[3][]{} +\newcommand\populateHiddenField[2]{} +\def\eqButtonDefaults +{% + \CA{\eq@local@CA}\AC{}\H{P}\W{1}\S{B} + \BC{1 0 0}\BG{.7529 .7529 .7529} +} +\def\@@eqButtonActions +{% + \A{\JS{if (isEndQuizPushed("\eqBaseName")){\jsR\jsT% + correctQuiz("\eqBaseName",\thequestionno);% + \ifusesumrytbls\jsR\jsT\else\jsR\fi + if (typeof correctSumryTbl == "function")\jsR\jsT\jsT + correctSumryTbl("\eqBaseName",\thequestionno);\jsR + } + }}% +} +\newcommand\eqButton[2][] +{% + \ifnocorrections\else + \def\eqBaseName{#2}% + \mbox{\push@@Button{#1}{correct.#2}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\eqButtonDefaults\@@eqButtonActions\every@ButtonField + \every@eqButton}}% + \fi +} +\def\CorrButton{\eqButton} +\def\rbMarkup@Defaults +{% + \BC{}\F{\FHidden}\Ff{\FfReadOnly}\textSize{12} + \textColor{0 g}\symbolchoice{check}\W{} +} +\newcommand\rbMarkup[1][]{% + \ifx\grpquestions\eq@One + \def\Fld@name{% + \oField.\thequestionno.\thegrpquestionno}\else + \def\Fld@name{\oField.\thequestionno}\fi + \mbox{\check@@Box{#1\V{Yes}\DV{Yes}}% + {rbmarkup.\Fld@name}% + {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% + {\eq@setWidgetProps\eq@RadioCheck@driver}% + {\rbMarkup@Defaults\every@CheckBox\every@rbMarkup}}}% +\newcommand\minQuizResp{lowThreshold} +\newcommand\PTs{\@ifstar{\def\eq@star{*}\@PTs}{\def\eq@star{x}\@PTs}} +\def\@PTs#1{\gdef\eq@PTs{#1}\ifx\eq@PTs\@empty\gdef\eq@PTs{1}\fi + \global\let\eqPTs\eq@PTs\global\let\eq@PTs\@empty + \if\eq@star*\else\PTs@Hook\fi} +\def\eq@PTs{0} % initialize this variable +\newcommand\QT[1] +{% + \gdef\eq@qT{#1}\ifx\eq@qT\@empty\global\let\eq@qT\eq@na\fi + \global\let\eqQT\eq@qT\global\let\eq@qT\eq@na +} +\def\eq@na{na} % not applicable +\let\eq@qT\eq@na +\newcommand\PTsHook[1]{\def\PTs@Hook{#1}} +\let\PTs@Hook\@empty +\let\eq@PTs\@empty +\newcommand\eqGradeScale{% + "A",[90, 100],"B",[80,90],"C",[70,80],"D",[60,70],"F",[0,60]} +\let\eqGradeScaleLoc\@empty +\newcommand{\resetGradeScaleLoc}{\global\let\eqGradeScaleLoc\@empty} +\def\tallywidth#1{\def\TBW{#1}} +\def\TBW{15bp} +\def\DefaultHeightOfWidget{11bp} +\def\RadioFieldSize{11bp} +\def\RBW{2in} % Response Box width (math,txt, txtpc, answer field) +\def\SFW{1.5in} % Score Field Width +\def\GFW{20pt} % Grade Field Width +\def\PtFW{1.5in} % Point Field Width +\def\PcFW{1.5in} % Percent Field Width +\def\ScoreFieldDefaults +{% + \Ff{\FfReadOnly}\BC{1 0 0}\BG{}\S{S} + \DV{\eqScore}\V{\eqScore}\W{1} +} +\newcommand\ScoreField[2][] +{% + \mbox{\text@@Field{#1}{ScoreField.#2}{\SFW}% + {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% + {\ScoreFieldDefaults\every@eqTextField\every@ScoreField}}% +} +\def\GradeFieldDefaults +{% + \textColor{0 0 1 rg}\BC{1 0 0}\BG{1 1 1}\S{S} + \Ff{\FfReadOnly}\Q{1}\W{1} +} +\newcommand\GradeField[2][] +{% + \mbox{\text@@Field{#1}{GradeField.#2}{\GFW}% + {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% + {\GradeFieldDefaults\every@eqTextField\every@GradeField}}% +} +\def\AnswerFieldDefaults +{% + \BC{0 0 0}\S{S}\Ff{\FfReadOnly}\W{1}% + \presets{\eq@resetAnsFieldOnClose}% +} +\let\eq@resetAnsFieldOnClose\@empty +\newcommand{\noResetAnsFieldOnClose}{% + \global\let\eq@resetAnsFieldOnClose\@empty} +\newcommand{\resetAnsFieldOnClose}{% + \gdef\eq@resetAnsFieldOnClose{% + \AApageclose{this.resetForm(["\Fld@name"]);}}} +\newcommand\AnswerField[2][] +{% + \mbox{\text@@Field{#1}{Ans.#2}{\RBW}{\DefaultHeightOfWidget}% + {}{\eq@setWidgetProps\eq@TextField}% + {\AnswerFieldDefaults\every@eqTextField\every@AnswerField}}% +} +\newcommand\autoAnswerField{% + \@ifundefined{lfooter}{\def\eq@next{\eq@autoAnswerFieldgobble}% + \PackageError{exerquiz}{The \string\autoAnswerField\space + command\MessageBreak requires the web package}{Use web package} + }{% + \PackageInfo{exerquiz}{% + For this auto answer field feature to run\MessageBreak + the webheadings pagestyle of the web package\MessageBreak + is required}\def\eq@next{\eq@autoAnswerField}% + \ifx\web@lfoot\@empty\else + \PackageWarning{exerquiz}{The left running footer already in + use\MessageBreak Will overwrite what is there now. + Better fix it.}\fi + }% + \eq@next +} +\newcommand\eq@autoAnswerFieldgobble[1][]{\relax} +\newcommand\autoAnsFldRaiseBox[1]{\def\ef@aAFRB{#1}} +\autoAnsFldRaiseBox{0pt} +\let\autoAFOpts\@empty +\newcommand\eq@autoAnswerField[1][]{\gdef\autoAFOpts{#1}% + \def\eq@insertAnswerField{\AnswerField[#1]{\currQuiz}}% + \eq@@autoAnswerField +} +\newcommand\eq@@autoAnswerField{\lfooter{\ifIsRespBox + \raisebox{\ef@aAFRB}{\eq@insertAnswerField}% + \global\IsRespBoxfalse\fi}% +} +\newcommand\manualAnswerField[1][\autoAFOpts]{% + \expandafter\AnswerField\expandafter[#1]{\currQuiz}} +\def\PointsFieldDefaults +{% + \rawPDF{}\BC{1 0 0}\BG{}\W{1}\S{S}\Ff{\FfReadOnly} + } +\newcommand\PointsField[2][] +{% + \mbox{\text@@Field{#1}{PointsField.#2}{\PtFW}% + {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% + {\PointsFieldDefaults\every@eqTextField\every@PointsField}}% +} +\def\PercentFieldDefaults +{% + \rawPDF{}\BC{1 0 0}\BG{}\W{1}\S{S}\Ff{\FfReadOnly}% +} +\newcommand\PercentField[2][] +{% + \mbox{\text@@Field{#1}{PercentField.#2}{\PcFW}% + {\DefaultHeightOfWidget}{}{\eq@setWidgetProps\eq@TextField}% + {\PercentFieldDefaults\every@eqTextField\every@PercentField}}% +} +\newcommand\RestoreScoreField +{% + \global\let\eqScore\eq@Score + \global\let\eqOutOf\eq@OutOf +} +\def\DeclareQuiz#1{\edef\oField{#1}% + \edef\thisQuiz{#1}\edef\curr@quiz{#1}% + \edef\currQuiz{#1}\edef\curr@quiz{#1}% +} +\let\Quiz\DeclareQuiz +\def\aeb@noindgobble{\noindent\@gobbletwo} +\let\startQuizHere\relax +\let\endQuizHere\relax +\let\dockQuiz\relax +\newcommand\floatQuiz{% + \global\let\eq@beginQuiz@saved\eq@beginQuiz + \global\let\eq@endQuiz@saved\eq@endQuiz + \global\let\startQuizHere\eq@beginQuiz + \global\let\endQuizHere\eq@endQuiz + \global\let\eq@beginQuiz\aeb@noindgobble + \global\let\eq@endQuiz\@empty + \global\let\dockQuiz\eq@dockQuiz +} +\newcommand\eq@dockQuiz{% + \global\let\eq@beginQuiz\eq@beginQuiz@saved + \global\let\eq@endQuiz\eq@endQuiz@saved + \global\let\startQuizHere\relax + \global\let\endQuizHere\relax + \global\let\eq@beginQuiz@saved\relax + \global\let\eq@endQuiz@saved + \global\let\dockQuiz\relax +} +\def\fancyQuizHeaders{% + \global\let\eq@sqsllabel@fancy@save\eq@sqsllabel + \gdef\eq@sqsllabel{\eq@fancyQuizHeaders}} +\def\eq@fancyQuizHeaders{% + \if\eqQuizType\isQZ\expandafter\eq@fancyQuizHeadersfmt\else + \expandafter\eq@fancyShrtQuizHeadersfmt\fi +} +\let\eq@sqsllabel@fancy@save\@empty +\def\restoreDefaultQuizHeaders{% + \global\let\eq@sqsllabel\eq@sqsllabel@fancy@save} +\newcommand\fncyQHdrsColor{blue} +\newcommand\FncyHdrsFmtNoTitleQuiz{Solution to Quiz:} +\newcommand\FncyHdrsFmtQuestion{Question} +\newcommand\dfltFncyQHdrsFmt{% + \protect\bfseries\protect\color{\fncyQHdrsColor}% + \ifx\aebTitleQuiz\@empty + \ifnum\@eqquestiondepth>0\relax\FncyHdrsFmtNoTitleQuiz\fi + \else\aebTitleQuiz:\ifnum\@eqquestiondepth=0\else\protect\ % + \FncyHdrsFmtQuestion\fi\fi\ifcase\@eqquestiondepth + \ifx\aebTitleQuiz\@empty\FncyHdrsFmtNoTitleQuiz\fi + \or\space\arabic{eqquestionnoi}.% + \or\space\arabic{eqquestionnoi}(\alph{eqquestionnoii})% + \or\space\arabic{eqquestionnoi}(\alph{eqquestionnoii})% + (\roman{eqquestionnoiii})\fi +} +\newcommand\dclrFncyQzHdrsFmt[1]{% + \def\eq@fancyQuizHeadersfmt{{#1}}% +} +\dclrFncyQzHdrsFmt{\dfltFncyQHdrsFmt} +\newcommand\dclrFncySqHdrsFmt[1]{% + \def\eq@fancyShrtQuizHeadersfmt{{#1}}% +} +\dclrFncySqHdrsFmt{\dfltFncyQHdrsFmt} +\let\tqhspace\space +\newcommand\titleQuiz[1][]{#1\@titleQuizi} +\def\@titleQuizi{\makeatletter + \@ifstar{\def\eq@tq@star{*}\eq@titleQuiz}% +{\def\eq@tq@star{x}\eq@titleQuiz}} +\def\eq@titleQuiz#1{% + \gdef\aebTitleQuiz{#1}\def\@currentlabelname{#1}% + \gdef\aeb@@titleQuiz{#1}% + \gdef\aebtitleQuiz{\mbox{\titleQuizfmt{#1}}\tqhspace}% +\makeatother} +\let\aebtitleQuiz\@empty +\let\aebTitleQuiz\@empty +\newcommand\titleQuizfmt{\bfseries} +\def\ifQuizType#1#2{\if\eqQuizType\isQZ\def\qt@next{#1}% + \else\def\qt@next{#2}\fi\qt@next} +\def\eq@ifstaroption#1#2{\if\eq@tq@star*\def\sq@next{#1}% + \else\def\sq@next{#2}\fi\sq@next} +\let\eq@tq@star\relax +\def\ifstaroption{\PackageWarning{exerquiz} + {\protect\ifstaroption\space is only defined within the\MessageBreak + shortquiz environment. Gobbling up its two\MessageBreak + arguments, sorry. This occurred}% + \@gobbletwo +} +\newcounter{qMarkCnt} +\def\multipartquestion{\global\let\aeb@multipart\eq@One} +\providecommand{\ptsLabel}[1]{\def\eqptsLabel{#1}}\ptsLabel{pts} +\providecommand{\ptLabel}[1]{\def\eqptLabel{#1}}\ptLabel{pt} +\let\aeb@multipart\eq@Zero +\newcommand\pcMarkupColor{red} +\def\markupWidth{12bp}\def\markupHeight{8bp}\def\markupTextSize{0} +\newcommand{\aeb@creditmarkup}{% + \textField[\Ff\FfReadOnly\BC{}\F\FHidden + \textColor{\pcMarkupColor}\textSize{\markupTextSize}\autoCenter{n}% + \DV{0 \eqptsLabel}\V{0 \eqptsLabel}]% + {qMark.\currQuiz.\thequestionno.\arabic{qMarkCnt}}% + {\markupWidth}{\markupHeight}% +} +\def\showCreditMarkup{% + \def\qMark{\if\aeb@multipart\eq@Zero\aeb@creditmarkup + \stepcounter{qMarkCnt}\else\global\let\aeb@multipart\eq@Zero\fi}% + \def\qMark@Hook{\aeb@creditmarkupfmt}% +} +\def\hideCreditMarkup{\global\let\qMark@Hook\@empty} +\newcommand{\aeb@creditmarkupfmt}{\makebox[0pt][r]{\qMark\hspace{-2bp}}} +\long\def\gobbleToEndQt#1\endeqQt{\ifeqforpaper\expandafter\@gobble\fi} +\long\def\gobbleToEndSQt#1\endeqSQt{% + \ifeqforpaper\expandafter\@gobble\fi} +\newcommand\inclQtFilter[1]{\def\eqarg{#1}\ifx\eqarg\eqFilterArg + \else\expandafter\gobbleToEndQt\fi} +\newcommand{\exclQt}[1]{\gobbleToEndQt} +\newcommand{\useQtFilter}{% + \let\eqQt\inclQtFilter\let\eqSQt\exclSQt +} +\newcommand\inclSQtFilter[1]{\def\eqarg{#1}\ifx\eqarg\eqFilterArg + \else\expandafter\gobbleToEndSQt\fi} +\newcommand{\exclSQt}[1]{\gobbleToEndSQt} +\newcommand{\useSQtFilter}{\let\eqSQt\inclSQtFilter\let\eqQt\exclQt} +\newcommand{\sqbookmarkfmt}{Short Quiz \@shortquizCnt.\space} +\newcommand{\qzbookmarkfmt}{Quiz \@quizCnt.\space} +\newcommand{\quizpdfbookmark}[1]{\relax\def\argi{#1}% + \if\eqQuizType\isSQZ\edef\aeb@bmmrkdest{sqbm.\@shortquizCnt}% + \def\aeb@thisbkmrkfmt{\sqbookmarkfmt}\else + \edef\aeb@bmmrkdest{qzbm.\@quizCnt}% + \def\aeb@thisbkmrkfmt{\qzbookmarkfmt}\fi + \def\quizpdfbookmarktitle{#1}% + \def\eqex@next{\belowpdfbookmark{\aeb@thisbkmrkfmt#1}% + {\aeb@bmmrkdest}}% + \ifx\aebTitleQuiz\@empty\else\ifx\argi\@empty + \def\quizpdfbookmarktitle{\aebTitleQuiz}% + \def\eqex@next{\belowpdfbookmark{\aebTitleQuiz}% + {\aeb@bmmrkdest}}\fi\fi + \eqex@next\ignorespaces +} +\def\pushEnvir{\xdef\eq@currenvir{\@currenvir}\endgroup} +\def\popEnvir{\begingroup\@endpefalse + \edef\@currenvir{\eq@currenvir}% + \edef\@currenvline{\on@line}% +} +\def\answers@sq{\parindent0pt + \ifx\solutionparshape\@empty\else + \pushEnvir\par\noindent\expandafter\popEnvir\fi + \stepcounter{questionno}% + \if\sqstar*\relax + \if\aeb@FLOverride\eq@l + \let\@Ans\Ans@sq@l\else + \let\@Ans\Ans@sq@f\fi + \else + \if\aeb@FLOverride\eq@f + \let\@Ans\Ans@sq@f\else + \let\@Ans\Ans@sq@l\fi + \fi + \def\aeb@answerType{r}\@ifnextchar[{\answers@@sq}% + {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} +\def\manswers@sq{\parindent0pt + \@ifundefined{ifuserectforms}{} + {\if\aeb@FLOverride\eq@f\ifuserectforms + \useRectForMC\else\useCircForMC\fi\fi}% + \ifx\solutionparshape\@empty\else + \pushEnvir\par\noindent\expandafter\popEnvir\fi + \stepcounter{questionno}% + \if\sqstar*\relax + \if\aeb@FLOverride\eq@l + \let\@Ans\Ans@ck@sq@l\else + \let\@Ans\Ans@ck@sq@f\fi + \else + \if\aeb@FLOverride\eq@f + \let\@Ans\Ans@ck@sq@f\else + \let\@Ans\Ans@ck@sq@l\fi + \fi + \def\aeb@answerType{c}\@ifnextchar[{\answers@@sq}% + {\@ifstar{\answers@@sq[\curr@quiz.\thequestionno]}{\answers@@sq[]}}} +\let\sq@hwdest\@empty % hard-wired destination +\def\answers@@sq[#1]#2{% + \xdef\aeb@numCols{#2}% + \ifx\sq@hwdest\@empty + \xdef\@qzsolndest{#1}\else + \gdef\@qzsolndest{\sq@hwdest}\fi + \if\aeb@numCols1\gdef\eq@listType{1}\expandafter\answers@sq@list + \else + \gdef\eq@listType{0}\expandafter\answers@@sq@tabular + \fi{\aeb@numCols}% +} +\def\setMClabelsepDefault#1{\def\eq@hspanner@default{#1}} +\def\setMClabelsep#1{\def\eq@hspanner{#1}} +\setMClabelsep{\ }\setMClabelsepDefault{\ } +\def\resetMClabelsep{\expandafter\setMClabelsep\expandafter + {\eq@hspanner@default}} +\def\eq@lw@l{\eq@l@l\eq@hspanner} +\def\eq@l@l{\normalsize\normalfont(d)} +\def\eq@lw@f{\kern\RadioFieldSize\eq@hspanner} +\@ifundefined{ifwithsoldoc}{\newif\ifwithsoldoc\withsoldocfalse}{} +\let\eq@ansChoiceArray\@empty +\def\eq@recordAnsChoice{% + \ifx\eq@ansChoiceArray\@empty + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansChoiceArray{"\alph{quizno}"}}\else + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansChoiceArray{,"\alph{quizno}"}}\fi + \tmp@exp +} +\newcommand\Ans@list[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% + \item\relax\noindent\if\eq@listType\eq@One + \addtocounter{quizno}{-1}\@ifundefined{ifwithsoldoc} + {\refstepcounter{quizno}}{\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi + \ignorespaces} +\newenvironment{answers@sq@list}[1] +{% + \ifx\aeb@answerType\eq@r + \let\endanswers\endanswers@sq@list\else + \let\endmanswers\endanswers@sq@list\fi + \list{\strut\@Ans}{% + \if\sqstar*\relax + \settowidth{\labelwidth}{\eq@lw@f}\else + \settowidth{\labelwidth}{\eq@lw@l}\fi + \setlength{\topsep}{-\parskip+\aboveanswersSkip}% + \setlength{\parsep}{0pt}\setlength{\itemindent}{0pt}% + \setlength{\itemsep}{0pt}\setlength{\partopsep}{0pt}% + \setlength{\listparindent}{\parindent}% + \ifnum\exerwparts@cols>1\relax + \ifx\itsExerParts\eq@YES + \setlength{\leftmargin}{\labelwidth}\else + \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi + \else + \ifx\solutionparshape\@empty + \setlength{\leftmargin}{\labelwidth}\else + \setlength{\leftmargin}{\labelwidth+\eqemargin}\fi\fi + \setlength{\labelsep}{0pt}% +% \settowidth{\labelsep}{\eq@hspanner}% + \def\Ans{\Ans@list}% + }% +}% +{\endlist\setcounter{quizno}{0}\eq@answersEndHook} +\newcommand\Ans@tabular[2][0]{\gdef\eq@pPTs{#1}\xdef\Ans@choice{#2}% + \leavevmode\@Ans +} +\newcommand\sqtabsep[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty + \def\sq@tabsep{1.5pt}\else\def\sq@tabsep{#1}\fi} +\sqtabsep{1.5pt} +\def\sqTabPos#1{\def\sq@TabPos{[#1]}}\sqTabPos{} +\def\answers@@sq@tabular#1{% + \ifinner + \ifx\itsExerParts\eq@YES\par\removelastskip + \removelastparskip\vskip\aboveanswersSkip\fi + \else\par\removelastskip\removelastparskip + \vskip\aboveanswersSkip\fi + \noindent\ifnum\exerwparts@cols>1\relax\parshape=0\fi + \tabcolsep=0pt + \eq@tmpdima=\linewidth + \@tempcnta#1\relax + \advance\@tempcnta-1\relax + \multiply\@tempcnta by2 + \@tempdima\sq@tabsep\relax + \multiply\@tempdima\@tempcnta + \advance\eq@tmpdima-\@tempdima + \divide\eq@tmpdima by#1 + \def\Ans{\Ans@tabular}% + \tabcolsep\sq@tabsep\relax + \expandafter\tabular\sq@TabPos{@{}*{#1}{p{\eq@tmpdima}}@{}}}% +\let\eq@save@doendpe\@doendpe +\def\reset@doendpe#1{\global\eq@scratchtoks=\expandafter{#1}% + \gdef\@doendpe{\par\@endpetrue\global\let\@doendpe\eq@save@doendpe + \def\par{\@restorepar + \expandafter\everypar + \expandafter{\the\eq@scratchtoks}\par\@endpefalse}% + \everypar{{\setbox\z@\lastbox}% + \everypar{}\@endpefalse}\the\eq@scratchtoks + }% +} +\newcommand\answersEndHook[1]{\def\eq@answersEndHook{#1}} +\let\eq@answersEndHook\@empty +\def\endanswers@sq{\endtabular\setcounter{quizno}{0}% + \eq@answersEndHook\reset@doendpe{\the\everypar}% + \ifinner\else%\par + \removelastskip + \vspace{\aboveanswersSkip}\@endpetrue\fi +} +\def\endmanswers@sq{\endtabular\setcounter{quizno}{0}% + \eq@answersEndHook\reset@doendpe{\the\everypar}% + \ifinner\else%\par + \removelastskip + \vspace{\aboveanswersSkip}\@endpetrue\fi +} +\def\popiiictm{\special{CTM: pop pop pop}} +\def\sqWrongRespJS{OnBlurRespBox( false, "\oField" );} +\def\sqRightRespJS{OnBlurRespBox( true, "\oField" );} +\def\Ans@sq@l@Actions +{% + \A{\if\Ans@choice1 + \JS{\sqRightRespJS} + \ifx\@qzsolndest\@empty\else + \ifeq@solutionsafter\else + /Next <> + \fi + \fi + \else + \JS{\sqWrongRespJS\jsR + \ifx\oField\@empty\else + updateTally("\oField.\thequestionno"); + \fi}% + \fi + }% +} +\def\linkContentFormat{\alph{quizno}} +\def\aebChoiceAltFmt{\noexpand\ifaebshowgrayletters + \Alph{quizno}\noexpand\else\linkContentFormat\noexpand\fi} +\def\linkContentWrapper{(\hfil\linkContentFormat\hfil)}% +\def\Ans@sq@l{% + \leavevmode\if\eq@listType\eq@One\stepcounter{quizno}\else + \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} + {\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi\PBS\raggedright + \settowidth{\eq@tmplength}{\eq@lw@l}\sbox{\eq@tmpbox}{\eq@l@l}% + \eq@tmpdima=\wd\eq@tmpbox + \def\link@@Content{\linkContentWrapper}% + \hangindent=\eq@tmplength\hangafter=1\relax + \set@@Link{}{}{}% + {\makebox[\eq@tmpdima]{\color{\@linkcolor}\link@@Content}} + {\eq@protect\A}{\eq@setWidgetProps\setLink@driver}% + {\set@LinkTextDefaults\Ans@sq@l@Actions\every@Link}% + \Ans@proofing{\eq@tmpdima}% +\eq@hspanner\ignorespaces} +\def\Ans@ck@sq@l{\Ans@ck@sq@f} +\def\@@Ans@sq@f@Defaults +{% + \BC{0 0 0}\Ff{\FfNoToggleToOff}\W{1} + \F{\FPrint}\textSize{12}\textColor{0 g} +} +\def\sqTurnOffAlerts{\let\@sqTurnOffAlerts\eq@Zero} +\def\sqTurnOnAlerts{\let\@sqTurnOffAlerts\eq@One} +\sqTurnOnAlerts +\def\sqNoCorrections{\let\@sqAlertsOnly\eq@One} +\def\sqCorrections{\let\@sqAlertsOnly\eq@Zero} +\sqNoCorrections +\def\Ans@sq@f@ActionsTrue{% + \if\@sqTurnOffAlerts1OnBlurRespBox(true,"\oField");\jsR\fi + \ifx\@qzsolndest\@empty\else\ifeq@solutionsafter\else + jmpToNamedDest("\oField","\@qzsolndest",% + \if\@sqTurnOffAlerts00\else1\fi);\fi + \fi\eqAddAAMouseUpMC} +\def\Ans@sq@f@ActionsFalse{% + \if\@sqTurnOffAlerts1OnBlurRespBox(false,"\oField" );\jsR\fi + \ifx\oField\@empty\else + updateTally("\oField.\thequestionno"); + \fi\jsR\eqAddAAMouseUpMC} +\def\Ans@sq@f@Actions{\A{\if\Ans@choice\eq@One + \JS{\Ans@sq@f@ActionsTrue}\else + \JS{\Ans@sq@f@ActionsFalse}\fi}% + \AAmousedown{updateTally.downState=!!event.target.isBoxChecked% + (\arabic{quizno}-1);}} +\def\Ans@proofing#1{\ifeq@proofing\if\Ans@choice1\relax + \llap{\@proofingsymbol\,\hskip#1\relax}% + \fi\fi} +\def\sqRghtSymbChoice#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \edef\sq@corrsymch{\sqRghtSymbChoiceDef}\else + \edef\sq@corrsymch{#1}\fi} +\def\sqRghtSymbColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \edef\sq@corrsymcol{\sqRghtSymbColorDef}\else + \edef\sq@corrsymcol{#1}\fi} +\def\sqWrngSymbChoice#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \edef\sq@wrgsymch{\sqWrngSymbChoiceDef}\else + \edef\sq@wrgsymch{#1}\fi} +\def\sqWrngSymbColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \edef\sq@wrgsymcol{\sqWrngSymbColorDef}\else + \edef\sq@wrgsymcol{#1}\fi} +\def\sqRghtSymbChoiceDef{check} +\def\sqRghtSymbColorDef{0 .6 0 rg} +\def\sqWrngSymbChoiceDef{cross} +\def\sqWrngSymbColorDef{1 0 0 rg} +\edef\sq@corrsymch{\sqRghtSymbChoiceDef} +\edef\sq@corrsymcol{\sqRghtSymbColorDef} +\edef\sq@wrgsymch{\sqWrngSymbChoiceDef} +\edef\sq@wrgsymcol{\sqWrngSymbColorDef} +\def\sqResetSymbToDef{% + \sqRghtSymbChoice{}\sqRghtSymbColor{}% + \sqWrngSymbChoice{}\sqWrngSymbColor{}% +} +\def\qChoiceSymb#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \edef\qz@chksymb{\qChoiceSymbDef}\else + \edef\qz@chksymb{#1}\fi} +\def\qChoiceColor#1{\edef\eq@arg{#1}\ifx\eq@arg\@empty + \edef\qz@chksymbcol{\qChoiceColorDef}\else + \edef\qz@chksymbcol{#1}\fi} +\def\qChoiceSymbDef{check} +\def\qChoiceColorDef{0 0 0 rg} +\edef\qz@chksymb{\qChoiceSymbDef} +\edef\qz@chksymbcol{\qChoiceColorDef} +\let\rbf@Opts\@empty +\def\Ans@sq@f{% + \if\eq@listType\eq@One\stepcounter{quizno}\else + \@ifundefined{ifwithsoldoc}{\refstepcounter{quizno}} + {\ifwithsoldoc\stepcounter{quizno}\else + \refstepcounter{quizno}\fi}\fi\PBS\raggedright + \if\Ans@choice\eq@One + \def\rbf@Opts{\symbolchoice{\sq@corrsymch}% + \textColor{\sq@corrsymcol}}\else + \def\rbf@Opts{\symbolchoice{\sq@wrgsymch}% + \textColor{\sq@wrgsymcol}}\fi + \settowidth{\eq@tmplength}{\eq@lw@f}% + \eq@tmpdima=\wd\eq@tmpbox% + \hangindent=\eq@tmplength\hangafter=1\relax + \insertGrayLetters % 6.3d + \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% + {mc.\oField.\thequestionno}% + {\RadioFieldSize}% 11/16/05 changed from \oField to mc.\oField + {\RadioFieldSize}{\Ans@choice\alph{quizno}}{\eq@protect\A}% + {\eq@setWidgetProps\eq@RadioCheck@driver}% + {\@@Ans@sq@f@Defaults\Ans@sq@f@Actions\every@RadioButton + \every@sqRadioButton}}% + \Ans@proofing{\RadioFieldSize}% +\eq@hspanner\ignorespaces} +\def\@@Ans@ck@sq@f@Defaults +{% + \BC{0 0 0}\Ff{\FfNoToggleToOff} + \F{\FPrint}\textSize{12}\textColor{0 g}\W{1} +} +\begingroup +\catcode`\&=12 +\gdef\eq@AND{&&} +\endgroup +\def\Ans@ck@sq@f@ActionsTrue{% + var fName=event.target.name;\jsR + var g=this.getField("mc.\oField.\thequestionno");\jsR + var a=g.getArray();\jsR + for (var i=0; i=a.length) jmpToNamedDest("\oField","\@qzsolndest",% + \if\@sqTurnOffAlerts00\else1\fi); + \fi + \fi\eqAddAAMouseUpMS} +\def\Ans@ck@sq@f@ActionsFalse{% + var fName=event.target.name;\jsR + var g=this.getField("mc.\oField.\thequestionno");\jsR + var a=g.getArray();\jsR + for (var i=0; i> +} +\def\Ans@c@f@Defaults +{% + \BC{0 0 0}\S{S}\W{1}\F{\FHidden}\textSize{12} + \textColor{0 g}\symbolchoice{circle} +} +\let\bottomOfAnsfStack\relax +\providecommand\graylettersColor{gray} +\def\insertGrayLetters{\ifaebshowgrayletters + \rlap{\makebox[\RadioFieldSize]% + {\textcolor{\graylettersColor}{\Alph{quizno}}}}\else\relax\fi} +\def\Ans@@f +{% + \settowidth{\eq@tmplength}{\eq@lw@f}% + \hangindent=\eq@tmplength\hangafter=1 + \bottomOfAnsfStack\insertGrayLetters + \edef\rbf@Opts{\ifaeb@usecircles\else + \noexpand\symbolchoice{\qz@chksymb}\fi + \noexpand\textColor{\qz@chksymbcol}}% + \if\Ans@choice1\eq@recordAnsChoice\fi + \mbox{\expandafter\radio@@Button\expandafter{\rbf@Opts}% + {mc.\curr@quiz.\thequestionno}% + {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\eq@protect\A}{\eq@setWidgetProps\eq@RadioCheck@driver}% + {\Ans@r@f@Defaults\Ans@r@f@Actions\every@RadioButton + \every@qRadioButton\insert@circlesymbol}}% + \let\late@options\@empty + \ifnocorrections\else + \if\Ans@choice1\relax + \edef\Ans@c@f@Choice{\noexpand\DV{Yes}% + \ifx\@qzsolndest\@empty\noexpand\Ff{\FfReadOnly}% + \else + \ifeq@noquizsolutions + \noexpand\Ff{\FfReadOnly}% + \else + \noexpand\A{\noexpand\quiz@SolutionActionHook}% + \fi + \fi + }% + \else + \def\Ans@c@f@Choice{\Ff{\FfReadOnly}}% + \fi + \ifaeb@usecircles\def\late@options{\BC{}}\fi + \if\Ans@choice1\relax + \ifx\@qzsolndest\@empty\else + \ifeq@noquizsolutions\else + \edef\late@options{\noexpand\BC{\solution@Color}}% + \fi + \fi + \fi + \makebox[0pt][r]{\check@@Box{}% + {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% + {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% + {\eq@setWidgetProps\eq@RadioCheck@driver}% + {\Ans@c@f@Defaults\Ans@c@f@Choice\every@CheckBox + \every@qCheckBox\late@options}}% + \fi + \Ans@proofing{\RadioFieldSize}% +\eq@hspanner\ignorespaces} +\def\limitSelectionTo#1{\def\eqlimselTo{#1}} +\let\eqlimselTo\@empty +\def\Ans@ck@f{\leavevmode\if\eq@listType1\stepcounter{quizno}% + \else\refstepcounter{quizno}\fi + \if\Ans@choice1\eq@recordAnsChoice\fi + \PBS\raggedright\Ans@@ck@f} +\def\Ans@ck@f@Defaults +{% + \BC{0 0 0}\S{S}\W{1}\Ff{\FfNoToggleToOff} + \textSize{12}\textColor{0 g} +} +\def\Ans@ck@f@Actions +{% + \A{\JS{% + var _bOK=true;\jsR +\ifx\eqlimselTo\@empty\else _bOK = LimitSelection(\eqlimselTo,% +"mck.\curr@quiz.\thequestionno","\arabic{quizno}");\jsR\fi +if (_bOK) {\jsR\jsT + var aPMSretn=ProcessMultiSelection(\Ans@choice,"\alph{quizno}",% +\thequestionno,\arabic{quizno},"\curr@quiz",\eqPTs,\eq@pPTs);\jsR\jsT + RecordProblemType("\eqQT",\thequestionno);\jsR\jsT + ProcessQuestion(aPMSretn[0],aPMSretn[1],\thequestionno,% +\arabic{quizno},"\curr@quiz",0,\ifnocorrections0\else1\fi,% +"\bqlabelISO"\if\eqQuizType\isQZ\ifx\eq@online\eq@YES +\ifeq@noquizsolutions\else,1\fi\fi\fi);\jsR +}}}% +} +\def\quiz@SolutionActionHook{% + /S/GoTo/D(\@qzsolndest)/Next<<\JS{this.resetForm(% +["mcq.\curr@quiz.\thequestionno.\arabic{quizno}"]);}>> +} +\def\Ans@@ck@f +{% + \settowidth{\eq@tmplength}{\eq@lw@f}% + \hangindent=\eq@tmplength\hangafter=1 + \bottomOfAnsfStack\insertGrayLetters + \bottomOfAnsfStack\insertGrayLetters +\def\cbf@Opts{\symbolchoice{\qz@chksymb}% + \textColor{\qz@chksymbcol}}% + \mbox{\expandafter\check@@Box\expandafter{\cbf@Opts}% + {mck.\curr@quiz.\thequestionno.\arabic{quizno}}% + {\RadioFieldSize}{\RadioFieldSize}{\Ans@choice\alph{quizno}}% + {\eq@protect\A}{\eq@setWidgetProps\eq@RadioCheck@driver}% + {\Ans@ck@f@Defaults\Ans@ck@f@Actions\every@RadioButton + \every@qckCheckbox}}% + \ifnocorrections\else + \if\Ans@choice1\relax + \edef\Ans@c@f@Choice{\noexpand\DV{Yes}% + \ifx\@qzsolndest\@empty\noexpand\Ff{\FfReadOnly}% + \else + \ifeq@noquizsolutions + \noexpand\Ff{\FfReadOnly}% + \else + \noexpand\A{\noexpand\quiz@SolutionActionHook}% + \fi + \fi + }% + \else + \def\Ans@c@f@Choice{\Ff{\FfReadOnly}}% + \fi + \let\late@options\@empty + \if\Ans@choice1\relax + \ifx\@qzsolndest\@empty\else + \ifeq@noquizsolutions\else + \edef\late@options{\noexpand\BC{\solution@Color}}% + \fi + \fi + \fi + \makebox[0pt][r]{\check@@Box{}% + {mcq.\curr@quiz.\thequestionno.\arabic{quizno}}% + {\RadioFieldSize}{\RadioFieldSize}{Yes}{}% + {\eq@setWidgetProps\eq@RadioCheck@driver}% + {\Ans@c@f@Defaults\Ans@c@f@Choice\every@CheckBox + \every@qCheckBox\late@options}}% + \fi + \Ans@proofing{\RadioFieldSize}% +\eq@hspanner\ignorespaces} +\newcount\eq@tabColCnt +\define@key{bchoice}{nCols}{\def\bChoiceNumCols{#1}} +\@for\eqi:=1,2,3,4,5,6,7,8,9,10 \do{\edef\temp@expand@def{% + \noexpand\define@key{bchoice}{\eqi}[\eqi]{% + \noexpand\def\noexpand\bChoiceNumCols{\eqi}}% + }\temp@expand@def +} +\def\bChoiceNumCols{\aeb@numCols} +\define@key{bchoice}{random}[true]{% + \csname if#1\endcsname\eq@randomizeChoicestrue + \else\eq@randomizeChoicesfalse\fi +} +\define@key{bchoice}{label}[]{\xdef\bChoiceLabel{#1}} +\def\bChoices{\@ifnextchar[{\@ansChoices}{\@ansChoices[\aeb@numCols]}} +\def\@ansChoices[#1]% +{% + \global\let\@tempholdSaveAns\@empty %4/5 + \global\let\@tempholdSaveChoice\@empty %4/5 + \global\let\bChoiceLabel\@empty %4/5 + \setkeys{bchoice}{#1}% + \global\eq@tabColCnt=0 + \ifnum\aeb@numCols=1 % list mode + \def\eq@next{\@layoutListAns}\else % tabular mode + \def\eq@next{\@layoutTabularAns{\bChoiceNumCols}}\fi + \eq@next +} +\let\eChoices\relax +\def\@layoutListAns{\@ifnextchar\Ans{\@getListAns}% + {\@lookforendansChoices{\@layoutListAns}}% +} +\newcommand{\eq@saveAns}[2][]{% + \let\eq@next\@@@SaveAnsGobbleAns + \ifx\bChoiceLabel\@empty\else + \def\eq@savedAnsOpt{#1}\def\eq@savedAnsZO{#2}% + \if\eq@savedAnsZO1 \let\eq@next\@@@SaveAns\fi + \fi\eq@next +} +\long\def\@@@SaveAns#1\eAns{% 4/5 + \g@addto@macro\@tempholdSaveAns{\\{\ignorespaces#1}}% + \addtocounter{quizno}{1}% + \edef\temp@expand{\noexpand\g@addto@macro\noexpand + \@tempholdSaveChoice{% + \noexpand\\{\ifx\sqstar\@empty\aebChoiceAltFmt\else + \ifaebshowgrayletters\Alph{quizno}\else + \linkContentFormat\fi\fi}}}\temp@expand + \addtocounter{quizno}{-1}% +} +\newif\ifoxfordcomma \oxfordcommatrue +\def\oxfordCommaOn{\oxfordcommatrue} +\def\oxfordCommaOff{\oxfordcommafalse} +\def\eq@insertComma{% + \ifx\eq@comma\@empty + \ifnum\@nameuse{NumAns\eq@namearg}>2\relax + \def\eq@comma{,}\fi + \else\ifx\eq@insertAnd\@empty\eq@comma\space + \else\ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}% + \ifoxfordcomma\eq@comma\fi\else\eq@comma\fi\space + \fi + \fi +} +\newcommand\eqAnd{and}\def\eq@insertAnd{% + \ifnum\@nameuse{NumAns\eq@namearg}<2\relax\else + \ifnum\@nameuse{NumAns\eq@namearg}>2\relax + \else\leavevmode\space\fi\eqAnd\space\fi} +\long\def\eq@displayAns#1{\advance\@tempcnta1\relax + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} +\def\eq@displayAlts#1{\advance\@tempcnta1 + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi + \savedAltFmt{#1}} +\def\eq@displayAltsAns#1{\advance\@tempcnta1\relax + \eq@insertComma + \ifnum\@tempcnta=\@nameuse{NumAns\eq@namearg}\eq@insertAnd\fi#1} +\newcommand{\savedAltFmt}[1]{(#1)} +\newcommand{\useSavedAns}{\bgroup\@ifstar{\useSavedAns@i} + {\let\eq@insertAnd\@empty\useSavedAns@i}} +\newcommand{\useSavedAns@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\let\label\@gobble + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAns\@nameuse{SavedAns#2}\else + \@nameuse{SavedAns#2-Idx#1}\fi + \egroup +} +\newcommand{\useSavedAlts}{\bgroup\@ifstar{\useSavedAlts@i} + {\let\eq@insertAnd\@empty\useSavedAlts@i}} +\newcommand{\useSavedAlts@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\@nameuse{caseFor#2}% + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAlts\@nameuse{SavedAlts#2}\else + \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}}\fi + \egroup +} +\newcommand{\useSavedAltsAns}{\bgroup\@ifstar{\useSavedAltsAns@i} + {\let\eq@insertAnd\@empty\useSavedAltsAns@i}} +\newcommand{\useSavedAltsAns@i}[2][]{\@tempcnta=0\relax + \def\eq@namearg{#2}\@nameuse{caseFor#2}\let\label\@gobble + \def\eq@argi{#1}\ifx\eq@argi\@empty + \let\eq@comma\@empty + \let\\\eq@displayAltsAns\@nameuse{SavedAltsAns#2}\else + \savedAltFmt{\@nameuse{SavedAlts#2-Idx#1}} + \@nameuse{SavedAns#2-Idx#1}\fi + \egroup +} +\newcommand{\useSavedNumAns}[1]{\@nameuse{NumAns#1}} +\long\def\@@@SaveAnsGobbleAns#1\eAns{} % 4/5 +\long\def\@getListAns\Ans#1\eAns{%\@@par %start new paragraph + \eq@saveAns#1\eAns % 4/5 + \Ans#1\vspace{\@rowskip}% + \@layoutListAns +} +\long\def\@lookforendansChoices#1{% + \@ifnextchar\eChoices{\rowsep{\rowsep@default}% + \expandafter\@findendans\@gobble}{\expandafter#1\@gobble}% +} +\def\@layoutTabularAns#1{% + \let\eq@tabSep\@empty + \xdef\numShortCols{#1}% + \ifnum#1>\aeb@numCols \xdef\numShortCols{\aeb@numCols}\fi + \@@layoutTabularAns +} +\def\@@layoutTabularAns{% + \@ifnextchar\Ans{\@getTabAns}% + {\@lookforendansChoices{\@@layoutTabularAns}}% +} +\def\rowsep#1{\gdef\@rowsep{[#1]}\gdef\@rowskip{#1}}% +\rowsep{\rowsep@default} +\def\rowsepDefault#1{\def\rowsep@default{#1}} +\def\rowsep@default{0pt} +\long\def\@getTabAns\Ans#1\eAns{% + \eq@saveAns#1\eAns + \global\advance\eq@tabColCnt1 + \let\@save@tabSep=\eq@tabSep + \ifnum\eq@tabColCnt=\numShortCols + \global\eq@tabColCnt=0 + \xdef\eq@tabSep{\noexpand\\\noalign{\kern\@rowskip\relax}}% + \else + \gdef\eq@tabSep{&}% + \fi + \@ifnextchar\eChoices{\@save@tabSep\Ans#1\rowsep{\rowsep@default} + \expandafter\@findendans\@gobble}% + {\@save@tabSep\Ans#1\@@layoutTabularAns}% +} +\def\@findendans{\@ifnextchar\end{% 4/5 + \ifx\bChoiceLabel\@empty\else + \processLabeledAns\fi + }{\expandafter\@findendans\@gobble}}% +\def\defineEachAns#1{\advance\count0by1\relax + \@temptokena={#1}\csarg\xdef + {SavedAns\bChoiceLabel-Idx\the\count0}{\the\@temptokena}% + \ifsolutionsonly\else + {\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}}}\fi +} +\def\defineEachChoice#1{\advance\count0by1\relax + \@temptokena={#1}\csarg\xdef + {SavedAlts\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}\ifsolutionsonly\else + {\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAlts\bChoiceLabel-Idx\the\count0}% + {\the\@temptokena}}}\fi +} +\def\processLabeledAns{% + \bgroup + \let\label\@gobble +\if\aeb@FLOverride\eq@l + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\else + \ifaebshowgrayletters + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOn}\else + \global\@namedef{caseFor\bChoiceLabel}{\graylettersOff}\fi +\fi + \toks@=\expandafter{\@tempholdSaveAns}\csarg + \xdef{SavedAns\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAns\bChoiceLabel}{\the\toks@}}}\fi + \count0=0\relax\let\\\defineEachAns\the\toks@ + \xdef\@currNCntAns{\the\count0 }\csarg + \xdef{NumAns\bChoiceLabel}{\@currNCntAns}% + \ifsolutionsonly\else{\eq@IWDefs{\string + \csarg\string\gdef{NumAns\bChoiceLabel}{\the\count0 }}}\fi + \toks@=\expandafter{\@tempholdSaveChoice}\csarg + \xdef{SavedAlts\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAlts\bChoiceLabel}{\the\toks@}}}\fi + \count0=0\relax\let\\\defineEachChoice\the\toks@ + \count0=1\relax\toks@={}%{\ignorespaces\@gobble}% + \loop + \edef\temp@exp{\the\toks@\noexpand\\{% + \noexpand\useSavedAlts[\the\count0]{\bChoiceLabel} + \noexpand\useSavedAns[\the\count0]{\bChoiceLabel}}}% + \toks@=\expandafter{\temp@exp}% + \ifnum\count0<\@currNCntAns + \advance\count0by1 + \repeat + \csarg\xdef{SavedAltsAns\bChoiceLabel}{\the\toks@}% + \ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string + \csarg\string\gdef{SavedAltsAns\bChoiceLabel}{\the\toks@}}}\fi + \egroup +} +\def\graylettersOn{\aebshowgrayletterstrue} +\def\graylettersOff{\aebshowgraylettersfalse} +\def\aeb@exiii{\expandafter\expandafter\expandafter} +\def\REF{\@ifstar{\let\isREFstar\eq@One\aeb@REFstar} + {\let\isREFstar\eq@Zero\aeb@REF}} +\def\aeb@REFstar#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} + {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% + \else\ref*{#1}\fi}% +} +\def\aeb@REF#1{\@ifundefined{r@#1}{\hbox{\reset@font\bfseries ??}} + {\ifaebshowgrayletters\aeb@buildUpperCaseRef{#1}% + \else\ref{#1}\fi}% +} +\def\aeb@buildUpperCaseRef#1{% + \xdef\tmp@expand{\aeb@exiii\@firstoffive\csname r@#1\endcsname}% + \xdef\tmp@expand{\uppercase{\tmp@expand}}% + \if\isREFstar\eq@One\tmp@expand\else\hyperref[#1]{\tmp@expand}\fi +} +\newif\ifaeb@usecircles\aeb@usecirclesfalse +\let\insert@circlesymbol\@empty +\def\useMCCircles{\useForms + \ifaeb@usecircles\else + \global\aeb@usecirclestrue + \gdef\insert@circlesymbol{\symbolchoice{circle}}% + \fi +} +\def\useMCRects{\useForms + \ifaeb@usecircles\global\aeb@usecirclesfalse + \global\let\insert@circlesymbol\@empty + \fi +} +\let\useMCCRects\useMCRects +\let\oqpriorhook\@empty +\newenvironment{oQuestion}[1]{% + \let\@currentQues\@empty + \xdef\eq@pageThisQ{\the\c@page}% + \global\let\eqQzQuesList\@empty + \xdef\oField{#1}\xdef\curr@quiz{#1}\xdef\currQuiz{#1}% + \g@addto@macro\ListOfSQuizNames{,#1}\let\@qzsolndest\@empty + \let\eqQuizType\isSQZ\gdef\eqPTs{1}\global\let\eqQT\eq@na + \let\answers\answers@sq + \let\endanswers\endanswers@sq + \let\manswers\manswers@sq + \let\endmanswers\endmanswers@sq + \let\solution\solution@sq + \let\endsolution\endsolution@sq + \noindent\oqpriorhook\sq@IDTxtField\ifx\aebTitleQuiz\@empty + \else\aebtitleQuiz\fi\ignorespaces +}{% + \global\let\aebtitleQuiz\@empty + \global\let\aebTitleQuiz\@empty + \global\let\eq@tq@star\relax + \aftergroup\ignorespaces +} +\def\oSolution#1{\edef\@qzsolndest{#1}} +\def\replaceExclPt#1{\def\replaceexclaim{#1}} +\replaceExclPt{false} +\def\negPointsAllowed{\def\negpointsallowed{true}} +\@onlypreamble{\negPointsAllowed} +\def\negpointsallowed{false} +\def\negPointsMarkupAllowed{\def\negpointsmarkupallowed{true}} +\def\negpointsmarkupallowed{false} +\@onlypreamble{\negPointsMarkupAllowed} +\def\requireAlertBox{\def\bcheckboxused{false}} +\def\allowNoAlertBox{\def\bcheckboxused{true}} +\allowNoAlertBox +\newcommand\RespBoxNT{\RespBoxMath} +\newcommand\RespBox{\RespBoxMath} +\newcommand\RespBoxMath{\def\rbFlag{0}\begingroup\Hy@unicodefalse + \@makeother\^\@makeother\&\@RespBox} +\def\eq@rpl#1#2{_rplVarsBy('#1','#2')@} % dps17 +\ifnum\eq@drivernum=0\def\RorRT{\r\t}\else\def\RorRT{\r}\fi +\def\toAltApprCnt{0}\def\toAltApprVar{_toAltAppr\toAltApprCnt} +\def\toAltApprCntInc{{\@tempcnta=\toAltApprCnt\relax + \advance\@tempcnta1\relax + \xdef\toAltApprCnt{\the\@tempcnta}}} +\def\setCoreInitAltAppr{% +var\eqSP_substVars=\indepVars;\RorRT +var\eqSP_mathVars=processMathVars(_substVars);\RorRT +var\eqSP_substValue=getSubstValue(_substVars,event.value);\RorRT + event.value=RespBoxAppr(event);\RorRT + getSubstValue.aSubsts=[];% +} +\def\bInitAltAppr{\ifShowAppr + \def\ShowApprSAVE{true}\toAltApprCntInc\ShowApprfalse + \def\eqAddAAFormat{\ifnum\eq@drivernum=0try\eqLBr\RorRT\fi + \setCoreInitAltAppr\ifnum\eq@drivernum=0 \r\eqRBr catch(e){\RorRT + var\eqSP\toAltApprVar=% + app.setTimeOut('this.resetForm("'+event.target.name+'");% + app.clearTimeOut(\toAltApprVar);',250);\r}\fi}\else + \def\ShowApprSAVE{false}\fi +} +\def\eInitAltAppr{\@nameuse{ShowAppr\ShowApprSAVE}% + \ifShowAppr\altApprOn\let\eqAddAAFormat\@empty\fi} +\def\AAKqRespBoxMath{% + if(event.willCommit){\r\t + RecordPointValue(\eqPTs,\thequestionno\ifx\grpquestions1,% +\thegrpquestionno,\grpPointValue,\grpTotalWeight,% +"\grpEvalFunction"\fi);\r\t + RecordProblemType("\eqQT",\thequestionno);\r\t +\ifSubstVars % dps17 + var\eqSP_substVars=\indepVars;\r\t + var\eqSP_mathVars=processMathVars(_substVars);\r\t + var\eqSP_substValue=getSubstValue(_substVars,event.value);\r\t + var\eqSP_substAns=getSubstValue(_substVars,"\eqCorrectAns");\r\t + var\eqSP retn=\processJSfunc(\rbArgs,% + \compareJSfunc,_substValue);\r\t +\else + var\eqSP_mathVars=\indepVars;\r\t + var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc);\r\t +\fi + ProcUserResp(retn,event.value,\thequestionno,% +0\ifx\grpquestions1,\thegrpquestionno\fi);\r + }\r + if (!isQuizInitialized("\currQuiz")) {\r\t + \eqObjAlert\space eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t + event.rc = false;\r + } +} +\def\RespBoxMathDefaults +{% + \BC{0 0 0}\S{S}\textColor{0 g}\F{\FPrint}\W{1} +} +\def\moreRespBoxMathDefaults +{% + \edef\@moreRespBoxMathDefaults{% + \if\eqQuizType\isQZ\ifx\eq@online\eq@YES + \ifeq@noquizsolutions + \else\noexpand\Ff{\FfReadOnly}\fi\fi\fi + }% +} +\let\eqAddAAFormat\@empty +\def\eqSP{\string\040} % dps17 +\def\eqLBr{\string\173} +\def\eqRBr{\string\175} +\def\@@RespBoxMathActions{% + \AA{\if\eqQuizType\isQZ + \AAKeystroke{\AAKqRespBoxMath\eqAddAAKeystroke} + \AAFormat{\ifShowAppr\ifSubstVars\ifarrowDelim % dps17 + try{event.value=RespBoxAppr(event);}catch(e){}\r + \fi\fi\fi\eqAddAAFormat} + \else + \AAKeystroke{if(event.willCommit) {\r\t +\ifSubstVars% + var\eqSP_substVars=\indepVars;\r\t + var\eqSP_mathVars=processMathVars(_substVars);\r\t + var\eqSP_substValue=getSubstValue(_substVars,event.value);\r\t + var\eqSP_substAns=getSubstValue(_substVars,"\eqCorrectAns");\r\t + var\eqSP retn=\processJSfunc(\rbArgs,% + \compareJSfunc,_substValue);\r\t +\else + var\eqSP_mathVars=\indepVars;\r\t + var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc); +\fi +\if\@sqTurnOffAlerts1\r\t + OnBlurRespBox(retn,"\curr@quiz"); +\fi + \eqAddAAKeystroke\r + }} + \AAFormat{\ifShowAppr\ifSubstVars\ifarrowDelim % dps17 + try{event.value=RespBoxAppr(event);}catch(e){}\r\fi\fi\fi + \eqAddAAFormat}% + \AAOnFocus{\JS{var retn = null;}}% + \AAOnBlur{\JS{OnBlurRespBox(null,"\curr@quiz");}}% +\fi + } +} +\def\annot@subtype@rbm{rbm} +\newcommand\@RespBox[1][] +{% + \edef\annot@subtype{\annot@subtype@rbm}% + \eq@AddProbToQzQuesList + \smallskip\ifx\grpquestions\eq@Zero + \addtocounter{eqpointvalue}{\eqPTs}\fi + \if\eqQuizType\isQZ + \def\rbFlag{1}\global\IsRespBoxtrue + \ifx\grpquestions\eq@One + \stepcounter{grpquestionno}% + \def\Fld@name{% + grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% + \else + \eq@recordThesePTs\eq@recordProbType + \edef\eqtmp{\aPointType}% + \xdef\aPointType{\eqtmp,[\eqPTs,"math"]}% + \stepcounter{questionno}% + \def\Fld@name{obj.\curr@quiz.\thequestionno}% + \fi + \else % shortquiz + \ifx\grpquestions\eq@One + \stepcounter{grpquestionno}% + \def\Fld@name{% + grpobj.\oField.\thequestionno.\thegrpquestionno}% + \else + \stepcounter{questionno}% + \def\Fld@name{% + obj.\oField.\thequestionno}% + \fi + \fi + \let\Array\aeb@array + \moreRespBoxMathDefaults + \leavevmode\hbox\bgroup\let\rpl\eq@rpl + \text@@Field{#1}{\Fld@name}% + {\RBW}{\DefaultHeightOfWidget}% + {\eq@protect\AA}{\eq@setWidgetProps\eq@RespBox}% + {\RespBoxMathDefaults\@moreRespBoxMathDefaults + \@@RespBoxMathActions\every@eqTextField\every@RespBoxMath}% +} +\def\eq@RespBox#1{\pdfstringdef\eqCorrectAns{#1}% + \gdef\eqCorrectAnsTeX{#1}\if\grpquestions\eq@Zero + \ifwithinMCFI\gdef\s@veCorrAnsMCFI{"#1"}\fi + \else + \eq@recordGrpAnsArray{"#1"}\fi + \@ifnextchar({\@eq@RespBox{#1}}{\@eq@RespBox{#1}(x)}} +\def\@eq@RespBox#1(#2){\@ifnextchar[{\@eq@RespB@x{#1}(#2)}% + {\@ifstar{\@eq@RespB@x{#1}(#2)[\curr@quiz.\thequestionno]}% + {\@eq@RespB@x{#1}(#2)[]}}} +\def\eq@ZERO{0} +\def\defaultRDPrecision#1{\def\eq@defaultRDPrecision{#1}} +\defaultRDPrecision{1E-14} +\newif\ifarrowDelim\arrowDelimfalse % dps17 +\def\rpl@#1#2{\rpl@i#1->\@nil} +\def\rpl@i#1->#2\@nil{\def\argii{#2}\ifx\argii\@empty\else + \global\arrowDelimtrue\fi} +\def\GiiRpli#1{\global\arrowDelimfalse\GiiRplii#1\rpl{}{}\@nil} +\def\GiiRplii#1\rpl#2#3#4\@nil{\def\argiv{#4}% + \ifx\argiv\@empty\let\eq@next\relax\else + \rpl@{#2}{#3}\ifarrowDelim\let\eq@next\relax\else + \def\eq@next{\GiiRplii#4\@nil}\fi\fi + \eq@next} +\def\isAltApprSpec#1{\bgroup\if\frstIsrpl\eq@YES\GiiRpli{#1}\else + \expandafter\GiiRpli\expandafter{#1}\fi\egroup} % dps17 +\def\isFrstrpl#1#2\@nil{\ifx#1\rpl\let\frstIsrpl\eq@YES\else + \let\frstIsrpl\eq@NO\fi} +\def\cntComm@s#1{\@tempcnta\z@\expandafter\cntComm@si#1,,\@nil} +\def\cntComm@si#1,#2,\@nil{\def\argii{#2}\ifx\argii\@empty + \def\eq@next{\edef\nC{\the\@tempcnta}}\else + \advance\@tempcnta\@ne\def\eq@next{\cntComm@si#2,\@nil}\fi + \eq@next}\def\eq@SC{;}\def\rplSofT#1#2{#2} +\def\cntVars#1{\let\rpl\rplSofT\edef\eV@rs{#1}\let\rpl\eq@rpl + \cntComm@s{\eV@rs}\ifnum\nC>\z@ + \@tempcnta\nC\relax\advance\@tempcnta\@ne + \xdef\nV{\the\@tempcnta}\else\@tempcnta\z@ + \expandafter\cntVarsi\eV@rs;\@nil\fi} + \def\cntVarsi#1#2\@nil{\def\argii{#2}% + \ifx\argii\eq@SC\def\eq@next{\advance\@tempcnta\@ne + \edef\nV{\the\@tempcnta}}\else\advance\@tempcnta\@ne + \def\eq@next{\cntVarsi#2\@nil}\fi + \eq@next} +\def\eq@X{x} +\def\eq@isThereRept#1{\let\eq@isRept\eq@Zero\expandafter + \eq@isThereRepti#1*\@nil} +\def\eq@isThereRepti#1*#2\@nil{\def\argii{#2}\ifx\argii\@empty + \let\eq@isRept\eq@Zero\else\let\eq@isRept\eq@One\fi} +\def\eq@obeyReptOfIntrvls#1{% + \expandafter\eq@isThereRept\expandafter{#1}% sets \eq@isRept + \if\eq@isRept\eq@Zero\relax\let\eq@interv@ls\@empty\expandafter + \g@addto@macro\expandafter\eq@interv@ls + \expandafter{#1}\let\eq@next\relax\else\let\eq@interv@ls\@gobble + \def\eq@next{\expandafter + \eq@obeyReptOfIntrvlsi#1x[]x\@nil}\fi\eq@next} +\def\eq@obeyReptOfIntrvlsi#1[#2]#3#4x#5\@nil{% + \def\argi{#2}\def\argii{#3}\def\argiv{#5}% + \ifx\argi\@empty\let\eq@next\relax\else + \ifx\argii\eq@X\g@addto@macro\eq@interv@ls{x[#2]}% + \def\eq@next{\eq@obeyReptOfIntrvlsi#4x#5x\@nil}\else + % repetition of an interval + \eq@ddtorepIntrvl{[#2]}{#4}% + \def\eq@next{\eq@obeyReptOfIntrvlsi#5x\@nil}\fi + \fi + \eq@next +} +\def\eq@ddtorepIntrvl#1#2{\@tempcnta=#2 \eq@ddtorepIntrvli{#1}{#2}} +\def\eq@ddtorepIntrvli#1#2{\@whilenum\@tempcnta>\z@\do + {\g@addto@macro\eq@interv@ls{x#1}\advance\@tempcnta\m@ne}} +\def\cntIv@ls#1{\@tempcnta\z@\expandafter\cntIv@lsi#1xxx\@nil}% +\def\cntIv@lsi#1x#2x\@nil{\def\argii{#2}\ifx\argii\eq@X + \advance\@tempcnta\@ne + \edef\nI{\the\@tempcnta}\let\eq@next\relax\else + \advance\@tempcnta\@ne\def\eq@next{\cntIv@lsi#2x\@nil}\fi +\eq@next} +\begingroup\@makeother\& +\gdef\eq@ProcIntrvls#1{\expandafter + \eq@ProcIntrvlsi#1&&\@nil} +\gdef\eq@ProcIntrvlsi#1\@nil{\def\argii{#2}% + \ifx\argii\@empty + \eq@obeyReptOfIntrvls{#1}% + \cntIv@ls{\eq@interv@ls}% + \else + \eq@obeyReptOfIntrvls{#1}% + \edef\interv@ls{\eq@interv@ls}% + \cntIv@ls{\eq@interv@ls}% + \eq@obeyReptOfIntrvls{#2}% + \edef\eq@interv@ls{\interv@ls&\eq@interv@ls}% + \fi +} +\endgroup +\def\@eq@RespB@x#1(#2)[#3]#4#5#6{\xdef\@qzsolndest{#3}% dps17 + \gdef\indepVars{"#2"}\isFrstrpl#2\@nil\if\frstIsrpl\eq@YES + \def\@IVi{#2}\else\expandafter\def\expandafter + \@IVi\expandafter{#2}\fi\edef\@IVii{#2}\ifx\@IVi\@IVii + \global\SubstVarsfalse\else\global\SubstVarstrue + \isAltApprSpec{#2}\fi + \cntVars{#2}\def\eq@precision{#5}% + \ifx\eq@precision\eq@ZERO + \def\eq@defaultCompare{reldiffCompare}% + \def\rbArgstmp{\rbFlag,% dps17 + \ifSubstVars_substAns\else"#1"\fi,#4,% + \eq@defaultRDPrecision}\else + \def\eq@defaultCompare{diffCompare}% + \def\rbArgstmp{\rbFlag,% dps17 + \ifSubstVars_substAns\else"#1"\fi,#4,#5}\fi + \edef\eq@ixparam{#6}\expandafter\eq@chkivIntrvls\eq@ixparam\\% +} +\def\viidna{[0,1]} +\def\eq@chkivIntrvls{\@ifnextchar[{\eq@chkivIntrvlsi}% + {\eq@chkivIntrvlsii}} +\def\eq@chkivIntrvlsi#1\\{\eq@ProcIntrvls{#1}% + \def\rbArgs{\rbArgstmp,"\eq@interv@ls",_mathVars}% dps17 + \@ifnextchar[{\@eq@@RespBox[ \expandafter\@gobble}% + {\@eq@@RespBox[\eq@defaultCompare]}% +} +\def\eq@chkivIntrvlsii#1\\#2{\def\nI{1}% + \def\rbArgs{\rbArgstmp,"[#1,#2]",_mathVars}% + \@ifnextchar[{\@eq@@RespBox}{\@eq@@RespBox[\eq@defaultCompare]}% +} +\def\@eq@@RespBox[#1]{\@ifstar{\jsRespBox[#1]}% + {\jsRespBox[#1]{ProcResp}}} +\def\eq@ProcRespIntervals{ProcRespIntervals} +\def\eq@ProcRespSetNum{ProcRespSetNum} +\def\eq@ProcRespSetSym{ProcRespSetSym} +\def\eq@ProcRespEvalEq{ProcRespEvalEq} +\def\eq@ProcRespEvalEqNonZero{ProcRespEvalEqNonZero} +\def\eq@ProcRespEvalEqList{ProcRespEvalEqList} +\def\eq@ProcRespEvalEqListNonZero{ProcRespEvalEqListNonZero} +\def\jsRespBox[#1]#2{\def\compareJSfunc{#1}% + \def\processJSfunc{#2}\gdef\g@processJSfunc{#2}% 01/11 + \ifnum\nV=\nI\relax\else + \ifx\processJSfunc\eq@ProcRespSetNum\else + \ifx\processJSfunc\eq@ProcRespSetSym\else + \ifx\processJSfunc\eq@ProcRespEvalEq\else + \ifx\processJSfunc\eq@ProcRespEvalEqNonZero\else + \ifx\processJSfunc\eq@ProcRespEvalEqList\else + \ifx\processJSfunc\eq@ProcRespEvalEqListNonZero\else + \PackageWarning{exerquiz}{The number of variables does not + match\MessageBreak the number of intervals. The + problem\MessageBreak may not evaluate properly}\fi\fi\fi\fi\fi\fi\fi + \ifx\eq@ProcRespIntervals\g@processJSfunc + \let\@inmathwarn@SAVE\@inmathwarn\let\@inmathwarn\@gobble + \pdfstringdef{\eqCorrectAns}{\eqCorrectAns}% + \let\@inmathwarn\@inmathwarn@SAVE\fi +\ifx\grpquestions\eq@Zero + \eq@recordCorrAns{"\eqCorrectAns"}% 2018/03/18 +\fi + \ifeq@proofing\makebox[0pt][l]{\space\math@correctAnswer}\fi + \eq@TextField % send to the driver-dependent macro + \egroup % hbox + \endgroup % \RespBoxMath +} +\def\gobbleMacro#1>{} +\gdef\math@correctAnswer{\ttfamily + \color{\@proofingsymbolColor}\spaceskip=2pt\xspaceskip=2pt% + \expandafter\gobbleMacro\meaning\eqCorrectAnsTeX +} +\newcommand\RespBoxTxtNT{\def\rbFlag{0}\@RespBoxTxt} +\newcommand\RespBoxTxt{\def\rbFlag{0}\@RespBoxTxt} +\def\RespBoxTxtOnBlur{OnBlurRespBox(% + \if\@sqTurnOffAlerts1retn\else null\fi,"\curr@quiz");} +\def\eqObjAlert{% + \ifx\eqQuizType\isQZ\ifx\eq@online\eq@YES\ifeq@noquizsolutions + \else if (false)\fi\fi\fi} +\begin{defineJS}[% + \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxt} +if(event.willCommit){ + RecordPointValue(@eqPTs,@thequestionno@ifx@grpquestions1,% +@thegrpquestionno,@grpPointValue,@grpTotalWeight,% +"@grpEvalFunction"@fi); + RecordProblemType("@eqQT",@thequestionno); + var retn = ProcRespTxt(@rbTxtAlt); + ProcUserResp(retn,event.value,@thequestionno,% +0@ifx@grpquestions1,@thegrpquestionno@fi); +} +if (!isQuizInitialized("@currQuiz")) { + @eqObjAlert@space eqAppAlert(InitMsg("@bqlabelISO"),3); + event.rc = false; +} +\end{defineJS} +\def\RespBoxTxtDefaults +{% + \BC{0 0 0}\W{1}\S{S}\textColor{0 g}\F{\FPrint}% +} +\def\moreRespBoxTxtDefaults +{% + \edef\@moreRespBoxTxtDefaults{% + \if\eqQuizType\isQZ\ifx\eq@online\eq@YES + \ifeq@noquizsolutions\else + \noexpand\Ff{\FfReadOnly}\fi\fi\fi + }% +} +\def\@@RespBoxTxtActions +{% + \AA{\if\eqQuizType\isQZ + \AAKeystroke{\AAKqRespBoxTxt\eqAddAAKeystroke} + \AAFormat{\eqAddAAFormat} + \else + \AAKeystroke{% + if(event.willCommit) {\r\t + retn = ProcRespTxt(\rbTxtAlt);\r +\if\@sqTurnOffAlerts1 + \t\RespBoxTxtOnBlur\r +\fi + \eqAddAAKeystroke\r + }% + } + \AAFormat{\eqAddAAFormat} + \AAOnFocus{\JS{var retn = null;}} +\if\@sqTurnOffAlerts0 + \AAOnBlur{\JS{\RespBoxTxtOnBlur}}% +\fi + \fi + } +} +\def\annot@subtype@rbt{rbt} +\newcommand\@RespBoxTxt[1][] +{% + \edef\annot@subtype{\annot@subtype@rbt}% + \eq@AddProbToQzQuesList + \ifx\grpquestions\eq@Zero\addtocounter{eqpointvalue}{\eqPTs}\fi + \if\eqQuizType\isQZ + \def\rbFlag{1}\global\IsRespBoxtrue + \ifx\grpquestions\eq@One + \stepcounter{grpquestionno}% + \def\Fld@name{% + grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% + \else + \eq@recordThesePTs\eq@recordProbType + \edef\eqtmp{\aPointType}% + \xdef\aPointType{\eqtmp,[\eqPTs,"text"]}% + \stepcounter{questionno}% + \def\Fld@name{obj.\curr@quiz.\thequestionno}% + \fi + \else + \stepcounter{questionno}% + \def\Fld@name{obj.\oField.\thequestionno}% + \fi + \moreRespBoxTxtDefaults + \leavevmode\hbox\bgroup\text@@Field{#1}{\Fld@name}% + {\RBW}{\DefaultHeightOfWidget}% + {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxTxt}% + {\RespBoxTxtDefaults\@moreRespBoxTxtDefaults + \@@RespBoxTxtActions\every@eqTextField\every@RespBoxTxt}% +} +\def\@@RespBoxTxt#1#2{% + \@ifnextchar[{\@@@RespBoxTxt{#1}{#2}} + {\@ifstar{\@@@RespBoxTxt{#1}{#2}[\curr@quiz.\thequestionno]}% + {\@@@RespBoxTxt{#1}{#2}[]}}} +\def\eq@ZERO{0}\def\eq@ONE{1}\def\eq@TWO{2} +\def\@@@RespBoxTxt#1#2[#3]#4{% + \xdef\@qzsolndest{#3}% + \def\eq@argi{#1}\ifx\eq@argi\eq@ZERO\else + \ifx\eq@argi\eq@ONE\else\ifx\eq@argi\eq@TWO\else + \def\eq@argi{-1}\fi\fi\fi + \def\eq@argii{#2}\ifx\eq@argii\eq@ONE\else\def\eq@argii{0}\fi + \begingroup + \ifnum\eq@argii=1\relax + \def\rexpStr##1{\eqbs\eqbs\eqbs\eqbs##1}% + \def\\##1{\eqbs\eqbs\eqbs\eqbs##1}% + \def\word##1{\\b##1\\b}\def\any{@any@}\fi + \xdef\rbTxtAlt{\rbFlag,\eq@argi,\eq@argii}% + \global\let\txtAltList\@empty + \count0=#4 \ifnum\count0 > 0 \expandafter\@argRead\else + \PackageError{exerquiz}{% + The fourth required parameter of \string\RespBoxTxt\MessageBreak + is required to be a positive integer. You entered\MessageBreak + #4\space instead}{Enter a positive integer.}\fi +} +\def\@argRead#1{\xdef\jsTempArgs{\txtAltList}% + \ifx\txtAltList\@empty\xdef\txtAltList{"#1"}\else + \xdef\txtAltList{\jsTempArgs,"#1"}\fi\@@argRead} +\def\@@argRead{\advance\count0 by-1\relax + \ifnum\count0=0\relax + \def\eq@next{\endgroup + \xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}% + \if\grpquestions\eq@Zero + \ifwithinMCFI + \xdef\s@veCorrAnsMCFI{[\txtAltList]}\else + \eq@recordCorrAns{[\txtAltList]}\fi + \else + \eq@recordGrpAnsArray{[\txtAltList]}% + \fi + \eq@@RespBoxTxt + }% + \else + \def\eq@next{\@argRead}% + \fi\eq@next +} +\def\eq@@RespBoxTxt{% + \ifeq@proofing\makebox[0pt][l]{\space\txt@correctAnswer}\fi + \eq@TextField + \egroup +} +\def\gobbleTxt#1>#2,#3,#4,{} +\gdef\txt@correctAnswer{\ttfamily\color{\@proofingsymbolColor}% + \spaceskip=2pt\xspaceskip=2pt + \expandafter\gobbleTxt\meaning\rbTxtAlt +} +\begin{defineJS}[% + \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxtPC} +if(event.willCommit){ + RecordPointValue(@eqPTs,@thequestionno@ifx@grpquestions1,% +@thegrpquestionno,@grpPointValue,@grpTotalWeight,% +"@grpEvalFunction"@fi); + RecordProblemType("@eqQT",@thequestionno); + var retn = ProcRespTxtPC(@rbTxtAlt); +@ifx@grpquestions1% + ProbValue[@thequestionno][3+@thegrpquestionno]% +=ProcRespTxtPC.txtPCpCr;@else% + ProbValue[@thequestionno]=ProcRespTxtPC.txtPCpCr;@fi + ProcUserResp(retn,event.value,@thequestionno,0% +@ifx@grpquestions1,@thegrpquestionno@fi); +} +if (!isQuizInitialized("@currQuiz")) { + @eqObjAlert@space eqAppAlert(InitMsg("@bqlabelISO"),3); + event.rc = false; +} +\end{defineJS} +\def\@@RespBoxTxtPCActions +{% + \AA{\if\eqQuizType\isQZ + \AAKeystroke{\AAKqRespBoxTxtPC} + \else + \AAKeystroke{% + if(event.willCommit) {\r\t + retn = ProcRespTxtPC(\rbTxtAlt);\r +\if\@sqTurnOffAlerts1% + \t\RespBoxTxtOnBlur\r +\fi + }% + } + \AAOnFocus{\JS{var retn = null;}} +\if\@sqTurnOffAlerts0% + \AAOnBlur{\JS{\RespBoxTxtOnBlur}}% +\fi + \fi + } +} +\newcommand{\RespBoxTxtPC}{\def\rbFlag{0}\@RespBoxTxtPC} +\def\annot@subtype@rbtpc{rbtpc} +\newcommand\@RespBoxTxtPC[1][] +{% + \edef\annot@subtype{\annot@subtype@rbtpc}% + \eq@AddProbToQzQuesList + \smallskip\ifx\grpquestions\eq@Zero + \addtocounter{eqpointvalue}{\eqPTs}\fi + \if\eqQuizType\isQZ\def\rbFlag{1}\global\IsRespBoxtrue + \ifx\grpquestions\eq@One + \stepcounter{grpquestionno}% + \def\Fld@name{% + grpobj.\curr@quiz.\thequestionno.\thegrpquestionno}% + \else + \eq@recordThesePTs\eq@recordProbType + \edef\eqtmp{\aPointType}% + \xdef\aPointType{\eqtmp,[\eqPTs,"text"]}% + \stepcounter{questionno}% + \def\Fld@name{obj.\curr@quiz.\thequestionno}% + \fi + \else + \stepcounter{questionno}% + \def\Fld@name{obj.\oField.\thequestionno}% + \fi + \moreRespBoxTxtDefaults + \leavevmode\hbox\bgroup\text@@Field{#1}{\Fld@name}% + {\RBW}{\DefaultHeightOfWidget}% + {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxTxtPC}% + {\RespBoxTxtDefaults\@moreRespBoxTxtDefaults + \@@RespBoxTxtPCActions\every@eqTextField\every@RespBoxTxt}% +} +\def\@@RespBoxTxtPC#1{\@ifnextchar[{\@@@RespBoxTxtPC{#1}} + {\@ifstar{\@@@RespBoxTxtPC{#1}[\curr@quiz.\thequestionno]}% + {\@@@RespBoxTxtPC{#1}[]}}} +\def\@@@RespBoxTxtPC#1[#2]#3{\xdef\@qzsolndest{#2}% + \begingroup + \def\rexpStr##1{\eqbs\eqbs\eqbs\eqbs##1}% + \def\\##1{\eqbs\eqbs\eqbs\eqbs##1}% + \def\word##1{\\b##1\\b}\def\any{@any@} + \gdef\rbTxtAlt{\rbFlag,#1,1}% force sub-string match + \global\let\txtAltList\@empty + \count0=#3 \ifnum\count0>0 \expandafter\@argReadPC\else + \PackageError{exerquiz}{% + The third required parameter of + \string\RespBoxTxtPC\MessageBreak + is required to be a positive integer. + You entered\MessageBreak #3\space instead} + {Enter a positive integer.}\fi +} +\newcommand\@argReadPC[2][0]{\xdef\jsTempArgs{\txtAltList}% + \ifx\txtAltList\@empty\xdef\txtAltList{["#2",#1]}\else + \xdef\txtAltList{\jsTempArgs,["#2",#1]}\fi\@@argReadPC} +\def\@@argReadPC{\advance\count0 by-1\relax + \ifnum\count0=0\relax + \def\eq@next{\endgroup + \xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}% + \if\grpquestions\eq@Zero + \ifwithinMCFI + \xdef\s@veCorrAnsFCFI{[\txtAltList]}\else + \eq@recordCorrAns{[\txtAltList]}\fi + \else + \eq@recordGrpAnsArray{[\txtAltList]}% + \fi + \eq@@RespBoxTxtPC + }% + \else + \def\eq@next{\@argReadPC}% + \fi\eq@next +} +\def\eq@@RespBoxTxtPC{% + \ifeq@proofing\makebox[0pt][l]{\space\txt@correctAnswer}\fi + \eq@TextField + \egroup +} +\def\RespBoxEssayDefaults +{% + \BC{0 0 0}\W{1}\S{S}\Ff{\FfMultiline}\rawPDF{}% +} +\def\@@RespBoxEssayActions +{% + \AA{\if\eqQuizType\isQZ + \AAKeystroke{% + if(event.willCommit){\jsR\jsT + RecordPointValue(\eqPTs,\thequestionno);\jsR\jsT + RecordProblemType("\eqQT",\thequestionno);\jsR\jsT + }\jsR + if (!isQuizInitialized("\curr@quiz")) {\jsR\jsT + @eqObjAlert\space eqAppAlert(% + InitMsg("\bqlabelISO"),3);\jsR\jsT + event.rc = false;\jsR + }% + }% + \fi + } +} +\newcommand\RespBoxEssay[3][] +{% + \smallskip\addtocounter{eqpointvalue}{\eqPTs}% + \stepcounter{questionno}% + \mbox{\text@@Field{#1}{essay.\curr@quiz.\thequestionno}{#2}{#3}% + \edef\eqtmp{\aPointType}\xdef\aPointType{\eqtmp,[\eqPTs,"essay"]}% + {\eq@protect\AA}{\eq@setWidgetProps\@@RespBoxEssayActions + \eq@TextField}{\RespBoxEssayDefaults\every@eqTextField}}% +} +\let\@@sqTallyBoxActions\@empty +\@ifundefined{calcOrder}{% +\ifpdf\def\@@sqTallyBoxActions{% + \AA{\AAValidate{getTotalTally("\oField");}}}\fi}{} +\def\sqTallyBoxDefaults +{% + \BC{0 0 0}\W{1}\textColor{1 0 0 rg}\S{I}\Q{2}\Ff{\FfReadOnly} +} +\ifpdf\def\@@sqTallyBoxActions{% + \AA{\AAValidate{getTotalTally("\oField");}}}\else + \let\@@sqTallyBoxActions\@empty +\fi +\newcommand\sqTallyBox[1][] +{% + \mbox{\text@@Field{#1}{tally.\oField.\thequestionno}% + {\TBW}{\DefaultHeightOfWidget}% + {}{\eq@setWidgetProps\eq@TextField}% + {\sqTallyBoxDefaults\@@sqTallyBoxActions\every@eqTextField + \every@sqTallyBox}}% +} +\def\sqTallyTotalDefaults +{% + \rawPDF{}\W{1}\BC{0 0 0}\S{I}\textColor{1 0 0 rg}% + \Q{2}\Ff{\FfReadOnly}% +} +\def\@@sqTallyTotalActions +{% + \AA{% + \AAKeystroke{AFNumber_Keystroke(0,0,0,0,"",true);} + \AAFormat{AFNumber_Format(0,0,0,0,"",true);} + \AACalculate{% + AFSimple_Calculate("SUM",new Array("tally.\oField")); + }} +} +\newcommand\sqTallyTotal[1][] +{% + \mbox{\text@@Field{#1}{tallytotal.\oField}{\TBW}% + {\DefaultHeightOfWidget}{\eq@protect\AA}% + {\eq@setWidgetProps\eq@TextField}% + {\sqTallyTotalDefaults\@@sqTallyTotalActions\every@eqTextField + \every@sqTallyTotal}}% +} +\def\CorrAnsButtonDefaults +{% + \CA{\eq@local@CorrAnsButton}\W{1}\S{S} + \BC{0 0 0}\BG{.7529 .7529 .7529}\H{P} +} +\def\normalCABtnBC{0 0 0} +\def\qCorrAnsButtonActionHook{\JS{% +\ifx\@qzsolndest\@empty\else + if (event.shift)\jsR\jsT + this.gotoNamedDest("\@qzsolndest");\jsR + else {\jsR\jsT\fi +\ifShowAppr % dps17 + \ifarrowDelim + if (typeof event.target.appr=="undefined")\r\JST\t + event.target.appr=false;\r\JST + event.target.appr=!event.target.appr;\r\JST + if (event.target.appr) {\r\t\JST + var _substVars=\indepVars;\r\t\JST + var _substAns=getSubstValue(_substVars,"\CorrectAns");\r\t\JST + var value=RespBoxAppr("\CorrectAns");\r\JST + } else value="\CorrectAns";\r\JST + \else + value="\CorrectAns";\r\JST + \fi +\else + value="\CorrectAns";\r\JST +\fi + \processJSfunc("Ans.\curr@quiz",value,\currQuiz);\r +\ifx\@qzsolndest\@empty\else % dps17 + }\fi +}} + \def\sqCorrAnsButtonActionHook + {% + \JS{% + \ifx\@qzsolndest\@empty\else + if (event.shift)\jsR\jsT + this.gotoNamedDest("\@qzsolndest");\jsR + else\jsR\jsT + \fi + \processJSfunc("obj.\oField.\thequestionno","\CorrectAns",% +\currQuiz); + }% + } +\newcommand\CorrAnsButton[1][]{\eq@@CorrAnsButton{#1}} +\def\eq@@CorrAnsButton#1#2{\bgroup\makeJSspecials % 1/12 + \@ifstar{\eq@@@CorrAnsButton{#1}{#2}}{% + \eq@@@CorrAnsButton{#1}{#2}{DisplayAnswer}}% +} +\def\eq@@@CorrAnsButton#1#2#3{\gdef\CorrectAns{#2}% + \def\processJSfunc{#3}\ifx\@qzsolndest\@empty\let\JST\@empty\else + \let\JST\jsT\fi % dps17 + \ifx\eq@ProcRespIntervals\g@processJSfunc % 01/11 + \let\@inmathwarn@SAVE\@inmathwarn\let\@inmathwarn\@gobble + \pdfstringdef{\CorrectAns}{\CorrectAns}% + \let\@inmathwarn\@inmathwarn@SAVE\fi + \if\eqQuizType\isQZ\def\Fld@name{corr.\curr@quiz.\thequestionno}% + \else\def\Fld@name{corr.\oField.\thequestionno}\fi + \if\eqQuizType\isQZ + \edef\@@CorrAnsButtonActions{\noexpand\F{\FHidden}% + \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC}% + \else\noexpand\BC{\solution@Color}\fi + \noexpand\A{\noexpand\qCorrAnsButtonActionHook}}% + \ifeq@noquizsolutions\else % dps17 (\let\rpl\eq@rpl) + \mbox{\let\rpl\eq@rpl + \push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\CorrAnsButtonDefaults\@@CorrAnsButtonActions + \every@ButtonField\every@CorrAnsButton}}% + \fi + \else + \edef\@@CorrAnsButtonActions{% + \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} + \else\noexpand\BC{\solution@Color}\fi + \noexpand\A{\noexpand\sqCorrAnsButtonActionHook}}% + \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\CorrAnsButtonDefaults\@@CorrAnsButtonActions + \every@ButtonField\every@CorrAnsButton}}% + \fi + \egroup +} +\def\sqClearButtonDefaults +{% + \CA{\eq@local@sqClearButton}\textColor{0 g}\F{\FPrint} + \BC{0 0 0}\BG{.7529 .7529 .7529}\W{1}\S{B}\Ff{\FfNoExport} +} +\def\@@sqClearButtonActions +{% + \A{\JS{ProcessIt = false;\jsR + if ( typeof \oField\space== "undefined" )\jsR\jsT + \oField\space= new Object;\jsR + if (typeof appAlerts["\oField"] == "undefined")\jsR\jsT + appAlerts["\oField"] = new Object;\jsR + this.resetForm(new Array("mc.\oField","obj.\oField",% + "tally.\oField","grpobj.\oField"));\jsR + var f = this.getField("obj.\oField");\jsR + if ( f != null ) f.strokeColor=\ifx\defaultColorJSLoc\@empty +\defaultColorJS\else\defaultColorJSLoc\fi;\jsR + f = this.getField("grpobj.\oField");\jsR + if ( f != null ) f.strokeColor=\ifx\defaultColorJSLoc\@empty +\defaultColorJS\else\defaultColorJSLoc\fi;\jsR + f = this.getField("rbmarkup.\oField");\jsR + if ( f != null ) f.display=display.hidden;\jsR + \oField.Grp = {};\jsR + appAlerts["\oField"].bAfterValue=false;\jsR + ProcessIt=true;}% + } +} +\newcommand\sqClearButton[1][] +{% + \mbox{\push@@Button{#1}{clear.\oField}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\sqClearButtonDefaults\@@sqClearButtonActions\every@ButtonField + \every@sqClearButton}}% +} +\def\PromptButtonDefaults +{% + \CA{\eq@local@CorrAnsButton}\W{1}\S{S}\BC{0 0 0} + \BG{.7529 .7529 .7529}\H{P} +} +\newcommand{\promptButtonMsg}{% + "Would you like to see the correct answer at this time? "\r\t\t + + "Your current answer will be the one that will be scored. "\r\t\t + + "If you click on \\"Yes\\", + you will not be able to change your answer." +} +\newcommand{\AnsPromptBtnStr}{Answer:\space} +\def\PromptButtonActionHook +{% + \JS{% + if (!isQuizInitialized("\currQuiz")) {\r\t + eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t + event.rc=false;\r + } else {\r\t + if ( !\currQuiz.oAlertCheck.bAfterValue ) {\r\t + var resp=eqAppAlert({\r\t\t + cMsg:\promptButtonMsg,\r\t\t + nIcon: 2, nType: 2,\r\t\t + cTitle: ("AcroTeX Prompt Message"),\r\t\t + oCheckbox: \currQuiz.oAlertCheck\r\t + });\r\t + }\r + if ( promptQuiz.oAlertCheck.bAfterValue || resp==4 )\r\t + {\r\t\t + var field=this.getField(% + "obj.\currQuiz.\thequestionno");\r\t\t + field.readonly=true;\r\t\t + field=this.getField("Ans.\currQuiz");\r\t\t + if (field!=null) + field.value = "\AnsPromptBtnStr\PromptAns";\r\t + }\r + } + }% +} +\newcommand\@PromptButton[2][] +{% + \def\PromptAns{#2}\if\eqQuizType\isQZ + \def\Fld@name{promptButton.\curr@quiz.\thequestionno}% + \else\def\Fld@name{promptButton.\oField.\thequestionno}\fi + \if\eqQuizType\isQZ + \def\@@PromptButtonActions{% + \A{\PromptButtonActionHook}}% + \mbox{\push@@Button{#1}{\Fld@name}{}% + {\DefaultHeightOfWidget}{\eq@protect\A}% + {\eq@setButtonProps\eq@Button@driver}% + {\PromptButtonDefaults\@@PromptButtonActions + \every@ButtonField\every@CorrAnsButton}}% + \else\PackageWarning{exerquiz}{The \string\PromptButton + is for quiz questions only.} + \fi +} +\newcommand{\PromptButton}{\makebox[0pt][r] % assumes xcolor + {\@PromptButton[\textColor{1 0 0 rg}]{\CorrectAns}}} +\let\eq@ansGrpArray\@empty +\def\eq@recordGrpAnsArray#1{% + \ifx\eq@ansGrpArray\@empty + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansGrpArray{#1}}\else + \edef\tmp@exp{\noexpand\g@addto@macro + \noexpand\eq@ansGrpArray{,#1}}\fi + \tmp@exp +} +\let\grpquestions\eq@Zero +\def\mathGrp{\global\let\eq@ansGrpArray\@empty + \@ifnextchar[{\@imathGrp}{\@imathGrp[groupEval]}} +\def\@imathGrp[#1]{\def\argi{#1}% + \@ifnextchar[{\@iimathGrp}{\@iimathGrp[]}} +\def\@iimathGrp[#1]{\def\argii{#1}% + \eq@AddProbToQzQuesList + \global\let\grpquestions\eq@One + \setcounter{grpquestionno}{0}% + \stepcounter{questionno}% + \xdef\beginGrp{\thequestionno}% + \xdef\grpPointValue{\eqPTs}% + \eq@recordThesePTs\eq@recordProbType + \if\eqQuizType\isQZ + \edef\eqtmp{\aPointType}% + \xdef\aPointType{\eqtmp,[\eqPTs,"grp"]}\fi + \addtocounter{eqpointvalue}{\eqPTs}% + \ifx\argii\@empty + \xdef\grpTotalWeight{\eqPTs}% + \xdef\grpEvalFunction{\argi}% + \else + \xdef\grpTotalWeight{\argi}% + \xdef\grpEvalFunction{\argii}% + \fi +} +\def\endmathGrp{\global\let\grpquestions\eq@Zero + \eq@recordCorrAns{[\eq@ansGrpArray]}% + \xdef\endGrp{\thequestionno}} +\def\CorrAnsButtonGrpDefaults +{% + \CA{\eq@local@CorrAnsButton}\W{1}\S{S}\BC{0 0 0} + \BG{.7529 .7529 .7529}\H{P} +} +\def\CorrAnsButtonGrpActionHook{\JS{% +\ifx\@qzsolndest\@empty\else + if (event.shift)\jsR\jsT + this.gotoNamedDest("\@qzsolndest");\jsR + else\jsR +\fi + {\jsR\jsT + var aCorrectAns=\CorrectAns;\jsR\jsT + var beginGrp = 1;\jsR\jsT + grpOffset = beginGrp;\jsR\jsT + if ( \currQuiz.Grp==null ) \currQuiz.Grp = {};\jsR\jsT + if (typeof \currQuiz.Grp["\thequestionno"]=="undefined")\jsR\jsT + {\jsR\jsT\jsT + \currQuiz.Grp["\thequestionno"] = {offset: 0};\jsR\jsT\jsT + var f = this.getField(% + "grpobj.\curr@quiz.\thequestionno." + + grpOffset)\jsR\jsT\jsT + if ( f.readonly ) {\jsR\jsT\jsT + f.readonly = false;\jsR\jsT\jsT + f.setFocus();\jsR\jsT\jsT + eqDelay = app.setTimeOut(% + "f.readonly = true; + app.clearTimeOut(eqDelay);",10);\jsR\jsT + } else f.setFocus();\jsR\jsT + }\jsR\jsT + else \jsR\jsT + {\jsR\jsT\jsT + \currQuiz.Grp["\thequestionno"].offset = + ++\currQuiz.Grp["\thequestionno"].offset + \% aCorrectAns.length;\jsR\jsT\jsT + grpOffset = beginGrp + + \currQuiz.Grp["\thequestionno"].offset;\jsR\jsT\jsT + var f = this.getField("grpobj.\curr@quiz.\thequestionno." + + grpOffset);\jsR\jsT\jsT + if ( f.readonly ) {\jsR\jsT\jsT + f.readonly = false;\jsR\jsT\jsT + f.setFocus();\jsR\jsT\jsT + eqDelay = app.setTimeOut("f.readonly = true; + app.clearTimeOut(eqDelay);",10);\jsR\jsT + } else f.setFocus();\jsR\jsT + }\jsR\jsT +\if\eqQuizType\isQZ + DisplayAnswer("Ans.\curr@quiz", + aCorrectAns[\currQuiz.Grp["\thequestionno"].offset],% +\currQuiz); +\else + DisplayAnswer("grpobj.\oField.\thequestionno."+ grpOffset, + aCorrectAns[\currQuiz.Grp["\thequestionno"].offset],% +\oField);\jsR +\fi + } +}} +\newcommand\CorrAnsButtonGrp[2][] +{% + \makeStringArray{#2}% + \edef\CorrectAns{\stringArray}% + \if\eqQuizType\isQZ\def\Fld@name{corr.\curr@quiz.\thequestionno}% + \else\edef\currQuiz{\oField}% + \def\Fld@name{corr.\oField.\thequestionno}\fi + \if\eqQuizType\isQZ + \edef\@@CorrAnsButtonGrpActions{\noexpand\F{\FHidden}% + \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} + \else\noexpand\BC{\solution@Color}\fi + \noexpand\A{\noexpand\CorrAnsButtonGrpActionHook}}% + \ifeq@noquizsolutions\else + \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\CorrAnsButtonGrpDefaults\@@CorrAnsButtonGrpActions + \every@ButtonField\every@CorrAnsButton}}% + \fi + \else + \edef\@@CorrAnsButtonGrpActions{% + \ifx\@qzsolndest\@empty%\noexpand\BC{\normalCABtnBC} + \else\noexpand\BC{\solution@Color}\fi + \noexpand\A{\noexpand\CorrAnsButtonGrpActionHook}}% + \mbox{\push@@Button{#1}{\Fld@name}{}{\DefaultHeightOfWidget}% + {\eq@protect\A}{\eq@setButtonProps\eq@Button@driver}% + {\CorrAnsButtonGrpDefaults\@@CorrAnsButtonGrpActions + \every@ButtonField\every@CorrAnsButton}}% + \fi +} +\def\makeStringArray#1{\def\stringArray{[}\@makeStringArray#1,\@nil} +\def\@makeStringArray#1,#2\@nil{% + \edef\eq@temp{\stringArray}\def\argii{#2}% + \ifx\argii\@empty + \edef\stringArray{\eq@temp"#1"]}% + \def\eq@next{}% + \else + \edef\stringArray{\eq@temp"#1",}% + \def\eq@next{\@makeStringArray#2\@nil}% + \fi + \eq@next +} +\let\@eqListExp\relax +\let\@currentQues\@empty +\let\eqQzQuesList\@empty +\def\eq@AddProbToQzQuesList{% + \edef\eq@tmpExp{\noexpand\g@addto@macro% + \noexpand\eqQzQuesList{% + \noexpand\@eqListExp{\@currentQues}{\thepage}}}% + \ifx\grpquestions\eq@Zero\eq@tmpExp\fi +} +\LangRedefinitions +\input{aebjs.def} +\inputSumryTblCode +\inputMCFICode +\newcommand{\solutionColor}[1]{\def\eq@argi{#1}\ifx\eq@argi\@empty + \def\solution@Color{\solutionColorDef}\else + \def\solution@Color{#1}\fi} +\newcommand{\solutionColorDef}{0 .6 0} +\solutionColor{\solutionColorDef} +\@ifundefined{jsColor}{% + \InputIfFileExists{eqcolor.def}{\PackageInfo{exerquiz} + {Inputting eqcolor.def}} + {\PackageError{exerquiz}{cannot find eqcolor.def} + {Refresh your file name database and try again.}} +}{} +\newcommand\rghtColorJSDef{["RGB", 0, .6, 0]} +\newcommand\rghtColorJS{\rghtColorJSDef} +\newcommand\wrngColorJSDef{color.red} +\newcommand\wrngColorJS{\wrngColorJSDef} +\newcommand\partialColorJSDef{color.blue} +\newcommand\partialColorJS{\partialColorJSDef} +\newcommand\defaultColorJSDef{color.black} +\newcommand\defaultColorJS{\defaultColorJSDef} +\let\defaultColorJSLoc\@empty +\let\defaultColorJSLocDef\@empty +\let\rghtColorJSLoc\@empty +\let\rghtColorJSLocDef\@empty +\let\wrngColorJSLoc\@empty +\let\wrngColorJSLocDef\@empty +\let\partialColorJSLoc\@empty +\let\partialColorJSLocDef\@empty +\def\chooseJSsymbol{\@ifstar{\let\eq@isstar\eq@YES\chooseJSsymboli} + {\let\eq@isstar\eq@NO\chooseJSsymboli}} +\def\chooseJSsymboli#1{\lowercase{\edef\eq@arg{#1}}% + \def\eq@carg{check}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.ch}\else + \def\eq@carg{cross}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.cr}\else + \def\eq@carg{diamond}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.di}\else + \def\eq@carg{circle}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.ci}\else + \def\eq@carg{star}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.st}\else + \def\eq@carg{square}\ifx\eq@arg\eq@carg + \def\eq@retnStyle{style.sq}\else + \let\eq@retnStyle\@empty + \ifx\eq@isstar\eq@NO\PackageWarning{exerquiz} + {Argument `#1' not recognized.\MessageBreak + Permissible values are check, cross, diamond,\MessageBreak + circle, star, square. Will use the default}\fi + \fi\fi\fi\fi\fi\fi +} +\newcommand\setRghtAnsSymb[1]{\chooseJSsymbol{#1}% + \ifx\eq@retnStyle\@empty\else + \edef\rghtAnsSymbJS{\eq@retnStyle}% + \edef\rghtAnsSymb{\eq@carg}\fi} +\def\rghtAnsSymbJS{style.ch} +\def\rghtAnsSymb{check} +\newcommand\setCorrAnsSymb[1]{\chooseJSsymbol{#1}% + \ifx\eq@retnStyle\@empty\else + \edef\corrAnsSymbJS{\eq@retnStyle}% + \edef\corrAnsSymb{\eq@carg}\fi} +\def\corrAnsSymbJS{style.ci} +\def\corrAnsSymb{circle} +\newcommand\setWrngAnsSymb[1]{\chooseJSsymbol{#1}% + \ifx\eq@retnStyle\@empty\else + \edef\wrngAnsSymbJS{\eq@retnStyle}% + \edef\wrngAnsSymb{\eq@carg}\fi} +\def\wrngAnsSymbJS{style.cr} +\def\wrngAnsSymb{cross} +\def\setRghtAnsSymbLoc#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \let\rghtAnsSymbJSLoc\@empty\else + \edef\rghtAnsSymbJSLoc{\eq@retnStyle}\fi +} +\def\setCorrAnsSymbLoc#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \let\corrAnsSymbJSLoc\@empty\else + \edef\corrAnsSymbJSLoc{\eq@retnStyle}\fi +} +\def\setWrngAnsSymbLoc#1{\chooseJSsymbol*{#1}% + \ifx\eq@retnStyle\@empty + \let\wrngAnsSymbJSLoc\@empty\else + \edef\wrngAnsSymbJSLoc{\eq@retnStyle}\fi +} +\let\rghtAnsSymbJSLoc\@empty +\let\rghtAnsSymbJSLocDef\@empty +\let\corrAnsSymbJSLoc\@empty +\let\corrAnsSymbJSLocDef\@empty +\let\wrngAnsSymbJSLoc\@empty +\let\wrngAnsSymbJSLocDef\@empty +\newcommand\everyeqTextField[1]{\def\every@eqTextField{#1}} +\def\every@eqTextField{} +\newcommand\everyRespBoxMath[1]{\def\every@RespBoxMath{#1}} +\def\every@RespBoxMath{} +\newcommand\everyRespBoxTxt[1]{\def\every@RespBoxTxt{#1}} +\def\every@RespBoxTxt{} +\newcommand\everyrbMarkup[1]{\def\every@rbMarkup{#1}} +\def\every@rbMarkup{} +\newcommand\everysqTallyBox[1]{\def\every@sqTallyBox{#1}} +\def\every@sqTallyBox{} +\newcommand\everysqTallyTotal[1]{\def\every@sqTallyTotal{#1}} +\def\every@sqTallyTotal{} +\newcommand\everyScoreField[1]{\def\every@ScoreField{#1}} +\def\every@ScoreField{} +\newcommand\everyAnswerField[1]{\def\every@AnswerField{#1}} +\def\every@AnswerField{} +\newcommand\everyPointsField[1]{\def\every@PointsField{#1}} +\def\every@PointsField{} +\newcommand\everyPercentField[1]{\def\every@PercentField{#1}} +\def\every@PercentField{} +\newcommand\everyGradeField[1]{\def\every@GradeField{#1}} +\def\every@GradeField{} +\newcommand{\everysqRadioButton}[1]{\def\every@sqRadioButton{#1}} +\def\every@sqRadioButton{} +\newcommand{\everyqRadioButton}[1]{\def\every@qRadioButton{#1}} +\def\every@qRadioButton{} +\newcommand{\everyqckCheckBox}[1]{\def\every@qckCheckbox{#1}} +\def\every@qckCheckbox{} +\newcommand{\everyqCheckBox}[1]{\def\every@qCheckBox{#1}} +\def\every@qCheckBox{} +\newcommand{\everysqCheckBox}[1]{\def\every@sqCheckBox{#1}} +\def\every@sqCheckBox{} +\let\everyeqButtonField\everyButtonField +\newcommand\everyCorrAnsButton[1]{\def\every@CorrAnsButton{#1}} +\def\every@CorrAnsButton{} +\newcommand\everysqClearButton[1]{\def\every@sqClearButton{#1}} +\def\every@sqClearButton{} +\newcommand\everyeqButton[1]{\def\every@eqButton{#1}} +\newcommand\everyCorrButton{\everyeqButton} +\def\every@eqButton{} +\newcommand\everyBeginQuizButton[1]{\def\every@BeginQuizButton{#1}} +\def\every@BeginQuizButton{} +\newcommand\everyEndQuizButton[1]{\def\every@EndQuizButton{#1}} +\def\every@EndQuizButton{} +\let\everyeqGenButton\everyPushButton +\let\every@eqGenButton\every@PushButton +\let\eqGenButton\pushButton +\newcommand\everyeqIcon[1]{\def\every@eqIcon{#1}} +\def\every@eqIcon{} +\def\formatInitAltApprs{\formatInitAltApprs} +\def\@eqAddAAFormat#1{\def\@rgi{#1}\ifx\@rgi\formatInitAltApprs + \bInitAltAppr\else\def\eqAddAAFormat{#1}\fi} +\def\eqAddAAFormat{} +\def\formatAsSet{try{formatAsSet()}catch(e){}} +\def\formatAsVector{try{formatAsVector()}catch(e){}} +\def\eq@SupActnLst{{\AddAAKeystroke}{\AddAAMouseUpMC}% + {\AddAAMouseUpMS}{\AddAAFormat}} +\newcommand\setActionKeys{\edef\catOfAt{\the\catcode`@}% + \ifnum\catOfAt=11 \let\eq@CatTail\relax\else + \makeatletter\let\eq@CatTail\makeatother\fi\setActionKeysi} +\def\setActionKeysi#1{\let\eq@itsGood\eq@One + \def\setActionKeys@cont{\processAppArgs#1\end\@nil}% + \begingroup\eq@checkivValidKeys#1\end\ef@nil\endgroup\eq@CatTail} +\def\eq@checkivValidKeys#1#2{\def\eq@GOOD{good}\expandafter + \@tfor\expandafter + \@ction\expandafter:\expandafter=\eq@SupActnLst\do{% + \expandafter\def\@ction{good}}% + \ifx\end#1% if #1=\end, #2=\ef@nil. + \def\eq@next{\aftergroup\setActionKeys@cont}% + \else + \if\eq@itsGood\eq@One + \let\itp@ss0\let\@@next\relax + \expandafter\@tfor\expandafter + \@ction\expandafter:\expandafter=\eq@SupActnLst\do{% + \expandafter\ifx\expandafter#1\@ction + \let\itp@ss\eq@One\@break@tfor + \fi}% do + \if\itp@ss\eq@Zero\let\eq@itsGood\eq@Zero + \def\eq@next{\def\eq@lastArg{#1}\expandafter + \eq@sqkErrorMsg\ef@gobbletonil}\else + \let\eq@next\eq@checkivValidKeys\fi + \else\let\eq@next\ef@gobbletonil\fi + \fi %\ifx\end + \eq@next +} +\def\eq@sqkErrorMsg#1{\PackageError{exerquiz}{The key \expandafter + \string\eq@lastArg\space is not supported by + \string\setActionKeys.\MessageBreak + Remove the key or correct the spelling of the key}{}} +\def\addToAction{\makeatletter\@ifstar{\let\isSt@r\eq@YES\@ddToAction} + {\let\isSt@r\eq@NO\@ddToAction}} +\def\@ddToAction#1#2{\let\eq@itsGood\eq@One + \def\setActionKeys@cont{\@@ddToAction{#1}{#2}}\begingroup + \eq@checkivValidKeys{#1}{#2}\end\ef@nil\endgroup\makeatother} +\def\@@ddToAction#1#2{\@getCmdName{#1}% + \if\isSt@r\eq@YES\toks2={#2}% + \toks@=\aeb@exiii{\csname eq\@CmdName\endcsname}% + \edef\tmp@tokshold{\the\toks2 \the\toks@}% + \toks@=\expandafter{\tmp@tokshold}\else + \toks@=\aeb@exiii{\csname eq\@CmdName\endcsname#2}\fi + \expandafter\edef\csname eq\@CmdName\endcsname{\the\toks@}% +} +\def\@eqAddAAKeystroke#1{\def\argi{#1}\ifx\argi\@empty + \def\eqAddAAKeystroke{}\else\def\eqAddAAKeystroke{#1}\fi} %\r +\def\eqAddAAKeystroke{} +\def\@eqAddAAMouseUpMC#1{\def\argi{#1}\ifx\argi\@empty + \def\eqAddAAMouseUpMC{}\else\def\eqAddAAMouseUpMC{#1}\fi} +\def\eqAddAAMouseUpMC{} +\def\@eqAddAAMouseUpMS#1{\def\argi{#1}\ifx\argi\@empty + \def\eqAddAAMouseUpMS{}\else\def\eqAddAAMouseUpMS{#1}\fi} +\def\eqAddAAMouseUpMS{} +\def\eqIconDefaults +{% + \rawPDF{}\S{}\mkIns{/TP 1}\W{} + \CA{}\RC{}\AC{}\BC{}\BG{}\H{N} + \textColor{0 g}\Ff{\FfReadOnly} +} +\newcommand\eqIcon[4][] +{% + \mbox{\push@@Button{#1}{#2}{#3}{#4}{}{\eq@setButtonProps + \eq@Button@driver}{\eqIconDefaults\every@ButtonField + \every@eqIcon}}% +} +\eq@restoreCats +\endinput +%% +%% End of file `exerquiz.sty'. diff --git a/texmf-dist/tex/latex/acrotex/insdljs.sty b/texmf-dist/tex/latex/acrotex/insdljs.sty index 69cc9647..22f2034d 100644 --- a/texmf-dist/tex/latex/acrotex/insdljs.sty +++ b/texmf-dist/tex/latex/acrotex/insdljs.sty @@ -1,908 +1,907 @@ -%% -%% This is file `insdljs.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% insdljs.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% insdljs.sty package, %% -%% Copyright (C) 2001-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{insdljs} - [2017/09/03 v2.3g Insert Document Level JavaScripts (dps)] -\usepackage{xkeyval} -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\RequirePackage{ifluatex} -\DeclareOptionX{dvipsone}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{dvips}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{textures}{\def\dljs@drivernum{0}% - \AtBeginDocument{\dvips@marker}} -\DeclareOptionX{pdftex}{\def\dljs@drivernum{1}} -\DeclareOptionX{luatex}{\def\dljs@drivernum{1}} -\DeclareOptionX{dvipdfm}{\def\dljs@drivernum{2}} -\DeclareOptionX{dvipdfmx}{\def\dljs@drivernum{2}} -\DeclareOptionX{xetex}{\def\dljs@drivernum{2}} -\let\dl@YES=y \let\dl@NO=n -\let\dl@One=1 \let\dl@Zero=0 -\let\dljs@YES=y \let\dljs@NO=n -\def\dvips@marker{\ifx\dljspresent\dl@NO\@OAction\fi} -\let\isOpenAction\dl@NO -\DeclareOptionX{nodljs}{\let\importdljs\dl@NO} -\let\importdljs\dl@YES -\let\firstdljs\dl@YES -\let\dljspresent\dl@NO -\DeclareOptionX{debug}{\let\dljs@debug\dl@YES} -\let\dljs@debug\dl@NO -\DeclareOptionX{execJS}{\let\execjs\dl@YES} -\let\execjs\dl@NO -\DeclareOptionX{nopro}{\let\dl@gopro\dl@NO} -\let\dl@gopro\dl@YES -\@ifpackageloaded{web}{% - \ExecuteOptionsX{\eq@driver@name}% -}{% - \@ifpackageloaded{eforms}{% - \ExecuteOptionsX{\ef@driver}% - }{% - \ifpdf\ExecuteOptionsX{pdftex}\else - \ifxetex\ExecuteOptionsX{xetex}\else - \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} - {\ExecuteOptionsX{dvipsone}}\fi\fi - }% -} -\DeclareOptionX{reqjs}{\let\dl@reqJS\dl@YES} -\let\dljs@reqJS\dl@YES -\DeclareOptionX{!reqjs}{\let\dl@reqJS\dl@NO} -\DeclareOptionX{usealtadobe}{\def\inputAltAdbFncs{% - \InputIfFileExists{altadbfncs.def}% - {\PackageInfo{insdljs}{Inputting code for usealtadobe option}}% - {\PackageWarning{insdljs}{Cannot find altadbfncs.def.\MessageBreak - Reinstall or refresh your file name database.}}}} -\let\inputAltAdbFncs\relax -\ProcessOptionsX -\edef\dl@dquoteCat{\the\catcode`\"} -\catcode`\"=12\relax -\@ifundefined{dljs@drivernum}{% - \PackageError{insdljs}% - {You have not specified dvips, dvipsone, pdftex,\MessageBreak - dvipdfm, dvipdfmx, or xetex in the option list - \MessageBreak of the insdljs package} - {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, - dvipdfmx, or xetex - \MessageBreak in the option list of the insdljs package.} -}{} -\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse -\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi -\RequirePackage{hyperref} -\ifpdf\ifx\pdfextension\@undefined\else - \protected\def\pdfnames{\pdfextension names } - \def\pdfpageref{\pdffeedback pageref}\fi\fi -\RequirePackage{verbatim} -\usepackage{conv-xkv}[2017/01/03] -\@ifundefined{dljs@drivernum}{% - \@ifundefined{eq@drivernum}{% - \PackageWarning{insdljs} - {No driver specified, will check for pdftex.} - \@ifundefined{pdfoutput}{% - \@ifundefined{@pdfm@mark}{\def\eq@drivernum{2}% - \def\dljs@drivernum{1}\let\isOpenAction\dl@NO - \PackageWarning{insdljs}{No pdftex, but detected dvipdfm}}% - {\PackageWarning{insdljs}{Neither pdftex nor dvipdfm, - assuming dvips/dvipsone.}% - \def\eq@drivernum{0}\def\dljs@drivernum{0}% - \let\isOpenAction\dl@YES} - }{% - \ifcase\pdfoutput - \def\eq@drivernum{1}\def\dljs@drivernum{1}% - \let\isOpenAction\dl@NO - \PackageInfo{insdljs}{Pdftex detected.}% - \else - \def\eq@drivernum{0}\def\dljs@drivernum{0}% - \let\isOpenAction\dl@YES - \PackageWarning{insdljs}{Pdftex engine detected, - but is outputting dvi. Assuming dvips as the driver.}% - \fi - }% - }{% - \begingroup - \count0=\eq@drivernum - \xdef\dljs@drivernum{\ifcase\count0 0\or1\or2\or0\else0\fi} - \ifnum\dljs@drivernum=0\global\let\isOpenAction\dl@YES - \else\global\let\isOpenAction\dl@NO\fi - \endgroup - }% -}{} -\ifnum\dljs@drivernum=1\relax - \RequirePackage{everyshi} -\fi -\def\AEB@psMrk{[\space} -\ifx\dl@reqJS\dl@YES - \def\dl@@reqJS{/Type/Requirement/S/EnableJavaScripts} - \ifpdf\pdfcatalog{\dl@@reqJS}\else - \ifxetex\immediate\@pdfm@mark{put @catalog <<\dl@@reqJS>>}\else - \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT pdfmark}\fi\fi -\fi -\providecommand\JS[1]{/S/JavaScript/JS(#1)} -\providecommand\Named[1]{/S/Named/N/#1} -\providecommand{\GoTo}{/S/GoTo/D} -\providecommand{\GoToD}{/S/GoTo/D} -\providecommand{\GoToR}{/S/GoToR} -\def\previewMiKTeX{\def\jsR{\string\r}\def\jsT{\string\t}} -{\obeylines % -\gdef\js@@R{\noexpand -}} -\let\dljstfor\@tfor -\def\jsR{\string\r\string\n} -\def\defineJSjsR{\string\r\eqbs^^J} -\def\jsN{\string\n} -{\catcode`\^^I\active % -\gdef^^I{\noexpand^^I}% -\gdef\js@@T{\noexpand^^I}% -}% end of \catcode`\^^I -\let\jsT=\js@@T -\newwrite\js@verbatim@out -\def\iwvo#1{\immediate\write\js@verbatim@out{#1}} -\def\dl@lparen{(}\def\dl@rparen{)} -\def\jscsDflt{\let\protect\noexpand\let\jslit\string - \let\~\dl@tilda\let\^\dl@sup - \def\\{\eqbs\eqbs}\def\cs##1{\\\\##1}% - \def\r{\\r}\def\t{\\t}\def\n{\\n}% - \let\{\dl@lBrace\let\}\dl@rBrace - \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi - \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen - \let\r@paren\dl@rparen\else - \let\l@paren\@empty\let\r@paren\@empty\fi -} -\def\jscsDLJS{\let\protect\noexpand\let\jslit\string - \let\~\dl@tilda\let\^\dl@sup - \ifxetex\def\\{\eqbs\eqbs}\else\def\\{\eqbs}\fi\def\cs##1{\\\\##1}% - \def\r{\\r}\def\t{\\t}\def\n{\\n}% - \let\{\dl@lBrace\let\}\dl@rBrace - \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi - \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen - \let\r@paren\dl@rparen\else - \let\l@paren\@empty\let\r@paren\@empty\fi -} -\ifpdf\let\jscsDLJS\jscsDflt\fi -\let\dl@JSCS\jscsDflt -\newcommand{\flJSStr}{\bgroup - \let\dl@JSCS\jscsDflt - \@ifstar{\def\isStar{*}\dl@defJSStr} - {\let\isStar\relax\dl@defJSStr}} -\let\fieldJSStr\flJSStr -\let\defineJSStr\flJSStr -\newcommand{\dlJSStr}{\bgroup - \@ifstar{\def\isStar{*}\let\dl@JSCS\jscsDLJS\dl@defJSStr} - {\let\isStar\relax\let\dl@JSCS\jscsDLJS\dl@defJSStr}} -\define@key{jsstr}{quotes}[]{\let\jsstr@quotes\dl@One} -\define@key{jsstr}{noquotes}[]{\let\jsstr@quotes\dl@Zero} -\define@key{jsstr}{parens}[]{\let\jsstr@parens\dl@One} -\define@key{jsstr}{noparens}[]{\let\jsstr@parens\dl@Zero} -\let\jsstr@quotes\dl@One\let\jsstr@parens\dl@One -\define@key{jsstr}{useUni}[]{\let\jsstr@useUni\dl@One} -\let\jsstr@useUni\dl@Zero -\newcommand{\dl@defJSStr}[3][quotes]{\def\dl@argi{#1}\ifx\dl@argi\@empty - \else\ifx\dl@JSCS\jscsDLJS\let\jsstr@parens\dl@Zero\fi - \setkeys{jsstr}{#1}\fi\dl@JSCS - \ifx\jsstr@quotes\dl@One - \xdef#2{\l@paren"#3"\r@paren}\else - \xdef#2{\l@paren#3\r@paren}\fi - \if\isStar*\gdef\dl@afterAction{{\Hy@unicodefalse\expandafter - \pdfstringdef\expandafter#2\expandafter{#2}}}\else - \global\let\dl@afterAction\relax\fi - \aftergroup\dl@afterAction\egroup} -\def\dlTC#1{try{#1}catch(e){}} -\def\js@R{\ifcase\dljs@drivernum^^J\else\jsR\fi} -\def\db#1\db{\ifx\dljs@debug\dl@YES\space\space\space#1\js@R\fi} -\newcounter{dljs@cnt} -\newcounter{dljssegs}\setcounter{dljssegs}{2} -\newenvironment{js@verbatimwrite}% writes to current \js@verbatim@out - {% - \@bsphack - \let\do\@makeother\dospecials\catcode`\^^M\active - \def\verbatim@processline{% - \immediate\write\js@verbatim@out{\the\verbatim@line}}% - \verbatim@start}{\@esphack} -\def\closejs@verbatim@out{\immediate\closeout\js@verbatim@out} -\begingroup -\catcode`\@=0 @catcode`@\=12 -@gdef@eqbs{\} -@gdef@ccpdfmark{@gdef@eqesc{\}@gdef@eqesci{}} -@endgroup -\begingroup - \catcode`<=1 \catcode`\>=2 \@makeother\{ \@makeother\} -\gdef\definebraces<\def\{<\eqesc{>\def\}<\eqesc}>> -\endgroup -\def\eqdospecials{\do\ \do\{\do\}\do\$\do\&% - \do\#\do\^\do\_\do\~} -\begingroup -\catcode`\~=\active \lccode`\~=`\^^M -\lowercase{\endgroup - \def\eqverbatim@#1~{\verbatim@@#1*end\@nil}% - \def\eqverbatim@@#1*end{% - \verbatim@addtoline{#1}% - \futurelet\dl@next\eqverbatim@@@}% - \def\eqverbatim@@@#1\@nil{% - \ifx\dl@next\@nil - \verbatim@processline - \verbatim@startline - \let\dl@next\eqverbatim@ - \else - \def\@tempa##1*end\@nil{##1}% - \@temptokena{*end}% - \def\dl@next{\expandafter\verbatim@test\@tempa#1\@nil~}% - \fi\dl@next}% -}% -\def\jsexpverbatimwrite -{% writes to current \js@verbatim@out - \@bsphack - \ccpdfmark - \catcode`\<=12 \catcode`\>=12 - \input{dljscc.def}% - \let\verbatim@=\eqverbatim@ - \let\verbatim@@=\eqverbatim@@ - \let\verbatim@@@=\eqverbatim@@@ - \let\do\@makeother\eqdospecials% - \catcode`\^^M=\active\catcode`\^^I=12% - \def\verbatim@processline{% - \edef\expVerb{\the\verbatim@line}% - \immediate\write\js@verbatim@out{\expVerb}}% - \verbatim@start% -} -\def\endjsexpverbatimwrite{\immediate\closeout\js@verbatim@out\@esphack} -\let\js@Path\@empty -\def\insPath#1{\def\js@Path{#1}} -\begingroup -\catcode`\{=12 \catcode`\}=12 \catcode`\<=1 \catcode`\>=2 -\gdef\dl@lBrace<\string\{> \gdef\dl@rBrace<\string\}> -\gdef\dl@tilda<\string~> \gdef\dl@sup<\string^> -\endgroup -\def\makeJSspecials{% - \def\\{\eqbs\eqbs}% % define \\ to be \\ - \let\jslit\string - \let\{\dl@lBrace\let\}\dl@rBrace - \let\u\@empty - \def\({\eqbs(}\def\){\eqbs)}% - \makespecialJS % make \r=\jsR and \t=\jsT -} -\def\dl@fitpage{/Fit} -\def\dl@actualsize{/XYZ null null 1.0} %{/XYZ -32768 -32768 1.0} -\def\dl@fitwidth{/FitH null} %{/FitH -32768} -\def\dl@fitheight{/FitV null} %{/FitV -32768} -\def\dl@fitvisible{/FitBH null} %{/FitBH -32768} -\def\dl@inheritzoom{/XYZ 0 0 0} -\def\dl@mag#1{/XYZ null null #1} -\edef\dl@Page#1{\ifcase\dljs@drivernum - {Page#1}\or\noexpand\pdfpageref#1\space\space 0 R\or - @page#1\fi} -\def\dl@preProcDefns{\let\Page\dl@Page\let\mag\dl@mag - \let\fitpage\dl@fitpage\let\actualsize\dl@actualsize - \let\fitwidth\dl@fitwidth\let\fitheight\dl@fitheight - \let\fitvisible\dl@fitvisible\let\inheritzoom\dl@inheritzoom -} -\let\aeb@additionalOpenAction\@empty -\let\aeb@addActionCode\@empty -\let\addActionObj\@empty -\let\aebpopentoks\@empty -\let\aebpFA\dl@NO -\def\aebp@rightDelimiters{} -\newcommand{\addToDocOpen}[1]{% - \ifx\aebpFA\dl@NO - \g@addto@macro\aebpopentoks{#1}% - \def\aeb@additionalOpenAction{/Next {pubAddToDocOpen}}% -\ifpdf - \def\aeb@addActionCode{\immediate\pdfobj{<< - \aebpopentoks\aebp@rightDelimiters >>}% - \edef\addActionObj{\the\pdflastobj\space 0 R}}% -\else\ifxetex - \def\aeb@addActionCode{\immediate - \@pdfm@mark{obj @objAddActionObj - << \aebpopentoks\aebp@rightDelimiters >> }}% - \def\addActionObj{@objAddActionObj}% -\else % postscript - \def\aeb@addActionCode{\literalps@out{% - \AEB@psMrk/_objdef {pubAddToDocOpen} - /type/dict /OBJ pdfmark^^J% - \AEB@psMrk{pubAddToDocOpen} << - \aebpopentoks\aebp@rightDelimiters >> /PUT pdfmark}}% - \def\addActionObj{{pubAddToDocOpen}}% -\fi\fi - \global\let\aebpFA\dl@YES - \let\@pdfstartview\@empty - \else - \edef\aebp@dljstmp{\aebp@rightDelimiters}% - \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }% - \g@addto@macro\aebpopentoks{/Next << #1 }% - \fi -} -\def\dljs@OpenActions{/OpenAction \addActionObj} -\def\dljs@setOpenActions{\bgroup\makeJSspecials\dl@preProcDefns - \aeb@addActionCode - \ifpdf\pdfcatalog{\dljs@OpenActions}\else - \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@OpenActions>>}\else - \literalps@out{\AEB@psMrk - {Catalog} <<\dljs@OpenActions>> /PUT pdfmark}\fi\fi\egroup} -\@ifpackageloaded{aeb_pro}{} - {\AtBeginDocument{\ifx\aebpFA\dl@YES\expandafter - \dljs@setOpenActions\fi}} -\let\@CloseAction\@empty -\def\@OAction@pdfmark{\literalps@out{% - \AEB@psMrk{ThisPage} << /AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >> >> /PUT pdfmark}} -\def\@POAction@pdfmark{\literalps@out{% - \AEB@psMrk{ThisPage} << /AA << \@thisOpenAction - \@thisCloseAction >> >> /PUT pdfmark}% -} -\def\@OAction@pdftex{% - \ifx\isOpenAction\dl@YES - \xdef\pdftexOAction{/AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >>}% - \AtNextShipout{\pdfpageattr=\expandafter{\pdftexOAction}}% - \fi -} -\def\@POAction@pdftex{% - \xdef\thisPageActionpdftex{/AA << \@thisOpenAction - \@thisCloseAction >>}% - \AtNextShipout{\pdfpageattr=\expandafter{\thisPageActionpdftex}}% -} -\def\@OAction@dvipdfm{\ifx\isOpenAction\dl@YES - \@pdfm@mark{put @thispage << /AA << /O << \theFirstAction\space - \opentoks\@rightDelimiters >> \@CloseAction >> >>}\fi -} -\def\@POAction@dvipdfm{% - \@pdfm@mark{put @thispage << /AA << \@thisOpenAction - \@thisCloseAction >> >>}% -} -\ifcase\dljs@drivernum - \let\@OAction\@OAction@pdfmark - \let\@POAction\@POAction@pdfmark - \gdef\theFirstAction{/S/JavaScript/JS (\the\importfdftoks)} - \let\isOpenAction\dl@YES -\or - \let\@OAction\@OAction@pdftex - \let\@POAction\@POAction@pdftex - \AtBeginDocument{\@OAction@pdftex} -\or - \let\@OAction\@OAction@dvipdfm - \let\@POAction\@POAction@dvipdfm - \AtBeginDocument{\@OAction@dvipdfm} -\fi -\def\opentoks{} -\def\makespecialJS{% - \let\r\jsR\let\t\jsT\let\n\jsN} -\def\@rightDelimiters{} -\def\OpenAction{\@ifnextchar\Next - {\expandafter\@OpenAction\@gobble}{\@OpenAction}} -\def\@OpenAction#1{% - \ifx\isOpenAction\dl@NO - {\makespecialJS\xdef\theFirstAction{#1}}% - \global\let\isOpenAction\dl@YES - \else - \edef\dljstmp{\@rightDelimiters}% - \xdef\@rightDelimiters{\dljstmp >> }% - {\makespecialJS\xdef\dljstmp{\opentoks /Next << #1 }}% - \xdef\opentoks{\dljstmp}% - \fi - \@nextOpenAction -} -\def\@nextOpenAction{\@ifnextchar\Next{\expandafter - \@OpenAction\@gobble}{}} -\def\protectJSCtrls{\def\r{\string\r\string\n}% - \def\t{\string\t}\def\n{\string\n}} -\def\dljs@tstlp{\@ifnextchar\bgroup - {\let\dljs@multi\dl@YES\dljs@tstlpi}% - {\let\dljs@multi\dl@NO\dljs@tstlpi}} -\def\dljs@tstlpi#1\@nil{}% -\def\dljs@bldScript#1#2#3{{% - \dljs@tstlp#1\@nil - \ifx\dljs@multi\dl@NO{\protectJSCtrls\xdef#3{/#2<<#1>>}}\else - \toks0={}\let\dljs@rAngles\@empty\count0=0 - \@tfor\dljs@arg:=#1\do{% - \ifnum\count0=0 - \toks0=\expandafter{\dljs@arg}\else - \toks2=\expandafter{\dljs@arg}% - \edef\holdtokstmp{\the\toks0 - /Next<<\the\toks2 }% - \edef\dljs@rAngles{\dljs@rAngles\space>>}% - \toks0=\expandafter{\holdtokstmp}% - \fi - \advance\count0by1 - }% - {\protectJSCtrls\xdef#3{/#2<<\the\toks0 \dljs@rAngles>>}% - \xdef#3{#3}}% - \fi -}} -\newcommand{\thisPageAction}[2]{% - \let\@CloseAction\@empty - \let\@thisOpenAction\@empty - \let\@thisCloseAction\@empty - \def\dljs@argi{#1}\def\dljs@argii{#2}% - \ifnum\value{page}=1\relax - \ifx\dljs@argii\@empty\else - \dljs@bldScript{#2}{C}{\@CloseAction}\fi - \ifx\dljs@argi\@empty\else\dljs@tstlp#1\@nil - \ifx\dljs@multi\dl@NO\OpenAction{#1}\else - \@tfor\dljs@arg:=#1\do{\expandafter - \OpenAction\expandafter{\dljs@arg}% - }\fi - \fi - \else - \ifx\dljs@argi\@empty\else - \dljs@bldScript{#1}{O}{\@thisOpenAction}\fi - \ifx\dljs@argii\@empty\else - \dljs@bldScript{#2}{C}{\@thisCloseAction}\fi - \@POAction - \fi -} -\let\insdljsloadVar\@empty -\newenvironment{insDLJS}[3][] -{% - \gdef\detectdljs{#1}\gdef\dljsBase{#2}% - \ifxetex{\def\1{\string\1}\def\2{\string2}% - \def\3{\string\3}\xdef\dljsName{#3}}\else - \Hy@unicodefalse\pdfstringdef{\dljsName}{#3}\fi -\ifx\detectdljs\@empty - \stepcounter{dljs@cnt}% - \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% - \edef\insdljsloadVar{var \detectdljs=true;}% - \addtocounter{dljs@cnt}{-1}% -\fi - \global\let\multisegments\dl@NO\setcounter{dljssegs}{2}% - \global\dljsobjtoks={}% - \expandafter\ifx\csname dljs\dljsBase\endcsname\relax - \else\@insjserrDuplicate\fi - \ifcase\dljs@drivernum - \let\insert@DLJS=\insert@DLJS@pdfmark - \let\endinsDLJS=\endinsert@DLJS@pdfmark - \let\newsegment=\newsegment@pdfmark - \let\endnewsegment=\endnewsegment@pdfmark - \or - \let\insert@DLJS=\insert@DLJS@pdftex - \let\endinsDLJS=\endinsert@DLJS@pdftex - \let\newsegment=\newsegment@pdftex - \let\endnewsegment=\endnewsegment@pdftex - \or - \let\insert@DLJS=\insert@DLJS@dvipdfm - \let\endinsDLJS=\endinsert@DLJS@dvipdfm - \let\newsegment=\newsegment@dvipdfm - \let\endnewsegment=\endnewsegment@dvipdfm - \fi - \insert@DLJS -}{} -\newenvironment{insDLJS*}[2][] -{% - \gdef\detectdljs{#1}\gdef\dljsBase{#2}% -\ifx\detectdljs\@empty - \stepcounter{dljs@cnt}% - \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% - \edef\insdljsloadVar{var \detectdljs=true;}% - \addtocounter{dljs@cnt}{-1}% -\fi - \global\let\multisegments\dl@YES\setcounter{dljssegs}{2}% - \global\dljsobjtoks={}% - \expandafter\ifx\csname dljs\dljsBase\endcsname\relax - \else\@insjserrDuplicate\fi - \ifcase\dljs@drivernum - \let\insert@DLJS=\insert@DLJS@pdfmark - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdfmark - \let\newsegment=\newsegment@pdfmark - \let\endnewsegment=\endnewsegment@pdfmark - \or - \let\insert@DLJS=\insert@DLJS@pdftex - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdftex - \let\newsegment=\newsegment@pdftex - \let\endnewsegment=\endnewsegment@pdftex - \or - \let\insert@DLJS=\insert@DLJS@dvipdfm - \expandafter - \let\csname endinsDLJS*\endcsname\endinsert@DLJS@dvipdfm - \let\newsegment=\newsegment@dvipdfm - \let\endnewsegment=\endnewsegment@dvipdfm - \fi - \insert@DLJS -}{} -\def\@insjserrDuplicate{% - \typeout{^^J! insdljs Package error.} - \typeout{! insDLJS environment: On line number \the\inputlineno,} - \typeout{! the base name `\dljsBase' has already been chosen.} - \typeout{! A DLJS earlier defined has been overwritten!} - \typeout{! Choose another name for the first required argument} - \typeout{! of the insDLJS environment.^^J} -} -\newif\ifisdljs \isdljsfalse -\begingroup -\catcode`\~=12 \catcode`\#=12 -\gdef\efdlspecials{\catcode`\~=12 \catcode`\#=12} -\endgroup -\def\ckivspace#1{\if\noexpand#1\space\else\expandafter#1\fi} -\let\DLspecialDefs\@empty -\def\fdfAfterheader -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\DLspecialDefs} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - \iwvo{\string\immediate\string\openout\string -\js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% - \iwvo{\string\begin{jsexpverbatimwrite}} - \iwvo{\string\firstFDFline} - \iwvo{1 0 obj} - \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R /After 3 0 R >> >> >> } - \iwvo{endobj} - \iwvo{2 0 obj} -\ifpdfmarkup - \iwvo{[ (ExecJS \dljsBase) (var _\dljsBase\space = true;) ] }\else - \iwvo{[ (00 ExecJS \dljsBase) (var _\dljsBase\space = true;) ] }\fi - \iwvo{endobj} - \iwvo{3 0 obj} - \iwvo{<<>>} - \iwvo{stream} -} -\newenvironment{execJS}[1] -{% - \gdef\detectdljs{\string_#1}\gdef\dljsBase{#1}% - \global\dljsobjtoks={}% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \ifx\importdljs\dl@YES\ifx\execjs\dl@YES - \ifx\dl@gopro\dl@YES - \ifnum\dljs@drivernum=0\relax - \addImportAnFDF\importAnFDFTemplate - \else - \OpenAction{/S/JavaScript/JS (\importAnFDFTemplate)}% - \fi\fi - \fi\fi - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \fdfAfterheader - \js@verbatimwrite -}{% - \fdfendstreamobj - \endjs@verbatimwrite - \fdftrailer - \closejs@verbatim@out - \expandafter\xdef\csname\dljsBase OBJ\endcsname{\the\dljsobjtoks}% - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}\@dljstmp -} -\newtoks\JStoks -\newenvironment{defineJS}[2][] -{% - \expandafter\@ifundefined\expandafter{% - \expandafter\@gobble\string#2}{}{% - \PackageWarning{insdljs}{The command - \string#2 already defined}}% - \gdef\defineJSArg{#2}\JStoks={}% - \def\verbatim@processline - {% - \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% - \global\JStoks=\expandafter{\JS@temp}% - }% - \let\do\@makeother\dospecials\catcode`\^^M\active - #1% - \verbatim@start -}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% - \aftergroup\eq@JStemp} -\newenvironment{@defineJS}[2][] -{% - \gdef\defineJSArg{#2}\JStoks={}% - \def\verbatim@processline - {% - \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% - \global\JStoks=\expandafter{\JS@temp}% - }% - \let\do\@makeother\dospecials\catcode`\^^M\active - #1% - \verbatim@start -}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% - \aftergroup\eq@JStemp} -\newenvironment{localJS}[1][]{}{\ifvmode\else\unskip\fi} -\newenvironment{willClose}[1][] -{\@defineJS[#1]{\will@Close}} -{\end@defineJS} -\let\will@Close\@empty -\newenvironment{willSave}[1][] -{\@defineJS[#1]{\will@Save}} -{\end@defineJS} -\let\will@Save\@empty -\newenvironment{didSave}[1][] -{\@defineJS[#1]{\did@Save}} -{\end@defineJS} -\let\did@Save\@empty -\newenvironment{willPrint}[1][] -{\@defineJS[#1]{\will@Print}} -{\end@defineJS} -\let\will@Print\@empty -\newenvironment{didPrint}[1][] -{\@defineJS[#1]{\did@Print}} -{\end@defineJS} -\let\did@Print\@empty -\def\dljs@willDidActions{/AA << - \ifx\test@will@Close\@empty\else/WC << - \JS{\will@Close} >>\fi - \ifx\test@will@Save\@empty\else/WS << - \JS{\will@Save} >>\fi - \ifx\test@did@Save\@empty\else/DS << - \JS{\did@Save} >>\fi - \ifx\test@will@Print\@empty\else/WP << - \JS{\will@Print} >>\fi - \ifx\test@did@Print\@empty\else/DP << - \JS{\did@Print} >>\fi - >> -} -\newcommand\dljs@setDocActions{% - \edef\test@will@Close{\will@Close}% - \edef\test@will@Save{\will@Save}% - \edef\test@did@Save{\did@Save}% - \edef\test@will@Print{\will@Print}% - \edef\test@did@Print{\did@Print}% - \ifpdf\pdfcatalog{\dljs@willDidActions}\else - \ifxetex\immediate - \@pdfm@mark{put @catalog <<\dljs@willDidActions>>}\else - \literalps@out{\AEB@psMrk - {Catalog} <<\dljs@willDidActions>> /PUT pdfmark}\fi\fi -} -\@ifpackageloaded{aeb_pro}{} - {\AtBeginDocument{\dljs@setDocActions}} -\begingroup -\catcode`\%=12 -\gdef\firstFDFline{%FDF-1.2} -\gdef\lastFDFline{%%EOF} -\endgroup -\def\fdfheader -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - \iwvo{\string\immediate\string\openout\string - \js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% - \iwvo{\string\begin{jsexpverbatimwrite}} - \iwvo{\string\firstFDFline} - \iwvo{1 0 obj} - \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R >> >> >>} - \iwvo{endobj} - \iwvo{2 0 obj} - \iwvo{[ \string\csname\string\@gobble\space\dljsBase% - OBJ\string\endcsname]} - \iwvo{endobj} -} -\def\fdfbeginstreamobj -{% - \iwvo{\thedljssegs\space 0 obj} - \iwvo{<<>>} - \iwvo{stream} - \ifx\insdljsloadVar\@empty\else - \iwvo{\insdljsloadVar} - \global\let\insdljsloadVar\@empty - \fi -} -\def\fdfendstreamobj{% - \iwvo{endstream} - \iwvo{endobj} -} - \def\fdftrailer{% - \iwvo{trailer} - \iwvo{<< /Root 1 0 R >>} - \iwvo{\string\lastFDFline} - \iwvo{*end{jsexpverbatimwrite}} - \iwvo{\string\endgroup} -} -\newtoks\importfdftoks \importfdftoks={} -\newtoks\dljsobjtoks \dljsobjtoks={} -\def\importAnFDFTemplate{% -if(typeof \detectdljs\space == "undefined")\jsR\jsT - ( app.viewerVersion > 8 ) ? % - aebTrustedFunctions( this, aebImportAnFDF, % - "\js@Path\dljsBase.fdf") : % - this.importAnFDF("\js@Path\dljsBase.fdf");\jsR -} -\def\addImportAnFDF#1{% - \ifx\importdljs\dl@YES - \edef\importAnFDFtmp{\the\importfdftoks#1}% - \global\importfdftoks=\expandafter{\importAnFDFtmp}% - \fi -} -\def\importAnFDF{\ifx\importdljs\dl@YES\@OAction\fi} -\newenvironment{newsegment@pdfmark}[1]{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% - \edef\@dljstmp{\the\dljsobjtoks(\dljsName) - \thedljssegs\space 0 R\space} - \global\dljsobjtoks=\expandafter{\@dljstmp} - \fdfbeginstreamobj - \js@verbatimwrite -}{% - \fdfendstreamobj - \endjs@verbatimwrite -} -\def\insert@DLJS@pdfmark{% - \global\let\dljspresent\dl@YES - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \ifx\importdljs\dl@YES\ifx\dl@gopro\dl@YES - \addImportAnFDF\importAnFDFTemplate - \fi\fi - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \fdfheader - \ifx\multisegments\dl@NO\expandafter - \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi -} -\def\endinsert@DLJS@pdfmark{% - \ifx\importdljs\dl@YES - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \fdftrailer - \closejs@verbatim@out - \expandafter\xdef\csname\dljsBase% - OBJ\endcsname{\the\dljsobjtoks}% - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\firstdljs\dl@YES - \AtBeginDocument{\edef\@dljstmp{\importAnFDF}% - \@dljstmp}\global\let\firstdljs\dl@NO - \fi - \fi -} -\begingroup -\catcode`\@=0 @catcode`@\=12 -@gdef@ccpdftex{@gdef@eqesc{\\}@gdef@eqesci{\}} -@endgroup -\def\begindljs -{% - \iwvo{\string\begingroup\string\efdlspecials} - \iwvo{\string\isdljstrue} - \iwvo{\string\makeatletter} - {\uccode`c=`\%\uppercase{% - \iwvo{\string\obeyspaces\string\obeylines - \string\let\string^\string^M=\string\jsR c}}} - {\escapechar=-1 \lccode`C=`\%\lowercase{% - \iwvo{\string\\catcode`\string\\"=12C}}} -} -\def\beginseg -{% - {\lccode`P=`\{\lccode`C=`\%\lowercase{% - \iwvo{\string\gdef\string\dljs\dljsBase\roman{dljssegs}PC}}}% -} -\def\endseg -{% - {\uccode`c=`\%\uccode`p=`\}\uppercase{\iwvo{pc}}}% -} -\def\enddljs -{% - \iwvo{\string\endgroup}% -} -\def\@roman#1{\romannumeral#1} -\def\write@objs -{% -\iwvo{\begingroup} -\iwvo{\string\catcode`\string\<=12 } -\iwvo{\string\catcode`\string\>=12 } -{\lccode`C=`\%\lowercase{\iwvo{\string\ccpdftex C}}} -{\lccode`C=`\%\lowercase{\iwvo{% - \string\input{dljscc.def}C\the\dljsobjtoks}}} -\iwvo{\endgroup} -} -\newenvironment{newsegment@pdftex}[1]{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \edef\tmp{^^J\string\immediate\string\pdfobj{ << /S/JavaScript/JS% - (\string\dljs\dljsBase\roman{dljssegs}) >> }}% - \edef\@dljstmp{\the\dljsobjtoks\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\tmp{^^J\string\xdef\string\obj\dljsBase\roman{dljssegs}% - {\string\the\string\pdflastobj\string\space 0 R}}% - \edef\@dljstmp{\the\dljsobjtoks\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% - \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% - \edef\dljspdftextmp - {\the\importfdftoks (\curr@Cnt\space\dljsName) - \noexpand\csname obj\dljsBase\roman{dljssegs}% - \noexpand\endcsname\space}% - \global\importfdftoks=\expandafter{\dljspdftextmp}% - \beginseg - \js@verbatimwrite -}{% - \endjs@verbatimwrite - \endseg -} -\newenvironment{insert@DLJS@pdftex}{% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \begindljs - \ifx\multisegments\dl@NO\expandafter - \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi -}{% - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \enddljs - \write@objs - \endjs@verbatimwrite - \closejs@verbatim@out - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\importdljs\dl@YES - \ifx\firstdljs\dl@YES - \AtEndDocument{\edef\@dljstmp{\setDLJSRef@pdftex}\@dljstmp} - \global\let\firstdljs\dl@NO - \fi - \fi -} -\def\setDLJSRef@pdftex -{% - \noexpand\immediate\noexpand\pdfobj {% - << /Names [\the\importfdftoks] >> }% - \edef\noexpand\objNames{\noexpand\the\noexpand\pdflastobj\space 0 R}% - \pdfnames {/JavaScript \noexpand\objNames}% -} -\newenvironment{newsegment@dvipdfm}[1] -{% - \addtocounter{dljssegs}{1}% - \addtocounter{dljs@cnt}{1}% - \edef\tmp{^^J\string\immediate\string - \csname\space @pdfm@mark\string\endcsname - {obj @obj\dljsBase\roman{dljssegs}\space << /S/JavaScript% - /JS(\string\dljs\dljsBase\roman{dljssegs}) >> }}% - \edef\@dljstmp{\the\dljsobjtoks\space\tmp}% - \global\dljsobjtoks=\expandafter{\@dljstmp}% - \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% - {\def\1{\string\1}\def\2{\string2}% - \def\3{\string\3}\xdef\dljsName{#1}}% - \edef\dljspdftextmp - {\the\importfdftoks (\curr@Cnt\space \dljsName) % - @obj\dljsBase\roman{dljssegs}\space}% - \global\importfdftoks=\expandafter{\dljspdftextmp}% - \beginseg - \js@verbatimwrite -}{% - \endjs@verbatimwrite - \endseg -} -\def\setDLJSRef@dvipdfm -{% - \immediate\@pdfm@mark{obj @objnames % - << /Names [\the\importfdftoks] >> }% - \@pdfm@mark{put @names % - << /JavaScript @objnames >> }% -} -\newenvironment{insert@DLJS@dvipdfm} -{% - \expandafter\gdef\csname dljs\dljsBase\endcsname{}% - \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs - \begindljs - \ifx\multisegments\dl@NO\expandafter\newsegment\expandafter{% - \expandafter\dljsName\expandafter}\fi -}{% - \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi - \enddljs - \write@objs - \endjs@verbatimwrite - \closejs@verbatim@out - \edef\@dljstmp{\noexpand\AtBeginDocument{% - \noexpand\input{\js@Path\dljsBase.djs}}}% - \@dljstmp - \ifx\importdljs\dl@YES - \ifx\firstdljs\dl@YES - \AtBeginDocument{\setDLJSRef@dvipdfm}% - \global\let\firstdljs\dl@NO - \fi - \fi -} -\catcode`\"=\dl@dquoteCat -\inputAltAdbFncs -\endinput -%% -%% End of file `insdljs.sty'. +%% +%% This is file `insdljs.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% insdljs.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% insdljs.sty package, %% +%% Copyright (C) 2001-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{insdljs} + [2018/07/21 v2.4 Insert Document Level JavaScripts (dps)] +\usepackage{xkeyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{ifluatex} +\DeclareOptionX{dvipsone}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{dvips}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{textures}{\def\dljs@drivernum{0}% + \AtBeginDocument{\dvips@marker}} +\DeclareOptionX{pdftex}{\def\dljs@drivernum{1}} +\DeclareOptionX{luatex}{\def\dljs@drivernum{1}} +\DeclareOptionX{dvipdfm}{\def\dljs@drivernum{2}} +\DeclareOptionX{dvipdfmx}{\def\dljs@drivernum{2}} +\DeclareOptionX{xetex}{\def\dljs@drivernum{2}} +\let\dl@YES=y \let\dl@NO=n +\let\dl@One=1 \let\dl@Zero=0 +\let\dljs@YES=y \let\dljs@NO=n +\def\dvips@marker{\ifx\dljspresent\dl@NO\@OAction\fi} +\let\isOpenAction\dl@NO +\DeclareOptionX{nodljs}{\let\importdljs\dl@NO} +\let\importdljs\dl@YES +\let\firstdljs\dl@YES +\let\dljspresent\dl@NO +\DeclareOptionX{debug}{\let\dljs@debug\dl@YES} +\let\dljs@debug\dl@NO +\DeclareOptionX{execJS}{\let\execjs\dl@YES} +\let\execjs\dl@NO +\DeclareOptionX{nopro}{\let\dl@gopro\dl@NO} +\let\dl@gopro\dl@YES +\@ifpackageloaded{web}{% + \ExecuteOptionsX{\eq@driver@name}% +}{% + \@ifpackageloaded{eforms}{% + \ExecuteOptionsX{\ef@driver}% + }{% + \ifpdf\ExecuteOptionsX{pdftex}\else + \ifxetex\ExecuteOptionsX{xetex}\else + \@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} + {\ExecuteOptionsX{dvipsone}}\fi\fi + }% +} +\DeclareOptionX{reqjs}{\let\dl@reqJS\dl@YES} +\let\dljs@reqJS\dl@YES +\DeclareOptionX{!reqjs}{\let\dl@reqJS\dl@NO} +\DeclareOptionX{usealtadobe}{\def\inputAltAdbFncs{% + \InputIfFileExists{altadbfncs.def}% + {\PackageInfo{insdljs}{Inputting code for usealtadobe option}}% + {\PackageWarning{insdljs}{Cannot find altadbfncs.def.\MessageBreak + Reinstall or refresh your file name database.}}}} +\let\inputAltAdbFncs\relax +\ProcessOptionsX +\edef\dl@dquoteCat{\the\catcode`\"} +\catcode`\"=12\relax +\@ifundefined{dljs@drivernum}{% + \PackageError{insdljs}% + {You have not specified dvips, dvipsone, pdftex,\MessageBreak + dvipdfm, dvipdfmx, or xetex in the option list + \MessageBreak of the insdljs package} + {Place one of the drivers dvips, dvipsone, pdftex, dvipdfm, + dvipdfmx, or xetex + \MessageBreak in the option list of the insdljs package.} +}{} +\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup}{}\pdfmarkupfalse +\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi +\RequirePackage{hyperref} +\ifpdf\ifx\pdfextension\@undefined\else + \protected\def\pdfnames{\pdfextension names } + \def\pdfpageref{\pdffeedback pageref}\fi\fi +\RequirePackage{verbatim} +\usepackage{conv-xkv}[2017/01/03] +\@ifundefined{dljs@drivernum}{% + \@ifundefined{eq@drivernum}{% + \PackageWarning{insdljs} + {No driver specified, will check for pdftex.} + \@ifundefined{pdfoutput}{% + \@ifundefined{@pdfm@mark}{\def\eq@drivernum{2}% + \def\dljs@drivernum{1}\let\isOpenAction\dl@NO + \PackageWarning{insdljs}{No pdftex, but detected dvipdfm}}% + {\PackageWarning{insdljs}{Neither pdftex nor dvipdfm, + assuming dvips/dvipsone.}% + \def\eq@drivernum{0}\def\dljs@drivernum{0}% + \let\isOpenAction\dl@YES} + }{% + \ifcase\pdfoutput + \def\eq@drivernum{1}\def\dljs@drivernum{1}% + \let\isOpenAction\dl@NO + \PackageInfo{insdljs}{Pdftex detected.}% + \else + \def\eq@drivernum{0}\def\dljs@drivernum{0}% + \let\isOpenAction\dl@YES + \PackageWarning{insdljs}{Pdftex engine detected, + but is outputting dvi. Assuming dvips as the driver.}% + \fi + }% + }{% + \begingroup + \count0=\eq@drivernum + \xdef\dljs@drivernum{\ifcase\count0 0\or1\or2\or0\else0\fi} + \ifnum\dljs@drivernum=0\global\let\isOpenAction\dl@YES + \else\global\let\isOpenAction\dl@NO\fi + \endgroup + }% +}{} +\ifnum\dljs@drivernum=1\relax + \RequirePackage{everyshi} +\fi +\def\AEB@psMrk{[\space} +\ifx\dl@reqJS\dl@YES + \def\dl@@reqJS{/Type/Requirement/S/EnableJavaScripts} + \ifpdf\pdfcatalog{\dl@@reqJS}\else + \ifxetex\immediate\@pdfm@mark{put @catalog <<\dl@@reqJS>>}\else + \literalps@out{\AEB@psMrk{Catalog} <<\dl@@reqJS>> /PUT pdfmark}\fi\fi +\fi +\newif\ifthereisdjs \thereisdjsfalse +\def\applydljs#1{\ifthereisdjs\else#1 + \global\thereisdjstrue\fi} +\providecommand\JS[1]{/S/JavaScript/JS(#1)} +\providecommand\Named[1]{/S/Named/N/#1} +\providecommand{\GoTo}{/S/GoTo/D} +\providecommand{\GoToD}{/S/GoTo/D} +\providecommand{\GoToR}{/S/GoToR} +\def\previewMiKTeX{\def\jsR{\string\r}\def\jsT{\string\t}} +{\obeylines % +\gdef\js@@R{\noexpand +}} +\let\dljstfor\@tfor +\def\jsR{\string\r\string\n} +\def\defineJSjsR{\string\r\eqbs^^J} +\def\jsN{\string\n} +{\catcode`\^^I\active % +\gdef^^I{\noexpand^^I}% +\gdef\js@@T{\noexpand^^I}% +}% end of \catcode`\^^I +\let\jsT=\js@@T +\newwrite\js@verbatim@out +\def\iwvo#1{\immediate\write\js@verbatim@out{#1}} +\def\dl@lparen{(}\def\dl@rparen{)} +\def\jscsDflt{\let\protect\noexpand\let\jslit\string + \let\~\dl@tilda\let\^\dl@sup + \def\\{\eqbs\eqbs}\def\cs##1{\\\\##1}% + \def\r{\\r}\def\t{\\t}\def\n{\\n}% + \let\{\dl@lBrace\let\}\dl@rBrace + \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi + \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen + \let\r@paren\dl@rparen\else + \let\l@paren\@empty\let\r@paren\@empty\fi +} +\def\jscsDLJS{\let\protect\noexpand\let\jslit\string + \let\~\dl@tilda\let\^\dl@sup + \ifxetex\def\\{\eqbs\eqbs}\else\def\\{\eqbs}\fi\def\cs##1{\\\\##1}% + \def\r{\\r}\def\t{\\t}\def\n{\\n}% + \let\{\dl@lBrace\let\}\dl@rBrace + \ifx\jsstr@useUni\dl@One\def\Uni{\\u}\else\def\u{\\u}\fi + \ifx\jsstr@parens\dl@One\let\l@paren\dl@lparen + \let\r@paren\dl@rparen\else + \let\l@paren\@empty\let\r@paren\@empty\fi +} +\ifpdf\let\jscsDLJS\jscsDflt\fi +\let\dl@JSCS\jscsDflt +\newcommand{\flJSStr}{\bgroup + \let\dl@JSCS\jscsDflt + \@ifstar{\def\isStar{*}\dl@defJSStr} + {\let\isStar\relax\dl@defJSStr}} +\let\fieldJSStr\flJSStr +\let\defineJSStr\flJSStr +\newcommand{\dlJSStr}{\bgroup + \@ifstar{\def\isStar{*}\let\dl@JSCS\jscsDLJS\dl@defJSStr} + {\let\isStar\relax\let\dl@JSCS\jscsDLJS\dl@defJSStr}} +\define@key{jsstr}{quotes}[]{\let\jsstr@quotes\dl@One} +\define@key{jsstr}{noquotes}[]{\let\jsstr@quotes\dl@Zero} +\define@key{jsstr}{parens}[]{\let\jsstr@parens\dl@One} +\define@key{jsstr}{noparens}[]{\let\jsstr@parens\dl@Zero} +\let\jsstr@quotes\dl@One\let\jsstr@parens\dl@One +\define@key{jsstr}{useUni}[]{\let\jsstr@useUni\dl@One} +\let\jsstr@useUni\dl@Zero +\newcommand{\dl@defJSStr}[3][quotes]{\def\dl@argi{#1}\ifx\dl@argi\@empty + \else\ifx\dl@JSCS\jscsDLJS\let\jsstr@parens\dl@Zero\fi + \setkeys{jsstr}{#1}\fi\dl@JSCS + \ifx\jsstr@quotes\dl@One + \xdef#2{\l@paren"#3"\r@paren}\else + \xdef#2{\l@paren#3\r@paren}\fi + \if\isStar*\gdef\dl@afterAction{{\Hy@unicodefalse\expandafter + \pdfstringdef\expandafter#2\expandafter{#2}}}\else + \global\let\dl@afterAction\relax\fi + \aftergroup\dl@afterAction\egroup} +\def\dlTC#1{try{#1}catch(e){}} +\def\js@R{\ifcase\dljs@drivernum^^J\else\jsR\fi} +\def\db#1\db{\ifx\dljs@debug\dl@YES\space\space\space#1\js@R\fi} +\newcounter{dljs@cnt} +\newcounter{dljssegs}\setcounter{dljssegs}{2} +\newenvironment{js@verbatimwrite}% writes to current \js@verbatim@out + {% + \@bsphack + \let\do\@makeother\dospecials\catcode`\^^M\active + \def\verbatim@processline{% + \immediate\write\js@verbatim@out{\the\verbatim@line}}% + \verbatim@start}{\@esphack} +\def\closejs@verbatim@out{\immediate\closeout\js@verbatim@out} +\begingroup +\catcode`\@=0 @catcode`@\=12 +@gdef@eqbs{\} +@gdef@ccpdfmark{@gdef@eqesc{\}@gdef@eqesci{}} +@endgroup +\begingroup + \catcode`<=1 \catcode`\>=2 \@makeother\{ \@makeother\} +\gdef\definebraces<\def\{<\eqesc{>\def\}<\eqesc}>> +\endgroup +\def\eqdospecials{\do\ \do\{\do\}\do\$\do\&% + \do\#\do\^\do\_\do\~} +\begingroup +\catcode`\~=\active \lccode`\~=`\^^M +\lowercase{\endgroup + \def\eqverbatim@#1~{\verbatim@@#1*end\@nil}% + \def\eqverbatim@@#1*end{% + \verbatim@addtoline{#1}% + \futurelet\dl@next\eqverbatim@@@}% + \def\eqverbatim@@@#1\@nil{% + \ifx\dl@next\@nil + \verbatim@processline + \verbatim@startline + \let\dl@next\eqverbatim@ + \else + \def\@tempa##1*end\@nil{##1}% + \@temptokena{*end}% + \def\dl@next{\expandafter\verbatim@test\@tempa#1\@nil~}% + \fi\dl@next}% +}% +\def\jsexpverbatimwrite +{% writes to current \js@verbatim@out + \@bsphack + \ccpdfmark + \catcode`\<=12 \catcode`\>=12 + \input{dljscc.def}% + \let\verbatim@=\eqverbatim@ + \let\verbatim@@=\eqverbatim@@ + \let\verbatim@@@=\eqverbatim@@@ + \let\do\@makeother\eqdospecials% + \catcode`\^^M=\active\catcode`\^^I=12% + \def\verbatim@processline{% + \edef\expVerb{\the\verbatim@line}% + \immediate\write\js@verbatim@out{\expVerb}}% + \verbatim@start% +} +\def\endjsexpverbatimwrite{\immediate\closeout\js@verbatim@out\@esphack} +\let\js@Path\@empty +\def\insPath#1{\def\js@Path{#1}} +\begingroup +\catcode`\{=12 \catcode`\}=12 \catcode`\<=1 \catcode`\>=2 +\gdef\dl@lBrace<\string\{> \gdef\dl@rBrace<\string\}> +\gdef\dl@tilda<\string~> \gdef\dl@sup<\string^> +\endgroup +\def\makeJSspecials{% + \def\\{\eqbs\eqbs}% % define \\ to be \\ + \let\jslit\string + \let\{\dl@lBrace\let\}\dl@rBrace + \let\u\@empty + \def\({\eqbs(}\def\){\eqbs)}% + \makespecialJS % make \r=\jsR and \t=\jsT +} +\def\dl@fitpage{/Fit} +\def\dl@actualsize{/XYZ null null 1.0} %{/XYZ -32768 -32768 1.0} +\def\dl@fitwidth{/FitH null} %{/FitH -32768} +\def\dl@fitheight{/FitV null} %{/FitV -32768} +\def\dl@fitvisible{/FitBH null} %{/FitBH -32768} +\def\dl@inheritzoom{/XYZ 0 0 0} +\def\dl@mag#1{/XYZ null null #1} +\edef\dl@Page#1{\ifcase\dljs@drivernum + {Page#1}\or\noexpand\pdfpageref#1\space\space 0 R\or + @page#1\fi} +\def\dl@preProcDefns{\let\Page\dl@Page\let\mag\dl@mag + \let\fitpage\dl@fitpage\let\actualsize\dl@actualsize + \let\fitwidth\dl@fitwidth\let\fitheight\dl@fitheight + \let\fitvisible\dl@fitvisible\let\inheritzoom\dl@inheritzoom +} +\let\aeb@additionalOpenAction\@empty +\let\aeb@addActionCode\@empty +\let\addActionObj\@empty +\let\aebpopentoks\@empty +\let\aebpFA\dl@NO +\def\aebp@rightDelimiters{} +\newcommand{\addToDocOpen}[1]{% + \ifx\aebpFA\dl@NO + \g@addto@macro\aebpopentoks{#1}% + \def\aeb@additionalOpenAction{/Next {pubAddToDocOpen}}% +\ifpdf + \def\aeb@addActionCode{\immediate\pdfobj{<< + \aebpopentoks\aebp@rightDelimiters >>}% + \edef\addActionObj{\the\pdflastobj\space 0 R}}% +\else\ifxetex + \def\aeb@addActionCode{\immediate + \@pdfm@mark{obj @objAddActionObj + << \aebpopentoks\aebp@rightDelimiters >> }}% + \def\addActionObj{@objAddActionObj}% +\else % postscript + \def\aeb@addActionCode{\literalps@out{% + \AEB@psMrk/_objdef {pubAddToDocOpen} + /type/dict /OBJ pdfmark^^J% + \AEB@psMrk{pubAddToDocOpen} << + \aebpopentoks\aebp@rightDelimiters >> /PUT pdfmark}}% + \def\addActionObj{{pubAddToDocOpen}}% +\fi\fi + \global\let\aebpFA\dl@YES + \let\@pdfstartview\@empty + \else + \edef\aebp@dljstmp{\aebp@rightDelimiters}% + \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }% + \g@addto@macro\aebpopentoks{/Next << #1 }% + \fi +} +\def\dljs@OpenActions{/OpenAction \addActionObj} +\def\dljs@setOpenActions{\bgroup\makeJSspecials\dl@preProcDefns + \aeb@addActionCode + \ifpdf\pdfcatalog{\dljs@OpenActions}\else + \ifxetex\immediate + \@pdfm@mark{put @catalog <<\dljs@OpenActions>>}\else + \literalps@out{\AEB@psMrk + {Catalog} <<\dljs@OpenActions>> /PUT pdfmark}\fi\fi\egroup} +\@ifpackageloaded{aeb_pro}{} + {\AtBeginDocument{\ifx\aebpFA\dl@YES\expandafter + \dljs@setOpenActions\fi}} +\let\@CloseAction\@empty +\def\@OAction@pdfmark{\literalps@out{% + \AEB@psMrk{ThisPage} << /AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >> >> /PUT pdfmark}} +\def\@POAction@pdfmark{\literalps@out{% + \AEB@psMrk{ThisPage} << /AA << \@thisOpenAction + \@thisCloseAction >> >> /PUT pdfmark}% +} +\def\@OAction@pdftex{% + \ifx\isOpenAction\dl@YES + \xdef\pdftexOAction{/AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >>}% + \AtNextShipout{\pdfpageattr=\expandafter{\pdftexOAction}}% + \fi +} +\def\@POAction@pdftex{% + \xdef\thisPageActionpdftex{/AA << \@thisOpenAction + \@thisCloseAction >>}% + \AtNextShipout{\pdfpageattr=\expandafter{\thisPageActionpdftex}}% +} +\def\@OAction@dvipdfm{\ifx\isOpenAction\dl@YES + \@pdfm@mark{put @thispage << /AA << /O << \theFirstAction\space + \opentoks\@rightDelimiters >> \@CloseAction >> >>}\fi +} +\def\@POAction@dvipdfm{% + \@pdfm@mark{put @thispage << /AA << \@thisOpenAction + \@thisCloseAction >> >>}% +} +\ifcase\dljs@drivernum + \let\@OAction\@OAction@pdfmark + \let\@POAction\@POAction@pdfmark + \gdef\theFirstAction{/S/JavaScript/JS (\the\importfdftoks)} + \let\isOpenAction\dl@YES +\or + \let\@OAction\@OAction@pdftex + \let\@POAction\@POAction@pdftex + \AtBeginDocument{\@OAction@pdftex} +\or + \let\@OAction\@OAction@dvipdfm + \let\@POAction\@POAction@dvipdfm + \AtBeginDocument{\@OAction@dvipdfm} +\fi +\def\opentoks{} +\def\makespecialJS{% + \let\r\jsR\let\t\jsT\let\n\jsN} +\def\@rightDelimiters{} +\def\OpenAction{\@ifnextchar\Next + {\expandafter\@OpenAction\@gobble}{\@OpenAction}} +\def\@OpenAction#1{% + \ifx\isOpenAction\dl@NO + {\makespecialJS\xdef\theFirstAction{#1}}% + \global\let\isOpenAction\dl@YES + \else + \edef\dljstmp{\@rightDelimiters}% + \xdef\@rightDelimiters{\dljstmp >> }% + {\makespecialJS\xdef\dljstmp{\opentoks /Next << #1 }}% + \xdef\opentoks{\dljstmp}% + \fi + \@nextOpenAction +} +\def\@nextOpenAction{\@ifnextchar\Next{\expandafter + \@OpenAction\@gobble}{}} +\def\protectJSCtrls{\def\r{\string\r\string\n}% + \def\t{\string\t}\def\n{\string\n}} +\def\dljs@tstlp{\@ifnextchar\bgroup + {\let\dljs@multi\dl@YES\dljs@tstlpi}% + {\let\dljs@multi\dl@NO\dljs@tstlpi}} +\def\dljs@tstlpi#1\@nil{}% +\def\dljs@bldScript#1#2#3{{% + \dljs@tstlp#1\@nil + \ifx\dljs@multi\dl@NO{\protectJSCtrls\xdef#3{/#2<<#1>>}}\else + \toks0={}\let\dljs@rAngles\@empty\count0=0 + \@tfor\dljs@arg:=#1\do{% + \ifnum\count0=0 + \toks0=\expandafter{\dljs@arg}\else + \toks2=\expandafter{\dljs@arg}% + \edef\holdtokstmp{\the\toks0 + /Next<<\the\toks2 }% + \edef\dljs@rAngles{\dljs@rAngles\space>>}% + \toks0=\expandafter{\holdtokstmp}% + \fi + \advance\count0by1 + }% + {\protectJSCtrls\xdef#3{/#2<<\the\toks0 \dljs@rAngles>>}% + \xdef#3{#3}}% + \fi +}} +\newcommand{\thisPageAction}[2]{% + \let\@CloseAction\@empty + \let\@thisOpenAction\@empty + \let\@thisCloseAction\@empty + \def\dljs@argi{#1}\def\dljs@argii{#2}% + \ifnum\value{page}=1\relax + \ifx\dljs@argii\@empty\else + \dljs@bldScript{#2}{C}{\@CloseAction}\fi + \ifx\dljs@argi\@empty\else\dljs@tstlp#1\@nil + \ifx\dljs@multi\dl@NO\OpenAction{#1}\else + \@tfor\dljs@arg:=#1\do{\expandafter + \OpenAction\expandafter{\dljs@arg}% + }\fi + \fi + \else + \ifx\dljs@argi\@empty\else + \dljs@bldScript{#1}{O}{\@thisOpenAction}\fi + \ifx\dljs@argii\@empty\else + \dljs@bldScript{#2}{C}{\@thisCloseAction}\fi + \@POAction + \fi +} +\let\insdljsloadVar\@empty +\newenvironment{insDLJS}[3][] +{% + \gdef\detectdljs{#1}\gdef\dljsBase{#2}% + \ifxetex{\def\1{\string\1}\def\2{\string2}% + \def\3{\string\3}\xdef\dljsName{#3}}\else + \Hy@unicodefalse\pdfstringdef{\dljsName}{#3}\fi +\ifx\detectdljs\@empty + \stepcounter{dljs@cnt}% + \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% + \edef\insdljsloadVar{var \detectdljs=true;}% + \addtocounter{dljs@cnt}{-1}% +\fi + \global\let\multisegments\dl@NO\setcounter{dljssegs}{2}% + \global\dljsobjtoks={}% + \expandafter\ifx\csname dljs\dljsBase\endcsname\relax + \else\@insjserrDuplicate\fi + \ifcase\dljs@drivernum + \let\insert@DLJS=\insert@DLJS@pdfmark + \let\endinsDLJS=\endinsert@DLJS@pdfmark + \let\newsegment=\newsegment@pdfmark + \let\endnewsegment=\endnewsegment@pdfmark + \or + \let\insert@DLJS=\insert@DLJS@pdftex + \let\endinsDLJS=\endinsert@DLJS@pdftex + \let\newsegment=\newsegment@pdftex + \let\endnewsegment=\endnewsegment@pdftex + \or + \let\insert@DLJS=\insert@DLJS@dvipdfm + \let\endinsDLJS=\endinsert@DLJS@dvipdfm + \let\newsegment=\newsegment@dvipdfm + \let\endnewsegment=\endnewsegment@dvipdfm + \fi + \insert@DLJS +}{} +\newenvironment{insDLJS*}[2][] +{% + \gdef\detectdljs{#1}\gdef\dljsBase{#2}% +\ifx\detectdljs\@empty + \stepcounter{dljs@cnt}% + \xdef\detectdljs{_bInsdljsload\arabic{dljs@cnt}}% + \edef\insdljsloadVar{var \detectdljs=true;}% + \addtocounter{dljs@cnt}{-1}% +\fi + \global\let\multisegments\dl@YES\setcounter{dljssegs}{2}% + \global\dljsobjtoks={}% + \expandafter\ifx\csname dljs\dljsBase\endcsname\relax + \else\@insjserrDuplicate\fi + \ifcase\dljs@drivernum + \let\insert@DLJS=\insert@DLJS@pdfmark + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdfmark + \let\newsegment=\newsegment@pdfmark + \let\endnewsegment=\endnewsegment@pdfmark + \or + \let\insert@DLJS=\insert@DLJS@pdftex + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@pdftex + \let\newsegment=\newsegment@pdftex + \let\endnewsegment=\endnewsegment@pdftex + \or + \let\insert@DLJS=\insert@DLJS@dvipdfm + \expandafter + \let\csname endinsDLJS*\endcsname\endinsert@DLJS@dvipdfm + \let\newsegment=\newsegment@dvipdfm + \let\endnewsegment=\endnewsegment@dvipdfm + \fi + \insert@DLJS +}{} +\def\@insjserrDuplicate{% + \typeout{^^J! insdljs Package error.} + \typeout{! insDLJS environment: On line number \the\inputlineno,} + \typeout{! the base name `\dljsBase' has already been chosen.} + \typeout{! A DLJS earlier defined has been overwritten!} + \typeout{! Choose another name for the first required argument} + \typeout{! of the insDLJS environment.^^J} +} +\newif\ifisdljs \isdljsfalse +\begingroup +\catcode`\~=12 \catcode`\#=12 +\gdef\efdlspecials{\catcode`\~=12 \catcode`\#=12} +\endgroup +\def\ckivspace#1{\if\noexpand#1\space\else\expandafter#1\fi} +\let\DLspecialDefs\@empty +\def\fdfAfterheader +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\DLspecialDefs} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + \iwvo{\string\immediate\string\openout\string +\js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% + \iwvo{\string\begin{jsexpverbatimwrite}} + \iwvo{\string\firstFDFline} + \iwvo{1 0 obj} + \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R /After 3 0 R >> >> >> } + \iwvo{endobj} + \iwvo{2 0 obj} + \let\x\@empty + \applydljs{\def\x{^^Jvar _thereisdjs=true;}}% + \ifpdfmarkup + \iwvo{[ (ExecJS \dljsBase) (var _\dljsBase\space = true;\x) ] }\else + \iwvo{[ (00 ExecJS \dljsBase) (var _\dljsBase\space = true;\x)] }\fi + \iwvo{endobj} + \iwvo{3 0 obj} + \iwvo{<<>>} + \iwvo{stream} +} +\newenvironment{execJS}[1] +{% + \gdef\detectdljs{\string_#1}\gdef\dljsBase{#1}% + \global\dljsobjtoks={}% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \ifx\importdljs\dl@YES\ifx\execjs\dl@YES + \ifx\dl@gopro\dl@YES + \ifnum\dljs@drivernum=0\relax + \addImportAnFDF\importAnFDFTemplate + \else + \OpenAction{/S/JavaScript/JS (\importAnFDFTemplate)}% + \fi\fi + \fi\fi + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \fdfAfterheader + \js@verbatimwrite +}{% + \fdfendstreamobj + \endjs@verbatimwrite + \fdftrailer + \closejs@verbatim@out + \expandafter\xdef\csname\dljsBase OBJ\endcsname{\the\dljsobjtoks}% + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}\@dljstmp +} +\newtoks\JStoks +\newenvironment{defineJS}[2][] +{% + \expandafter\@ifundefined\expandafter{% + \expandafter\@gobble\string#2}{}{% + \PackageWarning{insdljs}{The command + \string#2 already defined}}% + \gdef\defineJSArg{#2}\JStoks={}% + \def\verbatim@processline + {% + \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% + \global\JStoks=\expandafter{\JS@temp}% + }% + \let\do\@makeother\dospecials\catcode`\^^M\active + #1% + \verbatim@start +}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% + \aftergroup\eq@JStemp} +\newenvironment{@defineJS}[2][] +{% + \gdef\defineJSArg{#2}\JStoks={}% + \def\verbatim@processline + {% + \xdef\JS@temp{\the\JStoks\the\verbatim@line\defineJSjsR}% + \global\JStoks=\expandafter{\JS@temp}% + }% + \let\do\@makeother\dospecials\catcode`\^^M\active + #1% + \verbatim@start +}{\gdef\eq@JStemp{\expandafter\edef\defineJSArg{\the\JStoks}}% + \aftergroup\eq@JStemp} +\newenvironment{localJS}[1][]{}{\ifvmode\else\unskip\fi} +\newenvironment{willClose}[1][] +{\@defineJS[#1]{\will@Close}} +{\end@defineJS} +\let\will@Close\@empty +\newenvironment{willSave}[1][] +{\@defineJS[#1]{\will@Save}} +{\end@defineJS} +\let\will@Save\@empty +\newenvironment{didSave}[1][] +{\@defineJS[#1]{\did@Save}} +{\end@defineJS} +\let\did@Save\@empty +\newenvironment{willPrint}[1][] +{\@defineJS[#1]{\will@Print}} +{\end@defineJS} +\let\will@Print\@empty +\newenvironment{didPrint}[1][] +{\@defineJS[#1]{\did@Print}} +{\end@defineJS} +\let\did@Print\@empty +\def\dljs@willDidActions{/AA << + \ifx\test@will@Close\@empty\else/WC << + \JS{\will@Close} >>\fi + \ifx\test@will@Save\@empty\else/WS << + \JS{\will@Save} >>\fi + \ifx\test@did@Save\@empty\else/DS << + \JS{\did@Save} >>\fi + \ifx\test@will@Print\@empty\else/WP << + \JS{\will@Print} >>\fi + \ifx\test@did@Print\@empty\else/DP << + \JS{\did@Print} >>\fi + >> +} +\newcommand\dljs@setDocActions{% + \edef\test@will@Close{\will@Close}% + \edef\test@will@Save{\will@Save}% + \edef\test@did@Save{\did@Save}% + \edef\test@will@Print{\will@Print}% + \edef\test@did@Print{\did@Print}% + \ifpdf\pdfcatalog{\dljs@willDidActions}\else + \ifxetex\immediate + \@pdfm@mark{put @catalog <<\dljs@willDidActions>>}\else + \literalps@out{\AEB@psMrk + {Catalog} <<\dljs@willDidActions>> /PUT pdfmark}\fi\fi +} +\@ifpackageloaded{aeb_pro}{} + {\AtBeginDocument{\dljs@setDocActions}} +\begingroup +\catcode`\%=12 +\gdef\firstFDFline{%FDF-1.2} +\gdef\lastFDFline{%%EOF} +\endgroup +\def\fdfheader +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + \iwvo{\string\immediate\string\openout\string + \js@verbatim@out=\string\js@Path\space\dljsBase.fdf}% + \iwvo{\string\begin{jsexpverbatimwrite}} + \iwvo{\string\firstFDFline} + \iwvo{1 0 obj} + \iwvo{<< /FDF << /JavaScript << /Doc 2 0 R >> >> >>} + \iwvo{endobj} + \iwvo{2 0 obj} + \iwvo{[ \string\csname\string\@gobble\space\dljsBase% + OBJ\string\endcsname]} + \iwvo{endobj} +} +\def\fdfbeginstreamobj +{% + \iwvo{\thedljssegs\space 0 obj} + \iwvo{<<>>} + \iwvo{stream} + \applydljs{\iwvo{var _thereisdjs=true;}} + \ifx\insdljsloadVar\@empty\else + \iwvo{\insdljsloadVar} + \global\let\insdljsloadVar\@empty + \fi +} +\def\fdfendstreamobj{% + \iwvo{endstream} + \iwvo{endobj} +} +\def\fdftrailer{% + \iwvo{trailer} + \iwvo{<< /Root 1 0 R >>} + \iwvo{\string\lastFDFline} + \iwvo{*end{jsexpverbatimwrite}} + \iwvo{\string\endgroup} +} +\newtoks\importfdftoks \importfdftoks={} +\newtoks\dljsobjtoks \dljsobjtoks={} +\def\importAnFDFTemplate{% +if(typeof \detectdljs\space == "undefined")\jsR\jsT + ( app.viewerVersion > 8 ) ? % + aebTrustedFunctions( this, aebImportAnFDF, % + "\js@Path\dljsBase.fdf") : % + this.importAnFDF("\js@Path\dljsBase.fdf");\jsR +} +\def\addImportAnFDF#1{% + \ifx\importdljs\dl@YES + \edef\importAnFDFtmp{\the\importfdftoks#1}% + \global\importfdftoks=\expandafter{\importAnFDFtmp}% + \fi +} +\def\importAnFDF{\ifx\importdljs\dl@YES\@OAction\fi} +\newenvironment{newsegment@pdfmark}[1]{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% + \edef\@dljstmp{\the\dljsobjtoks(\dljsName) + \thedljssegs\space 0 R\space} + \global\dljsobjtoks=\expandafter{\@dljstmp} + \fdfbeginstreamobj + \js@verbatimwrite +}{% + \fdfendstreamobj + \endjs@verbatimwrite +} +\def\insert@DLJS@pdfmark{% + \global\let\dljspresent\dl@YES + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \ifx\importdljs\dl@YES\ifx\dl@gopro\dl@YES + \addImportAnFDF\importAnFDFTemplate + \fi\fi + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \fdfheader + \ifx\multisegments\dl@NO\expandafter + \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi +} +\def\endinsert@DLJS@pdfmark{% + \ifx\importdljs\dl@YES + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \fdftrailer + \closejs@verbatim@out + \expandafter\xdef\csname\dljsBase% + OBJ\endcsname{\the\dljsobjtoks}% + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\firstdljs\dl@YES + \AtBeginDocument{\edef\@dljstmp{\importAnFDF}% + \@dljstmp}\global\let\firstdljs\dl@NO + \fi + \fi +} +\begingroup +\catcode`\@=0 @catcode`@\=12 +@gdef@ccpdftex{@gdef@eqesc{\\}@gdef@eqesci{\}} +@endgroup +\def\begindljs +{% + \iwvo{\string\begingroup\string\efdlspecials} + \iwvo{\string\isdljstrue} + \iwvo{\string\makeatletter} + {\uccode`c=`\%\uppercase{% + \iwvo{\string\obeyspaces\string\obeylines + \string\let\string^\string^M=\string\jsR c}}} + {\escapechar=-1 \lccode`C=`\%\lowercase{% + \iwvo{\string\\catcode`\string\\"=12C}}} +} +\def\beginseg{% + {\lccode`P=`\{\lccode`C=`\%\lowercase{% + \iwvo{\string\gdef\string\dljs\dljsBase\roman{dljssegs}PC}}}% + \applydljs{\iwvo{var _thereisdjs=true;}}% +} +\def\endseg{{\uccode`c=`\%\uccode`p=`\}\uppercase{\iwvo{pc}}}} +\def\enddljs{\iwvo{\string\endgroup}} +\def\@roman#1{\romannumeral#1} +\def\write@objs{% + \iwvo{\begingroup} + \iwvo{\string\catcode`\string\<=12 } + \iwvo{\string\catcode`\string\>=12 } + {\lccode`C=`\%\lowercase{\iwvo{\string\ccpdftex C}}} + {\lccode`C=`\%\lowercase{\iwvo{% + \string\input{dljscc.def}C\the\dljsobjtoks}}} + \iwvo{\endgroup} +} +\newenvironment{newsegment@pdftex}[1]{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \edef\tmp{^^J\string\immediate\string\pdfobj{ << /S/JavaScript/JS% + (\string\dljs\dljsBase\roman{dljssegs}) >> }}% + \edef\@dljstmp{\the\dljsobjtoks\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\tmp{^^J\string\xdef\string\obj\dljsBase\roman{dljssegs}% + {\string\the\string\pdflastobj\string\space 0 R}}% + \edef\@dljstmp{\the\dljsobjtoks\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% + \Hy@unicodefalse\pdfstringdef{\dljsName}{#1}% + \edef\dljspdftextmp + {\the\importfdftoks (\curr@Cnt\space\dljsName) + \noexpand\csname obj\dljsBase\roman{dljssegs}% + \noexpand\endcsname\space}% + \global\importfdftoks=\expandafter{\dljspdftextmp}% + \beginseg + \js@verbatimwrite +}{% + \endjs@verbatimwrite + \endseg +} +\newenvironment{insert@DLJS@pdftex}{% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \begindljs + \ifx\multisegments\dl@NO\expandafter + \newsegment\expandafter{\expandafter\dljsName\expandafter}\fi +}{% + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \enddljs + \write@objs + \endjs@verbatimwrite + \closejs@verbatim@out + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\importdljs\dl@YES + \ifx\firstdljs\dl@YES + \AtEndDocument{\edef\@dljstmp{\setDLJSRef@pdftex}\@dljstmp} + \global\let\firstdljs\dl@NO + \fi + \fi +} +\def\setDLJSRef@pdftex +{% + \noexpand\immediate\noexpand\pdfobj {% + << /Names [\the\importfdftoks] >> }% + \edef\noexpand\objNames{\noexpand\the\noexpand\pdflastobj\space 0 R}% + \pdfnames {/JavaScript \noexpand\objNames}% +} +\newenvironment{newsegment@dvipdfm}[1] +{% + \addtocounter{dljssegs}{1}% + \addtocounter{dljs@cnt}{1}% + \edef\tmp{^^J\string\immediate\string + \csname\space @pdfm@mark\string\endcsname + {obj @obj\dljsBase\roman{dljssegs}\space << /S/JavaScript% + /JS(\string\dljs\dljsBase\roman{dljssegs}) >> }}% + \edef\@dljstmp{\the\dljsobjtoks\space\tmp}% + \global\dljsobjtoks=\expandafter{\@dljstmp}% + \edef\curr@Cnt{\ifnum\arabic{dljs@cnt}<10 0\fi\arabic{dljs@cnt}}% + {\def\1{\string\1}\def\2{\string2}% + \def\3{\string\3}\xdef\dljsName{#1}}% + \edef\dljspdftextmp + {\the\importfdftoks (\curr@Cnt\space \dljsName) % + @obj\dljsBase\roman{dljssegs}\space}% + \global\importfdftoks=\expandafter{\dljspdftextmp}% + \beginseg + \js@verbatimwrite +}{% + \endjs@verbatimwrite + \endseg +} +\def\setDLJSRef@dvipdfm +{% + \immediate\@pdfm@mark{obj @objnames % + << /Names [\the\importfdftoks] >> }% + \@pdfm@mark{put @names % + << /JavaScript @objnames >> }% +} +\newenvironment{insert@DLJS@dvipdfm} +{% + \expandafter\gdef\csname dljs\dljsBase\endcsname{}% + \immediate\openout \js@verbatim@out \js@Path\dljsBase.djs + \begindljs + \ifx\multisegments\dl@NO\expandafter\newsegment\expandafter{% + \expandafter\dljsName\expandafter}\fi +}{% + \ifx\multisegments\dl@NO\expandafter\endnewsegment\fi + \enddljs + \write@objs + \endjs@verbatimwrite + \closejs@verbatim@out + \edef\@dljstmp{\noexpand\AtBeginDocument{% + \noexpand\input{\js@Path\dljsBase.djs}}}% + \@dljstmp + \ifx\importdljs\dl@YES + \ifx\firstdljs\dl@YES + \AtBeginDocument{\setDLJSRef@dvipdfm}% + \global\let\firstdljs\dl@NO + \fi + \fi +} +\catcode`\"=\dl@dquoteCat +\inputAltAdbFncs +\endinput +%% +%% End of file `insdljs.sty'. diff --git a/texmf-dist/tex/latex/acrotex/pdfdochex.def b/texmf-dist/tex/latex/acrotex/pdfdochex.def index 41ac2fb1..758789df 100644 --- a/texmf-dist/tex/latex/acrotex/pdfdochex.def +++ b/texmf-dist/tex/latex/acrotex/pdfdochex.def @@ -1,278 +1,278 @@ -%% -%% This is file `pdfdochex.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,hexoctcodes') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\HexGlyph{00}{efHxError}%{000} -\HexGlyph{01}{efHxError}%{001} -\HexGlyph{02}{efHxError}%{002} -\HexGlyph{03}{efHxError}%{003} -\HexGlyph{04}{efHxError}%{004} -\HexGlyph{05}{efHxError}%{005} -\HexGlyph{06}{efHxError}%{006} -\HexGlyph{07}{efHxError}%{006} -\HexGlyph{08}{efHxError}%{008} -\HexGlyph{09}{efHxError}%{009} -\HexGlyph{0A}{efHxError}%{012} -\HexGlyph{0B}{efHxError}%{013} -\HexGlyph{0C}{efHxError}%{014} -\HexGlyph{0D}{efHxError}%{015} -\HexGlyph{0E}{efHxError}%{016} -\HexGlyph{0F}{efHxError}%{017} -\HexGlyph{10}{efHxError}%{020} -\HexGlyph{11}{efHxError}%{021} -\HexGlyph{12}{efHxError}%{022} -\HexGlyph{13}{efHxError}%{023} -\HexGlyph{14}{efHxError}%{024} -\HexGlyph{15}{efHxError}%{025} -\HexGlyph{16}{efHxError}%{026} -\HexGlyph{17}{efHxError}%{027} -\HexGlyph{18}{030}% U+02D8 BREVE -\HexGlyph{19}{031}% U+02c7 CARON -\HexGlyph{1A}{032}% U+02c6 MODIFIER LETTER CIRCUMFLEX ACCENT -\HexGlyph{1B}{033}% U+02D9 DOT ABOVE -\HexGlyph{1C}{034}% U+02DD DOUBLE ACUTE ACCENT -\HexGlyph{1D}{035}% U+02DB OGONEK -\HexGlyph{1E}{036}% U+02DA RING ABOVEZ -\HexGlyph{1F}{037}% U+02DC SMALL TILDE -\HexGlyph{20}{040}% U+0020 SPACE -\HexGlyph{21}{041}% U+0021 EXCLAMATION MARK -\HexGlyph{22}{042}% U+0022 QUOTATION MARK -\HexGlyph{23}{043}% U+0022 NUMBER SIGN -\HexGlyph{24}{044}% U+0023 DOLLAR SIGN -\HexGlyph{25}{045}% U+002 PERCENT SIGN -\HexGlyph{26}{046}% U+0026 AMPERSAND -\HexGlyph{27}{047}% U+0027 APOSTROPHE -\HexGlyph{28}{050}% U+0028 LEFT PARENTHESIS -\HexGlyph{29}{051}% U+0029 RIGHT PAENTHESIS -\HexGlyph{2A}{052}% U+002A ASTERISK -\HexGlyph{2B}{053}% U+002B PLUS SIGN -\HexGlyph{2C}{054}% U+002C COMMA -\HexGlyph{2D}{055}% U+002D HYPHEN-MINUS -\HexGlyph{2E}{056}% U+002E FULL STOP -\HexGlyph{2F}{057}% U+002F SOLIDUS -\HexGlyph{30}{060}% U+0030 ZERO -\HexGlyph{31}{061}% U+0031 ONE -\HexGlyph{32}{062}% U+0032 TWO -\HexGlyph{33}{063}% U+0033 THREE -\HexGlyph{34}{064}% U+0034 FOUR -\HexGlyph{35}{065}% U+0035 FIVE -\HexGlyph{36}{066}% U+0036 SIX -\HexGlyph{37}{067}% U+0037 SEVEN -\HexGlyph{38}{070}% U+0038 EIGHT -\HexGlyph{39}{071}% U+0039 NINE -\HexGlyph{3A}{072}% U+003A COLON -\HexGlyph{3B}{073}% U+003B SEMICOLON -\HexGlyph{3C}{074}% U+003C LESS-THAN SIGN -\HexGlyph{3D}{075}% U+003D EQUALS SIGN -\HexGlyph{3E}{076}% U+003E GREATER-THAN SIGN -\HexGlyph{3F}{077}% U+003F QUESTION MARK -\HexGlyph{40}{100}% U+0040 COMMERCIAL AT -\HexGlyph{41}{101}% U+0041 CAPITAL LETTER A -\HexGlyph{42}{102}% U+0042 B -\HexGlyph{43}{103}% U+0043 C -\HexGlyph{44}{104}% U+0044 D -\HexGlyph{45}{105}% U+0045 E -\HexGlyph{46}{106}% U+0046 F -\HexGlyph{47}{107}% U+0047 G -\HexGlyph{48}{110}% U+0048 H -\HexGlyph{49}{111}% U+0049 I -\HexGlyph{4A}{112}% U+004A J -\HexGlyph{4B}{113}% U+004B K -\HexGlyph{4C}{114}% U+004C L -\HexGlyph{4D}{115}% U+004D M -\HexGlyph{4E}{116}% U+004E N -\HexGlyph{4F}{117}% U+004F O -\HexGlyph{50}{120}% U+0050 P -\HexGlyph{51}{121}% U+0051 Q -\HexGlyph{52}{122}% U+0052 R -\HexGlyph{53}{123}% U+0053 S -\HexGlyph{54}{124}% U+0054 T -\HexGlyph{55}{125}% U+0055 U -\HexGlyph{56}{126}% U+0056 V -\HexGlyph{57}{127}% U+0057 W -\HexGlyph{58}{130}% U+0058 X -\HexGlyph{59}{131}% U+0059 Y -\HexGlyph{5A}{132}% U+005A Z -\HexGlyph{5B}{133}% U+005B LEFT SQUARE BRACKET -\HexGlyph{5C}{134}% U+005C REVERSE SOLIDUS (BACKSLASH) -\HexGlyph{5D}{135}% U+005D RIGHT SQUARE BRACKET -\HexGlyph{5E}{136}% U+005E CIRCUMFLEX ACCENT -\HexGlyph{5F}{137}% U+005F LOW LINE -\HexGlyph{60}{140}% U+0060 GRAVE ACCENT -\HexGlyph{61}{141}% U+0061 LATIN SMALL LETTER a -\HexGlyph{62}{142}% U+0062 b -\HexGlyph{63}{143}% U+0063 c -\HexGlyph{64}{144}% U+0064 d -\HexGlyph{65}{145}% U+0065 e -\HexGlyph{66}{146}% U+0066 f -\HexGlyph{67}{147}% U+0067 g -\HexGlyph{68}{150}% U+0068 h -\HexGlyph{69}{151}% U+0069 i -\HexGlyph{6A}{152}% U+006A j -\HexGlyph{6B}{153}% U+006B k -\HexGlyph{6C}{154}% U+006C l -\HexGlyph{6D}{155}% U+006D m -\HexGlyph{6E}{156}% U+006E n -\HexGlyph{6F}{157}% U+006F o -\HexGlyph{70}{160}% U+0070 p -\HexGlyph{71}{161}% U+0071 q -\HexGlyph{72}{162}% U+0072 r -\HexGlyph{73}{163}% U+0073 s -\HexGlyph{74}{164}% U+0074 t -\HexGlyph{75}{165}% U+0075 u -\HexGlyph{76}{166}% U+0076 v -\HexGlyph{77}{167}% U+0077 w -\HexGlyph{78}{170}% U+0078 x -\HexGlyph{79}{171}% U+0079 y -\HexGlyph{7A}{172}% U+007A z -\HexGlyph{7B}{173}% U+007B LEFT CURLY BRACKET -\HexGlyph{7C}{174}% U+007C VERTICAL LINE -\HexGlyph{7D}{175}% U+007D RIGHT CURLY BRACKET -\HexGlyph{7E}{176}% U+007E TILDE -\HexGlyph{7F}{efHxError}% 177 UNDEFINED IN PDFDOCENC -\HexGlyph{80}{200}% U+2022 BULLET -\HexGlyph{81}{201}% U+2020 DAGGER -\HexGlyph{82}{202}% U+2021 DOUBLE DAGGER -\HexGlyph{83}{203}% U+2026 HORIZONTAL ELLIPSIS -\HexGlyph{84}{204}% U+2014 EM DASH -\HexGlyph{85}{205}% U+2013 EN DASH -\HexGlyph{86}{206}% U+0192 LATIN SMALL LETTER F WITH HOOK -\HexGlyph{87}{207}% U+2044 FRACTION SLASH -\HexGlyph{88}{210}% U+2039 SINGLE LEFT-POINTING ANGLE QUOTE MARK -\HexGlyph{89}{211}% U+203A SINGLE RIGHT-POINTING ANGLE QUOTE MARK -\HexGlyph{8A}{212}% U+2212 MINUS-SIGN -\HexGlyph{8B}{213}% U+2030 PER MILL SIGN -\HexGlyph{8C}{214}% U+201E DOUBLE LOW-9 QUOTE MARK -\HexGlyph{8D}{215}% U+201C LEFT DOUBLE QUOTE MARK -\HexGlyph{8E}{216}% U+201C RIGHT DOUBLE QUOTE MARK -\HexGlyph{8F}{217}% U+2018 LEFT SINGLE QUOTE MARK -\HexGlyph{90}{220}% U+2019 RIGHT SINGLE QUOTE MARK -\HexGlyph{91}{221}% U+201A SINGLE LOW-9 QUOTE MARK -\HexGlyph{92}{222}% U+2122 TRADE MARK SIGN -\HexGlyph{93}{223}% U+FB01 LATIN SMALL LIGATURE FI -\HexGlyph{94}{224}% U+FB02 LATIN SMALL LIGATURE FL -\HexGlyph{95}{225}% U+0141 LATIN CAPITAL LETTER L WITH STROKE -\HexGlyph{96}{226}% U+0152 LATIN CAPITAL LIGATURE OE -\HexGlyph{97}{227}% U+0160 LATIN CAPITAL LETTER S WITH CARON -\HexGlyph{98}{230}% U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS -\HexGlyph{99}{231}% U+017D LATIN CAPITAL LETTER Z WITH CARON -\HexGlyph{9A}{232}% U+0131 LATIN SMALL LETTER DOTLESS I -\HexGlyph{9B}{233}% U+0142 LATIN SMALL LETTER L WITH STROKE -\HexGlyph{9C}{234}% U+0153 LATIN SMALL LIGATURE OE -\HexGlyph{9D}{235}% U+0161 LATIN SMALL LETTER S WITH CARON -\HexGlyph{9E}{236}% U+017E LATIN SMALL LETTER Z WITH CARON -\HexGlyph{9F}{efHxError}% 237 UNDEF IN PDFDOCENC -\HexGlyph{A0}{240}% U+20AC EURO SIGN -\HexGlyph{A1}{241}% U+00A1 INVERTED EXCLAMATION MARK -\HexGlyph{A2}{242}% U+00A2 CENT SIGN -\HexGlyph{A3}{243}% U+00A3 POUND SIGN -\HexGlyph{A4}{244}% U+00A4 CURRENCY SIGN -\HexGlyph{A5}{245}% U+00A5 YEN SIGN -\HexGlyph{A6}{246}% U+00A6 BROKEN BAR -\HexGlyph{A7}{247}% U+00A7 SECTION SIGN -\HexGlyph{A8}{250}% U+00A8 DIAERESIS -\HexGlyph{A9}{251}% U+00A9 COPYRIGHT SIGN -\HexGlyph{AA}{252}% U+00AA FEMININE ORDINAL INDICATOR -\HexGlyph{AB}{253}% U+00AB LEFT-POINTING DOUBLE ANGLE QUOTE MARK -\HexGlyph{AC}{254}% U+00AC NOT SIGN -\HexGlyph{AD}{efHxError}% 255 UNDEFINED IN PDFDOCENC -\HexGlyph{AE}{256}% U+00AE REGISTERED SIGN -\HexGlyph{AF}{257}% U+00AF MACRON -\HexGlyph{B0}{260}% U+00B0 DEGREE SIGN -\HexGlyph{B1}{261}% U+00B1 PLUS-MINUS SIGN -\HexGlyph{B2}{262}% U+00B2 SUPERSCRIPT 2 -\HexGlyph{B3}{263}% U+00B3 SUPERSCRIPT 3 -\HexGlyph{B4}{264}% U+00B4 ACUTE ACCENT -\HexGlyph{B5}{265}% U+00B5 MICRO SIGN -\HexGlyph{B6}{266}% U+00B6 PILCROW SIGN (PARAGRAPH SIGN) -\HexGlyph{B7}{267}% U+00B7 MIDDLE DOT -\HexGlyph{B8}{270}% U+00B8 CEDILLA -\HexGlyph{B9}{271}% U+00B9 SUPERSCRIPT ONE -\HexGlyph{BA}{272}% U+00BA MASCULINE ORDINAL INDICATOR -\HexGlyph{BB}{273}% U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTE MARK -\HexGlyph{BC}{274}% U+00BC VULGAR FRACTION ONE QUARTER -\HexGlyph{BD}{275}% U+00BD VULGAR FRACTION ONE HALF -\HexGlyph{BE}{276}% U+00BE VULGAR FRACTION THREE QUARTERS -\HexGlyph{BF}{277}% U+00BF INVERTED QUESTION MARK -\HexGlyph{C0}{300}% U+00C0 LATIN CAPITAL LETTER A WITH GRAVE -\HexGlyph{C1}{301}% U+00C1 LATIN CAPITAL LETTER A WITH ACUTE -\HexGlyph{C2}{302}% U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX -\HexGlyph{C3}{303}% U+00C3 LATIN CAPITAL LETTER A WITH TILDE -\HexGlyph{C4}{304}% U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS -\HexGlyph{C5}{305}% U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE -\HexGlyph{C6}{306}% U+00C6 LATIN CAPITAL LETTER AE -\HexGlyph{C7}{307}% U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA -\HexGlyph{C8}{310}% U+00C8 LATIN CAPITAL LETTER E WITH GRAVE -\HexGlyph{C9}{311}% U+00C9 LATIN CAPITAL LETTER E WITH ACUTE -\HexGlyph{CA}{312}% U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX -\HexGlyph{CB}{313}% U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS -\HexGlyph{CC}{314}% U+00CC LATIN CAPITAL LETTER I WITH GRAVE -\HexGlyph{CD}{315}% U+00CD LATIN CAPITAL LETTER I WITH ACUTE -\HexGlyph{CE}{316}% U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX -\HexGlyph{CF}{317}% U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS -\HexGlyph{D0}{320}% U+00D0 LATIN CAPITAL LETTER ETH -\HexGlyph{D1}{321}% U+00D1 LATIN CAPITAL LETTER D WITH TILDE -\HexGlyph{D2}{322}% U+00D2 LATIN CAPITAL LETTER O WITH GRAVE -\HexGlyph{D3}{323}% U+00D3 LATIN CAPITAL LETTER O WITH ACUTE -\HexGlyph{D4}{324}% U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX -\HexGlyph{D5}{325}% U+00D5 LATIN CAPITAL LETTER O WITH TILDE -\HexGlyph{D6}{326}% U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS -\HexGlyph{D7}{327}% U+00D7 MULTIPLICATION SIGN -\HexGlyph{D8}{330}% U+00D8 LATIN CAPITAL LETTER O WITH STROKE -\HexGlyph{D9}{331}% U+00D9 LATIN CAPITAL LETTER U WITH GRAVE -\HexGlyph{DA}{332}% U+00DA LATIN CAPITAL LETTER U WITH ACUTE -\HexGlyph{DB}{333}% U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX -\HexGlyph{DC}{334}% U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS -\HexGlyph{DD}{335}% U+00DD LATIN CAPITAL LETTER Y WITH ACUTE -\HexGlyph{DE}{336}% U+00DE LATIN CAPITAL LETTER THORN -\HexGlyph{DF}{337}% U+00DF LATIN CAPITAL LETTER SHARP S (Eszett) -\HexGlyph{E0}{340}% U+00E0 LATIN SMALL LETTER A WITH GRAVE -\HexGlyph{E1}{341}% U+00E1 LATIN SMALL LETTER A WITH ACUTE -\HexGlyph{E2}{342}% U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX -\HexGlyph{E3}{343}% U+00E3 LATIN SMALL LETTER A WITH TILDE -\HexGlyph{E4}{344}% U+00E4 LATIN SMALL LETTER A WITH DIAERESIS -\HexGlyph{E5}{345}% U+00E5 LATIN SMALL LETTER A WITH RING ABOVE -\HexGlyph{E6}{346}% U+00E6 LATIN SMALL LETTER AE -\HexGlyph{E7}{347}% U+00E7 LATIN SMALL LETTER C WITH CEDILLA -\HexGlyph{E8}{350}% U+00E8 LATIN SMALL LETTER E WITH GRAVE -\HexGlyph{E9}{351}% U+00E9 LATIN SMALL LETTER E WITH ACUTE -\HexGlyph{EA}{352}% U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX -\HexGlyph{EB}{353}% U+00EB LATIN SMALL LETTER E WITH DIAERESIS -\HexGlyph{EC}{354}% U+00EC LATIN SMALL LETTER I WITH GRAVE -\HexGlyph{ED}{355}% U+00ED LATIN SMALL LETTER I WITH ACUTE -\HexGlyph{EE}{356}% U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX -\HexGlyph{EF}{357}% U+00EF LATIN SMALL LETTER I WITH DIAERESIS -\HexGlyph{F0}{360}% U+00F0 LATIN SMALL LETTER ETH -\HexGlyph{F1}{361}% U+00F1 LATIN SMALL LETTER N WITH TILDE -\HexGlyph{F2}{362}% U+00F2 LATIN SMALL LETTER O WITH GRAVE -\HexGlyph{F3}{363}% U+00F3 LATIN SMALL LETTER O WITH ACUTE -\HexGlyph{F4}{364}% U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX -\HexGlyph{F5}{365}% U+00F5 LATIN SMALL LETTER O WITH DIAERESIS -\HexGlyph{F6}{366}% U+00F6 LATIN SMALL LETTER C WITH ETH -\HexGlyph{F7}{367}% U+00F7 DIVISION SIGN -\HexGlyph{F8}{270}% U+00F8 LATIN SMALL LETTER O WITH STROKE -\HexGlyph{F9}{271}% U+00F9 LATIN SMALL LETTER U WITH GRAVE -\HexGlyph{FA}{272}% U+00FA LATIN SMALL LETTER U WITH ACUTE -\HexGlyph{FB}{273}% U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX -\HexGlyph{FC}{374}% U+00FC LATIN SMALL LETTER U WITH DIAERESIS -\HexGlyph{FD}{375}% U+00FD LATIN SMALL LETTER Y WITH ACUTE -\HexGlyph{FE}{376}% U+00FE LATIN SMALL LETTER C THORN -\HexGlyph{FF}{377}% U+00FF LATIN SMALL LETTER Y WITH DIAERESIS -\endinput -%% -%% End of file `pdfdochex.def'. +%% +%% This is file `pdfdochex.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,hexoctcodes') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\HexGlyph{00}{efHxError}%{000} +\HexGlyph{01}{efHxError}%{001} +\HexGlyph{02}{efHxError}%{002} +\HexGlyph{03}{efHxError}%{003} +\HexGlyph{04}{efHxError}%{004} +\HexGlyph{05}{efHxError}%{005} +\HexGlyph{06}{efHxError}%{006} +\HexGlyph{07}{efHxError}%{006} +\HexGlyph{08}{efHxError}%{008} +\HexGlyph{09}{efHxError}%{009} +\HexGlyph{0A}{efHxError}%{012} +\HexGlyph{0B}{efHxError}%{013} +\HexGlyph{0C}{efHxError}%{014} +\HexGlyph{0D}{efHxError}%{015} +\HexGlyph{0E}{efHxError}%{016} +\HexGlyph{0F}{efHxError}%{017} +\HexGlyph{10}{efHxError}%{020} +\HexGlyph{11}{efHxError}%{021} +\HexGlyph{12}{efHxError}%{022} +\HexGlyph{13}{efHxError}%{023} +\HexGlyph{14}{efHxError}%{024} +\HexGlyph{15}{efHxError}%{025} +\HexGlyph{16}{efHxError}%{026} +\HexGlyph{17}{efHxError}%{027} +\HexGlyph{18}{030}% U+02D8 BREVE +\HexGlyph{19}{031}% U+02c7 CARON +\HexGlyph{1A}{032}% U+02c6 MODIFIER LETTER CIRCUMFLEX ACCENT +\HexGlyph{1B}{033}% U+02D9 DOT ABOVE +\HexGlyph{1C}{034}% U+02DD DOUBLE ACUTE ACCENT +\HexGlyph{1D}{035}% U+02DB OGONEK +\HexGlyph{1E}{036}% U+02DA RING ABOVEZ +\HexGlyph{1F}{037}% U+02DC SMALL TILDE +\HexGlyph{20}{040}% U+0020 SPACE +\HexGlyph{21}{041}% U+0021 EXCLAMATION MARK +\HexGlyph{22}{042}% U+0022 QUOTATION MARK +\HexGlyph{23}{043}% U+0022 NUMBER SIGN +\HexGlyph{24}{044}% U+0023 DOLLAR SIGN +\HexGlyph{25}{045}% U+002 PERCENT SIGN +\HexGlyph{26}{046}% U+0026 AMPERSAND +\HexGlyph{27}{047}% U+0027 APOSTROPHE +\HexGlyph{28}{050}% U+0028 LEFT PARENTHESIS +\HexGlyph{29}{051}% U+0029 RIGHT PAENTHESIS +\HexGlyph{2A}{052}% U+002A ASTERISK +\HexGlyph{2B}{053}% U+002B PLUS SIGN +\HexGlyph{2C}{054}% U+002C COMMA +\HexGlyph{2D}{055}% U+002D HYPHEN-MINUS +\HexGlyph{2E}{056}% U+002E FULL STOP +\HexGlyph{2F}{057}% U+002F SOLIDUS +\HexGlyph{30}{060}% U+0030 ZERO +\HexGlyph{31}{061}% U+0031 ONE +\HexGlyph{32}{062}% U+0032 TWO +\HexGlyph{33}{063}% U+0033 THREE +\HexGlyph{34}{064}% U+0034 FOUR +\HexGlyph{35}{065}% U+0035 FIVE +\HexGlyph{36}{066}% U+0036 SIX +\HexGlyph{37}{067}% U+0037 SEVEN +\HexGlyph{38}{070}% U+0038 EIGHT +\HexGlyph{39}{071}% U+0039 NINE +\HexGlyph{3A}{072}% U+003A COLON +\HexGlyph{3B}{073}% U+003B SEMICOLON +\HexGlyph{3C}{074}% U+003C LESS-THAN SIGN +\HexGlyph{3D}{075}% U+003D EQUALS SIGN +\HexGlyph{3E}{076}% U+003E GREATER-THAN SIGN +\HexGlyph{3F}{077}% U+003F QUESTION MARK +\HexGlyph{40}{100}% U+0040 COMMERCIAL AT +\HexGlyph{41}{101}% U+0041 CAPITAL LETTER A +\HexGlyph{42}{102}% U+0042 B +\HexGlyph{43}{103}% U+0043 C +\HexGlyph{44}{104}% U+0044 D +\HexGlyph{45}{105}% U+0045 E +\HexGlyph{46}{106}% U+0046 F +\HexGlyph{47}{107}% U+0047 G +\HexGlyph{48}{110}% U+0048 H +\HexGlyph{49}{111}% U+0049 I +\HexGlyph{4A}{112}% U+004A J +\HexGlyph{4B}{113}% U+004B K +\HexGlyph{4C}{114}% U+004C L +\HexGlyph{4D}{115}% U+004D M +\HexGlyph{4E}{116}% U+004E N +\HexGlyph{4F}{117}% U+004F O +\HexGlyph{50}{120}% U+0050 P +\HexGlyph{51}{121}% U+0051 Q +\HexGlyph{52}{122}% U+0052 R +\HexGlyph{53}{123}% U+0053 S +\HexGlyph{54}{124}% U+0054 T +\HexGlyph{55}{125}% U+0055 U +\HexGlyph{56}{126}% U+0056 V +\HexGlyph{57}{127}% U+0057 W +\HexGlyph{58}{130}% U+0058 X +\HexGlyph{59}{131}% U+0059 Y +\HexGlyph{5A}{132}% U+005A Z +\HexGlyph{5B}{133}% U+005B LEFT SQUARE BRACKET +\HexGlyph{5C}{134}% U+005C REVERSE SOLIDUS (BACKSLASH) +\HexGlyph{5D}{135}% U+005D RIGHT SQUARE BRACKET +\HexGlyph{5E}{136}% U+005E CIRCUMFLEX ACCENT +\HexGlyph{5F}{137}% U+005F LOW LINE +\HexGlyph{60}{140}% U+0060 GRAVE ACCENT +\HexGlyph{61}{141}% U+0061 LATIN SMALL LETTER a +\HexGlyph{62}{142}% U+0062 b +\HexGlyph{63}{143}% U+0063 c +\HexGlyph{64}{144}% U+0064 d +\HexGlyph{65}{145}% U+0065 e +\HexGlyph{66}{146}% U+0066 f +\HexGlyph{67}{147}% U+0067 g +\HexGlyph{68}{150}% U+0068 h +\HexGlyph{69}{151}% U+0069 i +\HexGlyph{6A}{152}% U+006A j +\HexGlyph{6B}{153}% U+006B k +\HexGlyph{6C}{154}% U+006C l +\HexGlyph{6D}{155}% U+006D m +\HexGlyph{6E}{156}% U+006E n +\HexGlyph{6F}{157}% U+006F o +\HexGlyph{70}{160}% U+0070 p +\HexGlyph{71}{161}% U+0071 q +\HexGlyph{72}{162}% U+0072 r +\HexGlyph{73}{163}% U+0073 s +\HexGlyph{74}{164}% U+0074 t +\HexGlyph{75}{165}% U+0075 u +\HexGlyph{76}{166}% U+0076 v +\HexGlyph{77}{167}% U+0077 w +\HexGlyph{78}{170}% U+0078 x +\HexGlyph{79}{171}% U+0079 y +\HexGlyph{7A}{172}% U+007A z +\HexGlyph{7B}{173}% U+007B LEFT CURLY BRACKET +\HexGlyph{7C}{174}% U+007C VERTICAL LINE +\HexGlyph{7D}{175}% U+007D RIGHT CURLY BRACKET +\HexGlyph{7E}{176}% U+007E TILDE +\HexGlyph{7F}{efHxError}% 177 UNDEFINED IN PDFDOCENC +\HexGlyph{80}{200}% U+2022 BULLET +\HexGlyph{81}{201}% U+2020 DAGGER +\HexGlyph{82}{202}% U+2021 DOUBLE DAGGER +\HexGlyph{83}{203}% U+2026 HORIZONTAL ELLIPSIS +\HexGlyph{84}{204}% U+2014 EM DASH +\HexGlyph{85}{205}% U+2013 EN DASH +\HexGlyph{86}{206}% U+0192 LATIN SMALL LETTER F WITH HOOK +\HexGlyph{87}{207}% U+2044 FRACTION SLASH +\HexGlyph{88}{210}% U+2039 SINGLE LEFT-POINTING ANGLE QUOTE MARK +\HexGlyph{89}{211}% U+203A SINGLE RIGHT-POINTING ANGLE QUOTE MARK +\HexGlyph{8A}{212}% U+2212 MINUS-SIGN +\HexGlyph{8B}{213}% U+2030 PER MILL SIGN +\HexGlyph{8C}{214}% U+201E DOUBLE LOW-9 QUOTE MARK +\HexGlyph{8D}{215}% U+201C LEFT DOUBLE QUOTE MARK +\HexGlyph{8E}{216}% U+201C RIGHT DOUBLE QUOTE MARK +\HexGlyph{8F}{217}% U+2018 LEFT SINGLE QUOTE MARK +\HexGlyph{90}{220}% U+2019 RIGHT SINGLE QUOTE MARK +\HexGlyph{91}{221}% U+201A SINGLE LOW-9 QUOTE MARK +\HexGlyph{92}{222}% U+2122 TRADE MARK SIGN +\HexGlyph{93}{223}% U+FB01 LATIN SMALL LIGATURE FI +\HexGlyph{94}{224}% U+FB02 LATIN SMALL LIGATURE FL +\HexGlyph{95}{225}% U+0141 LATIN CAPITAL LETTER L WITH STROKE +\HexGlyph{96}{226}% U+0152 LATIN CAPITAL LIGATURE OE +\HexGlyph{97}{227}% U+0160 LATIN CAPITAL LETTER S WITH CARON +\HexGlyph{98}{230}% U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS +\HexGlyph{99}{231}% U+017D LATIN CAPITAL LETTER Z WITH CARON +\HexGlyph{9A}{232}% U+0131 LATIN SMALL LETTER DOTLESS I +\HexGlyph{9B}{233}% U+0142 LATIN SMALL LETTER L WITH STROKE +\HexGlyph{9C}{234}% U+0153 LATIN SMALL LIGATURE OE +\HexGlyph{9D}{235}% U+0161 LATIN SMALL LETTER S WITH CARON +\HexGlyph{9E}{236}% U+017E LATIN SMALL LETTER Z WITH CARON +\HexGlyph{9F}{efHxError}% 237 UNDEF IN PDFDOCENC +\HexGlyph{A0}{240}% U+20AC EURO SIGN +\HexGlyph{A1}{241}% U+00A1 INVERTED EXCLAMATION MARK +\HexGlyph{A2}{242}% U+00A2 CENT SIGN +\HexGlyph{A3}{243}% U+00A3 POUND SIGN +\HexGlyph{A4}{244}% U+00A4 CURRENCY SIGN +\HexGlyph{A5}{245}% U+00A5 YEN SIGN +\HexGlyph{A6}{246}% U+00A6 BROKEN BAR +\HexGlyph{A7}{247}% U+00A7 SECTION SIGN +\HexGlyph{A8}{250}% U+00A8 DIAERESIS +\HexGlyph{A9}{251}% U+00A9 COPYRIGHT SIGN +\HexGlyph{AA}{252}% U+00AA FEMININE ORDINAL INDICATOR +\HexGlyph{AB}{253}% U+00AB LEFT-POINTING DOUBLE ANGLE QUOTE MARK +\HexGlyph{AC}{254}% U+00AC NOT SIGN +\HexGlyph{AD}{efHxError}% 255 UNDEFINED IN PDFDOCENC +\HexGlyph{AE}{256}% U+00AE REGISTERED SIGN +\HexGlyph{AF}{257}% U+00AF MACRON +\HexGlyph{B0}{260}% U+00B0 DEGREE SIGN +\HexGlyph{B1}{261}% U+00B1 PLUS-MINUS SIGN +\HexGlyph{B2}{262}% U+00B2 SUPERSCRIPT 2 +\HexGlyph{B3}{263}% U+00B3 SUPERSCRIPT 3 +\HexGlyph{B4}{264}% U+00B4 ACUTE ACCENT +\HexGlyph{B5}{265}% U+00B5 MICRO SIGN +\HexGlyph{B6}{266}% U+00B6 PILCROW SIGN (PARAGRAPH SIGN) +\HexGlyph{B7}{267}% U+00B7 MIDDLE DOT +\HexGlyph{B8}{270}% U+00B8 CEDILLA +\HexGlyph{B9}{271}% U+00B9 SUPERSCRIPT ONE +\HexGlyph{BA}{272}% U+00BA MASCULINE ORDINAL INDICATOR +\HexGlyph{BB}{273}% U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTE MARK +\HexGlyph{BC}{274}% U+00BC VULGAR FRACTION ONE QUARTER +\HexGlyph{BD}{275}% U+00BD VULGAR FRACTION ONE HALF +\HexGlyph{BE}{276}% U+00BE VULGAR FRACTION THREE QUARTERS +\HexGlyph{BF}{277}% U+00BF INVERTED QUESTION MARK +\HexGlyph{C0}{300}% U+00C0 LATIN CAPITAL LETTER A WITH GRAVE +\HexGlyph{C1}{301}% U+00C1 LATIN CAPITAL LETTER A WITH ACUTE +\HexGlyph{C2}{302}% U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +\HexGlyph{C3}{303}% U+00C3 LATIN CAPITAL LETTER A WITH TILDE +\HexGlyph{C4}{304}% U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS +\HexGlyph{C5}{305}% U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE +\HexGlyph{C6}{306}% U+00C6 LATIN CAPITAL LETTER AE +\HexGlyph{C7}{307}% U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA +\HexGlyph{C8}{310}% U+00C8 LATIN CAPITAL LETTER E WITH GRAVE +\HexGlyph{C9}{311}% U+00C9 LATIN CAPITAL LETTER E WITH ACUTE +\HexGlyph{CA}{312}% U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX +\HexGlyph{CB}{313}% U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS +\HexGlyph{CC}{314}% U+00CC LATIN CAPITAL LETTER I WITH GRAVE +\HexGlyph{CD}{315}% U+00CD LATIN CAPITAL LETTER I WITH ACUTE +\HexGlyph{CE}{316}% U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX +\HexGlyph{CF}{317}% U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS +\HexGlyph{D0}{320}% U+00D0 LATIN CAPITAL LETTER ETH +\HexGlyph{D1}{321}% U+00D1 LATIN CAPITAL LETTER D WITH TILDE +\HexGlyph{D2}{322}% U+00D2 LATIN CAPITAL LETTER O WITH GRAVE +\HexGlyph{D3}{323}% U+00D3 LATIN CAPITAL LETTER O WITH ACUTE +\HexGlyph{D4}{324}% U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +\HexGlyph{D5}{325}% U+00D5 LATIN CAPITAL LETTER O WITH TILDE +\HexGlyph{D6}{326}% U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS +\HexGlyph{D7}{327}% U+00D7 MULTIPLICATION SIGN +\HexGlyph{D8}{330}% U+00D8 LATIN CAPITAL LETTER O WITH STROKE +\HexGlyph{D9}{331}% U+00D9 LATIN CAPITAL LETTER U WITH GRAVE +\HexGlyph{DA}{332}% U+00DA LATIN CAPITAL LETTER U WITH ACUTE +\HexGlyph{DB}{333}% U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX +\HexGlyph{DC}{334}% U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS +\HexGlyph{DD}{335}% U+00DD LATIN CAPITAL LETTER Y WITH ACUTE +\HexGlyph{DE}{336}% U+00DE LATIN CAPITAL LETTER THORN +\HexGlyph{DF}{337}% U+00DF LATIN CAPITAL LETTER SHARP S (Eszett) +\HexGlyph{E0}{340}% U+00E0 LATIN SMALL LETTER A WITH GRAVE +\HexGlyph{E1}{341}% U+00E1 LATIN SMALL LETTER A WITH ACUTE +\HexGlyph{E2}{342}% U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX +\HexGlyph{E3}{343}% U+00E3 LATIN SMALL LETTER A WITH TILDE +\HexGlyph{E4}{344}% U+00E4 LATIN SMALL LETTER A WITH DIAERESIS +\HexGlyph{E5}{345}% U+00E5 LATIN SMALL LETTER A WITH RING ABOVE +\HexGlyph{E6}{346}% U+00E6 LATIN SMALL LETTER AE +\HexGlyph{E7}{347}% U+00E7 LATIN SMALL LETTER C WITH CEDILLA +\HexGlyph{E8}{350}% U+00E8 LATIN SMALL LETTER E WITH GRAVE +\HexGlyph{E9}{351}% U+00E9 LATIN SMALL LETTER E WITH ACUTE +\HexGlyph{EA}{352}% U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX +\HexGlyph{EB}{353}% U+00EB LATIN SMALL LETTER E WITH DIAERESIS +\HexGlyph{EC}{354}% U+00EC LATIN SMALL LETTER I WITH GRAVE +\HexGlyph{ED}{355}% U+00ED LATIN SMALL LETTER I WITH ACUTE +\HexGlyph{EE}{356}% U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX +\HexGlyph{EF}{357}% U+00EF LATIN SMALL LETTER I WITH DIAERESIS +\HexGlyph{F0}{360}% U+00F0 LATIN SMALL LETTER ETH +\HexGlyph{F1}{361}% U+00F1 LATIN SMALL LETTER N WITH TILDE +\HexGlyph{F2}{362}% U+00F2 LATIN SMALL LETTER O WITH GRAVE +\HexGlyph{F3}{363}% U+00F3 LATIN SMALL LETTER O WITH ACUTE +\HexGlyph{F4}{364}% U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX +\HexGlyph{F5}{365}% U+00F5 LATIN SMALL LETTER O WITH DIAERESIS +\HexGlyph{F6}{366}% U+00F6 LATIN SMALL LETTER C WITH ETH +\HexGlyph{F7}{367}% U+00F7 DIVISION SIGN +\HexGlyph{F8}{270}% U+00F8 LATIN SMALL LETTER O WITH STROKE +\HexGlyph{F9}{271}% U+00F9 LATIN SMALL LETTER U WITH GRAVE +\HexGlyph{FA}{272}% U+00FA LATIN SMALL LETTER U WITH ACUTE +\HexGlyph{FB}{273}% U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX +\HexGlyph{FC}{374}% U+00FC LATIN SMALL LETTER U WITH DIAERESIS +\HexGlyph{FD}{375}% U+00FD LATIN SMALL LETTER Y WITH ACUTE +\HexGlyph{FE}{376}% U+00FE LATIN SMALL LETTER C THORN +\HexGlyph{FF}{377}% U+00FF LATIN SMALL LETTER Y WITH DIAERESIS +\endinput +%% +%% End of file `pdfdochex.def'. diff --git a/texmf-dist/tex/latex/acrotex/setcorder.def b/texmf-dist/tex/latex/acrotex/setcorder.def index 1135abd9..3826d623 100644 --- a/texmf-dist/tex/latex/acrotex/setcorder.def +++ b/texmf-dist/tex/latex/acrotex/setcorder.def @@ -1,66 +1,66 @@ -%% -%% This is file `setcorder.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,setcorder') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{insDLJS}{cojs}{eforms: JavaScript to set calculation order} -var debugCalc=false; -ef_setCalcOrder.lastIndex=0; -function ef_setCalcOrder (a) { - var o1, o2, f; - while ( a.length > 0) { - if (a.length > 1) { - f=a.shift(); - o1=this.getField(f); - if ( o1 == null ) { - ef_CalcOrderErr(f); - continue; - } - f = a[0]; - o2=this.getField(f); - if ( o2 == null ) { - ef_CalcOrderErr(f); - a.shift(); - continue; - } - if ( o2.calcOrderIndex < o1.calcOrderIndex ) { - o2.calcOrderIndex=o1.calcOrderIndex+1; -ef_setCalcOrder.lastIndex=o2.calcOrderIndex; -} - } else { - f=a.shift(); -o1=this.getField(f); - if ( o1 == null ) { - ef_CalcOrderErr(f); - continue; - } -o1.calcOrderIndex=ef_setCalcOrder.lastIndex; -} - } -} -function ef_CalcOrderErr(f) { - console.show(); app.beep(0); - console.println("calcOrder: the field \""+ f - + "\" does not exist in this document, skipping it.\n\n" - + "calcOrder: Check the case sensitive spelling of the field."); -} -var _EfCalcOrder=\efCalcOrder; -ef_setCalcOrder(_EfCalcOrder); -\end{insDLJS} -\endinput -%% -%% End of file `setcorder.def'. +%% +%% This is file `setcorder.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,setcorder') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{insDLJS}{cojs}{eforms: JavaScript to set calculation order} +var debugCalc=false; +ef_setCalcOrder.lastIndex=0; +function ef_setCalcOrder (a) { + var o1, o2, f; + while ( a.length > 0) { + if (a.length > 1) { + f=a.shift(); + o1=this.getField(f); + if ( o1 == null ) { + ef_CalcOrderErr(f); + continue; + } + f = a[0]; + o2=this.getField(f); + if ( o2 == null ) { + ef_CalcOrderErr(f); + a.shift(); + continue; + } + if ( o2.calcOrderIndex < o1.calcOrderIndex ) { + o2.calcOrderIndex=o1.calcOrderIndex+1; +ef_setCalcOrder.lastIndex=o2.calcOrderIndex; +} + } else { + f=a.shift(); +o1=this.getField(f); + if ( o1 == null ) { + ef_CalcOrderErr(f); + continue; + } +o1.calcOrderIndex=ef_setCalcOrder.lastIndex; +} + } +} +function ef_CalcOrderErr(f) { + console.show(); app.beep(0); + console.println("calcOrder: the field \""+ f + + "\" does not exist in this document, skipping it.\n\n" + + "calcOrder: Check the case sensitive spelling of the field."); +} +var _EfCalcOrder=\efCalcOrder; +ef_setCalcOrder(_EfCalcOrder); +\end{insDLJS} +\endinput +%% +%% End of file `setcorder.def'. diff --git a/texmf-dist/tex/latex/acrotex/taborder.sty b/texmf-dist/tex/latex/acrotex/taborder.sty index 1a633f74..64abc732 100644 --- a/texmf-dist/tex/latex/acrotex/taborder.sty +++ b/texmf-dist/tex/latex/acrotex/taborder.sty @@ -1,92 +1,92 @@ -%% -%% This is file `taborder.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% taborder.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% taborder.sty package, %% -%% Copyright (C) 2009--2016 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e}[1997/12/01] -\ProvidesPackage{taborder} - [2009/09/04 v0.1 taborder: Sets the tab order, Acrobat Distiller only (dps)] -\DeclareOption{structure}{\let\to@earlyendinput\relax} -\let\to@earlyendinput\endinput -\let\setTabOrderByList\relax\let\setTabOrderByNumber\relax -\ProcessOptions -\newif\ifto@structOrder\to@structOrderfalse -\newcommand{\setTabOrder}[1]{\begingroup - \global\to@structOrderfalse - \def\to@to@C{C}\def\to@to@R{R}\def\to@to@S{S}% - \def\to@to@W{W}\def\to@to@A{A}\def\to@to@us{UNSPECIFIED}% - \uppercase{\def\ef@taborder{#1}}% - \ifx\ef@taborder\@empty - \else\ifx\ef@taborder\to@to@us - \let\ef@taborder\@empty - \else\ifx\to@to@C\ef@taborder - \else\ifx\to@to@R\ef@taborder - \else\ifx\to@to@S\ef@taborder - \ifx\to@earlyendinput\endinput - \PackageWarning{taborder}{% - The structure (S) option is supported only\MessageBreak - with Acrobat Distiller. Using the default\MessageBreak - value of 'unspecified'}\let\ef@taborder\@empty - \else\global\to@structOrdertrue\fi - \else\ifx\to@to@W\ef@taborder - \else\ifx\to@to@A\ef@taborder - \else\PackageWarning{taborder}{% - Invalid value for \string\setTabOrder. Permissible \MessageBreak - values are R, C, S, W, A, and unspecified. Using \MessageBreak - the default value of 'unspecified'}\let\ef@taborder\@empty - \fi\fi\fi\fi\fi\fi\fi\ef@setTabOrder -} -\to@earlyendinput -\def\ef@setTabOrder{% - \ifx\ef@taborder\@empty\else\literalps@out{% - [ {ThisPage} <> /PUT pdfmark}\fi - \endgroup -} -\newcommand{\setTabOrderByList}{% - \global\to@settabsbylisttrue - \global\let\setStructTabOrder\to@setStructTabOrder -} -\newcommand{\setTabOrderByNumber}{% - \global\to@settabsbylistfalse - \global\let\setStructTabOrder\@gobble -} -\newcommand{\to@setStructTabOrder}[1]{% - \@setStructTabOrder#1\end -} -\newif\ifto@settabsbylist\to@settabsbylisttrue -\let\setStructTabOrder\to@setStructTabOrder -\define@key{structOpts}{title}[]{\def\structOpts@title{#1}} -\define@key{structOpts}{type}[Form]{\def\structOpts@type{#1}} -\newcommand{\@setStructTabOrder}[2][]{% - \setkeys{structOpts}{title,type,#1} - \ifx#2\end\else\literalps@out{% - [/Subtype/\structOpts@type\ifx\structOpts@title\@empty - \else/Title (\structOpts@title)\fi/StPNE pdfmark - [/Obj {#2} /StOBJ pdfmark - [/StPop pdfmark}\expandafter\@setStructTabOrder - \fi -} -\def\to@insertStrucTabOrder#1{% - \ifto@structOrder\ifx\eq@objdef\@empty\else - \ifx\eq@taborder\@empty\else\literalps@out{% - [/Subtype/#1/At \eq@taborder/StPNE pdfmark - [/Obj {\eq@objdefName} /StOBJ pdfmark [/StPop pdfmark}% - \fi\fi\fi -} -\endinput -%% -%% End of file `taborder.sty'. +%% +%% This is file `taborder.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% taborder.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% taborder.sty package, %% +%% Copyright (C) 2009--2016 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1997/12/01] +\ProvidesPackage{taborder} + [2009/09/04 v0.1 taborder: Sets the tab order, Acrobat Distiller only (dps)] +\DeclareOption{structure}{\let\to@earlyendinput\relax} +\let\to@earlyendinput\endinput +\let\setTabOrderByList\relax\let\setTabOrderByNumber\relax +\ProcessOptions +\newif\ifto@structOrder\to@structOrderfalse +\newcommand{\setTabOrder}[1]{\begingroup + \global\to@structOrderfalse + \def\to@to@C{C}\def\to@to@R{R}\def\to@to@S{S}% + \def\to@to@W{W}\def\to@to@A{A}\def\to@to@us{UNSPECIFIED}% + \uppercase{\def\ef@taborder{#1}}% + \ifx\ef@taborder\@empty + \else\ifx\ef@taborder\to@to@us + \let\ef@taborder\@empty + \else\ifx\to@to@C\ef@taborder + \else\ifx\to@to@R\ef@taborder + \else\ifx\to@to@S\ef@taborder + \ifx\to@earlyendinput\endinput + \PackageWarning{taborder}{% + The structure (S) option is supported only\MessageBreak + with Acrobat Distiller. Using the default\MessageBreak + value of 'unspecified'}\let\ef@taborder\@empty + \else\global\to@structOrdertrue\fi + \else\ifx\to@to@W\ef@taborder + \else\ifx\to@to@A\ef@taborder + \else\PackageWarning{taborder}{% + Invalid value for \string\setTabOrder. Permissible \MessageBreak + values are R, C, S, W, A, and unspecified. Using \MessageBreak + the default value of 'unspecified'}\let\ef@taborder\@empty + \fi\fi\fi\fi\fi\fi\fi\ef@setTabOrder +} +\to@earlyendinput +\def\ef@setTabOrder{% + \ifx\ef@taborder\@empty\else\literalps@out{% + [ {ThisPage} <> /PUT pdfmark}\fi + \endgroup +} +\newcommand{\setTabOrderByList}{% + \global\to@settabsbylisttrue + \global\let\setStructTabOrder\to@setStructTabOrder +} +\newcommand{\setTabOrderByNumber}{% + \global\to@settabsbylistfalse + \global\let\setStructTabOrder\@gobble +} +\newcommand{\to@setStructTabOrder}[1]{% + \@setStructTabOrder#1\end +} +\newif\ifto@settabsbylist\to@settabsbylisttrue +\let\setStructTabOrder\to@setStructTabOrder +\define@key{structOpts}{title}[]{\def\structOpts@title{#1}} +\define@key{structOpts}{type}[Form]{\def\structOpts@type{#1}} +\newcommand{\@setStructTabOrder}[2][]{% + \setkeys{structOpts}{title,type,#1} + \ifx#2\end\else\literalps@out{% + [/Subtype/\structOpts@type\ifx\structOpts@title\@empty + \else/Title (\structOpts@title)\fi/StPNE pdfmark + [/Obj {#2} /StOBJ pdfmark + [/StPop pdfmark}\expandafter\@setStructTabOrder + \fi +} +\def\to@insertStrucTabOrder#1{% + \ifto@structOrder\ifx\eq@objdef\@empty\else + \ifx\eq@taborder\@empty\else\literalps@out{% + [/Subtype/#1/At \eq@taborder/StPNE pdfmark + [/Obj {\eq@objdefName} /StOBJ pdfmark [/StPop pdfmark}% + \fi\fi\fi +} +\endinput +%% +%% End of file `taborder.sty'. diff --git a/texmf-dist/tex/latex/acrotex/template.def b/texmf-dist/tex/latex/acrotex/template.def index b9099ad4..62b9307f 100644 --- a/texmf-dist/tex/latex/acrotex/template.def +++ b/texmf-dist/tex/latex/acrotex/template.def @@ -1,257 +1,257 @@ -%% -%% This is file `template.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,template') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesFile{template.def} - [2018/03/21 v8.2.2 % - Exerquiz template for language support (dps)] -%%------------- Instructions ------------------------------------ -%% Make your language localizations to this file and rename it to -%% something like \texttt{eq.def}, where \texttt{} -%% is a short 2-letter designator of the language. Test the tile -%% by inputting it in the preamble of your document -%% \input{eq.def}. When satisfied, send it to me at -%% dpstory@uakron.edu or dpstory@acrotex.net. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Web.sty %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Language dependent definitions for Web.sty -\DeclareOption{newlanguage}{% - \AtEndOfPackage{% - \def\today{\ifcase\month\or January - \or February \or March \or April - \or May \or June \or July \or August - \or September \or October \or November - \or December \fi \the\day, \the\year} - \def\web@versionlabel{Version} - \def\web@toc{Table of Contents} - \def\web@continued{cont.} - \def\web@article{Begin \hyperlink{section.1}{Article}} - \def\web@directory{Directory} - \def\web@revision{Last Revision Date:} - \def\web@copyright{Copyright} - \def\web@section{Section} - % Label Navibar - \def\web@back{Back} - \def\web@doc{Doc}} % restricted to three characters - \PassOptionsToPackage{newlanguage}{exerquiz} -} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\DeclareOption{newlanguage}{% - \def\LangRedefinitions{\InputIfFileExists{eqlang.def}% - {\PackageInfo{exerquiz}{Inputting a New Language Option}}% - {\PackageInfo{exerquiz}{Language Option: Cannot find the file - eqpo.def, using the default, English.}}}} - -% The exercise label -% Accents: \renewcommand\exlabel{\"Ubung} (German) -\renewcommand\exlabel{Exercise} -% The value of this macro is written to \jobname.sol, -% accented characters must be protected with a \protect -% E.g., \renewcommand\exlabelsol{\protect\"Ubung} (German) -\renewcommand\exlabelsol{\exlabel} - -% Title of exercise solution section -% E.g.: \renewcommand\exsectitle -% {L\"osungen der \exlabel en} (German) -\renewcommand\exsectitle{Solutions to \exlabel s} -\renewcommand\exsecrunhead{\exsectitle} %% change to @ form - -% Solution label for solutionafter option for exercise -\renewcommand\exsolafter{\textit{Solution}:} - -% Title of short quiz solution section -% Example: \renewcommand\eq@sqslsectitle -% {L\"osungen der Aufgaben} (German) -\renewcommand\eq@sqslsectitle{Solutions to Quizzes} -\renewcommand\sqslsectitle{\eq@sqslsectitle} - -% Running header/section title for solutions to short quizzes -\renewcommand\eq@sqslsecrunhead{Solutions to Quizzes} -% User access -\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} - -% Label for solutions to short quizzes, appears -% in solutions sections -% Protect accents with \protect -% E.g.: \renewcommand\eq@sqsllabel -% {\string\textbf{L\protect\"osung zu Aufgabe:}} (German) -\renewcommand\eq@sqsllabel{\string\textbf{Solution to Quiz:}} -% User access -\renewcommand\sqsllabel{\eq@sqsllabel} - -% Solution label for solutionafter option for shortquiz -\renewcommand\sqsolafter{\textit{Solution}:} - -% User access to shortquiz label -\renewcommand\sqlabel{\eq@sqlabel} -% Here is the default short quiz label. -\sqDefaultFmtTitle{\textcolor{red}{Quiz.}} - -% Here is the default short quiz return label -% No formatting allowed -\renewcommand\eq@sqslrtnlabel{End Quiz} -% User access to shortquiz label -\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} - -% Short quiz feedback messages -\renewcommand\eqsqrtmsg{"Right!"} -\renewcommand\eqsqwgmsg{"Wrong!"} -\renewcommand\doNotShowAgainMsg{Do not show this message again} - -% Here is the default quiz label. -% No formatting allowed -% For Example: \renewcommand\eq@bqlabel{D\'ebut} (French) -\renewcommand\eq@bqlabel{Begin Quiz} -% User access to shortquiz label -\renewcommand\bqlabel{\eq@bqlabel} -% Used for writing JavaScript Messages on screen. -% Use PDFDocEncoding -% For Example: -% \renewcommand\eq@bqlabelISO{D\string\351but} (French) -% Use \string not \protect, this helps out -% TeX4ht by Eitan Gurari. -\renewcommand\eq@bqlabelISO{\eq@bqlabel} -\renewcommand\bqlabelISO{\eq@bqlabel} -% Default title for a quiz used for \verb!\@currentlablename! -\setDefShortQuizLabelName{Quiz} -\setDefQuizLabelName{Quiz} - -% Here is the default quiz label. -% No formatting allowed -\renewcommand\eq@eqlabel{End Quiz} -% User access to shortquiz label -\renewcommand\eqlabel{\eq@eqlabel} - -% JavaScript Messages for Quiz Environments. Use PDFDocEncoding -% Note: Use \string rather than \protect for escape codes, -% i.e. \string\374 -% -% In the Text Field showing the score, there is the default -% phrase in English -% Score: 2 out of 3, the word "Score" and "out of" needs -% translation. -\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{out of} -\renewcommand\eq@ptScore{Score:} -% used in summary tables -\renewcommand\stOutOf{of} -% If you are taking a quiz and click on an alternative without -% initializing the quiz -% first, this message appears. -% This string is placed in the DLJS, so the escape sequences -% need to be protected more. Instead of \string\340 we need -% \string\\340. -% Example: \renewcommand\eqInitQuizMsg{% (German) -% "Sie m\string\\374ssen die Aufgaben initialisieren! -% Bitte klicken Sie auf "+msg+"."} -\renewcommand\eqInitQuizMsg{% - "You must initialize the Quiz! Click on "+msg+"."} - -% This macro doesn't usually need translation, it uses \eqScore -% and \eqOutOf. However, if the sentence "Score: 2 out of 3" -% does not translate conveniently into a particular language, -% this macro may have to be modified. It's the one that puts -% the message in the message box. -\renewcommand\eqQuizTotalMsg - {"\eqScore\space"+Score+" \eqOutOf\space"+nQuestions} -\renewcommand\eqQuizPointsMsg{% - "\eqptScore\space"+ptScore+" \eqOutOf\space"+nPointTotal} -\renewcommand\eqQuizPercentMsg{pcScore+"\%"} -\renewcommand\eqQuizGradeMsg{quizGrade} - -% In the link form of a quiz, of you change your choice, -% this message appears. This string is placed in the -% DLJS, so the escape sequences need to be protected more. -% Instead of \string\340 we need \string\\340. -% For Example: \renewcommand\eqMadeChoice{% -% "Vous avez d\string\\351j\string\\340 fait un choix, -% ce choix est ("+Responses[probno]+"). -% Souhaitez vous le modifier ?"} (French) -\renewcommand\eqMadeChoice{% - "You have already made a choice. - Your choice was ("+Responses[probno]+"). - Do you want to change it?"} -% Default button labels for \eqButton -% Accents are handled as above: -% A French Language Example -% \renewcommand\eq@local@CA{R\string\351ponses} -% \renewcommand\eq@local@RC{Correctes} -% \renewcommand\eq@local@AC{SVP !} -\renewcommand\eq@local@CA{Correct} -\renewcommand\eq@local@RC{My Answers!} -\renewcommand\eq@local@AC{Please!} - -% Default button label of \CorrAnsButton. -\renewcommand\eq@local@CorrAnsButton{Ans} -% Default button label of \sqClearButton -\renewcommand{\eq@local@sqClearButton}{Clear} -% Short string used by the \PromptButton -\renewcommand{\AnsPromptBtnStr}{Answer:\space} - -% These (error) messages are generated when the user enters an -% invalid math expression into a math fill-in response box. -% The messages come in the form of an eqAppAlert() so -% PDFDocEncoding needs to be used. -\renewcommand\eqerrABS{"Absolute values not balanced. Please correct."} -\renewcommand\eqerrBadMathFunc{"The expression \""+aF[i]+"\" is neither - a defined " +"function, nor a valid math expression."} -\renewcommand\eqParens{"Parentheses"} -\renewcommand\eqBrackets{"Brackets"} -\renewcommand\eqBraces{"Braces"} -\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " not balanced. - Please correct."} -\renewcommand\eqerrBadExp{"Invalid mathematical expression. - A problem with one of the exponents. Please correct."} -\renewcommand\eqerrUnfinishQuiz{"There is an unfinished quiz, - please finish before moving on to another."} -\renewcommand\noPeekMsg{"Viewing Solutions to quizzes is not allowed - until you take or finish this quiz!"} -\renewcommand\highThresholdMsg{"You are required to respond to all - questions before the quiz is evaluated."} -\renewcommand\eqSyntaxErrorUndefVar{"Syntax Error: Possibly an - undefined variable present."} -\newcommand{\eqSyntaxErrorComma}{"Syntax Error: A comma was found" - + " in your response \\"" - + UserAns + "\\". Please remove the comma, or this answer" - + " will be marked as wrong."} -\renewcommand{\limSelWarningMsg}{"For this questions, you are allowed to - make at most " + n + " selections."} -\renewcommand{\promptButtonMsg}{% - "Would you like to see the correct answer at this time? " - + "Your current answer will be the one that will be scored. " - + "If you click on \\"Yes\\", - you will not be able to change your answer." -} -\renewcommand{\defaultReqFormMsg}{% - "The expression is not in the expected form."} -\renewcommand\eqAnd{and} -%%%%%%%%%%%%%%%%%%%%%% End Message Section %%%%%%%%%%%%% -%% Some typeout messages %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\typeout{Inputting French Option} -\typeout{French Option: Cannot find the file eqfr.def, using the - default, English.} -\typeout{Solutions not allowed with this option} -\typeout{Check: `#1' is not an acceptable option, inserting - default, `check'.} - \ifmakeExSlLocal\protect\endgroup^^J\fi -\endinput -%% -%% End of file `template.def'. +%% +%% This is file `template.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,template') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesFile{template.def} + [2018/03/21 v8.2.2 % + Exerquiz template for language support (dps)] +%%------------- Instructions ------------------------------------ +%% Make your language localizations to this file and rename it to +%% something like \texttt{eq.def}, where \texttt{} +%% is a short 2-letter designator of the language. Test the tile +%% by inputting it in the preamble of your document +%% \input{eq.def}. When satisfied, send it to me at +%% dpstory@uakron.edu or dpstory@acrotex.net. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Web.sty %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Language dependent definitions for Web.sty +\DeclareOption{newlanguage}{% + \AtEndOfPackage{% + \def\today{\ifcase\month\or January + \or February \or March \or April + \or May \or June \or July \or August + \or September \or October \or November + \or December \fi \the\day, \the\year} + \def\web@versionlabel{Version} + \def\web@toc{Table of Contents} + \def\web@continued{cont.} + \def\web@article{Begin \hyperlink{section.1}{Article}} + \def\web@directory{Directory} + \def\web@revision{Last Revision Date:} + \def\web@copyright{Copyright} + \def\web@section{Section} + % Label Navibar + \def\web@back{Back} + \def\web@doc{Doc}} % restricted to three characters + \PassOptionsToPackage{newlanguage}{exerquiz} +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\DeclareOption{newlanguage}{% + \def\LangRedefinitions{\InputIfFileExists{eqlang.def}% + {\PackageInfo{exerquiz}{Inputting a New Language Option}}% + {\PackageInfo{exerquiz}{Language Option: Cannot find the file + eqpo.def, using the default, English.}}}} + +% The exercise label +% Accents: \renewcommand\exlabel{\"Ubung} (German) +\renewcommand\exlabel{Exercise} +% The value of this macro is written to \jobname.sol, +% accented characters must be protected with a \protect +% E.g., \renewcommand\exlabelsol{\protect\"Ubung} (German) +\renewcommand\exlabelsol{\exlabel} + +% Title of exercise solution section +% E.g.: \renewcommand\exsectitle +% {L\"osungen der \exlabel en} (German) +\renewcommand\exsectitle{Solutions to \exlabel s} +\renewcommand\exsecrunhead{\exsectitle} %% change to @ form + +% Solution label for solutionafter option for exercise +\renewcommand\exsolafter{\textit{Solution}:} + +% Title of short quiz solution section +% Example: \renewcommand\eq@sqslsectitle +% {L\"osungen der Aufgaben} (German) +\renewcommand\eq@sqslsectitle{Solutions to Quizzes} +\renewcommand\sqslsectitle{\eq@sqslsectitle} + +% Running header/section title for solutions to short quizzes +\renewcommand\eq@sqslsecrunhead{Solutions to Quizzes} +% User access +\renewcommand\sqslsecrunhead{\eq@sqslsecrunhead} + +% Label for solutions to short quizzes, appears +% in solutions sections +% Protect accents with \protect +% E.g.: \renewcommand\eq@sqsllabel +% {\string\textbf{L\protect\"osung zu Aufgabe:}} (German) +\renewcommand\eq@sqsllabel{\string\textbf{Solution to Quiz:}} +% User access +\renewcommand\sqsllabel{\eq@sqsllabel} + +% Solution label for solutionafter option for shortquiz +\renewcommand\sqsolafter{\textit{Solution}:} + +% User access to shortquiz label +\renewcommand\sqlabel{\eq@sqlabel} +% Here is the default short quiz label. +\sqDefaultFmtTitle{\textcolor{red}{Quiz.}} + +% Here is the default short quiz return label +% No formatting allowed +\renewcommand\eq@sqslrtnlabel{End Quiz} +% User access to shortquiz label +\renewcommand\sqslrtnlabel{\eq@sqslrtnlabel} + +% Short quiz feedback messages +\renewcommand\eqsqrtmsg{"Right!"} +\renewcommand\eqsqwgmsg{"Wrong!"} +\renewcommand\doNotShowAgainMsg{Do not show this message again} + +% Here is the default quiz label. +% No formatting allowed +% For Example: \renewcommand\eq@bqlabel{D\'ebut} (French) +\renewcommand\eq@bqlabel{Begin Quiz} +% User access to shortquiz label +\renewcommand\bqlabel{\eq@bqlabel} +% Used for writing JavaScript Messages on screen. +% Use PDFDocEncoding +% For Example: +% \renewcommand\eq@bqlabelISO{D\string\351but} (French) +% Use \string not \protect, this helps out +% TeX4ht by Eitan Gurari. +\renewcommand\eq@bqlabelISO{\eq@bqlabel} +\renewcommand\bqlabelISO{\eq@bqlabel} +% Default title for a quiz used for \verb!\@currentlablename! +\setDefShortQuizLabelName{Quiz} +\setDefQuizLabelName{Quiz} + +% Here is the default quiz label. +% No formatting allowed +\renewcommand\eq@eqlabel{End Quiz} +% User access to shortquiz label +\renewcommand\eqlabel{\eq@eqlabel} + +% JavaScript Messages for Quiz Environments. Use PDFDocEncoding +% Note: Use \string rather than \protect for escape codes, +% i.e. \string\374 +% +% In the Text Field showing the score, there is the default +% phrase in English +% Score: 2 out of 3, the word "Score" and "out of" needs +% translation. +\renewcommand\eq@Score{Score:}\renewcommand\eq@OutOf{out of} +\renewcommand\eq@ptScore{Score:} +% used in summary tables +\renewcommand\stOutOf{of} +% If you are taking a quiz and click on an alternative without +% initializing the quiz +% first, this message appears. +% This string is placed in the DLJS, so the escape sequences +% need to be protected more. Instead of \string\340 we need +% \string\\340. +% Example: \renewcommand\eqInitQuizMsg{% (German) +% "Sie m\string\\374ssen die Aufgaben initialisieren! +% Bitte klicken Sie auf "+msg+"."} +\renewcommand\eqInitQuizMsg{% + "You must initialize the Quiz! Click on "+msg+"."} + +% This macro doesn't usually need translation, it uses \eqScore +% and \eqOutOf. However, if the sentence "Score: 2 out of 3" +% does not translate conveniently into a particular language, +% this macro may have to be modified. It's the one that puts +% the message in the message box. +\renewcommand\eqQuizTotalMsg + {"\eqScore\space"+Score+" \eqOutOf\space"+nQuestions} +\renewcommand\eqQuizPointsMsg{% + "\eqptScore\space"+ptScore+" \eqOutOf\space"+nPointTotal} +\renewcommand\eqQuizPercentMsg{pcScore+"\%"} +\renewcommand\eqQuizGradeMsg{quizGrade} + +% In the link form of a quiz, of you change your choice, +% this message appears. This string is placed in the +% DLJS, so the escape sequences need to be protected more. +% Instead of \string\340 we need \string\\340. +% For Example: \renewcommand\eqMadeChoice{% +% "Vous avez d\string\\351j\string\\340 fait un choix, +% ce choix est ("+Responses[probno]+"). +% Souhaitez vous le modifier ?"} (French) +\renewcommand\eqMadeChoice{% + "You have already made a choice. + Your choice was ("+Responses[probno]+"). + Do you want to change it?"} +% Default button labels for \eqButton +% Accents are handled as above: +% A French Language Example +% \renewcommand\eq@local@CA{R\string\351ponses} +% \renewcommand\eq@local@RC{Correctes} +% \renewcommand\eq@local@AC{SVP !} +\renewcommand\eq@local@CA{Correct} +\renewcommand\eq@local@RC{My Answers!} +\renewcommand\eq@local@AC{Please!} + +% Default button label of \CorrAnsButton. +\renewcommand\eq@local@CorrAnsButton{Ans} +% Default button label of \sqClearButton +\renewcommand{\eq@local@sqClearButton}{Clear} +% Short string used by the \PromptButton +\renewcommand{\AnsPromptBtnStr}{Answer:\space} + +% These (error) messages are generated when the user enters an +% invalid math expression into a math fill-in response box. +% The messages come in the form of an eqAppAlert() so +% PDFDocEncoding needs to be used. +\renewcommand\eqerrABS{"Absolute values not balanced. Please correct."} +\renewcommand\eqerrBadMathFunc{"The expression \""+aF[i]+"\" is neither + a defined " +"function, nor a valid math expression."} +\renewcommand\eqParens{"Parentheses"} +\renewcommand\eqBrackets{"Brackets"} +\renewcommand\eqBraces{"Braces"} +\renewcommand\eqerrDelimNotBal{aGroup[i][2] + " not balanced. + Please correct."} +\renewcommand\eqerrBadExp{"Invalid mathematical expression. + A problem with one of the exponents. Please correct."} +\renewcommand\eqerrUnfinishQuiz{"There is an unfinished quiz, + please finish before moving on to another."} +\renewcommand\noPeekMsg{"Viewing Solutions to quizzes is not allowed + until you take or finish this quiz!"} +\renewcommand\highThresholdMsg{"You are required to respond to all + questions before the quiz is evaluated."} +\renewcommand\eqSyntaxErrorUndefVar{"Syntax Error: Possibly an + undefined variable present."} +\newcommand{\eqSyntaxErrorComma}{"Syntax Error: A comma was found" + + " in your response \\"" + + UserAns + "\\". Please remove the comma, or this answer" + + " will be marked as wrong."} +\renewcommand{\limSelWarningMsg}{"For this questions, you are allowed to + make at most " + n + " selections."} +\renewcommand{\promptButtonMsg}{% + "Would you like to see the correct answer at this time? " + + "Your current answer will be the one that will be scored. " + + "If you click on \\"Yes\\", + you will not be able to change your answer." +} +\renewcommand{\defaultReqFormMsg}{% + "The expression is not in the expected form."} +\renewcommand\eqAnd{and} +%%%%%%%%%%%%%%%%%%%%%% End Message Section %%%%%%%%%%%%% +%% Some typeout messages %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\typeout{Inputting French Option} +\typeout{French Option: Cannot find the file eqfr.def, using the + default, English.} +\typeout{Solutions not allowed with this option} +\typeout{Check: `#1' is not an acceptable option, inserting + default, `check'.} + \ifmakeExSlLocal\protect\endgroup^^J\fi +\endinput +%% +%% End of file `template.def'. diff --git a/texmf-dist/tex/latex/acrotex/uieforms.def b/texmf-dist/tex/latex/acrotex/uieforms.def index 04ae9dd1..65d1b790 100644 --- a/texmf-dist/tex/latex/acrotex/uieforms.def +++ b/texmf-dist/tex/latex/acrotex/uieforms.def @@ -1,389 +1,389 @@ -%% -%% This is file `uieforms.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% eforms.dtx (with options: `copyright,userinterface') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% eForms package, %% -%% Copyright (C) 2002-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\@equi#1{} -\ifHy@colorlinks\def\eq@bordervisibledefault{0}\@eqW{}\else -\def\eq@bordervisibledefault{1}\@eqW{1}\fi -\def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}} -\def\labelRef#1{\@ifundefined{r@#1}{Doc-Start} - {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}} -\def\aeb@exiii{\expandafter\expandafter\expandafter} -\newtoks\ef@flagtoks -\newtoks\ef@jstoks -\def\noexpandiii{\noexpand\noexpand\noexpand} -\define@choicekey{eforms}{border}[\val\nr]{visible,invisible} -{% - \ifcase\nr - \def\eq@visibleborder{1}% - \ifx\eq@W\@empty - \ifx\eq@W@buffered\@empty\@eqW{1}\else - \@eqW{\eq@W@buffered}\fi - \else - \ifnum\eq@W@value=0 \@eqW{1}\fi - \ifx\eq@W@buffered\@empty\else - \@eqW{\eq@W@buffered}\fi - \fi - \@eqBorder{0 0 \eq@W@value}% - \or - % author has chosen invisible border - \def\eq@visibleborder{0}\@eqW{}% - \@eqBorder{0 0 0}\@eqBC{}% - \fi -} -\define@choicekey{eforms}{linewidth}[\val\nr]{thin,medium,thick} -{% - \ifx\annot@type\annot@type@link - \ifx\eq@visibleborder\@empty - \ifnum\eq@bordervisibledefault=0 - \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}% - \@eqW{}% - \else - \ifcase\nr \@eqW{1}\or\@eqW{2}\or - \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% - \fi - \else - \ifnum\eq@visibleborder=1 % visible border - \ifcase\nr \@eqW{1}\or\@eqW{2}\or - \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% - \fi - \fi - \else - \ifx\eq@visibleborder\@empty - \ifcase\nr \@eqW{1}\or\@eqW{2}\or - \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% - \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}% - \else - \ifnum\eq@visibleborder>0 - \ifcase\nr \@eqW{1}\or\@eqW{2}\or - \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% - \fi - \fi - \fi -} -\let\eq@visibleborder\@empty -\let\eq@W@buffered\@empty -\define@choicekey{eforms}{highlight}[\val\nr]{none,invert,outline,% - inset,push} -{% - \ifcase\nr - \@eqH{}\or\@eqH{I}\or\@eqH{O}\or\@eqH{P}\or\@eqH{P}\fi -}{} -\define@key{eforms}{bordercolor}[]{% - \ifx\annot@type\annot@type@link\@eqColor{#1}\else - \ifx\eq@visibleborder\@empty\@eqBC{#1}\else - \ifnum\eq@visibleborder>0\relax\@eqBC{#1}\fi\fi\fi -} -\define@choicekey{eforms}{linestyle}[\val\nr]{solid,dashed,underlined,% - beveled,inset} -{% - \ifcase\nr\relax - \@eqS{S}\or\@eqS{D}\or\@eqS{U}% - \or\@eqS{B}\or\@eqS{I}\else\@eqS{S}% - \fi -} -\define@key{eforms}{dasharray}[3]{\@eqD{#1}} -\define@key{eforms}{linktxtcolor}[]{% - \let\ef@linktxtcolor@set=1\@eqlinktxtcolor{#1}} -\let\ef@linktxtcolor@set=0 -\define@key{eforms}{annotflags}[]{\ef@flagtoks={}% - \setkeys{annotflags}{#1}} -\@tfor\ef@flagopts:={{hidden}{FHidden}}{{print}{FPrint}}{{noprint}% - {FNoPrint}}{{-print}{FNoPrint}}{{noview}{FNoView}}{{lock}{FLock}}% - \do{\expandafter\getargs\ef@flagopts - \edef\temp@expand@def{% - \noexpand\define@key{annotflags}{\aeb@argi}[true]{% - \noexpand\ef@flagtoks=% - \noexpand\expandafter{\noexpand\ef@passedArgs}% - \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii% - \F{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}% - \noexpand\the\noexpand\ef@flagtoks}% - }% - }\temp@expand@def -} -\define@key{eforms}{fieldflags}[]{\ef@flagtoks={}% - \setkeys{fieldflags}{#1}} -\@tfor\ef@flagopts:={{readonly}{FfReadOnly}}{{required}{FfRequired}}% - {{noexport}{FfNoExport}}{{multiline}{FfMultiline}}% - {{password}{FfPassword}}{{notoggleoff}{FfNoToggleToOff}}% - {{radio}{FfRadio}}{{pushbutton}{FfPushButton}}{{combo}{FfCombo}}% - {{edit}{FfEdit}}{{sort}{FfSort}}{{fileselect}{FfFileSelect}}% - {{multiselect}{FfMultiSelect}}{{nospellcheck}{FfDoNotSpellCheck}}% - {{noscrolling}{FfDoNotScroll}}{{comb}{FfComb}}% - {{radiosinunison}{FfRadiosInUnison}}% - {{commitonchange}{FfCommitOnSelChange}}{{richtext}{FfRichText}}\do{% - \expandafter\getargs\ef@flagopts - \edef\temp@expand@def{% - \noexpand\define@key{fieldflags}{\aeb@argi}[true]% - {% - \noexpand\ef@flagtoks=\noexpand\expandafter{% - \noexpand\ef@passedArgs}% - \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii% - \Ff{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}% - \noexpand\the\noexpand\ef@flagtoks}% - }% - }\temp@expand@def -} -\define@key{eforms}{tooltip}{\@eqTU{#1}} -\define@key{eforms}{default}{\@eqDV{#1}} -\define@key{eforms}{defaultstyle}{\@eqDS{#1}} -\define@key{eforms}{value}{\@eqV{#1}} -\define@key{eforms}{richvalue}{\@eqRV{#1}} -\define@key{eforms}{apprD}{\@eqAP{#1}} -\define@choicekey{eforms}{rotate}[\val\nr]{0,90,180,270} - {\expandafter\@eqR\expandafter{\val}}{} -\define@key{eforms}{bgcolor}[]{\@eqBG{#1}} -\define@key{eforms}{uptxt}{\@eqCA{#1}} -\define@key{eforms}{downtxt}{\@eqAC{#1}} -\define@key{eforms}{rollovertxt}{\@eqRC{#1}} -\define@choicekey{eforms}{align}[\val\nr]{left,centered,right}{% - \ifx\annot@type\annot@type@text - \expandafter\@eqQ\expandafter{\nr}\fi}{} -\define@key{eforms}{textfont}{\@eqtextFont{#1}} -\define@key{eforms}{textsize}{\@eqtextSize{#1}} -\define@key{eforms}{textcolor}{% - \@eqtextColor{#1}% -} -\define@key{eforms}{maxlength}{\@eqMaxLen{#1}} -\define@key{eforms}{normappr}{\@eqI{#1}} -\define@key{eforms}{rollappr}{\@eqRI{#1}} -\define@key{eforms}{downappr}{\@eqIX{#1}} -\define@choicekey{eforms}{layout}[\val\nr]{labelonly,icononly,% - icontop,iconbottom,iconleft,iconright,labelover}{% - \ifx\annot@type\annot@type@button - \expandafter\@eqTP\expandafter{\nr}\fi}{} -\define@choicekey{eforms}{scalewhen}[\val\nr]{always,never,% - iconbig,iconsmall}{% - \ifx\annot@type\annot@type@button - \ifcase\nr\relax - \def\eq@@SW{A}\or - \def\eq@@SW{N}\or - \def\eq@@SW{B}\or - \def\eq@@SW{S}\else - \def\eq@@SW{A}\fi - \expandafter\@eqSW\expandafter{\eq@@SW}\fi}{} -\define@choicekey{eforms}{scale}[\val\nr]{proportional,% - nonproportional}{% - \ifx\annot@type\annot@type@button - \ifcase\nr\relax - \def\eq@@ST{P}\or - \def\eq@@ST{A}\else - \def\eq@@ST{P}\fi - \expandafter\@eqST\expandafter{\eq@@ST}\fi}{} -\define@key{eforms}{position}{\@eqPA{#1}} -\define@choicekey{eforms}{fitbounds}[\val\nr]{true,false}[true]{% - \ifx\annot@type\annot@type@button - \ifcase\nr\relax - \def\eq@@FB{true}\or - \def\eq@@FB{false}\else - \def\eq@@FB{false}\fi - \expandafter\@eqFB\expandafter{\eq@@FB}\fi}{} -\define@key{efappr}{norm}[]{\def\efappr@norm{#1}} -\define@key{efappr}{roll}[]{\def\efappr@roll{#1}} -\define@key{efappr}{down}[]{\def\efappr@down{#1}} -\setkeys{efappr}{norm,roll,down} -\define@key{efappr@state}{on}[]{% - \expandafter\def\csname \ef@state @on\endcsname{#1}} -\define@key{efappr@state}{off}[]{% - \expandafter\def\csname \ef@state @off\endcsname{#1}} -\let\norm@on\@empty\let\norm@off\@empty -\let\roll@on\@empty\let\roll@off\@empty -\let\down@on\@empty\let\down@off\@empty -\define@key{eforms}{appr}{\setkeys{efappr}{#1}% - \def\ef@state{norm}% - \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@norm}}% - \ef@edef@tmp\def\ef@state{roll}% - \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@roll}}% - \ef@edef@tmp\def\ef@state{down}% - \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@down}}% - \ef@edef@tmp\def\eq@AP{% - /AP<< - \ifx\efappr@norm\@empty\else/N << - \eq@On\space{\norm@on}/Off {\norm@off}>>\fi - \ifx\efappr@roll\@empty\else/R << - \eq@On\space{\roll@on}/Off {\roll@off}>>\fi - \ifx\efappr@down\@empty\else/D << - \eq@On\space{\down@on}/Off {\down@off}>>\fi - \space>> - }% -} -\define@choicekey{eforms}{autocenter}[\val\nr]{yes,no} -{% - \ifcase\nr\relax\@eqautoCenter{y}\or - \@eqautoCenter{n}\fi -}{} -\define@choicekey{eforms}{inline}[\val\nr]{yes,no} -{% - \ifcase\nr\relax\@eqinline{y}\or - \@eqinline{n}\fi -}{} -\define@choicekey{eforms}{mlfix}[\val\nr]{yes,no} -{% - \ifcase\nr\relax\@eqmlfix{y}\or - \@eqmlfix{n}\fi -}{} -\define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}} -\define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}} -\define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}} -\define@choicekey{eforms}{mlhyph}[\val\nr]{yes,no} -{% - \ifcase\nr\relax\@eqmlhyph{y}\or - \@eqmlhyph{n}\fi -}{} -\define@key{eforms}{presets}{% - \ef@jstoks=\expandafter{#1}% - \edef\ef@temp@expand{\noexpand\setkeys{eforms}{\the\ef@jstoks}}% - \ef@temp@expand -} -\define@choicekey{eforms}{symbolchoice}[\val\nr]% - {check,circle,cross,diamond,square,star} - {\expandafter\@eqsymbolchoice\expandafter{\val}}{} -\define@key{eforms}{lock}{\@eqLock{#1}} -\define@key{eforms}{goto}[]{% - \cxkvsetkeys{efgoto}{#1}% - \ifx\ef@goto@url\@empty - \ifx\ef@goto@file\@empty - % Jump within the file - \def\ef@subtype{/S/GoTo }% - \ifcase\eq@drivernum - \def\ef@formatpage{{Page\ef@page}}% - \or - \def\ef@formatpage{\pdfpageref\ef@page\space\space 0 R}% - \or - \def\ef@formatpage{@page\ef@page}% - \fi - \let\ef@open\@empty - \let\ef@formatfile\@empty - \else - % Jump to another PDF - \def\ef@subtype{/S/GoToR }% - \count0=\ef@page\advance\count0by-1 - \edef\ef@formatpage{\the\count0 }% - \def\ef@formatfile{/F (\ef@goto@file)}% - \fi - \ifx\ef@goto@targetdest\@empty - \ifx\ef@labeldest\@empty - % we will jump to a page, it might be the default page - \expandafter\@eqA\expandafter{\ef@subtype - /D[\ef@formatpage\ef@view]% - \ef@formatfile\ef@open}% - \else - % jump to a label - \expandafter\@eqA\expandafter{\ef@subtype% - /D (\labelRef{\ef@labeldest})% - \ef@formatfile\ef@open}% - \fi - \else - % jump to a target - \expandafter\@eqA\expandafter{\ef@subtype% - /D (\ef@goto@targetdest)% - \ef@formatfile\ef@open}% - \fi - \else % go to url - \ifx\ef@goto@openparams\@empty - \@eqA{/S/URI/URI(\ef@goto@url)}\else - \@eqA{/S/URI/URI(\ef@goto@url\#\ef@goto@openparams)}% - \fi - \fi -} -\define@key{efgoto}{file}[]{\def\ef@goto@file{#1}} -\let\ef@goto@file\@empty -\define@key{efgoto}{url}[]{% - \if\ef@linktxtcolor@set0\@eqlinktxtcolor{\@urlcolor}\fi - \def\ef@goto@url{#1}% -} -\let\ef@goto@url\@empty -\define@key{efgoto}{openparams}[]{\def\ef@goto@openparams{#1}} -\let\ef@goto@openparams\@empty -\define@key{efgoto}{targetdest}[]{\def\ef@goto@targetdest{#1}} -\let\ef@goto@targetdest\@empty -\define@key{efgoto}{labeldest}[]{\def\ef@labeldest{#1}} -\let\ef@labeldest\@empty -\define@key{efgoto}{page}[1]{\def\ef@page{#1}} -\def\ef@page{1} -\def\ef@view{/Fit}% -\define@choicekey{efgoto}{view}[\val\nr]{fitpage,actualsize,fitwidth,% - fitheight,fitvisible,inheritzoom} -{% - \edef\ef@view{\csname dl@\val\endcsname}% -}{} -\define@choicekey{efgoto}{open}[\val\nr]{userpref,new,existing} -{% - \ifcase\nr\relax - \let\ef@open\@empty\or - \def\ef@open{/NewWindow true }\or - \def\ef@open{/NewWindow false }\fi -}{} -\let\ef@open\@empty -\define@key{eforms}{launch}[]{% - \cxkvsetkeys{eflaunch}{#1}% - \@eqA{/S/Launch\ifx\ef@launch@file\@empty\else - /F(\ef@launch@file)\fi\ef@launch@open - \ifx\ef@launch@win\@empty\else - /Win<<\ifx\ef@launchwin@file\@empty - /F(\ef@launch@file)\else/F(\ef@launchwin@file)\fi - \ifx\ef@launchwin@params\@empty\else - /P(\ef@launchwin@params)\fi - \ifx\ef@launchwin@open\@empty\else - /O(\ef@launchwin@open)\fi - \ifx\ef@launchwin@dir\@empty\else - /D(\ef@launchwin@dir)\fi>> - \fi - }% -} -\define@key{eflaunch}{file}[]{\def\ef@launch@file{#1}} -\let\ef@launch@file\@empty -\define@choicekey{eflaunch}{open}[\val\nr]{userpref,new,existing} -{% - \ifcase\nr\relax - \let\ef@launch@open\@empty\or - \def\ef@launch@open{/NewWindow true }\or - \def\ef@launch@open{/NewWindow false }\fi -}{} -\let\ef@launch@open\@empty -\define@key{eflaunch}{winParams}[]{\def\ef@launch@win{#1}% - \setkeys{eflaunchwin}{#1}% -}\let\ef@launch@win\@empty -\define@key{eflaunchwin}{file}[]{\def\ef@launchwin@file{#1}} -\let\ef@launchwin@file\@empty -\define@key{eflaunchwin}{directory}[]{\def\ef@launchwin@dir{#1}} -\let\ef@launchwin@dir\@empty -\define@key{eflaunchwin}{open}[]{\def\ef@launchwin@open{#1}} -\let\ef@launchwin@open\@empty -\define@key{eflaunchwin}{params}[]{\def\ef@launchwin@params{#1}} -\let\ef@launchwin@params\@empty -\define@key{eforms}{js}[]{\@eqA{\JS{#1}}} -\@tfor\ef@AActions:={{mouseup}{AAmouseup}}{{mousedown}{AAmousedown}}% - {{onenter}{AAmouseenter}}{{onexit}{AAmouseexit}}% - {{onfocus}{AAonfocus}}{{onblur}{AAonblur}}% - {{format}{AAformat}}{{keystroke}{AAkeystroke}}% - {{validate}{AAvalidate}}{{calculate}{AAcalculate}}% - {{pageopen}{AApageopen}}{{pageclose}{AApageclose}}% - {{pagevisible}{AApagevisible}}% - {{pageinvisible}{AApageinvisible}}\do{% - \expandafter\getargs\ef@AActions\ef@jstoks={#1}% - \edef\temp@expand@def{\noexpand\define@key{eforms}{\aeb@argi}[]% - {\noexpand\csname @eq\aeb@argii\noexpand\endcsname% - {\the\ef@jstoks}}}% - \temp@expand@def -} -\define@key{eforms}{objdef}{\@eqobjdef{#1}} -\define@key{eforms}{taborder}{\@eqtaborder{#1}} -\endinput -%% -%% End of file `uieforms.def'. +%% +%% This is file `uieforms.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% eforms.dtx (with options: `copyright,userinterface') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% eForms package, %% +%% Copyright (C) 2002-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\@equi#1{} +\ifHy@colorlinks\def\eq@bordervisibledefault{0}\@eqW{}\else +\def\eq@bordervisibledefault{1}\@eqW{1}\fi +\def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}} +\def\labelRef#1{\@ifundefined{r@#1}{Doc-Start} + {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}} +\def\aeb@exiii{\expandafter\expandafter\expandafter} +\newtoks\ef@flagtoks +\newtoks\ef@jstoks +\def\noexpandiii{\noexpand\noexpand\noexpand} +\define@choicekey{eforms}{border}[\val\nr]{visible,invisible} +{% + \ifcase\nr + \def\eq@visibleborder{1}% + \ifx\eq@W\@empty + \ifx\eq@W@buffered\@empty\@eqW{1}\else + \@eqW{\eq@W@buffered}\fi + \else + \ifnum\eq@W@value=0 \@eqW{1}\fi + \ifx\eq@W@buffered\@empty\else + \@eqW{\eq@W@buffered}\fi + \fi + \@eqBorder{0 0 \eq@W@value}% + \or + % author has chosen invisible border + \def\eq@visibleborder{0}\@eqW{}% + \@eqBorder{0 0 0}\@eqBC{}% + \fi +} +\define@choicekey{eforms}{linewidth}[\val\nr]{thin,medium,thick} +{% + \ifx\annot@type\annot@type@link + \ifx\eq@visibleborder\@empty + \ifnum\eq@bordervisibledefault=0 + \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}% + \@eqW{}% + \else + \ifcase\nr \@eqW{1}\or\@eqW{2}\or + \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% + \fi + \else + \ifnum\eq@visibleborder=1 % visible border + \ifcase\nr \@eqW{1}\or\@eqW{2}\or + \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% + \fi + \fi + \else + \ifx\eq@visibleborder\@empty + \ifcase\nr \@eqW{1}\or\@eqW{2}\or + \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% + \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}% + \else + \ifnum\eq@visibleborder>0 + \ifcase\nr \@eqW{1}\or\@eqW{2}\or + \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}% + \fi + \fi + \fi +} +\let\eq@visibleborder\@empty +\let\eq@W@buffered\@empty +\define@choicekey{eforms}{highlight}[\val\nr]{none,invert,outline,% + inset,push} +{% + \ifcase\nr + \@eqH{}\or\@eqH{I}\or\@eqH{O}\or\@eqH{P}\or\@eqH{P}\fi +}{} +\define@key{eforms}{bordercolor}[]{% + \ifx\annot@type\annot@type@link\@eqColor{#1}\else + \ifx\eq@visibleborder\@empty\@eqBC{#1}\else + \ifnum\eq@visibleborder>0\relax\@eqBC{#1}\fi\fi\fi +} +\define@choicekey{eforms}{linestyle}[\val\nr]{solid,dashed,underlined,% + beveled,inset} +{% + \ifcase\nr\relax + \@eqS{S}\or\@eqS{D}\or\@eqS{U}% + \or\@eqS{B}\or\@eqS{I}\else\@eqS{S}% + \fi +} +\define@key{eforms}{dasharray}[3]{\@eqD{#1}} +\define@key{eforms}{linktxtcolor}[]{% + \let\ef@linktxtcolor@set=1\@eqlinktxtcolor{#1}} +\let\ef@linktxtcolor@set=0 +\define@key{eforms}{annotflags}[]{\ef@flagtoks={}% + \setkeys{annotflags}{#1}} +\@tfor\ef@flagopts:={{hidden}{FHidden}}{{print}{FPrint}}{{noprint}% + {FNoPrint}}{{-print}{FNoPrint}}{{noview}{FNoView}}{{lock}{FLock}}% + \do{\expandafter\getargs\ef@flagopts + \edef\temp@expand@def{% + \noexpand\define@key{annotflags}{\aeb@argi}[true]{% + \noexpand\ef@flagtoks=% + \noexpand\expandafter{\noexpand\ef@passedArgs}% + \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii% + \F{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}% + \noexpand\the\noexpand\ef@flagtoks}% + }% + }\temp@expand@def +} +\define@key{eforms}{fieldflags}[]{\ef@flagtoks={}% + \setkeys{fieldflags}{#1}} +\@tfor\ef@flagopts:={{readonly}{FfReadOnly}}{{required}{FfRequired}}% + {{noexport}{FfNoExport}}{{multiline}{FfMultiline}}% + {{password}{FfPassword}}{{notoggleoff}{FfNoToggleToOff}}% + {{radio}{FfRadio}}{{pushbutton}{FfPushButton}}{{combo}{FfCombo}}% + {{edit}{FfEdit}}{{sort}{FfSort}}{{fileselect}{FfFileSelect}}% + {{multiselect}{FfMultiSelect}}{{nospellcheck}{FfDoNotSpellCheck}}% + {{noscrolling}{FfDoNotScroll}}{{comb}{FfComb}}% + {{radiosinunison}{FfRadiosInUnison}}% + {{commitonchange}{FfCommitOnSelChange}}{{richtext}{FfRichText}}\do{% + \expandafter\getargs\ef@flagopts + \edef\temp@expand@def{% + \noexpand\define@key{fieldflags}{\aeb@argi}[true]% + {% + \noexpand\ef@flagtoks=\noexpand\expandafter{% + \noexpand\ef@passedArgs}% + \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii% + \Ff{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}% + \noexpand\the\noexpand\ef@flagtoks}% + }% + }\temp@expand@def +} +\define@key{eforms}{tooltip}{\@eqTU{#1}} +\define@key{eforms}{default}{\@eqDV{#1}} +\define@key{eforms}{defaultstyle}{\@eqDS{#1}} +\define@key{eforms}{value}{\@eqV{#1}} +\define@key{eforms}{richvalue}{\@eqRV{#1}} +\define@key{eforms}{apprD}{\@eqAP{#1}} +\define@choicekey{eforms}{rotate}[\val\nr]{0,90,180,270} + {\expandafter\@eqR\expandafter{\val}}{} +\define@key{eforms}{bgcolor}[]{\@eqBG{#1}} +\define@key{eforms}{uptxt}{\@eqCA{#1}} +\define@key{eforms}{downtxt}{\@eqAC{#1}} +\define@key{eforms}{rollovertxt}{\@eqRC{#1}} +\define@choicekey{eforms}{align}[\val\nr]{left,centered,right}{% + \ifx\annot@type\annot@type@text + \expandafter\@eqQ\expandafter{\nr}\fi}{} +\define@key{eforms}{textfont}{\@eqtextFont{#1}} +\define@key{eforms}{textsize}{\@eqtextSize{#1}} +\define@key{eforms}{textcolor}{% + \@eqtextColor{#1}% +} +\define@key{eforms}{maxlength}{\@eqMaxLen{#1}} +\define@key{eforms}{normappr}{\@eqI{#1}} +\define@key{eforms}{rollappr}{\@eqRI{#1}} +\define@key{eforms}{downappr}{\@eqIX{#1}} +\define@choicekey{eforms}{layout}[\val\nr]{labelonly,icononly,% + icontop,iconbottom,iconleft,iconright,labelover}{% + \ifx\annot@type\annot@type@button + \expandafter\@eqTP\expandafter{\nr}\fi}{} +\define@choicekey{eforms}{scalewhen}[\val\nr]{always,never,% + iconbig,iconsmall}{% + \ifx\annot@type\annot@type@button + \ifcase\nr\relax + \def\eq@@SW{A}\or + \def\eq@@SW{N}\or + \def\eq@@SW{B}\or + \def\eq@@SW{S}\else + \def\eq@@SW{A}\fi + \expandafter\@eqSW\expandafter{\eq@@SW}\fi}{} +\define@choicekey{eforms}{scale}[\val\nr]{proportional,% + nonproportional}{% + \ifx\annot@type\annot@type@button + \ifcase\nr\relax + \def\eq@@ST{P}\or + \def\eq@@ST{A}\else + \def\eq@@ST{P}\fi + \expandafter\@eqST\expandafter{\eq@@ST}\fi}{} +\define@key{eforms}{position}{\@eqPA{#1}} +\define@choicekey{eforms}{fitbounds}[\val\nr]{true,false}[true]{% + \ifx\annot@type\annot@type@button + \ifcase\nr\relax + \def\eq@@FB{true}\or + \def\eq@@FB{false}\else + \def\eq@@FB{false}\fi + \expandafter\@eqFB\expandafter{\eq@@FB}\fi}{} +\define@key{efappr}{norm}[]{\def\efappr@norm{#1}} +\define@key{efappr}{roll}[]{\def\efappr@roll{#1}} +\define@key{efappr}{down}[]{\def\efappr@down{#1}} +\setkeys{efappr}{norm,roll,down} +\define@key{efappr@state}{on}[]{% + \expandafter\def\csname \ef@state @on\endcsname{#1}} +\define@key{efappr@state}{off}[]{% + \expandafter\def\csname \ef@state @off\endcsname{#1}} +\let\norm@on\@empty\let\norm@off\@empty +\let\roll@on\@empty\let\roll@off\@empty +\let\down@on\@empty\let\down@off\@empty +\define@key{eforms}{appr}{\setkeys{efappr}{#1}% + \def\ef@state{norm}% + \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@norm}}% + \ef@edef@tmp\def\ef@state{roll}% + \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@roll}}% + \ef@edef@tmp\def\ef@state{down}% + \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@down}}% + \ef@edef@tmp\def\eq@AP{% + /AP<< + \ifx\efappr@norm\@empty\else/N << + \eq@On\space{\norm@on}/Off {\norm@off}>>\fi + \ifx\efappr@roll\@empty\else/R << + \eq@On\space{\roll@on}/Off {\roll@off}>>\fi + \ifx\efappr@down\@empty\else/D << + \eq@On\space{\down@on}/Off {\down@off}>>\fi + \space>> + }% +} +\define@choicekey{eforms}{autocenter}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqautoCenter{y}\or + \@eqautoCenter{n}\fi +}{} +\define@choicekey{eforms}{inline}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqinline{y}\or + \@eqinline{n}\fi +}{} +\define@choicekey{eforms}{mlfix}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqmlfix{y}\or + \@eqmlfix{n}\fi +}{} +\define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}} +\define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}} +\define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}} +\define@choicekey{eforms}{mlhyph}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqmlhyph{y}\or + \@eqmlhyph{n}\fi +}{} +\define@key{eforms}{presets}{% + \ef@jstoks=\expandafter{#1}% + \edef\ef@temp@expand{\noexpand\setkeys{eforms}{\the\ef@jstoks}}% + \ef@temp@expand +} +\define@choicekey{eforms}{symbolchoice}[\val\nr]% + {check,circle,cross,diamond,square,star} + {\expandafter\@eqsymbolchoice\expandafter{\val}}{} +\define@key{eforms}{lock}{\@eqLock{#1}} +\define@key{eforms}{goto}[]{% + \cxkvsetkeys{efgoto}{#1}% + \ifx\ef@goto@url\@empty + \ifx\ef@goto@file\@empty + % Jump within the file + \def\ef@subtype{/S/GoTo }% + \ifcase\eq@drivernum + \def\ef@formatpage{{Page\ef@page}}% + \or + \def\ef@formatpage{\pdfpageref\ef@page\space\space 0 R}% + \or + \def\ef@formatpage{@page\ef@page}% + \fi + \let\ef@open\@empty + \let\ef@formatfile\@empty + \else + % Jump to another PDF + \def\ef@subtype{/S/GoToR }% + \count0=\ef@page\advance\count0by-1 + \edef\ef@formatpage{\the\count0 }% + \def\ef@formatfile{/F (\ef@goto@file)}% + \fi + \ifx\ef@goto@targetdest\@empty + \ifx\ef@labeldest\@empty + % we will jump to a page, it might be the default page + \expandafter\@eqA\expandafter{\ef@subtype + /D[\ef@formatpage\ef@view]% + \ef@formatfile\ef@open}% + \else + % jump to a label + \expandafter\@eqA\expandafter{\ef@subtype% + /D (\labelRef{\ef@labeldest})% + \ef@formatfile\ef@open}% + \fi + \else + % jump to a target + \expandafter\@eqA\expandafter{\ef@subtype% + /D (\ef@goto@targetdest)% + \ef@formatfile\ef@open}% + \fi + \else % go to url + \ifx\ef@goto@openparams\@empty + \@eqA{/S/URI/URI(\ef@goto@url)}\else + \@eqA{/S/URI/URI(\ef@goto@url\#\ef@goto@openparams)}% + \fi + \fi +} +\define@key{efgoto}{file}[]{\def\ef@goto@file{#1}} +\let\ef@goto@file\@empty +\define@key{efgoto}{url}[]{% + \if\ef@linktxtcolor@set0\@eqlinktxtcolor{\@urlcolor}\fi + \def\ef@goto@url{#1}% +} +\let\ef@goto@url\@empty +\define@key{efgoto}{openparams}[]{\def\ef@goto@openparams{#1}} +\let\ef@goto@openparams\@empty +\define@key{efgoto}{targetdest}[]{\def\ef@goto@targetdest{#1}} +\let\ef@goto@targetdest\@empty +\define@key{efgoto}{labeldest}[]{\def\ef@labeldest{#1}} +\let\ef@labeldest\@empty +\define@key{efgoto}{page}[1]{\def\ef@page{#1}} +\def\ef@page{1} +\def\ef@view{/Fit}% +\define@choicekey{efgoto}{view}[\val\nr]{fitpage,actualsize,fitwidth,% + fitheight,fitvisible,inheritzoom} +{% + \edef\ef@view{\csname dl@\val\endcsname}% +}{} +\define@choicekey{efgoto}{open}[\val\nr]{userpref,new,existing} +{% + \ifcase\nr\relax + \let\ef@open\@empty\or + \def\ef@open{/NewWindow true }\or + \def\ef@open{/NewWindow false }\fi +}{} +\let\ef@open\@empty +\define@key{eforms}{launch}[]{% + \cxkvsetkeys{eflaunch}{#1}% + \@eqA{/S/Launch\ifx\ef@launch@file\@empty\else + /F(\ef@launch@file)\fi\ef@launch@open + \ifx\ef@launch@win\@empty\else + /Win<<\ifx\ef@launchwin@file\@empty + /F(\ef@launch@file)\else/F(\ef@launchwin@file)\fi + \ifx\ef@launchwin@params\@empty\else + /P(\ef@launchwin@params)\fi + \ifx\ef@launchwin@open\@empty\else + /O(\ef@launchwin@open)\fi + \ifx\ef@launchwin@dir\@empty\else + /D(\ef@launchwin@dir)\fi>> + \fi + }% +} +\define@key{eflaunch}{file}[]{\def\ef@launch@file{#1}} +\let\ef@launch@file\@empty +\define@choicekey{eflaunch}{open}[\val\nr]{userpref,new,existing} +{% + \ifcase\nr\relax + \let\ef@launch@open\@empty\or + \def\ef@launch@open{/NewWindow true }\or + \def\ef@launch@open{/NewWindow false }\fi +}{} +\let\ef@launch@open\@empty +\define@key{eflaunch}{winParams}[]{\def\ef@launch@win{#1}% + \setkeys{eflaunchwin}{#1}% +}\let\ef@launch@win\@empty +\define@key{eflaunchwin}{file}[]{\def\ef@launchwin@file{#1}} +\let\ef@launchwin@file\@empty +\define@key{eflaunchwin}{directory}[]{\def\ef@launchwin@dir{#1}} +\let\ef@launchwin@dir\@empty +\define@key{eflaunchwin}{open}[]{\def\ef@launchwin@open{#1}} +\let\ef@launchwin@open\@empty +\define@key{eflaunchwin}{params}[]{\def\ef@launchwin@params{#1}} +\let\ef@launchwin@params\@empty +\define@key{eforms}{js}[]{\@eqA{\JS{#1}}} +\@tfor\ef@AActions:={{mouseup}{AAmouseup}}{{mousedown}{AAmousedown}}% + {{onenter}{AAmouseenter}}{{onexit}{AAmouseexit}}% + {{onfocus}{AAonfocus}}{{onblur}{AAonblur}}% + {{format}{AAformat}}{{keystroke}{AAkeystroke}}% + {{validate}{AAvalidate}}{{calculate}{AAcalculate}}% + {{pageopen}{AApageopen}}{{pageclose}{AApageclose}}% + {{pagevisible}{AApagevisible}}% + {{pageinvisible}{AApageinvisible}}\do{% + \expandafter\getargs\ef@AActions\ef@jstoks={#1}% + \edef\temp@expand@def{\noexpand\define@key{eforms}{\aeb@argi}[]% + {\noexpand\csname @eq\aeb@argii\noexpand\endcsname% + {\the\ef@jstoks}}}% + \temp@expand@def +} +\define@key{eforms}{objdef}{\@eqobjdef{#1}} +\define@key{eforms}{taborder}{\@eqtaborder{#1}} +\endinput +%% +%% End of file `uieforms.def'. diff --git a/texmf-dist/tex/latex/acrotex/usemcfi.def b/texmf-dist/tex/latex/acrotex/usemcfi.def index dccaac82..7f89c002 100644 --- a/texmf-dist/tex/latex/acrotex/usemcfi.def +++ b/texmf-dist/tex/latex/acrotex/usemcfi.def @@ -1,78 +1,78 @@ -%% -%% This is file `usemcfi.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% exerquiz.dtx (with options: `copyright,mcfi') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Exerquiz.sty package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \ifmakeExSlLocal\protect\endgroup^^J\fi -\def\bMCFI{% - \withinMCFItrue - \ifx\qRadionActionsHook\@empty - \let\qRadionActionsHook@SAVE\@empty - \def\qRadionActionsHook{\jsR - qRadioButtonMCFI(\Ans@choice,"\currQuiz",\thequestionno);}\else - \let\qRadionActionsHook@SAVE\qRadionActionsHook - \def\qRadionActionsHook{\qRadionActionsHook@SAVE\jsR - qRadioButtonMCFI(\Ans@choice,"\currQuiz",\thequestionno);}\fi - \ifx\every@RespBoxMath\@empty - \let\every@RespBoxMath@SAVE\@empty - \def\every@RespBoxMath{% - \AddAAKeystroke{mcfiKeyStroke("\currQuiz",\thequestionno);}}% - \else - \let\every@RespBoxMath@SAVE\every@RespBoxMath - \expandafter\def\expandafter\every@RespBoxMath\expandafter{% - \every@RespBoxMath@SAVE - \AddAAKeystroke{mcfiKeyStroke("\currQuiz",\thequestionno);}}% - \fi -} -\def\eMCFI{% - \ifx\qRadionActionsHook@SAVE\@empty - \let\qRadionActionsHook\@empty\else - \let\qRadionActionsHook\qRadionActionsHook@SAVE\fi - \ifx\every@RespBoxMath@SAVE\@empty - \let\every@RespBoxMath\@empty\else - \let\every@RespBoxMath\every@RespBoxMath@SAVE\fi - \withinMCFIfalse -} -\def\eqNA{-43252452452} -\@ifundefined{text}{\let\MCFIMarkup@BOX\mbox}{\let\MCFIMarkup@BOX\text} -\newcommand\mcfiMarkupfmt{\cgBdry - ${}^{\MCFIMarkup@BOX{\aeb@creditmarkup}}$} -\def\mcfiMarkup{\addtocounter{questionno}{-1}\mcfiMarkupfmt - \stepcounter{questionno}} -\newcommand{\clickChkBxMCFI}{"Click the check box preceding this - math input field to enter text."} -\begin{insDLJS}{mcf}{Eq: Supports MCFI-type questions} -function mcfiKeyStroke(qname,n) { - if (event.change=="") return; - var qNumMC=--n; - var mcName="mc."+qname+"."+qNumMC; - var mc= this.getField(mcName); - var aExpVs=mc.exportValues; - var l=aExpVs.length-1; - if (!mc.isBoxChecked(l)) { - eqAppAlert(\clickChkBxMCFI,3); - event.rc=false; - } -} -function qRadioButtonMCFI(key,qname,n) { - var fname = "obj."+qname+"."+(n+1); - if ( key == 0) this.resetForm(fname); -} -\end{insDLJS} -\endinput -%% -%% End of file `usemcfi.def'. +%% +%% This is file `usemcfi.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% exerquiz.dtx (with options: `copyright,mcfi') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Exerquiz.sty package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifmakeExSlLocal\protect\endgroup^^J\fi +\def\bMCFI{% + \withinMCFItrue + \ifx\qRadionActionsHook\@empty + \let\qRadionActionsHook@SAVE\@empty + \def\qRadionActionsHook{\jsR + qRadioButtonMCFI(\Ans@choice,"\currQuiz",\thequestionno);}\else + \let\qRadionActionsHook@SAVE\qRadionActionsHook + \def\qRadionActionsHook{\qRadionActionsHook@SAVE\jsR + qRadioButtonMCFI(\Ans@choice,"\currQuiz",\thequestionno);}\fi + \ifx\every@RespBoxMath\@empty + \let\every@RespBoxMath@SAVE\@empty + \def\every@RespBoxMath{% + \AddAAKeystroke{mcfiKeyStroke("\currQuiz",\thequestionno);}}% + \else + \let\every@RespBoxMath@SAVE\every@RespBoxMath + \expandafter\def\expandafter\every@RespBoxMath\expandafter{% + \every@RespBoxMath@SAVE + \AddAAKeystroke{mcfiKeyStroke("\currQuiz",\thequestionno);}}% + \fi +} +\def\eMCFI{% + \ifx\qRadionActionsHook@SAVE\@empty + \let\qRadionActionsHook\@empty\else + \let\qRadionActionsHook\qRadionActionsHook@SAVE\fi + \ifx\every@RespBoxMath@SAVE\@empty + \let\every@RespBoxMath\@empty\else + \let\every@RespBoxMath\every@RespBoxMath@SAVE\fi + \withinMCFIfalse +} +\def\eqNA{-43252452452} +\@ifundefined{text}{\let\MCFIMarkup@BOX\mbox}{\let\MCFIMarkup@BOX\text} +\newcommand\mcfiMarkupfmt{\cgBdry + ${}^{\MCFIMarkup@BOX{\aeb@creditmarkup}}$} +\def\mcfiMarkup{\addtocounter{questionno}{-1}\mcfiMarkupfmt + \stepcounter{questionno}} +\newcommand{\clickChkBxMCFI}{"Click the check box preceding this + math input field to enter text."} +\begin{insDLJS}{mcf}{Eq: Supports MCFI-type questions} +function mcfiKeyStroke(qname,n) { + if (event.change=="") return; + var qNumMC=--n; + var mcName="mc."+qname+"."+qNumMC; + var mc= this.getField(mcName); + var aExpVs=mc.exportValues; + var l=aExpVs.length-1; + if (!mc.isBoxChecked(l)) { + eqAppAlert(\clickChkBxMCFI,3); + event.rc=false; + } +} +function qRadioButtonMCFI(key,qname,n) { + var fname = "obj."+qname+"."+(n+1); + if ( key == 0) this.resetForm(fname); +} +\end{insDLJS} +\endinput +%% +%% End of file `usemcfi.def'. diff --git a/texmf-dist/tex/latex/acrotex/web.cfg b/texmf-dist/tex/latex/acrotex/web.cfg new file mode 100644 index 00000000..8afdc114 --- /dev/null +++ b/texmf-dist/tex/latex/acrotex/web.cfg @@ -0,0 +1,10 @@ +% +% AeB Web Configuration file +% +% This is the web configuration file. Replace dvips with +% dvipsone, pdftex or dvipdfm, in this case, when the driver +% is not specified in the option list of the web package, +% the driver specified here will be used. +% +\ExecuteOptions{dvips} + diff --git a/texmf-dist/tex/latex/acrotex/web.sty b/texmf-dist/tex/latex/acrotex/web.sty index 90a836ad..cd41885e 100644 --- a/texmf-dist/tex/latex/acrotex/web.sty +++ b/texmf-dist/tex/latex/acrotex/web.sty @@ -1,2209 +1,2209 @@ -%% -%% This is file `web.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% web.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Web package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% History: Noel Vaillant began developing a better web.sty -%% based on my earlier published web.sty. Many thanks -%% to him for starting me off. -%%--------------------------------------------------------- -\NeedsTeXFormat{LaTeX2e}[1997/12/01] -\ProvidesPackage{web} - [2017/03/20 v6.0o web: A Screen Design Package (dps)] -\RequirePackage{xkeyval} -\RequirePackage{ifpdf}[2006/02/20] -\RequirePackage{ifxetex}[2006/08/21] -\IfFileExists{xcolor.sty}{% - \def\eq@ColorPackage{xcolor}% - \PassOptionsToPackage{xcolor}{table,hyperref}% -}{\def\eq@ColorPackage{color}} -\DeclareOptionX{noxcolor}{\def\eq@ColorPackage{color}} -\let\i@web@ddtoHyOpts\@empty -\let\eq@driver@name\@empty -\let\web@YES=y \let\web@NO=n -\DeclareOptionX{dvipsone}{% - \def\eq@drivernum{0}\def\eq@driver@name{dvipsone}% - \let\web@set@paper\@empty - \@namedef{papersize@for@\eq@driver@name}{\AtBeginDocument{% - \special{papersize=\the\paperwidth,\the\paperheight}}}% -} -\DeclareOptionX{dviwindo}{% - \def\eq@drivernum{4}\def\eq@driver@name{dviwindo}% - \@namedef{papersize@for@\eq@driver@name}{\def\web@set@paper{% - \special{papersize=\the\paperwidth,\the\paperheight}}}% -} -\DeclareOptionX{dvipdfm}{% - \def\eq@drivernum{2}\def\eq@driver@name{dvipdfm}% - \web@opts@xdvipdfmx -} -\DeclareOptionX{dvipdfmx}{% - \def\eq@drivernum{2}\def\eq@driver@name{dvipdfmx}% - \web@opts@xdvipdfmx -} -\DeclareOptionX{xetex}{% - \def\eq@drivernum{2}\def\eq@driver@name{xetex}% - \web@opts@xdvipdfmx -} -\newcommand{\web@opts@xdvipdfmx}{% - \@namedef{papersize@for@\eq@driver@name}% - {\def\web@set@paper{\AtBeginDvi{% - \special{papersize=\the\paperwidth,\the\paperheight}}}}% -} -\DeclareOptionX{dvips}{% - \def\eq@drivernum{0}\def\eq@driver@name{dvips}% - \def\i@web@ddtoHyOpts{setpagesize=false}% - \let\web@set@paper\@empty - \@namedef{papersize@for@\eq@driver@name}{\AtBeginDocument{% - \special{papersize=\the\paperwidth,\the\paperheight}}}% -} -\DeclareOptionX{pdftex}{\ifx\eq@driver@name\@empty - \def\eq@drivernum{1}\def\eq@driver@name{pdftex}% - \def\i@web@ddtoHyOpts{setpagesize}\def\web@set@paper{}\fi -} -\DeclareOptionX{luatex}{\ifx\eq@driver@name\@empty - \def\eq@drivernum{1}\def\eq@driver@name{luatex}% - \def\i@web@ddtoHyOpts{setpagesize}\def\web@set@paper{}\fi -} -\DeclareOptionX{textures}{% - \def\eq@drivernum{3}\def\eq@driver@name{textures}% - \@namedef{papersize@for@\eq@driver@name}% - {\def\web@set@paper{\bgroup - \dimen2=\origpaperheight \advance\dimen2 by -\topmargin - \dimen0\dimen2 \advance\dimen0-\paperheight - \xdef\@pdfpagescrop{0 \strip@pt\dimen0 \space - \strip@pt\paperwidth\space \strip@pt\dimen2}% - \egroup}% - \AtEndOfPackage{% - \edef\origpaperwidth{\the\paperwidth}% - \edef\origpaperheight{\the\paperheight}% - }% - }% -} -\@ifundefined{ifequsecolor}{\newif\ifequsecolor \equsecolorfalse}{} -\DeclareOptionX{forpaper}{\equsecolorfalse\eqforpapertrue - \PassOptionsToPackage{forpaper}{eqexam} - \PassOptionsToPackage{monochrome}{\eq@ColorPackage}% - \PassOptionsToPackage{forpaper}{exerquiz}} -\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue - \PassOptionsToPackage{forcolorpaper}{eqexam} - \PassOptionsToPackage{forcolorpaper}{exerquiz}} -\DeclareOptionX{latexlayout}{% - \let\web@layout\web@NO\ExecuteOptionsX{forcolorpaper}} -\DeclareOptionX{uselatexsectioning}{% - \web@sectioningfalse -} -\newif\ifweb@sectioning \web@sectioningtrue -\DeclareOptionX{weblikeclass}{% - \ExecuteOptionsX{latexlayout}% - \ExecuteOptionsX{nobullets}% - \ExecuteOptionsX{uselatexsectioning}% -} -\DeclareOptionX{nodirectory}{\let\web@directory@option\web@NO} -\DeclareOptionX{usedirectory}{\let\web@directory@option\web@YES} -\DeclareOptionX{latextoc}{\let\web@latextoc\web@YES} -\DeclareOptionX{nobullets}{\let\web@bullets\web@NO - \let\web@latextoc\web@YES\forceSubSubNumbers} -\def\web@MargScrDimOpts#1#2#3#4#5#6{% - \margins{#1}{#2}{#3}{#4} % left,right,top, bottom - \screensize{#5}{#6} % height, width - \let\margins\@@margins\let\screensize\@gobbletwo -} -\DeclareOptionX{designi}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{3.736in}{4.67in}}} -\DeclareOptionX{designii}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{5in}}} -\DeclareOptionX{designiii}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{5in}{6in}}} -\DeclareOptionX{designiv}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4in}{5in}}} -\DeclareOptionX{designv}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{6in}}} -\DeclareOptionX{designvi}{\AtEndOfPackage{% - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.17in}{4.67in}}} -\DeclareOptionX{designvii}{\AtEndOfPackage{% - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{7.5in}{10in}}} -\DeclareOptionX{designviii}{\AtEndOfPackage{% - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6.67in}}} -\DeclareOptionX{designix}{\AtEndOfPackage{% - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6in}}} -\DeclareOptionX{usesf}{% - \def\aeb@defaultfamily{\sffamily} - \def\itdefault{sl} - \renewcommand{\familydefault}{\sfdefault} - \selectfont - \renewcommand\labelitemi{\textrm{\textbullet}} - \AtEndOfPackage{\def\web@copyright@symbol{\textrm{\copyright}}} -} -\def\aeb@defaultfamily{\rmfamily} -\DeclareOptionX{unicode}{\def\aeb@useunicode{unicode}} -\let\aeb@useunicode\@gobble -\newif\if@web@hyperref \@web@hyperreftrue -\DeclareOptionX{xhyperref}{\@web@hyperreffalse} -\define@choicekey+{webHyOpts}{pdfencoding}[\val\nr]% - {auto,pdfdoc,unicode}[pdfdoc]{\edef\web@Hypdfencoding{\val}} - {\PackageWarning{web}{Bad choice for pdfencoding, - permissible values\MessageBreak - are auto, pdfdoc, and unicode.\MessageBreak Try again}} -\let\web@Hypdfencoding\@empty -\let\u@web@ddtoHyOpts\@empty -\let\u@web@ddtoHySetup\@empty -\def\web@addtoHyOpts#1{\g@addto@macro\u@web@ddtoHyOpts{#1}} -\def\web@addtoHySetup#1{\g@addto@macro\u@web@ddtoHySetup{#1}} -\define@key{web.sty}{addtoHyOpts}[]{% - \setkeys*{webHyOpts}{#1}\web@addtoHyOpts{#1}} -\define@key{web.sty}{addtoHyOpts*}[]{% - \setkeys*{webHyOpts}{#1}\web@addtoHySetup{#1}} -\DeclareOptionX{useui}{\PassOptionsToPackage{useui}{eforms}} -\DeclareOptionX{forceSubSubNumbers}{\ExecuteOptionsX{nobullets}} -\DeclareOptionX{centertitlepage}{\@centertitlepagetrue} -\newif\if@centertitlepage \@centertitlepagefalse -\DeclareOptionX{centertitlepagefull}{\@centertitlepagefulltrue} -\newif\if@centertitlepagefull \@centertitlepagefullfalse -\DeclareOptionX{pro}{\let\webpro@loaded\web@YES} -\DeclareOptionX{extended}{\let\webpro@loaded\web@YES} -\let\webpro@loaded\web@NO -\def\loadwebpro{\InputIfFileExists{webpro.def}{}{}} -\newif\ifweb@allowtemplates \web@allowtemplatestrue -\DeclareOptionX{draft}{\web@allowtemplatesfalse} -\DeclareOptionX{usetemplates}{\def\@usetemplates{1}} -\DeclareOptionX{leftpanel}% - {\def\@panelconfig{1}\def\@usetemplates{1}} -\DeclareOptionX{rightpanel}% - {\def\@panelconfig{2}\def\@usetemplates{1}} -\newif\iftemplatesforpaper \templatesforpaperfalse -\DeclareOptionX{templatesforpaper}{\templatesforpapertrue - \ExecuteOptionsX{forcolorpaper}} -\DeclareOptionX{rightpanelprt}{% - \ifeqforpaper\else\ExecuteOptionsX{rightpanel}\fi -} -\DeclareOptionX{leftpanelprt}{% - \ifeqforpaper\else\ExecuteOptionsX{leftpanel}\fi -} -\def\templatedefaults{\def\@panelsep{0pt}\def\@usetemplates{0}% - \def\@panelconfig{0}\def\@textX{0}\def\@panelX{0}% -} -\templatedefaults -\DeclareOptionX{navibar}{\web@navibartrue} -\DeclareOptionX{tight}{\AtEndOfPackage{\tightsettings}} -\DeclareOptionX{tight*}{\AtEndOfPackage{\tightsettings*}} -\let\web@tight\web@NO -\DeclareOptionX{uselatexparts}{% - \AtEndOfPackage{\@ifundefined{part}{}{\let\part\web@save@part}}} -\DeclareOptionX{uselatexchapters}{% - \AtEndOfPackage{\@ifundefined{chapter}{} - {\let\chapter\web@save@chapter}}} -\DeclareOptionX{french}{% - \AtEndOfPackage{% - % Recouvrement de \today - \def\today{\the\day\ \ifcase\month\or janvier - \or f\'evrier \or mars \or avril - \or mai \or juin \or juillet \or ao\^ut - \or septembre \or octobre \or novembre - \or d\'ecembre \fi \the\year} - \def\web@toc{Table des mati\`{e}res} - \def\web@continued{suite} - \def\web@article{D\'{e}but \hyperlink{\web@Start.1}{Document}} - \def\web@directory{R\'{e}pertoire} - \def\web@revision{Mise \`{a} jour :} - \def\web@copyright{Copyright} - \def\web@versionlabel{Version} - \def\web@back{Retour}} - \PassOptionsToPackage{french}{exerquiz} -} -\DeclareOptionX{german}{% - \AtEndOfPackage{% - \def\today{\the\day. \ifcase\month\or Januar - \or Februar \or M\"{a}rz \or April - \or Mai \or Juni \or Juli \or August - \or September \or Oktober \or November - \or Dezember \fi \the\year} - \def\web@versionlabel{Version} - \def\web@toc{Inhaltsverzeichnis} - \def\web@continued{Forts.} - \def\web@article{Anfang \hyperlink{\web@Start.1}{Artikel}} - \def\web@directory{\"Ubersicht} - \def\web@revision{Letzte \"Anderung:} - \def\web@copyright{Copyright} - \def\web@section{Abschnitt} - \def\web@back{Zur\"uck} - \def\web@doc{Dok}} - \PassOptionsToPackage{german}{exerquiz} -} -\DeclareOptionX{norsk}{% - \AtEndOfPackage{% - \def\today{\ifcase\month\or Januar - \or Februar \or Mars \or April - \or Mai \or Juni \or Juli \or August - \or September \or Oktober \or November - \or Desember \fi \the\day, \the\year} - \def\web@versionlabel{Versjon} - \def\web@toc{Innholdsfortegnelse} - \def\web@continued{forts.} - \def\web@article{Start \hyperlink{\web@Start.1}{artikkel}} - \def\web@directory{Katalog} - \def\web@revision{Sist endret:} - \def\web@copyright{Copyright} - \def\web@section{Avsnitt} - \def\web@back{Tilbake} - \def\web@doc{Dok}} - \PassOptionsToPackage{norsk}{exerquiz} -} -\DeclareOptionX{dutch}{% - \AtEndOfPackage{% - \def\today{\the\day~\ifcase\month\or januari - \or februari \or maart \or april - \or mei \or juni \or juli \or augustus - \or september \or oktober \or november - \or december \fi \space \the\year} - \def\web@versionlabel{Versie} - \def\web@toc{Inhoudsopgave} - \def\web@continued{vervolg} - \def\web@article{Begin \hyperlink{\web@Start.1}{Artikel}} - \def\web@directory{Overzicht} - \def\web@revision{Laatste wijziging:} - \def\web@copyright{Copyright} - \def\web@section{Sectie} - \def\web@back{Terug} - \def\web@doc{Doc}} - \PassOptionsToPackage{dutch}{exerquiz} -} -\DeclareOptionX{spanish}{% - \AtEndOfPackage{% - \def\today{\the\day\ de \ifcase\month\or Enero - \or Febrero \or Marzo \or Abril - \or Mayo \or Junio \or Julio \or Agosto - \or Septiembre \or Octubre \or Noviembre - \or Deciembre \fi de \the\year} - \renewcommand\web@versionlabel{Versi\noexpand\'{o}n} - \renewcommand\web@toc{Tabla de Contenido} - \renewcommand\web@continued{cont.} - \renewcommand\web@article{Inicio - \hyperlink{\web@Start.1}{Art\'{\i}culo}} - \renewcommand\web@directory{Directorio} - \renewcommand\web@revision{Actualizado el:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Secci\'on} - \renewcommand\web@back{Volver} - \renewcommand\web@doc{Doc}} - \PassOptionsToPackage{spanish}{exerquiz} -} -\DeclareOptionX{italian}{% - \AtEndOfPackage{% - \def\today{\ifcase\month\or Gennaio - \or Febbraio \or Marzo \or Aprile - \or Maggio \or Giugno \or Luglio \or Agosto - \or Settembre \or Ottobre \or Novembre - \or Dicembre \fi \the\day, \the\year} - \renewcommand\web@versionlabel{Versione} - \renewcommand\web@toc{Indice} - \renewcommand\web@continued{cont.} - \renewcommand\web@article{Inizio \hyperlink{\web@Start.1}{Articolo}} - \renewcommand\web@directory{Directory} - \renewcommand\web@revision{Data Ultima Revisione:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Sezione} - \renewcommand\web@back{Back} - \renewcommand\web@doc{Doc}} - \PassOptionsToPackage{italian}{exerquiz} -} -\DeclareOptionX{russian}{% - \ExecuteOptionsX{unicode}% - \AtEndOfPackage{% - \def\today{\the\day\ \ifcase\month - \or \cyrya\cyrn\cyrv\cyra\cyrr\cyrya - \or \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya - \or \cyrm\cyra\cyrr\cyrt\cyra - \or \cyra\cyrp\cyrr\cyre\cyrl\cyrya - \or \cyrm\cyra\cyrya - \or \cyri\cyryu\cyrn\cyrya - \or \cyri\cyryu\cyrl\cyrya - \or \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra - \or \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya - \or \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya - \or \cyrn\cyro\cyrya\cyrb\cyrr\cyrya - \or \cyrd\cyre\cyrk\cyrya\cyrb\cyrr\cyrya \fi{ }% - \the\year\ \cyrg.} - \gdef\eq@protected##1##2{{\ifhmode ##2\else - \ifvmode ##2\else\ifinner##2\else\noexpand ##1\fi\fi\fi}}% - \def\cyrCommand##1##2{\def##1{\eq@protected##1{##2}}}% - \cyrCommand\web@toc{\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn% - \cyri\cyre} - \cyrCommand\web@continued{\cyrp\cyrr\cyro\cyrd\cyro\cyrl% - \cyrzh\cyre\cyrn\cyri\cyre} - \cyrCommand\web@article{\CYRN\cyra\cyrch\cyra\cyrl\cyro{ }% - \hyperlink{\web@Start.1}{\cyrd\cyro\cyrk\cyru\cyrm\cyre% - \cyrn\cyrt\cyra}} - \cyrCommand\web@directory{\CYRS\cyro\cyrd\cyre\cyrr\cyrzh% - \cyra\cyrn\cyri\cyre} - \cyrCommand\web@revision{\CYRP\cyro\cyrs\cyrl\cyre\cyrd\cyrn% - \cyrya\cyrya{ }\cyrr\cyre\cyrv\cyri\cyrz\cyri\cyrya:} - \let\web@copyright\@gobble - \cyrCommand\web@versionlabel{\CYRV\cyre\cyrr\cyrs\cyri\cyrya} - \cyrCommand\web@back{\CYRN\cyra\cyrz\cyra\cyrd} - \cyrCommand\web@section{\CYRCH\cyra\cyrs\cyrt\cyrsftsn}} - \PassOptionsToPackage{russian}{exerquiz} -} -\DeclareOptionX{dansk}{% - \AtEndOfPackage{% - \def\today{\ifcase\month\or Januar - \or Februar \or Marts \or April - \or Maj \or Juni \or Juli \or August - \or September \or Oktober \or November - \or December \fi \the\day, \the\year} - \renewcommand\web@versionlabel{Version} - \renewcommand\web@toc{Indholdsfortegnelse} - \renewcommand\web@continued{forts.} - \renewcommand\web@article{Begin \hyperlink{\web@Start.1}{Artikel}} - \renewcommand\web@directory{Katalog} - \renewcommand\web@revision{Sidst revideret:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Afsnit} - % Label Navibar - \renewcommand\web@back{Tilbage} - \renewcommand\web@doc{Dok}} % restricted to three characters - \PassOptionsToPackage{dansk}{exerquiz} -} -\DeclareOptionX{polish}{% - \AtEndOfPackage{% - \def\today{\ifcase\month\or {Stycze\'{n}} - \or Luty \or Marzec \or {Kwiecie\'{n}} - \or Maj \or Czerwiec \or Lipiec \or {\'{S}ierpie\'{n}} - \or {Wrzesie\'{n}} \or {Pa\'{z}dziernik} \or Listopad - \or {Grudzie\'{n}} \fi \the\day, \the\year} - \renewcommand\web@versionlabel{Wersja} - \renewcommand\web@toc{Spis Tre\'{s}ci} - \renewcommand\web@continued{verte} - \renewcommand\web@article{Pocz\k{a}tek do - \hyperlink{\web@Start.1}{Tekstu}} - \renewcommand\web@directory{Zawarto\'{s}\'{c}} - \renewcommand\web@revision{Ostatnia zmiana:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Cze\'{s}\'{c}} - % Label Navibar - \renewcommand\web@back{Wstecz} - \renewcommand\web@doc{Dok}} % restricted to three characters - \PassOptionsToPackage{polish}{exerquiz} -} -\DeclareOptionX{finnish}{% - \AtEndOfPackage{% - % Recouvrement de \today - \def\today{\the\day\ \ifcase\month\or Tammikuu - \or Helmikuu \or Maaliskuu \or Huhtikuu - \or Toukokuu \or Kes\"{a}kuu \or Hein\"{a}kuu \or Elokuu - \or Syyskuu \or Lokakuu \or Marraskuu - \or Joulukuu \fi \the\year} - \def\web@toc{Sis\"{a}llys} - \def\web@continued{jatka} - \def\web@article{Aloita \hyperlink{section.1}{Artikkeli}} - \def\web@directory{Hakemisto} - \def\web@revision{Muutettu viimeeksi:} - \def\web@copyright{Copyright} - \def\web@section{Kappale} - \def\web@versionlabel{Versio} - \def\web@back{Takaisin}} - \PassOptionsToPackage{finnish}{exerquiz} -} -\DeclareOptionX{catalan}{% - \AtEndOfPackage{% - \def\today{\the\day\ de \ifcase\month\or Gener - \or Febrer \or Mar\c{c} \or Abril - \or Maig \or Juny \or Juliol \or Agost - \or Setembre \or Octubre \or Novembre - \or Desembre \fi de \the\year} - \renewcommand\web@versionlabel{Versi\noexpand\'{o}} - \renewcommand\web@toc{Taula de Contingut} - \renewcommand\web@continued{cont.} - \renewcommand\web@article{Inici \hyperlink{\web@Start.1}{Article}} - \renewcommand\web@directory{Directori} - \renewcommand\web@revision{Actualizat el:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Secci\'o} - \renewcommand\web@back{Tornar} - \renewcommand\web@doc{Doc}} - \PassOptionsToPackage{catalan}{exerquiz} -} -\DeclareOptionX{czech}{% - \AtEndOfPackage{% - \def\today{\number\day. \ifcase\month\or ledna\or \'unora\or - b\v{r}ezna\or dubna\or kv\v{e}tna\or \v{c}ervna\or \v{c}ervence\or - srpna\or z\'a\v{r}\'\i\or \v{r}\'{\i}jna\or listopadu\or prosince\fi - \space\number\year} - \def\web@versionlabel{Verze} - \def\web@toc{Obsah} - \def\web@continued{pokr.} - \def\web@article{Za\v{c}\'{a}tek \hyperlink{\web@Start.1}{textu}} - \def\web@directory{Rozcestn\'{\i}k} - \def\web@revision{Posledn\'{\i} zm\v{e}na} - \def\web@copyright{Copyright} - \def\web@section{Kapitola} - \def\web@back{Zp\v{e}t} - \def\web@doc{Dok}} - \PassOptionsToPackage{czech}{exerquiz} -} -\DeclareOptionX{brazil}{% - \AtEndOfPackage{% - \def\today{\the\day\ de \ifcase\month\or janeiro - \or fevereiro \or mar\c{c}o \or abril - \or maio \or junho \or julho \or agosto - \or setembro \or outubro \or novembro - \or dezembro \fi de \the\year} - \renewcommand\web@versionlabel{Vers\~{a}o} - \renewcommand\web@toc{Tabela de Conte\'{u}do} - \renewcommand\web@continued{cont.} - \renewcommand\web@article{Inicie o - \hyperlink{\web@Start.1}{Artigo}} - \renewcommand\web@directory{Diret\'{o}rio} - \renewcommand\web@revision{Atualizado em:} - \renewcommand\web@copyright{Copyright} - \renewcommand\web@section{Se\c{c}\noexpand\~{a}o} - \renewcommand\web@back{Voltar} - \renewcommand\web@doc{Doc}} - \PassOptionsToPackage{brazil}{exerquiz} -} -\DeclareOptionX{turkish}{% - \ExecuteOptionsX{unicode}% - \AtEndOfPackage{% - \def\today{\the\day\ \ifcase\month\or Ocak - \or \c{S}ubat \or Mart \or Nisan - \or May{\i}s \or Haziran \or Temmuz \or A\u{g}ustos - \or Eyl\"ul \or Ekim \or Kas{\i}m - \or Aral{\i}k \fi \the\year} - \def\web@toc{{\.I}\c{c}indekiler} - \def\web@continued{suite} - \def\web@article{\hyperlink{\web@Start.1}{D\"ok\"umanta} ba{\c s}la} - \def\web@directory{Dosya} - \def\web@revision{Son versiyon tarihi :} - \def\web@copyright{Copyright} - \def\web@versionlabel{Versiyon} - \def\web@section{K{\i}s{\i}m} - \def\web@back{Geri} - \def\web@doc{D\"ok}} - \PassOptionsToPackage{turkish}{exerquiz} -} -\DeclareOptionX*{\PassOptionsToPackage{\CurrentOption} - {\eq@ColorPackage}} -\@ifpackageloaded{xcolor}% -{% - \@ifpackagelater{xcolor}{2004/07/04}{} - {% - \PackageError{web}{% - *************************************************\MessageBreak - * Your Version of `xcolor.sty' is too old!\MessageBreak - * You need the version from 2004/07/04 or newer\MessageBreak - * or use: \string\usepackage[noxcolor]{web}\MessageBreak - * or \string\documentclass[noxcolor]{article}\MessageBreak - *************************************************}{}% - }% -}{} -\newif\ifweb@navibar\web@navibarfalse -\def\NaviBarOn{\global\web@navibartrue} -\def\NaviBarOff{\global\web@navibarfalse} -\newif\ifeqforpaper \eqforpaperfalse % for those who insist on paper -\newif\ifweb@papersize@set \web@papersize@setfalse -\newif\ifweb@margins@set \web@margins@setfalse -\newif\if@defaultsubsubding \@defaultsubsubdingtrue -\def\forceSubSubNumbers{% - \ifx\web@latextoc\web@YES\else - \PackageWarning{webpro}{\string\forSubSubNumbers\space - requested,\MessageBreak I'm adding the option of latextoc}\fi - \let\web@latextoc\web@YES\@defaultsubsubdingfalse -} -\@ifclassloaded{report}{\newif\if@mainmatter\@mainmattertrue}{} -\newcommand\NewPage{\ifeqforpaper\else\newpage\fi} -\let\web@directory@option\web@NO -\let\web@latextoc\web@NO -\let\web@layout\web@YES -\let\web@bullets\web@YES -\def\web@finalDot{.} -\def\noFinalDot{\let\web@finalDot\@empty} -\@onlypreamble\noFinalDot -\def\minPanelWidth#1{\def\web@minpanelwidth{#1}} -\minPanelWidth{1in} -\ifpdf\ExecuteOptionsX{pdftex}\else - \ifxetex\ExecuteOptionsX{xetex}\else - \let\ExecuteOptions@SAVE\ExecuteOptions - \let\ExecuteOptions\ExecuteOptionsX - \InputIfFileExists{web.cfg}{} - {\@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} - {\ExecuteOptionsX{dvipsone}}}% - \let\ExecuteOptions\ExecuteOptions@SAVE - \fi\fi -\ProcessOptionsX -\ifx\web@Hypdfencoding\@empty\else - \let\aeb@useunicode\@gobble\fi -\def\w@csarg#1#2{\expandafter#1\csname#2\endcsname} -\@nameuse{papersize@for@\eq@driver@name} -\ifx\web@layout\web@YES\else\templatedefaults\fi -\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup} -\pdfmarkupfalse\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi -\iftemplatesforpaper\def\@usetemplates{1}\fi -\if@centertitlepagefull\@centertitlepagetrue\fi -\RequirePackage{\eq@ColorPackage} -\RequirePackage{calc} -\RequirePackage{amssymb}% used for navibar -\edef\web@RequireHyperref{\noexpand\RequirePackage[% - \ifpdf\else\ifxetex\else\eq@driver@name,\fi\fi - bookmarks,bookmarksnumbered,bookmarksopen,% - colorlinks,\aeb@useunicode,linkcolor=webgreen,% - filecolor=webbrown,citecolor=webgreen,% - urlcolor=webbrown,pagebackref,pdfpagemode=UseNone,% - pdfstartview=Fit,pdfpagelayout=SinglePage% - \ifx\u@web@ddtoHyOpts\@empty\else,\u@web@ddtoHyOpts\fi - \ifx\i@web@ddtoHyOpts\@empty\else,\i@web@ddtoHyOpts\fi]{hyperref}% -} -\def\w@isHyLoaded{\@ifpackageloaded{hyperref}{}{\PackageError{web} - {The xhyperref option used, but hyperref is not\MessageBreak - already loaded. Will load hyperref with the options\MessageBreak - chosen by web}{Remove xhyperref or load hyperref prior to the web - package.}\web@RequireHyperref}% -} -\if@web@hyperref\expandafter\web@RequireHyperref\else - \expandafter\w@isHyLoaded\fi -\ifx\u@web@ddtoHySetup\@empty\else\edef\x{\noexpand\hypersetup - {\u@web@ddtoHySetup}}\expandafter\x\fi -\def\@pdfcreator{The AcroTeX eDucation Bundle} -\RequirePackage{comment} -\ifnum\@usetemplates=1\relax - \def\x{\RequirePackage{graphicx}}\expandafter\x\fi -\ifnum\@usetemplates=1\relax - \RequirePackage{eso-pic} - \ifnum\eq@drivernum=2\relax - \def\web@set@paper{\AddToShipoutPicture*{% - \special{papersize=\the\paperwidth,\the\paperheight}}}% - \AtBeginShipoutFirst{% - \begingroup - \@ifundefined{stockwidth}{% - \ifx\special@paper\@empty - \special{papersize=\the\paperwidth,\the\paperheight}% - \else - \special{papersize=\special@paper}% - \fi - }{% - \ifdim\stockwidth=\z@ - \else - \special{papersize=\the\stockwidth,\the\stockheight}% - \fi - }% - \endgroup - }% - \@ifundefined{@ShipoutPicture}{}{% - \renewcommand{\@ShipoutPicture}{% - \bgroup - \@tempswafalse% - \ifx\ESO@HookI\@empty\else\@tempswatrue\fi% - \ifx\ESO@HookII\@empty\else\@tempswatrue\fi% - \if@tempswa% - \@tempdima=1in\@tempdimb=-\@tempdima% - \advance\@tempdimb\paperheight - \@ifundefined{stockwidth}{}{% - \advance\@tempdima+\trimedge% - \advance\@tempdima+\paperwidth% - \advance\@tempdima-\stockwidth% - \if@twoside\ifodd\c@page\else% - \advance\@tempdima-2\trimedge% - \advance\@tempdima-\paperwidth% - \advance\@tempdima+\stockwidth% - \fi\fi% - \advance\@tempdimb+\trimtop}% - \unitlength=1pt% - \global\setbox\@cclv\vbox{% - \vbox{\let\protect\relax - \pictur@(0,0)% - (\strip@pt\@tempdima,\strip@pt\@tempdimb)% - \ESO@HookII\ESO@HookI\global\let\ESO@HookII\@empty% - \endpicture}% - \box\@cclv% - }% - \fi - \egroup - }% - }% - \fi -\fi -\def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}} -\let\getargsii\getargs -\newlength{\textscreenwidth} -\setlength{\textscreenwidth}{\paperwidth} -\newlength{\@panelwidth} -\def\panelscreenwidth{\@panelwidth} -\newdimen\@Leftmargin \@Leftmargin=0pt -\newdimen\@Rightmargin \@Rightmargin=0pt -\newdimen\@Bottommargin \@Bottommargin=0pt -\newdimen\@Topmargin \@Topmargin=0pt -\newdimen\web@Topmargin \web@Topmargin=8pt -\newcommand{\websetheadheight}{8pt} -\newcommand{\web@footskip}{4pt} -\def\web@additionalheadsep{0pt} -\pagestyle{empty} -\def\InitLayout -{% - \ifeqforpaper\else - \setlength\headheight{\websetheadheight} - \hoffset=0pt \voffset=0pt - \fi - \ifeqforpaper\else - {\@tempdima=\paperwidth - \addtolength{\@tempdima}{-\@Leftmargin}% - \addtolength{\@tempdima}{-\@Rightmargin}% - \xdef\fullscreenwidth{\the\@tempdima}}% - \fi - \ifx\web@layout\web@YES\else\templatedefaults\fi - \ifeqforpaper\else - \setlength{\textwidth}{\paperwidth} - \setlength{\textheight}{\paperheight} - \addtolength{\textheight}{-\@Topmargin} - \addtolength{\textheight}{-\@Bottommargin} - \setlength{\headsep}{\@Topmargin} - \addtolength\headsep{-\headheight} - \setlength{\topmargin}{\web@Topmargin} - \addtolength\headsep{-\topmargin} - \addtolength\headsep{\web@additionalheadsep} - \addtolength{\topmargin}{-1in} - \setlength\footskip{\@Bottommargin} - \addtolength{\footskip}{-\web@footskip} % depth of navibar - \ifcase\@panelconfig - \setlength{\oddsidemargin}{\@Leftmargin} - \setlength{\evensidemargin}{\@Leftmargin} - \or - \setlength{\oddsidemargin}{\@panelwidth} - \setlength{\evensidemargin}{\@panelwidth} - \or - \setlength{\oddsidemargin}{\@Leftmargin} - \setlength{\evensidemargin}{\@Leftmargin} - \fi - \addtolength{\evensidemargin}{-1in} - \addtolength{\oddsidemargin}{-1in} - \fi - \ifx\web@layout\web@YES - \ifcase\@panelconfig - \addtolength{\textwidth}{-\@Leftmargin} - \addtolength{\textwidth}{-\@Rightmargin} - \or % leftpanel - \addtolength{\textwidth}{-\@panelwidth} - \addtolength{\textwidth}{-\@Rightmargin} - \or % rightpanel - \addtolength{\textwidth}{-\@panelwidth} - \addtolength{\textwidth}{-\@Leftmargin} - \fi - \ifnum\@usetemplates=1\relax - \setlength{\textscreenwidth}{\paperwidth} - \def\@textX{0} - \ifnum\@panelconfig=1 % leftpanel - \addtolength{\textwidth}{-\@panelsep} - \addtolength{\oddsidemargin}{\@panelsep} - \addtolength{\evensidemargin}{\@panelsep} - \addtolength{\textscreenwidth}{-\@panelwidth} - \def\@textX{\strip@pt\@panelwidth} - \def\@panelX{0} - \fi - \ifnum\@panelconfig=2 % rightpanel - \addtolength{\textwidth}{-\@panelsep} - \addtolength{\textscreenwidth}{-\@panelwidth} - \def\@textX{0} - \def\@panelX{\strip@pt\textscreenwidth} - \fi - \calculatefullwidth - \fi - \fi -} -\def\@convLtoP#1#2{% - \afterassignment\@convLtoP@i\dimen@#2bp\relax{#1}{#2}} -\def\@convLtoP@i#1\relax#2#3{% - \if!#1!% - \def#2{#3}% - \else - \dimen@.99626\dimen@ - \edef#2{\strip@pt\dimen@}% - \fi} -\providecommand\setPageDevice[3][600]{\bgroup - \@convLtoP{\width}{#2}\@convLtoP{\height}{#3} - \ifpdfmarkup\headerps@out{<< /HWResolution [#1 #1] % - /PageSize [\width\space\height] >> setpagedevice}\else - \PackageWarning{web}{This is a distiller only command,\MessageBreak - ignoring \string\setPageDevice}\fi\egroup} -\providecommand\allowTransparency{\bgroup - \ifpdfmarkup\headerps@out{<< % - /AllowTransparency true >> setdistillerparams}\else - \PackageWarning{web}{This is a distiller only command,\MessageBreak - ignoring \string\allowTransparency}\fi\egroup} -\@onlypreamble\setPageDevice -\@onlypreamble\allowTransparency -\def\screensize#1#2{% - \def\webSaveSSDim{{#1}{#2}}% - \begingroup - \ifeqforpaper - \ifx\web@layout\web@YES - \setlength{\@tempdima}{#2}% - \global\textwidth\@tempdima - \addtolength{\@tempdima}{-\@Leftmargin}% - \addtolength{\@tempdima}{-\@Rightmargin}% - \xdef\fullscreenwidth{\the\@tempdima}% - \else - \xdef\fullscreenwidth{\the\textwidth}% - \fi - \else - \setlength{\@tempdima}{#1}% - \global\paperheight\@tempdima - \setlength{\@tempdima}{#2}% - \global\paperwidth\@tempdima - \fi - \endgroup - \web@papersize@settrue - \web@set@paper % dps modified - \let\screensize\@gobbletwo - \InitLayout -} -\let\screensize@web@save\screensize -\newcommand{\setScreensizeFromGraphic}[2][]{% - \getDimsFromGraphic[#1]{#2}% - {\web@graphicScreenWidth}{\web@graphicScreenHeight}% - \screensize{\web@graphicScreenHeight}{\web@graphicScreenWidth}% -} -\@onlypreamble\setScreensizeFromGraphic -\newcommand{\getDimsFromGraphic}[4][]{{% - \setbox0=\hbox{\includegraphics[draft,#1]{#2}}% - \dimen@=\dp0 \advance\dimen@\ht0 - \xdef#3{\the\wd0 }\xdef#4{\the\dimen@}% -}} -\def\web@getSSDims#1#2{\edef\web@@height{#1}\edef\web@@width{#2}} -\def\addToWebHWError{\PackageError{web}{% - You must declare screen size first by using\MessageBreak - the \string\screensize\space command, or by declaring \MessageBreak - a design in the web option list}% - {Do as is suggested in error message!}} -\newcommand{\addtoWebHeight}[1]{% - \ifx\screensize\@gobbletwo - \expandafter\web@getSSDims\webSaveSSDim - \screensize@web@save{\web@@height+#1}{\web@@width}% - \else\addToWebHWError\fi -} -\newcommand{\addtoWebWidth}[1]{% - \ifx\screensize\@gobbletwo - \expandafter\web@getSSDims\webSaveSSDim - \screensize@web@save{\web@@height}{\web@@width+#1}% - \else\addToWebHWError\fi -} -\@onlypreamble\addtoWebHeight -\@onlypreamble\addtoWebWidth -\newcommand{\@margins}[5][\web@minpanelwidth] -{% - \def\webSaveMargDim{[#1]{#2}{#3}{#4}{#5}}% - \setlength{\@panelwidth}{#1}% - \ifdim\@panelwidth<\web@minpanelwidth - \setlength{\@panelwidth}{\web@minpanelwidth}\fi - \setlength{\@Leftmargin}{#2}% - \setlength{\@Rightmargin}{#3}% - \setlength{\@Topmargin}{#4}% - \setlength{\@Bottommargin}{#5}% - \web@margins@settrue - \InitLayout -} -\let\margins\@margins -\let\margins@web@save\margins -\newcommand{\@@margins}[5][]{} -\let\marginsize\margins -\newcommand\get@MargDim[5][]{% - \def\currPanelWidth{#1}% - \def\currLeftMarg{#2}\def\currRightMarg{#3}% - \def\currTopMarg{#4}\def\currBottomMarg{#5}} -\newcommand{\resetmargins}[5][\web@minpanelwidth]{% - \expandafter\get@MargDim\webSaveMargDim - \begingroup - \let\incby\currPanelWidth - \def\web@arg{#1}\ifx\web@arg\@empty - \setlength{\@tempdima}{\currPanelWidth}\else - \setlength{\@tempdima}{#1}\fi - \xdef\newPanelWidth{\the\@tempdima}% - \let\incby\currLeftMarg - \def\web@arg{#2}\ifx\web@arg\@empty - \setlength{\@tempdima}{\currLeftMarg}\else - \setlength{\@tempdima}{#2}\fi - \xdef\newLeftMarg{\the\@tempdima}% - \let\incby\currRightMarg - \def\web@arg{#3}\ifx\web@arg\@empty - \setlength{\@tempdima}{\currRightMarg}\else - \setlength{\@tempdima}{#3}\fi - \xdef\newRightMarg{\the\@tempdima}% - \let\incby\currTopMarg - \def\web@arg{#4}\ifx\web@arg\@empty - \setlength{\@tempdima}{\currTopMarg}\else - \setlength{\@tempdima}{#4}\fi - \xdef\newTopMarg{\the\@tempdima}% - \let\incby\currBottomMarg - \def\web@arg{#4}\ifx\web@arg\@empty - \setlength{\@tempdima}{\currBottomMarg}\else - \setlength{\@tempdima}{#5}\fi - \xdef\newBottomMarg{\the\@tempdima}% - \endgroup - \margins@web@save[\newPanelWidth]{\newLeftMarg}{\newRightMarg} - {\newTopMarg}{\newBottomMarg} -} -\@onlypreamble\resetscreensize -\let\web@save@title\title -\def\title{\@ifnextchar[{\@web@title}{\@web@title[]}} -\def\@web@title[#1]#2{\gdef\webtitle{#2}\hypersetup{pdftitle={#2}}% - \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebtitle{#2}\else - \gdef\shortwebtitle{#1}\fi\web@save@title{#2}} -\let\web@saved@author\author -\def\author#1{\gdef\webauthor{#1}\hypersetup{pdfauthor={#1}}% - \web@saved@author{#1}} -\def\subject{\@ifnextchar[{\@subject}{\@subject[]}} -\def\@subject[#1]#2{% - \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebsubject{#2}\else - \gdef\shortwebsubject{#1}\fi\gdef\websubject{#2}% - \hypersetup{pdfsubject={#2}}} -\def\email#1{\gdef\webemail{#1}} -\def\thewebemail{\href{mailto:\webemail}{\webemail}} -\def\keywords#1{\gdef\webkeywords{#1}\hypersetup{pdfkeywords={#1}}} -\def\pdfLang#1{\def\web@pdfLang{#1}\hypersetup{pdflang={#1}}} -\let\web@pdfLang\@empty -\def\university#1{\gdef\webuniversity{#1}} -\def\version#1{\gdef\web@version@value{#1}% - \edef\webversion{\ifx\web@version@value\@empty\else - \noexpand\web@versionlabel\noexpand\ - \noexpand\web@version@value\fi}% -} -\let\web@version@value\@empty -\def\versionLabel#1{\def\web@versionlabel{#1}} -\versionLabel{Version} -\def\copyrightyears#1{\gdef\webcopyrightyears{#1}} -\newcommand{\tocName}[1]{\def\web@toc{#1}} -\tocName{Table of Contents} -\newcommand{\tocNameCont}[1]{\def\web@continued{#1}} -\tocNameCont{cont.} -\newcommand{\dirContentLink}[1]{\def\web@article{#1}} -\dirContentLink{Begin \hyperlink{\web@Start.1}{Article}} -\newcommand{\directoryName}[1]{\def\web@directory{#1}} -\directoryName{Directory} -\newcommand{\revisionLabel}[1]{\def\web@revision{#1}} -\revisionLabel{Last Revision Date:} -\def\norevisionLabel{\let\web@revision\@gobble} -\newcommand{\copyrightLabel}[1]{\def\web@copyright{#1}} -\copyrightLabel{Copyright} -\def\nocopyright{\let\web@copyright\@gobble} -\def\nocopyrightNotice{\let\web@copyright\@gobblethree} -\def\web@section{Section} -\def\web@back{Back} -\def\web@doc{Doc} % restricted to three characters -\title{}\author{}\email{}\subject{}\keywords{}\version{} -\university{}\copyrightyears{\the\year} -\let\IF@AorBswitch\ifeqforpaper -\def\prtscr{\@ifstar{\prtscrV}{\prtscrA}} -\def\prtscrA#1#2{\ifeqforpaper#1\else#2\fi} -\newtoks\webtoksi -\newbox\webtempboxi -\newbox\webtempboxii -\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} -\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} -\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} -\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} -\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} -\providecommand\SETTEMPBOXi{\IF@AorBswitch\else - \afterassignment\TRUEACTIONia\fi - \setbox\webtempboxi=\hbox} -\providecommand\SETTEMPBOXii{\IF@AorBswitch - \afterassignment\FALSEACTIONiia\fi - \setbox\webtempboxii=\hbox} -\def\prtscrV{\let\IF@AorBswitch\ifeqforpaper - \ifeqforpaper - \def\web@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else - \def\web@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi - \web@next} -\newcommand{\web@aboveOptPgMatDef}{\minimumskip\vspace{\stretch{1}}} -\newcommand{\aboveOPMvspace}{\web@aboveOptPgMatDef} -\newcommand{\optionalPageMatter}[2][\web@aboveOptPgMatDef]{% - \def\aboveOPMvspace{#1}\def\optionalpagematter{#2}% -} -\def\optionalpagematter{} -\@ifundefined{thechapter} - {\def\web@Start{section}}{\def\web@Start{chapter}} -\newcommand{\titleauthorproportion}{.33} -\newcommand{\hproportionwebuniversity}{.7} -\newcommand{\hproportionwebtitle}{.7} -\newcommand{\hproportionwebauthor}{.4} -\newcommand{\minimumskip}{\medskip} -\def\web@copyright@symbol{\copyright} -\newcommand{\copyrightSymbol}[1]{\def\web@copyright@symbol{#1}} -\def\nocopyrightsymbol{\let\web@copyright@symbol\@gobble} -\newcommand{\trailerFontSize}{\footnotesize} -\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} -\newcommand{\titlepageTrailer} -{% - \makebox[\linewidth]{\parbox{\linewidth}{% - \maketitle@trailer@ul\hfill\maketitle@trailer@ur\\ - \maketitle@trailer@ll\hfill\maketitle@trailer@lr}}% -} -\newcommand{\webdirectory}{% - \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}}% - \web@priorDirMatter - \begin{flushleft}{\web@formatWordDirectory\web@directory}% - \web@priorDirList - \vspace{\vspaceAfterDirName}% - \begin{itemize}\setlength{\itemsep}{-3pt}\web@formatDirectoryItems - \ifx\web@removeDirTOC\web@YES\else\item\relax\dirTOCItem\fi - \ifx\web@removeDirArticle\web@YES\else - \item\relax\dirArticleItem\fi - \web@addtoDirList - \end{itemize} - \web@afterDirList - \end{flushleft} - \web@afterDirMatter -} -\newcommand{\directoryhook}[1]{\def\web@directory@hook##1{#1}} -\let\web@directory@hook\@empty -\newcommand{\vspaceAfterDirName}{-3pt} -\newcommand{\dirTOCItem}{\hyperlink{webtoc}{\web@toc}} -\newcommand{\dirArticleItem}{\web@article} -\newcommand{\removeDirTOC}{\let\web@removeDirTOC\web@YES} -\let\web@removeDirTOC\web@NO -\newcommand{\removeDirArticle}{\let\web@removeDirArticle\web@YES} -\let\web@removeDirArticle\web@NO -\let\web@addtoDirList\@empty -\newcommand{\formatWordDirectory}[1]{\def\web@formatWordDirectory{#1}} -\formatWordDirectory{\bfseries\large} -\newcommand{\formatDirectoryItems}[1]{\def\web@formatDirectoryItems{#1}} -\formatDirectoryItems{\bfseries} -\newcommand{\addtoDirList}[1]{\g@addto@macro\web@addtoDirList{\item #1}} -\newcommand{\priorDirList}[1]{\def\web@priorDirList{#1}} -\let\web@priorDirList\@empty -\newcommand{\afterDirList}[1]{\def\web@afterDirList{#1}} -\let\web@afterDirList\@empty -\newcommand{\priorDirMatter}[1]{\def\web@priorDirMatter{#1}} -\let\web@priorDirMatter\@empty -\newcommand{\afterDirMatter}[1]{\def\web@afterDirMatter{#1}} -\let\web@afterDirMatter\@empty -\newcommand{\universityColor}[1]{\def\webuniversity@color{#1}} -\universityColor{blue} -\newcommand{\titleColor}[1]{\def\webtitle@color{#1}} -\titleColor{black} -\newcommand{\authorColor}[1]{\def\webauthor@color{#1}} -\authorColor{black} -\newcommand{\subjectColor}[1]{\def\websubject@color{#1}} -\subjectColor{black} -\def\aboveTopTitleSkip#1{\def\web@aboveTopTitleSkip{#1}} -\aboveTopTitleSkip{0pt} -\newcommand{\topTitlePage} -{% - \vglue\web@aboveTopTitleSkip - \noindent\makebox[\linewidth]{% - \parbox{\hproportionwebuniversity\linewidth}% - {\bfseries\color{\webuniversity@color}\ifeqforpaper\large\fi - \centering\webuniversity}}\par\ifeqforpaper\else\minimumskip\fi - \vspace{\stretch{1}}% - \noindent\makebox[\linewidth]{% - \parbox{\hproportionwebtitle\linewidth}% - {\bfseries\color{\webtitle@color}\ifeqforpaper\Large\else - \large\fi\centering\webtitle}}\par\ifeqforpaper - \vspace{2\baselineskip}\else\minimumskip\vspace{\stretch{1}}\fi - \noindent\makebox[\linewidth]{% - \parbox{\hproportionwebauthor\linewidth}% - {\bfseries\color{\webauthor@color}\ifeqforpaper - \large\fi\centering\webauthor}} -} -\newcommand{\allowHeadingsTitlePage}{\let\web@titlepagestyle\@gobble} -\def\web@titlepagestyle#1{#1} -\newcommand{\coverpagemargin}{1in} -\newcommand{\maketitlepreamble} -{% - \web@titlepagestyle{\thispagestyle{empty}}% - \ifeqforpaper\if@centertitlepage - \begingroup - \if@centertitlepagefull - \@tempdima=\coverpagemargin - \else - \@tempdima\paperwidth - \advance\@tempdima-\textwidth - \@tempdima=.5\@tempdima - \edef\coverpagemargin{\the\@tempdima}% - \fi - \@tempdimb\paperwidth - \addtolength{\@tempdimb}{-2\@tempdima}% - \edef\fullscreenwidth{\the\@tempdimb}% - \linewidth\fullscreenwidth - \textwidth\fullscreenwidth - \hfuzz\linewidth - \setlength{\oddsidemargin}{\coverpagemargin-1in}% - \setlength{\evensidemargin}{\oddsidemargin}% - \marginparsep=0pt - \marginparwidth=0pt - \parindent0pt - \fi\fi -} -\newcommand{\maketitlepostamble} -{% - \newpage - \ifeqforpaper\if@centertitlepage\endgroup\fi\fi -} -\newcommand{\web@maketitle} -{% - \maketitlepreamble - \ifeqforpaper\vspace*{2\baselineskip}\else - \vbox to\titleauthorproportion\textheight\bgroup\fi - \topTitlePage - \ifeqforpaper\else\egroup\fi % end of \vbox for title and author - \ifx\optionalpagematter\@empty\par\else - \begingroup\par - \aboveOPMvspace - \noindent\parbox{\linewidth}{\optionalpagematter}% - \par\endgroup\fi - \vspace{\stretch{1}} - \ifx\web@directory@option\web@YES\web@directory@hook\webdirectory\fi - \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}} - \vfill\noindent\begingroup - \trailerFontSize\titlepageTrailer\par\endgroup - \maketitlepostamble -} -\let\web@save@maketitle\maketitle -\let\maketitle\web@maketitle -\newcommand{\makeinlinetitle} -{% - \noindent\makebox[\linewidth][c]{% - \bfseries\color{\webtitle@color}\webtitle} - \makebox[\linewidth]{% - \shortstack[l]{\strut\\ - \makebox[0pt][l]{\webuniversity}\\ - \makebox[0pt][l]{% - \@ifundefined{aeb@prepared} - {\@date}{\aeb@prepared}% - }% - }\hfill - \shortstack[c]{\strut\webauthor\\\strut}\hfill - \shortstack[r]{\strut\makebox[0pt][r]{\thewebemail}\\ - \makebox[0pt][r]{% - \@ifundefined{aeb@talksite}{\webversion} - {\ifx\aeb@talksite\@empty\webversion - \else\aeb@talksite\fi}% - }% - }% - }% - \bigskip -} -\setcounter{secnumdepth}{3} -\setcounter{tocdepth}{3} -\ifeqforpaper\else - \clubpenalty=50 - \widowpenalty=50 -\fi -\let\web@save@listi\@listi -\let\web@save@listii\@listii -\let\web@save@listiii\@listiii -\let\web@save@normalsize\normalsize -\let\web@save@partopsep\partopsep -\let\web@normalsize\normalsize -\def\w@ppp#1#2#3{#1\p@ \@plus#2\p@ \@minus#3\p@} -\def\w@zpp#1#2{\z@ \@plus#1\p@ \@minus#2\p@} -\def\tightsettings@z{% - \setlength\partopsep{\w@ppp{2}{}{}} % unchanged - \def\web@listi{\leftmargin\leftmargini - \parsep \w@ppp{2}{2}{}% 4+2-1 - \topsep \w@ppp{2}{1}{}% 8+2-4 - \itemsep\w@ppp{2}{1}{}}% 4+2-1 - \let\@listi\web@listi - \let\@listI\@listi - \@listi - \def\web@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - \topsep \w@zpp{}{}% 4+2-1 - \parsep \w@zpp{}{}% 2+1-1 - \itemsep \parsep}% unchanged - \def\web@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - \topsep \w@zpp{}{}% 2+1-1 - \parsep \z@ % unchanged - \partopsep \w@ppp{}{}{}% unchanged - \itemsep \topsep}% unchanged - \let\@listii\web@listii - \let\@listiii\web@listiii - \renewcommand\web@normalsize{% - \@setfontsize\normalsize\@xpt\@xiipt - \abovedisplayskip \w@ppp{5}{3}{}% 10+2-5 - \abovedisplayshortskip \w@zpp{3}{0}% unchanged - \belowdisplayshortskip \w@ppp{3}{2}{2}% 6+3-3 - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI}% - \let\normalsize\web@normalsize - \normalsize -} -\def\tightsettings@i{% - \setlength\partopsep{\w@ppp{2}{}{}}% 3+1-1 - \def\web@listi{\leftmargin\leftmargini - \parsep \w@ppp{2.5}{2}{}% 4.5+2-1 - \topsep \w@ppp{4.5}{1.5}{2.5}% 9+3-5 - \itemsep \w@ppp{2.5}{}{}}% 4.5+2-1 - \let\@listi\web@listi - \let\@listI\@listi - \@listi - \def\web@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - \topsep \w@ppp{}{}{}% 4.5+2-1 - \parsep \w@ppp{}{}{}% 2+1-1 - \itemsep \parsep}% unchanged - \def\web@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - \topsep \w@ppp{}{}{}% 2+1-1 - \parsep \z@ % unchanged - \partopsep \w@ppp{}{}{}% unchanged - \itemsep \topsep}% unchanged - \let\@listii\web@listii - \let\@listiii\web@listiii - \renewcommand\web@normalsize{% - \@setfontsize\normalsize\@xipt{13.6}% - \abovedisplayskip \w@ppp{5.5}{3}{3}% 11+3-6 - \abovedisplayshortskip \w@zpp{}{0}% unchanged - \belowdisplayshortskip \w@ppp{4}{2}{2}% 6.5+3.5-3 - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI}% - \let\normalsize\web@normalsize - \normalsize -} -\def\tightsettings@ii{% - \setlength\partopsep{\w@ppp{3}{2}{2}}% unchanged - \def\web@listi{\leftmargin\leftmargini - \parsep \w@ppp{3}{2}{}% 5+2.5-1 - \topsep \w@ppp{5}{2}{3}% 10+4-6 - \itemsep\w@ppp{2.5}{}{}}% 5+2.5-1 - \let\@listi\web@listi - \let\@listI\@listi - \@listi - \def\web@listii {\leftmargin\leftmarginii - \labelwidth\leftmarginii - \advance\labelwidth-\labelsep - \topsep \w@ppp{2.5}{}{}% 5+2.5-1 - \parsep \w@ppp{2}{}{}% 2.5+1-1 - \itemsep \parsep}% unchanged - \def\web@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii - \advance\labelwidth-\labelsep - \topsep \w@ppp{1.5}{}{}% 2.5+1-1 - \parsep \z@ % unchanged - \partopsep \w@ppp{}{}{}% unchanged - \itemsep \topsep}% unchanged - \let\@listii\web@listii - \let\@listiii\web@listiii - \renewcommand\web@normalsize{% - \@setfontsize\normalsize\@xiipt{14.5}% - \abovedisplayskip \w@ppp{6}{1.5}{3.5}% 12+3-7 - \abovedisplayshortskip \w@zpp{3}{0}% unchanged - \belowdisplayshortskip \w@ppp{4}{2}{2}% 6.5+3.5-3 - \belowdisplayskip \abovedisplayskip - \let\@listi\@listI}% - \let\normalsize\web@normalsize - \normalsize -} -\def\tightsettings{\@ifstar{\ifeqforpaper\else\tightsettings@cont\fi} - {\tightsettings@cont}} -\def\tightsettings@cont{\let\web@tight\web@YES - \ifcase\@ptsize - \tightsettings@z\or - \tightsettings@i\or - \tightsettings@ii - \fi -} -\def\restorenormalsettings{\let\web@tight\web@NO - \let\@listi\web@save@listi - \let\@listii\web@save@listii - \let\@listiii\web@save@listiii - \let\normalsize\web@save@normalsize - \let\partopsep\web@save@partopsep - \let\@listI\@listi - \@listi - \normalsize -} -\def\navibarTextColor#1{\def\@menucolor{#1}} -\def\@menucolor{webblue} -\def\navibarBgColor#1{\def\@menuBgColor{#1}} -\def\@menuBgColor{webgray} -\newcommand{\newNaviIcon}[1][\@empty] -{% - \ifx#1m\let\web@next\@newNaviIconMenu - \else\ifx#1j\let\web@next\@newNaviIconJS - \else\ifx#1l\let\web@next\@newNaviIconLink - \else\ifx#1\@empty\let\web@next\@newNaviIconLink - \else\let\web@next\relax - \PackageWarning{web}{\string\newNaviIcon: unknown first parameter} - \fi\fi\fi\fi\web@next -} -\def\web@colorbox@w@transparency#1{% - \ifx#1\@empty\setlength{\fboxrule}{0pt}\let\aeb@next\fbox\else - \def\aeb@next{\colorbox{#1}}\fi\aeb@next} -\newcommand{\@newNaviIconMenu}[6][I] -{% - \def#2{{\setlength{\fboxsep}{0pt}\def\@pdfhighlight{/#1}% - \Acrobatmenu{#6}{\web@colorbox@w@transparency{\@menuBgColor}{% - \parbox[c][#4][c]{#3}% - {\normalsize\centering\color{\@menucolor}#5}}}% - }}% -} -\newcommand{\@newNaviIconJS}[6][I] -{% - \ifcase\eq@drivernum - \def#2{{\setlength{\fboxsep}{0pt}% - \pdf@rect{\web@colorbox@w@transparency{\@menuBgColor}% - {\parbox[c][#4][c]{#3}% - {\normalsize\centering\color{\@menucolor}#5}}}% - \literalps@out{% - [ /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] - /Border [ 0 0 0 ]/H/#1\space - /Action <> - /Subtype/Link - /ANN pdfmark}% - }}% - \or - \def#2{{\setlength{\fboxsep}{0pt}% - \leavevmode\pdfstartlink - attr {/Border [0 0 0 ] /H/#1}% - user{ /Subtype /Link - /A << /S/JavaScript/JS (#6) >>}% - \web@colorbox@w@transparency{\@menuBgColor}% - {\parbox[c][#4][c]{#3}% - {\normalsize\centering\color{\@menucolor}#5}}% - \pdfendlink - }}% - \or - \def#2{{\setlength{\fboxsep}{0pt}% - \@pdfm@mark{bann - << - /Border [0 0 0 ] /H/#1\space - /Subtype /Link - /A << /S/JavaScript/JS (#6) >> - >>}\web@colorbox@w@transparency{\@menuBgColor}% - {\parbox[c][#4][c]{#3}% - {\normalsize\centering\color{\@menucolor}#5}}% - \@pdfm@mark{eann}% - }}% - \fi -} -\newcommand{\@newNaviIconLink}[6][I] -{% - \def#2{{\setlength{\fboxsep}{0pt}\def\@pdfhighlight{/#1}% - #6{\web@colorbox@w@transparency{\@menuBgColor}% - {\parbox[c][#4][c]{#3}% - {\normalsize\centering\color{\@menucolor}#5}}}% - }}% -} -\let\insertwebtoc\relax -\def\insert@webtoc{\web@TOC\ } -\def\web@TocText{Toc} -\newNaviIcon[l]{\web@TOC}{\web@nb@width}{\web@nb@height} - {\footnotesize\web@TocText}{\hyperlink{webtoc}} -\newcommand\navibariconWidth[1]{\def\web@nb@width{#1}} -\newcommand\navibariconHeight[1]{\def\web@nb@height{#1}} -\navibariconWidth{34pt}\navibariconHeight{10pt} -\@newNaviIconMenu{\web@FirstPage}{\web@nb@width}{\web@nb@height} - {\web@FirstPageText}{FirstPage} -\def\web@FirstPageText{$\blacktriangleleft\blacktriangleleft$} -\@newNaviIconMenu{\web@LastPage}{\web@nb@width}{\web@nb@height} - {\web@LastPageText}{LastPage} -\def\web@LastPageText{$\blacktriangleright\blacktriangleright$} -\@newNaviIconMenu{\web@PrevPage}{\web@nb@width}{\web@nb@height} - {\web@PrevPageText}{PrevPage} -\def\web@PrevPageText{$\blacktriangleleft$} -\@newNaviIconMenu{\web@NextPage}{\web@nb@width}{\web@nb@height} - {\web@NextPageText}{NextPage} -\def\web@NextPageText{$\blacktriangleright$} -\@newNaviIconMenu{\web@GoBack}{\web@nb@width}{\web@nb@height} - {\footnotesize\web@back}{GoBack} -\@newNaviIconMenu{\web@GoBackDoc}{\web@nb@width}{\web@nb@height} - {$\blacktriangleleft$\ \footnotesize\web@doc}{GoBackDoc} -\@newNaviIconMenu{\web@GoForwardDoc}{\web@nb@width}{\web@nb@height} - {\footnotesize\web@doc\ \normalsize$\blacktriangleright$} - {GoForwardDoc} -\@newNaviIconMenu{\web@FS}{\web@nb@width}{\web@nb@height} - {\footnotesize\web@FSText}{FullScreen} -\def\web@FSText{FS} -\@newNaviIconMenu{\web@GoToPage}{\web@nb@width}{\web@nb@height} - {\footnotesize\web@GoToPageText}{GoToPage} -\def\web@GoToPageText{Page...} -\newcommand\web@navigationbar{% -\hfil\bfseries\footnotesize -\insertwebtoc -\web@FirstPage\ -\web@LastPage\ -\web@PrevPage\ -\web@NextPage\ -\web@GoBack -\hfil} -\newcommand{\panelgroupWidth}[1]{% - \global\let\chkpanelgroup\web@chkpanelgroup - \def\web@pg@width{#1}} -\newcommand{\panelgroupHeight}[1]{% - \global\let\chkpanelgroup\web@chkpanelgroup - \def\web@pg@height{#1}} -\newcommand{\panelgroupSep}[1]{% - \global\let\chkpanelgroup\web@chkpanelgroup - \def\web@pg@sep{#1}} -\@newNaviIconMenu{\panel@FirstPage}{\web@pg@width}{\web@pg@height} - {\web@FirstPageText}{FirstPage} -\@newNaviIconMenu{\panel@LastPage}{\web@pg@width}{\web@pg@height} - {\web@LastPageText}{LastPage} -\@newNaviIconMenu{\panel@PrevPage}{\web@pg@width}{\web@pg@height} - {\web@PrevPageText}{PrevPage} -\@newNaviIconMenu{\panel@NextPage}{\web@pg@width}{\web@pg@height} - {\web@NextPageText}{NextPage} -\@newNaviIconMenu{\panel@GoBack}{\web@pg@width}{\web@pg@height} - {\footnotesize\web@back}{GoBack} -\@newNaviIconMenu{\panel@GoBackDoc}{\web@pg@width}{\web@pg@height} - {$\blacktriangleleft$\,\footnotesize\web@doc}{GoBackDoc} -\@newNaviIconMenu{\panel@GoForwardDoc}{\web@pg@width}{\web@pg@height} - {\footnotesize\web@doc\,\normalsize$\blacktriangleright$} - {GoForwardDoc} -\@newNaviIconMenu{\panel@Close}{\web@pg@width}{\web@pg@height} - {\footnotesize Close}{Close} -\def\web@CloseText{Close} -\@newNaviIconMenu{\panel@FS}{\web@pg@width}{\web@pg@height} - {\footnotesize\web@FSText}{FullScreen} -\@newNaviIconMenu{\panel@GoToPage}{\web@pg@width}{\web@pg@height} - {\footnotesize\web@GoToPageText}{GoToPage} -\newcommand{\web@chkpanelgroup}{\bgroup - \setlength{\@tempdima}{\web@pg@width+\web@pg@width+\web@pg@sep}% - \ifdim\@tempdima>\@panelwidth\PackageError{web}{Width of - \string\panelNaviGroup\space is wider than the panel}{}\else - \xdef\panelNavigroupWidth{\the\@tempdima}\fi - \egroup\global\let\chkpanelgroup\@empty -} -\panelgroupWidth{28pt}\panelgroupHeight{15pt} -\panelgroupSep{2pt} -\newcommand{\panelrowsep}{1pt} -\newcommand\panelNaviGroup{\chkpanelgroup - \parbox[c]{\panelNavigroupWidth}{% - \offinterlineskip - \panelIconGroup - }% -} -\newcommand{\panelIconGroup}{% - \panel@FirstPage\hfill\panel@LastPage\\[\panelrowsep] - \panel@PrevPage\hfill\panel@NextPage\\[\panelrowsep] - \panel@GoBack\hfill\panel@Close -} -\let\ins@NaviBar\@empty -\newcommand\insNaviBar{\@ifstar{\@gdefInsNaviBar}{\@defInsNaviBar}} -\def\@gdefInsNaviBar#1{\gdef\ins@NaviBar{#1}} -\def\@defInsNaviBar#1{\def\ins@NaviBar{#1}} -\newcommand\insNaviBarOff{\global\let\ins@NaviBar\@empty} -\def\web@ifOnThisPage#1#2{\ifnum\c@page=\@thispage\relax - #1\else#2\fi} -\newcommand{\insertnaviiconhere}[1] -{% - \xdef\@thispage{\the\c@page}% - \def\web@insToRight{% - \ifeqforpaper\makebox[0pt][l]{\ifdim\marginparsep>0pt\relax - \hspace{\marginparsep}\else\ \fi#1}\else - \makebox[0pt][l]{% - \ifnum\@panelconfig=2\relax - \hspace{\@panelsep}\else - \hspace{\@Rightmargin}\fi - \makebox[0pt][r]{#1}}\fi - }\expandafter\rheader\expandafter - {\expandafter\web@ifOnThisPage - \expandafter{\web@rightheader\web@insToRight}% - {\web@defaultrightheader}}% -} -\def\insertnaviiconhereafter#1{\def\web@insToLeft{% - \ifeqforpaper\makebox[0pt][r]{#1\ifdim\marginparsep>0pt\relax - \hspace{\marginparsep}\else\ \fi}\else - \makebox[0pt][r]{\makebox[0pt][l]{#1}% - \ifnum\@panelconfig=1\relax - \hspace{\@panelsep}\else - \hspace{\@Leftmargin}\fi}\fi - }\expandafter\lheader\expandafter - {\expandafter\web@insToLeft\web@lhead}} -\def\removehereaftericon{\lheader{\aeb@setmarks}} -\let\defaultpageheader\removehereaftericon -\newcommand\ArrowUp[1] -{% - \normalsize\ifeqforpaper - \setlength{\fboxsep}{6pt}\else - \setlength{\fboxsep}{4pt}\fi - \raisebox{\depth-\fboxsep}[0pt][0pt]{% - #1{\web@colorbox@w@transparency{\web@directionIconBgColor}% - {\textcolor{\web@directionIconTextColor}{$\bigl\Uparrow$}}}}% -} -\newcommand\ArrowDown[1] -{% - \normalsize\ifeqforpaper - \setlength{\fboxsep}{6pt}\else - \setlength{\fboxsep}{4pt}\fi - \raisebox{\depth-\fboxsep}[0pt][0pt]{% - #1{\web@colorbox@w@transparency{\web@directionIconBgColor}% - {\textcolor{\web@directionIconTextColor}{$\bigl\Downarrow$}}}}% -} -\def\directionIconTextColor#1{\def\web@directionIconTextColor{#1}} -\def\web@directionIconTextColor{webblue} -\def\directionIconBgColor#1{\def\web@directionIconBgColor{#1}} -\def\web@directionIconBgColor{webgray} -\def\web@defaultrightheader{\ifnum\value{page}=1\relax\else\thepage\fi} -\let\web@headerhook\@empty -\let\web@headerprivate\@empty -\let\web@footerhook\@empty -\let\web@footerprivate\@empty -\def\lheader#1{\gdef\web@lhead{#1}} -\def\cheader#1{\gdef\web@chead{#1}} -\def\rheader#1{\gdef\web@rightheader{#1}} -\lheader{\rightmark} -\cheader{} -\rheader{\web@defaultrightheader} -\def\lfooter#1{\gdef\web@lfoot{#1}} -\def\cfooter#1{\gdef\web@cfoot{#1}} -\def\rfooter#1{\gdef\web@rfoot{#1}} -\lfooter{}\rfooter{} -\newcommand{\placeScreenNavibar}{% - \ifweb@navibar\web@navigationbar\else - \ins@NaviBar\global\let\ins@NaviBar\@empty\fi} -\cfooter{\placeScreenNavibar} -\newcommand{\clearHeaders}{% - \let\web@lhead@save\web@lhead - \let\web@chead@save\web@chead - \let\web@rightheader@save\web@rightheader - \let\web@lhead\@empty\let\web@chead\@empty - \let\web@rightheader\@empty} -\newcommand{\restoreHeaders}{% - \let\web@lhead\web@lhead@save - \let\web@chead\web@chead@save - \let\web@rightheader\web@rightheader@save} -\newcommand{\clearFooters}{% - \let\web@lfoot@save\web@lfoot - \let\web@cfoot@save\web@cfoot - \let\web@rfoot@save\web@lfoot - \let\web@lfoot\@empty\let\web@cfoot\@empty - \let\web@rfoot\@empty} -\newcommand{\restoreFooters}{% - \let\web@lfoot\web@lfoot@save - \let\web@cfoot\web@cfoot@save - \let\web@rfoot\web@rfoot@save} -\def\headerformat#1{\def\web@headerhook{#1}} -\headerformat{} -\def\footerformat#1{\def\web@footerhook{#1}} -\footerformat{} -\let\webheadwrapper\@empty -\let\webfootwrapper\@empty -\newcommand{\headWrapper}[1]{\def\webheadwrapper##1{#1}} -\newcommand{\footWrapper}[1]{\def\webfootwrapper##1{#1}} -\newcommand{\ps@webheadings} -{% - \renewcommand{\@oddhead}{\webheadwrapper{% - \normalfont\ifeqforpaper\else\footnotesize\fi - \web@headerprivate\web@headerhook\web@lhead\hfil\web@chead\hfil - \web@rightheader}} - \renewcommand{\@evenhead}{\@oddhead} - \renewcommand{\@oddfoot}{\webfootwrapper{% - \normalfont\ifeqforpaper\else\footnotesize\fi - \web@footerprivate\web@footerhook\web@lfoot\hfil - \web@cfoot\hfil\web@rfoot}} - \renewcommand{\@evenfoot}{\@oddfoot} -} -\renewcommand{\sectionmark}[1]{% - \markboth{}{\web@section\ \thesection: #1}} -\newcommand{\noHeadersOnSectionPage}{% - \gdef\web@headerpolicy{% - \expandafter\aeb@gettopmark\topmark{}{}% - \expandafter\aeb@getbotmark\botmark{}{}% - \ifx\aeb@topmark\aeb@botmark\rightmark\fi - }% -} -\noHeadersOnSectionPage -\newcommand{\headersOnSectionPage}{% - \gdef\web@headerpolicy{\rightmark}% -} -\def\aeb@gettopmark#1#2{\def\aeb@topmark{#2}} -\def\aeb@getbotmark#1#2{\def\aeb@botmark{#2}} -\def\aeb@setmarks{\web@headerpolicy} -\lheader{\aeb@setmarks} -\AtEndOfPackage{\pagestyle{webheadings}} -\newcommand{\sectionColor}[1]{\def\web@sectionsColorOld{#1} - \def\aeb@sectioncolor{#1}} -\sectionColor{blue} -\def\web@inputsectiondefs{\InputIfFileExists{websec.def}{} - {\PackageError{web}{Cannot find the file websec.def}{}} -} -\ifweb@sectioning\expandafter\web@inputsectiondefs\fi -\def\aebwritelastpage{% - \immediate\write\@auxout{\string\expandafter\string\gdef - \string\csname\space aebLastPage\string\endcsname{\arabic{page}}}% -} -\AtEndDocument{% - \clearpage\addtocounter{page}{-1}\aebwritelastpage - \addtocounter{page}{1}} -\def\useFullWidthForPaper{\ifeqforpaper - \setlength{\textwidth}{\paperwidth-2in} - \setlength{\textheight} - {\paperheight-2in-\footskip-\topmargin-\headheight-\headsep} - \oddsidemargin=0pt - \evensidemargin=0pt - \marginparsep=0pt - \marginparwidth=0pt - \fi -} -\def\maxtextscreentext{% - \iftemplatesforpaper\else\ifeqforpaper - \ifnum\@usetemplates=1 - \ifnum\@panelconfig=1 % left panel - \setlength{\oddsidemargin}% - {\@panelwidth+\@panelsep-1in}% - \setlength{\textwidth}% - {\paperwidth-\@panelwidth-\@panelsep-% - \marginparwidth-\marginparsep}% - \else\ifnum\@panelconfig=2 % right panel - \setlength{\oddsidemargin}{0in}% - \setlength{\textwidth}% - {\paperwidth-\@panelwidth-\@panelsep-% - \oddsidemargin-\marginparwidth-\marginparsep}% - \else - \useFullWidthForPaper - \fi\fi\fi - \fi\fi -} -\newcommand{\centertextonpage}{% - \ifeqforpaper\AtBeginDocument{\web@centertextonpage}\fi} -\def\web@centertextonpage{% - \setlength{\oddsidemargin}{\paperwidth-\textwidth-2in}% - \oddsidemargin=.5\oddsidemargin - \evensidemargin=\oddsidemargin -} -\definecolor{webgreen}{rgb}{0,.5,0} -\definecolor{webbrown}{rgb}{.6,0,0} -\definecolor{webyellow}{rgb}{0.98,0.92,0.73} -\definecolor{webgray}{rgb}{.753,.753,.753} -\definecolor{webgrey}{rgb}{.753,.753,.753} -\definecolor{webblue}{rgb}{0,0,.8} -\definecolor{wheat}{rgb}{.96, .87, .70} -\definecolor{oldlace}{rgb}{.992, .96187, .902} -\definecolor{snow}{rgb}{1, .98, .98} -\definecolor{ghostwhite}{rgb}{.973, .973, 1} -\definecolor{cornsilk}{rgb}{1, .973, .863} -\definecolor{honeydew}{rgb}{.941, 1, .941} -\definecolor{lavenderdark}{rgb}{.8, .8, .9529411} -\definecolor{lavender}{rgb}{.902, .902, .980} -\definecolor{lightblue}{rgb}{.8, .8, .95} -\definecolor{lightgray}{rgb}{.827, .827, .827} -\definecolor{lightsteelblue}{rgb}{.690, .769, .871} -\definecolor{lightturquoise}{rgb}{.686, .933, .933} -\definecolor{darkgreen}{rgb}{.0, .392, .0} -\definecolor{yellowgreen}{rgb}{.604, .804, .196} -\definecolor{vlightblue}{rgb}{.88, .85, .95} -\definecolor{khaki}{rgb}{.741, .718, .42} -\ifx\web@latextoc\web@YES\ifx\web@bullets\web@YES% - \@ifundefined{chapter} {% - \renewcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{1.2em}} - }{% - \renewcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{1.2em}} - }% -\fi\fi -\def\tocColor#1{\def\web@tocColor{#1}\def\aeb@toccolor{#1}} -\tocColor{blue} -\newcommand{\allowHeadingsTocPage}{\let\web@Tocpagestyle\@gobble} -\def\web@Tocpagestyle#1{#1} -\let\web@latextoc@save\tableofcontents -\ifx\web@bullets\web@YES -\def\tableofcontents -{% - \global\let\insertwebtoc\insert@webtoc - \def\contentsname{\web@toc}% - \pdfbookmark[1]{\web@toc}{toc}% - \web@Tocpagestyle{\thispagestyle{empty}}% - \markright{{\normalfont\small \web@toc\ (\web@continued)}}% - \@ifundefined{sectionToc}{% - \begin{center}\hypertarget{webtoc}{}% - \normalfont\bfseries\Large\color{\web@tocColor}% - \contentsname - \end{center} - }{\sectionToc{\web@toc}}\par - \ifx\web@latextoc\web@YES - \@starttoc{toc}% LaTeX toc listing with page numbers - \else - \noindent\webtableofcontents - \fi - \newpage -} -\else - \PackageInfo{web}{No Bullets Requested} - \def\tableofcontents{% - \begingroup - \def\contentsname{\web@toc}% - \let\web@save@mkboth\@mkboth - \def\@mkboth{\protect\hypertarget{webtoc}{}\web@save@mkboth}% - \ifx\web@finalDot\@empty\else - \def\numberline##1{\hb@xt@\@tempdima{##1.\hfil}}\fi - \web@latextoc@save - \endgroup\newpage - } - \renewcommand\subsubsection{\renewcommand{\@seccntformat}[1]{% - \@nameuse{the##1}\web@finalDot\enspace} - \@startsection{subsubsection}{3}{\z@}% - {-2ex\@plus -1ex \@minus -.2ex}{.5ex \@plus .2ex}% - {\noindent\normalfont\normalsize\bfseries}} - \renewcommand*{\thesubsubsection} - {\thesubsection.\arabic{subsubsection}} -\fi -\def\widestNumber#1{% - \def\widest@Number{#1\ }} -\widestNumber{0.0.} -\newcommand{\tocIndent}[1]{\def\toc@indent{#1}} -\tocIndent{20pt} -\def\tocIndentByNumber#1{{% - \settowidth{\@tempdima}{\normalfont\textbf{#1\ }}% - \xdef\toc@indent{\the\@tempdima}% -}} -\tocIndentByNumber{00.} -\let\tocindent\tocIndent -\let\tocindentByNumber\tocIndentByNumber -\def\webtableofcontents -{% - \begingroup - \global\let\isChapter\web@NO - \parskip0pt\parindent\toc@indent\relax - \settowidth{\@tempdima}{\normalfont - \textbf{\widest@Number}}% - \@tempdimb\@tempdima - \advance\@tempdimb by\parindent - \edef\web@subsubSecIndent{\the\@tempdimb}% - \def\par{\endgraf\leftskip=0pt}% - \let\numberline\web@numberline - \let\contentsline\web@contentsline - \def\web@section##1##2##3{\web@parse##1\\% - \web@toc@section{##1}{##2}{##3}}% - \def\web@subsection##1##2##3{\web@parse##1\\% - \web@toc@subsection{##1}{##2}{##3}}% - \def\web@subsubsection##1##2##3{\web@parse##1\\% - \web@toc@subsubsection{##1}{##2}{##3}}% - \def\web@part##1##2##3{\web@toc@part{##1}{##2}{##3}}% - \def\web@chapter##1##2##3{\web@parse##1\\% - \web@toc@chapter{##1}{##2}{##3}}% - \@starttoc{toc}% - \setlength{\@tempdimb}{\ifx\isChapter\web@YES - \parindent+\web@subsubSecIndent\else\web@subsubSecIndent\fi}% - \leftskip\@tempdimb - \par\endgroup -} -\def\web@numberline#1{\makebox[0pt]{#1\enspace}}% -\def\web@contentsline#1#2#3#4{% - \@nameuse{web@#1}{#2}{#3}{#4}}% -\def\web@parse#1#2#3\\{% - \def\web@title{#3}\def\numberline{#2}}% -\def\web@toc@part#1#2#3{\par\noindent - {\bfseries\hyperlink{#3}{#1}}\par\smallskip} -\def\web@toc@chapter#1#2#3{\global\let\isChapter\web@YES - \par\mbox{}{\bfseries\makebox[0pt][r]{\hyperlink{#3}% - {\numberline\web@finalDot}\space}\web@title}\par\smallskip -} -\def\web@toc@section#1#2#3{\penalty-500\par - \hspace*{\if\isChapter y\parindent\else0pt\fi}\mbox{}{\bfseries - \ifx\numberline\@empty - \@ifundefined{d@DingToc}{\hyperlink{#3}{\web@title}} - {% - \ifx\d@DingToc\@empty - \hyperlink{#3}{\web@title}% - \else - \if\aeb@use@section@numbers0\relax - \makebox[0pt][r]{\color{\d@DingTocColor}% - \d@DingToc\space}\hyperlink{#3}{\web@title}% - \else - \hyperlink{#3}{\web@title}% - \fi - \fi - }% - \else - \makebox[0pt][r]{\hyperlink{#3}{% - \numberline\web@finalDot}\space}\web@title - \fi}\endgraf -}% -\def\web@toc@subsection#1#2#3{\par - \setlength{\@tempdimb}{\ifx\isChapter\web@YES - \parindent+\@tempdima\else\@tempdima\fi}% - \penalty-50 \hspace*{\@tempdimb}\mbox{}{\bfseries - \ifx\numberline\@empty - \@ifundefined{dd@DingToc}{\hyperlink{#3}{\web@title}} - {% - \ifx\dd@DingToc\@empty - \hyperlink{#3}{\web@title}% - \else - \makebox[0pt][r]{\color{\dd@DingTocColor}% - \dd@DingToc\space}\hyperlink{#3}{\web@title}% - \fi - }% - \else - \makebox[0pt][r]{\makebox[\@tempdima][l]% - {\hyperlink{#3}{\numberline\web@finalDot}}}\web@title - \fi}\endgraf -}% -\def\web@toc@subsubsection#1#2#3{% - \def\numberline{\strut$\bullet$}% - \setlength{\@tempdimb}{\ifx\isChapter\web@YES - \parindent+\web@subsubSecIndent\else\web@subsubSecIndent\fi}% - \leftskip\@tempdimb\noindent\unskip\mbox{}\penalty-50 - \@ifundefined{ddd@DingToc}{}{% - \if\aeb@use@section@numbers0\relax\ifx\ddd@DingToc\@empty\else - \def\numberline{\color{\ddd@DingTocColor}\strut\ddd@DingToc}% -\fi\fi}\hyperlink{#3}{\numberline}~\web@title\ -}% -\let\web@textTemplate\@empty -\newcommand{\@AddToTextTemplate}{\g@addto@macro\web@textTemplate} -\newcommand{\template}[2][] -{% - \ifweb@allowtemplates - \def\web@argi{#1}\ifx\web@argi\@empty - \xdef\web@template@opt@args{\web@addtotemplateArgs}% - \else\xdef\web@template@opt@args{\web@addtotemplateArgs,#1}% - \fi\gdef\web@template{#2}% - \fi -} -\let\web@template\@empty -\def\addtotemplateArgs#1{\gdef\web@addtotemplateArgs{#1}} -\def\cleartemplateArgs{\global\let\web@addtotemplateArgs=\@empty} -\let\web@addtotemplateArgs\@empty -\let\text@scaletype\@empty -\newcommand{\textBgColor}[1]{\gdef\web@textBgColor{#1}} -\let\web@textBgColor\@empty -\let\listAddToTemplates\@empty -\newcommand{\AddToTemplate}[1] -{% - \global\w@csarg\let{eqTmpl#1}\web@YES - {\toks@=\expandafter{\listAddToTemplates}% - \xdef\listAddToTemplates{\the\toks@\noexpand\\{#1}}}% - \ifweb@allowtemplates - \@AddToTextTemplate{% - \w@csarg\ifx{eqTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@textX,0){\@nameuse{#1}}% - \fi - }% - \else - \w@csarg\ifx{#1}\BGColorAndGraphic - \@AddToTextTemplate{% - \w@csarg\ifx{eqTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@textX,0){\@nameuse{#1}}% - \fi - }% - \fi - \w@csarg\ifx{#1}\BGColorAndGraphicFullWidth - \@AddToTextTemplate{% - \w@csarg\ifx{eqTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@textX,0){\@nameuse{#1}}% - \fi - }% - \fi - \fi -} -\newcommand\placeTemplateInLayer[2][webTextBG]{% - \@ifpackageloaded{aeb_pro} - {\@ifundefined{xBld}{\PackageWarning{web} - {The uselayers option - of aeb_pro is\MessageBreak required with - \string\placeTemplateInLayer}} - {\def\b@webTextLayer{\xBld[#2]{#1}}% - \def\e@webTextLayer{\eBld}}}% - {\PackageWarning{web}{\string\placeTemplateInLayer\space - requires the\MessageBreak aeb_pro package}}% -} -\let\b@webTextLayer\@empty \let\e@webTextLayer\@empty -\newcommand{\BGColorAndGraphic}{% - \b@webTextLayer\web@colorbox@w@transparency{\web@textBgColor}% - {% - \parbox[b][\paperheight]{\textscreenwidth}% - {% - \ifx\web@template\@empty - \hfill\vfill - \else - \hfuzz=1pt\vfuzz=1pt\expandafter - \includegraphics\expandafter[\web@template@opt@args,% - width=\textscreenwidth,height=\paperheight]% - {\web@template} - \fi - }% - }\e@webTextLayer -} -\AddToTemplate{BGColorAndGraphic} -\let\web@panelTemplate\@empty -\newcommand{\@AddToPanelTemplate}{\g@addto@macro\web@panelTemplate} -\let\listAddToPanelTemplates=\@empty -\newcommand{\AddToPanelTemplate}[1] -{% - \global\w@csarg\let{eqPanTmpl#1}\web@YES - {\toks@=\expandafter{\listAddToPanelTemplates}% - \xdef\listAddToPanelTemplates{\the\toks@\noexpand\\{#1}}}% - \ifweb@allowtemplates - \@AddToPanelTemplate{% - \w@csarg\ifx{eqPanTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@panelX,0){\@nameuse{#1}}\fi - }% - \else - \w@csarg\ifx{#1}\stdPanelBG - \@AddToPanelTemplate{% - \w@csarg\ifx{eqPanTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@panelX,0){\@nameuse{#1}}\fi - }% - \fi - \w@csarg\ifx{#1}\stdbldpanel - \@AddToPanelTemplate{% - \w@csarg\ifx{eqPanTmpl#1}\web@YES - \fboxsep=0pt\setlength{\unitlength}{1pt}% - \put(\@panelX,0){\@nameuse{#1}}\fi - }% - \fi - \fi -} -\newcommand{\paneltemplate}[2][] -{% - \ifweb@allowtemplates\def\web@argi{#1}% - \ifx\web@argi\@empty - \edef\web@paneltemplate@opt@args{% - \web@addtopaneltemplateArgs}% - \else - \edef\web@paneltemplate@opt@args{% - \web@addtopaneltemplateArgs,#1}% - \fi\gdef\web@paneltemplate{#2}% - \fi -} -\let\web@paneltemplate\@empty -\def\addtopaneltemplateArgs#1{\gdef\web@addtopaneltemplateArgs{#1}} -\def\clearpaneltemplateArgs{% - \global\let\web@addtopaneltemplateArgs=\@empty} -\let\web@addtopaneltemplateArgs=\@empty -\let\panel@scaletype\@empty -\newcommand\panelsep[1]{\bgroup - \setlength\@tempdima{#1}% - \xdef\@panelsep{\the\@tempdima}\egroup} -\panelsep{10bp} -\def\panelSep{\@panelsep} -\newcommand{\panelwidth}[1]{% - \let\web@next\relax - \iftemplatesforpaper\else\ifnum\@panelconfig>0 - \ifnum\@panelconfig=1 % left panel - \ifx\web@layout\web@YES - \addtolength{\textwidth}{\@panelwidth}% - \addtolength{\textwidth}{\@Rightmargin}% - \fi - \addtolength{\textwidth}{\@panelsep}% - \addtolength{\oddsidemargin}{-\@panelsep}% - \addtolength{\evensidemargin}{-\@panelsep}% - \addtolength{\textscreenwidth}{\@panelwidth}% - \fi - \ifnum\@panelconfig=2 % panel right - \ifx\web@layout\web@YES - \addtolength{\textwidth}{\@panelwidth}% - \addtolength{\textwidth}{\@Leftmargin}% - \fi - \addtolength{\textwidth}{\@panelsep}% - \addtolength{\textscreenwidth}{\@panelwidth}% - \fi - \setlength{\@panelwidth}{#1}% - \ifdim\@panelwidth<\web@minpanelwidth - \setlength{\@panelwidth}{\web@minpanelwidth}\fi - \def\web@next{\InitLayout}% - \fi\fi\web@next -} -\newcommand{\panelBgColor}[1]{\gdef\web@panelBgColor{#1}} -\let\web@panelBgColor\@empty -\newcommand\placePanelTemplateInLayer[2][webPanelBG]{% - \@ifpackageloaded{aeb_pro} - {\@ifundefined{xBld}{\PackageWarning{web} - {The uselayers option - of aeb_pro is\MessageBreak required with - \string\placePanelTemplateInLayer}} - {\def\b@webPanelLayer{\xBld[#2]{#1}}% - \def\e@webPanelLayer{\eBld}}}% - {\PackageWarning{web}{\string\placePanelTemplateInLayer\space - requires the\MessageBreak aeb_pro package}}% -} -\let\b@webPanelLayer\@empty \let\e@webPanelLayer\@empty -\newcommand\stdPanelBG -{% - \b@webPanelLayer\web@colorbox@w@transparency{\web@panelBgColor}% - {\parbox[b][\paperheight]{\@panelwidth}% - {\ifx\web@paneltemplate\@empty\hfill\vfill\else - \hfuzz=1pt\vfuzz=1pt\expandafter - \includegraphics\expandafter[\web@paneltemplate@opt@args,% - width=\@panelwidth,height=\paperheight]% - {\web@paneltemplate}\fi}}\e@webPanelLayer -} -\AddToPanelTemplate{stdPanelBG} -\newcommand{\buildpanel}[1] -{% - \gdef\stdbldpanel - {% - \parbox[b][\paperheight]{\@panelwidth}% - {% - \normalsfcodes\normalfont\normalsize - \spaceskip=0pt\xspaceskip=0pt - \par\medskip\vfil - \centering#1% - \par\medskip\vfil - }% - }% -} -\let\stdbldpanel\@empty -\AddToPanelTemplate{stdbldpanel} -\newcommand{\useStandardPanel}{% - \buildpanel{% - \web@panel@top - \par\vspace{\stretch{1}}% - \web@panel@middle - \par\vspace{\stretch{1}}% - \web@panel@bottom - }% -} -\newcommand{\panelTop}[1]{\def\web@panel@top{#1}} -\panelTop{} -\newcommand{\panelMiddle}[1]{\def\web@panel@middle{#1}} -\panelMiddle{} -\newcommand{\panelBottom}[1]{\def\web@panel@bottom{#1}} -\panelBottom{\panelNaviGroup} -\newcommand{\ClearTextTemplate} -{% - \global\let\web@textBgColor\@empty - \global\let\web@template\@empty -} -\newcommand{\ClearPanelTemplate} -{% - \global\let\web@panelBgColor\@empty - \global\let\web@paneltemplate\@empty -} -\newcommand{\ClearBuildPanel} - {\global\let\stdbldpanel\@empty} - -\newcommand{\ClearAllTemplates} -{% - \ClearTextTemplate - \ClearPanelTemplate -} -\newcommand{\ClearTextTemplateBuffer} - {\global\let\web@textTemplate\@empty} -\newcommand{\ClearPanelTemplateBuffer} - {\global\let\web@panelTemplate\@empty} -\newcommand{\saveElements}[1] -{% - \begingroup - \global\w@csarg\let{web@SaveTmpls#1}\@empty - \toks@={}% - \def\web@addtoSaveToks##1{% - \edef\web@let{\global\expandafter - \let\expandafter\noexpand\csname#1##1\endcsname=% - \expandafter\noexpand\csname##1\endcsname}% - \web@let - \edef\web@SaveTmpls{\the\toks@\noexpand\\{##1}% - \expandafter\noexpand\csname#1##1\endcsname}% - \toks@=\expandafter{\web@SaveTmpls}% - }% - \web@addtoSaveToks{web@textBgColor}% - \web@addtoSaveToks{web@template}% - \web@addtoSaveToks{stdbldpanel}% - \web@addtoSaveToks{web@panelBgColor}% - \web@addtoSaveToks{web@paneltemplate}% - \w@csarg\xdef{web@SaveTmpls#1}{\the\toks@}% - \endgroup -} -\newcommand{\saveClearElements}[1]{% - \saveElements{#1}\ClearAllTemplates\ClearBuildPanel -} -\newcommand{\restoreElements}[1]{% - \ClearAllTemplates\ClearBuildPanel - \begingroup - \toks@=\expandafter{\csname web@SaveTmpls#1\endcsname}% - \def\\##1##2{\global\w@csarg\let{##1}=##2}\the\toks@ - \endgroup -} -\newcommand{\disableScreens}[1] -{% - \begingroup - \toks@=\expandafter{\listAddToTemplates}% - \toks2={}% - \def\\##1{\w@csarg\ifx{eqTmpl##1}\web@YES - \disableTemplate{##1}% - \xdef\web@saveAddTo{\the\toks2 \noexpand\\{##1}}% - \toks2=\expandafter{\web@saveAddTo}\fi}% - \the\toks@ - \endgroup - \w@csarg\let{web@DisabledTmpls#1}\web@saveAddTo -} -\newcommand{\restoreScreens}[1] -{% - \begingroup - \toks@=\expandafter{\csname web@DisabledTmpls#1\endcsname}% - \def\\##1{\enableTemplate{##1}}\the\toks@ - \endgroup -} -\newcommand{\disablePanels}[1] -{% - \begingroup - \toks@ = \expandafter{\listAddToPanelTemplates}% - \toks2 = {}% - \def\\##1{\w@csarg\ifx{eqPanTmpl##1}\web@YES - \disablePanelTemplate{##1}% - \xdef\web@saveAddTo{\the\toks2 \noexpand\\{##1}}% - \toks2 =\expandafter{\web@saveAddTo}\fi}% - \the\toks@ - \endgroup - \global\w@csarg\let{web@DisabledPanelTmpls#1}\web@saveAddTo -} -\newcommand{\restorePanels}[1] -{% - \begingroup - \toks@=\expandafter{\csname web@DisabledPanelTmpls#1\endcsname}% - \def\\##1{\enablePanelTemplate{##1}}\the\toks@ - \endgroup -} -\newcommand{\disableTemplate}[1]{{% - \global\w@csarg\let{eqTmpl#1}\web@NO}} -\newcommand{\enableTemplate}[1]{{% - \global\w@csarg\let{eqTmpl#1}\web@YES}} -\newcommand{\disablePanelTemplate}[1]{{% - \global\w@csarg\let{eqPanTmpl#1}\web@NO}} -\newcommand{\enablePanelTemplate}[1]{{% - \global\w@csarg\let{eqPanTmpl#1}\web@YES}} -\let\fullscreenwidthadj\@empty -\def\web@leftMargAdj{0pt} -\def\web@rightMargAdj{0pt} -\def\calculatefullwidth{% - \ifeqforpaper - \let\fullscreenwidthadj\@empty - \else - \ifnum\@panelconfig=1\relax % leftpanel - \bgroup - \setlength{\@tempdima}{-\@panelwidth-\@panelsep+\@Leftmargin}% - \xdef\web@leftMargAdj{\the\@tempdima}% - \setlength{\@tempdima}{-\@panelwidth-\@panelsep+\@Rightmargin}% - \xdef\web@rightMargAdj{\the\@tempdima}% - \egroup - \def\fullscreenwidthadj{\hspace{\web@leftMargAdj}}% - \fi - \fi -} -\newcommand{\makeFullwidthhead}{% - \global\let\web@save@oddhead\@oddhead - \renewcommand{\@oddhead}{\fullscreenwidthadj - \hbox to\fullscreenwidth{\normalfont\footnotesize - \web@headerhook\web@lhead\hfil\web@chead\hfil - \web@rightheader}\hss}% -} -\newcommand{\restoreSavedHead}{% - \global\let\@oddhead\web@save@oddhead - \let\web@save@oddhead\@empty -} -\def\webNotPaneledWarning{% - The Fullwidthtext environment is valid only\MessageBreak - for a paneled document, ignoring this\MessageBreak - environment} -\newenvironment{Fullwidthtext}{% - \ifnum\@panelconfig=0\relax - \PackageWarning{web}{\webNotPaneledWarning}% - \let\web@next\relax - \else - \def\web@next{% - \enableTemplate{BGColorAndGraphicFullWidth}% - \list{}{% - \setlength{\textwidth}{\fullscreenwidth}% - \setlength{\linewidth}{\fullscreenwidth}% - \setlength{\itemindent}{0pt}\setlength{\itemsep}{0pt}% - \setlength{\topsep}{0pt}\setlength{\parsep}{0pt}% - \setlength{\listparindent}{\parindent}% - \setlength{\leftmargin}{\web@leftMargAdj}% - \setlength{\rightmargin}{-\web@rightMargAdj}% - }\item\relax}% - \fi\web@next -}{% - \ifnum\@panelconfig=0\relax\let\web@next\relax\else - \def\web@next{\endlist\newpage - \disableTemplate{BGColorAndGraphicFullWidth}}% - \fi\web@next -} -\newcommand{\pushToFullWidthPage}{% - \ifnum\@panelconfig>0\relax - \disableScreens{gofullwidth}% - \disablePanels{gofullwidth}% - \makeFullwidthhead - \let\web@save@footwrapper\webfootwrapper - \def\webfootwrapper{\fullscreenwidthadj - \makebox[\fullscreenwidth]}% - \fi - \begin{Fullwidthtext} -} -\newcommand{\popFromFullWidthPage}{% - \end{Fullwidthtext} - \ifnum\@panelconfig>0\relax - \restoreScreens{gofullwidth}% - \restorePanels{gofullwidth}% - \restoreSavedHead - \let\webfootwrapper\web@save@footwrapper - \fi -} -\def\addtofullwidthtemplateArgs#1{% - \gdef\web@addtofullwidthtemplateArgs{#1}} -\def\clearfullwidthtemplateArgs{% - \global\let\web@addtofullwidthtemplateArgs\@empty} -\let\web@addtofullwidthtemplateArgs\@empty -\newcommand{\fullwidthBgColor}[1]{\gdef\web@fullwidthBgColor{#1}} -\let\web@fullwidthBgColor\@empty -\let\web@fullwidthtemplate\@empty -\newcommand{\fullwidthtemplate}[2][] -{% - \ifweb@allowtemplates - \def\web@arg{#1}\ifx\web@argi\@empty - \xdef\web@fullwidthtemplate@opt@args - {\web@addtofullwidthtemplateArgs}% - \else - \xdef\web@fullwidthtemplate@opt@args - {\web@addtofullwidthtemplateArgs,#1}% - \fi\gdef\web@fullwidthtemplate{#2}% - \fi -} -\newcommand\BGColorAndGraphicFullWidth -{% - \put(-\@textX,0){% - \web@colorbox@w@transparency{\web@fullwidthBgColor}% - {% - \parbox[b][\paperheight]{\paperwidth}% - {% - \ifx\web@fullwidthtemplate\@empty - \hfill\vfill - \else - \hfuzz=1pt\vfuzz=1pt - \expandafter\includegraphics\expandafter - [\web@fullwidthtemplate@opt@args,% - width=\paperwidth,height=\paperheight]% - {\web@fullwidthtemplate}% - \fi - }% - }% - }% -} -\AddToTemplate{BGColorAndGraphicFullWidth} -\disableTemplate{BGColorAndGraphicFullWidth} -\ifnum\@usetemplates>0 - \ifnum\@panelconfig>0 - \AtBeginDocument{% - \AddToShipoutPicture{\web@textTemplate\web@panelTemplate}} - \else - \AtBeginDocument{\AddToShipoutPicture{\web@textTemplate}} - \fi -\fi -\raggedbottom -\ifx\webpro@loaded\web@YES\expandafter\loadwebpro\fi -\endinput -%% -%% End of file `web.sty'. +%% +%% This is file `web.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% web.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Web package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% History: Noel Vaillant began developing a better web.sty +%% based on my earlier published web.sty. Many thanks +%% to him for starting me off. +%%--------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e}[1997/12/01] +\ProvidesPackage{web} + [2017/03/20 v6.0o web: A Screen Design Package (dps)] +\RequirePackage{xkeyval} +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{ifxetex}[2006/08/21] +\IfFileExists{xcolor.sty}{% + \def\eq@ColorPackage{xcolor}% + \PassOptionsToPackage{xcolor}{table,hyperref}% +}{\def\eq@ColorPackage{color}} +\DeclareOptionX{noxcolor}{\def\eq@ColorPackage{color}} +\let\i@web@ddtoHyOpts\@empty +\let\eq@driver@name\@empty +\let\web@YES=y \let\web@NO=n +\DeclareOptionX{dvipsone}{% + \def\eq@drivernum{0}\def\eq@driver@name{dvipsone}% + \let\web@set@paper\@empty + \@namedef{papersize@for@\eq@driver@name}{\AtBeginDocument{% + \special{papersize=\the\paperwidth,\the\paperheight}}}% +} +\DeclareOptionX{dviwindo}{% + \def\eq@drivernum{4}\def\eq@driver@name{dviwindo}% + \@namedef{papersize@for@\eq@driver@name}{\def\web@set@paper{% + \special{papersize=\the\paperwidth,\the\paperheight}}}% +} +\DeclareOptionX{dvipdfm}{% + \def\eq@drivernum{2}\def\eq@driver@name{dvipdfm}% + \web@opts@xdvipdfmx +} +\DeclareOptionX{dvipdfmx}{% + \def\eq@drivernum{2}\def\eq@driver@name{dvipdfmx}% + \web@opts@xdvipdfmx +} +\DeclareOptionX{xetex}{% + \def\eq@drivernum{2}\def\eq@driver@name{xetex}% + \web@opts@xdvipdfmx +} +\newcommand{\web@opts@xdvipdfmx}{% + \@namedef{papersize@for@\eq@driver@name}% + {\def\web@set@paper{\AtBeginDvi{% + \special{papersize=\the\paperwidth,\the\paperheight}}}}% +} +\DeclareOptionX{dvips}{% + \def\eq@drivernum{0}\def\eq@driver@name{dvips}% + \def\i@web@ddtoHyOpts{setpagesize=false}% + \let\web@set@paper\@empty + \@namedef{papersize@for@\eq@driver@name}{\AtBeginDocument{% + \special{papersize=\the\paperwidth,\the\paperheight}}}% +} +\DeclareOptionX{pdftex}{\ifx\eq@driver@name\@empty + \def\eq@drivernum{1}\def\eq@driver@name{pdftex}% + \def\i@web@ddtoHyOpts{setpagesize}\def\web@set@paper{}\fi +} +\DeclareOptionX{luatex}{\ifx\eq@driver@name\@empty + \def\eq@drivernum{1}\def\eq@driver@name{luatex}% + \def\i@web@ddtoHyOpts{setpagesize}\def\web@set@paper{}\fi +} +\DeclareOptionX{textures}{% + \def\eq@drivernum{3}\def\eq@driver@name{textures}% + \@namedef{papersize@for@\eq@driver@name}% + {\def\web@set@paper{\bgroup + \dimen2=\origpaperheight \advance\dimen2 by -\topmargin + \dimen0\dimen2 \advance\dimen0-\paperheight + \xdef\@pdfpagescrop{0 \strip@pt\dimen0 \space + \strip@pt\paperwidth\space \strip@pt\dimen2}% + \egroup}% + \AtEndOfPackage{% + \edef\origpaperwidth{\the\paperwidth}% + \edef\origpaperheight{\the\paperheight}% + }% + }% +} +\@ifundefined{ifequsecolor}{\newif\ifequsecolor \equsecolorfalse}{} +\DeclareOptionX{forpaper}{\equsecolorfalse\eqforpapertrue + \PassOptionsToPackage{forpaper}{eqexam} + \PassOptionsToPackage{monochrome}{\eq@ColorPackage}% + \PassOptionsToPackage{forpaper}{exerquiz}} +\DeclareOptionX{forcolorpaper}{\equsecolortrue\eqforpapertrue + \PassOptionsToPackage{forcolorpaper}{eqexam} + \PassOptionsToPackage{forcolorpaper}{exerquiz}} +\DeclareOptionX{latexlayout}{% + \let\web@layout\web@NO\ExecuteOptionsX{forcolorpaper}} +\DeclareOptionX{uselatexsectioning}{% + \web@sectioningfalse +} +\newif\ifweb@sectioning \web@sectioningtrue +\DeclareOptionX{weblikeclass}{% + \ExecuteOptionsX{latexlayout}% + \ExecuteOptionsX{nobullets}% + \ExecuteOptionsX{uselatexsectioning}% +} +\DeclareOptionX{nodirectory}{\let\web@directory@option\web@NO} +\DeclareOptionX{usedirectory}{\let\web@directory@option\web@YES} +\DeclareOptionX{latextoc}{\let\web@latextoc\web@YES} +\DeclareOptionX{nobullets}{\let\web@bullets\web@NO + \let\web@latextoc\web@YES\forceSubSubNumbers} +\def\web@MargScrDimOpts#1#2#3#4#5#6{% + \margins{#1}{#2}{#3}{#4} % left,right,top, bottom + \screensize{#5}{#6} % height, width + \let\margins\@@margins\let\screensize\@gobbletwo +} +\DeclareOptionX{designi}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{3.736in}{4.67in}}} +\DeclareOptionX{designii}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{5in}}} +\DeclareOptionX{designiii}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{5in}{6in}}} +\DeclareOptionX{designiv}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4in}{5in}}} +\DeclareOptionX{designv}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{6in}}} +\DeclareOptionX{designvi}{\AtEndOfPackage{% + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.17in}{4.67in}}} +\DeclareOptionX{designvii}{\AtEndOfPackage{% + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{7.5in}{10in}}} +\DeclareOptionX{designviii}{\AtEndOfPackage{% + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6.67in}}} +\DeclareOptionX{designix}{\AtEndOfPackage{% + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6in}}} +\DeclareOptionX{usesf}{% + \def\aeb@defaultfamily{\sffamily} + \def\itdefault{sl} + \renewcommand{\familydefault}{\sfdefault} + \selectfont + \renewcommand\labelitemi{\textrm{\textbullet}} + \AtEndOfPackage{\def\web@copyright@symbol{\textrm{\copyright}}} +} +\def\aeb@defaultfamily{\rmfamily} +\DeclareOptionX{unicode}{\def\aeb@useunicode{unicode}} +\let\aeb@useunicode\@gobble +\newif\if@web@hyperref \@web@hyperreftrue +\DeclareOptionX{xhyperref}{\@web@hyperreffalse} +\define@choicekey+{webHyOpts}{pdfencoding}[\val\nr]% + {auto,pdfdoc,unicode}[pdfdoc]{\edef\web@Hypdfencoding{\val}} + {\PackageWarning{web}{Bad choice for pdfencoding, + permissible values\MessageBreak + are auto, pdfdoc, and unicode.\MessageBreak Try again}} +\let\web@Hypdfencoding\@empty +\let\u@web@ddtoHyOpts\@empty +\let\u@web@ddtoHySetup\@empty +\def\web@addtoHyOpts#1{\g@addto@macro\u@web@ddtoHyOpts{#1}} +\def\web@addtoHySetup#1{\g@addto@macro\u@web@ddtoHySetup{#1}} +\define@key{web.sty}{addtoHyOpts}[]{% + \setkeys*{webHyOpts}{#1}\web@addtoHyOpts{#1}} +\define@key{web.sty}{addtoHyOpts*}[]{% + \setkeys*{webHyOpts}{#1}\web@addtoHySetup{#1}} +\DeclareOptionX{useui}{\PassOptionsToPackage{useui}{eforms}} +\DeclareOptionX{forceSubSubNumbers}{\ExecuteOptionsX{nobullets}} +\DeclareOptionX{centertitlepage}{\@centertitlepagetrue} +\newif\if@centertitlepage \@centertitlepagefalse +\DeclareOptionX{centertitlepagefull}{\@centertitlepagefulltrue} +\newif\if@centertitlepagefull \@centertitlepagefullfalse +\DeclareOptionX{pro}{\let\webpro@loaded\web@YES} +\DeclareOptionX{extended}{\let\webpro@loaded\web@YES} +\let\webpro@loaded\web@NO +\def\loadwebpro{\InputIfFileExists{webpro.def}{}{}} +\newif\ifweb@allowtemplates \web@allowtemplatestrue +\DeclareOptionX{draft}{\web@allowtemplatesfalse} +\DeclareOptionX{usetemplates}{\def\@usetemplates{1}} +\DeclareOptionX{leftpanel}% + {\def\@panelconfig{1}\def\@usetemplates{1}} +\DeclareOptionX{rightpanel}% + {\def\@panelconfig{2}\def\@usetemplates{1}} +\newif\iftemplatesforpaper \templatesforpaperfalse +\DeclareOptionX{templatesforpaper}{\templatesforpapertrue + \ExecuteOptionsX{forcolorpaper}} +\DeclareOptionX{rightpanelprt}{% + \ifeqforpaper\else\ExecuteOptionsX{rightpanel}\fi +} +\DeclareOptionX{leftpanelprt}{% + \ifeqforpaper\else\ExecuteOptionsX{leftpanel}\fi +} +\def\templatedefaults{\def\@panelsep{0pt}\def\@usetemplates{0}% + \def\@panelconfig{0}\def\@textX{0}\def\@panelX{0}% +} +\templatedefaults +\DeclareOptionX{navibar}{\web@navibartrue} +\DeclareOptionX{tight}{\AtEndOfPackage{\tightsettings}} +\DeclareOptionX{tight*}{\AtEndOfPackage{\tightsettings*}} +\let\web@tight\web@NO +\DeclareOptionX{uselatexparts}{% + \AtEndOfPackage{\@ifundefined{part}{}{\let\part\web@save@part}}} +\DeclareOptionX{uselatexchapters}{% + \AtEndOfPackage{\@ifundefined{chapter}{} + {\let\chapter\web@save@chapter}}} +\DeclareOptionX{french}{% + \AtEndOfPackage{% + % Recouvrement de \today + \def\today{\the\day\ \ifcase\month\or janvier + \or f\'evrier \or mars \or avril + \or mai \or juin \or juillet \or ao\^ut + \or septembre \or octobre \or novembre + \or d\'ecembre \fi \the\year} + \def\web@toc{Table des mati\`{e}res} + \def\web@continued{suite} + \def\web@article{D\'{e}but \hyperlink{\web@Start.1}{Document}} + \def\web@directory{R\'{e}pertoire} + \def\web@revision{Mise \`{a} jour :} + \def\web@copyright{Copyright} + \def\web@versionlabel{Version} + \def\web@back{Retour}} + \PassOptionsToPackage{french}{exerquiz} +} +\DeclareOptionX{german}{% + \AtEndOfPackage{% + \def\today{\the\day. \ifcase\month\or Januar + \or Februar \or M\"{a}rz \or April + \or Mai \or Juni \or Juli \or August + \or September \or Oktober \or November + \or Dezember \fi \the\year} + \def\web@versionlabel{Version} + \def\web@toc{Inhaltsverzeichnis} + \def\web@continued{Forts.} + \def\web@article{Anfang \hyperlink{\web@Start.1}{Artikel}} + \def\web@directory{\"Ubersicht} + \def\web@revision{Letzte \"Anderung:} + \def\web@copyright{Copyright} + \def\web@section{Abschnitt} + \def\web@back{Zur\"uck} + \def\web@doc{Dok}} + \PassOptionsToPackage{german}{exerquiz} +} +\DeclareOptionX{norsk}{% + \AtEndOfPackage{% + \def\today{\ifcase\month\or Januar + \or Februar \or Mars \or April + \or Mai \or Juni \or Juli \or August + \or September \or Oktober \or November + \or Desember \fi \the\day, \the\year} + \def\web@versionlabel{Versjon} + \def\web@toc{Innholdsfortegnelse} + \def\web@continued{forts.} + \def\web@article{Start \hyperlink{\web@Start.1}{artikkel}} + \def\web@directory{Katalog} + \def\web@revision{Sist endret:} + \def\web@copyright{Copyright} + \def\web@section{Avsnitt} + \def\web@back{Tilbake} + \def\web@doc{Dok}} + \PassOptionsToPackage{norsk}{exerquiz} +} +\DeclareOptionX{dutch}{% + \AtEndOfPackage{% + \def\today{\the\day~\ifcase\month\or januari + \or februari \or maart \or april + \or mei \or juni \or juli \or augustus + \or september \or oktober \or november + \or december \fi \space \the\year} + \def\web@versionlabel{Versie} + \def\web@toc{Inhoudsopgave} + \def\web@continued{vervolg} + \def\web@article{Begin \hyperlink{\web@Start.1}{Artikel}} + \def\web@directory{Overzicht} + \def\web@revision{Laatste wijziging:} + \def\web@copyright{Copyright} + \def\web@section{Sectie} + \def\web@back{Terug} + \def\web@doc{Doc}} + \PassOptionsToPackage{dutch}{exerquiz} +} +\DeclareOptionX{spanish}{% + \AtEndOfPackage{% + \def\today{\the\day\ de \ifcase\month\or Enero + \or Febrero \or Marzo \or Abril + \or Mayo \or Junio \or Julio \or Agosto + \or Septiembre \or Octubre \or Noviembre + \or Deciembre \fi de \the\year} + \renewcommand\web@versionlabel{Versi\noexpand\'{o}n} + \renewcommand\web@toc{Tabla de Contenido} + \renewcommand\web@continued{cont.} + \renewcommand\web@article{Inicio + \hyperlink{\web@Start.1}{Art\'{\i}culo}} + \renewcommand\web@directory{Directorio} + \renewcommand\web@revision{Actualizado el:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Secci\'on} + \renewcommand\web@back{Volver} + \renewcommand\web@doc{Doc}} + \PassOptionsToPackage{spanish}{exerquiz} +} +\DeclareOptionX{italian}{% + \AtEndOfPackage{% + \def\today{\ifcase\month\or Gennaio + \or Febbraio \or Marzo \or Aprile + \or Maggio \or Giugno \or Luglio \or Agosto + \or Settembre \or Ottobre \or Novembre + \or Dicembre \fi \the\day, \the\year} + \renewcommand\web@versionlabel{Versione} + \renewcommand\web@toc{Indice} + \renewcommand\web@continued{cont.} + \renewcommand\web@article{Inizio \hyperlink{\web@Start.1}{Articolo}} + \renewcommand\web@directory{Directory} + \renewcommand\web@revision{Data Ultima Revisione:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Sezione} + \renewcommand\web@back{Back} + \renewcommand\web@doc{Doc}} + \PassOptionsToPackage{italian}{exerquiz} +} +\DeclareOptionX{russian}{% + \ExecuteOptionsX{unicode}% + \AtEndOfPackage{% + \def\today{\the\day\ \ifcase\month + \or \cyrya\cyrn\cyrv\cyra\cyrr\cyrya + \or \cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya + \or \cyrm\cyra\cyrr\cyrt\cyra + \or \cyra\cyrp\cyrr\cyre\cyrl\cyrya + \or \cyrm\cyra\cyrya + \or \cyri\cyryu\cyrn\cyrya + \or \cyri\cyryu\cyrl\cyrya + \or \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra + \or \cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya + \or \cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya + \or \cyrn\cyro\cyrya\cyrb\cyrr\cyrya + \or \cyrd\cyre\cyrk\cyrya\cyrb\cyrr\cyrya \fi{ }% + \the\year\ \cyrg.} + \gdef\eq@protected##1##2{{\ifhmode ##2\else + \ifvmode ##2\else\ifinner##2\else\noexpand ##1\fi\fi\fi}}% + \def\cyrCommand##1##2{\def##1{\eq@protected##1{##2}}}% + \cyrCommand\web@toc{\CYRO\cyrg\cyrl\cyra\cyrv\cyrl\cyre\cyrn% + \cyri\cyre} + \cyrCommand\web@continued{\cyrp\cyrr\cyro\cyrd\cyro\cyrl% + \cyrzh\cyre\cyrn\cyri\cyre} + \cyrCommand\web@article{\CYRN\cyra\cyrch\cyra\cyrl\cyro{ }% + \hyperlink{\web@Start.1}{\cyrd\cyro\cyrk\cyru\cyrm\cyre% + \cyrn\cyrt\cyra}} + \cyrCommand\web@directory{\CYRS\cyro\cyrd\cyre\cyrr\cyrzh% + \cyra\cyrn\cyri\cyre} + \cyrCommand\web@revision{\CYRP\cyro\cyrs\cyrl\cyre\cyrd\cyrn% + \cyrya\cyrya{ }\cyrr\cyre\cyrv\cyri\cyrz\cyri\cyrya:} + \let\web@copyright\@gobble + \cyrCommand\web@versionlabel{\CYRV\cyre\cyrr\cyrs\cyri\cyrya} + \cyrCommand\web@back{\CYRN\cyra\cyrz\cyra\cyrd} + \cyrCommand\web@section{\CYRCH\cyra\cyrs\cyrt\cyrsftsn}} + \PassOptionsToPackage{russian}{exerquiz} +} +\DeclareOptionX{dansk}{% + \AtEndOfPackage{% + \def\today{\ifcase\month\or Januar + \or Februar \or Marts \or April + \or Maj \or Juni \or Juli \or August + \or September \or Oktober \or November + \or December \fi \the\day, \the\year} + \renewcommand\web@versionlabel{Version} + \renewcommand\web@toc{Indholdsfortegnelse} + \renewcommand\web@continued{forts.} + \renewcommand\web@article{Begin \hyperlink{\web@Start.1}{Artikel}} + \renewcommand\web@directory{Katalog} + \renewcommand\web@revision{Sidst revideret:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Afsnit} + % Label Navibar + \renewcommand\web@back{Tilbage} + \renewcommand\web@doc{Dok}} % restricted to three characters + \PassOptionsToPackage{dansk}{exerquiz} +} +\DeclareOptionX{polish}{% + \AtEndOfPackage{% + \def\today{\ifcase\month\or {Stycze\'{n}} + \or Luty \or Marzec \or {Kwiecie\'{n}} + \or Maj \or Czerwiec \or Lipiec \or {\'{S}ierpie\'{n}} + \or {Wrzesie\'{n}} \or {Pa\'{z}dziernik} \or Listopad + \or {Grudzie\'{n}} \fi \the\day, \the\year} + \renewcommand\web@versionlabel{Wersja} + \renewcommand\web@toc{Spis Tre\'{s}ci} + \renewcommand\web@continued{verte} + \renewcommand\web@article{Pocz\k{a}tek do + \hyperlink{\web@Start.1}{Tekstu}} + \renewcommand\web@directory{Zawarto\'{s}\'{c}} + \renewcommand\web@revision{Ostatnia zmiana:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Cze\'{s}\'{c}} + % Label Navibar + \renewcommand\web@back{Wstecz} + \renewcommand\web@doc{Dok}} % restricted to three characters + \PassOptionsToPackage{polish}{exerquiz} +} +\DeclareOptionX{finnish}{% + \AtEndOfPackage{% + % Recouvrement de \today + \def\today{\the\day\ \ifcase\month\or Tammikuu + \or Helmikuu \or Maaliskuu \or Huhtikuu + \or Toukokuu \or Kes\"{a}kuu \or Hein\"{a}kuu \or Elokuu + \or Syyskuu \or Lokakuu \or Marraskuu + \or Joulukuu \fi \the\year} + \def\web@toc{Sis\"{a}llys} + \def\web@continued{jatka} + \def\web@article{Aloita \hyperlink{section.1}{Artikkeli}} + \def\web@directory{Hakemisto} + \def\web@revision{Muutettu viimeeksi:} + \def\web@copyright{Copyright} + \def\web@section{Kappale} + \def\web@versionlabel{Versio} + \def\web@back{Takaisin}} + \PassOptionsToPackage{finnish}{exerquiz} +} +\DeclareOptionX{catalan}{% + \AtEndOfPackage{% + \def\today{\the\day\ de \ifcase\month\or Gener + \or Febrer \or Mar\c{c} \or Abril + \or Maig \or Juny \or Juliol \or Agost + \or Setembre \or Octubre \or Novembre + \or Desembre \fi de \the\year} + \renewcommand\web@versionlabel{Versi\noexpand\'{o}} + \renewcommand\web@toc{Taula de Contingut} + \renewcommand\web@continued{cont.} + \renewcommand\web@article{Inici \hyperlink{\web@Start.1}{Article}} + \renewcommand\web@directory{Directori} + \renewcommand\web@revision{Actualizat el:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Secci\'o} + \renewcommand\web@back{Tornar} + \renewcommand\web@doc{Doc}} + \PassOptionsToPackage{catalan}{exerquiz} +} +\DeclareOptionX{czech}{% + \AtEndOfPackage{% + \def\today{\number\day. \ifcase\month\or ledna\or \'unora\or + b\v{r}ezna\or dubna\or kv\v{e}tna\or \v{c}ervna\or \v{c}ervence\or + srpna\or z\'a\v{r}\'\i\or \v{r}\'{\i}jna\or listopadu\or prosince\fi + \space\number\year} + \def\web@versionlabel{Verze} + \def\web@toc{Obsah} + \def\web@continued{pokr.} + \def\web@article{Za\v{c}\'{a}tek \hyperlink{\web@Start.1}{textu}} + \def\web@directory{Rozcestn\'{\i}k} + \def\web@revision{Posledn\'{\i} zm\v{e}na} + \def\web@copyright{Copyright} + \def\web@section{Kapitola} + \def\web@back{Zp\v{e}t} + \def\web@doc{Dok}} + \PassOptionsToPackage{czech}{exerquiz} +} +\DeclareOptionX{brazil}{% + \AtEndOfPackage{% + \def\today{\the\day\ de \ifcase\month\or janeiro + \or fevereiro \or mar\c{c}o \or abril + \or maio \or junho \or julho \or agosto + \or setembro \or outubro \or novembro + \or dezembro \fi de \the\year} + \renewcommand\web@versionlabel{Vers\~{a}o} + \renewcommand\web@toc{Tabela de Conte\'{u}do} + \renewcommand\web@continued{cont.} + \renewcommand\web@article{Inicie o + \hyperlink{\web@Start.1}{Artigo}} + \renewcommand\web@directory{Diret\'{o}rio} + \renewcommand\web@revision{Atualizado em:} + \renewcommand\web@copyright{Copyright} + \renewcommand\web@section{Se\c{c}\noexpand\~{a}o} + \renewcommand\web@back{Voltar} + \renewcommand\web@doc{Doc}} + \PassOptionsToPackage{brazil}{exerquiz} +} +\DeclareOptionX{turkish}{% + \ExecuteOptionsX{unicode}% + \AtEndOfPackage{% + \def\today{\the\day\ \ifcase\month\or Ocak + \or \c{S}ubat \or Mart \or Nisan + \or May{\i}s \or Haziran \or Temmuz \or A\u{g}ustos + \or Eyl\"ul \or Ekim \or Kas{\i}m + \or Aral{\i}k \fi \the\year} + \def\web@toc{{\.I}\c{c}indekiler} + \def\web@continued{suite} + \def\web@article{\hyperlink{\web@Start.1}{D\"ok\"umanta} ba{\c s}la} + \def\web@directory{Dosya} + \def\web@revision{Son versiyon tarihi :} + \def\web@copyright{Copyright} + \def\web@versionlabel{Versiyon} + \def\web@section{K{\i}s{\i}m} + \def\web@back{Geri} + \def\web@doc{D\"ok}} + \PassOptionsToPackage{turkish}{exerquiz} +} +\DeclareOptionX*{\PassOptionsToPackage{\CurrentOption} + {\eq@ColorPackage}} +\@ifpackageloaded{xcolor}% +{% + \@ifpackagelater{xcolor}{2004/07/04}{} + {% + \PackageError{web}{% + *************************************************\MessageBreak + * Your Version of `xcolor.sty' is too old!\MessageBreak + * You need the version from 2004/07/04 or newer\MessageBreak + * or use: \string\usepackage[noxcolor]{web}\MessageBreak + * or \string\documentclass[noxcolor]{article}\MessageBreak + *************************************************}{}% + }% +}{} +\newif\ifweb@navibar\web@navibarfalse +\def\NaviBarOn{\global\web@navibartrue} +\def\NaviBarOff{\global\web@navibarfalse} +\newif\ifeqforpaper \eqforpaperfalse % for those who insist on paper +\newif\ifweb@papersize@set \web@papersize@setfalse +\newif\ifweb@margins@set \web@margins@setfalse +\newif\if@defaultsubsubding \@defaultsubsubdingtrue +\def\forceSubSubNumbers{% + \ifx\web@latextoc\web@YES\else + \PackageWarning{webpro}{\string\forSubSubNumbers\space + requested,\MessageBreak I'm adding the option of latextoc}\fi + \let\web@latextoc\web@YES\@defaultsubsubdingfalse +} +\@ifclassloaded{report}{\newif\if@mainmatter\@mainmattertrue}{} +\newcommand\NewPage{\ifeqforpaper\else\newpage\fi} +\let\web@directory@option\web@NO +\let\web@latextoc\web@NO +\let\web@layout\web@YES +\let\web@bullets\web@YES +\def\web@finalDot{.} +\def\noFinalDot{\let\web@finalDot\@empty} +\@onlypreamble\noFinalDot +\def\minPanelWidth#1{\def\web@minpanelwidth{#1}} +\minPanelWidth{1in} +\ifpdf\ExecuteOptionsX{pdftex}\else + \ifxetex\ExecuteOptionsX{xetex}\else + \let\ExecuteOptions@SAVE\ExecuteOptions + \let\ExecuteOptions\ExecuteOptionsX + \InputIfFileExists{web.cfg}{} + {\@ifundefined{l@tex@@@@driver}{\ExecuteOptionsX{dvips}} + {\ExecuteOptionsX{dvipsone}}}% + \let\ExecuteOptions\ExecuteOptions@SAVE + \fi\fi +\ProcessOptionsX +\ifx\web@Hypdfencoding\@empty\else + \let\aeb@useunicode\@gobble\fi +\def\w@csarg#1#2{\expandafter#1\csname#2\endcsname} +\@nameuse{papersize@for@\eq@driver@name} +\ifx\web@layout\web@YES\else\templatedefaults\fi +\@ifundefined{ifpdfmarkup}{\newif\ifpdfmarkup} +\pdfmarkupfalse\ifpdf\else\ifxetex\else\pdfmarkuptrue\fi\fi +\iftemplatesforpaper\def\@usetemplates{1}\fi +\if@centertitlepagefull\@centertitlepagetrue\fi +\RequirePackage{\eq@ColorPackage} +\RequirePackage{calc} +\RequirePackage{amssymb}% used for navibar +\edef\web@RequireHyperref{\noexpand\RequirePackage[% + \ifpdf\else\ifxetex\else\eq@driver@name,\fi\fi + bookmarks,bookmarksnumbered,bookmarksopen,% + colorlinks,\aeb@useunicode,linkcolor=webgreen,% + filecolor=webbrown,citecolor=webgreen,% + urlcolor=webbrown,pagebackref,pdfpagemode=UseNone,% + pdfstartview=Fit,pdfpagelayout=SinglePage% + \ifx\u@web@ddtoHyOpts\@empty\else,\u@web@ddtoHyOpts\fi + \ifx\i@web@ddtoHyOpts\@empty\else,\i@web@ddtoHyOpts\fi]{hyperref}% +} +\def\w@isHyLoaded{\@ifpackageloaded{hyperref}{}{\PackageError{web} + {The xhyperref option used, but hyperref is not\MessageBreak + already loaded. Will load hyperref with the options\MessageBreak + chosen by web}{Remove xhyperref or load hyperref prior to the web + package.}\web@RequireHyperref}% +} +\if@web@hyperref\expandafter\web@RequireHyperref\else + \expandafter\w@isHyLoaded\fi +\ifx\u@web@ddtoHySetup\@empty\else\edef\x{\noexpand\hypersetup + {\u@web@ddtoHySetup}}\expandafter\x\fi +\def\@pdfcreator{The AcroTeX eDucation Bundle} +\RequirePackage{comment} +\ifnum\@usetemplates=1\relax + \def\x{\RequirePackage{graphicx}}\expandafter\x\fi +\ifnum\@usetemplates=1\relax + \RequirePackage{eso-pic} + \ifnum\eq@drivernum=2\relax + \def\web@set@paper{\AddToShipoutPicture*{% + \special{papersize=\the\paperwidth,\the\paperheight}}}% + \AtBeginShipoutFirst{% + \begingroup + \@ifundefined{stockwidth}{% + \ifx\special@paper\@empty + \special{papersize=\the\paperwidth,\the\paperheight}% + \else + \special{papersize=\special@paper}% + \fi + }{% + \ifdim\stockwidth=\z@ + \else + \special{papersize=\the\stockwidth,\the\stockheight}% + \fi + }% + \endgroup + }% + \@ifundefined{@ShipoutPicture}{}{% + \renewcommand{\@ShipoutPicture}{% + \bgroup + \@tempswafalse% + \ifx\ESO@HookI\@empty\else\@tempswatrue\fi% + \ifx\ESO@HookII\@empty\else\@tempswatrue\fi% + \if@tempswa% + \@tempdima=1in\@tempdimb=-\@tempdima% + \advance\@tempdimb\paperheight + \@ifundefined{stockwidth}{}{% + \advance\@tempdima+\trimedge% + \advance\@tempdima+\paperwidth% + \advance\@tempdima-\stockwidth% + \if@twoside\ifodd\c@page\else% + \advance\@tempdima-2\trimedge% + \advance\@tempdima-\paperwidth% + \advance\@tempdima+\stockwidth% + \fi\fi% + \advance\@tempdimb+\trimtop}% + \unitlength=1pt% + \global\setbox\@cclv\vbox{% + \vbox{\let\protect\relax + \pictur@(0,0)% + (\strip@pt\@tempdima,\strip@pt\@tempdimb)% + \ESO@HookII\ESO@HookI\global\let\ESO@HookII\@empty% + \endpicture}% + \box\@cclv% + }% + \fi + \egroup + }% + }% + \fi +\fi +\def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}} +\let\getargsii\getargs +\newlength{\textscreenwidth} +\setlength{\textscreenwidth}{\paperwidth} +\newlength{\@panelwidth} +\def\panelscreenwidth{\@panelwidth} +\newdimen\@Leftmargin \@Leftmargin=0pt +\newdimen\@Rightmargin \@Rightmargin=0pt +\newdimen\@Bottommargin \@Bottommargin=0pt +\newdimen\@Topmargin \@Topmargin=0pt +\newdimen\web@Topmargin \web@Topmargin=8pt +\newcommand{\websetheadheight}{8pt} +\newcommand{\web@footskip}{4pt} +\def\web@additionalheadsep{0pt} +\pagestyle{empty} +\def\InitLayout +{% + \ifeqforpaper\else + \setlength\headheight{\websetheadheight} + \hoffset=0pt \voffset=0pt + \fi + \ifeqforpaper\else + {\@tempdima=\paperwidth + \addtolength{\@tempdima}{-\@Leftmargin}% + \addtolength{\@tempdima}{-\@Rightmargin}% + \xdef\fullscreenwidth{\the\@tempdima}}% + \fi + \ifx\web@layout\web@YES\else\templatedefaults\fi + \ifeqforpaper\else + \setlength{\textwidth}{\paperwidth} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-\@Topmargin} + \addtolength{\textheight}{-\@Bottommargin} + \setlength{\headsep}{\@Topmargin} + \addtolength\headsep{-\headheight} + \setlength{\topmargin}{\web@Topmargin} + \addtolength\headsep{-\topmargin} + \addtolength\headsep{\web@additionalheadsep} + \addtolength{\topmargin}{-1in} + \setlength\footskip{\@Bottommargin} + \addtolength{\footskip}{-\web@footskip} % depth of navibar + \ifcase\@panelconfig + \setlength{\oddsidemargin}{\@Leftmargin} + \setlength{\evensidemargin}{\@Leftmargin} + \or + \setlength{\oddsidemargin}{\@panelwidth} + \setlength{\evensidemargin}{\@panelwidth} + \or + \setlength{\oddsidemargin}{\@Leftmargin} + \setlength{\evensidemargin}{\@Leftmargin} + \fi + \addtolength{\evensidemargin}{-1in} + \addtolength{\oddsidemargin}{-1in} + \fi + \ifx\web@layout\web@YES + \ifcase\@panelconfig + \addtolength{\textwidth}{-\@Leftmargin} + \addtolength{\textwidth}{-\@Rightmargin} + \or % leftpanel + \addtolength{\textwidth}{-\@panelwidth} + \addtolength{\textwidth}{-\@Rightmargin} + \or % rightpanel + \addtolength{\textwidth}{-\@panelwidth} + \addtolength{\textwidth}{-\@Leftmargin} + \fi + \ifnum\@usetemplates=1\relax + \setlength{\textscreenwidth}{\paperwidth} + \def\@textX{0} + \ifnum\@panelconfig=1 % leftpanel + \addtolength{\textwidth}{-\@panelsep} + \addtolength{\oddsidemargin}{\@panelsep} + \addtolength{\evensidemargin}{\@panelsep} + \addtolength{\textscreenwidth}{-\@panelwidth} + \def\@textX{\strip@pt\@panelwidth} + \def\@panelX{0} + \fi + \ifnum\@panelconfig=2 % rightpanel + \addtolength{\textwidth}{-\@panelsep} + \addtolength{\textscreenwidth}{-\@panelwidth} + \def\@textX{0} + \def\@panelX{\strip@pt\textscreenwidth} + \fi + \calculatefullwidth + \fi + \fi +} +\def\@convLtoP#1#2{% + \afterassignment\@convLtoP@i\dimen@#2bp\relax{#1}{#2}} +\def\@convLtoP@i#1\relax#2#3{% + \if!#1!% + \def#2{#3}% + \else + \dimen@.99626\dimen@ + \edef#2{\strip@pt\dimen@}% + \fi} +\providecommand\setPageDevice[3][600]{\bgroup + \@convLtoP{\width}{#2}\@convLtoP{\height}{#3} + \ifpdfmarkup\headerps@out{<< /HWResolution [#1 #1] % + /PageSize [\width\space\height] >> setpagedevice}\else + \PackageWarning{web}{This is a distiller only command,\MessageBreak + ignoring \string\setPageDevice}\fi\egroup} +\providecommand\allowTransparency{\bgroup + \ifpdfmarkup\headerps@out{<< % + /AllowTransparency true >> setdistillerparams}\else + \PackageWarning{web}{This is a distiller only command,\MessageBreak + ignoring \string\allowTransparency}\fi\egroup} +\@onlypreamble\setPageDevice +\@onlypreamble\allowTransparency +\def\screensize#1#2{% + \def\webSaveSSDim{{#1}{#2}}% + \begingroup + \ifeqforpaper + \ifx\web@layout\web@YES + \setlength{\@tempdima}{#2}% + \global\textwidth\@tempdima + \addtolength{\@tempdima}{-\@Leftmargin}% + \addtolength{\@tempdima}{-\@Rightmargin}% + \xdef\fullscreenwidth{\the\@tempdima}% + \else + \xdef\fullscreenwidth{\the\textwidth}% + \fi + \else + \setlength{\@tempdima}{#1}% + \global\paperheight\@tempdima + \setlength{\@tempdima}{#2}% + \global\paperwidth\@tempdima + \fi + \endgroup + \web@papersize@settrue + \web@set@paper % dps modified + \let\screensize\@gobbletwo + \InitLayout +} +\let\screensize@web@save\screensize +\newcommand{\setScreensizeFromGraphic}[2][]{% + \getDimsFromGraphic[#1]{#2}% + {\web@graphicScreenWidth}{\web@graphicScreenHeight}% + \screensize{\web@graphicScreenHeight}{\web@graphicScreenWidth}% +} +\@onlypreamble\setScreensizeFromGraphic +\newcommand{\getDimsFromGraphic}[4][]{{% + \setbox0=\hbox{\includegraphics[draft,#1]{#2}}% + \dimen@=\dp0 \advance\dimen@\ht0 + \xdef#3{\the\wd0 }\xdef#4{\the\dimen@}% +}} +\def\web@getSSDims#1#2{\edef\web@@height{#1}\edef\web@@width{#2}} +\def\addToWebHWError{\PackageError{web}{% + You must declare screen size first by using\MessageBreak + the \string\screensize\space command, or by declaring \MessageBreak + a design in the web option list}% + {Do as is suggested in error message!}} +\newcommand{\addtoWebHeight}[1]{% + \ifx\screensize\@gobbletwo + \expandafter\web@getSSDims\webSaveSSDim + \screensize@web@save{\web@@height+#1}{\web@@width}% + \else\addToWebHWError\fi +} +\newcommand{\addtoWebWidth}[1]{% + \ifx\screensize\@gobbletwo + \expandafter\web@getSSDims\webSaveSSDim + \screensize@web@save{\web@@height}{\web@@width+#1}% + \else\addToWebHWError\fi +} +\@onlypreamble\addtoWebHeight +\@onlypreamble\addtoWebWidth +\newcommand{\@margins}[5][\web@minpanelwidth] +{% + \def\webSaveMargDim{[#1]{#2}{#3}{#4}{#5}}% + \setlength{\@panelwidth}{#1}% + \ifdim\@panelwidth<\web@minpanelwidth + \setlength{\@panelwidth}{\web@minpanelwidth}\fi + \setlength{\@Leftmargin}{#2}% + \setlength{\@Rightmargin}{#3}% + \setlength{\@Topmargin}{#4}% + \setlength{\@Bottommargin}{#5}% + \web@margins@settrue + \InitLayout +} +\let\margins\@margins +\let\margins@web@save\margins +\newcommand{\@@margins}[5][]{} +\let\marginsize\margins +\newcommand\get@MargDim[5][]{% + \def\currPanelWidth{#1}% + \def\currLeftMarg{#2}\def\currRightMarg{#3}% + \def\currTopMarg{#4}\def\currBottomMarg{#5}} +\newcommand{\resetmargins}[5][\web@minpanelwidth]{% + \expandafter\get@MargDim\webSaveMargDim + \begingroup + \let\incby\currPanelWidth + \def\web@arg{#1}\ifx\web@arg\@empty + \setlength{\@tempdima}{\currPanelWidth}\else + \setlength{\@tempdima}{#1}\fi + \xdef\newPanelWidth{\the\@tempdima}% + \let\incby\currLeftMarg + \def\web@arg{#2}\ifx\web@arg\@empty + \setlength{\@tempdima}{\currLeftMarg}\else + \setlength{\@tempdima}{#2}\fi + \xdef\newLeftMarg{\the\@tempdima}% + \let\incby\currRightMarg + \def\web@arg{#3}\ifx\web@arg\@empty + \setlength{\@tempdima}{\currRightMarg}\else + \setlength{\@tempdima}{#3}\fi + \xdef\newRightMarg{\the\@tempdima}% + \let\incby\currTopMarg + \def\web@arg{#4}\ifx\web@arg\@empty + \setlength{\@tempdima}{\currTopMarg}\else + \setlength{\@tempdima}{#4}\fi + \xdef\newTopMarg{\the\@tempdima}% + \let\incby\currBottomMarg + \def\web@arg{#4}\ifx\web@arg\@empty + \setlength{\@tempdima}{\currBottomMarg}\else + \setlength{\@tempdima}{#5}\fi + \xdef\newBottomMarg{\the\@tempdima}% + \endgroup + \margins@web@save[\newPanelWidth]{\newLeftMarg}{\newRightMarg} + {\newTopMarg}{\newBottomMarg} +} +\@onlypreamble\resetscreensize +\let\web@save@title\title +\def\title{\@ifnextchar[{\@web@title}{\@web@title[]}} +\def\@web@title[#1]#2{\gdef\webtitle{#2}\hypersetup{pdftitle={#2}}% + \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebtitle{#2}\else + \gdef\shortwebtitle{#1}\fi\web@save@title{#2}} +\let\web@saved@author\author +\def\author#1{\gdef\webauthor{#1}\hypersetup{pdfauthor={#1}}% + \web@saved@author{#1}} +\def\subject{\@ifnextchar[{\@subject}{\@subject[]}} +\def\@subject[#1]#2{% + \def\webArg{#1}\ifx\webArg\@empty\gdef\shortwebsubject{#2}\else + \gdef\shortwebsubject{#1}\fi\gdef\websubject{#2}% + \hypersetup{pdfsubject={#2}}} +\def\email#1{\gdef\webemail{#1}} +\def\thewebemail{\href{mailto:\webemail}{\webemail}} +\def\keywords#1{\gdef\webkeywords{#1}\hypersetup{pdfkeywords={#1}}} +\def\pdfLang#1{\def\web@pdfLang{#1}\hypersetup{pdflang={#1}}} +\let\web@pdfLang\@empty +\def\university#1{\gdef\webuniversity{#1}} +\def\version#1{\gdef\web@version@value{#1}% + \edef\webversion{\ifx\web@version@value\@empty\else + \noexpand\web@versionlabel\noexpand\ + \noexpand\web@version@value\fi}% +} +\let\web@version@value\@empty +\def\versionLabel#1{\def\web@versionlabel{#1}} +\versionLabel{Version} +\def\copyrightyears#1{\gdef\webcopyrightyears{#1}} +\newcommand{\tocName}[1]{\def\web@toc{#1}} +\tocName{Table of Contents} +\newcommand{\tocNameCont}[1]{\def\web@continued{#1}} +\tocNameCont{cont.} +\newcommand{\dirContentLink}[1]{\def\web@article{#1}} +\dirContentLink{Begin \hyperlink{\web@Start.1}{Article}} +\newcommand{\directoryName}[1]{\def\web@directory{#1}} +\directoryName{Directory} +\newcommand{\revisionLabel}[1]{\def\web@revision{#1}} +\revisionLabel{Last Revision Date:} +\def\norevisionLabel{\let\web@revision\@gobble} +\newcommand{\copyrightLabel}[1]{\def\web@copyright{#1}} +\copyrightLabel{Copyright} +\def\nocopyright{\let\web@copyright\@gobble} +\def\nocopyrightNotice{\let\web@copyright\@gobblethree} +\def\web@section{Section} +\def\web@back{Back} +\def\web@doc{Doc} % restricted to three characters +\title{}\author{}\email{}\subject{}\keywords{}\version{} +\university{}\copyrightyears{\the\year} +\let\IF@AorBswitch\ifeqforpaper +\def\prtscr{\@ifstar{\prtscrV}{\prtscrA}} +\def\prtscrA#1#2{\ifeqforpaper#1\else#2\fi} +\newtoks\webtoksi +\newbox\webtempboxi +\newbox\webtempboxii +\providecommand\SHOWTEMPBOXi{\unhbox\webtempboxi} +\providecommand\TRUEACTIONi{\aftergroup\SETTEMPBOXii} +\providecommand\TRUEACTIONia{\aftergroup\SHOWTEMPBOXi} +\providecommand\FALSEACTIONii{\aftergroup\SETTEMPBOXi} +\providecommand\FALSEACTIONiia{\aftergroup\SHOWTEMPBOXi} +\providecommand\SETTEMPBOXi{\IF@AorBswitch\else + \afterassignment\TRUEACTIONia\fi + \setbox\webtempboxi=\hbox} +\providecommand\SETTEMPBOXii{\IF@AorBswitch + \afterassignment\FALSEACTIONiia\fi + \setbox\webtempboxii=\hbox} +\def\prtscrV{\let\IF@AorBswitch\ifeqforpaper + \ifeqforpaper + \def\web@next{\afterassignment\TRUEACTIONi\SETTEMPBOXi}\else + \def\web@next{\afterassignment\FALSEACTIONii\SETTEMPBOXii}\fi + \web@next} +\newcommand{\web@aboveOptPgMatDef}{\minimumskip\vspace{\stretch{1}}} +\newcommand{\aboveOPMvspace}{\web@aboveOptPgMatDef} +\newcommand{\optionalPageMatter}[2][\web@aboveOptPgMatDef]{% + \def\aboveOPMvspace{#1}\def\optionalpagematter{#2}% +} +\def\optionalpagematter{} +\@ifundefined{thechapter} + {\def\web@Start{section}}{\def\web@Start{chapter}} +\newcommand{\titleauthorproportion}{.33} +\newcommand{\hproportionwebuniversity}{.7} +\newcommand{\hproportionwebtitle}{.7} +\newcommand{\hproportionwebauthor}{.4} +\newcommand{\minimumskip}{\medskip} +\def\web@copyright@symbol{\copyright} +\newcommand{\copyrightSymbol}[1]{\def\web@copyright@symbol{#1}} +\def\nocopyrightsymbol{\let\web@copyright@symbol\@gobble} +\newcommand{\trailerFontSize}{\footnotesize} +\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} +\newcommand{\titlepageTrailer} +{% + \makebox[\linewidth]{\parbox{\linewidth}{% + \maketitle@trailer@ul\hfill\maketitle@trailer@ur\\ + \maketitle@trailer@ll\hfill\maketitle@trailer@lr}}% +} +\newcommand{\webdirectory}{% + \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}}% + \web@priorDirMatter + \begin{flushleft}{\web@formatWordDirectory\web@directory}% + \web@priorDirList + \vspace{\vspaceAfterDirName}% + \begin{itemize}\setlength{\itemsep}{-3pt}\web@formatDirectoryItems + \ifx\web@removeDirTOC\web@YES\else\item\relax\dirTOCItem\fi + \ifx\web@removeDirArticle\web@YES\else + \item\relax\dirArticleItem\fi + \web@addtoDirList + \end{itemize} + \web@afterDirList + \end{flushleft} + \web@afterDirMatter +} +\newcommand{\directoryhook}[1]{\def\web@directory@hook##1{#1}} +\let\web@directory@hook\@empty +\newcommand{\vspaceAfterDirName}{-3pt} +\newcommand{\dirTOCItem}{\hyperlink{webtoc}{\web@toc}} +\newcommand{\dirArticleItem}{\web@article} +\newcommand{\removeDirTOC}{\let\web@removeDirTOC\web@YES} +\let\web@removeDirTOC\web@NO +\newcommand{\removeDirArticle}{\let\web@removeDirArticle\web@YES} +\let\web@removeDirArticle\web@NO +\let\web@addtoDirList\@empty +\newcommand{\formatWordDirectory}[1]{\def\web@formatWordDirectory{#1}} +\formatWordDirectory{\bfseries\large} +\newcommand{\formatDirectoryItems}[1]{\def\web@formatDirectoryItems{#1}} +\formatDirectoryItems{\bfseries} +\newcommand{\addtoDirList}[1]{\g@addto@macro\web@addtoDirList{\item #1}} +\newcommand{\priorDirList}[1]{\def\web@priorDirList{#1}} +\let\web@priorDirList\@empty +\newcommand{\afterDirList}[1]{\def\web@afterDirList{#1}} +\let\web@afterDirList\@empty +\newcommand{\priorDirMatter}[1]{\def\web@priorDirMatter{#1}} +\let\web@priorDirMatter\@empty +\newcommand{\afterDirMatter}[1]{\def\web@afterDirMatter{#1}} +\let\web@afterDirMatter\@empty +\newcommand{\universityColor}[1]{\def\webuniversity@color{#1}} +\universityColor{blue} +\newcommand{\titleColor}[1]{\def\webtitle@color{#1}} +\titleColor{black} +\newcommand{\authorColor}[1]{\def\webauthor@color{#1}} +\authorColor{black} +\newcommand{\subjectColor}[1]{\def\websubject@color{#1}} +\subjectColor{black} +\def\aboveTopTitleSkip#1{\def\web@aboveTopTitleSkip{#1}} +\aboveTopTitleSkip{0pt} +\newcommand{\topTitlePage} +{% + \vglue\web@aboveTopTitleSkip + \noindent\makebox[\linewidth]{% + \parbox{\hproportionwebuniversity\linewidth}% + {\bfseries\color{\webuniversity@color}\ifeqforpaper\large\fi + \centering\webuniversity}}\par\ifeqforpaper\else\minimumskip\fi + \vspace{\stretch{1}}% + \noindent\makebox[\linewidth]{% + \parbox{\hproportionwebtitle\linewidth}% + {\bfseries\color{\webtitle@color}\ifeqforpaper\Large\else + \large\fi\centering\webtitle}}\par\ifeqforpaper + \vspace{2\baselineskip}\else\minimumskip\vspace{\stretch{1}}\fi + \noindent\makebox[\linewidth]{% + \parbox{\hproportionwebauthor\linewidth}% + {\bfseries\color{\webauthor@color}\ifeqforpaper + \large\fi\centering\webauthor}} +} +\newcommand{\allowHeadingsTitlePage}{\let\web@titlepagestyle\@gobble} +\def\web@titlepagestyle#1{#1} +\newcommand{\coverpagemargin}{1in} +\newcommand{\maketitlepreamble} +{% + \web@titlepagestyle{\thispagestyle{empty}}% + \ifeqforpaper\if@centertitlepage + \begingroup + \if@centertitlepagefull + \@tempdima=\coverpagemargin + \else + \@tempdima\paperwidth + \advance\@tempdima-\textwidth + \@tempdima=.5\@tempdima + \edef\coverpagemargin{\the\@tempdima}% + \fi + \@tempdimb\paperwidth + \addtolength{\@tempdimb}{-2\@tempdima}% + \edef\fullscreenwidth{\the\@tempdimb}% + \linewidth\fullscreenwidth + \textwidth\fullscreenwidth + \hfuzz\linewidth + \setlength{\oddsidemargin}{\coverpagemargin-1in}% + \setlength{\evensidemargin}{\oddsidemargin}% + \marginparsep=0pt + \marginparwidth=0pt + \parindent0pt + \fi\fi +} +\newcommand{\maketitlepostamble} +{% + \newpage + \ifeqforpaper\if@centertitlepage\endgroup\fi\fi +} +\newcommand{\web@maketitle} +{% + \maketitlepreamble + \ifeqforpaper\vspace*{2\baselineskip}\else + \vbox to\titleauthorproportion\textheight\bgroup\fi + \topTitlePage + \ifeqforpaper\else\egroup\fi % end of \vbox for title and author + \ifx\optionalpagematter\@empty\par\else + \begingroup\par + \aboveOPMvspace + \noindent\parbox{\linewidth}{\optionalpagematter}% + \par\endgroup\fi + \vspace{\stretch{1}} + \ifx\web@directory@option\web@YES\web@directory@hook\webdirectory\fi + \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}} + \vfill\noindent\begingroup + \trailerFontSize\titlepageTrailer\par\endgroup + \maketitlepostamble +} +\let\web@save@maketitle\maketitle +\let\maketitle\web@maketitle +\newcommand{\makeinlinetitle} +{% + \noindent\makebox[\linewidth][c]{% + \bfseries\color{\webtitle@color}\webtitle} + \makebox[\linewidth]{% + \shortstack[l]{\strut\\ + \makebox[0pt][l]{\webuniversity}\\ + \makebox[0pt][l]{% + \@ifundefined{aeb@prepared} + {\@date}{\aeb@prepared}% + }% + }\hfill + \shortstack[c]{\strut\webauthor\\\strut}\hfill + \shortstack[r]{\strut\makebox[0pt][r]{\thewebemail}\\ + \makebox[0pt][r]{% + \@ifundefined{aeb@talksite}{\webversion} + {\ifx\aeb@talksite\@empty\webversion + \else\aeb@talksite\fi}% + }% + }% + }% + \bigskip +} +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} +\ifeqforpaper\else + \clubpenalty=50 + \widowpenalty=50 +\fi +\let\web@save@listi\@listi +\let\web@save@listii\@listii +\let\web@save@listiii\@listiii +\let\web@save@normalsize\normalsize +\let\web@save@partopsep\partopsep +\let\web@normalsize\normalsize +\def\w@ppp#1#2#3{#1\p@ \@plus#2\p@ \@minus#3\p@} +\def\w@zpp#1#2{\z@ \@plus#1\p@ \@minus#2\p@} +\def\tightsettings@z{% + \setlength\partopsep{\w@ppp{2}{}{}} % unchanged + \def\web@listi{\leftmargin\leftmargini + \parsep \w@ppp{2}{2}{}% 4+2-1 + \topsep \w@ppp{2}{1}{}% 8+2-4 + \itemsep\w@ppp{2}{1}{}}% 4+2-1 + \let\@listi\web@listi + \let\@listI\@listi + \@listi + \def\web@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep \w@zpp{}{}% 4+2-1 + \parsep \w@zpp{}{}% 2+1-1 + \itemsep \parsep}% unchanged + \def\web@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep \w@zpp{}{}% 2+1-1 + \parsep \z@ % unchanged + \partopsep \w@ppp{}{}{}% unchanged + \itemsep \topsep}% unchanged + \let\@listii\web@listii + \let\@listiii\web@listiii + \renewcommand\web@normalsize{% + \@setfontsize\normalsize\@xpt\@xiipt + \abovedisplayskip \w@ppp{5}{3}{}% 10+2-5 + \abovedisplayshortskip \w@zpp{3}{0}% unchanged + \belowdisplayshortskip \w@ppp{3}{2}{2}% 6+3-3 + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}% + \let\normalsize\web@normalsize + \normalsize +} +\def\tightsettings@i{% + \setlength\partopsep{\w@ppp{2}{}{}}% 3+1-1 + \def\web@listi{\leftmargin\leftmargini + \parsep \w@ppp{2.5}{2}{}% 4.5+2-1 + \topsep \w@ppp{4.5}{1.5}{2.5}% 9+3-5 + \itemsep \w@ppp{2.5}{}{}}% 4.5+2-1 + \let\@listi\web@listi + \let\@listI\@listi + \@listi + \def\web@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep \w@ppp{}{}{}% 4.5+2-1 + \parsep \w@ppp{}{}{}% 2+1-1 + \itemsep \parsep}% unchanged + \def\web@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep \w@ppp{}{}{}% 2+1-1 + \parsep \z@ % unchanged + \partopsep \w@ppp{}{}{}% unchanged + \itemsep \topsep}% unchanged + \let\@listii\web@listii + \let\@listiii\web@listiii + \renewcommand\web@normalsize{% + \@setfontsize\normalsize\@xipt{13.6}% + \abovedisplayskip \w@ppp{5.5}{3}{3}% 11+3-6 + \abovedisplayshortskip \w@zpp{}{0}% unchanged + \belowdisplayshortskip \w@ppp{4}{2}{2}% 6.5+3.5-3 + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}% + \let\normalsize\web@normalsize + \normalsize +} +\def\tightsettings@ii{% + \setlength\partopsep{\w@ppp{3}{2}{2}}% unchanged + \def\web@listi{\leftmargin\leftmargini + \parsep \w@ppp{3}{2}{}% 5+2.5-1 + \topsep \w@ppp{5}{2}{3}% 10+4-6 + \itemsep\w@ppp{2.5}{}{}}% 5+2.5-1 + \let\@listi\web@listi + \let\@listI\@listi + \@listi + \def\web@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep \w@ppp{2.5}{}{}% 5+2.5-1 + \parsep \w@ppp{2}{}{}% 2.5+1-1 + \itemsep \parsep}% unchanged + \def\web@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep \w@ppp{1.5}{}{}% 2.5+1-1 + \parsep \z@ % unchanged + \partopsep \w@ppp{}{}{}% unchanged + \itemsep \topsep}% unchanged + \let\@listii\web@listii + \let\@listiii\web@listiii + \renewcommand\web@normalsize{% + \@setfontsize\normalsize\@xiipt{14.5}% + \abovedisplayskip \w@ppp{6}{1.5}{3.5}% 12+3-7 + \abovedisplayshortskip \w@zpp{3}{0}% unchanged + \belowdisplayshortskip \w@ppp{4}{2}{2}% 6.5+3.5-3 + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}% + \let\normalsize\web@normalsize + \normalsize +} +\def\tightsettings{\@ifstar{\ifeqforpaper\else\tightsettings@cont\fi} + {\tightsettings@cont}} +\def\tightsettings@cont{\let\web@tight\web@YES + \ifcase\@ptsize + \tightsettings@z\or + \tightsettings@i\or + \tightsettings@ii + \fi +} +\def\restorenormalsettings{\let\web@tight\web@NO + \let\@listi\web@save@listi + \let\@listii\web@save@listii + \let\@listiii\web@save@listiii + \let\normalsize\web@save@normalsize + \let\partopsep\web@save@partopsep + \let\@listI\@listi + \@listi + \normalsize +} +\def\navibarTextColor#1{\def\@menucolor{#1}} +\def\@menucolor{webblue} +\def\navibarBgColor#1{\def\@menuBgColor{#1}} +\def\@menuBgColor{webgray} +\newcommand{\newNaviIcon}[1][\@empty] +{% + \ifx#1m\let\web@next\@newNaviIconMenu + \else\ifx#1j\let\web@next\@newNaviIconJS + \else\ifx#1l\let\web@next\@newNaviIconLink + \else\ifx#1\@empty\let\web@next\@newNaviIconLink + \else\let\web@next\relax + \PackageWarning{web}{\string\newNaviIcon: unknown first parameter} + \fi\fi\fi\fi\web@next +} +\def\web@colorbox@w@transparency#1{% + \ifx#1\@empty\setlength{\fboxrule}{0pt}\let\aeb@next\fbox\else + \def\aeb@next{\colorbox{#1}}\fi\aeb@next} +\newcommand{\@newNaviIconMenu}[6][I] +{% + \def#2{{\setlength{\fboxsep}{0pt}\def\@pdfhighlight{/#1}% + \Acrobatmenu{#6}{\web@colorbox@w@transparency{\@menuBgColor}{% + \parbox[c][#4][c]{#3}% + {\normalsize\centering\color{\@menucolor}#5}}}% + }}% +} +\newcommand{\@newNaviIconJS}[6][I] +{% + \ifcase\eq@drivernum + \def#2{{\setlength{\fboxsep}{0pt}% + \pdf@rect{\web@colorbox@w@transparency{\@menuBgColor}% + {\parbox[c][#4][c]{#3}% + {\normalsize\centering\color{\@menucolor}#5}}}% + \literalps@out{% + [ /Rect [pdf@llx pdf@lly pdf@urx pdf@ury] + /Border [ 0 0 0 ]/H/#1\space + /Action <> + /Subtype/Link + /ANN pdfmark}% + }}% + \or + \def#2{{\setlength{\fboxsep}{0pt}% + \leavevmode\pdfstartlink + attr {/Border [0 0 0 ] /H/#1}% + user{ /Subtype /Link + /A << /S/JavaScript/JS (#6) >>}% + \web@colorbox@w@transparency{\@menuBgColor}% + {\parbox[c][#4][c]{#3}% + {\normalsize\centering\color{\@menucolor}#5}}% + \pdfendlink + }}% + \or + \def#2{{\setlength{\fboxsep}{0pt}% + \@pdfm@mark{bann + << + /Border [0 0 0 ] /H/#1\space + /Subtype /Link + /A << /S/JavaScript/JS (#6) >> + >>}\web@colorbox@w@transparency{\@menuBgColor}% + {\parbox[c][#4][c]{#3}% + {\normalsize\centering\color{\@menucolor}#5}}% + \@pdfm@mark{eann}% + }}% + \fi +} +\newcommand{\@newNaviIconLink}[6][I] +{% + \def#2{{\setlength{\fboxsep}{0pt}\def\@pdfhighlight{/#1}% + #6{\web@colorbox@w@transparency{\@menuBgColor}% + {\parbox[c][#4][c]{#3}% + {\normalsize\centering\color{\@menucolor}#5}}}% + }}% +} +\let\insertwebtoc\relax +\def\insert@webtoc{\web@TOC\ } +\def\web@TocText{Toc} +\newNaviIcon[l]{\web@TOC}{\web@nb@width}{\web@nb@height} + {\footnotesize\web@TocText}{\hyperlink{webtoc}} +\newcommand\navibariconWidth[1]{\def\web@nb@width{#1}} +\newcommand\navibariconHeight[1]{\def\web@nb@height{#1}} +\navibariconWidth{34pt}\navibariconHeight{10pt} +\@newNaviIconMenu{\web@FirstPage}{\web@nb@width}{\web@nb@height} + {\web@FirstPageText}{FirstPage} +\def\web@FirstPageText{$\blacktriangleleft\blacktriangleleft$} +\@newNaviIconMenu{\web@LastPage}{\web@nb@width}{\web@nb@height} + {\web@LastPageText}{LastPage} +\def\web@LastPageText{$\blacktriangleright\blacktriangleright$} +\@newNaviIconMenu{\web@PrevPage}{\web@nb@width}{\web@nb@height} + {\web@PrevPageText}{PrevPage} +\def\web@PrevPageText{$\blacktriangleleft$} +\@newNaviIconMenu{\web@NextPage}{\web@nb@width}{\web@nb@height} + {\web@NextPageText}{NextPage} +\def\web@NextPageText{$\blacktriangleright$} +\@newNaviIconMenu{\web@GoBack}{\web@nb@width}{\web@nb@height} + {\footnotesize\web@back}{GoBack} +\@newNaviIconMenu{\web@GoBackDoc}{\web@nb@width}{\web@nb@height} + {$\blacktriangleleft$\ \footnotesize\web@doc}{GoBackDoc} +\@newNaviIconMenu{\web@GoForwardDoc}{\web@nb@width}{\web@nb@height} + {\footnotesize\web@doc\ \normalsize$\blacktriangleright$} + {GoForwardDoc} +\@newNaviIconMenu{\web@FS}{\web@nb@width}{\web@nb@height} + {\footnotesize\web@FSText}{FullScreen} +\def\web@FSText{FS} +\@newNaviIconMenu{\web@GoToPage}{\web@nb@width}{\web@nb@height} + {\footnotesize\web@GoToPageText}{GoToPage} +\def\web@GoToPageText{Page...} +\newcommand\web@navigationbar{% +\hfil\bfseries\footnotesize +\insertwebtoc +\web@FirstPage\ +\web@LastPage\ +\web@PrevPage\ +\web@NextPage\ +\web@GoBack +\hfil} +\newcommand{\panelgroupWidth}[1]{% + \global\let\chkpanelgroup\web@chkpanelgroup + \def\web@pg@width{#1}} +\newcommand{\panelgroupHeight}[1]{% + \global\let\chkpanelgroup\web@chkpanelgroup + \def\web@pg@height{#1}} +\newcommand{\panelgroupSep}[1]{% + \global\let\chkpanelgroup\web@chkpanelgroup + \def\web@pg@sep{#1}} +\@newNaviIconMenu{\panel@FirstPage}{\web@pg@width}{\web@pg@height} + {\web@FirstPageText}{FirstPage} +\@newNaviIconMenu{\panel@LastPage}{\web@pg@width}{\web@pg@height} + {\web@LastPageText}{LastPage} +\@newNaviIconMenu{\panel@PrevPage}{\web@pg@width}{\web@pg@height} + {\web@PrevPageText}{PrevPage} +\@newNaviIconMenu{\panel@NextPage}{\web@pg@width}{\web@pg@height} + {\web@NextPageText}{NextPage} +\@newNaviIconMenu{\panel@GoBack}{\web@pg@width}{\web@pg@height} + {\footnotesize\web@back}{GoBack} +\@newNaviIconMenu{\panel@GoBackDoc}{\web@pg@width}{\web@pg@height} + {$\blacktriangleleft$\,\footnotesize\web@doc}{GoBackDoc} +\@newNaviIconMenu{\panel@GoForwardDoc}{\web@pg@width}{\web@pg@height} + {\footnotesize\web@doc\,\normalsize$\blacktriangleright$} + {GoForwardDoc} +\@newNaviIconMenu{\panel@Close}{\web@pg@width}{\web@pg@height} + {\footnotesize Close}{Close} +\def\web@CloseText{Close} +\@newNaviIconMenu{\panel@FS}{\web@pg@width}{\web@pg@height} + {\footnotesize\web@FSText}{FullScreen} +\@newNaviIconMenu{\panel@GoToPage}{\web@pg@width}{\web@pg@height} + {\footnotesize\web@GoToPageText}{GoToPage} +\newcommand{\web@chkpanelgroup}{\bgroup + \setlength{\@tempdima}{\web@pg@width+\web@pg@width+\web@pg@sep}% + \ifdim\@tempdima>\@panelwidth\PackageError{web}{Width of + \string\panelNaviGroup\space is wider than the panel}{}\else + \xdef\panelNavigroupWidth{\the\@tempdima}\fi + \egroup\global\let\chkpanelgroup\@empty +} +\panelgroupWidth{28pt}\panelgroupHeight{15pt} +\panelgroupSep{2pt} +\newcommand{\panelrowsep}{1pt} +\newcommand\panelNaviGroup{\chkpanelgroup + \parbox[c]{\panelNavigroupWidth}{% + \offinterlineskip + \panelIconGroup + }% +} +\newcommand{\panelIconGroup}{% + \panel@FirstPage\hfill\panel@LastPage\\[\panelrowsep] + \panel@PrevPage\hfill\panel@NextPage\\[\panelrowsep] + \panel@GoBack\hfill\panel@Close +} +\let\ins@NaviBar\@empty +\newcommand\insNaviBar{\@ifstar{\@gdefInsNaviBar}{\@defInsNaviBar}} +\def\@gdefInsNaviBar#1{\gdef\ins@NaviBar{#1}} +\def\@defInsNaviBar#1{\def\ins@NaviBar{#1}} +\newcommand\insNaviBarOff{\global\let\ins@NaviBar\@empty} +\def\web@ifOnThisPage#1#2{\ifnum\c@page=\@thispage\relax + #1\else#2\fi} +\newcommand{\insertnaviiconhere}[1] +{% + \xdef\@thispage{\the\c@page}% + \def\web@insToRight{% + \ifeqforpaper\makebox[0pt][l]{\ifdim\marginparsep>0pt\relax + \hspace{\marginparsep}\else\ \fi#1}\else + \makebox[0pt][l]{% + \ifnum\@panelconfig=2\relax + \hspace{\@panelsep}\else + \hspace{\@Rightmargin}\fi + \makebox[0pt][r]{#1}}\fi + }\expandafter\rheader\expandafter + {\expandafter\web@ifOnThisPage + \expandafter{\web@rightheader\web@insToRight}% + {\web@defaultrightheader}}% +} +\def\insertnaviiconhereafter#1{\def\web@insToLeft{% + \ifeqforpaper\makebox[0pt][r]{#1\ifdim\marginparsep>0pt\relax + \hspace{\marginparsep}\else\ \fi}\else + \makebox[0pt][r]{\makebox[0pt][l]{#1}% + \ifnum\@panelconfig=1\relax + \hspace{\@panelsep}\else + \hspace{\@Leftmargin}\fi}\fi + }\expandafter\lheader\expandafter + {\expandafter\web@insToLeft\web@lhead}} +\def\removehereaftericon{\lheader{\aeb@setmarks}} +\let\defaultpageheader\removehereaftericon +\newcommand\ArrowUp[1] +{% + \normalsize\ifeqforpaper + \setlength{\fboxsep}{6pt}\else + \setlength{\fboxsep}{4pt}\fi + \raisebox{\depth-\fboxsep}[0pt][0pt]{% + #1{\web@colorbox@w@transparency{\web@directionIconBgColor}% + {\textcolor{\web@directionIconTextColor}{$\bigl\Uparrow$}}}}% +} +\newcommand\ArrowDown[1] +{% + \normalsize\ifeqforpaper + \setlength{\fboxsep}{6pt}\else + \setlength{\fboxsep}{4pt}\fi + \raisebox{\depth-\fboxsep}[0pt][0pt]{% + #1{\web@colorbox@w@transparency{\web@directionIconBgColor}% + {\textcolor{\web@directionIconTextColor}{$\bigl\Downarrow$}}}}% +} +\def\directionIconTextColor#1{\def\web@directionIconTextColor{#1}} +\def\web@directionIconTextColor{webblue} +\def\directionIconBgColor#1{\def\web@directionIconBgColor{#1}} +\def\web@directionIconBgColor{webgray} +\def\web@defaultrightheader{\ifnum\value{page}=1\relax\else\thepage\fi} +\let\web@headerhook\@empty +\let\web@headerprivate\@empty +\let\web@footerhook\@empty +\let\web@footerprivate\@empty +\def\lheader#1{\gdef\web@lhead{#1}} +\def\cheader#1{\gdef\web@chead{#1}} +\def\rheader#1{\gdef\web@rightheader{#1}} +\lheader{\rightmark} +\cheader{} +\rheader{\web@defaultrightheader} +\def\lfooter#1{\gdef\web@lfoot{#1}} +\def\cfooter#1{\gdef\web@cfoot{#1}} +\def\rfooter#1{\gdef\web@rfoot{#1}} +\lfooter{}\rfooter{} +\newcommand{\placeScreenNavibar}{% + \ifweb@navibar\web@navigationbar\else + \ins@NaviBar\global\let\ins@NaviBar\@empty\fi} +\cfooter{\placeScreenNavibar} +\newcommand{\clearHeaders}{% + \let\web@lhead@save\web@lhead + \let\web@chead@save\web@chead + \let\web@rightheader@save\web@rightheader + \let\web@lhead\@empty\let\web@chead\@empty + \let\web@rightheader\@empty} +\newcommand{\restoreHeaders}{% + \let\web@lhead\web@lhead@save + \let\web@chead\web@chead@save + \let\web@rightheader\web@rightheader@save} +\newcommand{\clearFooters}{% + \let\web@lfoot@save\web@lfoot + \let\web@cfoot@save\web@cfoot + \let\web@rfoot@save\web@lfoot + \let\web@lfoot\@empty\let\web@cfoot\@empty + \let\web@rfoot\@empty} +\newcommand{\restoreFooters}{% + \let\web@lfoot\web@lfoot@save + \let\web@cfoot\web@cfoot@save + \let\web@rfoot\web@rfoot@save} +\def\headerformat#1{\def\web@headerhook{#1}} +\headerformat{} +\def\footerformat#1{\def\web@footerhook{#1}} +\footerformat{} +\let\webheadwrapper\@empty +\let\webfootwrapper\@empty +\newcommand{\headWrapper}[1]{\def\webheadwrapper##1{#1}} +\newcommand{\footWrapper}[1]{\def\webfootwrapper##1{#1}} +\newcommand{\ps@webheadings} +{% + \renewcommand{\@oddhead}{\webheadwrapper{% + \normalfont\ifeqforpaper\else\footnotesize\fi + \web@headerprivate\web@headerhook\web@lhead\hfil\web@chead\hfil + \web@rightheader}} + \renewcommand{\@evenhead}{\@oddhead} + \renewcommand{\@oddfoot}{\webfootwrapper{% + \normalfont\ifeqforpaper\else\footnotesize\fi + \web@footerprivate\web@footerhook\web@lfoot\hfil + \web@cfoot\hfil\web@rfoot}} + \renewcommand{\@evenfoot}{\@oddfoot} +} +\renewcommand{\sectionmark}[1]{% + \markboth{}{\web@section\ \thesection: #1}} +\newcommand{\noHeadersOnSectionPage}{% + \gdef\web@headerpolicy{% + \expandafter\aeb@gettopmark\topmark{}{}% + \expandafter\aeb@getbotmark\botmark{}{}% + \ifx\aeb@topmark\aeb@botmark\rightmark\fi + }% +} +\noHeadersOnSectionPage +\newcommand{\headersOnSectionPage}{% + \gdef\web@headerpolicy{\rightmark}% +} +\def\aeb@gettopmark#1#2{\def\aeb@topmark{#2}} +\def\aeb@getbotmark#1#2{\def\aeb@botmark{#2}} +\def\aeb@setmarks{\web@headerpolicy} +\lheader{\aeb@setmarks} +\AtEndOfPackage{\pagestyle{webheadings}} +\newcommand{\sectionColor}[1]{\def\web@sectionsColorOld{#1} + \def\aeb@sectioncolor{#1}} +\sectionColor{blue} +\def\web@inputsectiondefs{\InputIfFileExists{websec.def}{} + {\PackageError{web}{Cannot find the file websec.def}{}} +} +\ifweb@sectioning\expandafter\web@inputsectiondefs\fi +\def\aebwritelastpage{% + \immediate\write\@auxout{\string\expandafter\string\gdef + \string\csname\space aebLastPage\string\endcsname{\arabic{page}}}% +} +\AtEndDocument{% + \clearpage\addtocounter{page}{-1}\aebwritelastpage + \addtocounter{page}{1}} +\def\useFullWidthForPaper{\ifeqforpaper + \setlength{\textwidth}{\paperwidth-2in} + \setlength{\textheight} + {\paperheight-2in-\footskip-\topmargin-\headheight-\headsep} + \oddsidemargin=0pt + \evensidemargin=0pt + \marginparsep=0pt + \marginparwidth=0pt + \fi +} +\def\maxtextscreentext{% + \iftemplatesforpaper\else\ifeqforpaper + \ifnum\@usetemplates=1 + \ifnum\@panelconfig=1 % left panel + \setlength{\oddsidemargin}% + {\@panelwidth+\@panelsep-1in}% + \setlength{\textwidth}% + {\paperwidth-\@panelwidth-\@panelsep-% + \marginparwidth-\marginparsep}% + \else\ifnum\@panelconfig=2 % right panel + \setlength{\oddsidemargin}{0in}% + \setlength{\textwidth}% + {\paperwidth-\@panelwidth-\@panelsep-% + \oddsidemargin-\marginparwidth-\marginparsep}% + \else + \useFullWidthForPaper + \fi\fi\fi + \fi\fi +} +\newcommand{\centertextonpage}{% + \ifeqforpaper\AtBeginDocument{\web@centertextonpage}\fi} +\def\web@centertextonpage{% + \setlength{\oddsidemargin}{\paperwidth-\textwidth-2in}% + \oddsidemargin=.5\oddsidemargin + \evensidemargin=\oddsidemargin +} +\definecolor{webgreen}{rgb}{0,.5,0} +\definecolor{webbrown}{rgb}{.6,0,0} +\definecolor{webyellow}{rgb}{0.98,0.92,0.73} +\definecolor{webgray}{rgb}{.753,.753,.753} +\definecolor{webgrey}{rgb}{.753,.753,.753} +\definecolor{webblue}{rgb}{0,0,.8} +\definecolor{wheat}{rgb}{.96, .87, .70} +\definecolor{oldlace}{rgb}{.992, .96187, .902} +\definecolor{snow}{rgb}{1, .98, .98} +\definecolor{ghostwhite}{rgb}{.973, .973, 1} +\definecolor{cornsilk}{rgb}{1, .973, .863} +\definecolor{honeydew}{rgb}{.941, 1, .941} +\definecolor{lavenderdark}{rgb}{.8, .8, .9529411} +\definecolor{lavender}{rgb}{.902, .902, .980} +\definecolor{lightblue}{rgb}{.8, .8, .95} +\definecolor{lightgray}{rgb}{.827, .827, .827} +\definecolor{lightsteelblue}{rgb}{.690, .769, .871} +\definecolor{lightturquoise}{rgb}{.686, .933, .933} +\definecolor{darkgreen}{rgb}{.0, .392, .0} +\definecolor{yellowgreen}{rgb}{.604, .804, .196} +\definecolor{vlightblue}{rgb}{.88, .85, .95} +\definecolor{khaki}{rgb}{.741, .718, .42} +\ifx\web@latextoc\web@YES\ifx\web@bullets\web@YES% + \@ifundefined{chapter} {% + \renewcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{1.2em}} + }{% + \renewcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{1.2em}} + }% +\fi\fi +\def\tocColor#1{\def\web@tocColor{#1}\def\aeb@toccolor{#1}} +\tocColor{blue} +\newcommand{\allowHeadingsTocPage}{\let\web@Tocpagestyle\@gobble} +\def\web@Tocpagestyle#1{#1} +\let\web@latextoc@save\tableofcontents +\ifx\web@bullets\web@YES +\def\tableofcontents +{% + \global\let\insertwebtoc\insert@webtoc + \def\contentsname{\web@toc}% + \pdfbookmark[1]{\web@toc}{toc}% + \web@Tocpagestyle{\thispagestyle{empty}}% + \markright{{\normalfont\small \web@toc\ (\web@continued)}}% + \@ifundefined{sectionToc}{% + \begin{center}\hypertarget{webtoc}{}% + \normalfont\bfseries\Large\color{\web@tocColor}% + \contentsname + \end{center} + }{\sectionToc{\web@toc}}\par + \ifx\web@latextoc\web@YES + \@starttoc{toc}% LaTeX toc listing with page numbers + \else + \noindent\webtableofcontents + \fi + \newpage +} +\else + \PackageInfo{web}{No Bullets Requested} + \def\tableofcontents{% + \begingroup + \def\contentsname{\web@toc}% + \let\web@save@mkboth\@mkboth + \def\@mkboth{\protect\hypertarget{webtoc}{}\web@save@mkboth}% + \ifx\web@finalDot\@empty\else + \def\numberline##1{\hb@xt@\@tempdima{##1.\hfil}}\fi + \web@latextoc@save + \endgroup\newpage + } + \renewcommand\subsubsection{\renewcommand{\@seccntformat}[1]{% + \@nameuse{the##1}\web@finalDot\enspace} + \@startsection{subsubsection}{3}{\z@}% + {-2ex\@plus -1ex \@minus -.2ex}{.5ex \@plus .2ex}% + {\noindent\normalfont\normalsize\bfseries}} + \renewcommand*{\thesubsubsection} + {\thesubsection.\arabic{subsubsection}} +\fi +\def\widestNumber#1{% + \def\widest@Number{#1\ }} +\widestNumber{0.0.} +\newcommand{\tocIndent}[1]{\def\toc@indent{#1}} +\tocIndent{20pt} +\def\tocIndentByNumber#1{{% + \settowidth{\@tempdima}{\normalfont\textbf{#1\ }}% + \xdef\toc@indent{\the\@tempdima}% +}} +\tocIndentByNumber{00.} +\let\tocindent\tocIndent +\let\tocindentByNumber\tocIndentByNumber +\def\webtableofcontents +{% + \begingroup + \global\let\isChapter\web@NO + \parskip0pt\parindent\toc@indent\relax + \settowidth{\@tempdima}{\normalfont + \textbf{\widest@Number}}% + \@tempdimb\@tempdima + \advance\@tempdimb by\parindent + \edef\web@subsubSecIndent{\the\@tempdimb}% + \def\par{\endgraf\leftskip=0pt}% + \let\numberline\web@numberline + \let\contentsline\web@contentsline + \def\web@section##1##2##3{\web@parse##1\\% + \web@toc@section{##1}{##2}{##3}}% + \def\web@subsection##1##2##3{\web@parse##1\\% + \web@toc@subsection{##1}{##2}{##3}}% + \def\web@subsubsection##1##2##3{\web@parse##1\\% + \web@toc@subsubsection{##1}{##2}{##3}}% + \def\web@part##1##2##3{\web@toc@part{##1}{##2}{##3}}% + \def\web@chapter##1##2##3{\web@parse##1\\% + \web@toc@chapter{##1}{##2}{##3}}% + \@starttoc{toc}% + \setlength{\@tempdimb}{\ifx\isChapter\web@YES + \parindent+\web@subsubSecIndent\else\web@subsubSecIndent\fi}% + \leftskip\@tempdimb + \par\endgroup +} +\def\web@numberline#1{\makebox[0pt]{#1\enspace}}% +\def\web@contentsline#1#2#3#4{% + \@nameuse{web@#1}{#2}{#3}{#4}}% +\def\web@parse#1#2#3\\{% + \def\web@title{#3}\def\numberline{#2}}% +\def\web@toc@part#1#2#3{\par\noindent + {\bfseries\hyperlink{#3}{#1}}\par\smallskip} +\def\web@toc@chapter#1#2#3{\global\let\isChapter\web@YES + \par\mbox{}{\bfseries\makebox[0pt][r]{\hyperlink{#3}% + {\numberline\web@finalDot}\space}\web@title}\par\smallskip +} +\def\web@toc@section#1#2#3{\penalty-500\par + \hspace*{\if\isChapter y\parindent\else0pt\fi}\mbox{}{\bfseries + \ifx\numberline\@empty + \@ifundefined{d@DingToc}{\hyperlink{#3}{\web@title}} + {% + \ifx\d@DingToc\@empty + \hyperlink{#3}{\web@title}% + \else + \if\aeb@use@section@numbers0\relax + \makebox[0pt][r]{\color{\d@DingTocColor}% + \d@DingToc\space}\hyperlink{#3}{\web@title}% + \else + \hyperlink{#3}{\web@title}% + \fi + \fi + }% + \else + \makebox[0pt][r]{\hyperlink{#3}{% + \numberline\web@finalDot}\space}\web@title + \fi}\endgraf +}% +\def\web@toc@subsection#1#2#3{\par + \setlength{\@tempdimb}{\ifx\isChapter\web@YES + \parindent+\@tempdima\else\@tempdima\fi}% + \penalty-50 \hspace*{\@tempdimb}\mbox{}{\bfseries + \ifx\numberline\@empty + \@ifundefined{dd@DingToc}{\hyperlink{#3}{\web@title}} + {% + \ifx\dd@DingToc\@empty + \hyperlink{#3}{\web@title}% + \else + \makebox[0pt][r]{\color{\dd@DingTocColor}% + \dd@DingToc\space}\hyperlink{#3}{\web@title}% + \fi + }% + \else + \makebox[0pt][r]{\makebox[\@tempdima][l]% + {\hyperlink{#3}{\numberline\web@finalDot}}}\web@title + \fi}\endgraf +}% +\def\web@toc@subsubsection#1#2#3{% + \def\numberline{\strut$\bullet$}% + \setlength{\@tempdimb}{\ifx\isChapter\web@YES + \parindent+\web@subsubSecIndent\else\web@subsubSecIndent\fi}% + \leftskip\@tempdimb\noindent\unskip\mbox{}\penalty-50 + \@ifundefined{ddd@DingToc}{}{% + \if\aeb@use@section@numbers0\relax\ifx\ddd@DingToc\@empty\else + \def\numberline{\color{\ddd@DingTocColor}\strut\ddd@DingToc}% +\fi\fi}\hyperlink{#3}{\numberline}~\web@title\ +}% +\let\web@textTemplate\@empty +\newcommand{\@AddToTextTemplate}{\g@addto@macro\web@textTemplate} +\newcommand{\template}[2][] +{% + \ifweb@allowtemplates + \def\web@argi{#1}\ifx\web@argi\@empty + \xdef\web@template@opt@args{\web@addtotemplateArgs}% + \else\xdef\web@template@opt@args{\web@addtotemplateArgs,#1}% + \fi\gdef\web@template{#2}% + \fi +} +\let\web@template\@empty +\def\addtotemplateArgs#1{\gdef\web@addtotemplateArgs{#1}} +\def\cleartemplateArgs{\global\let\web@addtotemplateArgs=\@empty} +\let\web@addtotemplateArgs\@empty +\let\text@scaletype\@empty +\newcommand{\textBgColor}[1]{\gdef\web@textBgColor{#1}} +\let\web@textBgColor\@empty +\let\listAddToTemplates\@empty +\newcommand{\AddToTemplate}[1] +{% + \global\w@csarg\let{eqTmpl#1}\web@YES + {\toks@=\expandafter{\listAddToTemplates}% + \xdef\listAddToTemplates{\the\toks@\noexpand\\{#1}}}% + \ifweb@allowtemplates + \@AddToTextTemplate{% + \w@csarg\ifx{eqTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@textX,0){\@nameuse{#1}}% + \fi + }% + \else + \w@csarg\ifx{#1}\BGColorAndGraphic + \@AddToTextTemplate{% + \w@csarg\ifx{eqTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@textX,0){\@nameuse{#1}}% + \fi + }% + \fi + \w@csarg\ifx{#1}\BGColorAndGraphicFullWidth + \@AddToTextTemplate{% + \w@csarg\ifx{eqTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@textX,0){\@nameuse{#1}}% + \fi + }% + \fi + \fi +} +\newcommand\placeTemplateInLayer[2][webTextBG]{% + \@ifpackageloaded{aeb_pro} + {\@ifundefined{xBld}{\PackageWarning{web} + {The uselayers option + of aeb_pro is\MessageBreak required with + \string\placeTemplateInLayer}} + {\def\b@webTextLayer{\xBld[#2]{#1}}% + \def\e@webTextLayer{\eBld}}}% + {\PackageWarning{web}{\string\placeTemplateInLayer\space + requires the\MessageBreak aeb_pro package}}% +} +\let\b@webTextLayer\@empty \let\e@webTextLayer\@empty +\newcommand{\BGColorAndGraphic}{% + \b@webTextLayer\web@colorbox@w@transparency{\web@textBgColor}% + {% + \parbox[b][\paperheight]{\textscreenwidth}% + {% + \ifx\web@template\@empty + \hfill\vfill + \else + \hfuzz=1pt\vfuzz=1pt\expandafter + \includegraphics\expandafter[\web@template@opt@args,% + width=\textscreenwidth,height=\paperheight]% + {\web@template} + \fi + }% + }\e@webTextLayer +} +\AddToTemplate{BGColorAndGraphic} +\let\web@panelTemplate\@empty +\newcommand{\@AddToPanelTemplate}{\g@addto@macro\web@panelTemplate} +\let\listAddToPanelTemplates=\@empty +\newcommand{\AddToPanelTemplate}[1] +{% + \global\w@csarg\let{eqPanTmpl#1}\web@YES + {\toks@=\expandafter{\listAddToPanelTemplates}% + \xdef\listAddToPanelTemplates{\the\toks@\noexpand\\{#1}}}% + \ifweb@allowtemplates + \@AddToPanelTemplate{% + \w@csarg\ifx{eqPanTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@panelX,0){\@nameuse{#1}}\fi + }% + \else + \w@csarg\ifx{#1}\stdPanelBG + \@AddToPanelTemplate{% + \w@csarg\ifx{eqPanTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@panelX,0){\@nameuse{#1}}\fi + }% + \fi + \w@csarg\ifx{#1}\stdbldpanel + \@AddToPanelTemplate{% + \w@csarg\ifx{eqPanTmpl#1}\web@YES + \fboxsep=0pt\setlength{\unitlength}{1pt}% + \put(\@panelX,0){\@nameuse{#1}}\fi + }% + \fi + \fi +} +\newcommand{\paneltemplate}[2][] +{% + \ifweb@allowtemplates\def\web@argi{#1}% + \ifx\web@argi\@empty + \edef\web@paneltemplate@opt@args{% + \web@addtopaneltemplateArgs}% + \else + \edef\web@paneltemplate@opt@args{% + \web@addtopaneltemplateArgs,#1}% + \fi\gdef\web@paneltemplate{#2}% + \fi +} +\let\web@paneltemplate\@empty +\def\addtopaneltemplateArgs#1{\gdef\web@addtopaneltemplateArgs{#1}} +\def\clearpaneltemplateArgs{% + \global\let\web@addtopaneltemplateArgs=\@empty} +\let\web@addtopaneltemplateArgs=\@empty +\let\panel@scaletype\@empty +\newcommand\panelsep[1]{\bgroup + \setlength\@tempdima{#1}% + \xdef\@panelsep{\the\@tempdima}\egroup} +\panelsep{10bp} +\def\panelSep{\@panelsep} +\newcommand{\panelwidth}[1]{% + \let\web@next\relax + \iftemplatesforpaper\else\ifnum\@panelconfig>0 + \ifnum\@panelconfig=1 % left panel + \ifx\web@layout\web@YES + \addtolength{\textwidth}{\@panelwidth}% + \addtolength{\textwidth}{\@Rightmargin}% + \fi + \addtolength{\textwidth}{\@panelsep}% + \addtolength{\oddsidemargin}{-\@panelsep}% + \addtolength{\evensidemargin}{-\@panelsep}% + \addtolength{\textscreenwidth}{\@panelwidth}% + \fi + \ifnum\@panelconfig=2 % panel right + \ifx\web@layout\web@YES + \addtolength{\textwidth}{\@panelwidth}% + \addtolength{\textwidth}{\@Leftmargin}% + \fi + \addtolength{\textwidth}{\@panelsep}% + \addtolength{\textscreenwidth}{\@panelwidth}% + \fi + \setlength{\@panelwidth}{#1}% + \ifdim\@panelwidth<\web@minpanelwidth + \setlength{\@panelwidth}{\web@minpanelwidth}\fi + \def\web@next{\InitLayout}% + \fi\fi\web@next +} +\newcommand{\panelBgColor}[1]{\gdef\web@panelBgColor{#1}} +\let\web@panelBgColor\@empty +\newcommand\placePanelTemplateInLayer[2][webPanelBG]{% + \@ifpackageloaded{aeb_pro} + {\@ifundefined{xBld}{\PackageWarning{web} + {The uselayers option + of aeb_pro is\MessageBreak required with + \string\placePanelTemplateInLayer}} + {\def\b@webPanelLayer{\xBld[#2]{#1}}% + \def\e@webPanelLayer{\eBld}}}% + {\PackageWarning{web}{\string\placePanelTemplateInLayer\space + requires the\MessageBreak aeb_pro package}}% +} +\let\b@webPanelLayer\@empty \let\e@webPanelLayer\@empty +\newcommand\stdPanelBG +{% + \b@webPanelLayer\web@colorbox@w@transparency{\web@panelBgColor}% + {\parbox[b][\paperheight]{\@panelwidth}% + {\ifx\web@paneltemplate\@empty\hfill\vfill\else + \hfuzz=1pt\vfuzz=1pt\expandafter + \includegraphics\expandafter[\web@paneltemplate@opt@args,% + width=\@panelwidth,height=\paperheight]% + {\web@paneltemplate}\fi}}\e@webPanelLayer +} +\AddToPanelTemplate{stdPanelBG} +\newcommand{\buildpanel}[1] +{% + \gdef\stdbldpanel + {% + \parbox[b][\paperheight]{\@panelwidth}% + {% + \normalsfcodes\normalfont\normalsize + \spaceskip=0pt\xspaceskip=0pt + \par\medskip\vfil + \centering#1% + \par\medskip\vfil + }% + }% +} +\let\stdbldpanel\@empty +\AddToPanelTemplate{stdbldpanel} +\newcommand{\useStandardPanel}{% + \buildpanel{% + \web@panel@top + \par\vspace{\stretch{1}}% + \web@panel@middle + \par\vspace{\stretch{1}}% + \web@panel@bottom + }% +} +\newcommand{\panelTop}[1]{\def\web@panel@top{#1}} +\panelTop{} +\newcommand{\panelMiddle}[1]{\def\web@panel@middle{#1}} +\panelMiddle{} +\newcommand{\panelBottom}[1]{\def\web@panel@bottom{#1}} +\panelBottom{\panelNaviGroup} +\newcommand{\ClearTextTemplate} +{% + \global\let\web@textBgColor\@empty + \global\let\web@template\@empty +} +\newcommand{\ClearPanelTemplate} +{% + \global\let\web@panelBgColor\@empty + \global\let\web@paneltemplate\@empty +} +\newcommand{\ClearBuildPanel} + {\global\let\stdbldpanel\@empty} + +\newcommand{\ClearAllTemplates} +{% + \ClearTextTemplate + \ClearPanelTemplate +} +\newcommand{\ClearTextTemplateBuffer} + {\global\let\web@textTemplate\@empty} +\newcommand{\ClearPanelTemplateBuffer} + {\global\let\web@panelTemplate\@empty} +\newcommand{\saveElements}[1] +{% + \begingroup + \global\w@csarg\let{web@SaveTmpls#1}\@empty + \toks@={}% + \def\web@addtoSaveToks##1{% + \edef\web@let{\global\expandafter + \let\expandafter\noexpand\csname#1##1\endcsname=% + \expandafter\noexpand\csname##1\endcsname}% + \web@let + \edef\web@SaveTmpls{\the\toks@\noexpand\\{##1}% + \expandafter\noexpand\csname#1##1\endcsname}% + \toks@=\expandafter{\web@SaveTmpls}% + }% + \web@addtoSaveToks{web@textBgColor}% + \web@addtoSaveToks{web@template}% + \web@addtoSaveToks{stdbldpanel}% + \web@addtoSaveToks{web@panelBgColor}% + \web@addtoSaveToks{web@paneltemplate}% + \w@csarg\xdef{web@SaveTmpls#1}{\the\toks@}% + \endgroup +} +\newcommand{\saveClearElements}[1]{% + \saveElements{#1}\ClearAllTemplates\ClearBuildPanel +} +\newcommand{\restoreElements}[1]{% + \ClearAllTemplates\ClearBuildPanel + \begingroup + \toks@=\expandafter{\csname web@SaveTmpls#1\endcsname}% + \def\\##1##2{\global\w@csarg\let{##1}=##2}\the\toks@ + \endgroup +} +\newcommand{\disableScreens}[1] +{% + \begingroup + \toks@=\expandafter{\listAddToTemplates}% + \toks2={}% + \def\\##1{\w@csarg\ifx{eqTmpl##1}\web@YES + \disableTemplate{##1}% + \xdef\web@saveAddTo{\the\toks2 \noexpand\\{##1}}% + \toks2=\expandafter{\web@saveAddTo}\fi}% + \the\toks@ + \endgroup + \w@csarg\let{web@DisabledTmpls#1}\web@saveAddTo +} +\newcommand{\restoreScreens}[1] +{% + \begingroup + \toks@=\expandafter{\csname web@DisabledTmpls#1\endcsname}% + \def\\##1{\enableTemplate{##1}}\the\toks@ + \endgroup +} +\newcommand{\disablePanels}[1] +{% + \begingroup + \toks@ = \expandafter{\listAddToPanelTemplates}% + \toks2 = {}% + \def\\##1{\w@csarg\ifx{eqPanTmpl##1}\web@YES + \disablePanelTemplate{##1}% + \xdef\web@saveAddTo{\the\toks2 \noexpand\\{##1}}% + \toks2 =\expandafter{\web@saveAddTo}\fi}% + \the\toks@ + \endgroup + \global\w@csarg\let{web@DisabledPanelTmpls#1}\web@saveAddTo +} +\newcommand{\restorePanels}[1] +{% + \begingroup + \toks@=\expandafter{\csname web@DisabledPanelTmpls#1\endcsname}% + \def\\##1{\enablePanelTemplate{##1}}\the\toks@ + \endgroup +} +\newcommand{\disableTemplate}[1]{{% + \global\w@csarg\let{eqTmpl#1}\web@NO}} +\newcommand{\enableTemplate}[1]{{% + \global\w@csarg\let{eqTmpl#1}\web@YES}} +\newcommand{\disablePanelTemplate}[1]{{% + \global\w@csarg\let{eqPanTmpl#1}\web@NO}} +\newcommand{\enablePanelTemplate}[1]{{% + \global\w@csarg\let{eqPanTmpl#1}\web@YES}} +\let\fullscreenwidthadj\@empty +\def\web@leftMargAdj{0pt} +\def\web@rightMargAdj{0pt} +\def\calculatefullwidth{% + \ifeqforpaper + \let\fullscreenwidthadj\@empty + \else + \ifnum\@panelconfig=1\relax % leftpanel + \bgroup + \setlength{\@tempdima}{-\@panelwidth-\@panelsep+\@Leftmargin}% + \xdef\web@leftMargAdj{\the\@tempdima}% + \setlength{\@tempdima}{-\@panelwidth-\@panelsep+\@Rightmargin}% + \xdef\web@rightMargAdj{\the\@tempdima}% + \egroup + \def\fullscreenwidthadj{\hspace{\web@leftMargAdj}}% + \fi + \fi +} +\newcommand{\makeFullwidthhead}{% + \global\let\web@save@oddhead\@oddhead + \renewcommand{\@oddhead}{\fullscreenwidthadj + \hbox to\fullscreenwidth{\normalfont\footnotesize + \web@headerhook\web@lhead\hfil\web@chead\hfil + \web@rightheader}\hss}% +} +\newcommand{\restoreSavedHead}{% + \global\let\@oddhead\web@save@oddhead + \let\web@save@oddhead\@empty +} +\def\webNotPaneledWarning{% + The Fullwidthtext environment is valid only\MessageBreak + for a paneled document, ignoring this\MessageBreak + environment} +\newenvironment{Fullwidthtext}{% + \ifnum\@panelconfig=0\relax + \PackageWarning{web}{\webNotPaneledWarning}% + \let\web@next\relax + \else + \def\web@next{% + \enableTemplate{BGColorAndGraphicFullWidth}% + \list{}{% + \setlength{\textwidth}{\fullscreenwidth}% + \setlength{\linewidth}{\fullscreenwidth}% + \setlength{\itemindent}{0pt}\setlength{\itemsep}{0pt}% + \setlength{\topsep}{0pt}\setlength{\parsep}{0pt}% + \setlength{\listparindent}{\parindent}% + \setlength{\leftmargin}{\web@leftMargAdj}% + \setlength{\rightmargin}{-\web@rightMargAdj}% + }\item\relax}% + \fi\web@next +}{% + \ifnum\@panelconfig=0\relax\let\web@next\relax\else + \def\web@next{\endlist\newpage + \disableTemplate{BGColorAndGraphicFullWidth}}% + \fi\web@next +} +\newcommand{\pushToFullWidthPage}{% + \ifnum\@panelconfig>0\relax + \disableScreens{gofullwidth}% + \disablePanels{gofullwidth}% + \makeFullwidthhead + \let\web@save@footwrapper\webfootwrapper + \def\webfootwrapper{\fullscreenwidthadj + \makebox[\fullscreenwidth]}% + \fi + \begin{Fullwidthtext} +} +\newcommand{\popFromFullWidthPage}{% + \end{Fullwidthtext} + \ifnum\@panelconfig>0\relax + \restoreScreens{gofullwidth}% + \restorePanels{gofullwidth}% + \restoreSavedHead + \let\webfootwrapper\web@save@footwrapper + \fi +} +\def\addtofullwidthtemplateArgs#1{% + \gdef\web@addtofullwidthtemplateArgs{#1}} +\def\clearfullwidthtemplateArgs{% + \global\let\web@addtofullwidthtemplateArgs\@empty} +\let\web@addtofullwidthtemplateArgs\@empty +\newcommand{\fullwidthBgColor}[1]{\gdef\web@fullwidthBgColor{#1}} +\let\web@fullwidthBgColor\@empty +\let\web@fullwidthtemplate\@empty +\newcommand{\fullwidthtemplate}[2][] +{% + \ifweb@allowtemplates + \def\web@arg{#1}\ifx\web@argi\@empty + \xdef\web@fullwidthtemplate@opt@args + {\web@addtofullwidthtemplateArgs}% + \else + \xdef\web@fullwidthtemplate@opt@args + {\web@addtofullwidthtemplateArgs,#1}% + \fi\gdef\web@fullwidthtemplate{#2}% + \fi +} +\newcommand\BGColorAndGraphicFullWidth +{% + \put(-\@textX,0){% + \web@colorbox@w@transparency{\web@fullwidthBgColor}% + {% + \parbox[b][\paperheight]{\paperwidth}% + {% + \ifx\web@fullwidthtemplate\@empty + \hfill\vfill + \else + \hfuzz=1pt\vfuzz=1pt + \expandafter\includegraphics\expandafter + [\web@fullwidthtemplate@opt@args,% + width=\paperwidth,height=\paperheight]% + {\web@fullwidthtemplate}% + \fi + }% + }% + }% +} +\AddToTemplate{BGColorAndGraphicFullWidth} +\disableTemplate{BGColorAndGraphicFullWidth} +\ifnum\@usetemplates>0 + \ifnum\@panelconfig>0 + \AtBeginDocument{% + \AddToShipoutPicture{\web@textTemplate\web@panelTemplate}} + \else + \AtBeginDocument{\AddToShipoutPicture{\web@textTemplate}} + \fi +\fi +\raggedbottom +\ifx\webpro@loaded\web@YES\expandafter\loadwebpro\fi +\endinput +%% +%% End of file `web.sty'. diff --git a/texmf-dist/tex/latex/acrotex/webpro.def b/texmf-dist/tex/latex/acrotex/webpro.def index dcd4a2f9..5043dbae 100644 --- a/texmf-dist/tex/latex/acrotex/webpro.def +++ b/texmf-dist/tex/latex/acrotex/webpro.def @@ -1,876 +1,876 @@ -%% -%% This is file `webpro.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% web.dtx (with options: `copyright,webpro') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Web package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% History: Noel Vaillant began developing a better web.sty -%% based on my earlier published web.sty. Many thanks -%% to him for starting me off. -%%--------------------------------------------------------- -\RequirePackage{pifont} -\newcommand{\DeclareDocInfo}[1]{\setkeys{aebDocInfo}{#1}% - \ifx\web@talkdate@value\@empty\else\let\webversion\webtalkdate\fi} -\@onlypreamble\DeclareDocInfo -\define@key{aebDocInfo}{title}[]{\title{#1}} -\define@key{aebDocInfo}{author}[]{\author{#1}} -\define@key{aebDocInfo}{university}[]{\university{#1}} -\define@key{aebDocInfo}{email}[]{\email{#1}} -\define@key{aebDocInfo}{talksite}[]{\talksite{#1}} -\define@key{aebDocInfo}{talkdate}[]{\talkdate{#1}} -\define@key{aebDocInfo}{talkdateLabel}[Presented:]{\talkdateLabel{#1}} -\define@key{aebDocInfo}{version}[]{\version{#1}} -\define@key{aebDocInfo}{versionLabel}[Version]{\versionLabel{#1}} -\define@key{aebDocInfo}{subject}[]{\subject{#1}} -\define@key{aebDocInfo}{keywords}[]{\keywords{#1}} -\define@key{aebDocInfo}{copyrightyears}[]{\copyrightyears{#1}} -\define@key{aebDocInfo}{prepared}[]{\prepared{#1}} -\define@key{aebDocInfo}{preparedLabel}[]{\preparedLabel{#1}} -\define@key{aebDocInfo}{Title}[]% - {\@ifpackageloaded{aebxmp}{\Title{#1}}{}} -\define@key{aebDocInfo}{authors}[]% - {\@ifpackageloaded{aebxmp}{\Authors{#1}}{}} -\define@key{aebDocInfo}{Subject}[]% - {\@ifpackageloaded{aebxmp}{\Subject{#1}}{\subject{#1}}} -\define@key{aebDocInfo}{Keywords}[]% - {\@ifpackageloaded{aebxmp}{\Keywords{#1}}{\keywords{#1}}} -\define@key{aebDocInfo}{lang}[]% - {\@ifpackageloaded{aebxmp}{\metaLang{#1}}{}} -\define@key{aebDocInfo}{copyrightStatus}[]% - {\@ifpackageloaded{aebxmp}{\copyrightStatus{#1}}{}} -\define@key{aebDocInfo}{copyrightNotice}[]% - {\@ifpackageloaded{aebxmp}{\copyrightNotice{#1}}{}} -\define@key{aebDocInfo}{copyrightInfoURL}[]% - {\@ifpackageloaded{aebxmp}{\copyrightInfoURL{#1}}{}} -\define@key{aebDocInfo}{authortitle}[]% - {\@ifpackageloaded{aebxmp}{\authortitle{#1}}{}} -\define@key{aebDocInfo}{descriptionwriter}[]% - {\@ifpackageloaded{aebxmp}{\descriptionwriter{#1}}{}} -\define@key{aebDocInfo}{customProperties}[]% - {\@ifpackageloaded{aebxmp}{\customProperties{#1}}{}} -\newcommand{\DeclarePageLayout}[1]{\save@prtscr - \setkeys{web@pl}{topmargin,headheight,marginparsep,% - marginparwidth,marginparpush,webfootskip}% - \protected@edef\web@temp{\noexpand\setkeys{web@pl}{#1}}% - \web@temp\save@prtscr - \ifx\web@pl@screensize\@empty\else - \expandafter\screensize\web@pl@screensize\fi - \ifx\web@pl@margins\@empty\else - \expandafter\margins\web@pl@margins\fi - \ifeqforpaper\else - \ifdim\@Leftmargin<\@Rightmargin - \ifdim\marginparwidth>\@Leftmargin - \setlength{\marginparwidth} - {\@Leftmargin-2\marginparsep}% - \fi - \else - \ifdim\marginparwidth>\@Rightmargin - \setlength{\marginparwidth} - {\@Rightmargin-2\marginparsep}% - \fi - \fi - \fi - \ifeqforpaper\else - \ifdim\@Bottommargin<\web@footskip\relax\PackageError{web}{% - Error in the value of the webfootskip key\MessageBreak - of the \string\DeclarePageLayout\space command.\MessageBreak - The bottom margin must be larger then\MessageBreak - the value of webfootskip}{% - Increase the size of the bottom margin,\MessageBreak - or decrease the value of webfootskip.}\else - \fi - \fi -} -\@onlypreamble\DeclarePageLayout -\define@key{web@pl}{screensize}[]{\def\web@pl@screensize{#1}} -\let\web@pl@screensize\@empty -\define@key{web@pl}{margins}[]{\def\web@pl@margins{#1}} -\let\web@pl@margins\@empty -\define@choicekey+{web@pl}{design}[\val\nr]{designi,designii,% - designiii,designiv,designv,designvi,designvii,designviii,designix}{% - \ifcase\nr\relax - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{3.736in}{4.67in}\or - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{5in}\or - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{5in}{6in}\or - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4in}{5in}\or - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{6in}\or - \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.17in}{4.67in}\or - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{7.5in}{10in}\or - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6.67in}\or - \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6in}\fi - }{\PackageWarning{webpro}{% - Bad choice for design, use designi--designvix. Try again}} -\define@choicekey+{web@pl}{screensizeOf}[\val\nr]{designi,designii,% - designiii,designiv,designv,designvi,designvii,designviii,designix}{% - \ifcase\nr\relax - \screensize{3.736in}{4.67in}\or - \screensize{4.5in}{5in}\or - \screensize{5in}{6in}\or - \screensize{4in}{5in}\or - \screensize{4.5in}{6in}\or - \screensize{4.17in}{4.67in}\or - \screensize{7.5in}{10in}\or - \screensize{3.75in}{6.67in}\or - \screensize{3.75in}{6in}\fi - }{\PackageWarning{webpro}{% - Bad choice for screensizeOf, use designi--designvix. Try again}} -\define@key{web@pl}{headheight}[8pt]{\def\websetheadheight{#1}} -\define@key{web@pl}{topmargin}[\prtscr{\the\topmargin}{8pt}]{% - \edef\web@argi{#1}\ifx\web@argi\@empty - \edef\web@argi{\prtscr{\the\topmargin}{8pt}}\fi - \ifeqforpaper - \setlength{\topmargin}{\web@argi}% - \else - \setlength{\web@Topmargin}{\web@argi}% - \fi} -\define@key{web@pl}{textwidth}[345pt]{\setlength{\textwidth}{#1}} -\define@key{web@pl}{textheight}[43\baselineskip]% - {\setlength{\textheight}{#1}} -\define@key{web@pl}{oddsidemargin}[63pt]% - {\setlength{\oddsidemargin}{#1}} -\define@key{web@pl}{evensidemargin}[63pt]% - {\setlength{\evensidemargin}{#1}} -\define@key{web@pl}{marginparsep}[\prtscr{\the\marginparsep}{11pt}]{% - \edef\web@argi{#1}\ifx\web@argi\@empty - \edef\web@argi{\prtscr{\the\marginparsep}{11pt}}\fi - \setlength{\marginparsep}{\web@argi}} -\define@key{web@pl}{marginparwidth}% - [\prtscr{\the\marginparwidth}{.25in}]{% - \edef\web@argi{#1}\ifx\web@argi\@empty - \edef\web@argi{\prtscr{\the\marginparwidth}{.25in}}\fi - \setlength{\marginparwidth}{\web@argi}} -\define@key{web@pl}{marginparpush}[5pt]{% - \setlength{\marginparpush}{#1}} -\define@key{web@pl}{webfootskip}[4pt]{% - \def\web@footskip{#1}} -\define@key{web@pl}{footskip}[30pt]{\setlength{\footskip}{#1}} -\define@key{web@pl}{panelwidth}[1in]{\panelwidth{#1}} -\define@key{web@pl}{panelsep}[10pt]{\panelsep{#1}} -\define@key{web@pl}{additionalheadsep}[0pt]% - {\def\web@additionalheadsep{#1}} -\renewcommand{\topTitlePage} -{% - \vglue\web@aboveTopTitleSkip - \noindent\makebox[\linewidth][\halignuniversity]{\parbox{% - \hproportionwebuniversity\linewidth}% - {\sectionUniversity{\webuniversity}}}% - \par\ifeqforpaper\else\minimumskip\fi - \vspace{\stretch{1}}% - \noindent\makebox[\linewidth][\haligntitle]% - {\parbox{\hproportionwebtitle\linewidth}% - {\sectionTitle{\webtitle}}}% - \par\ifeqforpaper\vspace{2\baselineskip}\else - \minimumskip\vspace{\stretch{1}}\fi - \noindent\makebox[\linewidth][\halignauthor]% - {\parbox{\hproportionwebauthor\linewidth}% - {\sectionAuthor{\webauthor}}} - \par\ifeqforpaper\vspace{2\baselineskip}\else - \minimumskip\vspace{\stretch{1}}\fi -} -\newcommand{\topTitlePageProportion}[1]{\def\titleauthorproportion{#1}} -\renewcommand{\titlepageTrailer} -{% - \webtpTrailerWrapper{\makebox[\web@tp@linewidth]{% - \parbox{\web@tp@linewidth}{% - \ifx\tpTrailer@textcolor\@empty\else - \color{\tpTrailer@textcolor}\fi\web@tpTrailer@formatting - \maketitle@trailer@ul\hfill\maketitle@trailer@ur\\ - \maketitle@trailer@ll\hfill\maketitle@trailer@lr - }}}% -} -\def\maketitle@trailer@ul{\web@copyright\ \web@copyright@symbol\ - \webcopyrightyears\ \thewebemail} -\def\maketitle@trailer@ll{\aeb@Prepared} -\def\maketitle@trailer@ur{\aeb@talksite} -\def\maketitle@trailer@lr{\webversion} -\let\webtpTrailerWrapper\relax -\let\web@tpTrailerBgColor\@empty -\let\web@tpTrailerBorderColor\@empty -\let\tpTrailer@textcolor\@empty -\let\web@tpTrailer@graphic\@empty -\let\web@tpTrailer@namedgraphic\@empty -\let\web@tpTrailer@formatting\@empty -\def\web@tpTrailer@raise{0pt} -\def\web@tp@linewidth{\linewidth} -\define@key{tpTrailer}{ul}{\def\maketitle@trailer@ul{#1}} -\define@key{tpTrailer}{ll}{\def\maketitle@trailer@ll{#1}} -\define@key{tpTrailer}{ur}{\def\maketitle@trailer@ur{#1}} -\define@key{tpTrailer}{lr}{\def\maketitle@trailer@lr{#1}} -\define@key{tpTrailer}{textColor}{\def\tpTrailer@textcolor{#1}} -\define@key{tpTrailer}{bgColor}{\def\web@tpTrailerBgColor{#1}} -\define@key{tpTrailer}{borderColor}{\def\web@tpTrailerBorderColor{#1}} -\define@key{tpTrailer}{fboxsep}{\def\web@tpTrailerfboxsep{#1}} -\define@key{tpTrailer}{fboxrule}{\def\web@tpTrailerfboxrule{#1}} -\define@key{tpTrailer}{graphic}{\def\web@tpTrailer@graphic{#1}} -\define@key{tpTrailer}{namedgraphic}{% - \def\web@tpTrailer@namedgraphic{#1}} -\define@key{tpTrailer}{fontSize}{\renewcommand{\trailerFontSize}{#1}} -\define@key{tpTrailer}{formatting}{\def\web@tpTrailer@formatting{#1}} -\define@key{tpTrailer}{raise}{\def\web@tpTrailer@raise{#1}} -\newcommand{\DesignTitlePageTrailer}[1] -{% - \setkeys{tpTrailer}{fboxsep=3pt,fboxrule=.4pt}% - \setkeys{tpTrailer}{#1}% - \setlength{\fboxsep}{\web@tpTrailerfboxsep}% - \setlength{\fboxrule}{\web@tpTrailerfboxrule}% - \let\web@tp@graphic\web@NO - \ifx\web@tpTrailer@graphic\@empty - \ifx\web@tpTrailer@namedgraphic\@empty\else - \let\web@tp@graphic\web@YES\fi - \else\let\web@tp@graphic\web@YES\fi - \ifx\web@tp@graphic\web@NO\relax - \ifx\web@tpTrailerBgColor\@empty - \def\grfbox@spec##1{##1}% - \else - \ifx\web@tpTrailerBorderColor\@empty - \def\web@tp@linewidth{\linewidth-2\fboxsep}% - \def\grfbox@spec{\colorbox{\web@tpTrailerBgColor}}% - \else - \def\web@tp@linewidth{% - \linewidth-2\fboxsep-2\fboxrule}% - \def\grfbox@spec{\fcolorbox{\web@tpTrailerBorderColor}% - {\web@tpTrailerBgColor}}% - \fi - \fi - \def\webtpTrailerWrapper##1{\smash{\raisebox - {\web@tpTrailer@raise}{\grfbox@spec{##1}}}}% - \else - \@ifundefined{graphicxbox}{\begingroup - \gdef\webtpTrailerWrapper##1{% - \edef\web@tmp@opt{\ifx\web@tpTrailer@namedgraphic\@empty\else - name=\web@tpTrailer@namedgraphic,\fi}% - \def\web@tp@linewidth{\linewidth-2\fboxsep}% - \setbox0=\hbox{##1}% - \noindent\makebox[0pt][l]{% - \smash{\raisebox{-\dp0-\fboxsep+\web@tpTrailer@raise}{% - \expandafter\includegraphics\expandafter[\web@tmp@opt - width=\wd0+2\fboxsep,% - height=\dp0+\ht0+2\fboxsep]{\web@tpTrailer@graphic}}% - }}\kern\fboxsep\smash{% - \raisebox{\web@tpTrailer@raise}{\unhbox0\relax}}% - }% - \endgroup}{% - \xdef\grfbox@spec{% - \ifx\web@tpTrailerBorderColor\@empty - \noexpand\graphicxbox\else - \noexpand\fgraphicxbox{\web@tpTrailerBorderColor}\fi - \ifx\web@tpTrailer@namedgraphic\@empty\else - [name=\web@tpTrailer@namedgraphic]\fi}% - \gdef\webtpTrailerWrapper##1{% - \edef\web@tp@linewidth{% - \linewidth-2\fboxsep\ifx\web@tpTrailerBorderColor\@empty - \else-2\fboxrule\fi}% - \smash{\raisebox{\web@tpTrailer@raise}{% - \grfbox@spec{\web@tpTrailer@graphic}{##1}}}}% - }% - \fi -} -\renewcommand{\web@maketitle} -{% - \maketitlepreamble - \ifeqforpaper\vspace*{2\baselineskip}\else - \vbox to\titleauthorproportion\textheight\bgroup\fi - \topTitlePage - \ifeqforpaper\else\egroup\fi % end of \vbox for title and author - \begingroup\par - \aboveOPMvspace - \noindent\parbox{\linewidth}{\optionalpagematter}% - \par\endgroup - \par\vspace{\stretch{1}} - \ifx\web@directory@option\web@YES\web@directory@hook\webdirectory\fi - \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}} - \vfill\noindent\begingroup\trailerFontSize\titlepageTrailer - \par\endgroup - \maketitlepostamble -} -\let\web@maketitle@save\maketitle -\let\maketitle\web@maketitle -\def\preparedLabel#1{\def\web@revision{#1}} -\preparedLabel{Prepared:} -\def\prepared#1{\def\argi{#1}\ifx\argi\@empty - \else\def\aeb@prepared{#1}\fi} -\def\aeb@prepared{\@date} -\def\aeb@Prepared{\web@revision\ \aeb@prepared} -\def\talkdate#1{\gdef\web@talkdate@value{#1}% - \edef\webtalkdate{\ifx\web@talkdate@value\@empty - \else\noexpand\web@talkdatelabel\ #1\fi}} -\let\web@talkdate@value\@empty -\def\talkdateLabel#1{\def\web@talkdatelabel{#1}} -\talkdateLabel{Presented:} -\def\talksite#1{\def\aeb@talksite{#1}} -\talksite{} -\define@choicekey+{aebsection}{reset}[\val\nr]{font,all}{% - \ifcase\nr\relax - \aeb@reset@section@fonts\or - \aeb@reset@section@all\fi -}{\PackageWarning{webpro}{Bad choice for reset, permissible values - are font and all. Try again}} -\define@choicekey+{aebsection}{type}[\val\nr]{section,subsection,% - subsubsection,university,title,author,toc}% -{% - \edef\aeb@section@type{#1}% - \edef\aeb@section@typeIndex{\nr}% -}{}{} -\define@key{aebsection}{special}{% - \edef\aeb@temp@expand{% - \noexpand\XKV@cc+[\noexpand\val\noexpand\nr]{#1}}% - \aeb@temp@expand{shadow,framebox,colorbox,fcolorbox,frameboxfit,% - colorboxfit,fcolorboxfit,colorboxfitrule,custom,default}% -{% - \ifcase\nr\relax - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@shadowHead\or - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@frameboxHead\or - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@colorboxHead\or - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@fcolorboxHead\or - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@frameboxfitHead\or - \w@csarg\let{aeb@\aeb@section@type @special}\aeb@colorboxfitHead\or - \w@csarg\let{aeb@\aeb@section@type @special} - \aeb@fcolorboxfitHead\or - \w@csarg\let{aeb@\aeb@section@type @special} - \aeb@colorboxfitruleHead\or - \edef\aeb@temp{\noexpand\def\expandafter\noexpand - \csname aeb@\aeb@section@type @special\endcsname{\expandafter - \noexpand\csname aeb@\aeb@section@type @customHead\endcsname}}% - \aeb@temp\or - \w@csarg\let{aeb@\aeb@section@type @special}\@empty\fi -}{% - \PackageWarning{webpro}{Bad choice for special, permissible values - are shadow, framebox, colorbox, fcolorbox, custom and default. - Try again}}% -} -\@tfor\@@tmp:={section}{subsection}{subsubsection}% -{university}{title}{author}{toc}\do{% - \w@csarg\let{aeb@\@@tmp @special}\@empty} -\newcommand{\customSecHead}[1]{\def\aeb@section@customHead##1{#1}} -\newcommand{\customSubsecHead}[1]{\def\aeb@subsection@customHead##1{#1}} -\newcommand{\customSubsubsecHead}[1] - {\def\aeb@subsubsection@customHead##1{#1}} -\newcommand{\customUniversity}[1]{\def\aeb@university@customHead##1{#1}} -\newcommand{\customTitle}[1]{\def\aeb@title@customHead##1{#1}} -\newcommand{\customAuthor}[1]{\def\aeb@author@customHead##1{#1}} -\newcommand{\customToc}[1]{\def\aeb@toc@customHead##1{#1}} -\def\aeb@frameboxHead#1{% - \begingroup - \@tempdima=\linewidth - \advance\@tempdima-2\fboxsep - \advance\@tempdima-2\fboxrule - \edef\@@aeb@sectionframecolor - {\@nameuse{aeb@\aeb@section@type framecolor}}% - \edef\@@aeb@sectioncolor - {\@nameuse{aeb@\aeb@section@type color}}% - \setbox0\vbox{\hsize=\@tempdima#1}\color{\@@aeb@sectionframecolor}% - \framebox{\color{\@@aeb@sectioncolor}\copy0}% - \endgroup -} -\def\aeb@colorboxHead#1{% - \begingroup - \@tempdima=\linewidth - \advance\@tempdima-2\fboxsep - \setbox0\vbox{\hsize=\@tempdima#1}% - \edef\@@aeb@sectionbgcolor - {\@nameuse{aeb@\aeb@section@type bgcolor}}% - \colorbox{\@@aeb@sectionbgcolor}{\copy0}% - \endgroup -} -\def\aeb@fcolorboxHead#1{% - \begingroup - \@tempdima=\linewidth - \advance\@tempdima-2\fboxsep - \advance\@tempdima-2\fboxrule - \setbox0\vbox{\hsize=\@tempdima#1}% - \edef\@@aeb@sectionbgcolor - {\@nameuse{aeb@\aeb@section@type bgcolor}}% - \fcolorbox{\aeb@sectionframecolor}% - {\@@aeb@sectionbgcolor}{\copy0} - \endgroup -} -\def\aeb@frameboxfitHead#1{% - \begingroup - \edef\@@aeb@sectionframecolor - {\@nameuse{aeb@\aeb@section@type framecolor}}% - \edef\@@aeb@sectioncolor - {\@nameuse{aeb@\aeb@section@type color}}% - \vbox{\color{\@@aeb@sectionframecolor}% - \framebox{\color{\@@aeb@sectioncolor}#1}}% - \endgroup -} -\def\aeb@colorboxfitHead#1{% - \begingroup - \edef\@@aeb@sectioncolor - {\@nameuse{aeb@\aeb@section@type color}}% - \edef\@@aeb@sectionbgcolor - {\@nameuse{aeb@\aeb@section@type bgcolor}}% - \vbox{\colorbox{\@@aeb@sectionbgcolor}% - {\color{\@@aeb@sectioncolor}#1}}% - \endgroup -} -\def\aeb@fcolorboxfitHead#1{% - \begingroup - \edef\@@aeb@sectioncolor - {\@nameuse{aeb@\aeb@section@type color}}% - \edef\@@aeb@sectionbgcolor - {\@nameuse{aeb@\aeb@section@type bgcolor}}% - \edef\@@aeb@sectionframecolor - {\@nameuse{aeb@\aeb@section@type framecolor}}% - \vbox{\fcolorbox{\@@aeb@sectionframecolor}{\@@aeb@sectionbgcolor}% - {\color{\@@aeb@sectioncolor}#1}}% - \endgroup -} -\def\shadowhoffset#1{\def\aeb@shadowhoffset{#1}} -\shadowhoffset{.2ex} -\def\shadowvoffset#1{\def\aeb@shadowvoffset{#1}} -\shadowvoffset{-.2ex} -\def\aeb@shadowHead#1{% dps1 - \begingroup - \edef\@@aeb@sectionshadowcolor - {\@nameuse{aeb@\aeb@section@type shadowcolor}}% - \edef\@@aeb@sectioncolor - {\@nameuse{aeb@\aeb@section@type color}}% - \setbox0\vbox{\Shadowtrue\hsize=\linewidth #1}% - \wd0\z@\dp0\z@\relax\raisebox{\aeb@shadowvoffset}% - {\hbox to\z@{\kern\aeb@shadowhoffset% - \Shadowtrue\color{\@@aeb@sectionshadowcolor} - \box0\hss}}% - \setbox0\vbox{\Shadowfalse\hsize=\linewidth #1}\box0 - \endgroup -} -\define@key{aebsection}{usefont}{% - \w@csarg\def{aeb@\aeb@section@type @usefont}{\aeb@usefont#1}} -\@tfor\@@tmp:={section}{subsection}{subsubsection} -{university}{title}{author}{toc}\do{% - \w@csarg\let{aeb@\@@tmp @usefont}\@empty} -\def\aeb@usefont#1#2#3#4#5{\def\aeb@usefontargv{#5}% - \ifx\aeb@usefontargv\@empty - \def\aeb@next{\expandafter\@gobble\@gobbletwo}% - \else - \def\aeb@next{\expandafter\@gobbletwo\@gobbletwo}% - \fi - \fontencoding{#1}\fontfamily{#2}% - \fontseries{#3}\fontshape{#4}\ifx\aeb@usefontargv\@empty\else - \fontsize#5\fi\selectfont\aeb@next -} -\define@key{aebsection}{fontfamily}{% - \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% - \aeb@temp@expand{rmfamily,sffamily,ttfamily}{% - \w@csarg\def{aeb@\aeb@section@type @fontfamily}{\@nameuse{#1}}% -}{\PackageWarning{webpro}{Bad choice for fontfamily, permissible values - are rmfamily, sffamily and ttfamily. Try again}}% -} -\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% -{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontfamily}\aeb@defaultfamily} -\define@key{aebsection}{fontseries}{% - \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% - \aeb@temp@expand{bfseries,mdseries}{% - \w@csarg\def{aeb@\aeb@section@type @fontseries}{\@nameuse{#1}}% -}{\PackageWarning{webpro}{Bad choice for fontseries, permissible values - are bfseries and mdseries. Try again}}% -} -\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% -{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontseries}\bfseries} -\define@key{aebsection}{fontshape}{% - \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% - \aeb@temp@expand{upshape,itshape,scshape,slshape}{% - \w@csarg\def{aeb@\aeb@section@type @fontshape}{\@nameuse{#1}}% -}{\PackageWarning{webpro}{Bad choice for fontshape, permissible values - are upshape, itshape, scshape and slshape. Try again}}% -} -\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% -{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontshape}\upshape} -\define@key{aebsection}{fontsize}{% - \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% - \aeb@temp@expand{tiny,scriptsize,footnotesize,% - small,normalsize,large,Large,LARGE,huge,Huge}{% - \w@csarg\def{aeb@\aeb@section@type @fontsize}{\@nameuse{#1}}% -}{\PackageWarning{webpro}{Bad choice for fontsize, permissible values - are tiny, scriptsize, footnotesize, small, normalsize, - large, Large, LARGE, huge and Huge. Try again}}% -} -\@tfor\@@tmp:={{section}{\normalsize}}{{subsection}{\normalsize}}% -{{subsubsection}{\normalsize}}{{university}{\normalsize}}% -{{title}{\large}}{{author}{\normalsize}}{{toc}{\small}}\do{% - \expandafter\getargs\@@tmp - \edef\aeb@temp{\global\noexpand - \let\expandafter\noexpand\csname aeb@\aeb@argi @fontsize\endcsname - \expandafter\noexpand\aeb@argii}\aeb@temp -} -\define@key{aebsection}{halign}{% - \edef\aeb@temp@expand{% - \noexpand\XKV@cc+[\noexpand\val\noexpand\nr]{#1}}% - \aeb@temp@expand{l,c,r}{% - \ifcase\nr\relax - \w@csarg\let{aeb@\aeb@section@type @halign}\raggedright\or - \w@csarg\let{aeb@\aeb@section@type @halign}\centering\or - \w@csarg\let{aeb@\aeb@section@type @halign}\raggedleft\fi -}{\PackageWarning{webpro}{Bad choice for halign, permissible values - are l, c and r. Try again}}% -} -\@tfor\@@tmp:={\aeb@section@halign\raggedright} -{\aeb@subsection@halign\raggedright} -{\aeb@subsubsection@halign\raggedright} -{\aeb@university@halign\centering} -{\aeb@title@halign\centering}{\aeb@author@halign\centering}% -{\aeb@toc@halign\centering}\do -{% - \expandafter\getargs\@@tmp - \edef\aeb@temp{\noexpand\let\expandafter\noexpand\aeb@argi - \expandafter\noexpand\aeb@argii}\aeb@temp -} -\define@key{aebsection}{ding}{\if\aeb@use@section@numbers0 - \webtoksi=\expandafter{\expandafter\protect - \expandafter\web@sel@sec@col\expandafter{\aeb@section@type}#1\ }% - \w@csarg\edef{aeb@\aeb@section@type Num}##1{\the\webtoksi}% - \else\PackageWarning{webpro}{The ding key is not available with a - section numbering system,\MessageBreak - ignoring request for a ding.}\fi -} -\define@key{aebsection}{color}{% - \w@csarg\def{aeb@\aeb@section@type color}{#1}} -\define@key{aebsection}{ruleheight}{% - \w@csarg\def{aeb@\aeb@section@type ruleheight}{#1}} -\define@key{aebsection}{numdingcolor}{% - \w@csarg\def{aeb@\aeb@section@type numdingcolor}{#1}} -\def\aeb@sectioncolor{blue} -\def\aeb@subsectioncolor{\aeb@sectioncolor} -\def\aeb@subsubsectioncolor{\aeb@sectioncolor} -\def\aeb@sectionnumdingcolor{\aeb@sectioncolor} -\def\aeb@subsectionnumdingcolor{\aeb@sectioncolor} -\def\aeb@subsubsectionnumdingcolor{\aeb@sectioncolor} -\def\aeb@universitycolor{black} -\def\aeb@universitynumdingcolor{\aeb@universitycolor} -\def\aeb@titlecolor{blue} -\def\aeb@titlenumdingcolor{\aeb@titlecolor} -\def\aeb@authorcolor{black} -\def\aeb@authornumdingcolor{\aeb@authorcolor} -\def\aeb@toccolor{blue} -\def\aeb@tocnumdingcolor{\aeb@toccolor} -\define@key{aebsection}{framecolor}{% - \w@csarg\def{aeb@\aeb@section@type framecolor}{#1}} -\def\aeb@sectionframecolor{blue} -\def\aeb@subsectionframecolor{blue} -\def\aeb@subsubsectionframecolor{blue} -\def\aeb@universityframecolor{blue} -\def\aeb@titleframecolor{blue} -\def\aeb@authorframecolor{blue} -\def\aeb@tocframecolor{blue} -\define@key{aebsection}{bgcolor}{% - \w@csarg\def{aeb@\aeb@section@type bgcolor}{#1}} -\def\aeb@sectionbgcolor{cornsilk} -\def\aeb@subsectionbgcolor{cornsilk} -\def\aeb@subsubsectionbgcolor{cornsilk} -\def\aeb@authorbgcolor{cornsilk} -\def\aeb@titlebgcolor{cornsilk} -\def\aeb@authorbgcolor{cornsilk} -\def\aeb@tocbgcolor{cornsilk} -\define@key{aebsection}{shadowcolor}{% - \w@csarg\def{aeb@\aeb@section@type shadowcolor}{#1}} -\def\aeb@sectionshadowcolor{black} -\def\aeb@subsectionshadowcolor{black} -\def\aeb@subsubsectionshadowcolor{black} -\def\aeb@universityshadowcolor{black} -\def\aeb@titleshadowcolor{black} -\def\aeb@authorshadowcolor{black} -\def\aeb@tocshadowcolor{black} -\define@key{aebsection}{indent}[0pt]{% - \edef\web@argi{#1}\ifx\web@argi\@empty - \def\web@argi{0pt}\fi - \w@csarg\edef{aeb@\aeb@section@type @indent}{\web@argi}} -\def\aeb@section@indent{\z@} -\def\aeb@subsection@indent{\z@} -\def\aeb@subsubsection@indent{\z@} -\def\aeb@university@indent{\z@} -\def\aeb@title@indent{\z@} -\def\aeb@author@indent{\z@} -\def\aeb@toc@indent{\z@} -\define@key{aebsection}{beforeskip}{% - \w@csarg\def{aeb@\aeb@section@type @beforeskip}{#1}} -\def\aeb@section@beforeskip{-3ex\@plus -1ex \@minus-.2ex} -\def\aeb@subsection@beforeskip{-2.5ex\@plus -1ex \@minus -.2ex} -\def\aeb@subsubsection@beforeskip{-2ex\@plus -1ex \@minus -.2ex} -\def\aeb@university@beforeskip{-1ex\@plus -1ex \@minus-.2ex} -\def\aeb@title@beforeskip{-1ex\@plus -1ex \@minus-.2ex} -\def\aeb@author@beforeskip{-1ex\@plus -1ex \@minus-.2ex} -\def\aeb@toc@beforeskip{-3ex\@plus -1ex \@minus-.2ex} -\define@key{aebsection}{afterskip}{% - \w@csarg\def{aeb@\aeb@section@type @afterskip}{#1}} -\def\aeb@section@afterskip{1ex\@plus .2ex} -\def\aeb@subsection@afterskip{1ex\@plus .2ex} -\def\aeb@subsubsection@afterskip{.5ex\@plus .2ex} -\def\aeb@university@afterskip{1ex\@plus .2ex} -\def\aeb@title@afterskip{1ex\@plus .2ex} -\def\aeb@author@afterskip{1ex \@plus1fill} %{1ex\@plus .2ex} -\def\aeb@toc@afterskip{1ex\@plus .2ex} -\define@key{aebsection}{hproportion}{% - \w@csarg\def{hproportionweb\aeb@section@type}{#1}} -\define@key{aebsection}{xhalign}{% - \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% - \aeb@temp@expand{l,c,r}{% - \w@csarg\def{halign\aeb@section@type}{#1}% -}{\PackageWarning{webpro}{Bad choice for xhalign, permissible values - are l, c and r. Try again}}% -} -\def\halignuniversity{c} -\def\haligntitle{c} -\def\halignauthor{c} -\let\halignsection\relax -\let\halignsubsection\relax -\let\halignsubsubsection\relax -\let\haligntoc\relax -\define@key{aebToc}{tocName}{\tocName{#1}} -\define@key{aebToc}{tocNameCont}{\tocNameCont{#1}} -\def\aeb@reset@section@fonts{% - \normalfont\normalsize - \ifcase\aeb@section@typeIndex\relax - \let\aeb@section@usefont\@empty - \let\aeb@section@fontfamily\aeb@defaultfamily - \let\aeb@section@fontseries\bfseries - \let\aeb@section@fontshape\upshape - \let\aeb@section@fontsize\Large - \or - \let\aeb@subsection@usefont\@empty - \let\aeb@subsection@fontfamily\aeb@defaultfamily - \let\aeb@subsection@fontseries\bfseries - \let\aeb@subsection@fontshape\upshape - \let\aeb@subsection@fontsize\large - \or - \let\aeb@subsubsection@usefont\@empty - \let\aeb@subsubsection@fontfamily\aeb@defaultfamily - \let\aeb@subsubsection@fontseries\bfseries - \let\aeb@subsubsection@fontshape\upshape - \let\aeb@subsubsection@fontsize\normalsize - \fi -} -\def\aeb@reset@section@all{% - \aeb@reset@section@fonts - \ifcase\aeb@section@typeIndex\relax - \let\aeb@section@halign\raggedright - \def\aeb@sectioncolor{blue}% - \def\aeb@sectionshadowcolor{black}% - \let\aeb@section@special=\@empty - \def\aeb@section@beforeskip{-3ex\@plus -1ex \@minus-.2ex}% - \def\aeb@section@afterskip{1ex\@plus .2ex}% - \def\aeb@sectionframecolor{blue}% - \def\aeb@sectionframecolor{cornsilk}% - \or - \let\aeb@subsection@halign\raggedright - \def\aeb@subsectioncolor{blue}% - \def\aeb@subsectionshadowcolor{black}% - \let\aeb@subsection@special=\@empty - \def\aeb@subsection@beforeskip{-2.5ex\@plus-1ex \@minus-.2ex}% - \def\aeb@subsection@afterskip{1ex\@plus .2ex}% - \def\aeb@subsectionframecolor{blue}% - \def\aeb@subsectionframecolor{cornsilk}% - \or - \let\aeb@subsubsection@halign\raggedright - \def\aeb@subsubsectioncolor{blue}% - \def\aeb@subsubsectionshadowcolor{black}% - \let\aeb@subsubsection@special=\@empty - \def\aeb@subsubsection@beforeskip{-2ex\@plus-1ex \@minus-.2ex}% - \def\aeb@subsubsection@afterskip{1ex\@plus .2ex}% - \def\aeb@subsubsectionframecolor{blue}% - \def\aeb@subsubsectionframecolor{cornsilk}% - \fi -} -\renewcommand{\section}{% dps1 - \renewcommand{\@seccntformat}[1]{\aeb@sectionNum{##1}}% - \@startsection{section}{1}{\aeb@section@indent}% - {\aeb@section@beforeskip}{\aeb@section@afterskip}% - {\noindent\xdef\aeb@sectionpage{\the\c@page}% - \def\aeb@section@type{section}% - \aeb@section@usefont\aeb@section@fontfamily\aeb@section@fontseries - \aeb@section@fontshape\aeb@section@fontsize\aeb@section@halign - \color{\aeb@sectioncolor}\aeb@section@special}} -\renewcommand\subsection{% dps1 - \renewcommand{\@seccntformat}[1]{\aeb@subsectionNum{##1}}% - \@startsection{subsection}{2}{\aeb@subsection@indent}% - {\aeb@subsection@beforeskip}{\aeb@subsection@afterskip}% - {\noindent\def\aeb@section@type{subsection}% - \aeb@subsection@usefont\aeb@subsection@fontfamily - \aeb@subsection@fontseries\aeb@subsection@fontshape - \aeb@subsection@fontsize\aeb@subsection@halign - \color{\aeb@subsectioncolor}\aeb@subsection@special}} -\def\subsubDefaultDing#1{\def\web@subsubDefaultDing{{#1}}} -\subsubDefaultDing{\textrm\textbullet} -\renewcommand\subsubsection{% dps1 - \renewcommand{\@seccntformat}[1]{\aeb@subsubsectionNum{##1}}% - \@startsection{subsubsection}{3}{\aeb@subsubsection@indent}% - {\aeb@subsubsection@beforeskip}{\aeb@subsubsection@afterskip}% - {\noindent\def\aeb@section@type{subsubsection}% - \aeb@subsubsection@usefont\aeb@subsubsection@fontfamily - \aeb@subsubsection@fontseries\aeb@subsubsection@fontshape - \aeb@subsubsection@fontsize\aeb@subsubsection@halign - \color{\aeb@subsubsectioncolor}\aeb@subsubsection@special}} -\renewcommand*\thesection{% - \if\aeb@use@section@numbers1\arabic{section}\fi} -\renewcommand*\thesubsection{% - \if\aeb@use@section@numbers1\thesection.\arabic{subsection}\fi} -\renewcommand*{\thesubsubsection}{% - \if\aeb@use@section@numbers1% - \if@defaultsubsubding\web@subsubDefaultDing - \else\thesubsection.\arabic{subsubsection}\fi - \fi} -\newcommand{\sectionTitle}{\aeb@sectionTitle*} -\newcommand{\aeb@sectionTitle}{% - \renewcommand{\@seccntformat}[1]{\aeb@titleNum{##1}}% - \@startsection{section}{1}{\aeb@title@indent}% - {\aeb@title@beforeskip}{\aeb@title@afterskip}% - {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{title}% - \aeb@title@usefont\aeb@title@fontfamily\aeb@title@fontseries - \aeb@title@fontshape\aeb@title@fontsize\aeb@title@halign - \ifx\webtitle@color\@empty\else\color{\aeb@titlecolor}\fi - \aeb@title@special}} -\newcommand{\sectionAuthor}{\aeb@sectionAuthor*} -\newcommand{\aeb@sectionAuthor}{% - \renewcommand{\@seccntformat}[1]{\aeb@authorNum{##1}}% - \@startsection{section}{1}{\aeb@author@indent}% - {\aeb@author@beforeskip}{\aeb@author@afterskip}% - {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{author}% - \aeb@author@usefont\aeb@author@fontfamily\aeb@author@fontseries - \aeb@author@fontshape\aeb@author@fontsize\aeb@author@halign - \ifx\webauthor@color\@empty\else\color{\aeb@authorcolor}\fi - \aeb@author@special}} -\newcommand{\sectionUniversity}{\aeb@sectionUniversity*} -\newcommand{\aeb@sectionUniversity}{% - \renewcommand{\@seccntformat}[1]{\aeb@universityNum{##1}}% - \@startsection{section}{1}{\aeb@university@indent}% - {\aeb@university@beforeskip}{\aeb@university@afterskip}% - {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{university}% - \aeb@university@usefont\aeb@university@fontfamily - \aeb@university@fontseries\aeb@university@fontshape - \aeb@university@fontsize\aeb@university@halign - \ifx\webuniversity@color\@empty\else - \color{\aeb@universitycolor}\fi\aeb@university@special}} -\newcommand{\sectionToc}{\aeb@sectionToc*} -\newcommand{\aeb@sectionToc}{% - \renewcommand{\@seccntformat}[1]{\aeb@tocNum{##1}}% - \@startsection{section}{1}{\aeb@toc@indent}% - {\aeb@toc@beforeskip}{\aeb@toc@afterskip}% - {\hypertarget{webtoc}{}% - \xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{toc}% - \aeb@toc@usefont\aeb@toc@fontfamily - \aeb@toc@fontseries\aeb@toc@fontshape - \aeb@toc@fontsize\aeb@toc@halign - \ifx\aeb@toccolor\@empty\else - \color{\aeb@toccolor}\fi\aeb@toc@special}} -\def\save@prtscr{\global\let\prtscr@save\prtscr - \global\let\prtscr\prtscrA} -\def\restore@prtscr{\global\let\prtscr\prtscr@save} -\newcommand{\sectionLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=section,color=blue,ruleheight=1pt}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\newcommand{\subsectionLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=subsection,color=blue,ruleheight=1pt}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\newcommand{\subsubsectionLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=subsubsection,color=blue,ruleheight=1pt}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\newcommand{\universityLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=university}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\universityLayout{fontsize={\prtscrA{large}{normalsize}}} -\newcommand{\titleLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=title}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\titleLayout{fontsize={\prtscrA{Large}{normalsize}}} -\newcommand{\authorLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=author}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% - \aeb@temp\restore@prtscr} -\authorLayout{fontsize={\prtscrA{large}{normalsize}}} -\newcommand{\tocLayout}[1]{\save@prtscr - \setkeys{aebsection}{type=toc,color=\web@tocColor}% - \protected@edef\aeb@temp{\noexpand\setkeys{aebsection,aebToc}{#1}}% - \aeb@temp\restore@prtscr} -\tocLayout{fontsize=Large} -\newif\ifShadow \Shadowfalse % dps1 -\def\web@sel@sec@col#1{\ifShadow - \color{\@nameuse{aeb@#1shadowcolor}}\else - \color{\@nameuse{aeb@#1numdingcolor}}\fi} -\newcommand{\useSectionNumbers} -{% dps1 - \let\aeb@use@section@numbers1\relax - \def\aeb@sectionNum##1{\protect\web@sel@sec@col{section}% - \@nameuse{the##1}\web@finalDot\ }% - \def\aeb@subsectionNum##1{\protect\web@sel@sec@col{subsection}% - \@nameuse{the##1}\web@finalDot\ }% - \def\aeb@subsubsectionNum##1{% - \protect\web@sel@sec@col{subsubsection}% - \@nameuse{the##1}\if@defaultsubsubding\else\web@finalDot\fi\ }% - \def\sectionmark##1{\markright{##1}}% -} -\newcommand{\noSectionNumbers} -{% - \ifx\web@latextoc\web@YES - \PackageInfo{web}{The nobullets or latextoc option - taken,\MessageBreak - ignoring \string\noSectionNumbers}% - \else - \let\aeb@use@section@numbers0\relax - \let\aeb@sectionNum\@gobble - \let\aeb@subsectionNum\@gobble - \let\aeb@subsubsectionNum\@gobble - \fi -} -\useSectionNumbers -\define@key{aebcolordesign}{universityColor}{\universityColor{#1}} - \def\aeb@universitycolor{\webuniversity@color} -\define@key{aebcolordesign}{titleColor}{\titleColor{#1}} - \def\aeb@titlecolor{\webtitle@color} -\define@key{aebcolordesign}{authorColor}{\authorColor{#1}} - \def\aeb@authorcolor{\webauthor@color} -\define@key{aebcolordesign}{textBgColor}{\textBgColor{#1}} -\define@key{aebcolordesign}{panelBgColor}{\panelBgColor{#1}} -\define@key{aebcolordesign}{linkColor}{\def\@linkcolor{#1}} -\define@key{aebcolordesign}{fileColor}{\def\@filecolor{#1}} -\define@key{aebcolordesign}{citeColor}{\def\@citecolor{#1}} -\define@key{aebcolordesign}{urlColor}{\def\@urlcolor{#1}} -\newcommand{\selectColors}[1]{\setkeys{aebcolordesign}{#1}} -\define@key{aebDings}{dDing}{\dDingToc{#1}} -\define@key{aebDings}{ddDing}{\ddDingToc{#1}} -\define@key{aebDings}{dddDing}{\dddDingToc{#1}} -\define@key{aebDings}{dDingColor}{\dDingTocColor{#1}} -\define@key{aebDings}{ddDingColor}{\ddDingTocColor{#1}} -\define@key{aebDings}{dddDingColor}{\dddDingTocColor{#1}} -\def\dDingToc#1{\def\d@DingToc{#1}} -\def\ddDingToc#1{\def\dd@DingToc{#1}} -\def\dddDingToc#1{\def\ddd@DingToc{#1}} -\def\dDingTocColor#1{\def\d@DingTocColor{#1}} -\def\ddDingTocColor#1{\def\dd@DingTocColor{#1}} -\def\dddDingTocColor#1{\def\ddd@DingTocColor{#1}} -\dDingTocColor{red} -\ddDingTocColor{blue} -\dddDingTocColor{webgreen} -\@tfor\@@tmp:={d@DingToc}{dd@DingToc}{ddd@DingToc}\do - {\w@csarg\let{\@@tmp}\@empty} -\newcommand{\selectTocDings}[1]{\setkeys{aebDings}{#1}} -\def\@setTocDings{% - \ifx\d@DingToc\@empty\else\dDing{\d@DingToc}\fi - \ifx\dd@DingToc\@empty\else\ddDing{\dd@DingToc}\fi - \ifx\ddd@DingToc\@empty\else\dddDing{\ddd@DingToc}\fi -} -\ifeqforpaper - \includecomment{forpaper}\excludecomment{forscreen} -\else - \includecomment{forscreen}\excludecomment{forpaper} -\fi -\endinput -%% -%% End of file `webpro.def'. +%% +%% This is file `webpro.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% web.dtx (with options: `copyright,webpro') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Web package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% History: Noel Vaillant began developing a better web.sty +%% based on my earlier published web.sty. Many thanks +%% to him for starting me off. +%%--------------------------------------------------------- +\RequirePackage{pifont} +\newcommand{\DeclareDocInfo}[1]{\setkeys{aebDocInfo}{#1}% + \ifx\web@talkdate@value\@empty\else\let\webversion\webtalkdate\fi} +\@onlypreamble\DeclareDocInfo +\define@key{aebDocInfo}{title}[]{\title{#1}} +\define@key{aebDocInfo}{author}[]{\author{#1}} +\define@key{aebDocInfo}{university}[]{\university{#1}} +\define@key{aebDocInfo}{email}[]{\email{#1}} +\define@key{aebDocInfo}{talksite}[]{\talksite{#1}} +\define@key{aebDocInfo}{talkdate}[]{\talkdate{#1}} +\define@key{aebDocInfo}{talkdateLabel}[Presented:]{\talkdateLabel{#1}} +\define@key{aebDocInfo}{version}[]{\version{#1}} +\define@key{aebDocInfo}{versionLabel}[Version]{\versionLabel{#1}} +\define@key{aebDocInfo}{subject}[]{\subject{#1}} +\define@key{aebDocInfo}{keywords}[]{\keywords{#1}} +\define@key{aebDocInfo}{copyrightyears}[]{\copyrightyears{#1}} +\define@key{aebDocInfo}{prepared}[]{\prepared{#1}} +\define@key{aebDocInfo}{preparedLabel}[]{\preparedLabel{#1}} +\define@key{aebDocInfo}{Title}[]% + {\@ifpackageloaded{aebxmp}{\Title{#1}}{}} +\define@key{aebDocInfo}{authors}[]% + {\@ifpackageloaded{aebxmp}{\Authors{#1}}{}} +\define@key{aebDocInfo}{Subject}[]% + {\@ifpackageloaded{aebxmp}{\Subject{#1}}{\subject{#1}}} +\define@key{aebDocInfo}{Keywords}[]% + {\@ifpackageloaded{aebxmp}{\Keywords{#1}}{\keywords{#1}}} +\define@key{aebDocInfo}{lang}[]% + {\@ifpackageloaded{aebxmp}{\metaLang{#1}}{}} +\define@key{aebDocInfo}{copyrightStatus}[]% + {\@ifpackageloaded{aebxmp}{\copyrightStatus{#1}}{}} +\define@key{aebDocInfo}{copyrightNotice}[]% + {\@ifpackageloaded{aebxmp}{\copyrightNotice{#1}}{}} +\define@key{aebDocInfo}{copyrightInfoURL}[]% + {\@ifpackageloaded{aebxmp}{\copyrightInfoURL{#1}}{}} +\define@key{aebDocInfo}{authortitle}[]% + {\@ifpackageloaded{aebxmp}{\authortitle{#1}}{}} +\define@key{aebDocInfo}{descriptionwriter}[]% + {\@ifpackageloaded{aebxmp}{\descriptionwriter{#1}}{}} +\define@key{aebDocInfo}{customProperties}[]% + {\@ifpackageloaded{aebxmp}{\customProperties{#1}}{}} +\newcommand{\DeclarePageLayout}[1]{\save@prtscr + \setkeys{web@pl}{topmargin,headheight,marginparsep,% + marginparwidth,marginparpush,webfootskip}% + \protected@edef\web@temp{\noexpand\setkeys{web@pl}{#1}}% + \web@temp\save@prtscr + \ifx\web@pl@screensize\@empty\else + \expandafter\screensize\web@pl@screensize\fi + \ifx\web@pl@margins\@empty\else + \expandafter\margins\web@pl@margins\fi + \ifeqforpaper\else + \ifdim\@Leftmargin<\@Rightmargin + \ifdim\marginparwidth>\@Leftmargin + \setlength{\marginparwidth} + {\@Leftmargin-2\marginparsep}% + \fi + \else + \ifdim\marginparwidth>\@Rightmargin + \setlength{\marginparwidth} + {\@Rightmargin-2\marginparsep}% + \fi + \fi + \fi + \ifeqforpaper\else + \ifdim\@Bottommargin<\web@footskip\relax\PackageError{web}{% + Error in the value of the webfootskip key\MessageBreak + of the \string\DeclarePageLayout\space command.\MessageBreak + The bottom margin must be larger then\MessageBreak + the value of webfootskip}{% + Increase the size of the bottom margin,\MessageBreak + or decrease the value of webfootskip.}\else + \fi + \fi +} +\@onlypreamble\DeclarePageLayout +\define@key{web@pl}{screensize}[]{\def\web@pl@screensize{#1}} +\let\web@pl@screensize\@empty +\define@key{web@pl}{margins}[]{\def\web@pl@margins{#1}} +\let\web@pl@margins\@empty +\define@choicekey+{web@pl}{design}[\val\nr]{designi,designii,% + designiii,designiv,designv,designvi,designvii,designviii,designix}{% + \ifcase\nr\relax + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{3.736in}{4.67in}\or + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{5in}\or + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{5in}{6in}\or + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4in}{5in}\or + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.5in}{6in}\or + \web@MargScrDimOpts{.25in}{.25in}{24pt}{.25in}{4.17in}{4.67in}\or + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{7.5in}{10in}\or + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6.67in}\or + \web@MargScrDimOpts{.5in}{.5in}{24pt}{.5in}{3.75in}{6in}\fi + }{\PackageWarning{webpro}{% + Bad choice for design, use designi--designvix. Try again}} +\define@choicekey+{web@pl}{screensizeOf}[\val\nr]{designi,designii,% + designiii,designiv,designv,designvi,designvii,designviii,designix}{% + \ifcase\nr\relax + \screensize{3.736in}{4.67in}\or + \screensize{4.5in}{5in}\or + \screensize{5in}{6in}\or + \screensize{4in}{5in}\or + \screensize{4.5in}{6in}\or + \screensize{4.17in}{4.67in}\or + \screensize{7.5in}{10in}\or + \screensize{3.75in}{6.67in}\or + \screensize{3.75in}{6in}\fi + }{\PackageWarning{webpro}{% + Bad choice for screensizeOf, use designi--designvix. Try again}} +\define@key{web@pl}{headheight}[8pt]{\def\websetheadheight{#1}} +\define@key{web@pl}{topmargin}[\prtscr{\the\topmargin}{8pt}]{% + \edef\web@argi{#1}\ifx\web@argi\@empty + \edef\web@argi{\prtscr{\the\topmargin}{8pt}}\fi + \ifeqforpaper + \setlength{\topmargin}{\web@argi}% + \else + \setlength{\web@Topmargin}{\web@argi}% + \fi} +\define@key{web@pl}{textwidth}[345pt]{\setlength{\textwidth}{#1}} +\define@key{web@pl}{textheight}[43\baselineskip]% + {\setlength{\textheight}{#1}} +\define@key{web@pl}{oddsidemargin}[63pt]% + {\setlength{\oddsidemargin}{#1}} +\define@key{web@pl}{evensidemargin}[63pt]% + {\setlength{\evensidemargin}{#1}} +\define@key{web@pl}{marginparsep}[\prtscr{\the\marginparsep}{11pt}]{% + \edef\web@argi{#1}\ifx\web@argi\@empty + \edef\web@argi{\prtscr{\the\marginparsep}{11pt}}\fi + \setlength{\marginparsep}{\web@argi}} +\define@key{web@pl}{marginparwidth}% + [\prtscr{\the\marginparwidth}{.25in}]{% + \edef\web@argi{#1}\ifx\web@argi\@empty + \edef\web@argi{\prtscr{\the\marginparwidth}{.25in}}\fi + \setlength{\marginparwidth}{\web@argi}} +\define@key{web@pl}{marginparpush}[5pt]{% + \setlength{\marginparpush}{#1}} +\define@key{web@pl}{webfootskip}[4pt]{% + \def\web@footskip{#1}} +\define@key{web@pl}{footskip}[30pt]{\setlength{\footskip}{#1}} +\define@key{web@pl}{panelwidth}[1in]{\panelwidth{#1}} +\define@key{web@pl}{panelsep}[10pt]{\panelsep{#1}} +\define@key{web@pl}{additionalheadsep}[0pt]% + {\def\web@additionalheadsep{#1}} +\renewcommand{\topTitlePage} +{% + \vglue\web@aboveTopTitleSkip + \noindent\makebox[\linewidth][\halignuniversity]{\parbox{% + \hproportionwebuniversity\linewidth}% + {\sectionUniversity{\webuniversity}}}% + \par\ifeqforpaper\else\minimumskip\fi + \vspace{\stretch{1}}% + \noindent\makebox[\linewidth][\haligntitle]% + {\parbox{\hproportionwebtitle\linewidth}% + {\sectionTitle{\webtitle}}}% + \par\ifeqforpaper\vspace{2\baselineskip}\else + \minimumskip\vspace{\stretch{1}}\fi + \noindent\makebox[\linewidth][\halignauthor]% + {\parbox{\hproportionwebauthor\linewidth}% + {\sectionAuthor{\webauthor}}} + \par\ifeqforpaper\vspace{2\baselineskip}\else + \minimumskip\vspace{\stretch{1}}\fi +} +\newcommand{\topTitlePageProportion}[1]{\def\titleauthorproportion{#1}} +\renewcommand{\titlepageTrailer} +{% + \webtpTrailerWrapper{\makebox[\web@tp@linewidth]{% + \parbox{\web@tp@linewidth}{% + \ifx\tpTrailer@textcolor\@empty\else + \color{\tpTrailer@textcolor}\fi\web@tpTrailer@formatting + \maketitle@trailer@ul\hfill\maketitle@trailer@ur\\ + \maketitle@trailer@ll\hfill\maketitle@trailer@lr + }}}% +} +\def\maketitle@trailer@ul{\web@copyright\ \web@copyright@symbol\ + \webcopyrightyears\ \thewebemail} +\def\maketitle@trailer@ll{\aeb@Prepared} +\def\maketitle@trailer@ur{\aeb@talksite} +\def\maketitle@trailer@lr{\webversion} +\let\webtpTrailerWrapper\relax +\let\web@tpTrailerBgColor\@empty +\let\web@tpTrailerBorderColor\@empty +\let\tpTrailer@textcolor\@empty +\let\web@tpTrailer@graphic\@empty +\let\web@tpTrailer@namedgraphic\@empty +\let\web@tpTrailer@formatting\@empty +\def\web@tpTrailer@raise{0pt} +\def\web@tp@linewidth{\linewidth} +\define@key{tpTrailer}{ul}{\def\maketitle@trailer@ul{#1}} +\define@key{tpTrailer}{ll}{\def\maketitle@trailer@ll{#1}} +\define@key{tpTrailer}{ur}{\def\maketitle@trailer@ur{#1}} +\define@key{tpTrailer}{lr}{\def\maketitle@trailer@lr{#1}} +\define@key{tpTrailer}{textColor}{\def\tpTrailer@textcolor{#1}} +\define@key{tpTrailer}{bgColor}{\def\web@tpTrailerBgColor{#1}} +\define@key{tpTrailer}{borderColor}{\def\web@tpTrailerBorderColor{#1}} +\define@key{tpTrailer}{fboxsep}{\def\web@tpTrailerfboxsep{#1}} +\define@key{tpTrailer}{fboxrule}{\def\web@tpTrailerfboxrule{#1}} +\define@key{tpTrailer}{graphic}{\def\web@tpTrailer@graphic{#1}} +\define@key{tpTrailer}{namedgraphic}{% + \def\web@tpTrailer@namedgraphic{#1}} +\define@key{tpTrailer}{fontSize}{\renewcommand{\trailerFontSize}{#1}} +\define@key{tpTrailer}{formatting}{\def\web@tpTrailer@formatting{#1}} +\define@key{tpTrailer}{raise}{\def\web@tpTrailer@raise{#1}} +\newcommand{\DesignTitlePageTrailer}[1] +{% + \setkeys{tpTrailer}{fboxsep=3pt,fboxrule=.4pt}% + \setkeys{tpTrailer}{#1}% + \setlength{\fboxsep}{\web@tpTrailerfboxsep}% + \setlength{\fboxrule}{\web@tpTrailerfboxrule}% + \let\web@tp@graphic\web@NO + \ifx\web@tpTrailer@graphic\@empty + \ifx\web@tpTrailer@namedgraphic\@empty\else + \let\web@tp@graphic\web@YES\fi + \else\let\web@tp@graphic\web@YES\fi + \ifx\web@tp@graphic\web@NO\relax + \ifx\web@tpTrailerBgColor\@empty + \def\grfbox@spec##1{##1}% + \else + \ifx\web@tpTrailerBorderColor\@empty + \def\web@tp@linewidth{\linewidth-2\fboxsep}% + \def\grfbox@spec{\colorbox{\web@tpTrailerBgColor}}% + \else + \def\web@tp@linewidth{% + \linewidth-2\fboxsep-2\fboxrule}% + \def\grfbox@spec{\fcolorbox{\web@tpTrailerBorderColor}% + {\web@tpTrailerBgColor}}% + \fi + \fi + \def\webtpTrailerWrapper##1{\smash{\raisebox + {\web@tpTrailer@raise}{\grfbox@spec{##1}}}}% + \else + \@ifundefined{graphicxbox}{\begingroup + \gdef\webtpTrailerWrapper##1{% + \edef\web@tmp@opt{\ifx\web@tpTrailer@namedgraphic\@empty\else + name=\web@tpTrailer@namedgraphic,\fi}% + \def\web@tp@linewidth{\linewidth-2\fboxsep}% + \setbox0=\hbox{##1}% + \noindent\makebox[0pt][l]{% + \smash{\raisebox{-\dp0-\fboxsep+\web@tpTrailer@raise}{% + \expandafter\includegraphics\expandafter[\web@tmp@opt + width=\wd0+2\fboxsep,% + height=\dp0+\ht0+2\fboxsep]{\web@tpTrailer@graphic}}% + }}\kern\fboxsep\smash{% + \raisebox{\web@tpTrailer@raise}{\unhbox0\relax}}% + }% + \endgroup}{% + \xdef\grfbox@spec{% + \ifx\web@tpTrailerBorderColor\@empty + \noexpand\graphicxbox\else + \noexpand\fgraphicxbox{\web@tpTrailerBorderColor}\fi + \ifx\web@tpTrailer@namedgraphic\@empty\else + [name=\web@tpTrailer@namedgraphic]\fi}% + \gdef\webtpTrailerWrapper##1{% + \edef\web@tp@linewidth{% + \linewidth-2\fboxsep\ifx\web@tpTrailerBorderColor\@empty + \else-2\fboxrule\fi}% + \smash{\raisebox{\web@tpTrailer@raise}{% + \grfbox@spec{\web@tpTrailer@graphic}{##1}}}}% + }% + \fi +} +\renewcommand{\web@maketitle} +{% + \maketitlepreamble + \ifeqforpaper\vspace*{2\baselineskip}\else + \vbox to\titleauthorproportion\textheight\bgroup\fi + \topTitlePage + \ifeqforpaper\else\egroup\fi % end of \vbox for title and author + \begingroup\par + \aboveOPMvspace + \noindent\parbox{\linewidth}{\optionalpagematter}% + \par\endgroup + \par\vspace{\stretch{1}} + \ifx\web@directory@option\web@YES\web@directory@hook\webdirectory\fi + \par\ifeqforpaper\else\minimumskip\fi\vspace{\stretch{1}} + \vfill\noindent\begingroup\trailerFontSize\titlepageTrailer + \par\endgroup + \maketitlepostamble +} +\let\web@maketitle@save\maketitle +\let\maketitle\web@maketitle +\def\preparedLabel#1{\def\web@revision{#1}} +\preparedLabel{Prepared:} +\def\prepared#1{\def\argi{#1}\ifx\argi\@empty + \else\def\aeb@prepared{#1}\fi} +\def\aeb@prepared{\@date} +\def\aeb@Prepared{\web@revision\ \aeb@prepared} +\def\talkdate#1{\gdef\web@talkdate@value{#1}% + \edef\webtalkdate{\ifx\web@talkdate@value\@empty + \else\noexpand\web@talkdatelabel\ #1\fi}} +\let\web@talkdate@value\@empty +\def\talkdateLabel#1{\def\web@talkdatelabel{#1}} +\talkdateLabel{Presented:} +\def\talksite#1{\def\aeb@talksite{#1}} +\talksite{} +\define@choicekey+{aebsection}{reset}[\val\nr]{font,all}{% + \ifcase\nr\relax + \aeb@reset@section@fonts\or + \aeb@reset@section@all\fi +}{\PackageWarning{webpro}{Bad choice for reset, permissible values + are font and all. Try again}} +\define@choicekey+{aebsection}{type}[\val\nr]{section,subsection,% + subsubsection,university,title,author,toc}% +{% + \edef\aeb@section@type{#1}% + \edef\aeb@section@typeIndex{\nr}% +}{}{} +\define@key{aebsection}{special}{% + \edef\aeb@temp@expand{% + \noexpand\XKV@cc+[\noexpand\val\noexpand\nr]{#1}}% + \aeb@temp@expand{shadow,framebox,colorbox,fcolorbox,frameboxfit,% + colorboxfit,fcolorboxfit,colorboxfitrule,custom,default}% +{% + \ifcase\nr\relax + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@shadowHead\or + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@frameboxHead\or + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@colorboxHead\or + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@fcolorboxHead\or + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@frameboxfitHead\or + \w@csarg\let{aeb@\aeb@section@type @special}\aeb@colorboxfitHead\or + \w@csarg\let{aeb@\aeb@section@type @special} + \aeb@fcolorboxfitHead\or + \w@csarg\let{aeb@\aeb@section@type @special} + \aeb@colorboxfitruleHead\or + \edef\aeb@temp{\noexpand\def\expandafter\noexpand + \csname aeb@\aeb@section@type @special\endcsname{\expandafter + \noexpand\csname aeb@\aeb@section@type @customHead\endcsname}}% + \aeb@temp\or + \w@csarg\let{aeb@\aeb@section@type @special}\@empty\fi +}{% + \PackageWarning{webpro}{Bad choice for special, permissible values + are shadow, framebox, colorbox, fcolorbox, custom and default. + Try again}}% +} +\@tfor\@@tmp:={section}{subsection}{subsubsection}% +{university}{title}{author}{toc}\do{% + \w@csarg\let{aeb@\@@tmp @special}\@empty} +\newcommand{\customSecHead}[1]{\def\aeb@section@customHead##1{#1}} +\newcommand{\customSubsecHead}[1]{\def\aeb@subsection@customHead##1{#1}} +\newcommand{\customSubsubsecHead}[1] + {\def\aeb@subsubsection@customHead##1{#1}} +\newcommand{\customUniversity}[1]{\def\aeb@university@customHead##1{#1}} +\newcommand{\customTitle}[1]{\def\aeb@title@customHead##1{#1}} +\newcommand{\customAuthor}[1]{\def\aeb@author@customHead##1{#1}} +\newcommand{\customToc}[1]{\def\aeb@toc@customHead##1{#1}} +\def\aeb@frameboxHead#1{% + \begingroup + \@tempdima=\linewidth + \advance\@tempdima-2\fboxsep + \advance\@tempdima-2\fboxrule + \edef\@@aeb@sectionframecolor + {\@nameuse{aeb@\aeb@section@type framecolor}}% + \edef\@@aeb@sectioncolor + {\@nameuse{aeb@\aeb@section@type color}}% + \setbox0\vbox{\hsize=\@tempdima#1}\color{\@@aeb@sectionframecolor}% + \framebox{\color{\@@aeb@sectioncolor}\copy0}% + \endgroup +} +\def\aeb@colorboxHead#1{% + \begingroup + \@tempdima=\linewidth + \advance\@tempdima-2\fboxsep + \setbox0\vbox{\hsize=\@tempdima#1}% + \edef\@@aeb@sectionbgcolor + {\@nameuse{aeb@\aeb@section@type bgcolor}}% + \colorbox{\@@aeb@sectionbgcolor}{\copy0}% + \endgroup +} +\def\aeb@fcolorboxHead#1{% + \begingroup + \@tempdima=\linewidth + \advance\@tempdima-2\fboxsep + \advance\@tempdima-2\fboxrule + \setbox0\vbox{\hsize=\@tempdima#1}% + \edef\@@aeb@sectionbgcolor + {\@nameuse{aeb@\aeb@section@type bgcolor}}% + \fcolorbox{\aeb@sectionframecolor}% + {\@@aeb@sectionbgcolor}{\copy0} + \endgroup +} +\def\aeb@frameboxfitHead#1{% + \begingroup + \edef\@@aeb@sectionframecolor + {\@nameuse{aeb@\aeb@section@type framecolor}}% + \edef\@@aeb@sectioncolor + {\@nameuse{aeb@\aeb@section@type color}}% + \vbox{\color{\@@aeb@sectionframecolor}% + \framebox{\color{\@@aeb@sectioncolor}#1}}% + \endgroup +} +\def\aeb@colorboxfitHead#1{% + \begingroup + \edef\@@aeb@sectioncolor + {\@nameuse{aeb@\aeb@section@type color}}% + \edef\@@aeb@sectionbgcolor + {\@nameuse{aeb@\aeb@section@type bgcolor}}% + \vbox{\colorbox{\@@aeb@sectionbgcolor}% + {\color{\@@aeb@sectioncolor}#1}}% + \endgroup +} +\def\aeb@fcolorboxfitHead#1{% + \begingroup + \edef\@@aeb@sectioncolor + {\@nameuse{aeb@\aeb@section@type color}}% + \edef\@@aeb@sectionbgcolor + {\@nameuse{aeb@\aeb@section@type bgcolor}}% + \edef\@@aeb@sectionframecolor + {\@nameuse{aeb@\aeb@section@type framecolor}}% + \vbox{\fcolorbox{\@@aeb@sectionframecolor}{\@@aeb@sectionbgcolor}% + {\color{\@@aeb@sectioncolor}#1}}% + \endgroup +} +\def\shadowhoffset#1{\def\aeb@shadowhoffset{#1}} +\shadowhoffset{.2ex} +\def\shadowvoffset#1{\def\aeb@shadowvoffset{#1}} +\shadowvoffset{-.2ex} +\def\aeb@shadowHead#1{% dps1 + \begingroup + \edef\@@aeb@sectionshadowcolor + {\@nameuse{aeb@\aeb@section@type shadowcolor}}% + \edef\@@aeb@sectioncolor + {\@nameuse{aeb@\aeb@section@type color}}% + \setbox0\vbox{\Shadowtrue\hsize=\linewidth #1}% + \wd0\z@\dp0\z@\relax\raisebox{\aeb@shadowvoffset}% + {\hbox to\z@{\kern\aeb@shadowhoffset% + \Shadowtrue\color{\@@aeb@sectionshadowcolor} + \box0\hss}}% + \setbox0\vbox{\Shadowfalse\hsize=\linewidth #1}\box0 + \endgroup +} +\define@key{aebsection}{usefont}{% + \w@csarg\def{aeb@\aeb@section@type @usefont}{\aeb@usefont#1}} +\@tfor\@@tmp:={section}{subsection}{subsubsection} +{university}{title}{author}{toc}\do{% + \w@csarg\let{aeb@\@@tmp @usefont}\@empty} +\def\aeb@usefont#1#2#3#4#5{\def\aeb@usefontargv{#5}% + \ifx\aeb@usefontargv\@empty + \def\aeb@next{\expandafter\@gobble\@gobbletwo}% + \else + \def\aeb@next{\expandafter\@gobbletwo\@gobbletwo}% + \fi + \fontencoding{#1}\fontfamily{#2}% + \fontseries{#3}\fontshape{#4}\ifx\aeb@usefontargv\@empty\else + \fontsize#5\fi\selectfont\aeb@next +} +\define@key{aebsection}{fontfamily}{% + \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% + \aeb@temp@expand{rmfamily,sffamily,ttfamily}{% + \w@csarg\def{aeb@\aeb@section@type @fontfamily}{\@nameuse{#1}}% +}{\PackageWarning{webpro}{Bad choice for fontfamily, permissible values + are rmfamily, sffamily and ttfamily. Try again}}% +} +\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% +{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontfamily}\aeb@defaultfamily} +\define@key{aebsection}{fontseries}{% + \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% + \aeb@temp@expand{bfseries,mdseries}{% + \w@csarg\def{aeb@\aeb@section@type @fontseries}{\@nameuse{#1}}% +}{\PackageWarning{webpro}{Bad choice for fontseries, permissible values + are bfseries and mdseries. Try again}}% +} +\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% +{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontseries}\bfseries} +\define@key{aebsection}{fontshape}{% + \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% + \aeb@temp@expand{upshape,itshape,scshape,slshape}{% + \w@csarg\def{aeb@\aeb@section@type @fontshape}{\@nameuse{#1}}% +}{\PackageWarning{webpro}{Bad choice for fontshape, permissible values + are upshape, itshape, scshape and slshape. Try again}}% +} +\@tfor\@@tmp:={section}{subsection}{subsubsection}{university}{title}% +{author}{toc}\do{\w@csarg\let{aeb@\@@tmp @fontshape}\upshape} +\define@key{aebsection}{fontsize}{% + \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% + \aeb@temp@expand{tiny,scriptsize,footnotesize,% + small,normalsize,large,Large,LARGE,huge,Huge}{% + \w@csarg\def{aeb@\aeb@section@type @fontsize}{\@nameuse{#1}}% +}{\PackageWarning{webpro}{Bad choice for fontsize, permissible values + are tiny, scriptsize, footnotesize, small, normalsize, + large, Large, LARGE, huge and Huge. Try again}}% +} +\@tfor\@@tmp:={{section}{\normalsize}}{{subsection}{\normalsize}}% +{{subsubsection}{\normalsize}}{{university}{\normalsize}}% +{{title}{\large}}{{author}{\normalsize}}{{toc}{\small}}\do{% + \expandafter\getargs\@@tmp + \edef\aeb@temp{\global\noexpand + \let\expandafter\noexpand\csname aeb@\aeb@argi @fontsize\endcsname + \expandafter\noexpand\aeb@argii}\aeb@temp +} +\define@key{aebsection}{halign}{% + \edef\aeb@temp@expand{% + \noexpand\XKV@cc+[\noexpand\val\noexpand\nr]{#1}}% + \aeb@temp@expand{l,c,r}{% + \ifcase\nr\relax + \w@csarg\let{aeb@\aeb@section@type @halign}\raggedright\or + \w@csarg\let{aeb@\aeb@section@type @halign}\centering\or + \w@csarg\let{aeb@\aeb@section@type @halign}\raggedleft\fi +}{\PackageWarning{webpro}{Bad choice for halign, permissible values + are l, c and r. Try again}}% +} +\@tfor\@@tmp:={\aeb@section@halign\raggedright} +{\aeb@subsection@halign\raggedright} +{\aeb@subsubsection@halign\raggedright} +{\aeb@university@halign\centering} +{\aeb@title@halign\centering}{\aeb@author@halign\centering}% +{\aeb@toc@halign\centering}\do +{% + \expandafter\getargs\@@tmp + \edef\aeb@temp{\noexpand\let\expandafter\noexpand\aeb@argi + \expandafter\noexpand\aeb@argii}\aeb@temp +} +\define@key{aebsection}{ding}{\if\aeb@use@section@numbers0 + \webtoksi=\expandafter{\expandafter\protect + \expandafter\web@sel@sec@col\expandafter{\aeb@section@type}#1\ }% + \w@csarg\edef{aeb@\aeb@section@type Num}##1{\the\webtoksi}% + \else\PackageWarning{webpro}{The ding key is not available with a + section numbering system,\MessageBreak + ignoring request for a ding.}\fi +} +\define@key{aebsection}{color}{% + \w@csarg\def{aeb@\aeb@section@type color}{#1}} +\define@key{aebsection}{ruleheight}{% + \w@csarg\def{aeb@\aeb@section@type ruleheight}{#1}} +\define@key{aebsection}{numdingcolor}{% + \w@csarg\def{aeb@\aeb@section@type numdingcolor}{#1}} +\def\aeb@sectioncolor{blue} +\def\aeb@subsectioncolor{\aeb@sectioncolor} +\def\aeb@subsubsectioncolor{\aeb@sectioncolor} +\def\aeb@sectionnumdingcolor{\aeb@sectioncolor} +\def\aeb@subsectionnumdingcolor{\aeb@sectioncolor} +\def\aeb@subsubsectionnumdingcolor{\aeb@sectioncolor} +\def\aeb@universitycolor{black} +\def\aeb@universitynumdingcolor{\aeb@universitycolor} +\def\aeb@titlecolor{blue} +\def\aeb@titlenumdingcolor{\aeb@titlecolor} +\def\aeb@authorcolor{black} +\def\aeb@authornumdingcolor{\aeb@authorcolor} +\def\aeb@toccolor{blue} +\def\aeb@tocnumdingcolor{\aeb@toccolor} +\define@key{aebsection}{framecolor}{% + \w@csarg\def{aeb@\aeb@section@type framecolor}{#1}} +\def\aeb@sectionframecolor{blue} +\def\aeb@subsectionframecolor{blue} +\def\aeb@subsubsectionframecolor{blue} +\def\aeb@universityframecolor{blue} +\def\aeb@titleframecolor{blue} +\def\aeb@authorframecolor{blue} +\def\aeb@tocframecolor{blue} +\define@key{aebsection}{bgcolor}{% + \w@csarg\def{aeb@\aeb@section@type bgcolor}{#1}} +\def\aeb@sectionbgcolor{cornsilk} +\def\aeb@subsectionbgcolor{cornsilk} +\def\aeb@subsubsectionbgcolor{cornsilk} +\def\aeb@authorbgcolor{cornsilk} +\def\aeb@titlebgcolor{cornsilk} +\def\aeb@authorbgcolor{cornsilk} +\def\aeb@tocbgcolor{cornsilk} +\define@key{aebsection}{shadowcolor}{% + \w@csarg\def{aeb@\aeb@section@type shadowcolor}{#1}} +\def\aeb@sectionshadowcolor{black} +\def\aeb@subsectionshadowcolor{black} +\def\aeb@subsubsectionshadowcolor{black} +\def\aeb@universityshadowcolor{black} +\def\aeb@titleshadowcolor{black} +\def\aeb@authorshadowcolor{black} +\def\aeb@tocshadowcolor{black} +\define@key{aebsection}{indent}[0pt]{% + \edef\web@argi{#1}\ifx\web@argi\@empty + \def\web@argi{0pt}\fi + \w@csarg\edef{aeb@\aeb@section@type @indent}{\web@argi}} +\def\aeb@section@indent{\z@} +\def\aeb@subsection@indent{\z@} +\def\aeb@subsubsection@indent{\z@} +\def\aeb@university@indent{\z@} +\def\aeb@title@indent{\z@} +\def\aeb@author@indent{\z@} +\def\aeb@toc@indent{\z@} +\define@key{aebsection}{beforeskip}{% + \w@csarg\def{aeb@\aeb@section@type @beforeskip}{#1}} +\def\aeb@section@beforeskip{-3ex\@plus -1ex \@minus-.2ex} +\def\aeb@subsection@beforeskip{-2.5ex\@plus -1ex \@minus -.2ex} +\def\aeb@subsubsection@beforeskip{-2ex\@plus -1ex \@minus -.2ex} +\def\aeb@university@beforeskip{-1ex\@plus -1ex \@minus-.2ex} +\def\aeb@title@beforeskip{-1ex\@plus -1ex \@minus-.2ex} +\def\aeb@author@beforeskip{-1ex\@plus -1ex \@minus-.2ex} +\def\aeb@toc@beforeskip{-3ex\@plus -1ex \@minus-.2ex} +\define@key{aebsection}{afterskip}{% + \w@csarg\def{aeb@\aeb@section@type @afterskip}{#1}} +\def\aeb@section@afterskip{1ex\@plus .2ex} +\def\aeb@subsection@afterskip{1ex\@plus .2ex} +\def\aeb@subsubsection@afterskip{.5ex\@plus .2ex} +\def\aeb@university@afterskip{1ex\@plus .2ex} +\def\aeb@title@afterskip{1ex\@plus .2ex} +\def\aeb@author@afterskip{1ex \@plus1fill} %{1ex\@plus .2ex} +\def\aeb@toc@afterskip{1ex\@plus .2ex} +\define@key{aebsection}{hproportion}{% + \w@csarg\def{hproportionweb\aeb@section@type}{#1}} +\define@key{aebsection}{xhalign}{% + \edef\aeb@temp@expand{\noexpand\XKV@cc+{#1}}% + \aeb@temp@expand{l,c,r}{% + \w@csarg\def{halign\aeb@section@type}{#1}% +}{\PackageWarning{webpro}{Bad choice for xhalign, permissible values + are l, c and r. Try again}}% +} +\def\halignuniversity{c} +\def\haligntitle{c} +\def\halignauthor{c} +\let\halignsection\relax +\let\halignsubsection\relax +\let\halignsubsubsection\relax +\let\haligntoc\relax +\define@key{aebToc}{tocName}{\tocName{#1}} +\define@key{aebToc}{tocNameCont}{\tocNameCont{#1}} +\def\aeb@reset@section@fonts{% + \normalfont\normalsize + \ifcase\aeb@section@typeIndex\relax + \let\aeb@section@usefont\@empty + \let\aeb@section@fontfamily\aeb@defaultfamily + \let\aeb@section@fontseries\bfseries + \let\aeb@section@fontshape\upshape + \let\aeb@section@fontsize\Large + \or + \let\aeb@subsection@usefont\@empty + \let\aeb@subsection@fontfamily\aeb@defaultfamily + \let\aeb@subsection@fontseries\bfseries + \let\aeb@subsection@fontshape\upshape + \let\aeb@subsection@fontsize\large + \or + \let\aeb@subsubsection@usefont\@empty + \let\aeb@subsubsection@fontfamily\aeb@defaultfamily + \let\aeb@subsubsection@fontseries\bfseries + \let\aeb@subsubsection@fontshape\upshape + \let\aeb@subsubsection@fontsize\normalsize + \fi +} +\def\aeb@reset@section@all{% + \aeb@reset@section@fonts + \ifcase\aeb@section@typeIndex\relax + \let\aeb@section@halign\raggedright + \def\aeb@sectioncolor{blue}% + \def\aeb@sectionshadowcolor{black}% + \let\aeb@section@special=\@empty + \def\aeb@section@beforeskip{-3ex\@plus -1ex \@minus-.2ex}% + \def\aeb@section@afterskip{1ex\@plus .2ex}% + \def\aeb@sectionframecolor{blue}% + \def\aeb@sectionframecolor{cornsilk}% + \or + \let\aeb@subsection@halign\raggedright + \def\aeb@subsectioncolor{blue}% + \def\aeb@subsectionshadowcolor{black}% + \let\aeb@subsection@special=\@empty + \def\aeb@subsection@beforeskip{-2.5ex\@plus-1ex \@minus-.2ex}% + \def\aeb@subsection@afterskip{1ex\@plus .2ex}% + \def\aeb@subsectionframecolor{blue}% + \def\aeb@subsectionframecolor{cornsilk}% + \or + \let\aeb@subsubsection@halign\raggedright + \def\aeb@subsubsectioncolor{blue}% + \def\aeb@subsubsectionshadowcolor{black}% + \let\aeb@subsubsection@special=\@empty + \def\aeb@subsubsection@beforeskip{-2ex\@plus-1ex \@minus-.2ex}% + \def\aeb@subsubsection@afterskip{1ex\@plus .2ex}% + \def\aeb@subsubsectionframecolor{blue}% + \def\aeb@subsubsectionframecolor{cornsilk}% + \fi +} +\renewcommand{\section}{% dps1 + \renewcommand{\@seccntformat}[1]{\aeb@sectionNum{##1}}% + \@startsection{section}{1}{\aeb@section@indent}% + {\aeb@section@beforeskip}{\aeb@section@afterskip}% + {\noindent\xdef\aeb@sectionpage{\the\c@page}% + \def\aeb@section@type{section}% + \aeb@section@usefont\aeb@section@fontfamily\aeb@section@fontseries + \aeb@section@fontshape\aeb@section@fontsize\aeb@section@halign + \color{\aeb@sectioncolor}\aeb@section@special}} +\renewcommand\subsection{% dps1 + \renewcommand{\@seccntformat}[1]{\aeb@subsectionNum{##1}}% + \@startsection{subsection}{2}{\aeb@subsection@indent}% + {\aeb@subsection@beforeskip}{\aeb@subsection@afterskip}% + {\noindent\def\aeb@section@type{subsection}% + \aeb@subsection@usefont\aeb@subsection@fontfamily + \aeb@subsection@fontseries\aeb@subsection@fontshape + \aeb@subsection@fontsize\aeb@subsection@halign + \color{\aeb@subsectioncolor}\aeb@subsection@special}} +\def\subsubDefaultDing#1{\def\web@subsubDefaultDing{{#1}}} +\subsubDefaultDing{\textrm\textbullet} +\renewcommand\subsubsection{% dps1 + \renewcommand{\@seccntformat}[1]{\aeb@subsubsectionNum{##1}}% + \@startsection{subsubsection}{3}{\aeb@subsubsection@indent}% + {\aeb@subsubsection@beforeskip}{\aeb@subsubsection@afterskip}% + {\noindent\def\aeb@section@type{subsubsection}% + \aeb@subsubsection@usefont\aeb@subsubsection@fontfamily + \aeb@subsubsection@fontseries\aeb@subsubsection@fontshape + \aeb@subsubsection@fontsize\aeb@subsubsection@halign + \color{\aeb@subsubsectioncolor}\aeb@subsubsection@special}} +\renewcommand*\thesection{% + \if\aeb@use@section@numbers1\arabic{section}\fi} +\renewcommand*\thesubsection{% + \if\aeb@use@section@numbers1\thesection.\arabic{subsection}\fi} +\renewcommand*{\thesubsubsection}{% + \if\aeb@use@section@numbers1% + \if@defaultsubsubding\web@subsubDefaultDing + \else\thesubsection.\arabic{subsubsection}\fi + \fi} +\newcommand{\sectionTitle}{\aeb@sectionTitle*} +\newcommand{\aeb@sectionTitle}{% + \renewcommand{\@seccntformat}[1]{\aeb@titleNum{##1}}% + \@startsection{section}{1}{\aeb@title@indent}% + {\aeb@title@beforeskip}{\aeb@title@afterskip}% + {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{title}% + \aeb@title@usefont\aeb@title@fontfamily\aeb@title@fontseries + \aeb@title@fontshape\aeb@title@fontsize\aeb@title@halign + \ifx\webtitle@color\@empty\else\color{\aeb@titlecolor}\fi + \aeb@title@special}} +\newcommand{\sectionAuthor}{\aeb@sectionAuthor*} +\newcommand{\aeb@sectionAuthor}{% + \renewcommand{\@seccntformat}[1]{\aeb@authorNum{##1}}% + \@startsection{section}{1}{\aeb@author@indent}% + {\aeb@author@beforeskip}{\aeb@author@afterskip}% + {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{author}% + \aeb@author@usefont\aeb@author@fontfamily\aeb@author@fontseries + \aeb@author@fontshape\aeb@author@fontsize\aeb@author@halign + \ifx\webauthor@color\@empty\else\color{\aeb@authorcolor}\fi + \aeb@author@special}} +\newcommand{\sectionUniversity}{\aeb@sectionUniversity*} +\newcommand{\aeb@sectionUniversity}{% + \renewcommand{\@seccntformat}[1]{\aeb@universityNum{##1}}% + \@startsection{section}{1}{\aeb@university@indent}% + {\aeb@university@beforeskip}{\aeb@university@afterskip}% + {\xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{university}% + \aeb@university@usefont\aeb@university@fontfamily + \aeb@university@fontseries\aeb@university@fontshape + \aeb@university@fontsize\aeb@university@halign + \ifx\webuniversity@color\@empty\else + \color{\aeb@universitycolor}\fi\aeb@university@special}} +\newcommand{\sectionToc}{\aeb@sectionToc*} +\newcommand{\aeb@sectionToc}{% + \renewcommand{\@seccntformat}[1]{\aeb@tocNum{##1}}% + \@startsection{section}{1}{\aeb@toc@indent}% + {\aeb@toc@beforeskip}{\aeb@toc@afterskip}% + {\hypertarget{webtoc}{}% + \xdef\aeb@titlepage{\the\c@page}\def\aeb@section@type{toc}% + \aeb@toc@usefont\aeb@toc@fontfamily + \aeb@toc@fontseries\aeb@toc@fontshape + \aeb@toc@fontsize\aeb@toc@halign + \ifx\aeb@toccolor\@empty\else + \color{\aeb@toccolor}\fi\aeb@toc@special}} +\def\save@prtscr{\global\let\prtscr@save\prtscr + \global\let\prtscr\prtscrA} +\def\restore@prtscr{\global\let\prtscr\prtscr@save} +\newcommand{\sectionLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=section,color=blue,ruleheight=1pt}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\newcommand{\subsectionLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=subsection,color=blue,ruleheight=1pt}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\newcommand{\subsubsectionLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=subsubsection,color=blue,ruleheight=1pt}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\newcommand{\universityLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=university}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\universityLayout{fontsize={\prtscrA{large}{normalsize}}} +\newcommand{\titleLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=title}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\titleLayout{fontsize={\prtscrA{Large}{normalsize}}} +\newcommand{\authorLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=author}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection}{#1}}% + \aeb@temp\restore@prtscr} +\authorLayout{fontsize={\prtscrA{large}{normalsize}}} +\newcommand{\tocLayout}[1]{\save@prtscr + \setkeys{aebsection}{type=toc,color=\web@tocColor}% + \protected@edef\aeb@temp{\noexpand\setkeys{aebsection,aebToc}{#1}}% + \aeb@temp\restore@prtscr} +\tocLayout{fontsize=Large} +\newif\ifShadow \Shadowfalse % dps1 +\def\web@sel@sec@col#1{\ifShadow + \color{\@nameuse{aeb@#1shadowcolor}}\else + \color{\@nameuse{aeb@#1numdingcolor}}\fi} +\newcommand{\useSectionNumbers} +{% dps1 + \let\aeb@use@section@numbers1\relax + \def\aeb@sectionNum##1{\protect\web@sel@sec@col{section}% + \@nameuse{the##1}\web@finalDot\ }% + \def\aeb@subsectionNum##1{\protect\web@sel@sec@col{subsection}% + \@nameuse{the##1}\web@finalDot\ }% + \def\aeb@subsubsectionNum##1{% + \protect\web@sel@sec@col{subsubsection}% + \@nameuse{the##1}\if@defaultsubsubding\else\web@finalDot\fi\ }% + \def\sectionmark##1{\markright{##1}}% +} +\newcommand{\noSectionNumbers} +{% + \ifx\web@latextoc\web@YES + \PackageInfo{web}{The nobullets or latextoc option + taken,\MessageBreak + ignoring \string\noSectionNumbers}% + \else + \let\aeb@use@section@numbers0\relax + \let\aeb@sectionNum\@gobble + \let\aeb@subsectionNum\@gobble + \let\aeb@subsubsectionNum\@gobble + \fi +} +\useSectionNumbers +\define@key{aebcolordesign}{universityColor}{\universityColor{#1}} + \def\aeb@universitycolor{\webuniversity@color} +\define@key{aebcolordesign}{titleColor}{\titleColor{#1}} + \def\aeb@titlecolor{\webtitle@color} +\define@key{aebcolordesign}{authorColor}{\authorColor{#1}} + \def\aeb@authorcolor{\webauthor@color} +\define@key{aebcolordesign}{textBgColor}{\textBgColor{#1}} +\define@key{aebcolordesign}{panelBgColor}{\panelBgColor{#1}} +\define@key{aebcolordesign}{linkColor}{\def\@linkcolor{#1}} +\define@key{aebcolordesign}{fileColor}{\def\@filecolor{#1}} +\define@key{aebcolordesign}{citeColor}{\def\@citecolor{#1}} +\define@key{aebcolordesign}{urlColor}{\def\@urlcolor{#1}} +\newcommand{\selectColors}[1]{\setkeys{aebcolordesign}{#1}} +\define@key{aebDings}{dDing}{\dDingToc{#1}} +\define@key{aebDings}{ddDing}{\ddDingToc{#1}} +\define@key{aebDings}{dddDing}{\dddDingToc{#1}} +\define@key{aebDings}{dDingColor}{\dDingTocColor{#1}} +\define@key{aebDings}{ddDingColor}{\ddDingTocColor{#1}} +\define@key{aebDings}{dddDingColor}{\dddDingTocColor{#1}} +\def\dDingToc#1{\def\d@DingToc{#1}} +\def\ddDingToc#1{\def\dd@DingToc{#1}} +\def\dddDingToc#1{\def\ddd@DingToc{#1}} +\def\dDingTocColor#1{\def\d@DingTocColor{#1}} +\def\ddDingTocColor#1{\def\dd@DingTocColor{#1}} +\def\dddDingTocColor#1{\def\ddd@DingTocColor{#1}} +\dDingTocColor{red} +\ddDingTocColor{blue} +\dddDingTocColor{webgreen} +\@tfor\@@tmp:={d@DingToc}{dd@DingToc}{ddd@DingToc}\do + {\w@csarg\let{\@@tmp}\@empty} +\newcommand{\selectTocDings}[1]{\setkeys{aebDings}{#1}} +\def\@setTocDings{% + \ifx\d@DingToc\@empty\else\dDing{\d@DingToc}\fi + \ifx\dd@DingToc\@empty\else\ddDing{\dd@DingToc}\fi + \ifx\ddd@DingToc\@empty\else\dddDing{\ddd@DingToc}\fi +} +\ifeqforpaper + \includecomment{forpaper}\excludecomment{forscreen} +\else + \includecomment{forscreen}\excludecomment{forpaper} +\fi +\endinput +%% +%% End of file `webpro.def'. diff --git a/texmf-dist/tex/latex/acrotex/websec.def b/texmf-dist/tex/latex/acrotex/websec.def index 6d0f973c..0735eaf0 100644 --- a/texmf-dist/tex/latex/acrotex/websec.def +++ b/texmf-dist/tex/latex/acrotex/websec.def @@ -1,192 +1,192 @@ -%% -%% This is file `websec.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% web.dtx (with options: `copyright,websectioning') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% Web package, %% -%% Copyright (C) 1999-2018 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% History: Noel Vaillant began developing a better web.sty -%% based on my earlier published web.sty. Many thanks -%% to him for starting me off. -%%--------------------------------------------------------- -\renewcommand*\thesection{\arabic{section}} -\renewcommand*\thesubsection{\thesection.\arabic{subsection}} -\renewcommand*{\thesubsubsection}{\textbullet} -\renewcommand{\section}{\renewcommand{\@seccntformat}[1]{% - \@nameuse{the##1}\web@finalDot\enspace}% - \@startsection{section}{1}{\z@}% - {-3ex\@plus -1ex \@minus-.2ex}% - {1ex\@plus .2ex}% 6pt - {\noindent\normalfont\normalsize\bfseries - \color{\web@sectionsColorOld}}}% -\renewcommand{\subsection}{\renewcommand{\@seccntformat}[1]{% - \@nameuse{the##1}\web@finalDot\enspace}% - \@startsection{subsection}{2}{\z@}% - {-2.5ex\@plus -1ex \@minus -.2ex}% - {1ex\@plus .2ex}% - {\noindent\normalfont\normalsize\bfseries - \color{\web@sectionsColorOld}}} -\renewcommand{\subsubsection}{% - \renewcommand{\@seccntformat}[1]{\color{\web@sectionsColorOld}\large - $\bullet$\enspace}% - \@startsection{subsubsection}{3}{\z@}% - {-2ex\@plus -1ex \@minus -.2ex}% - {.5ex\@plus .2ex}% - {\noindent\normalfont\normalsize\bfseries}} -\def\tocPartTitle#1{\def\web@tocPartTitle##1{#1}} -\tocPartTitle{\thepart\hspace{1em}#1} -\newcommand\@webpart{\secdef\web@@part\web@@spart} -\def\web@@part[#1]#2{% - \newpage - \def\@currentlabelname{#1}% - \ifnum\Hy@secnum@part>\c@secnumdepth - \phantomsection - \fi - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{part}% - \addcontentsline{toc}{part}{\web@tocPartTitle{#1}}% - \else - \addcontentsline{toc}{part}{#1}% - \fi - {\web@makeparthead{#2}}% - \nobreak - \vskip 1ex - \@afterheading -} -\def\web@@spart#1{% - \Hy@GlobalStepCount\Hy@linkcounter - \xdef\@currentHref{part*.\the\Hy@linkcounter}% - \Hy@raisedlink{% - \hyper@anchorstart{\@currentHref}\hyper@anchorend - }{\web@makesparthead{#1}}% - \nobreak - \vskip 1ex - \@afterheading -} -\let\web@save@part\part -\let\part\@webpart -\newcommand{\formatPartTitle}[1]{% - \def\web@formatPartTitle##1{#1}} -\def\web@defaultFormatPartTitle#1{% - \large\bfseries - \ifnum \c@secnumdepth >\m@ne - \partname~\thepart:\space - \fi#1} -\let\web@formatPartTitle\web@defaultFormatPartTitle -\newcommand{\restorePartTitleFormat}{% - \let\web@formatPartTitle\web@defaultFormatPartTitle} -\def\noPartNumbers{\formatPartTitle{\large\bfseries##1}% - \tocPartTitle{##1}} -\def\web@makeparthead#1{% - \parindent\z@\raggedright - \interlinepenalty \@M - \normalfont - \web@formatPartTitle{#1}% - \markboth{}{}\par -} -\def\web@makesparthead#1{% - \parindent\z@\raggedright - \interlinepenalty \@M - \normalfont - \large\bfseries #1\par -} -\@ifundefined{chapter}{}{% - \newcommand\@webchapter{% - \global\@topnum\z@ - \@afterindentfalse - \secdef\web@@chapter\web@@schapter - } - \let\web@save@chapter\chapter - \let\chapter\@webchapter - \def\web@@chapter[#1]#2{% - \def\@currentlabelname{#1}% - \def\Hy@next{% - \Hy@GlobalStepCount\Hy@linkcounter - \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}% - \Hy@raisedlink{% - \hyper@anchorstart{\@currentHref}\hyper@anchorend - }% - }% - \ifnum\c@secnumdepth>\m@ne - \@ifundefined{if@mainmatter}% - \iftrue{\@nameuse{if@mainmatter}}% - \let\Hy@next\relax - \fi - \fi - \Hy@next - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{{}{}#1}% - \fi - \else - \addcontentsline{toc}{chapter}{{}{}#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\web@makechapterhead{#2}]% - \else - \web@makechapterhead{#2}% - \@afterheading - \fi - } - \def\web@@schapter#1{% - \if@twocolumn - \@topnewpage[\@makeschapterhead{#1}]% - \else - \web@makeschapterhead{#1}% - \@afterheading - \fi - } - \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 - } - \def\web@makechapterhead#1{% - \vspace{3\p@}{% - \parindent\z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \web@formatChapterNumber - \fi - \fi - \web@formatChapterTitle{#1}% - \vskip 12\p@ - }% - } - \def\web@makeschapterhead#1{% - \vspace{3\p@}{% - \parindent\z@\raggedright - \normalfont - \interlinepenalty\@M - \large\bfseries #1\par\nobreak - \vskip 12\p@ - }% - } -} % end \@ifundefined{chapter} -\endinput -%% -%% End of file `websec.def'. +%% +%% This is file `websec.def', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% web.dtx (with options: `copyright,websectioning') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Web package, %% +%% Copyright (C) 1999-2018 D. P. Story %% +%% dpstory@uakron.edu %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% History: Noel Vaillant began developing a better web.sty +%% based on my earlier published web.sty. Many thanks +%% to him for starting me off. +%%--------------------------------------------------------- +\renewcommand*\thesection{\arabic{section}} +\renewcommand*\thesubsection{\thesection.\arabic{subsection}} +\renewcommand*{\thesubsubsection}{\textbullet} +\renewcommand{\section}{\renewcommand{\@seccntformat}[1]{% + \@nameuse{the##1}\web@finalDot\enspace}% + \@startsection{section}{1}{\z@}% + {-3ex\@plus -1ex \@minus-.2ex}% + {1ex\@plus .2ex}% 6pt + {\noindent\normalfont\normalsize\bfseries + \color{\web@sectionsColorOld}}}% +\renewcommand{\subsection}{\renewcommand{\@seccntformat}[1]{% + \@nameuse{the##1}\web@finalDot\enspace}% + \@startsection{subsection}{2}{\z@}% + {-2.5ex\@plus -1ex \@minus -.2ex}% + {1ex\@plus .2ex}% + {\noindent\normalfont\normalsize\bfseries + \color{\web@sectionsColorOld}}} +\renewcommand{\subsubsection}{% + \renewcommand{\@seccntformat}[1]{\color{\web@sectionsColorOld}\large + $\bullet$\enspace}% + \@startsection{subsubsection}{3}{\z@}% + {-2ex\@plus -1ex \@minus -.2ex}% + {.5ex\@plus .2ex}% + {\noindent\normalfont\normalsize\bfseries}} +\def\tocPartTitle#1{\def\web@tocPartTitle##1{#1}} +\tocPartTitle{\thepart\hspace{1em}#1} +\newcommand\@webpart{\secdef\web@@part\web@@spart} +\def\web@@part[#1]#2{% + \newpage + \def\@currentlabelname{#1}% + \ifnum\Hy@secnum@part>\c@secnumdepth + \phantomsection + \fi + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{\web@tocPartTitle{#1}}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + {\web@makeparthead{#2}}% + \nobreak + \vskip 1ex + \@afterheading +} +\def\web@@spart#1{% + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{part*.\the\Hy@linkcounter}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }{\web@makesparthead{#1}}% + \nobreak + \vskip 1ex + \@afterheading +} +\let\web@save@part\part +\let\part\@webpart +\newcommand{\formatPartTitle}[1]{% + \def\web@formatPartTitle##1{#1}} +\def\web@defaultFormatPartTitle#1{% + \large\bfseries + \ifnum \c@secnumdepth >\m@ne + \partname~\thepart:\space + \fi#1} +\let\web@formatPartTitle\web@defaultFormatPartTitle +\newcommand{\restorePartTitleFormat}{% + \let\web@formatPartTitle\web@defaultFormatPartTitle} +\def\noPartNumbers{\formatPartTitle{\large\bfseries##1}% + \tocPartTitle{##1}} +\def\web@makeparthead#1{% + \parindent\z@\raggedright + \interlinepenalty \@M + \normalfont + \web@formatPartTitle{#1}% + \markboth{}{}\par +} +\def\web@makesparthead#1{% + \parindent\z@\raggedright + \interlinepenalty \@M + \normalfont + \large\bfseries #1\par +} +\@ifundefined{chapter}{}{% + \newcommand\@webchapter{% + \global\@topnum\z@ + \@afterindentfalse + \secdef\web@@chapter\web@@schapter + } + \let\web@save@chapter\chapter + \let\chapter\@webchapter + \def\web@@chapter[#1]#2{% + \def\@currentlabelname{#1}% + \def\Hy@next{% + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\@currentHref{\Hy@chapapp*.\the\Hy@linkcounter}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + }% + \ifnum\c@secnumdepth>\m@ne + \@ifundefined{if@mainmatter}% + \iftrue{\@nameuse{if@mainmatter}}% + \let\Hy@next\relax + \fi + \fi + \Hy@next + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter.}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\thechapter}#1}% + \else + \addcontentsline{toc}{chapter}{{}{}#1}% + \fi + \else + \addcontentsline{toc}{chapter}{{}{}#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \if@twocolumn + \@topnewpage[\web@makechapterhead{#2}]% + \else + \web@makechapterhead{#2}% + \@afterheading + \fi + } + \def\web@@schapter#1{% + \if@twocolumn + \@topnewpage[\@makeschapterhead{#1}]% + \else + \web@makeschapterhead{#1}% + \@afterheading + \fi + } + \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 + } + \def\web@makechapterhead#1{% + \vspace{3\p@}{% + \parindent\z@ \raggedright \normalfont + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \web@formatChapterNumber + \fi + \fi + \web@formatChapterTitle{#1}% + \vskip 12\p@ + }% + } + \def\web@makeschapterhead#1{% + \vspace{3\p@}{% + \parindent\z@\raggedright + \normalfont + \interlinepenalty\@M + \large\bfseries #1\par\nobreak + \vskip 12\p@ + }% + } +} % end \@ifundefined{chapter} +\endinput +%% +%% End of file `websec.def'. -- cgit v1.2.3