summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/acrotex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-02-09 03:01:13 +0000
committerNorbert Preining <norbert@preining.info>2021-02-09 03:01:13 +0000
commit1350502b809c028b8f123dec94ca92782eda564f (patch)
tree7a6d733c4ed5a82ac800368e54608cb8f31494e3 /macros/latex/contrib/acrotex
parent314f2cf58d8c42409e06e1c52de09b77d6e5fe09 (diff)
CTAN sync 202102090301
Diffstat (limited to 'macros/latex/contrib/acrotex')
-rw-r--r--macros/latex/contrib/acrotex/README.md32
-rw-r--r--macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdfbin0 -> 370603 bytes
-rw-r--r--macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex232
-rw-r--r--macros/latex/contrib/acrotex/doc/aeb_man.pdfbin1499729 -> 2135045 bytes
-rw-r--r--macros/latex/contrib/acrotex/doc/aeb_man.tex135
-rw-r--r--macros/latex/contrib/acrotex/doc/eformman.pdfbin987217 -> 988527 bytes
-rw-r--r--macros/latex/contrib/acrotex/doc/eformman.tex47
-rw-r--r--macros/latex/contrib/acrotex/doc/install_jsfiles.tex312
-rw-r--r--macros/latex/contrib/acrotex/examples/test_install.pdfbin21312 -> 53316 bytes
-rw-r--r--macros/latex/contrib/acrotex/examples/test_install.tex13
-rw-r--r--macros/latex/contrib/acrotex/examples/webeqtst.pdfbin494990 -> 486609 bytes
-rw-r--r--macros/latex/contrib/acrotex/examples/webeqtst.tex5
-rw-r--r--macros/latex/contrib/acrotex/exerquiz.dtx6
-rw-r--r--macros/latex/contrib/acrotex/insdljs.dtx21
-rw-r--r--macros/latex/contrib/acrotex/web.dtx14
15 files changed, 708 insertions, 109 deletions
diff --git a/macros/latex/contrib/acrotex/README.md b/macros/latex/contrib/acrotex/README.md
index 98c419c802..f3c8d2d8e6 100644
--- a/macros/latex/contrib/acrotex/README.md
+++ b/macros/latex/contrib/acrotex/README.md
@@ -1,23 +1,29 @@
-The AcroTeX eDucation Bundle
+The AcroTeX eDucation Bundle (AeB)
Author: D. P. Story
-Dated: 2021-01-20
+Dated: 2021-02-07
AeB contains the following:
-1) Web Package: Extensive support for page design.
+1) web Package: Extensive support for page design.
-2) Exerquiz Package: Support for creating online interactive exercises and
+2) exerquiz Package: Support for creating online interactive exercises and
quizzes.
3) eforms Package: Extensive support for Acrobat forms and links
4) dljslib package: A package of JavaScript functions that extends the
- capability of exerquiz.
+ capability of exerquiz.
5) taborder package: Supports the create of a tab order for form fields.
-6) Documentation for AeB (AcroTeX eDucatation Bundle) and eForms
- (including insdljs and dljslib).
+6) Documentation for AeB (AcroTeX eDucatation Bundle) and eforms
+ (including insdljs and dljslib).
+
+What's New (2021-02-07) Minor change in the defineJS environment that is
+ critical to a fix in the page events environments of aeb_pro.
+
+What's New (2021-02-04) Updated documentation to reflect security changes
+ in Acrobat, authored acrobat-in-workflow.pdf to distribute with the AeB.
What's New (2021-01-20) Defined two commands \doNotRandomizeChoices
and \allowRandomizedChoices; these turn off and turn on the randomization
@@ -89,15 +95,9 @@ What's New (2017-08-08) Support for multi-letter variables, alternate appearance
and interval repetition. The demo file for these features is
http://www.acrotex.net/blog/?p=1330
-I maintain a web site featuring TeX/LaTeX/PDF stuff called
-AcroTeX (www.math.uakron.edu/~dpstory/acrotex.html). There you
-will find the home web page of the AcroTeX eDucation Bundle.
-(www.math.uakron.edu/~dpstory/webeq.html).
-
Examples for AeB have been moved to
http://www.math.uakron.edu/~dpstory/webeq_ex.html, another copy
-of the examples are at
-http://www.acrotex.net/blog/?cat=89
+of the examples are at http://www.acrotex.net/blog/?cat=89
Additional examples are posted on the AcroTeX Blog page
http://www.acrotex.net/blog/
@@ -106,5 +106,5 @@ Now, I simply must get back to my retirement.
D. P. Story
www.acrotex.net
-dpstory@uakron.edu
-dpstory@acrotex.net
+dpstory at uakron dot edu
+dpstory at acrotex dot net
diff --git a/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf
new file mode 100644
index 0000000000..9821c49870
--- /dev/null
+++ b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex
new file mode 100644
index 0000000000..bd12bdd607
--- /dev/null
+++ b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex
@@ -0,0 +1,232 @@
+\RequirePackage[!use=preview,!use=efpmca,!use=usebw,!use=finalbuild]{spdef}
+\documentclass{article}
+\usepackage[fleqn]{amsmath}
+\usepackage[web,useacrobat]{aeb_pro}
+\usepackage{eforms}
+\usepackage{graphicx}
+\usepackage{fancyvrb}
+
+\ifpdf\else
+\def\x{%
+ \usepackage[altbullet]{lucidbry}
+ \usepackage[active]{srcltx}
+}\expandafter\x
+\fi
+
+\usepackage{pifont}
+
+%\usepackage{fancyvrb}
+
+\reversemarginpar
+
+\let\uif\textsf
+\let\env\texttt
+\def\cs#1{\texttt{\eqbs#1}}
+\let\tops\texorpdfstring
+
+\makeatletter
+\renewcommand{\paragraph}
+ {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}
+ {\normalfont\normalsize\bfseries}}
+\renewcommand{\subparagraph}
+ {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}%
+ {\normalfont\normalsize\bfseries}}
+\def\parboxValign{t}
+\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{%
+ \raisebox{.5\baselineskip+#1}{%
+ \expandafter\parbox\expandafter[\parboxValign]%
+ {\marginparwidth}{\aebbkFmtMp#2}}}}
+\def\aebbkFmtMp{\kern0pt\itshape\small
+ \ifusebw\color{gray}\else\color{blue}\fi
+ \raggedleft\hspace{0pt}}
+\newcommand{\BlogArticle}{%
+ \makebox[0pt][l]{\hspace{-1pt}\color{blue}\Pisymbol{webd}{254}%
+ }\raisebox{.5pt}{\ifusebw\color{black}\else
+ \color{red}\fi\ding{045}}}
+\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}%
+ \kern-.6em \hbox{$\mathcal S$}}$}
+
+\makeatother
+
+\setlength{\mathindent}{\the\parindent}
+
+\def\AEBP{\app{AeB Pro}}
+\def\AEB{\app{AeB}}
+\let\app\textsf
+\let\pkg\textsf
+\def\amtIndent{\parindent}
+\def\meta#1{$\langle\textit{\texttt{#1}}\rangle$}
+\def\SC#1{{\small#1}}
+\def\PDF{\SC{PDF}}
+\let\opt\texttt
+
+%\reversemarginpar
+\def\jsSupInstr{\tops{{\AEB} and {\AEBP}\\[1ex]}{AeB and AeB Pro: }Including
+ \tops{\app}{}{Acrobat} in the \tops{\LaTeX}{LaTeX} workflow}
+\title{\jsSupInstr}
+\author{D. P. Story}
+\version{1.0}
+
+\chngDocObjectTo{\newDO}{doc}
+\begin{docassembly}
+var titleOfManual="Acrobat workflow";
+var manualfilename="Manual_BG_Print_acrobat.pdf";
+var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown
+var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
+var doc;
+var buildIt=false;
+if ( buildIt ) {
+ console.println("Creating new " + manualfilename + " file.");
+ doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
+ var _path=this.path;
+ var pos=_path.lastIndexOf("/");
+ _path=_path.substring(0,pos)+"/"+manualfilename;
+ \docSaveAs\newDO ({ cPath: _path });
+ doc.closeDoc();
+ doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
+ f=doc.getField("ManualTitle");
+ f.value=titleOfManual;
+ doc.flattenPages();
+ \docSaveAs\newDO({ cPath: manualfilename });
+ doc.closeDoc();
+} else {
+ console.println("Using the current "+manualfilename+" file.");
+}
+var _path=this.path;
+var pos=_path.lastIndexOf("/");
+_path=_path.substring(0,pos)+"/"+manualfilename;
+\addWatermarkFromFile({
+ bOnTop:false,
+ bOnPrint:false,
+ cDIPath:_path
+});
+\executeSave();
+\end{docassembly}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+\app{Adobe Acrobat} (\app{AA}) is a desktop application that has many
+powerful features beyond the functionality of a PDF viewer. In this article
+the focus is a {\LaTeX} workflow that includes \app{AA} in its workflow.
+
+{\AEB} and {\AEBP}, as well as other packages written under the {\AEB}
+banner, use FDF files in various situations (as described in
+Section~4).\footnote{An FDF file is a file type that was created by
+\app{Adobe}. The \app{Acrobat} and \app{Adobe Reader} applications can use
+FDF files in various ways.} These packages use \app{Acrobat} to import the
+FDF files to perform designated JavaScript actions as required by the package
+or document author. The importing of FDF files is only needed during the PDF
+creation stage of document development; once the PDF file is created, the
+document can be viewed by \app{Adobe Reader} or any other PDF viewer.
+
+For FDF files to be imported, the \app{Acrobat} application may need to be
+configured.
+
+\section{Configuration of \tops{\app}{}{Acrobat}}\label{s:config}
+
+The current version of \app{AA} is \app{Adobe Acrobat DC}. In this and
+previous versions of \app{AA} no special configuration is needed; however if
+you purchased \app{AA} after December 2020, or you updated your \app{AA}
+after December 2020, you need to make one change in the \uif{Preferences}.
+
+\begin{figure}[htb]\fboxsep0pt\relax\centering
+ \fbox{\includegraphics[width=.5\linewidth]{figures/SecurityPrefs}}
+ \caption{\tops{\protect\uif}{}{Security (Enhanced) Preferences}}\label{fig:SP}
+\end{figure}
+
+Start \app{Acrobat} and open the menu \uif{Edit \ifpdf\texttt{>} \else> \fi
+Preferences} (\uif{Ctrl+K}). In the \uif{Preferences} dialog box, select
+\uif{Security (Enhanced)} category from the left panel; the top most line of
+the right panel is a checkbox labeled \uif{Enable Protected Mode at startup}.
+\emph{Clear this checkbox.}{\def\parboxValign{c}\FmtMP{\app{Acrobat DC}
+users, action required!}}\footnote{When the box is checked, importing FDF
+files, as described in the next two sections, is \emph{prohibited}. We want
+FDF files imported, so we clear the checkbox.} Refer to
+\hyperref[fig:SP]{Figure~\ref*{fig:SP}} for a visual. If this checkbox is not
+present in your \app{Acrobat}, there is nothing to do until this checkbox
+appears in a future updated version of your \uif{AA} application.
+
+\section{When FDF files are imported}
+
+It is important to be aware of when and how FDF files are imported, and to
+understand the actions required of the document author in response to this
+``import FDF event.''
+
+For a document that uses FDF files to perform tasks, the files are imported
+\emph{after} PDF creation when the newly created PDF document is \emph{first
+opened} in \app{Acrobat}, and \emph{before the PDF file is moved to another
+location and before any auxiliary files (the FDF files) are deleted}. Once
+the FDF files are imported, it is important \emph{to save}\FmtMP{Save the
+PDF} the PDF file, this incorporates the results of the actions taken by the
+imported FDF files into the document, actions, such as the embedding of
+document JavaScript.
+
+Another important point to realize is that the use of FDF files is not
+restricted to the
+\app{dvips\ifpdf\texttt{->}\,\else->\,\fi\app{Distiller}\,\ifpdf\texttt{->}\,\ignorespaces
+\else->\,\fi\app{Acrobat}} method of creating a PDF; indeed, any PDF creator
+used by the {\LaTeX} community may be used, for example,
+\app{pdftex\ifpdf\texttt{->}\allowbreak\,\else->\,\fi\app{Acrobat}}. The
+only prerequisite is to use {\LaTeX} markup that initiates the ``import FDF
+event.'' This markup is available through packages that support it; this
+includes, but not restricted to, {\AEB} and {\AEBP}.
+
+\section{Applications of FDF files to a \tops{\LaTeX}{LaTeX} workflow}
+
+With regard to producing a PDF file through a {\LaTeX} workflow, there are
+two important applications to importing FDF files: importing document
+JavaScript and post-PDF creation actions. These two applications to FDF files
+are covered in the next two subsections.
+
+\subsection{Document JavaScript}
+
+In this case, FDF files are required only for the \app{dvips\,\ignorespaces
+\ifpdf\texttt{->}\,\else->\,\fi\app{Distiller}\,\ifpdf\texttt{->}\,\else->\,\ignorespaces
+\fi\app{Acrobat}} workflow; the other PDF creators (\app{pdflatex},
+\app{lualatex}, and \app{xelatex}) have primitives that facilitate the
+creation of document JavaScript without FDF files or \app{Acrobat}.
+
+For the \pkg{exerquiz} package, part of the {Acro\!\TeX} eDucation Bundle
+(\AEB), creation of Document JavaScript is automatic and invisible for all
+PDF creators; it is only in the
+\texttt{tex\,->\,dvi\,->\,\app{dvips}\,->\,\ignorespaces
+\app{Distiller}\,->\,\app{Acrobat}} workflow that FDF files are used.
+
+Document JavaScript, by the way, is code that is embedded in the PDF and is
+available to be called throughout the document. Usually, Document JavaScript
+is general code that is repeatedly used.
+
+
+\subsection{Post PDF Creation actions}
+
+The {\AEBP} Bundle has many ``post PDF creation'' actions, such as auto
+saving the document, importing sounds, attaching documents, inserting pages,
+extracting pages, and many more. With proper {\LaTeX} markup, when the
+document is compiled, FDF files are written to the hard drive, when the
+document is then first opened in \app{Acrobat}, the FDF files are imported
+and the actions are executed. Again, for the FDF files to be imported, they
+must not have already been deleted, and \app{Acrobat} must be correctly
+configured (\hyperref[s:config]{Section~\ref*{s:config}}). One very simple
+example, is automatic saving of the document when \app{Acrobat} is first
+opened. For example, an \pkg{aeb\_pro} document has a \env{docassembly}
+environment that is placed in the preamble. Within this environment, place
+any post PDF creation JavaScript actions:
+\begin{Verbatim}[xleftmargin=\parindent]
+\begin{docassembly}
+console.show();
+console.println("Saving document");
+\executeSave();
+\end{docassembly}
+\end{Verbatim}
+The \verb~\executeSave~ command is defined by \pkg{aeb\_pro} and its action
+is to save the document. It is the \env{docassembly} environment that writes
+the FDF file that contains its contents. \app{Acrobat} inputs this command on
+opening and the PDF is saved.\footnote{\cs{executeSave} must be the last post PDF
+creation action; otherwise, as later actions may not be executed.}
+
+
+\end{document}
diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.pdf b/macros/latex/contrib/acrotex/doc/aeb_man.pdf
index c62c427b52..be21253d90 100644
--- a/macros/latex/contrib/acrotex/doc/aeb_man.pdf
+++ b/macros/latex/contrib/acrotex/doc/aeb_man.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.tex b/macros/latex/contrib/acrotex/doc/aeb_man.tex
index cf08a13258..8d99d237e9 100644
--- a/macros/latex/contrib/acrotex/doc/aeb_man.tex
+++ b/macros/latex/contrib/acrotex/doc/aeb_man.tex
@@ -21,6 +21,7 @@
\DeclareInitView{layoutmag={navitab:UseOutlines}}
\xbmksetup{colors={int=red},styles={intbf}}
+\reversemarginpar
\newbox\aebbox
\usepackage{acroman}
@@ -29,6 +30,7 @@
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
+\let\tops\texorpdfstring
\let\uif\textsf
\def\AcroBlog{{Acro\!\TeX} Blog}
@@ -70,7 +72,7 @@
\LTpre=0pt %\medskipamount
\LTpost=-2\medskipamount
%\LTpost=0pt %\medskipamount
-\setlength{\mathindent}{20pt}
+\setlength{\mathindent}{\the\parindent}
\def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}}
@@ -175,7 +177,6 @@
\def\nhurl#1{\bNH\url{#1}\eNH}
\def\grayV#1{\textcolor{gray}{#1}}
\def\darg#1{\{#1\}}
-\def\parboxValign{t}
\renewcommand*{\backrefalt}[4]{%
\ifcase #1\or
See page~#2.\else See pages~#2.\fi
@@ -183,6 +184,7 @@
\newenvironment{aebQuote}
{\list{}{\leftmargin\amtIndent}%
\item\relax}{\endlist}
+\def\parboxValign{t}
\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{%
\raisebox{.5\baselineskip+#1}{%
\expandafter\parbox\expandafter[\parboxValign]%
@@ -233,10 +235,10 @@
\university{{\AcroT} Software Development Team}
\email{dpstory@acrotex.net}
\versionLabel{Dated:}
-\version{2021/01/20}
+\version{2021/02/07}
\copyrightyears{1999-\the\year}
\nocopyright
-\prepared{2021/01/20}
+\prepared{2021/02/07}
\revisionLabel{Distribution Dated:}
\copyrightStatus{True}
@@ -547,64 +549,57 @@ are the installation files for the individual packages,
\end{questions}
-
-\subsection{Installing \texttt{aeb.js}}
-
-
-The JavaScript file \texttt{aeb.js} is only needed if you use \textbf{Acrobat
-Pro 8.1} or later and \textbf{Adobe Distiller} as the PDF creator. Increased
-security in that version has made it necessary to install a folder JavaScript
-file. The JavaScript within \texttt{aeb.js} raises the ``trust'' of certain
-JavaScript methods used to import document JavaScript into the document just
-after the distillation process and the newly created PDF is opened in
-\textbf{Acrobat} for the first time. The installation of this file is not
-needed if you use \textsf{pdftex}, or \textsf{dvipdfm} (or any of their
-variations), or use a version of \textbf{Acrobat} prior to 8.1.
+\subsection{Concerning the use of \tops{\app}{}{Acrobat}}\label{ss:DistAcro}
+
+Some \hypertarget{DistAcroWF}{document} authors use the workflow
+\begin{equation}\text{\ttfamily
+tex\,->\,dvi\,->\,\app{dvips}\,->\,ps\,->\,\ameta{\upshape\app{Distiller}\string|\app{ps2pdf}}\,->\allowbreak
+\,\app{PDF viewer}}\label{eq:AcrobatWF}
+\end{equation}
+to create a PDF document. If the document contains quizzes created by the
+\pkg{exerquiz} package (see \Nameref{s:exerquiz}), \uif{Document JavaScripts}
+are required; as a result, at the end of the above workflow, the \app{PDF
+viewer} \emph{is required to be} \app{Acrobat}\FmtMP{\app{Acrobat}
+required}.\footnote{Other PDF creation workflows do not require \app{Acrobat}
+to embed \uif{Document JavaScripts}} The role of \app{Acrobat} is to embed
+the \uif{Document JavaScripts} in the document. The next two subsections
+discuss the use of \app{Acrobat}, first to install the folder JavaScript file
+\texttt{aeb.js}, and second to configure \app{Acrobat}, if needed.
+
+\subsubsection{Installing \texttt{aeb.js}}
+
+The JavaScript file \texttt{aeb.js} is only needed if you use the workflow of
+\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}}
+and \uif{Document JavaScripts} are needed to be embedded.
+
+Increased security for the \app{Acrobat} application makes it necessary to
+install a folder JavaScript file. The JavaScript within \texttt{aeb.js}
+raises the ``trust'' of certain JavaScript methods used to import
+\uif{document JavaScript} into the document just after the PDF creation and
+the newly created PDF is opened in \app{Acrobat} for the first time. The
+installation of this file is not needed if you use \app{pdftex},
+\app{lualatex}, or \app{xelatex} (or any of its variants), or if you use
+a version of \app{Acrobat} prior to version 8.1.
The instructions for installing \texttt{aeb.js} are in the
\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, which resides in
-the \texttt{doc} folder of the \texttt{acrotex} installation. If you use
-\textbf{Distiller} as your PDF creator, please refer to that document.
+the \texttt{doc} folder of the \texttt{acrotex} installation. if you use the workflow of
+\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}}, please refer to that document.
-After you've installed the JavaScript files, as directed by the
+After you've installed the JavaScript file, as directed by the
\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, validate the
installation of the JavaScript files by navigating to the \texttt{examples}
subfolder and opening the file \texttt{test\_install.pdf} in \app{Acrobat};
follow the directions contained on that one page document.
+\subsubsection{Configuring \tops{\app}{}{Acrobat}}
-\begin{comment}
-\paragraph*{Acrobat Pro~8.1 or later.}
-Start \textbf{Acrobat Pro~8.1}\footnote{The file will cause no harm if you
-install it in an earlier version of Acrobat, as early as version 7.} or
-later, and open the console window \textsf{Advanced \texttt> JavaScript
-\texttt> Debugger} (\texttt{Ctrl+J} for Windows or \texttt{Cmd+J} for Mac
-OS). Copy and paste the following code into the window.
-\begin{Verbatim}[xleftmargin=\amtIndent]
-app.getPath("user","javascript");
-\end{Verbatim}
-Now, with the mouse cursor on the line containing this script, press
-the \texttt{Ctrl+Enter} key. This will execute this JavaScript. This
-JavaScript method returns the path to where \texttt{aeb.js} should
-be placed. For example, on my system, the return string is
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
-/C/Documents and Settings/story/
- Application Data/Adobe/Acrobat/8.0/JavaScripts
-\end{Verbatim}
-Follow the path to this folder. If the \texttt{JavaScripts} folder
-does not exist, create it. Finally, copy \texttt{aeb.js}
-into this folder. The file is read each time Acrobat starts.
+If you have \app{Acrobat DC} that was purchased or updated after December 2020,
+\app{Acrobat} needs to be configured for the workflow
+\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}}
+to function correctly. For detailed discussion, refer to the document
+\texttt{\href{acrobat-in-workflow.pdf}{acrobat-in-workflow.pdf}}.
-\paragraph*{Acrobat Pro 10.1.1 for Windows only.} For this version of \textbf{Acrobat},
-things have tightened up even more. The user JavaScripts folder has moved to
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small]
-%AppData%\Adobe\Acrobat\Privileged\10.0\JavaScripts
-\end{Verbatim}
-\exAeBBlogArticle{p=737}where \verb!%AppData%! is an environment variable defined by Acrobat. For details
-of how to install the folder JavaScripts in the new location, see my blog
-article \mlhref{http://www.acrotex.net/blog/?p=737}{Acrobat Security Changes in 10.1.1 and
-Acro\!\TeX}.
-\end{comment}
\subsection{Language Localizations}
@@ -789,6 +784,26 @@ document. At this point you can move your \textsf{PDF} to another
folder, or to the web. The document does not need the
\texttt{.fdf} files any more.
+\redpoint \textcolor{red}{Important:} If you use \app{Acrobat
+DC}\FmtMP{\app{Acrobat DC}} in your PDF creation workflow and have updated
+the application after December 2020, the {\AEB} workflow is broken. To
+restore the workflow, it is necessary \emph{to clear the checkbox} labeled
+\uif{Enable Protected Mode at startup}\FmtMP{Protected Mode}, this checkbox
+is found under the menu \uif{Edit > Preferences}
+(\uif{Ctrl+K}).\footnote{When the box is checked, importing FDF files, as
+described above, is prohibited. We want FDF files imported, so we clear the
+checkbox.} In the \uif{Preferences} dialog box, select the \uif{Security
+(Enhanced)} category from the left panel; the targeted checkbox is at the top
+line on the right panel. Refer to \hyperref[fig:SP]{Figure~\ref*{fig:SP}} for
+a visual.
+
+
+\begin{figure}[htb]\fboxsep0pt\relax\centering
+ \fbox{\includegraphics[width=.5\linewidth]{figures/SecurityPrefs}}
+ \caption{\tops{\protect\uif}{}{Security (Enhanced) Preferences}}\label{fig:SP}
+\end{figure}
+
+
\begin{comment}
\redpoint \textbf{For Distiller~4.0--4.05 Users.} Versions prior
to~5.0 of the Acrobat product cannot import document level
@@ -834,7 +849,7 @@ You can edit \textsf{eq\_dljs.pdf} and make whatever changes you
please to the script, in terms of changing color.
\end{comment}
-There are several ways the Distiller workflow can be accomplished:
+%There are several ways the Distiller workflow can be accomplished:
%\begin{itemize}
% \item \textbf{Through the {\LaTeX} Editor.} Some editors, WinEdt, in particular, have toolbars that can distill
% a PostScript file. (The default is to use Ghostscript, you'll have to change to Distiller.) From WinEdt, you
@@ -858,12 +873,13 @@ There are several ways the Distiller workflow can be accomplished:
% 5. Open the .pdf file.
%
% This will allow readers the opportunity to see what will happen if they fail to save the file before moving it
-to another location, like the web.
+%to another location, like the web.
%
%
% \end{enumerate}
%\end{itemize}
+
\newtopic For distiller users, the
\href{http://www.math.uakron.edu/~dpstory/aeb_pro.html}{\AEB\ Pro package}
has many exciting features, functionality requires the document author use
@@ -3688,7 +3704,7 @@ dot (.) at the end of the section number. To revert to this behavior, use the
\par\vskip6pt\vskip0pt plus .25\vsize\penalty-1000 \vskip0pt plus-.25\vsize}
%\addtocontents{toc}{\par\protect\vspace{\bigskipamount}\kern0pt\vspace{-\medskipamount}}
-\part{The Exerquiz Package}\label{s:exerquiz}
+\part{The Exerquiz Package}\chgCurrLblName{The Exerquiz Package}\label{s:exerquiz}
%The \textsf{exerquiz} package contains a series of macros for
%creating on-line exercises, short quizzes (with or without
@@ -3751,12 +3767,13 @@ discussed in this section.
\section{\protect\textsf{Exerquiz} and Acrobat JavaScript}
-\textsf{Exerquiz} now uses the \textsf{insdljs} Package to insert
-Document level Java\-Scripts into the \textsf{PDF} file. The quizzes
-created using the \texttt{shortquiz} or \texttt{quiz} environment are
-graded, marked and scored using these inserted JavaScript functions.
+\pkg{Exerquiz} now uses the \pkg{insdljs} package to insert \uif{Document
+level Java\-Scripts} into the {PDF} file. (Review
+\hyperref[ss:DistAcro]{Section~\ref*{ss:DistAcro}} on page~\pageref*{ss:DistAcro}, as needed.) The quizzes
+created using the \texttt{shortquiz} or \texttt{quiz} environment are graded,
+marked and scored using these inserted JavaScript functions.
-Because the package \textsf{insdljs} is already loaded, it is easy
+Because the package pkg{insdljs} is already loaded, it is easy
for the document author to develop JavaScripts that can be called
from the standard \textsf{Exerquiz} commands. The ability to write
JavaScript, therefore, right in the \LaTeX{} document gives a
diff --git a/macros/latex/contrib/acrotex/doc/eformman.pdf b/macros/latex/contrib/acrotex/doc/eformman.pdf
index 03a576d453..13407570db 100644
--- a/macros/latex/contrib/acrotex/doc/eformman.pdf
+++ b/macros/latex/contrib/acrotex/doc/eformman.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/doc/eformman.tex b/macros/latex/contrib/acrotex/doc/eformman.tex
index 881a9f4090..8e95e82fe6 100644
--- a/macros/latex/contrib/acrotex/doc/eformman.tex
+++ b/macros/latex/contrib/acrotex/doc/eformman.tex
@@ -11,7 +11,7 @@
%\usepackage{myriadpro}
\setlength{\marginparpush}{3pt}
-
+\setlength{\mathindent}{\the\parindent}
%\previewOn\pmpvOn
\usepackage{graphicx,array,longtable}
@@ -26,7 +26,7 @@
\def\negSTRUT{\rule[-8pt]{0pt}{0pt}}
\def\mSTRUT{\makebox[0pt][l]{\phantom{$\frac00$}}}
\let\vrbnormal\sffamily
-\let\uif\sffamily
+\let\uif\textsf
\let\key\texttt
@@ -36,6 +36,7 @@
%\def\numberline#1{\hb@xt@2.5em{#1\hfil}}
%\makeatother
\makeatletter
+\let\gob\@gobble
\renewcommand*\l@subsection{\@dottedtocline{2}{2em}{3.5em}}
\renewcommand*\l@subsubsection{\@dottedtocline{4}{5.5em}{1.5em}}
\renewcommand\@pnumwidth{2.55em}
@@ -80,7 +81,7 @@
subject={Documentation for the eforms and insdljs packages},
talksite={\url{www.acrotex.net}},
version={2.0},
- prepared={2021/01/20},
+ prepared={2021/02/07},
preparedLabel={Distribution Dated:},
keywords={LaTeX, hyperref, PDF, exercises, quizzes},
copyrightStatus=True,
@@ -2688,8 +2689,8 @@ lock={action=include,fields={!ameta(field!SUB1),!ameta(field!SUB2),...}}
lock={action=exclude,fields={!ameta(field!SUB1),!ameta(field!SUB2),...}}
\end{Verbatim}
-\newtopic Another option that is included in the \uif{Signed tab} is titled ``This script executes
-when field is signed.''
+\newtopic Another option that is included in the \uif{Signed tab} is titled ``\uif{This script executes
+when field is signed.}''
This is an option that, through the user interface, is mutually exclusive from
locking fields. This option is implemented through the format event;
@@ -2860,7 +2861,7 @@ b\hspace{9.5pt}}}}}}\texttt{\href{\urlAcroTeXBlog/?p=334}{settaborder1.pdf}} for
%\section{Introduction}
-The \hypertarget{\pkg{insdljs}}{insdljsPkg} package provides support to {\LaTeX} in four areas:
+The \hypertarget{insdljsPkg}{\pkg{insdljs}} package provides support to {\LaTeX} in four areas:
\begin{enumerate}
\item for embedding document level JavaScript into the PDF file created
from a {\LaTeX} source, the \texttt{insDLJS} environment.
@@ -2876,12 +2877,32 @@ The \hypertarget{\pkg{insdljs}}{insdljsPkg} package provides support to {\LaTeX}
\newtopic This package defines a new environment, \texttt{insDLJS}, used
for inserting \app{Acrobat} JavaScript into a PDF file created from a
-\LaTeX{} source. This package works correctly for users of \textsf{pdftex}
-(and \app{luatex}), \textsf{dvipdfm}, \textsf{dvipdfmx}, and \texttt{xetex}.
-For\marginpar{\small\raggedleft\app{Acrobat} required for
-\app{dvips}} those who use either \app{dvips} or
-\app{dvipsone} to produce a postscript file, which is then distilled, you are
-required to have \app{Acrobat}~5.0 (or later).
+\LaTeX{} source. This package works correctly for users of \app{pdflatex},
+\app{lualatex}, or \app{xelatex}.
+\gob{For\FmtMP{\small\raggedleft\app{Acrobat} required for \app{dvips}} those
+who use \app{dvips} to produce a Postscript file,
+which is then distilled, you are required to have \app{Acrobat}~5.0 (or
+later).}
+For document authors that use the workflow
+\begin{equation}\text{\ttfamily
+tex\,->\,dvi\,->\,\app{dvips}\,->\,ps\,->\,\ameta{\upshape\app{Distiller}\string|\app{ps2pdf}}\,->\allowbreak
+\,\app{PDF viewer}}\label{eq:AcrobatWF}
+\end{equation}
+to create a PDF document, if the document (or one of the packages it
+imports) uses \uif{Document JavaScripts} created by this package, at the end
+of the above workflow, the \app{PDF viewer} \emph{is required to be}
+\app{Acrobat}\FmtMP{\app{Acrobat} required}.\footnote{Other PDF creation
+workflows do not require \app{Acrobat} to embed \uif{Document JavaScripts}}
+The role of \app{Acrobat} is to embed the \uif{Document JavaScripts} in the
+document for the workflow of
+\hyperref[eq:AcrobatWF]{display~\bNH\eqref{eq:AcrobatWF}\eNH}.
+It is necessary to install the folder JavaScript file \texttt{aeb.js} (read
+\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}} for instructions)
+and to possibly configure \app{Acrobat} (read
+\texttt{\href{acrobat-in-workflow.pdf}{acrobat-in-workflow.pdf}} to see how
+to do this). For additional discussion on this workflow, refer to the section
+titled ``Concerning the use of \app{Acrobat}'' in the
+\texttt{\href{aeb_man.pdf\#DistAcroWF}{AeB Manual}}.
\section{Package Options}
@@ -3415,7 +3436,7 @@ console.println("Enter the button area");
\begin{defineJS}{\JSAAX}
console.println("Exiting the button area");
\end{defineJS}
-\pushButton[\A {\JS{\JSA}}
+\pushButton[\A{\JS{\JSA}}
\AA{\AAMouseEnter{\JS{\JSAAE}}
\AAMouseExit{\JS{\JSAAX}}}
]{myButton}{30bp}{15bp}
diff --git a/macros/latex/contrib/acrotex/doc/install_jsfiles.tex b/macros/latex/contrib/acrotex/doc/install_jsfiles.tex
new file mode 100644
index 0000000000..5639318335
--- /dev/null
+++ b/macros/latex/contrib/acrotex/doc/install_jsfiles.tex
@@ -0,0 +1,312 @@
+\documentclass{article}
+\usepackage[fleqn]{amsmath}
+%
+% the driver line is not necessary if you
+% have aebpro.cfg configured to your driver.
+%
+\usepackage[web]{aeb_pro}
+\usepackage{eforms}
+\usepackage[altbullet]{lucidbry}
+\usepackage{pifont}
+
+\usepackage{fancyvrb}
+
+\makeatletter
+\renewcommand{\paragraph}
+ {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}
+ {\normalfont\normalsize\bfseries}}
+\renewcommand{\subparagraph}
+ {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}%
+ {\normalfont\normalsize\bfseries}}
+\makeatother
+
+\mathindent\parindent
+
+\def\AEBP{\app{AeB Pro}}
+\def\AEB{\app{AeB}}
+\def\app#1{\textsf{#1}}
+\def\amtIndent{\parindent}
+\def\meta#1{$\langle\textit{\texttt{#1}}\rangle$}
+\def\SC#1{{\small#1}}
+\def\PDF{\SC{PDF}}
+\let\opt\texttt
+
+\def\copyGetPath{\qquad\pushButton[\TU{Copy app.getPath to console}
+\CA{getPath}\A{\JS{console.show();\r
+console.println('\\napp.getPath("user");');
+}}]{cpyGtPth}{}{11bp}}
+
+\def\copyGetPathJS{\qquad\pushButton[\TU{Copy app.getPath to console}
+\CA{getPath}\A{\JS{console.show();\r
+console.println('\\napp.getPath("user", "javascript");');
+}}]{cpyGtPthJS}{}{11bp}}
+
+%\reversemarginpar
+\def\jsSupInstr{How to install JavaScript support files}
+\title{\jsSupInstr}
+\author{D. P. Story}
+\version{1.0}
+
+\chngDocObjectTo{\newDO}{doc}
+\begin{docassembly}
+var titleOfManual="How to install JavaScript files";
+var manualfilename="Manual_BG_Print_jsfiles.pdf";
+var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown
+var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
+var doc;
+var buildIt=true;
+if ( buildIt ) {
+ console.println("Creating new " + manualfilename + " file.");
+ doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
+ var _path=this.path;
+ var pos=_path.lastIndexOf("/");
+ _path=_path.substring(0,pos)+"/"+manualfilename;
+ \docSaveAs\newDO ({ cPath: _path });
+ doc.closeDoc();
+ doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
+ f=doc.getField("ManualTitle");
+ f.value=titleOfManual;
+ doc.flattenPages();
+ \docSaveAs\newDO({ cPath: manualfilename });
+ doc.closeDoc();
+} else {
+ console.println("Using the current "+manualfilename+" file.");
+}
+var _path=this.path;
+var pos=_path.lastIndexOf("/");
+_path=_path.substring(0,pos)+"/"+manualfilename;
+\addWatermarkFromFile({
+ bOnTop:false,
+ bOnPrint:false,
+ cDIPath:_path
+});
+\executeSave();
+\end{docassembly}
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+Because some of the \app{Acrobat} JavaScript methods have security
+restrictions, they can be only executed in the console window, or as part
+of a batch sequence, or from the JavaScript folder reserved by
+\app{Acrobat} for that use. The developer (of {\LaTeX} packages or {\PDF}
+form documents) may want to use these restricted JavaScript methods as
+part of document assembly. To use the restricted methods, they must be
+called from the user JavaScript folder. The scripts are contained in a
+\SC{JS} file that \app{Acrobat} reads when it first starts up.
+
+In this article, we provide detailed steps for locating the user
+JavaScript folder. For {\AEB} and {\AEBP}, the files \texttt{aeb.js} and
+\texttt{aeb\_pro.js} are placed in the folder. Other JavaScript files may
+be placed in the folder as well, for example, the \texttt{config.js} file
+is one that is commonly used for general purposes.
+
+Before we get started, if you are using a version of \app{Acrobat} prior
+to version~8.1, you need not read any further. The security restrictions
+described below were not in effect for those versions.
+
+\section{Installing the JavaScript support files}
+
+The functionality of {\AEB} and {\AEBP} depends, to some extent, on the
+proper installation of their JavaScript support files.
+\begin{itemize}
+ \item \AEB: For authors using the $\app{dvips}+\app{Acrobat Distiller}$
+ workflow, \texttt{aeb.js} is required; this file is not used by
+ \app{pdflatex} or \app{xelatex} users.
+
+ \item \AEBP: For authors using the $\app{dvips}+\app{Acrobat
+ Distiller}$ workflow, \texttt{aeb\_pro.js} is required; for authors
+ that prefer \app{pdflatex}, \app{lualatex}, or \app{xelatex} as the
+ {\PDF} creator \emph{and who own} the \app{Acrobat} application,
+ the \texttt{aeb\_pro.js} is required with the \opt{useacrobat}
+ option of \AEBP. When using the \opt{nopro} option of \AEBP, the
+ JavaScript file \texttt{aeb\_pro.js} is not used.
+
+\end{itemize}
+The placement of the JavaScript files has changed over the years and is a
+function of the version number \meta{ver}. Start \app{Acrobat} and open the
+console debugger window by pressing \texttt{Ctrl+J} (for \app{Windows OS})
+or \texttt{Cmd+J} (for \app{Mac OS}). Now execute the code
+\texttt{app.getPath("user")} in the console window. To do this, press the
+\textsf{getPath} button provided below, which copies the necessary code to
+the console window.
+\begin{equation}
+\begin{minipage}{.8\linewidth}
+\begin{Verbatim}[commandchars={!~@}]
+app.getPath("user");!copyGetPath
+\end{Verbatim}
+\end{minipage}\label{display:getPath}
+\end{equation}
+Now, with the cursor on the line containing the script, press the
+\texttt{Ctrl+Enter} (for \app{Windows OS}) or \texttt{Cmd+Enter} (for
+\app{Mac~OS}) key. This will execute the JavaScript and return the `root'
+path to the user's application data for \app{Acrobat}.
+
+The rest of the instructions depend on your operating system,
+\app{Windows} or \app{Mac}.
+
+\subsection{For users of \app{Windows OS}}
+
+There are several cases, jump to the numbered paragraph that describes your
+version (\meta{ver}) of \app{Acrobat}.
+
+%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/11.0
+%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/Privileged/11.0/JavaScripts
+
+\def\Stepi{\ding{182}\enspace}
+\def\Stepii{\ding{183}\enspace}
+\def\Stepiii{\ding{184}\enspace}
+
+\paragraph*{{\Stepi}For $\boldmath\text{\meta{ver}}$, $\boldmath 8.1 \le
+\text{\meta{ver}} < 10.1.1$.} For the \app{Windows OS}, executing the script
+in display~\eqref{display:getPath} returns a string of the
+form:\footnote{This string is for \app{Windows OS} beyond \app{WinXP}.}
+\begin{equation}
+\begin{minipage}{.8\linewidth}
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/!meta(ver)
+\end{Verbatim}
+\end{minipage}\label{display:path}
+\end{equation}
+Navigate to this folder location. The correct location for the \SC{JS}
+files is in the \texttt{JavaScripts} subfolder. If the folder does not
+exist, create it. The final path for the JavaScript support files is then
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/
+ Acrobat/!meta(ver)/JavaScripts
+\end{Verbatim}
+Finally, copy \texttt{aeb.js} (and \texttt{aeb\_pro.js}, if applicable)
+into this folder. Close \app{Acrobat}, the next time \app{Acrobat}
+is started, it will read in the \SC{JS} files.
+
+\paragraph*{{\Stepii}For $\boldmath\text{\meta{ver}}$, $\boldmath10.1.1 \le
+\text{\meta{ver}} < 12$.} For these versions of \app{Acrobat} security has
+have tightened up even more; the \texttt{JavaScripts} folder is now a
+subfolder of a special \texttt{Privileged} folder. Execute
+\texttt{app.getPath("user")} in the console window, as in
+display~\eqref{display:getPath}. The method brings back a string similar to
+the one in display~\eqref{display:path}. The correct path is obtained by
+simply inserting \texttt{Privileged} into the path in
+display~\eqref{display:path}, between \texttt{Acrobat} and \meta{ver}, as
+displayed below.
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/
+ Acrobat/!textbf(Privileged)/!meta(ver)/JavaScripts
+\end{Verbatim}
+But this is a mere description of the correct location, the path must
+exist! The path must be created, if it does not already exist.
+
+Navigate to the folder, one folder above the path shown in
+display~\eqref{display:path}, that is, navigate to,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/
+\end{Verbatim}
+If a \texttt{Privileged} folder exists, enter into it; otherwise, create
+it, then enter it.
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/Privileged
+\end{Verbatim}
+Now create a folder named \meta{ver}, unless it already exists, and enter
+it. The version is always the major release \texttt{8.0}, \texttt{9.0},
+\texttt{10.0}, or \texttt{11.0}.
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/
+ Acrobat/Privileged/!meta(ver)
+\end{Verbatim}
+Finally, create the \texttt{JavaScript} folder, unless it already exists,
+to obtain the final path to the user folder JavaScripts:
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/
+ Acrobat/Privileged/!meta(ver)/JavaScripts
+\end{Verbatim}
+Copy \texttt{aeb.js} (and \texttt{aeb\_pro.js}, if applicable) into this
+folder. Close \textsf{Acrobat}, the next time \textsf{Acrobat} is started,
+it will read in the \SC{JS} files.
+
+\paragraph*{{\Stepiii}For $\boldmath\text{\meta{ver}}$, $\boldmath
+\text{\meta{ver}} > 12 $.} Beginning with the next major version following
+version~11, Adobe changed its versioning scheme. There are now two tracks,
+\emph{subscription} and \emph{classic} (also called \emph{perpetual}). For
+subscription, the version, as I understand it, will always be \texttt{DC}
+(Document Cloud), and for the classic, for which you've purchased a
+\emph{perpetual license}, the \meta{ver} is a calendar year. The first
+classic version is \texttt{2015}, the next one is most likely \texttt{2017},
+since major releases occur about every two years.
+
+Execute the code of display~\eqref{display:getPath} by pressing the button
+provided to obtain a path of the form,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/DC
+\end{Verbatim}
+for the subscription license or,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/2015
+\end{Verbatim}
+for the classic (or perpetual) license. Of course, this last path is for
+the first classic version.
+
+Now, to obtain the path to the \texttt{JavaScripts} folder, follow the
+instructions for numbered paragraph \ding{183}, but with \meta{ver} equal
+to either \texttt{DC} or \texttt{2015} (a calendar year).
+
+%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/Privileged/11.0/JavaScripts
+
+\subsection{For users of \app{Mac OS}}
+
+\app{Mac OS} does not have the security restrictions that \app{Windows OS}
+does, as described in paragraphs \ding{183} and \ding{184}.
+
+Follow the instructions of paragraph \ding{182}, by first pressing the button
+provided in display~\eqref{display:getPath}, then, in the console window,
+execute this script as described in the paragraph following
+display~\eqref{display:getPath}. After working through \ding{182}, one
+obtains any of the following paths depending on the version (\meta{ver}) you
+are using:\medskip
+
+\noindent
+For $\text{\meta{ver}} = \texttt{8.0}, \texttt{9.0}, \texttt{10.0},
+\texttt{11.0}$:
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/Users/!meta(user)/Library/Application\ Support/Adobe/
+ Acrobat/!meta(ver)/JavaScripts
+\end{Verbatim}
+\medskip
+
+\noindent
+For $\text{\meta{ver}} > 12$, the path is,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/Users/!meta(user)/Library/Application\ Support/Adobe/
+ Acrobat/DC/JavaScripts
+\end{Verbatim}
+for a subscription license, and,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/Users/!meta(user)/Library/Application\ Support/Adobe/
+ Acrobat/2015/JavaScripts
+\end{Verbatim}
+or more generally,
+\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
+/Users/!meta(user)/Library/Application\ Support/Adobe/
+ Acrobat/!meta(year)/JavaScripts
+\end{Verbatim}
+for the perpetual license.
+
+In all cases, if the \texttt{JavaScripts} folder does not exist, it must
+be created. Copy any \SC{JS} support files into the \texttt{JavaScripts}
+folder. The script files are read the next time \app{Acrobat} is started.
+
+\section{Testing the placement of the JavaScript support files}
+
+Assuming you have successfully followed the instructions and created the
+\texttt{JavaScripts} folder, test the validity of what you have done by
+closing \app{Acrobat} then opening it again. Open the console window
+(\texttt{Ctrl+J} or \texttt{Cmd+J}, for \app{Mac OS}) and execute this
+command in the console window:
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars={!~@}]
+app.getPath("user","javascript");!quad!copyGetPathJS
+\end{Verbatim}
+If you have followed the instructions, the return string should read the
+complete path to the \texttt{JavaScripts} folder.
+\end{document}
diff --git a/macros/latex/contrib/acrotex/examples/test_install.pdf b/macros/latex/contrib/acrotex/examples/test_install.pdf
index c3c5e6362a..5a4d85c095 100644
--- a/macros/latex/contrib/acrotex/examples/test_install.pdf
+++ b/macros/latex/contrib/acrotex/examples/test_install.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/examples/test_install.tex b/macros/latex/contrib/acrotex/examples/test_install.tex
index f804b9c88e..b501c92838 100644
--- a/macros/latex/contrib/acrotex/examples/test_install.tex
+++ b/macros/latex/contrib/acrotex/examples/test_install.tex
@@ -26,13 +26,18 @@ To test the \textsf{AeB} installation, press this button:
Upon pressing the button, if you have installed the \texttt{aeb.js} file
correctly, a congratulatory message appears in the console window; if the
-installation is not correct, a message informs you so. On failure, did you
-close \textsf{Acrobat} before opening this file? (The JS files are only read
-once when the \textsf{Acrobat} application is opened.) When all else fails,
-try rereading the installation instructions again
+installation is not correct, a message informs you so.
+
+On failure, did you close \textsf{Acrobat} before opening this file? (The JS
+files are only read once when the \textsf{Acrobat} application is opened.)
+When all else fails, try rereading the installation instructions again
(\texttt{install\_jsfiles.pdf}), found in the \texttt{doc} folder, but more
carefully this time.
+Still failing? Do you have \textsf{Acrobat DC}? Perhaps your \textsf{Acrobat}
+needs to be configured. Try reading \texttt{acrobat-in-workflow.pdf}, found
+in the \texttt{doc} folder.
+
\end{document}
diff --git a/macros/latex/contrib/acrotex/examples/webeqtst.pdf b/macros/latex/contrib/acrotex/examples/webeqtst.pdf
index 31a2cd68c3..52446c31f4 100644
--- a/macros/latex/contrib/acrotex/examples/webeqtst.pdf
+++ b/macros/latex/contrib/acrotex/examples/webeqtst.pdf
Binary files differ
diff --git a/macros/latex/contrib/acrotex/examples/webeqtst.tex b/macros/latex/contrib/acrotex/examples/webeqtst.tex
index 0662bd7371..51bd5d5989 100644
--- a/macros/latex/contrib/acrotex/examples/webeqtst.tex
+++ b/macros/latex/contrib/acrotex/examples/webeqtst.tex
@@ -6,7 +6,7 @@
% \previewOn \pmpvOn
\title{\texorpdfstring{Acro\!\TeX}{AcroTeX} eDucation Bundle
- \texorpdfstring{\\[1ex]}{:}Exercises and Quizzes}
+ \texorpdfstring{\\[1ex]}{: }Exercises and Quizzes}
\author{D. P. Story}
\subject{File to test web and exerquiz packages}
\keywords{LaTeX, hyperref, PDF, exercises, quizzes}
@@ -20,9 +20,6 @@
\sqTurnOffAlerts
-
-% To insert a message on the cover page, uncomment the lines below,
-% and insert the 'nodirectory' option into the web package line above.
\usepackage{pifont}
\optionalPageMatter{\par\minimumskip\vspace{\stretch{1}}
\begin{center}
diff --git a/macros/latex/contrib/acrotex/exerquiz.dtx b/macros/latex/contrib/acrotex/exerquiz.dtx
index f478c87fe8..4ed438847b 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-2020 D. P. Story %%
+%% Copyright (C) 1999-2021 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> [2021/01/20 v8.6.2 %
+%<package|driver|aebjs|eqexam|randomize|sumrytbls|template> [2021/01/31 v8.6.3 %
%<package> Exerquiz: Exercises and Quizzes for LaTeX/PDF package (dps)]
%<driver> Exerquiz documentation driver file (dps)]
%<aebjs> Exerquiz document level JavaScript (dps)]
@@ -97,6 +97,8 @@
% {\PackageInfo{exerquiz}{aebdonotindex.def cannot be found}}
% \begin{macrocode}
% \end{macrocode}
+%\changes{v8.6.3}{2021/01/31}{Updated documentation, informing users of \string\app{Acrobat DC} that
+% it is necessary to change their \string\uif{Security (Enhanced)} preferences.}
%\changes{v8.2.8}{2018/12/13}{The SOL file is now written entirely when there is no solution option specified}
% (v8.0 dated 2017/08/08) This version introduces multi-letter variables and what I'll term `alternate appearances'.
% \changes{v8.0}{2017/08/08}{Introduce multi-letter variables and alternate appearances. Changes
diff --git a/macros/latex/contrib/acrotex/insdljs.dtx b/macros/latex/contrib/acrotex/insdljs.dtx
index d53aeb6baa..a13d72c43c 100644
--- a/macros/latex/contrib/acrotex/insdljs.dtx
+++ b/macros/latex/contrib/acrotex/insdljs.dtx
@@ -4,7 +4,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% insdljs.sty package, %%
-%% Copyright (C) 2001-2020 D. P. Story %%
+%% Copyright (C) 2001-2021 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -16,7 +16,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{insdljs}
-%<package> [2020/12/20 v2.5 Insert Document Level JavaScripts (dps)]
+%<package> [2021/02/07 v2.5.2 Insert Document Level JavaScripts (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -73,6 +73,9 @@
% \textsf{dvips} or \textsf{dvipsone} to produce a postscript file,
% which is then distilled), you are required to have Acrobat~5.0 (or
% later).
+% \changes{v2.5.1}{2021/02/04}{Updated \string\texttt{aeb\_man.tex} and
+% \string\texttt{eformman.tex} to reflect additional security restriction
+% on \string\app{Acrobat}.}
%
% \section{Features of the \textsf{insdljs} package}
% We present a few of the several features of the package to get some feel for its
@@ -868,8 +871,9 @@
% is turned on by default, and may be turned off with \DescribeMacro\pdfSpacesOff\cs{pdfSpacesOff}
% and back on by \DescribeMacro\pdfSpacesOn\cs{pdfSpacesOn}.
% \begin{macrocode}
-\def\pdfSpacesOn{\let\pdfSP\pdfSPDef}
-\def\pdfSpacesOff{\let\pdfSP\dl@sp@ce}
+\newif\ifpdfspaces\pdfspacesfalse
+\def\pdfSpacesOn{\global\pdfspacestrue\let\pdfSP\pdfSPDef}
+\def\pdfSpacesOff{\global\pdfspacesfalse\let\pdfSP\dl@sp@ce}
\pdfSpacesOff
\ifpdf\else\ifxetex\else\pdfSpacesOn\fi\fi
\def\pdfLBr{\string\173}
@@ -2051,14 +2055,19 @@
% \end{macrocode}
% We \cs{let} \cs{space} to \cs{pdfSP}, and declare \cs{obeyspaces}, in this way, the space
% character is active and is equal to \cs{040} (space). Start the verbatim environment.
+% We expand \cs{obeyspaces} only if \cs{pdfSpacesOn} is in effect.
+% \changes{v2.5.2}{2021/02/07}{Modify \string\cs{b@vrbdfnJS}, remove \string\cs{global}
+% on \string\cs{let}}
% \begin{macrocode}
-\def\b@vrbdfnJS#1{\global\let\space\pdfSP\makeatletter\obeyspaces%
+\def\b@vrbdfnJS#1{\ifpdfspaces\let\space\pdfSP
+ \makeatletter\obeyspaces\fi%
% \end{macrocode}
% Pass the first argument here. If this environment is for typesetting,
% initialize the tokens \cs{JStoks} to be in a group, and such. The insertion
% of \cs{dl@paramlocal} is to support the \cs{bParams}/\allowbreak\cs{eParams} construct.
% \begin{macrocode}
- #1\ifdlfortypeset\global\JStoks={\bgroup\leavevmode\dl@paramlocal}\fi%
+ #1\ifdlfortypeset%
+ \global\JStoks={\bgroup\leavevmode\dl@paramlocal}\fi%
\verbatim@start}
% \end{macrocode}
% The end of the environment code
diff --git a/macros/latex/contrib/acrotex/web.dtx b/macros/latex/contrib/acrotex/web.dtx
index 0704cade28..c143be3f4e 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-2019 D. P. Story %%
+%% Copyright (C) 1999-2021 D. P. Story %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -21,7 +21,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{web}
-%<package> [2019/12/16 v6.1.4 web: A Screen Design Package (dps)]
+%<package> [2021/02/06 v6.1.5 web: A Screen Design Package (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -75,6 +75,8 @@
% \string\texttt{dnidefs} to format changes and index. Compile \string\texttt{web.ins}
% to obtain the files \string\texttt{aebdocfmt.def} and \string\texttt{aebdonotindex.def}.}
% \changes{v6.0l}{2016/08/17}{Switched over to \string\texttt{xkeyval} package}
+% \changes{v6.1.5}{2021/02/06}{Modified definitions of \string\cs{subsubsection}
+% to include usage of \string\cs{texorpdfstring}}
% \begin{macrocode}
\RequirePackage{xkeyval}
% \end{macrocode}
@@ -2725,7 +2727,8 @@
%<*websectioning>
\renewcommand*\thesection{\arabic{section}}
\renewcommand*\thesubsection{\thesection.\arabic{subsection}}
-\renewcommand*{\thesubsubsection}{\textbullet}
+\renewcommand*{\thesubsubsection}
+ {\texorpdfstring{$\bullet$}{\textbullet}}
\renewcommand{\section}{\renewcommand{\@seccntformat}[1]{%
\@nameuse{the##1}\web@finalDot\enspace}%
\@startsection{section}{1}{\z@}%
@@ -3240,7 +3243,7 @@
\@ifundefined{ddd@DingToc}{}{%
\if\aeb@use@section@numbers\web@Zero\ifx\ddd@DingToc\@empty\else
\def\numberline{\color{\ddd@DingTocColor}\strut\ddd@DingToc}%
- \fi\fi}\hyperlink{#3}{\numberline}~\web@title\
+ \fi\fi}\hyperlink{#3}{\numberline}~\web@title\enspace\allowbreak
}%
% \end{macrocode}
% \end{macro}
@@ -5032,7 +5035,8 @@
\aeb@subsection@fontsize\aeb@subsection@halign
\color{\aeb@subsectioncolor}\aeb@subsection@special}}
\def\subsubDefaultDing#1{\def\web@subsubDefaultDing{{#1}}}
-\subsubDefaultDing{\textrm\textbullet}
+%\subsubDefaultDing{\textrm\textbullet}
+\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textbullet}}
\renewcommand\subsubsection{%
\renewcommand{\@seccntformat}[1]{\aeb@subsubsectionNum{##1}}%
\@startsection{subsubsection}{3}{\aeb@subsubsection@indent}%