diff options
35 files changed, 286 insertions, 236 deletions
diff --git a/texmf-dist/doc/latex/acrotex/README.md b/texmf-dist/doc/latex/acrotex/README.md index b05e63eb..162d9c24 100644 --- a/texmf-dist/doc/latex/acrotex/README.md +++ b/texmf-dist/doc/latex/acrotex/README.md @@ -1,6 +1,6 @@ The AcroTeX eDucation Bundle Author: D. P. Story -Dated: 2018/08/16 +Dated: 2018-11-27 AeB contains the following: @@ -19,6 +19,9 @@ AeB contains the following: 6) Documentation for AeB (AcroTeX eDucatation Bundle) and eForms (including insdljs and dljslib). +What's New (2018/11/27) Some changes to eforms package to support the new icon-appr +package. + What's New (2018/08/16) Changes to eforms and insdljs: several keys (eforms) added to support aeb_mlink and annot_pro; switch add to insdljs to detect whether document JS has been included. diff --git a/texmf-dist/doc/latex/acrotex/aeb_man.pdf b/texmf-dist/doc/latex/acrotex/aeb_man.pdf Binary files differindex a16c0c3b..36e63fe8 100644 --- a/texmf-dist/doc/latex/acrotex/aeb_man.pdf +++ b/texmf-dist/doc/latex/acrotex/aeb_man.pdf diff --git a/texmf-dist/doc/latex/acrotex/eformman.pdf b/texmf-dist/doc/latex/acrotex/eformman.pdf Binary files differindex 17818148..25815958 100644 --- a/texmf-dist/doc/latex/acrotex/eformman.pdf +++ b/texmf-dist/doc/latex/acrotex/eformman.pdf diff --git a/texmf-dist/doc/latex/acrotex/eformman.tex b/texmf-dist/doc/latex/acrotex/eformman.tex index 84b8b8ab..61d1606a 100644 --- a/texmf-dist/doc/latex/acrotex/eformman.tex +++ b/texmf-dist/doc/latex/acrotex/eformman.tex @@ -70,7 +70,7 @@ subject={Documentation for the eforms and insdljs packages}, talksite={\url{www.acrotex.net}}, version={2.0}, - prepared={2018/08/16}, + prepared={2018/11/27}, preparedLabel={Distribution Dated:}, keywords={LaTeX, hyperref, PDF, exercises, quizzes}, copyrightStatus=True, @@ -591,6 +591,8 @@ width based on the width of the text given by \Cs{CA}, \Cs{RC} and \pushButton[\CA{Push}\AC{Me}\RC{Reset}\A{/S/ResetForm}] {myButton}{}{12bp} \end{Verbatim} +Refer to the \pkg{icon-appr} package to supply icon appearances to push buttons created by +the \pkg{eforms} package. \subsubsection{Check Boxes}\label{CheckBoxes} @@ -645,6 +647,9 @@ command appears in the preamble of this document: \textColor{1 0 0} % text color } \end{Verbatim} +Refer to the \pkg{icon-appr} package to supply icon appearances to checkbox buttons created by +the \pkg{eforms} package. + \subsubsection{Radio Buttons}\label{RadioButtons} @@ -715,6 +720,8 @@ command appears in the preamble of this document: \symbolchoice{star} % check symbol } \end{Verbatim} +Refer to the \pkg{icon-appr} package to supply icon appearances to radio button fields created by +the \pkg{eforms} package. \subsection{Choice Fields} @@ -2201,18 +2208,21 @@ creation of icons as button appearances. In the latter PDF, PDF creator. \begin{itemize} \item[] -\settowidth{\aebdimen}{\ttfamily normappr=\anglemeta{string}} +\settowidth{\aebdimen}{\ttfamily importicons=\anglemeta{yes|no}} \def\1{\llap{\Cs{I}\hspace{\marginparsep}}}% \def\2{\llap{\Cs{RI}\hspace{\marginparsep}}}% \def\3{\llap{\Cs{IX}\hspace{\marginparsep}}}% +\def\4{\llap{\Cs{importIcons}\hspace{\marginparsep}}}% \begin{dCmd}[commandchars=!()]{\aebdimen+2\fboxsep+2\fboxrule} !1normappr=!anglemeta(string) !2rollappr=!anglemeta(string) !3downappr=!anglemeta(string) +!4importicons=!anglemeta(!upshape(yes|no)) \end{dCmd} \item[]\CmdDescription The normal, rollover, and down appearances of the button face icon. The value of each key is an indirect reference to a form XObject. Normally, you can use the \texttt{graphicxsp} package -to embed graphics and give a symbolic name which is used as the value of these keys. +to embed graphics and give a symbolic name which is used as the value of these keys. \texttt{importIcons} +is a special key used in conjunction with importing icons using JavaScript methods. \item[] \settowidth{\aebdimen}{\ttfamily layout=labelonly|icononly|icontop|iconbottom|} @@ -3477,6 +3487,8 @@ RI? & (push buttons only) an indirect reference to a form XObject defining the buttons's \emph{rollover icon}&\verb+\RI{rIcon}+\newline(example)\\ IX? & (push buttons only) an indirect reference to a form XObject defining the buttons's \emph{down icon}&\verb+\I{dIcon}+\newline(example)\\ +importIcons? & (push buttons only) a special key to signal that this button is the target +of JavaScript that will supply the icons faces. Syntax: \cs{importIcons\darg{y|n}}&\verb|\importIcons{n}|\\ TP? & \texttt{\darg{\ameta{\upshape{0|1|2|3|4|5|6}}}} (push buttons only; optional) A code indicating the \texttt{layout} of the text and icon; these codes are 0~(label only); 1~(icon only); 2~(label below icon); 3~(label above icon); 4~(label to the right of icon); @@ -3500,6 +3512,7 @@ FB? & \texttt{\darg{true|false}} (push buttons only; optional) The \emph{fit b Q? & \texttt{\darg{0|1|2|empty}} Quadding for text fields. Values are \texttt{0} (left-justified), \texttt{1} (centered), \texttt{2} (right-justified); e.g., \verb+\Q{1}+. &\verb+Q{}+\newline(left justified)\\ +\pagebreak \multicolumn{3}{>{\small\bfseries}l}{Default Appearance (DA)}\\ DA? & Default appearance string of the text in the widget. Normally, you just specify text font, size and color. Can be redefined, advance techniques needed.&\\ diff --git a/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf b/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf Binary files differindex 1d9b17ab..7a3dff6c 100644 --- a/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf +++ b/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf diff --git a/texmf-dist/doc/latex/acrotex/examples/jquiztst.tex b/texmf-dist/doc/latex/acrotex/examples/jquiztst.tex index 097882db..b3185c1c 100644 --- a/texmf-dist/doc/latex/acrotex/examples/jquiztst.tex +++ b/texmf-dist/doc/latex/acrotex/examples/jquiztst.tex @@ -28,6 +28,7 @@ Department of Mathematics} \useEndQuizButton[\textColor{blue}] + % Uncomment this line to require the student % to answer all questions in the quiz before % the quiz is evaluated. @@ -160,6 +161,7 @@ Practice by typing in the answer: \edef\STRUT{\noexpand\rule[\ifxetex-1bp\else-5bp\fi]{0pt}{0pt}} \noindent$\dfrac{\text{d}}{\text{d}x} {(x^4 + 1)^{1/2}} = +\eqsanitize \underset{\text{\rotatebox{-45}{\rlap{The Response Box}}}} {\underbrace{\STRUT\efKern{1bp}{0bp}\RespBoxMath{2*x^3*(x^4+1)^(-1/2)}{4}{.0001}{[1,2]}\relax\efKern{1bp}{0bp}}}\kern-1bp \underset{\text{\rotatebox{-45}{\rlap{Answer Button}}}} diff --git a/texmf-dist/source/latex/acrotex/eforms.dtx b/texmf-dist/source/latex/acrotex/eforms.dtx index 8f5768ea..b7fecae8 100644 --- a/texmf-dist/source/latex/acrotex/eforms.dtx +++ b/texmf-dist/source/latex/acrotex/eforms.dtx @@ -16,7 +16,7 @@ %</copyright> %<package>\NeedsTeXFormat{LaTeX2e} %<package>\ProvidesPackage{eforms} -%<package> [2018/08/16 v2.9.20 Provides general eforms support (dps)] +%<package> [2018/11/27 v2.9.22 Provides general eforms support (dps)] %<*driver> \documentclass{ltxdoc} \usepackage[colorlinks,hyperindex=false]{hyperref}[2012/10/12] @@ -626,10 +626,24 @@ % \end{macrocode} % \DescribeMacro{\AP} Appearance dictionary, used mostly with check boxes % to define the `On' value. +% \changes{v2.9.21}{2018/11/10}{Modified \string\cs{@eqAP}, added two internal +% commands \string\cs{eq@@On} and \string\cs{eq@@Off}} +% Within \cs{@eqAP}, \DescribeMacro\Off\cs{Off} and \DescribeMacro\On\cs{On} are +% \cs{let} to \cs{eq@@Off} and \cs{eq@On} to make +% it `easy' to assign on and off values in the case of icon appearances. % \begin{macrocode} \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 + \let\eq@AP\@empty\else\let\Off\eq@@Off\let\On\eq@@On + \ifx\annot@type\annot@type@button + \let\N\eq@pb@N\else\let\N\eq@cbrb@N\fi + \edef\eq@AP{/AP<<#1>>}\fi}\let\eq@AP\@empty +\def\eq@pb@N#1{/N \ifpdf #1 \space 0 R\else + \ifxetex #1\else{#1}\fi\fi} +\def\eq@cbrb@N#1{/N <<#1>>} +\def\eq@@On#1#2{/#1 \ifpdf #2 \space 0 R\else + \ifxetex #2\else{#2}\fi\fi} +\def\eq@@Off#1{/Off \ifpdf #1 \space 0 R\else + \ifxetex #1\else{#1}\fi\fi} % \end{macrocode} % In the \texttt{AP} dictionary for checkboxes is the `On' value. % It is introduced into \texttt{AP} by passing a TeX parameter @@ -1192,49 +1206,74 @@ % \cs{eq@IconMK} is empty. % \begin{macrocode} \def\eq@define@IconMK{\def\eq@IconMK{\eq@I\eq@RI\eq@IX\eq@TP - /IF<<\eq@SW\eq@ST\eq@PA\eq@FB>>}} + /IF<<\eq@SW\eq@ST\eq@PA\eq@FB>>}} \let\eq@IconMK\@empty % \end{macrocode} % \DescribeMacro{\I} an indirect reference to a form XObject defining the % buttons's \emph{normal icon} % \changes{v2.9}{2016/05/09}{Modified \string\cs{I}, \string\cs{RI}, and % \string\cs{IX} to accommodate pdftex for null argument.} +% \changes{v2.9.21}{2018/11/10}{Modified \string\cs{@eqI}, \string\cs{@eqRI}, +% and \string\cs{@eqIX} in the case of pdftex} % \begin{macrocode} -\ifpdf\def\eq@relRef#1{0 0 R}\else %{#1\space 0 R} +\def\eq@relRef@null#1{0 0 R} +\ifluatex\def\eq@relRef#1{#1 \space 0 R}\else + \ifpdf\def\eq@relRef#1{#1\space 0 R}\else \ifxetex\def\eq@relRef#1{#1}\else - \def\eq@relRef#1{{#1}}\fi\fi + \def\eq@relRef#1{{#1}}\fi\fi\fi +\def\@eqimportIcons#1{\ifpdfmarkup\ifx\annot@type\annot@type@button + \def\ef@arg{#1}\ifx\ef@arg\ef@y + \ifx\eq@I\@empty\@eqI{null}\fi\fi\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\@eqI#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@I\@empty\else + \ifx\eq@arg\ef@null + \def\eq@I{/I \ef@null}\else + \def\eq@I{/I \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \fi +} \def\eq@I{} % \end{macrocode} % \DescribeMacro{\RI} an indirect reference to a form XObject defining % the buttons's \emph{rollover icon} % \begin{macrocode} -\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\@eqRI#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@RI\@empty\else + \ifx\eq@arg\ef@null + \def\eq@RI{/RI \ef@null}\else + \def\eq@RI{/RI \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \fi +} \def\eq@RI{} % \end{macrocode} % \DescribeMacro{\IX} an indirect reference to a form XObject defining % the buttons's \emph{down icon} % \begin{macrocode} -\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\@eqIX#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@IX\@empty\else + \ifx\eq@arg\ef@null + \def\eq@IX{/IX \ef@null}\else + \def\eq@IX{/IX \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \fi +} \def\eq@IX{} % \end{macrocode} % \DescribeMacro{\TP} A code indicating the \texttt{layout} of the text and icon; these codes are @@ -1280,13 +1319,15 @@ % \begin{macrocode} \def\@eqmkIns#1{\def\eq@mkIns{#1}}\def\eq@mkIns{} % \end{macrocode} -% \paragraph*{Additional entries specific to choice fields:} \texttt{Opt, TI, I} +% \paragraph*{Additional entries specific to choice fields:} \texttt{Opt, TI, I}\par\medskip\noindent +% An array of options in the list % \begin{macrocode} -% an array of options in the list \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{} -% for scrollable list boxes, the top index. +% \end{macrocode} +% For scrollable list boxes, the top index. +% \begin{macrocode} \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{} @@ -2607,8 +2648,15 @@ % \end{macrocode} % \end{macro} % \subsection{Button Fields}\label{button} -% Here is the field template for push button fields. +% Here is the field template for push button fields.\par\medskip\noindent +% +% (2018/11/10) \cs{eq@APX} determines if \cs{eq@I} is empty, if not we supply the normal appearance +% for the button to be the same appearance as set by \cs{eq@I}. +% \changes{v2.9.21}{2018/11/10}{Introduce \string\cs{eq@APX} an `intelligent' AP key} % \begin{macrocode} +\def\eq@APX{\ifx\eq@I\@empty\eq@AP\else + /AP<< \expandafter\get@NIR\eq@I\@nil\space>>\fi} +\def\get@NIR/#1 #2\@nil{/N #2} \def\common@pushButtonCode{% /Subtype/Widget /T (\Fld@name) @@ -2618,12 +2666,15 @@ \eq@H \eq@F /BS <<\eq@W\eq@S >> -\ifx\eq@AP\@empty +% \end{macrocode} +% (2018/11/10) Remove conditional \string\cs{eq@AP}, some PDF viewers +% use AP to build the normal appearance for buttons. +% \changes{v2.9.21}{2018/11/10}{Remove conditional \string\cs{eq@AP} +% in \string\cs{common@pushButtonCode}}. +% \begin{macrocode} /MK <<\eq@R\eq@BC\eq@BG% \ef@kvCA\ef@kvRC\ef@kvAC\eq@IconMK\eq@mkIns>> -\else - \eq@AP -\fi + \eq@APX /DA (\eq@DA) \eq@A\eq@AA \eq@rawPDF @@ -3617,6 +3668,11 @@ \ifcase\nr\relax\@eqmlfix{y}\or \@eqmlfix{n}\fi }{} +\define@choicekey{eforms}{importicons}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqimportIcons{y}\or + \@eqimportIcons{n}\fi +}{} \define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}} \define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}} \define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}} diff --git a/texmf-dist/source/latex/acrotex/exerquiz.dtx b/texmf-dist/source/latex/acrotex/exerquiz.dtx index 8ba26138..71fa5bb6 100644 --- a/texmf-dist/source/latex/acrotex/exerquiz.dtx +++ b/texmf-dist/source/latex/acrotex/exerquiz.dtx @@ -22,7 +22,7 @@ %<randomize>\ProvidesFile{aebrandom.def} %<sumrytbls>\ProvidesFile{aebsumrytbls.def} %<template>\ProvidesFile{template.def} -%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2018/03/21 v8.2.2 % +%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2018/10/03 v8.2.5 % %<package> Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)] %<driver> Exerquiz documentation driver file (dps)] %<aebjs> Exerquiz document level JavaScript (dps)] @@ -2077,7 +2077,7 @@ %\changes{v6.7}{2013/04/07}{Inserted another argument into \cs{eqEXt}} % (2013/04/07) Added another argument into \cs{eqEXt}, used for filtering.\par\medskip % \noindent -% When solutions are written to the SOL file, they are not normally in a group. +% (2018/02/13) When solutions are written to the SOL file, they are not normally in a group. % If you execute \DescribeMacro\makeExSolnsLocalOn\cs{makeExSolnsLocalOn}, each solution % is written in a group. Undo this with \DescribeMacro\makeExSolnsLocalOff\cs{makeExSolnsLocalOff}, % which is the historic default. @@ -2521,8 +2521,11 @@ \exrtnlabelformat\fi}}% \protect\endeqEXt\ifeqforpaper\protect\par{\belowexsolnskip}\fi^^J% %</eqexam> - \ifmakeExSlLocal\protect\endgroup^^J\fi %<*package|eqexam> +% \end{macrocode} +% \changes{v8.2.5}{2018/10/03}{\string\cs{ifmakeExSlLocal} misplaced, corrected} +% \begin{macrocode} + \ifmakeExSlLocal\protect\endgroup^^J\fi } % \end{macrocode} % \end{macro} @@ -7725,9 +7728,12 @@ if (_bOK) {\jsR\jsT % \end{macrocode} % (2018/03/21) Exclude unicode from \cs{RespBoxMath} % \changes{v8.2.2}{2018/03/21}{Exclude unicode from \string\cs{RespBoxMath}} +% \changes{v8.2.3}{2018/09/12}{Made subscript catode 12 in \string\cs{RespBoxMath}} +% \changes{v8.2.4}{2018/09/24}{Defined \string\cs{eqsanitize} for \string\cs{RespBoxMath}} % \begin{macrocode} +\def\eqsanitize{\@makeother\_\@makeother\^\@makeother\&} \newcommand\RespBoxMath{\def\rbFlag{0}\begingroup\Hy@unicodefalse - \@makeother\^\@makeother\&\@RespBox} + \eqsanitize\@RespBox} % \end{macrocode} % Within \cs{RespBoxMath}, \cs{rpl} (\cs{rpl=\texttt{\underbar{r}e\underbar{pl}ace}}) is \cs{let} to \cs{eq@rpl}. The command \cs{rpl}, used % within the variable argument of \cs{RespBoxMath}, declares a multi-letter variable. There are @@ -7809,7 +7815,7 @@ if (_bOK) {\jsR\jsT 0\ifx\grpquestions1,\thegrpquestionno\fi);\r }\r if (!isQuizInitialized("\currQuiz")) {\r\t - \eqObjAlert\space eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t + \eqObjAlert eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t event.rc = false;\r } } @@ -7858,7 +7864,7 @@ if (_bOK) {\jsR\jsT var\eqSP_mathVars=\indepVars;\r\t var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc); \fi -\if\@sqTurnOffAlerts1\r\t +\if\@sqTurnOffAlerts1% OnBlurRespBox(retn,"\curr@quiz"); \fi % \end{macrocode} @@ -8303,7 +8309,7 @@ if (_bOK) {\jsR\jsT \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} + \else if (false) \fi\fi\fi} \begin{defineJS}[% \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxt} if(event.willCommit){ @@ -11372,15 +11378,33 @@ function requireFormNot(UserAns, regexpr) { \begin{newsegment}{Eq: Support for multi-letter variables} if (!String.prototype.trim) { String.prototype.trim = function () { - return this.replace(/^[\s\string\uFEFF\string\xA0]+|% -[\s\string\uFEFF\string\xA0]+$/g, ''); + return this.replace(/^[\s\string\\uFEFF\string\\xA0]+|% +[\s\string\\uFEFF\string\\xA0]+$/g, ''); }; } +% \end{macrocode} +% \makebox[0pt][r]{\texttt{\_rplVarsBy\hskip\marginparsep}}\hskip-\marginparsep\texttt{(str1,str2)} +% replaces \texttt{str1} by \texttt{str2}; i.e., +% |_rplVarsBy('theta','x')|. The first argument is a multi-letter variable, +% the second is a single letter variable that \pkg{exerquiz} works with directly. +% \begin{macrocode} function _rplVarsBy(str1,str2) { var re=new RegExp(str1,"g"); var result=str1.replace(re,str2); return result; } +% \end{macrocode} +% \makebox[0pt][r]{\texttt{processMathVars\hskip\marginparsep}}\hskip-\marginparsep\texttt{(str)} +% searches through \texttt{str} for the string \texttt{\_rplVarsBy}; if found, it gets all string +% content up to the next \texttt{@} marker. It replaces the multi-letter with single letter and returns +% the \pkg{exerquiz} single-leter variable list. +%\begin{verbatim} +% var _substVars="a,_rplVarsBy('omega->\u03C9','y')@"; +% var _mathVars=processMathVars(_substVars); +% var _substValue=getSubstValue(_substVars,event.value); +% var _substAns=getSubstValue(_substVars,"a+omega"); +%\end{verbatim} +% \begin{macrocode} function processMathVars(str) { var pos1,pos2,lead,tmp; while ((pos1=str.indexOf("_rplVarsBy"))!=-1) { @@ -11388,34 +11412,55 @@ function processMathVars(str) { lead=str.substring(0,pos1); tmp=str.substring(pos1,pos2); str=str.substring(pos2+1); +% \end{macrocode} +% For example, for |tmp="_rplVarsBy('omega->\u03C9','y')"|, after \texttt{eval(tmp)}, \texttt{tmp} is then +% \texttt{y}. +% \begin{macrocode} tmp=eval(tmp); +% \end{macrocode} +% Combine this new result with the old, for example \texttt{str="a,y"}, for the example above. +% \begin{macrocode} str=lead+tmp+str; } str=str.replace(/\s/g,""); return str; } -getSubstValue.aSubsts=new Array(); // dps17 +% \end{macrocode} +% \makebox[0pt][r]{\texttt{getSubstValue}\hskip\marginparsep}\hskip-\marginparsep\texttt{(v,s)} +% Below is a two multi-letter variable example: +%\begin{verbatim} +% var _substVars= +% "c_rplVarsBy('theta->\u03B8','x')@_rplVarsBy('alpha->\u03B1','y')@"; +% var _mathVars=processMathVars(_substVars); +% var _substValue=getSubstValue(_substVars,event.value); +% var _substAns=getSubstValue(_substVars,"-c alpha sin(theta)"); +% var retn=ProcResp(0,_substAns,3,.0001,"[0,1]x[0,1]x[0,1]",% +% _mathVars,diffCompare,_substValue); +%\end{verbatim} +%The first argument is \texttt{v}, the variable list; it might be \texttt{"xyz"}, or +%if there are substitutions, it might be as above (see \texttt{\_substVars}). The second +%argument is \texttt{s}, the user's answer or the author's answer. +% \begin{macrocode} +getSubstValue.aSubsts=new Array(); function getSubstValue(v,s){ -/* - v=variable list, it may have the form "xyz", or if there - substitutions, it might look like "_rplVarsBy('theta','x')@"; - s=Either the user's answer or the author's answer. - - First develop an array of all variables are their substitutes. - ie, getSubstValue.aSubsts=[ "c","h", ["theta",x"], ["alpha",y],...]; -*/ var pos1,pos2,tmp,args,re,arg1,arg2; -/* - change new style to old - New style: v="c,_rplVarsBy('theta->\u03B8','r:x')@,% -_rplVarsBy('alpha->\u03B1','r:y')@"; - Old style: v="c_rplVarsBy('theta->\u03B8','x')@% -_rplVarsBy('alpha->\u03B1','y')@"; -*/ +% \end{macrocode} +% Change new style to old.\\ +% \textbf{New style} (commas):\\\null\quad|v="c,_rplVarsBy('theta->\u03B8','r:x')@,%|\\\null\qquad +%|_rplVarsBy('alpha->\u03B1','r:y')@";|\\ +% \textbf{Old style} (no commas):\\\null\quad|v="c_rplVarsBy('theta->\u03B8','x')@%|\\\null\qquad +%|_rplVarsBy('alpha->\u03B1','y')@";|\\ +%We want to remove the commas that are \emph{not preceded} by a single quote (\texttt'), as this type +%are inside the argument of \texttt{\_rplVarsBy}. We also remove things like \texttt{r:x}. +% \begin{macrocode} re=/([^'])(,)/g; v=v.replace(re,'$1'); re=/([ri]\string\:)+(\string\w)/g; v=v.replace(re,'$2'); +% \end{macrocode} +% Now, develop an array of all variables and their substitutes. +% ie,\\|getSubstValue.aSubsts=[ ["theta","\u03B8"], ["alpha","\u03B1"],...];| +% \begin{macrocode} getSubstValue.aSubsts=[]; // dps17 var start=0; while (true) { @@ -11438,6 +11483,21 @@ _rplVarsBy('alpha->\u03B1','y')@"; } return s; } +% \end{macrocode} +% \makebox[0pt][r]{\texttt{RespBoxAppr}\hskip\marginparsep}\hskip-\marginparsep\texttt{(e)} +% The variable is either an event object (when called from a format event) or is a string +% (when called from an Ans button). Assume \texttt{e="-c*alpha*sin(theta)"}. +% We go through the \texttt{etSubstValue.aSubsts}, and replace each variable +% developed by \texttt{getSubstValue()} by its substitute variable. Here a lines from +% an Ans button +%\begin{verbatim} +% var _substVars="c_rplVarsBy('theta->\u03B8','x')@ +% _rplVarsBy('alpha->\u03B1','y')@"; +% var _substAns=getSubstValue(_substVars,"-c*alpha*sin(theta)"); +% var value=RespBoxAppr("-c*alpha*sin(theta)"); +%\end{verbatim} +%We must call \texttt{getSubstValue()} prior to calling this function. +% \begin{macrocode} function RespBoxAppr(e){ var value=(typeof e=="object")?e.value:e; var re; @@ -12417,7 +12477,7 @@ oCheckbox: appAlerts[qname]}); if (str.replace(/\s/g,"") == "") { var defaultColor=% (typeof oQName.DefaultColorJSLoc=="undefined")% -?color.black:oQName.DefaultColorJSLoc; +?\defaultColorJS:oQName.DefaultColorJSLoc; if (isthereRBUP) g.display=display.hidden; event.target.strokeColor = defaultColor; } diff --git a/texmf-dist/source/latex/acrotex/web.dtx b/texmf-dist/source/latex/acrotex/web.dtx index 0fa68d7e..94032ce0 100644 --- a/texmf-dist/source/latex/acrotex/web.dtx +++ b/texmf-dist/source/latex/acrotex/web.dtx @@ -5450,8 +5450,8 @@ \string\ttfamily\space#1}\encapchar usage}\@esphack} \makeatother -\def\IndexOpt#1{\SpecialMainOptIndex{#1}% - \marginpar{\raggedleft\PrintDescribeMacro{#1}}} +\newcommand\IndexOpt[2][]{\SpecialMainOptIndex{#1#2}% + \marginpar{\raggedleft\PrintDescribeMacro{#2}}} \def\IndexKey#1{\SpecialMainKeyIndex{#1}% \marginpar{\raggedleft\PrintDescribeMacro{#1}}} \def\IndexJS#1{\SpecialMainJSIndex{#1}% diff --git a/texmf-dist/tex/latex/acrotex/aebdocfmt.def b/texmf-dist/tex/latex/acrotex/aebdocfmt.def index 2b17e769..44babcf0 100644 --- a/texmf-dist/tex/latex/acrotex/aebdocfmt.def +++ b/texmf-dist/tex/latex/acrotex/aebdocfmt.def @@ -76,8 +76,8 @@ \string\ttfamily\space#1}\encapchar usage}\@esphack} \makeatother -\def\IndexOpt#1{\SpecialMainOptIndex{#1}% - \marginpar{\raggedleft\PrintDescribeMacro{#1}}} +\newcommand\IndexOpt[2][]{\SpecialMainOptIndex{#1#2}% + \marginpar{\raggedleft\PrintDescribeMacro{#2}}} \def\IndexKey#1{\SpecialMainKeyIndex{#1}% \marginpar{\raggedleft\PrintDescribeMacro{#1}}} \def\IndexJS#1{\SpecialMainJSIndex{#1}% diff --git a/texmf-dist/tex/latex/acrotex/aebjs.def b/texmf-dist/tex/latex/acrotex/aebjs.def index 57fd0c3b..55982760 100644 --- a/texmf-dist/tex/latex/acrotex/aebjs.def +++ b/texmf-dist/tex/latex/acrotex/aebjs.def @@ -18,9 +18,8 @@ %% License, or (at your option) any later version. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesFile{aebjs.def} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % 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{\\^} @@ -646,8 +645,8 @@ function requireFormNot(UserAns, regexpr) { \begin{newsegment}{Eq: Support for multi-letter variables} if (!String.prototype.trim) { String.prototype.trim = function () { - return this.replace(/^[\s\string\uFEFF\string\xA0]+|% -[\s\string\uFEFF\string\xA0]+$/g, ''); + return this.replace(/^[\s\string\\uFEFF\string\\xA0]+|% +[\s\string\\uFEFF\string\\xA0]+$/g, ''); }; } function _rplVarsBy(str1,str2) { @@ -668,24 +667,9 @@ function processMathVars(str) { str=str.replace(/\s/g,""); return str; } -getSubstValue.aSubsts=new Array(); // dps17 +getSubstValue.aSubsts=new Array(); function getSubstValue(v,s){ -/* - v=variable list, it may have the form "xyz", or if there - substitutions, it might look like "_rplVarsBy('theta','x')@"; - s=Either the user's answer or the author's answer. - - First develop an array of all variables are their substitutes. - ie, getSubstValue.aSubsts=[ "c","h", ["theta",x"], ["alpha",y],...]; -*/ var pos1,pos2,tmp,args,re,arg1,arg2; -/* - change new style to old - New style: v="c,_rplVarsBy('theta->\u03B8','r:x')@,% -_rplVarsBy('alpha->\u03B1','r:y')@"; - Old style: v="c_rplVarsBy('theta->\u03B8','x')@% -_rplVarsBy('alpha->\u03B1','y')@"; -*/ re=/([^'])(,)/g; v=v.replace(re,'$1'); re=/([ri]\string\:)+(\string\w)/g; @@ -1459,7 +1443,7 @@ oCheckbox: appAlerts[qname]}); if (str.replace(/\s/g,"") == "") { var defaultColor=% (typeof oQName.DefaultColorJSLoc=="undefined")% -?color.black:oQName.DefaultColorJSLoc; +?\defaultColorJS:oQName.DefaultColorJSLoc; if (isthereRBUP) g.display=display.hidden; event.target.strokeColor = defaultColor; } diff --git a/texmf-dist/tex/latex/acrotex/aebrandom.def b/texmf-dist/tex/latex/acrotex/aebrandom.def index d753e9b3..3bcfcec3 100644 --- a/texmf-dist/tex/latex/acrotex/aebrandom.def +++ b/texmf-dist/tex/latex/acrotex/aebrandom.def @@ -18,9 +18,8 @@ %% License, or (at your option) any later version. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesFile{aebrandom.def} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % 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 diff --git a/texmf-dist/tex/latex/acrotex/aebsumrytbls.def b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def index 33f1f3ce..1acf96e7 100644 --- a/texmf-dist/tex/latex/acrotex/aebsumrytbls.def +++ b/texmf-dist/tex/latex/acrotex/aebsumrytbls.def @@ -18,9 +18,8 @@ %% License, or (at your option) any later version. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesFile{aebsumrytbls.def} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % 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} diff --git a/texmf-dist/tex/latex/acrotex/contsolns.def b/texmf-dist/tex/latex/acrotex/contsolns.def deleted file mode 100644 index 84759e04..00000000 --- a/texmf-dist/tex/latex/acrotex/contsolns.def +++ /dev/null @@ -1,87 +0,0 @@ -%% -%% This is file `contsolns.def', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% contsolns.dtx (with options: `package') -%% -\@ifpackageloaded{web}{}{\PackageError{exerquiz} - {The consolns option of exerquiz requires\MessageBreak - the web package}{Use the web package.}} - -\def\setQNum{\Qlabel\ifcase\@eqquestiondepth\or\arabic{eqquestionnoi}% - \or\arabic{eqquestionnoi}(\alph{eqquestionnoii})% - \or\arabic{eqquestionnoi}(\alph{eqquestionnoii})% - (\roman{eqquestionnoiii})\fi} -\def\setENum{\Elabel\if\exerstar*\theeqexno(\alph{partno})\else - \theeqexno\fi} -\def\Qlabel{Q}\def\Elabel{E} -\def\SolContMrk#1#2{\gdef\solContMarks{{#1}{#2}}} -\def\solContMarks{{}{}} -\def\eq@sqPostHeaderHook{% - \string\SolContMrk{Q\@shortquizCnt}{\setQNum}\relax} -\def\eq@qPostHeaderHook{% - \string\SolContMrk{Q\@quizCnt}{\setQNum}\relax} -\def\exer@solnheadhook{% - \string\SolContMrk{Ex}{\setENum}} -\newlength{\promoteNPHskip} -\setlength{\promoteNPHskip}{.1\textheight} -\ifeqforpaper -\def\redefForContSolns{% - \def\prior@quizSolnHeaderHook{\promoteNewPageHere{\promoteNPHskip}} - \def\prior@exerSolnHeaderHook{\promoteNewPageHere{\promoteNPHskip}} - \eq@scratchtoks=\expandafter{\fpAfterSolutionsSkip\SolContMrk{}{}} - \edef\@tempExp{\noexpand\promoteNewPageHere{% - \noexpand\promoteNPHskip}\the\eq@scratchtoks} - \eq@scratchtoks=\expandafter{\@tempExp} - \edef\fpAfterSolutionsSkip{\the\eq@scratchtoks} - \eq@scratchtoks=\expandafter{% - \belowexsolnskip\protect\SolContMrk{}{}} - \edef\belowexsolnskip{\noexpand\noexpand - \string\promoteNewPageHere{% - \noexpand\noexpand\string\promoteNPHskip}\the\eq@scratchtoks} -} -\else -\def\redefForContSolns{% - \let\endeqSQtSAVE\endeqSQt - \def\endeqSQt{\endeqSQtSAVE\par\SolContMrk{}{}} - \let\endeqQtSAVE\endeqSQt - \def\endeqQt{\endeqQtSAVE\par\SolContMrk{}{}} - \let\endeqEXtSAVE\endeqEXt - \def\endeqEXt{\endeqEXtSAVE\par\SolContMrk{}{}} -} -\fi % \ifeqforpaper -\AtBeginDocument{\redefForContSolns} -\newcommand{\getSolContMarks}[2]{\ifcontSoln - \rfootContStr{#1}{#2}\fi} -\newcommand{\rfootContStr}[2]{Solution to {#2} continues next page} -\newif\ifcontSoln \contSolnfalse -\newcommand{\bSolContMarks}[2]{% - \def\eq@argi{#1}\def\eq@argii{#2}% - \ifx\eq@argi\@empty\global\contSolnfalse\else - \global\contSolntrue\fi} -\def\lFootbCont{\expandafter\bSolContMarks\solContMarks} -\def\rFootCont{\makebox[0pt][r]{% - \expandafter\getSolContMarks\solContMarks}} -\@ifundefined{web@footerprivate}{% - \def\addtolfooter{\expandafter - \lfooter\expandafter{\expandafter\lFootbCont\web@lfoot}}% -}{% - \def\addtolfooter{\def\web@footerprivate{\lFootbCont}}% -} -\def\addtorfooter{\expandafter - \rfooter\expandafter{\web@rfoot\rFootCont}} -\def\cs@testWH#1#2{\ifx\webfootwrapper#1 - \def\cs@next{\AtBeginDocument{\addtolfooter\addtorfooter}}\else - \def\cs@next{\PackageError{contsoln.def}{% - webheadings of the web package are NOT\MessageBreak - in effect. The contsoln.def file requires\MessageBreak - webheadings}{Use the default webheadings pagestyle - from the web package.}}\fi - \cs@next -} -\AtBeginDocument{\expandafter\cs@testWH\@oddfoot} -\endinput -%% -%% End of file `contsolns.def'. diff --git a/texmf-dist/tex/latex/acrotex/eforms.sty b/texmf-dist/tex/latex/acrotex/eforms.sty index fd54f4fe..e8ea97da 100644 --- a/texmf-dist/tex/latex/acrotex/eforms.sty +++ b/texmf-dist/tex/latex/acrotex/eforms.sty @@ -19,7 +19,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{eforms} - [2018/08/16 v2.9.20 Provides general eforms support (dps)] + [2018/11/27 v2.9.22 Provides general eforms support (dps)] \RequirePackage{ifpdf}[2006/02/20] \RequirePackage{ifxetex}[2006/08/21] \RequirePackage{ifluatex} @@ -288,8 +288,17 @@ \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 + \let\eq@AP\@empty\else\let\Off\eq@@Off\let\On\eq@@On + \ifx\annot@type\annot@type@button + \let\N\eq@pb@N\else\let\N\eq@cbrb@N\fi + \edef\eq@AP{/AP<<#1>>}\fi}\let\eq@AP\@empty +\def\eq@pb@N#1{/N \ifpdf #1 \space 0 R\else + \ifxetex #1\else{#1}\fi\fi} +\def\eq@cbrb@N#1{/N <<#1>>} +\def\eq@@On#1#2{/#1 \ifpdf #2 \space 0 R\else + \ifxetex #2\else{#2}\fi\fi} +\def\eq@@Off#1{/Off \ifpdf #1 \space 0 R\else + \ifxetex #1\else{#1}\fi\fi} \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 @@ -554,35 +563,58 @@ \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>>}} + /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} +\def\eq@relRef@null#1{0 0 R} +\ifluatex\def\eq@relRef#1{#1 \space 0 R}\else + \ifpdf\def\eq@relRef#1{#1\space 0 R}\else \ifxetex\def\eq@relRef#1{#1}\else - \def\eq@relRef#1{{#1}}\fi\fi + \def\eq@relRef#1{{#1}}\fi\fi\fi +\def\@eqimportIcons#1{\ifpdfmarkup\ifx\annot@type\annot@type@button + \def\ef@arg{#1}\ifx\ef@arg\ef@y + \ifx\eq@I\@empty\@eqI{null}\fi\fi\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\@eqI#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@I\@empty\else + \ifx\eq@arg\ef@null + \def\eq@I{/I \ef@null}\else + \def\eq@I{/I \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \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\@eqRI#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@RI\@empty\else + \ifx\eq@arg\ef@null + \def\eq@RI{/RI \ef@null}\else + \def\eq@RI{/RI \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \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\@eqIX#1{% + \ifx\annot@type\annot@type@button + \def\eq@arg{#1}% + \ifx\eq@arg\@empty + \let\eq@IX\@empty\else + \ifx\eq@arg\ef@null + \def\eq@IX{/IX \ef@null}\else + \def\eq@IX{/IX \eq@relRef{#1}}% + \fi + \fi + \eq@define@IconMK + \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} @@ -1054,6 +1086,9 @@ \mbox{\combo@@Box{#1}{#2}{#3}{#4}{#5}{}{\eq@setWidgetProps \eq@choice@driver}{\comboBoxDefaults\every@comboBox}}% } +\def\eq@APX{\ifx\eq@I\@empty\eq@AP\else + /AP<< \expandafter\get@NIR\eq@I\@nil\space>>\fi} +\def\get@NIR/#1 #2\@nil{/N #2} \def\common@pushButtonCode{% /Subtype/Widget /T (\Fld@name) @@ -1063,12 +1098,9 @@ \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 + \eq@APX /DA (\eq@DA) \eq@A\eq@AA \eq@rawPDF diff --git a/texmf-dist/tex/latex/acrotex/eqbr.def b/texmf-dist/tex/latex/acrotex/eqbr.def index 95be10d9..4eac309c 100644 --- a/texmf-dist/tex/latex/acrotex/eqbr.def +++ b/texmf-dist/tex/latex/acrotex/eqbr.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqcat.def b/texmf-dist/tex/latex/acrotex/eqcat.def index e0c78acb..833a2e4a 100644 --- a/texmf-dist/tex/latex/acrotex/eqcat.def +++ b/texmf-dist/tex/latex/acrotex/eqcat.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqcolor.def b/texmf-dist/tex/latex/acrotex/eqcolor.def index 77bb0d39..08548987 100644 --- a/texmf-dist/tex/latex/acrotex/eqcolor.def +++ b/texmf-dist/tex/latex/acrotex/eqcolor.def @@ -17,7 +17,6 @@ %% 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{% diff --git a/texmf-dist/tex/latex/acrotex/eqcz.def b/texmf-dist/tex/latex/acrotex/eqcz.def index 15ef0e7d..60100616 100644 --- a/texmf-dist/tex/latex/acrotex/eqcz.def +++ b/texmf-dist/tex/latex/acrotex/eqcz.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqda.def b/texmf-dist/tex/latex/acrotex/eqda.def index 95e4b95d..516dbb0a 100644 --- a/texmf-dist/tex/latex/acrotex/eqda.def +++ b/texmf-dist/tex/latex/acrotex/eqda.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqde.def b/texmf-dist/tex/latex/acrotex/eqde.def index 94f21c6b..58c58620 100644 --- a/texmf-dist/tex/latex/acrotex/eqde.def +++ b/texmf-dist/tex/latex/acrotex/eqde.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqes.def b/texmf-dist/tex/latex/acrotex/eqes.def index 680738d0..eee11979 100644 --- a/texmf-dist/tex/latex/acrotex/eqes.def +++ b/texmf-dist/tex/latex/acrotex/eqes.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqexam.def b/texmf-dist/tex/latex/acrotex/eqexam.def index 0d2665cd..8927b344 100644 --- a/texmf-dist/tex/latex/acrotex/eqexam.def +++ b/texmf-dist/tex/latex/acrotex/eqexam.def @@ -7,7 +7,7 @@ %% exerquiz.dtx (with options: `eqexam') %% \ProvidesFile{eqexam.def} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % Exerquiz support file for eqexam (dps)] \let\eq@YES=y \let\eq@NO=n \let\eq@One=1 \let\eq@Zero=0 diff --git a/texmf-dist/tex/latex/acrotex/eqfin.def b/texmf-dist/tex/latex/acrotex/eqfin.def index c05ff709..0b30e6a9 100644 --- a/texmf-dist/tex/latex/acrotex/eqfin.def +++ b/texmf-dist/tex/latex/acrotex/eqfin.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqfr.def b/texmf-dist/tex/latex/acrotex/eqfr.def index ef3f5a46..fc4dbd96 100644 --- a/texmf-dist/tex/latex/acrotex/eqfr.def +++ b/texmf-dist/tex/latex/acrotex/eqfr.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqit.def b/texmf-dist/tex/latex/acrotex/eqit.def index 65cf7e31..779dc46a 100644 --- a/texmf-dist/tex/latex/acrotex/eqit.def +++ b/texmf-dist/tex/latex/acrotex/eqit.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqnl.def b/texmf-dist/tex/latex/acrotex/eqnl.def index ece9db37..d9a69c2b 100644 --- a/texmf-dist/tex/latex/acrotex/eqnl.def +++ b/texmf-dist/tex/latex/acrotex/eqnl.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqno.def b/texmf-dist/tex/latex/acrotex/eqno.def index fee78977..ec415737 100644 --- a/texmf-dist/tex/latex/acrotex/eqno.def +++ b/texmf-dist/tex/latex/acrotex/eqno.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqpo.def b/texmf-dist/tex/latex/acrotex/eqpo.def index b9b52bce..8e323a98 100644 --- a/texmf-dist/tex/latex/acrotex/eqpo.def +++ b/texmf-dist/tex/latex/acrotex/eqpo.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqru.def b/texmf-dist/tex/latex/acrotex/eqru.def index 7fd549d4..094b31e4 100644 --- a/texmf-dist/tex/latex/acrotex/eqru.def +++ b/texmf-dist/tex/latex/acrotex/eqru.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/eqtr.def b/texmf-dist/tex/latex/acrotex/eqtr.def index b24f35d3..7dc32f92 100644 --- a/texmf-dist/tex/latex/acrotex/eqtr.def +++ b/texmf-dist/tex/latex/acrotex/eqtr.def @@ -18,7 +18,6 @@ %% 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 %% diff --git a/texmf-dist/tex/latex/acrotex/exerquiz.sty b/texmf-dist/tex/latex/acrotex/exerquiz.sty index c12a83b7..19477b43 100644 --- a/texmf-dist/tex/latex/acrotex/exerquiz.sty +++ b/texmf-dist/tex/latex/acrotex/exerquiz.sty @@ -19,7 +19,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{exerquiz} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)] \usepackage{keyval} \RequirePackage{ifpdf}[2006/02/20] @@ -3506,8 +3506,9 @@ if (_bOK) {\jsR\jsT \allowNoAlertBox \newcommand\RespBoxNT{\RespBoxMath} \newcommand\RespBox{\RespBoxMath} +\def\eqsanitize{\@makeother\_\@makeother\^\@makeother\&} \newcommand\RespBoxMath{\def\rbFlag{0}\begingroup\Hy@unicodefalse - \@makeother\^\@makeother\&\@RespBox} + \eqsanitize\@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} @@ -3553,7 +3554,7 @@ var\eqSP_substValue=getSubstValue(_substVars,event.value);\RorRT 0\ifx\grpquestions1,\thegrpquestionno\fi);\r }\r if (!isQuizInitialized("\currQuiz")) {\r\t - \eqObjAlert\space eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t + \eqObjAlert eqAppAlert(InitMsg("\bqlabelISO"),3);\r\t event.rc = false;\r } } @@ -3592,7 +3593,7 @@ var\eqSP_substValue=getSubstValue(_substVars,event.value);\RorRT var\eqSP_mathVars=\indepVars;\r\t var\eqSP retn=\processJSfunc(\rbArgs,\compareJSfunc); \fi -\if\@sqTurnOffAlerts1\r\t +\if\@sqTurnOffAlerts1% OnBlurRespBox(retn,"\curr@quiz"); \fi \eqAddAAKeystroke\r @@ -3807,7 +3808,7 @@ var\eqSP_substValue=getSubstValue(_substVars,event.value);\RorRT \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} + \else if (false) \fi\fi\fi} \begin{defineJS}[% \catcode`\@=0\relax\catcode`\%=14\relax]{\AAKqRespBoxTxt} if(event.willCommit){ diff --git a/texmf-dist/tex/latex/acrotex/template.def b/texmf-dist/tex/latex/acrotex/template.def index 62b9307f..cbe29df9 100644 --- a/texmf-dist/tex/latex/acrotex/template.def +++ b/texmf-dist/tex/latex/acrotex/template.def @@ -18,7 +18,7 @@ %% License, or (at your option) any later version. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesFile{template.def} - [2018/03/21 v8.2.2 % + [2018/10/03 v8.2.5 % Exerquiz template for language support (dps)] %%------------- Instructions ------------------------------------ %% Make your language localizations to this file and rename it to @@ -251,7 +251,6 @@ \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 65d1b790..7f9f1d83 100644 --- a/texmf-dist/tex/latex/acrotex/uieforms.def +++ b/texmf-dist/tex/latex/acrotex/uieforms.def @@ -237,6 +237,11 @@ \ifcase\nr\relax\@eqmlfix{y}\or \@eqmlfix{n}\fi }{} +\define@choicekey{eforms}{importicons}[\val\nr]{yes,no} +{% + \ifcase\nr\relax\@eqimportIcons{y}\or + \@eqimportIcons{n}\fi +}{} \define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}} \define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}} \define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}} diff --git a/texmf-dist/tex/latex/acrotex/usemcfi.def b/texmf-dist/tex/latex/acrotex/usemcfi.def index 7f89c002..d9a38acf 100644 --- a/texmf-dist/tex/latex/acrotex/usemcfi.def +++ b/texmf-dist/tex/latex/acrotex/usemcfi.def @@ -17,7 +17,6 @@ %% 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 |