summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/acrotex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-08 03:00:28 +0000
committerNorbert Preining <norbert@preining.info>2020-01-08 03:00:28 +0000
commit1b3f15203efd63cdab3fb47f37ff5f6c10558477 (patch)
treed9e957055fddd80101debe41dced62c1fe4a0c1a /macros/latex/contrib/acrotex
parentdf03e5b3de4cbd1ded325d15714456336229a223 (diff)
CTAN sync 202001080300
Diffstat (limited to 'macros/latex/contrib/acrotex')
-rw-r--r--macros/latex/contrib/acrotex/README.md6
-rw-r--r--macros/latex/contrib/acrotex/acrotex.ins2
-rw-r--r--macros/latex/contrib/acrotex/aeb-comment.sty327
-rw-r--r--macros/latex/contrib/acrotex/doc/aeb_man.tex4
-rw-r--r--macros/latex/contrib/acrotex/examples/jquiztst.pdfbin250926 -> 355221 bytes
-rw-r--r--macros/latex/contrib/acrotex/exerquiz.dtx112
-rw-r--r--macros/latex/contrib/acrotex/web.dtx2
7 files changed, 289 insertions, 164 deletions
diff --git a/macros/latex/contrib/acrotex/README.md b/macros/latex/contrib/acrotex/README.md
index 2ea307d34f..f226cb3297 100644
--- a/macros/latex/contrib/acrotex/README.md
+++ b/macros/latex/contrib/acrotex/README.md
@@ -1,6 +1,6 @@
The AcroTeX eDucation Bundle
Author: D. P. Story
-Dated: 2019-12-17
+Dated: 2020-01-01
AeB contains the following:
@@ -19,6 +19,10 @@ AeB contains the following:
6) Documentation for AeB (AcroTeX eDucatation Bundle) and eForms
(including insdljs and dljslib).
+What's New (2020-01-01) Replace use of \count0 with new counter \eqtmpcnta,
+in situation, the value of \count0 was leaking out giving incorrect page
+numbers.
+
What's New (2019-12-17) Defined \InputExrSolnsLevel and \InputQzSolnsLevel to
make it easy to change the section-type for the solution pages.
diff --git a/macros/latex/contrib/acrotex/acrotex.ins b/macros/latex/contrib/acrotex/acrotex.ins
index 8430431157..3afd02ab57 100644
--- a/macros/latex/contrib/acrotex/acrotex.ins
+++ b/macros/latex/contrib/acrotex/acrotex.ins
@@ -57,7 +57,7 @@
\generate{%
\file{exerquiz.sty}{\from{exerquiz.dtx}{copyright,package}}
\file{aebjs.def}{\from{exerquiz.dtx}{copyright,aebjs}}
- \file{eqexam.def}{\from{exerquiz.dtx}{eqexam}}
+% \file{eqexam.def}{\from{exerquiz.dtx}{eqexam}}
\file{aebrandom.def}{\from{exerquiz.dtx}{copyright,randomize}}
\file{aebsumrytbls.def}{\from{exerquiz.dtx}{copyright,sumrytbls}}
\file{usemcfi.def}{\from{exerquiz.dtx}{copyright,mcfi}}
diff --git a/macros/latex/contrib/acrotex/aeb-comment.sty b/macros/latex/contrib/acrotex/aeb-comment.sty
index fd14ef739c..11b849fee5 100644
--- a/macros/latex/contrib/acrotex/aeb-comment.sty
+++ b/macros/latex/contrib/acrotex/aeb-comment.sty
@@ -1,35 +1,54 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This is an unmodified version of comment.sty (version 3.2) that is distributed
-% with acrotex under the name of aeb-comment.sty. D. P. Story (dpstory at acrotex dot net)
-% 2019/12/18 (dps): Defined \CommentCutFile
%
-% Comment.sty version 3.2, August 1997
+% This is version 3.8, July 2016 of the original comment.sty
+% eqexam (2020/01/06) is now compatable with this version.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Comment.sty version 3.8, July 2016
+% copyright 1998-2016 Victor Eijkhout
+%
+% Purpose:
% selectively in/exclude pieces of text: the user can define new
% comment versions, and each is controlled separately.
% Special comments can be defined where the user specifies the
% action that is to be taken with each comment line.
%
-% This style can be used with plain TeX or LaTeX, and probably
-% most other packages too.
-%
% Author
% Victor Eijkhout
-% Department of Mathematics
-% University of California
-% 405 Hilgard Ave, MS 6363
-% Los Angeles, CA 90034
+% Texas Advanced Computing Center
+% The University of Texas at Austin
+% Austin TX 78758
% USA
%
-% eijkhout@math.ucla.edu
+% victor@eijkhout.net
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License
+% as published by the Free Software Foundation; either version 2
+% of the License, or (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% For a copy of the GNU General Public License, write to the
+% Free Software Foundation, Inc.,
+% 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA,
+% or find it on the net, for instance at
+% http://www.gnu.org/copyleft/gpl.html
%
-% Usage: all text included in between
-% \comment ... \endcomment
-% or \begin{comment} ... \end{comment}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Usage: all text included between
+% \begin{comment}
+% ...
+% \end{comment}
% is discarded.
+%
% The opening and closing commands should appear on a line
% of their own. No starting spaces, nothing after it.
% This environment should work with arbitrary amounts
-% of comment.
+% of comment, and the comment can be arbitrary text.
%
% Other `comment' environments are defined by
% and are selected/deselected with
@@ -37,40 +56,104 @@
% \excludecoment{versionb}
%
% These environments are used as
-% \versiona ... \endversiona
-% or \begin{versiona} ... \end{versiona}
+% \begin{versiona} ... \end{versiona}
% with the opening and closing commands again on a line of
% their own.
%
-% LaTeX users note: for an included comment, the
+% This is not a LaTeX environment: for an included comment, the
% \begin and \end lines act as if they don't exist.
-% In particular, assignments &c are not local.
+% In particular, they don't imply grouping, so assignments
+% &c are not local.
+%
+%%
+%% Guide to special effects
+%%
+% To understand what happens here, you need to know just a bit about
+% the implementation. Lines inside a comment are scooped up one at a
+% time, and written to an external file. This file can then be
+% included, or ignored. Or you can do stuff with it as you'll see now.
%
% Special comments are defined as
% \specialcomment{name}{before commands}{after commands}
% where the second and third arguments are executed before
-% and after each comment block.
-% By defining a control sequence
-% \Thiscomment##1{...} in the before commands the user can
-% specify what is to be done with each comment line.
+% and after each comment block. You can use this for global
+% formatting commands.
% To keep definitions &c local, you can include \begingroup
% in the `before commands' and \endgroup in the `after commands'.
+% ex:
+% \specialcomment{smalltt}
+% {\begingroup\ttfamily\footnotesize}{\endgroup}
+% Of course, in this case you could probably have used the standard
+% LaTeX \newenvironment.
+%
+% With \specialcomment you do *not* have to do an additional
+% \includecomment{smalltt}
+% To remove 'smalltt' blocks, give \excludecomment{smalltt}
+% after the definition.
+%
+% The comment environments use two auxiliary commands. You can get
+% nifty special effects by redefining them.
+% 1/ the commented text is written to an external file. Default definition:
+% \def\CommentCutFile{comment.cut}
+% 2/ included comments are processed like this:
+% \def\ProcessCutFile{\input{\CommentCutFile}\relax}
+% and excluded files have
+% \def\ProcessCutFile{}
%
-% Basic approach:
-% to comment something out, scoop up every line in verbatim mode
-% as macro argument, then throw it away.
-% For inclusions, in LaTeX the block is written out to
-% a file "comment.cut", which is then included.
-% In plain TeX (and other formats) both the opening and
-% closing commands are defined as noop.
+% Fun use of special comments: the inclusion of the comment is done
+% by \ProcessCutFile, so you can redefine that:
+% \specialcomment{mathexamplewithcode}
+% {\begingroup\def\ProcessCutFile{}} %1
+% {\verbatiminput{\CommentCutFile} %2
+% \endgroup
+% This gives:
+% \begin{equation} \input{\CommentCutFile} \end{equation}
+% }
+% 1: do not standard include the file
+% 2: input it verbatim, then again inside display math
%
-% Trick for short in/exclude macros (\maybe{this snippet}):
-%\includeversion{cond}
+% You can also apply processing to each line.
+% By defining a control sequence
+% \def\Thiscomment##1{...} in the before commands the user can
+% specify what is to be done with each comment line. If something
+% needs to be written to file, use \WriteCommentLine{the stuff}
+% Example:
+% \specialcomment{underlinecomment}
+% {\def\ThisComment##1{\WriteCommentLine{\underline{##1}\par}}
+% \par}
+% {\par}
+%
+% Trick for short in/exclude macros (such as \maybe{this snippet}):
+%\includecomment{cond}
%\newcommand{\maybe}[1]{}
%\begin{cond}
%\renewcommand{\maybe}[1]{#1}
%\end{cond}
%
+% Changes in 3.8
+% - utf8 is now correctly handled, at least if you use eTeX.
+% (Thanks Henry Gregory for the solution)
+% Changes in 3.7
+% - only LaTeX support from now on
+% - code cleanup, and improvements on \specialcomment
+% - cleanup of the docs.
+% Changed in 3.6
+% - documentation update
+% - comment file inclusion is now a customizable command
+% Changes in 3.5
+% - corrected typo in header.
+% - changed author email
+% - corrected \specialcomment yet again.
+% - fixed excludecomment of an earlier defined environment.
+% Changes in 3.4
+% - added GNU public license
+% - added \processcomment, because Ivo's fix (above) brought an
+% inconsistency to light.
+% Changes in 3.3
+% - updated author's address again
+% - parametrised \CommentCutFile
+% Changes in 3.2
+% - \specialcomment brought up to date (thanks to Ivo Welch).
% Changes in version 3.1
% - updated author's address
% - cleaned up some code
@@ -83,108 +166,132 @@
% \end{env}
% Isn't that something ...
% - included comments are written to file and input again.
-% Changes in 3.2
-% - \specialcomment brought up to date (thanks to Ivo Welch).
+%
+% Known bugs:
+% - excludecomment leads to one superfluous space
+% - processcomment leads to a superfluous line break at the start
%
\def\makeinnocent#1{\catcode`#1=12 }
\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
\def\latexname{lplain}\def\latexename{LaTeX2e}
\newwrite\CommentStream
+\def\DefaultCutFileName{\def\CommentCutFile{comment.cut}}
+\DefaultCutFileName
-\def\ProcessComment#1{\begingroup
- \def\CurrentComment{#1}%
+% begin / end processing
+%
+% this contains the only real begin/endgroup commands, to keep the
+% catcode changes local.
+\def\ProcessComment#1% start it all of
+ {\def\CurrentComment{#1}%
+ \begingroup
\let\do\makeinnocent \dospecials
\makeinnocent\^^L% and whatever other special cases
- \endlinechar`\^^M \catcode`\^^M=12 \fxComment}
+ \endlinechar`\^^M\relax \catcode`\^^M=12\relax \xComment}
{\catcode`\^^M=12 \endlinechar=-1 %
- \gdef\fxComment#1^^M{\xComment}
- \gdef\xComment#1^^M{\def\test{#1}
+ \gdef\xComment#1^^M{\ProcessCommentLine}
+ \gdef\ProcessCommentLine#1^^M{\def\test{#1}
\csarg\ifx{End\CurrentComment Test}\test
- \edef\next{\noexpand\EndOfComment{\CurrentComment}}%
- \else \ThisComment{#1}\let\next\xComment
+ \edef\next{\endgroup\noexpand\EndOfComment{\CurrentComment}}%
+ \else \ThisComment{#1}\let\next\ProcessCommentLine
\fi \next}
}
-% 3.1 change: in LaTeX and LaTeX2e prevent grouping
-\if 0%
-\ifx\fmtname\latexename
- 0%
-\else \ifx\fmtname\latexname
- 0%
- \else
- 1%
-\fi \fi
-%%%%
-%%%% definitions for LaTeX
-%%%%
-\edef\restoreat{\catcode\noexpand`\noexpand\@=\the\catcode`\@\relax}
-\def\CommentCutFile{comment.cut} % 2019/12/18
-\makeatletter
-\def\AfterIncludedComment
- {\immediate\closeout\CommentStream
- \input{\CommentCutFile}\relax
- }%
-\def\WriteCommentLine#1{\immediate\write\CommentStream{#1}}
-\def\BeforeIncludedComment{\immediate\openout\CommentStream=\CommentCutFile
- \let\ThisComment\WriteCommentLine}
+%%
+%% Initial action: SetUpCutFile opens the CommentCutFile
+%% hook for initial actions: PrepareCutFile, default null
+%%
+\def\SetUpCutFile
+ {\immediate\openout\CommentStream=\CommentCutFile
+ \PrepareCutFile}
+\def\PrepareCutFile{}
+
+%%
+%% Each line action: ThisComment,
+%% default: WriteCommentLine on line contents
+%% version 3.8: write unexpanded if using eTeX
+%%
+\expandafter\ifx\csname eTeXversion\endcsname\relax
+ \long\def\WriteCommentLine#1{\immediate\write\CommentStream{#1}}
+\else
+ \long\def\WriteCommentLine#1{\immediate\write\CommentStream{\unexpanded{#1}}}
+\fi
+\let\ThisComment\WriteCommentLine
+
+%%
+%% Final action: ProcessCutFile
+%% hook for final action before file closing: FinalizeCutFile, default null
+%%
+\def\ProcessCutFile
+ {\message{Straight input of \CommentCutFile.}%
+ \input{\CommentCutFile}\relax}
+\def\CloseAndInputCutFile
+ {\FinalizeCutFile
+ \immediate\closeout\CommentStream
+ \ProcessCutFile}
+\def\FinalizeCutFile{}
+
+%%
+%% Define the different comment types
+%%
+% included comments: all the default actions
\def\includecomment
#1{\message{Include comment '#1'}%
- \csarg\let{After#1Comment}\AfterIncludedComment
- \csarg\def{#1}{\BeforeIncludedComment
- \ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{\CloseAndInputCutFile}
+ \csarg\def{#1}{\endgroup \message{Including '#1' comment.}%
+ \DefaultCutFileName \SetUpCutFile \ProcessComment{#1}}%
+ \CommentEndDef{#1}}
+% excluded comment: also default
+\def\excludecomment
+ #1{\message{Excluding comment '#1'}%
+ \csarg\def{#1}{\endgroup \message{Excluding '#1' comment.}%
+ \begingroup
+ \DefaultCutFileName \def\ProcessCutFile{}%
+ \def\ThisComment####1{}\ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{\CloseAndInputCutFile \endgroup}
\CommentEndDef{#1}}
+% special comment
\long\def\specialcomment
#1#2#3{\message{Special comment '#1'}%
- \csarg\def{After#1Comment}{#2\AfterIncludedComment#3}%
- \csarg\def{#1}{\BeforeIncludedComment
+ \csarg\def{#1}{\endgroup \message{Processing '#1' comment.}%
+ \DefaultCutFileName
+ #2\relax \SetUpCutFile
+ % #2 before SetUp, so we can do renaming.
+ \message{Comment '#1' writing to \CommentCutFile.}%
\ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{\CloseAndInputCutFile #3}%
\CommentEndDef{#1}}
-\restoreat
-\else
-%%%%
-%%%%plain TeX and other formats
-%%%%
-\def\includecomment
- #1{\message{Including comment '#1'}%
- \csarg\def{#1}{}%
- \csarg\def{end#1}{}}
-\long\def\specialcomment
- #1#2#3{\message{Special comment '#1'}%
- \csarg\def{#1}{\def\ThisComment{}\def\AfterComment{#3}#2%
- \ProcessComment{#1}}%
+\long\def\generalcomment
+ #1#2#3{\message{General comment '#1'}%
+ \csarg\def{#1}{\endgroup % counter the environment open of LaTeX
+ #2 \relax \SetUpCutFile \ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{\CloseAndInputCutFile #3}%
\CommentEndDef{#1}}
-\fi
-
-%%%%
-%%%% general definition of skipped comment
-%%%%
-\def\excludecomment
- #1{\message{Excluding comment '#1'}%
- \csarg\def{#1}{\let\AfterComment\relax
- \def\ThisComment####1{}\ProcessComment{#1}}%
+\long\def\processcomment
+ #1#2#3#4{\message{Lines-Processing comment '#1'}%
+ \csarg\def{#1}{\endgroup \SetUpCutFile #2\relax
+ \ProcessComment{#1}}%
+ \csarg\def{After#1Comment}{#3\CloseAndInputCutFile #4}%
+ \CommentEndDef{#1}}
+\def\leveledcomment
+ #1#2{\message{Include comment '#1' up to level '#2'}%
+ %\csarg\newif{if#1IsStreamingComment}
+ %\csarg\newif{if#1IsLeveledComment}
+ %\csname #1IsLeveledCommenttrue\endcsname
+ \csarg\let{After#1Comment}\CloseAndInputCutFile
+ \csarg\def{#1}{\SetUpCutFile
+ \ProcessCommentWithArg{#1}}%
\CommentEndDef{#1}}
-\if 0%
-\ifx\fmtname\latexename
- 0%
-\else \ifx\fmtname\latexname
- 0%
- \else
- 1%
-\fi \fi
-% latex & latex2e:
-\def\EndOfComment#1{\endgroup\end{#1}%
- \csname After#1Comment\endcsname}
+\makeatletter
+\def\EndOfComment#1{%
+ \csname After#1Comment\endcsname
+ % sabotage LaTeX's environment testing
+ \begingroup\def\@currenvir{#1}\end{#1}}
\def\CommentEndDef#1{{\escapechar=-1\relax
\csarg\xdef{End#1Test}{\string\\end\string\{#1\string\}}%
}}
-\else
-% plain & other
-\def\EndOfComment#1{\endgroup\AfterComment}
-\def\CommentEndDef#1{{\escapechar=-1\relax
- \csarg\xdef{End#1Test}{\string\\end#1}%
- }}
-\fi
+\makeatother
\excludecomment{comment}
diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.tex b/macros/latex/contrib/acrotex/doc/aeb_man.tex
index 032ec52ed7..5b9744d5bd 100644
--- a/macros/latex/contrib/acrotex/doc/aeb_man.tex
+++ b/macros/latex/contrib/acrotex/doc/aeb_man.tex
@@ -232,10 +232,10 @@
\university{{\AcroT} Software Development Team}
\email{dpstory@acrotex.net}
\versionLabel{Dated:}
-\version{2019/12/17}
+\version{2020/01/01}
\copyrightyears{1999-\the\year}
\nocopyright
-\prepared{2019/12/17}
+\prepared{2020/01/01}
\revisionLabel{Distribution Dated:}
\copyrightStatus{True}
diff --git a/macros/latex/contrib/acrotex/examples/jquiztst.pdf b/macros/latex/contrib/acrotex/examples/jquiztst.pdf
index 9ca2b2ab8a..70229d4eef 100644
--- a/macros/latex/contrib/acrotex/examples/jquiztst.pdf
+++ b/macros/latex/contrib/acrotex/examples/jquiztst.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/exerquiz.dtx b/macros/latex/contrib/acrotex/exerquiz.dtx
index 275fffcb54..255756e0d1 100644
--- a/macros/latex/contrib/acrotex/exerquiz.dtx
+++ b/macros/latex/contrib/acrotex/exerquiz.dtx
@@ -4,7 +4,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Exerquiz.sty package, %%
-%% Copyright (C) 1999-2019 D. P. Story %%
+%% Copyright (C) 1999-2020 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -22,7 +22,7 @@
%<randomize>\ProvidesFile{aebrandom.def}
%<sumrytbls>\ProvidesFile{aebsumrytbls.def}
%<template>\ProvidesFile{template.`def}
-%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2019/12/17 v8.5.5 %
+%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2020/01/01 v8.5.8 %
%<package> Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)]
%<driver> Exerquiz documentation driver file (dps)]
%<aebjs> Exerquiz document level JavaScript (dps)]
@@ -1360,6 +1360,15 @@
% \begin{macrocode}
\newcounter{quizno} \setcounter{quizno}{0}
\renewcommand\thequizno{\alph{quizno}}
+% \end{macrocode}
+% (2020/01/01) In certain circumstances, page numbering is incorrect; traced it to the
+% use of \cs{count0}/\cs{count\cs{z@}}, possibly not used within a group. As a fix,
+% replaced this usage with the counter \cs{eqtmpcnta}.
+% \changes{v8.5.7}{2020/01/01}{added public counter \string\cs{eqtmpcnta}}
+% \changes{v8.5.8}{2020/01/01}{Replaced \string\cs{count\cs{z@}} and \cs{count0} with \string\cs{eqtmpcnta},
+% this fixed the page number leakage problem}
+% \begin{macrocode}
+\newcount\eqtmpcnta
%</package|eqexam>
%<*package>
\def\theHquizno{\curr@quiz.\theeqquestionnoi.%
@@ -3627,8 +3636,8 @@
% We have to increase the \texttt{tocdepth} so hyperref will create the bookmark at the
% subsection level.
% \begin{macrocode}
-{\count0=\value{tocdepth}
-\advance\count0by2 \xdef\eqbmkmrkdepth{\the\count0}}
+{\eqtmpcnta\value{tocdepth}
+\advance\eqtmpcnta\tw@ \xdef\eqbmkmrkdepth{\the\eqtmpcnta}}
\@ifundefined{Hy@bookmarksdepth}
{\setcounter{tocdepth}{\eqbmkmrkdepth}}
{\hypersetup{bookmarksdepth=\eqbmkmrkdepth}}
@@ -3904,8 +3913,8 @@
% \begin{macrocode}
\xdef\eq@pageThisQ{\the\c@page}%
\let\@currentQues\@empty
- {\count0=\@shortquizCnt \advance\count0by1\relax
- \xdef\@shortquizCnt{\the\count0}}%
+ {\eqtmpcnta\@shortquizCnt\relax\advance\eqtmpcnta\@ne
+ \xdef\@shortquizCnt{\the\eqtmpcnta}}%
\goodbreak\@ifstar{\sqForms\@shortquiz}%
{\if\aeb@FLOverride\eq@f\def\sqstar{*}\else
\def\sqstar{}\sqLinks\fi\@shortquiz}%
@@ -3926,8 +3935,8 @@
\newenvironment{shortquiz*}
{%
\xdef\eq@pageThisQ{\the\c@page}%
- {\count0=\@shortquizCnt\advance\count0by1\relax
- \xdef\@shortquizCnt{\the\count0 }}%
+ {\eqtmpcnta\@shortquizCnt\relax\advance\eqtmpcnta\@ne
+ \xdef\@shortquizCnt{\the\eqtmpcnta}}%
\sqForms\@shortquiz
}{\aeb@endshortquiz}
% \end{macrocode}
@@ -4220,18 +4229,22 @@
% it issues a \cs{newpage}.
% \changes{v6.4s}{2012/06/03}{Added \cs{promoteNewPageHere}}
% \changes{v6.8a}{2014/01/01}{Made an optional argument, but test for required argument as swell.}
+% \changes{v8.5.6}{2020/01/01}{\string\promoteNewPageHere: added condition, first arg must be greater
+% then 0pt; otherwise, do nothing}
% \begin{macrocode}
\newcommand\pnphDflt{.1\textheight}
\newcommand{\promoteNewPageHere}[1][\pnphDflt]{%
\@ifnextchar\bgroup{\eq@promoteNewPageHere}
{\eq@promoteNewPageHere{#1}}%
}
-\def\eq@promoteNewPageHere#1{\par
+\def\eq@promoteNewPageHere#1{\setlength{\@tempdimb}{#1}%
+ \ifdim\@tempdima>\z@\par
\bgroup\@nobreakfalse\addpenalty{-500}%
- \setlength{\@tempdimb}{#1}\@tempdima \pagegoal
+% \setlength{\@tempdimb}{#1}
+ \@tempdima \pagegoal
\advance \@tempdima -\pagetotal
\ifdim \@tempdima<\@tempdimb\ifnum\col@number>\@ne\columnbreak
- \else\newpage\penalty1\fi\fi\egroup
+ \else\newpage\penalty1\fi\fi\egroup\fi
}
% \end{macrocode}
% The two macros\DescribeMacro{\saveDest}\cs{saveDest} and \DescribeMacro{\useDest}\cs{useDest} are used,
@@ -4613,8 +4626,8 @@
% \end{macrocode}
% Update the internal quiz counter.
% \begin{macrocode}
- {\count0=\@quizCnt\advance\count0by1\relax
- \xdef\@quizCnt{\the\count0 }}%
+ {\eqtmpcnta\@quizCnt\advance\eqtmpcnta\@ne
+ \xdef\@quizCnt{\the\eqtmpcnta}}%
% \end{macrocode}
% We try to support {\LaTeX}'s cross-referencing system by defining
% \cs{@currentlabel}, \cs{@currentHlabel}, and \cs{@currentlabelname}.
@@ -7151,20 +7164,21 @@ if (_bOK) {\jsR\jsT
% \changes{v6.7g}{2013/08/09}{Changed \texttt{\#1} to \cs{the}\cs{@temptokena} Fixing
% a nasty bug. Reported by Christopher C.}
% \begin{macrocode}
-\def\defineEachAns#1{\advance\count0by1\relax
+\def\defineEachAns#1{\advance\eqtmpcnta\@ne
\@temptokena={#1}\csarg\xdef
- {SavedAns\bChoiceLabel-Idx\the\count0}{\the\@temptokena}%
+ {SavedAns\bChoiceLabel-Idx\the\eqtmpcnta}{\the\@temptokena}%
\ifsolutionsonly\else
{\let\\\relax\eq@IWDefs{\string
- \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\count0}%
+ \csarg\string\gdef{SavedAns\bChoiceLabel-Idx\the\eqtmpcnta}%
{\the\@temptokena}}}\fi
}
-\def\defineEachChoice#1{\advance\count0by1\relax
+\def\defineEachChoice#1{\advance\eqtmpcnta\@ne
\@temptokena={#1}\csarg\xdef
- {SavedAlts\bChoiceLabel-Idx\the\count0}%
+ {SavedAlts\bChoiceLabel-Idx\the\eqtmpcnta}%
{\the\@temptokena}\ifsolutionsonly\else
{\let\\\relax\eq@IWDefs{\string
- \csarg\string\gdef{SavedAlts\bChoiceLabel-Idx\the\count0}%
+ \csarg\string
+ \gdef{SavedAlts\bChoiceLabel-Idx\the\eqtmpcnta}%
{\the\@temptokena}}}\fi
}
\def\processLabeledAns{%
@@ -7183,24 +7197,24 @@ if (_bOK) {\jsR\jsT
\xdef{SavedAns\bChoiceLabel}{\the\toks@}%
\ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string
\csarg\string\gdef{SavedAns\bChoiceLabel}{\the\toks@}}}\fi
- \count0=0\relax\let\\\defineEachAns\the\toks@
- \xdef\@currNCntAns{\the\count0 }\csarg
+ \eqtmpcnta\z@\let\\\defineEachAns\the\toks@
+ \xdef\@currNCntAns{\the\eqtmpcnta}\csarg
\xdef{NumAns\bChoiceLabel}{\@currNCntAns}%
\ifsolutionsonly\else{\eq@IWDefs{\string
- \csarg\string\gdef{NumAns\bChoiceLabel}{\the\count0 }}}\fi
+ \csarg\string\gdef{NumAns\bChoiceLabel}{\the\eqtmpcnta}}}\fi
\toks@=\expandafter{\@tempholdSaveChoice}\csarg
\xdef{SavedAlts\bChoiceLabel}{\the\toks@}%
\ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string
\csarg\string\gdef{SavedAlts\bChoiceLabel}{\the\toks@}}}\fi
- \count0=0\relax\let\\\defineEachChoice\the\toks@
- \count0=1\relax\toks@={}%{\ignorespaces\@gobble}%
+ \eqtmpcnta\z@\relax\let\\\defineEachChoice\the\toks@
+ \eqtmpcnta\@ne\toks@={}%{\ignorespaces\@gobble}%
\loop
\edef\temp@exp{\the\toks@\noexpand\\{%
- \noexpand\useSavedAlts[\the\count0]{\bChoiceLabel}
- \noexpand\useSavedAns[\the\count0]{\bChoiceLabel}}}%
+ \noexpand\useSavedAlts[\the\eqtmpcnta]{\bChoiceLabel}
+ \noexpand\useSavedAns[\the\eqtmpcnta]{\bChoiceLabel}}}%
\toks@=\expandafter{\temp@exp}%
- \ifnum\count0<\@currNCntAns
- \advance\count0by1
+ \ifnum\eqtmpcnta<\@currNCntAns\relax
+ \advance\eqtmpcnta\@ne
\repeat
\csarg\xdef{SavedAltsAns\bChoiceLabel}{\the\toks@}%
\ifsolutionsonly\else{\let\\\relax\eq@IWDefs{\string
@@ -7361,11 +7375,11 @@ if (_bOK) {\jsR\jsT
% \begin{macrocode}
\def\aeb@randomizeChoices#1{%
\setrannum{\aeb@ranChoice}{1}{#1}
- \count0=0 \aeb@hold=\expandafter{\@temphold}\def\@temphold{}%
+ \eqtmpcnta\z@\aeb@hold=\expandafter{\@temphold}\def\@temphold{}%
\expandafter\@tfor\expandafter
\@temp\expandafter:\expandafter=\the\aeb@hold \do {%
- \advance\count0by1
- \ifnum\count0=\aeb@ranChoice
+ \advance\eqtmpcnta\@ne
+ \ifnum\eqtmpcnta=\aeb@ranChoice\relax
\aeb@hold=\expandafter\expandafter\expandafter
{\expandafter\@tempholdrandom\@temp}%
\edef\@tempholdrandom{\the\aeb@hold}%
@@ -8490,7 +8504,7 @@ if (!isQuizInitialized("@currQuiz")) {
\def\word##1{\\b##1\\b}\def\any{@any@}\fi
\xdef\rbTxtAlt{\rbFlag,\eq@argi,\eq@argii}%
\global\let\txtAltList\@empty
- \count0=#4 \ifnum\count0 > 0 \expandafter\@argRead\else
+ \eqtmpcnta=#4\relax\ifnum\eqtmpcnta>\z@\expandafter\@argRead\else
\PackageError{exerquiz}{%
The fourth required parameter of \string\RespBoxTxt\MessageBreak
is required to be a positive integer. You entered\MessageBreak
@@ -8499,8 +8513,8 @@ if (!isQuizInitialized("@currQuiz")) {
\def\@argRead#1{\xdef\jsTempArgs{\txtAltList}%
\ifx\txtAltList\@empty\xdef\txtAltList{"#1"}\else
\xdef\txtAltList{\jsTempArgs,"#1"}\fi\@@argRead}
-\def\@@argRead{\advance\count0 by-1\relax
- \ifnum\count0=0\relax
+\def\@@argRead{\advance\eqtmpcnta\m@ne
+ \ifnum\eqtmpcnta=\z@
\def\eq@next{\endgroup
\xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}%
\if\grpquestions\eq@Zero
@@ -8663,7 +8677,7 @@ if (!isQuizInitialized("@currQuiz")) {
\def\word##1{\\b##1\\b}\def\any{@any@}
\gdef\rbTxtAlt{\rbFlag,#1,1}% force sub-string match
\global\let\txtAltList\@empty
- \count0=#3 \ifnum\count0>0 \expandafter\@argReadPC\else
+ \eqtmpcnta=#3\relax\ifnum\eqtmpcnta>\z@\expandafter\@argReadPC\else
\PackageError{exerquiz}{%
The third required parameter of
\string\RespBoxTxtPC\MessageBreak
@@ -8677,8 +8691,8 @@ if (!isQuizInitialized("@currQuiz")) {
\newcommand\@argReadPC[2][0]{\xdef\jsTempArgs{\txtAltList}%
\ifx\txtAltList\@empty\xdef\txtAltList{["#2",#1]}\else
\xdef\txtAltList{\jsTempArgs,["#2",#1]}\fi\@@argReadPC}
-\def\@@argReadPC{\advance\count0 by-1\relax
- \ifnum\count0=0\relax
+\def\@@argReadPC{\advance\eqtmpcnta\m@ne
+ \ifnum\eqtmpcnta=\z@
\def\eq@next{\endgroup
\xdef\rbTxtAlt{\rbTxtAlt,\txtAltList}%
\if\grpquestions\eq@Zero
@@ -9413,22 +9427,22 @@ if (!isQuizInitialized("@currQuiz")) {
\newcommand{\displaySumryTbl}[2][]{%
\begingroup\edef\currQuiz{#2}\edef\oField{#2}\edef\curr@quiz{#2}%
\setkeys{smrytbl}{#1}%
- \count0=\smrytbl@ntables
+ \eqtmpcnta\smrytbl@ntables\relax
% \end{macrocode}
% We accept only 1 or 2 as an argument, we put it in \cs{count0},
% if not an integer, we'll stop the compile. If the argument is not 1,
% we force a value of 2.
% \begin{macrocode}
-% \ifnum\count0=1\relax\else\count0=2\relax\fi
- \eq@rowcnt=0\relax\@tempcntb=\value{questionno}%
+% \ifnum\eqtmpcnta=\@ne\else\eqtmpcnta\tw@\fi
+ \eq@rowcnt\z@\@tempcntb=\value{questionno}%
% \end{macrocode}
% We calculate the number of rows in the first column, in case
% of a two column table. When the number of questions is odd,
% the the left-hand table will have one more entry than the right-hand
% column.
% \begin{macrocode}
- \ifnum\count\z@=2\relax
- \divide\@tempcntb2\relax
+ \ifnum\eqtmpcnta=\tw@
+ \divide\@tempcntb\tw@
\advance\@tempcntb\ifodd\value{questionno}2\else1\fi
\xdef\@beginSecCol{\the\@tempcntb}%
\advance\@tempcntb-1\relax
@@ -9436,9 +9450,9 @@ if (!isQuizInitialized("@currQuiz")) {
% \end{macrocode}
% Three table support
% \begin{macrocode}
- \ifnum\count\z@=3
+ \ifnum\eqtmpcnta=\thr@@
\edef\eq@n{\the\@tempcntb}%
- \divide\@tempcntb\count\z@
+ \divide\@tempcntb\eqtmpcnta
\edef\eq@q{\the\@tempcntb}%
\@tempcnta=\@tempcntb\multiply\@tempcnta3
\edef\eq@p{\the\@tempcnta}%
@@ -9560,13 +9574,13 @@ if (!isQuizInitialized("@currQuiz")) {
% \end{macrocode}
% Now for the definition of \cs{@@eqListExp} which does the work in the table.
% \begin{macrocode}
-\def\@@eqListExp#1#2{\global\advance\eq@rowcnt1\relax
+\def\@@eqListExp#1#2{\global\advance\eq@rowcnt\@ne
% \end{macrocode}
% If it is the first row, we insert the push button that will activate
% when the page becomes visible, and we expand \cs{eq@begintab}, which
% is a \texttt{tabular} environment.
% \begin{macrocode}
- \ifnum\eq@rowcnt=1\relax
+ \ifnum\eq@rowcnt=\@ne
\pbPopulateSumTable\ifsmrytbl@corrections\else
\pbDoNoCorrectSumryTbl\fi\expandafter\eq@begintab\fi
% \end{macrocode}
@@ -9574,10 +9588,10 @@ if (!isQuizInitialized("@currQuiz")) {
% value of the first row of the second table, we emit another
% \cs{eq@begintab}.
% \begin{macrocode}
- \ifnum\count0>1 \ifnum\eq@rowcnt=\@beginSecCol\relax
+ \ifnum\eqtmpcnta>\@ne\ifnum\eq@rowcnt=\@beginSecCol\relax
\eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab
\fi\fi
- \ifnum\count0=3 \ifnum\eq@rowcnt=\@beginThrdCol\relax
+ \ifnum\eqtmpcnta=\thr@@\ifnum\eq@rowcnt=\@beginThrdCol\relax
\eq@endtab\expandafter\sumrytablesep\expandafter\eq@begintab
\fi\fi
% \end{macrocode}
@@ -9588,7 +9602,7 @@ if (!isQuizInitialized("@currQuiz")) {
% We set the \cs{eq@endtab} at the bottom of the first table,
% and at the bottom of the second table.
% \begin{macrocode}
-% \ifnum\count0=2 \ifnum\eq@rowcnt=\@tempcntb
+% \ifnum\count0=\tw@\ifnum\eq@rowcnt=\@tempcntb
% \expandafter\eq@endtab\fi\fi
\ifnum\eq@rowcnt=\thequestionno\relax\expandafter\eq@endtab\fi
}
diff --git a/macros/latex/contrib/acrotex/web.dtx b/macros/latex/contrib/acrotex/web.dtx
index 312e6e4089..473c39cc0e 100644
--- a/macros/latex/contrib/acrotex/web.dtx
+++ b/macros/latex/contrib/acrotex/web.dtx
@@ -4,7 +4,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Web package, %%
-%% Copyright (C) 1999-2018 D. P. Story %%
+%% Copyright (C) 1999-2019 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%