summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--texmf-dist/doc/latex/acrotex/README.md5
-rw-r--r--texmf-dist/doc/latex/acrotex/aeb_man.pdfbin1347884 -> 1339986 bytes
-rw-r--r--texmf-dist/doc/latex/acrotex/eformman.pdfbin1169604 -> 1099178 bytes
-rw-r--r--texmf-dist/doc/latex/acrotex/eformman.tex19
-rw-r--r--texmf-dist/doc/latex/acrotex/examples/jquiztst.pdfbin126992 -> 307087 bytes
-rw-r--r--texmf-dist/doc/latex/acrotex/examples/jquiztst.tex2
-rw-r--r--texmf-dist/source/latex/acrotex/eforms.dtx126
-rw-r--r--texmf-dist/source/latex/acrotex/exerquiz.dtx112
-rw-r--r--texmf-dist/source/latex/acrotex/web.dtx4
-rw-r--r--texmf-dist/tex/latex/acrotex/aebdocfmt.def4
-rw-r--r--texmf-dist/tex/latex/acrotex/aebjs.def26
-rw-r--r--texmf-dist/tex/latex/acrotex/aebrandom.def3
-rw-r--r--texmf-dist/tex/latex/acrotex/aebsumrytbls.def3
-rw-r--r--texmf-dist/tex/latex/acrotex/contsolns.def87
-rw-r--r--texmf-dist/tex/latex/acrotex/eforms.sty94
-rw-r--r--texmf-dist/tex/latex/acrotex/eqbr.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqcat.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqcolor.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqcz.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqda.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqde.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqes.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqexam.def2
-rw-r--r--texmf-dist/tex/latex/acrotex/eqfin.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqfr.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqit.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqnl.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqno.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqpo.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqru.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/eqtr.def1
-rw-r--r--texmf-dist/tex/latex/acrotex/exerquiz.sty11
-rw-r--r--texmf-dist/tex/latex/acrotex/template.def3
-rw-r--r--texmf-dist/tex/latex/acrotex/uieforms.def5
-rw-r--r--texmf-dist/tex/latex/acrotex/usemcfi.def1
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
index a16c0c3b..36e63fe8 100644
--- a/texmf-dist/doc/latex/acrotex/aeb_man.pdf
+++ b/texmf-dist/doc/latex/acrotex/aeb_man.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrotex/eformman.pdf b/texmf-dist/doc/latex/acrotex/eformman.pdf
index 17818148..25815958 100644
--- a/texmf-dist/doc/latex/acrotex/eformman.pdf
+++ b/texmf-dist/doc/latex/acrotex/eformman.pdf
Binary files differ
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
index 1d9b17ab..7a3dff6c 100644
--- a/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf
+++ b/texmf-dist/doc/latex/acrotex/examples/jquiztst.pdf
Binary files differ
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