summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--texmf-dist/doc/latex/pmdb/README.md8
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/probs/prob2.tex2
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/probs/prob4.tex5
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-eqedb.tex94
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-items.tex9
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-paras.tex12
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.pdfbin0 -> 406386 bytes
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.tex6
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-qzdb.pdfbin0 -> 450424 bytes
-rw-r--r--texmf-dist/doc/latex/pmdb/examples/tst-qzdb.tex9
-rw-r--r--texmf-dist/doc/latex/pmdb/pmdb-man.pdfbin243694 -> 249153 bytes
-rw-r--r--texmf-dist/doc/latex/pmdb/pmdb-man.tex192
-rw-r--r--texmf-dist/doc/latex/pmdb/pmdb.pdfbin262160 -> 279968 bytes
-rw-r--r--texmf-dist/doc/latex/pmdb/sample-item.tex4
-rw-r--r--texmf-dist/doc/latex/pmdb/sample-para.tex7
-rw-r--r--texmf-dist/source/latex/pmdb/pmdb.dtx274
-rw-r--r--texmf-dist/tex/latex/pmdb/pmdb.sty125
-rw-r--r--tlpkg/texlive.tlpdb12
18 files changed, 568 insertions, 191 deletions
diff --git a/texmf-dist/doc/latex/pmdb/README.md b/texmf-dist/doc/latex/pmdb/README.md
index aa2763ff..8b791ba1 100644
--- a/texmf-dist/doc/latex/pmdb/README.md
+++ b/texmf-dist/doc/latex/pmdb/README.md
@@ -1,6 +1,6 @@
The pmdb Package
Author: D. P. Story
-Dated: 2019-12-09
+Dated: 2021-06-07
This "poor man's database" (pmdb) package promotes a workflow
for building exams, homework, and other content. The package
@@ -20,6 +20,12 @@ aeb-reader.js needs to be installed. As the filename suggests,
this file will work for Adobe Acrobat Reader (DC), as well as
for the magnificent Adobe Acrobat itself.
+What's New (2021-06-07) New command \editSourceOn, which inserts
+a pushbutton in the margin; pressing the button loads the source
+file in the default editor. Expanding \useEditLnk replaces the
+marginal pushbutton with a link annotation. A new input mode
+\InputProbs, allows inputting problems for a eqexam document.
+
Enjoy!
Now, I must get back to my retirement.
diff --git a/texmf-dist/doc/latex/pmdb/examples/probs/prob2.tex b/texmf-dist/doc/latex/pmdb/examples/probs/prob2.tex
index 033fe41f..f633c48f 100644
--- a/texmf-dist/doc/latex/pmdb/examples/probs/prob2.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/probs/prob2.tex
@@ -1,4 +1,4 @@
\item \PTs{4} Select which of the following is true.
-\begin{answers}{4}
+\begin{answers}{4}%
\Ans1 True &\Ans0 False &\Ans0 Maybe &\Ans0 Sometimes
\end{answers}
diff --git a/texmf-dist/doc/latex/pmdb/examples/probs/prob4.tex b/texmf-dist/doc/latex/pmdb/examples/probs/prob4.tex
index 924d5da0..6110595a 100644
--- a/texmf-dist/doc/latex/pmdb/examples/probs/prob4.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/probs/prob4.tex
@@ -1,3 +1,6 @@
\essayQ{5} % num points assigned
\item\PTs{5} Write a short history of Acro\negthinspace\TeX.\par
-\RespBoxEssay{\linewidth}{1in}
+\RespBoxEssay*{\linewidth}{1in}
+\begin{solution}
+The history is well-known.
+\end{solution} \ No newline at end of file
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-eqedb.tex b/texmf-dist/doc/latex/pmdb/examples/tst-eqedb.tex
new file mode 100644
index 00000000..40de8991
--- /dev/null
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-eqedb.tex
@@ -0,0 +1,94 @@
+\documentclass{article}
+\usepackage[%nosolutions,
+ forcolorpaper,
+ pointsonright,totalsonright,
+ links,
+ vspacewithsolns
+ ]{eqexam} %online,
+\usepackage[dbmode,tight]{pmdb}
+
+
+\email{dpstory@uakron.edu}
+
+\university
+{%
+ NORTHWEST FLORIDA STATE COLLEGE\\
+ Department of Mathematics
+}
+\email{storyd@nwfsc.edu}
+\subject[MAC1105]{College Algebra}
+\examNum{1}\numVersions{1}\forVersion{a}
+\longTitleText
+ {Test~\nExam}
+\endlongTitleText
+\shortTitleText
+ {T\nExam}
+\endshortTitleText
+\altTitle{\vA{11:00 am, C-204}\vB{12:30 pm, L-138}}
+\title[\sExam]{\Exam}
+\author{Dr.\ D. P. Story}
+\date{\thisterm, \the\year}
+\duedate{10/09/14}
+\keywords{MAC 1105, Exam \nExam, {\thisterm} semester, \theduedate, at NWFSC}
+
+%\previewOn\pmpvOn
+\editSourceOn
+%\useEditBtn % the default
+\useEditLnk % try it with links
+\InputProbs
+\reversemarginpar
+
+\let\env\texttt
+\def\cs#1{\texttt{\eqbs#1}}
+
+\cfooteqe{\displayChoices{}{11bp}\cgBdry[1em]\clrChoices{}{11bp}}
+
+%\NoTotals
+\TotalsOnRight
+%\advance\marginparwidth12pt
+
+
+\begin{document}
+
+\maketitle
+
+\section{My first exam}
+
+Welcome to this section. Now that you've learned quite a lot, we can have
+a little quiz.
+
+
+\begin{exam}{dps1}
+\begin{instructions}
+Solve each without error.
+\end{instructions}
+
+\pmInput{eqexam/prob1.tex}
+
+\pmInput{eqexam/prob2.tex}
+
+\begin{eqComments}
+There are two ways of inputting content for a \env{problem*}: (1) in the source file, input items
+of the \env{parts} environment; (2) and input the whole \env{problem*} environment. The next problem
+is input using method (1); a \env{problem*} shell is placed in this source file and the individual items
+within the \env{parts} environment are input with \cs{pmInput}.
+\end{eqComments}
+
+\begin{problem*}[5ea]
+Solve each.
+\begin{parts}
+ \pmInput{eqexam/item1.tex}
+ \pmInput{eqexam/item2.tex}
+\end{parts}
+\end{problem*}
+
+\begin{eqComments}
+The whole of the next \env{problem*} environment is input with \cs{pmInput}. Interestingly, the items
+of the \env{parts} environment are still itemized by \cs{pmInput}.
+\end{eqComments}
+
+\pmInput{eqexam/prob3.tex}
+
+\end{exam}
+
+\end{document}
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-items.tex b/texmf-dist/doc/latex/pmdb/examples/tst-items.tex
index 46b25a10..b065a52f 100644
--- a/texmf-dist/doc/latex/pmdb/examples/tst-items.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-items.tex
@@ -2,7 +2,12 @@
\usepackage[forcolorpaper]{web}
\usepackage[dbmode,!tight]{pmdb}
-\previewOn
+\previewOn\pmpvOn
+
+\editSourceOn
+\useEditBtn % the default
+%\useEditLnk % try it with links
+
\reversemarginpar
@@ -19,7 +24,7 @@ The \texttt{itemize} environment
\end{itemize}
\medskip\noindent
-The \texttt{environment} environment
+The \texttt{enumerate} environment
\begin{enumerate}
\item One\marginpar{One}
\item Two\marginpar{Two}
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-paras.tex b/texmf-dist/doc/latex/pmdb/examples/tst-paras.tex
index 550e58db..cd9794f0 100644
--- a/texmf-dist/doc/latex/pmdb/examples/tst-paras.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-paras.tex
@@ -4,12 +4,14 @@
\usepackage{eforms}
\usepackage[dbmode]{pmdb}
-%\usepackage{srcltx}
-
%\previewOn\pmpvOn
+\editSourceOn
+%\useEditBtn % the default
+\useEditLnk % try it with links
+
% The default input mode
-%\InputParas
+\InputParas
\def\cs#1{\texttt{\eqbs#1}}
@@ -30,8 +32,8 @@ in the margins and executes an \cs{input} command.
% Adjust paths as needed
\pmInput{chapters/doc1.tex}
-%\input{"my doc2.tex"}
-\pmInput{"C:/Users/Public/Documents/My TeX Files/tex/latex/aeb/pmdb/examples/chapters/doc2.tex"}
+\input{"my doc2.tex"}
+%\pmInput{"C:/Users/Public/Documents/My TeX Files/tex/latex/aeb/pmdb/examples/chapters/doc2.tex"}
\medskip\noindent
\displayChoices{}{11bp}\cgBdry[1em]\clrChoices{}{11bp}
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.pdf b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.pdf
new file mode 100644
index 00000000..96680eef
--- /dev/null
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.tex b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.tex
index eb6807eb..c7623e9d 100644
--- a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb-paras.tex
@@ -2,7 +2,7 @@
\usepackage{amstext}
\usepackage[forcolorpaper]{web}
\usepackage{exerquiz}[2019/12/17]
-\usepackage[dbmode,!tight]{pmdb}
+\usepackage[dbmode,tight]{pmdb}
\reversemarginpar
@@ -11,7 +11,11 @@
\useBeginQuizButton[\CA{Begin}]
\useEndQuizButton[\CA{End}]
+
%\previewOn\pmpvOn
+\editSourceOn
+\useEditBtn % the default
+%\useEditLnk % try it with links
\rfooter{\dirTOCItem} % \dirTOCItem from web
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.pdf b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.pdf
new file mode 100644
index 00000000..ba2db8a5
--- /dev/null
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.tex b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.tex
index ac1898a8..2abfe569 100644
--- a/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.tex
+++ b/texmf-dist/doc/latex/pmdb/examples/tst-qzdb.tex
@@ -16,6 +16,10 @@
\version{1.0}
\norevisionLabel
+\editSourceOn
+%\useEditBtn % the default
+%\useEditLnk % try it with links
+
\PTsHook{($\eqPTs^{\text{pts}}$)}
@@ -27,15 +31,16 @@
\useMCCircles
+
% Declares input for quiz items
\InputQuizItems
-
\begin{document}
\maketitle
\tableofcontents
+
\section{Section 1}
Expand the \cs{InputQuizItems} here.
@@ -55,7 +60,7 @@ Solve each of these problems, passing is 100\%.
\section{Section 2}
-%\InputQuizItems
+\InputQuizItems
\begin{quiz*}{myquiz2}
diff --git a/texmf-dist/doc/latex/pmdb/pmdb-man.pdf b/texmf-dist/doc/latex/pmdb/pmdb-man.pdf
index 2405eb3c..8594cf46 100644
--- a/texmf-dist/doc/latex/pmdb/pmdb-man.pdf
+++ b/texmf-dist/doc/latex/pmdb/pmdb-man.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/pmdb/pmdb-man.tex b/texmf-dist/doc/latex/pmdb/pmdb-man.tex
index d9e387e5..d2a5e950 100644
--- a/texmf-dist/doc/latex/pmdb/pmdb-man.tex
+++ b/texmf-dist/doc/latex/pmdb/pmdb-man.tex
@@ -15,6 +15,7 @@
\usepackage[dbmode]{pmdb}
%\previewOn\pmpvOn
+\editSourceOn
\pmCBPresets{\textColor{red}}
@@ -83,7 +84,7 @@
email={dpstory@acrotex.net},
subject=Documentation for the pmdb package,
talksite={\url{www.acrotex.net}},
- version={0.4, 2019/12/09},
+ version={1.0, 2021/06/07},
Keywords={DB, LaTeX, AcroTeX},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
@@ -190,10 +191,10 @@ this package, a list of all \emph{selected} \cs{input} statements is
displayed in the JavaScript console. This list can then be copied and pasted
into another document the author is developing. If you
\uif{Ctrl+Click}\FmtMP{\uif{Ctrl+Click}} on a checkbox, the associated
-content is opened in the default TEX editor. For this workflow, the document
+content is opened in the default browser. For this workflow, the document
author can see a typeset of the content and decide whether the content should
-be included in the developing document, and can optionally, view the source
-file to edit it.
+be included in the developing document, and can optionally view the source
+file to edit it by clicking on the button or link to the right of the checkbox.
\section{Requirements and options}
@@ -212,7 +213,12 @@ procedure of folder JavaScript files is described in the file
\texttt{docs/install\_jsfiles.pdf}. The folder JS file \texttt{\fnJS} (or
\texttt{aeb\_pro.js}) enables the `\uif{Ctrl+Click}' to be operational for
both \app{Adobe Acrobat} (\app{AA}) and \app{Adobe Acrobat Reader}
-(\app{AR})\FmtMP{\app{AA} and \app{AR}}.
+(\app{AR})\FmtMP{\app{AA} and \app{AR}}. However, when the command
+\cs{editSourceOn}\FmtMP{\cs{editSourceOn}} is expanded, a pushbutton appears
+to the right of the checkbox; click on this pushbutton opens the content in
+the default editor. The use of the button generated by \cs{editSourceOn} requires
+neither \texttt{aeb-reader.js} nor \texttt{aeb\_pro.js}.
+
\paragraph*{Options.} There are four options: \opt{dbmode} and \opt{!dbmode}\FmtMP{\opt{dbmode}\\\relax\opt{!dbmode}},
and \opt{tight} and
@@ -228,7 +234,7 @@ checkboxes. The default location of the checkboxes are flush left. The
Refer to the \textbf{\nameref{para:CB}} paragraph for more information.
\paragraph*{Requirements.} The \pkg{eforms} package is required for the creation of
-checkboxes and push buttons.
+checkboxes and push\-buttons.
\section{The DB stage}
@@ -239,7 +245,7 @@ use the checkboxes in the margin to select content you want to include in
another document; you can use the \uif{Ctrl+Click} feature to view the source
file of that content as well.
-\newtopic
+\newtopic\noindent
The following comments are apropos to the creation of a DB document:
\begin{itemize}
\item\textbf{PDF creators:} Any PDF creator current in the {\LaTeX} world
@@ -248,8 +254,8 @@ is valid for use with this package.
\item\textbf{PDF viewers:} The ideal viewer is \app{AA}; however, \app{AR}
and \app{PDF-XChange Editor} can also be used. In the case of
\app{Adobe Reader}, there is an annoying security dialog box that
- appears each time you use the \uif{Ctrl+Click} feature of the check
- box;\footnote{This assumes the file \texttt{\fnJS} is properly
+ appears each time you use the \uif{Ctrl+Click} feature of the
+ checkbox;\footnote{This assumes the file \texttt{\fnJS} is properly
installed.} the \uif{Ctrl+Click} feature \emph{does not work} with
\app{PDF-XChange Editor}.
@@ -267,19 +273,22 @@ uses the \pkg{pmdb} package. The document itself uses \cs{pmInput} to input
its content.
\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()]
\documentclass{article}
-\usepackage[forcolorpaper]{web} % optional
-% !sffamily Additional packages that may be required by any content
-% !sffamily that is !texttt(\pmInput). For example, ...
-\usepackage{exerquiz} % if needed
+\usepackage[forcolorpaper]{web} %!textsf( optional)
+% !sffamily( Additional packages that may be required by any content)
+% !sffamily( that is input with !texttt(\pmInput). For example, ...)
+\usepackage{exerquiz} %!textsf( if needed)
\usepackage[dbmode]{pmdb}
...
+\editSourceOn %(!sffamily!space or, )\editSourceOff
+%\useEditLnk %(!sffamily!space !cs(useEditBtn), the default)
+...
\begin{document}
-% Declares input for quiz items
+% !textsf(Declares input for quiz items)
%\InputQuizItems
-% Declares input paragraph content
+% !textsf(Declares input paragraph content)
%\InputParas
-% Declares input items
+% !textsf(Declares input items)
%\InputItems
\pmInput{!ameta(path!SUB1)}
@@ -294,11 +303,45 @@ its content.
\end{document}
\end{Verbatim}
Descriptions of the various commands \cs{pmInput}, \cs{InputQuizItems},
-\cs{InputParas}, \cs{InputItems}, \cs{displayChocies}, and \cs{clrChoices}
+\cs{InputParas}, \cs{InputItems}, \cs{InputProbs}, \cs{editSourceOn}, \cs{displayChocies}, and \cs{clrChoices}
appear later in this documentation.\medskip
+\begingroup
+
+\InputParas
+
+\pmCBPresets{\Ff\FfReadOnly}
+\editSourceBtn[\TU{View in default editor}\Ff\FfReadOnly\S{S}]{11bp}{11bp}
+
\pmInput{sample-para.tex}
+\endgroup
+
+\paragraph*{Functionality of the boxes in the margin.}
+By default, only one box appears in the margins, a checkbox. If the command
+\cs{editSourceOn} is in effect, a small pushbutton appears to the left of the
+checkbox.
+\begin{description}
+ \item[checkbox:] Selecting the checkbox (a check mark) appears
+ declares that you want that problem (or item) in the document you
+ are creating. \uif{Ctrl+Click} opens the source file for viewing
+ (not editing) in the default browser. A \uif{Shift+Click} action
+ jumps---if \cs{InputQuizItems} is in effect---to the solution
+ of the selected item, if a solution is provided. The
+ \uif{Ctrl+Click} functionality requires the successful installation
+ of the \texttt{aeb-reader.js} or \texttt{aeb\_pro.js} JavaScript
+ file.
+ \item[pushbutton:] If \cs{editSourceOn} has been expanded prior, a
+ little pushbutton appears to the right of the checkbox. Clicking
+ the pushbutton opens the default viewer (for a TEX file) and the
+ source file is loaded into the viewer for possible editing.
+ \item[link annotation:] If \cs{editSourceOn} and \cs{useEditLnk} are
+ expanded, a link annotation having the same functionality as the
+ pushbutton appears in the margins, in place of the pushbutton.
+\end{description}
+The checkbox/pushbutton pair above have been disabled for this documentation.
+Experience the functionality with the example files, listed below.
+
\paragraph*{Sample files.}
The four sample files are found in the \texttt{examples} folder:
\begin{itemize}
@@ -312,8 +355,12 @@ The four sample files are found in the \texttt{examples} folder:
and \cs{InputParas} to input chapters.
\item\texttt{tst-items}: An example that demonstrates the \cs{InputItems}
input mode.
+\item\texttt{tst-eqedb.tex}: An example that demonstrates the \cs{InputProbs}
+ input mode.
\end{itemize}
+
+
\section{The production stage}
After your DB document has been assembled (using \pkg{pmdb}), you are ready
@@ -340,9 +387,9 @@ document, you can compile into a PDF. Done!
\section{Package commands}
The package defines several commands and these are discussed now.
-\bVerb\small\takeMeasure{\string\pmInput[\ameta{arg}]\darg{\ameta{path}}}%
+\bVerb\small\takeMeasure{\string\pmInput*[\ameta{arg}]\darg{\ameta{path}}}%
\begin{dCmd}[fontsize=\small,commandchars=!()]{\bxSize}
-\pmInput[!ameta(arg)]{!ameta(path)}
+\pmInput*[!ameta(arg)]{!ameta(path)}
\end{dCmd}
\eVerb Within a DB source document, content is inserted using \cs{pmInput}. This
command both inputs the referenced \ameta{path} (using the {\LaTeX} command
@@ -354,12 +401,14 @@ path needs to be enclosed in \emph{double quotes} (\texttt"); for example,
latex/aeb/pmdb/examples/chapters/doc2.tex"}
\end{Verbatim}
The optional argument \ameta{arg} is only obeyed when \cs{InputItems} is active and \cs{pmInput} is expanded
-within a list environment.
+within a list environment; \ameta{arg} is passed to the underlying \cs{item} in the list (\cs{item[\ameta{arg}]}). When
+the \texttt* option is taken, the rest of the arguments are gobbled and the command does nothing; this is a convenient
+way of \emph{not inputting} a \ameta{path}.
\paragraph*{Important requirement:} Unlike the normal \cs{input} command\FmtMP{extension required}, we require the file name to include
the extension, `\texttt{.tex}' in the above example.
-\paragraph{Input modes.} There are three `input modes':%\vskip-6pt\par
+\paragraph{Input modes.} There are four `input modes':%\vskip-6pt\par
\bVerb\small\takeMeasure{\string\InputQuizItems}%
\setlength{\eflength}{\widthof{\sffamily(\cs{thQuizName})}}%
\edef\x{\the\eflength}%
@@ -370,6 +419,7 @@ the extension, `\texttt{.tex}' in the above example.
!1\InputParas
\InputQuizItems
\InputItems
+\InputProbs
\end{dCmd}
\eVerb A brief description of each follows.
\begin{description}
@@ -381,6 +431,8 @@ the extension, `\texttt{.tex}' in the above example.
(as created by the \env{quiz} environment).
\item [\cs{InputItems}:] Sets the input mode to input items in a list
environment.
+ \item [\cs{InputProbs}:] Set the input mode to input problems for an exam
+ created by the \pkg{eqexam} package.
\end{description}
In all cases, the {\LaTeX} command \cs{marginpar}\FmtMP{\cs{marginpar} used} is used; as a result, the
checkbox appears in the margins when the \cs{marginpar} command is supported; in
@@ -388,12 +440,21 @@ particular, \cs{marginpar} does not work in a \env{tabular} environment or a
\env{multicols} environment, for example.
\newtopic\noindent
-Below is an example of \cs{InputItems}
+Below is an example of \cs{InputItems}.\footnote{The marginal form fields have been made readonly
+for this documentation.}
+
+\begingroup
+\pmCBPresets{\Ff\FfReadOnly}
+\editSourceBtn[\TU{View in default editor}\Ff\FfReadOnly\S{S}]{11bp}{11bp}
+\editSourceLnk[\cmd{\let\A\noexpand\A}\linktxtcolor{red}
+ \A{\JS{app.alert("The link to source file has been removed for this documentation.");}}]{11bp}{11bp}{E}
+%\previewOn
\begin{itemize}\pmdbtighttrue\InputItems %\normalmarginpar
\pmInput{sample-item.tex}
\item Another item, not input by \cs{pmInput}
+\useEditLnk
\pmInput[*]{sample-item.tex}
\end{itemize}
The verbatim listing is,
@@ -401,6 +462,7 @@ The verbatim listing is,
\begin{itemize}!textbf(\pmdbtighttrue\InputItems)
\pmInput{sample-item.tex}
\item Another item, not input by \verb|\pmInput|.
+!textbf(!string\useEditLnk) %!textsf( Use marginal link for illustrative purposes)
\pmInput[*]{sample-item.tex}
\end{itemize}
\end{Verbatim}
@@ -411,9 +473,10 @@ margin (flush right, in this case). You can (locally) move the checkboxes to
the right margin by expanding \cs{normalmarginpar} within the \env{itemize}
environment group.
+\endgroup
-\paragraph*{Checkboxes.}\label{para:CB} The document produces checkboxes in the margins, you can set
-the appearance of the checkboxes using the \cs{pmCBPresets} command
+\paragraph*{Marginal Checkboxes.}\label{para:CB} The document produces checkboxes in the margins, you can set
+the appearance of the checkboxes using the \cs{pmCBPresets} command.
\bVerb\small\takeMeasure{\string\pmCBPresets\darg{\ameta{opts}}}%
\begin{dCmd}[fontsize=\small,commandchars=!()]{\bxSize}
\pmCBPresets{!ameta(opts)}
@@ -431,7 +494,61 @@ class-type document, the checkboxes alternate between the left and right
margins. The option \opt{tight} can be used to move the checkboxes to the
inner margins of the text block.
-\paragraph*{Push buttons.} The package defines two push buttons that should be utilized
+\paragraph*{Marginal pushbuttons.} When \cs{editSourceOn} is in effect, a pushbutton
+appears to the right of the marginal checkbox. The action of this pushbutton is to open
+the source file in the default editor. Modify the appearance using the \cs{editSourceBtn} command:
+\bVerb\small\takeMeasure{\string\editSourceBtn[\ameta{opts}]\darg{\ameta{wd}}\darg{\ameta{ht}}}%
+\setlength{\eflength}{\bxSize}%
+\def\1{\rlap{\hskip\linewidth\textsf{(required for the button to appear)}}}%
+\def\2{\rlap{\hskip\linewidth\textsf{(the default)}}}%
+\begin{dCmd}[fontsize=\small,commandchars=!()]{\bxSize}
+!1\editSourceOn
+!2\useEditBtn
+\editSourceBtn[!ameta(opts)]{!ameta(wd)}{!ameta(ht)}
+\end{dCmd}
+\eVerb The first line \cs{editSourceOn} is required for the button to appear;
+usually this command is expanded in the preamble, but it can be expanded in
+the body of the document to turn on or off (\cs{editSourceOff}). The second
+line specifies that pushbutton form field should be used (the default). The
+third line is the general syntax; here, \ameta{opts} are key-values that are
+passed to the underlying \cs{pushButton} command of \pkg{eforms}.
+\bVerb\small\takeMeasure{\string\editSourceBtn[\string\TU\darg{View in default editor}\string\S\darg{S}]\darg{11bp}\darg{11bp}}%
+\setlength{\eflength}{\bxSize}%
+\def\2{\rlap{\hskip\linewidth\textsf{(the default)}}}%
+\begin{pCmd*}[fontsize=\small,commandchars=!()]{\bxSize}
+!2\editSourceBtn[\TU{View in default editor}\S{S}]{11bp}{11bp}
+\end{pCmd*}
+The above is the default definition for the marginal link.
+
+
+\paragraph*{Marginal links.} As an alternative to using marginal pushbuttons, \pkg{pmdb} also
+provides link annotations. When \cs{editSourceOn} is expanded\FmtMP{\cs{useEditLnk} and \cs{useEditBtn} discussed}, marginal
+buttons appear in the margin, by default. To obtain link annotations also
+expand the macro \cs{useEditLnk} (\cs{useEditBtn} is the default). Use
+\cs{editSourceLnk} to customized the link:
+\bVerb\small\takeMeasure{\string\editSourceLnk[\ameta{opts}]\darg{\ameta{wd}}\darg{\ameta{ht}}\darg{\ameta{txt}}}%
+\setlength{\eflength}{\bxSize}\def\2{\rlap{\hskip\linewidth\textsf{(the default)}}}%
+\def\1{\rlap{\hskip\linewidth\textsf{(required for the link to appear)}}}%
+\begin{dCmd}[fontsize=\small,commandchars=!()]{\bxSize}
+!1\editSourceOn
+\editSourceLnk
+\editSourceLnk[!ameta(opts)]{!ameta(wd)}{!ameta(ht)}{!ameta(txt)}
+\end{dCmd}
+\eVerb where \ameta{opts} are key-values that are passed to the underlying
+link command \cs{setLink} of \pkg{eforms}. The dimensions provided should be
+the same as those used by the marginal checkboxes so they are properly
+aligned.
+
+\bVerb\small\takeMeasure{\string\editSourceLnk[\string\linktxtcolor\darg{red}\string\H\darg{N}]\darg{11bp}\darg{11bp}\darg{E}}%
+\setlength{\eflength}{\bxSize}%
+\def\2{\rlap{\hskip\linewidth\textsf{(the default)}}}%
+\begin{pCmd*}[fontsize=\small,commandchars=!()]{\bxSize}
+!2\editSourceLnk[\linktxtcolor{red}\H{N}]{11bp}{11bp}{E}
+\end{pCmd*}
+The above is the default definition for the marginal button.
+
+
+\paragraph*{Pushbuttons.} The package defines two push buttons that should be utilized
in your DB document. They can be placed at the end of the document, or in a
running footer.
@@ -440,11 +557,12 @@ running footer.
\displayChoices[!ameta(opts)]{!ameta(wd)}{!ameta(ht)}
\clrChoices[!ameta(opts)]{!ameta(wd)}{!ameta(ht)}
\end{dCmd}
-\eVerb \cs{displayChoices} displays the choices made in the console window of \app{AA/AR}, while
-\cs{clrChoices} clears all the marginal checkboxes. For example,
+\eVerb The \cs{displayChoices} command displays the choices made in the
+console window of \app{AA/\allowbreak AR}, while \cs{clrChoices} clears all
+the marginal checkboxes. For example,
\begin{quote}
\begin{tabular}{@{}ll}
-\displayChoices{}{11bp}&\clrChoices{}{11bp}\\
+\displayChoices{}{11bp}&\clrChoices{}{11bp}\\[3bp]
\footnotesize\cs{displayChoices\darg{}\darg{11bp}}&
\footnotesize\cs{clrChoices\darg{}\darg{11bp}}
\end{tabular}
@@ -456,9 +574,9 @@ convenience commands associate with \cs{displayChoices} and \cs{clrChoices}:
%\edef\x{\the\eflength}%
\setlength{\eflength}{\bxSize}%
\def\1{\rlap{\hskip\eflength\sffamily(Display Choices)}}
-\def\2{\rlap{\hskip\eflength\sffamily(Lists all choices in the console window)}}
+\def\2{\rlap{\hskip\eflength\sffamily(Display all choices in the console window)}}
\def\3{\rlap{\hskip\eflength\sffamily(Clear Choices)}}
-\def\4{\rlap{\hskip\eflength\sffamily(Clears all checkboxes created by pmdb)}}
+\def\4{\rlap{\hskip\eflength\sffamily(Clear all checkboxes created by pmdb)}}
%{Display Choices}
%{Lists all choices in the console window}
%{Clear Choices}
@@ -482,18 +600,20 @@ must accompany the DB document. As long as all references to DB files are
supporting DB files. Just ZIP the whole folder containing the DB document and
all DB files. They can now be moved to another computer system, unzipped, and
total functionality attained. For the \uif{Ctrl+Click} feature to work, the
-\texttt{\fnJS} file must also be installed.
+\texttt{\fnJS} file must also be installed. However, recall that the use of
+the marginal edit button or link annotation does not require installation of
+a JavaScript file.
\section{Final comments}
The method of producing the checkboxes in the margins work for many of the
-situations that arise in producing a {\LaTeX} document; however, the three
-`input modes' \cs{InputParas}, \cs{InputQuizItems}, and \cs{InputItems} may
-fail in some situations. By studying the DTX file perhaps you can create more
-input modes that solve your problem.
+situations that arise in producing a {\LaTeX} document; the four
+`input modes' \cs{InputParas}, \cs{InputQuizItems}, \cs{InputProbs}, and
+\cs{InputItems}, however, may fail in some situations. By studying the DTX file perhaps
+you can create more input modes that solve your problem.
\newtopic\noindent
-It was lovely, but now I must return to my retirement. \dps
+It has been lovely, but now I must return to my retirement. \dps
\end{document}
diff --git a/texmf-dist/doc/latex/pmdb/pmdb.pdf b/texmf-dist/doc/latex/pmdb/pmdb.pdf
index 9c3394b4..7b80a891 100644
--- a/texmf-dist/doc/latex/pmdb/pmdb.pdf
+++ b/texmf-dist/doc/latex/pmdb/pmdb.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/pmdb/sample-item.tex b/texmf-dist/doc/latex/pmdb/sample-item.tex
deleted file mode 100644
index 21d93a9e..00000000
--- a/texmf-dist/doc/latex/pmdb/sample-item.tex
+++ /dev/null
@@ -1,4 +0,0 @@
-\item
-This is content destined for an list environment and was input by \verb|\pmInput|.
-
-\endinput
diff --git a/texmf-dist/doc/latex/pmdb/sample-para.tex b/texmf-dist/doc/latex/pmdb/sample-para.tex
deleted file mode 100644
index c70612cc..00000000
--- a/texmf-dist/doc/latex/pmdb/sample-para.tex
+++ /dev/null
@@ -1,7 +0,0 @@
-These methods are not restricted to inputting quiz items or whole
-chapters. This paragraph was input into the main document with
-\cs{pmInput\darg{sample-para.tex}}. Note the check box in the left margin. If
-you have \texttt{aeb-reader.js} or \texttt{aeb\_pro.js} properly installed, you can \uif{Ctrl+Click} to
-see this paragraph at the source.
-
-\endinput
diff --git a/texmf-dist/source/latex/pmdb/pmdb.dtx b/texmf-dist/source/latex/pmdb/pmdb.dtx
index 6a0d2099..1d13d3d2 100644
--- a/texmf-dist/source/latex/pmdb/pmdb.dtx
+++ b/texmf-dist/source/latex/pmdb/pmdb.dtx
@@ -4,7 +4,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% pmdb.sty package,, %%
-%% Copyright (C) 2019 D. P. Story %%
+%% Copyright (C) 2019-2021 D. P. Story %%
%% dpstory@uakron.edu dpstory@acrotex.net %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -16,7 +16,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{pmdb}
-%<package> \ProvidesPackage{pmdb}[2019/12/09 v0.4 Mark for input files]
+%<package> \ProvidesPackage{pmdb}[2021/06/07 v1.0 Mark for input files]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false,linktocpage,bookmarksnumbered]{hyperref}
@@ -48,6 +48,7 @@
\renewcommand{\subparagraph}
{\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}%
{\normalfont\normalsize\bfseries}}
+ \let\@latex@warning\@gobble
\makeatother
\InputIfFileExists{aebdocfmt.def}{\PackageInfo{pmdb}{Inputting aebdocfmt.def}}
{\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
@@ -117,6 +118,7 @@
%\paragraph*{The production stage:} After the document has been assembled (using \pkg{pmdb}), and you build your final document
%(perhaps an \pkg{exerquiz} quiz), the end user can use an appropriate PDF reader. If an \pkg{exerquiz} quiz is used, then
%a minimum of \app{Adobe Acrobat Reader} is required.
+%\changes{v1.0}{2021/06/07}{Upgrading v0.6 to v1.0 for publication}
% \section{The main code}
% \begin{macrocode}
\edef\th@dquoteCat{\the\catcode`\"}
@@ -125,23 +127,27 @@
% \end{macrocode}
%\subsection{Package options and package requirements}
%
-%\leavevmode\IndexOpt{dbmode} The default option is \opt{dbmode}. When in effect, check boxes
-%appear in the margins at each \cs{pmInput} point.
+%\leavevmode\IndexOpt{dbmode}^^A
+% The default option is \opt{dbmode}. When in effect, check boxes
+% appear in the margins at each \cs{pmInput} point.
% \begin{macrocode}
\DeclareOption{dbmode}{\pmdbmodetrue}
% \end{macrocode}
-%\leavevmode\IndexOpt[\protect\EXCL]{!dbmode} A convenient way to turn off the creation of the check boxes
-%is to simply place an exclamation point (!) in front of the \opt{dbmode} option.
+%\leavevmode\IndexOpt[\protect\EXCL]{!dbmode}^^A
+% A convenient way to turn off the creation of the check boxes
+% is to simply place an exclamation point (!) in front of the \opt{dbmode} option.
% \begin{macrocode}
\DeclareOption{!dbmode}{\pmdbmodefalse}
% \end{macrocode}
-%\leavevmode\IndexOpt{tight} When this option is taken, the checkboxes are tight against the text box
-%area.
+%\leavevmode\IndexOpt{tight}^^A
+% When this option is taken, the checkboxes are tight against the text box
+% area.
% \begin{macrocode}
\newif\ifpmdbtight \pmdbtightfalse
\DeclareOption{tight}{\pmdbtighttrue}
% \end{macrocode}
-%\leavevmode\IndexOpt[\protect\EXCL]{!tight} The default for the package, the checkboxes are placed
+%\leavevmode\IndexOpt[\protect\EXCL]{!tight}^^A
+%The default for the package, the checkboxes are placed
%to extreme left (or right) in the margins.
% \begin{macrocode}
\DeclareOption{!tight}{\pmdbtightfalse}
@@ -152,50 +158,105 @@
% One motivation for this package is to support the \pkg{thorshammer} package, to that end
% we make the following assignment, if Thor is not present.
% This is to prevent stoppage:
-% if your are inputting a \cs{RespBoxEssay} question that is accompanied by the
-% \cs{essayQ} command, defined in \pkg{thorshammer}.\medskip
+% if you are inputting a \cs{RespBoxEssay} question that is accompanied by the
+% \cs{essayQ} command, defined in \pkg{thorshammer}.
% \begin{macrocode}
\def\pmdb@ckThor{\@ifundefined{essayQ}{\let\essayQ\@gobble}{}}
\AtBeginDocument{\pmdb@ckThor}
% \end{macrocode}
-%\subsection{Form field creation}
-% \textbf{Some Booleans and counters}
+%\subsection{Some switches}
+% \textbf{Some Booleans and counters.}
+% The \cs{ifpmdbFP} switch is set to true when the path to the resource is a full path; otherwise, it is set to false.
+% The \cs{ifpmdbDQs} switch is set to true of double-quotes are detected; otherwise it is false.
% \begin{macrocode}
\newif\ifpmdbFP \pmdbFPfalse
\newif\ifpmdbDQs \pmdbDQsfalse
+% \end{macrocode}
+%\subsection{Form field creation}
+% In version dated 2021/01/03, we introduce a button to edit the resource directly in the default application.
+% If can be turned on with \DescribeMacro\editSourceOn\cs{editSourceOn} and off again with \DescribeMacro\editSourceOff
+% \cs{editSourceOff}. The default is off. These commands can be placed
+% anywhere in the document and affect all subsequent insertions of \cs{cbSelectInput}.
+% \changes{v0.6}{2021/01/03}{Added \string\cs{editSourceOn} and \string\cs{editSourceOff}}
+% \begin{macrocode}
+\newif\ifeditSource \editSourcefalse
+\def\editSourceOn{\editSourcetrue}
+\def\editSourceOff{\editSourcefalse}
\newcount\pmdb@Cnt
% \end{macrocode}
%
-%\subsubsection{Check box creation}
+%\subsubsection{Marginal edit source creation}
%
+% First up is the design for the edit pushbutton or link annotation.
+% \begin{macro}{\editSourceBtn}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}}
+% The button to show the current referenced content in the default application.
+% \changes{v0.6}{2021/01/03}{Added \string\cs{editSourceBtn}}
+% \begin{macrocode}
+\newcommand{\editSourceBtn}[3][]{\def\@editSourceBtn##1{%
+ \pushButton[\A{/S/Launch/F(##1)}\protect\A#1
+ ]{editPb.\the\pmdb@Cnt}{#2}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\editSourceBtn}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}\darg{\ameta{txt}}}
+% The link version of the button.
+% \changes{v0.6}{2021/01/03}{Added \string\cs{editSourceLnk}}
+% \begin{macrocode}
+\newcommand{\editSourceLnk}[4][]{\def\@editSourceLnk##1{%
+ \raisebox{1bp}{\setLinkBbox[\A{/S/Launch/F(##1)}
+ \protect\A#1]{#2}{#3}[c]{\makebox[#2][l]{\thinspace#4}}}}}
+% \end{macrocode}
+% Declare the appearance of this push button and link
+% \begin{macrocode}
+\editSourceBtn[\TU{View in default editor}\S{S}]{11bp}{11bp}
+\editSourceLnk[\linktxtcolor{red}\H{N}]{11bp}{11bp}{E}
+% \end{macrocode}
+% We provide a control for setting the annot used to edit the source:
+% \DescribeMacro\useEditBtn\cs{useEditBtn}, a pushbutton is used;
+% \DescribeMacro\useEditLnk\cs{useEditLnk}, a link is used. The default
+% is to use a pushbutton.
+% \changes{v0.6}{2021/01/03}{Added \string\cs{useEditBtn} and \string\cs{useEditLnk}}
+% \begin{macrocode}
+\def\useEditBtn{\def\@editSourceBorL{\@editSourceBtn}}
+\def\useEditLnk{\def\@editSourceBorL{\@editSourceLnk}}
+\useEditBtn
+% \end{macrocode}
+%\subsubsection{Marginal checkbox creation}
%\DescribeMacro\cbSelectInput\nmpsep{\darg{\ameta{path}}} creates a check box with a tool tip of \ameta{path}
%The mouse up action \cs{ccBoxMU} fixes up relative paths, and defines a \uif{Ctrl+Click} action. When the check box
-%is so clicked, the \ameta{path} is opened in the default TEX editor. The \ameta{path} can be relative or absolute.
+%is so clicked, the \ameta{path} is opened in the default browser. The \ameta{path} can be relative or absolute.
%This command is used within \cs{insertCkBx}; its \ameta{path} argument is passed to it from \cs{insertCkBx}.
+%\changes{v0.6}{2021/01/03}{Added hard wired action to launch the default application.}
% \begin{macrocode}
\def\pmCBPresets#1{\def\pm@CBPresets{#1}}
\pmCBPresets{}
-\def\cbSelectInput#1{\checkBox[\TU{#1}\presets{\pm@CBPresets}
- \cmd{\bParams{#1}{\the\pmdb@Cnt}\eParams}
- \AAmouseup{\ccBoxMU}
- ]{pmdbCkBx.\the\pmdb@Cnt}{11bp}{11bp}{On}%
- \global\advance\pmdb@Cnt\@ne}
% \end{macrocode}
-%\leavevmode\DescribeMacro\insertCkBx\nmpsep{\darg{\ameta{method}}} The argument of this macro describes the method
+% Here is the check box that appears in the margins and the edit source button
+% \cs{ifeditSource} is true.
+% \begin{macrocode}
+\def\cbSelectInput#1{\mbox{\checkBox[\TU{#1}\presets{\pm@CBPresets}
+ \cmd{\bParams{#1}{\the\pmdb@Cnt}\eParams}
+ \AAmouseup{\ccBoxMU}]{pmdbCkBx.\the\pmdb@Cnt}{11bp}{11bp}{On}%
+ \ifeditSource\olBdry\@editSourceBorL{#1}\fi}\global
+ \advance\pmdb@Cnt\@ne
+}
+% \end{macrocode}
+% \end{macro}
+%\leavevmode\DescribeMacro\insertCkBx\nmpsep{\darg{\ameta{method}}}
+% The argument of this macro describes the method
%of inserting the checkbox. The default definition works well for a straightforward document, where you are inputting
%ordinary {\LaTeX} code (such as sections or chapters).\smallskip
% \begin{macrocode}
\def\insertCkBx#1{\def\@insertCkBx##1{#1}}
% \end{macrocode}
% Placement of check boxes in the margin. \DescribeMacro\pmAlignCB\cs{pmAlignCB} controls the marginpar placement.
-% \DescribeMacro\normalCBMargins\cs{normalCBMargins} places it according to the rules of \cs{marginpar};
% \DescribeMacro\altCBMargins\cs{altCBMargins} alternates the margin placement, forces the check box to the
% extreme left (on odd pages) and extreme right (on even pages).
% \begin{macrocode}
\def\setCBsMarg{%
\ifpmdbtight
\if@reversemargin
- \def\pmAlignCBAlt{\ifodd\value{page}\leavevmode\hfill\else\fi}\else
+ \def\pmAlignCBAlt{\ifodd\value{page}\leavevmode
+ \hfill\else\fi}\else
\def\pmAlignCBAlt{\ifodd\value{page}\else\hfill\fi}\fi
\else
\if@reversemargin
@@ -216,27 +277,47 @@
% This is the default declaration. It works well when you are inputting content
% that goes into horizontal mode. We insert the check box at the beginning of the
% first paragraph. When you are inputting files that come into a list environment, this method
-% does not work satisfactory.\medskip\par\noindent
-%\DescribeMacro\InputParas declares that the next \cs{pmInput} macros are for paragraph content.
-%This is the default state of the package. %\par\medskip
-%\paragraph*{pmInput states}
+% does not work satisfactory.
+%
+%\section{\tops{\cs}{\textbackslash}{pmInput} states}
+% The switch \cs{ifqzInput} is set to true when \cs{InputQuizItems} is expanded;
+% otherwise, it is set to false.
% \begin{macrocode}
-\def\InputParas{%\let\pmAlignCB\relax
+\newif\ifqzInput \qzInputfalse
+% \end{macrocode}
+% \DescribeMacro\InputParas This macro declares that the next \cs{pmInput} macros are for paragraph content.
+%This is the default state of the package.
+% \begin{macrocode}
+\def\InputParas{\global\qzInputfalse
\insertCkBx{\ifpmdbmode
- \everypar{\marginpar{\pmAlignCB\cbSelectInput{##1}}\global\everypar{}}\fi}}
+ \everypar{\marginpar{\pmAlignCB
+ \cbSelectInput{##1}}\global\everypar{}}\fi}}
+% \end{macrocode}
+% Set the default to be \cs{InputParas}
+% \begin{macrocode}
\InputParas
% \end{macrocode}
+% The \DescribeMacro\InputProbs\cs{InputProbs} is a command that declares
+% the next \cs{pmInput} is for questions for an \pkg{eqexam}
+% document. Currently this command is still under development.
+% \begin{macrocode}
+\def\InputProbs{\global\qzInputfalse
+ \insertCkBx{\ifpmdbmode
+ \def\prior@questionsHook{\marginpar
+ {\pmAlignCB\cbSelectInput{##1}}}\fi}}
+% \end{macrocode}
%\leavevmode
-%\DescribeMacro\InputQuizItems declares that the next \cs{pmInput} macros are for items in
+%\DescribeMacro\InputQuizItems The macro declares that the next \cs{pmInput} is for items in
%a \env{quiz} environment of \pkg{exerquiz}
%\changes{v0.4}{2019/12/09}{Modified to work when no points are specified}
% \begin{macrocode}
\newcount\saveQNo \saveQNo\z@
\def\pmHook@qzItems{%
\let\item@pmOld\item
- \def\item@pnNew{\item@pmOld\itemhook\let\item\item@pmOld}%
- \let\item\item@pnNew}
-\def\InputQuizItems{\let\pmHook\pmHook@qzItems
+ \def\item@pmNew{\item@pmOld\itemhook\let\item\item@pmOld}%
+ \let\item\item@pmNew}
+\def\InputQuizItems{\global\qzInputtrue
+ \let\pmHook\pmHook@qzItems
\saveQNo\z@
\insertCkBx{\def\cbInQzMargin{\cbSelectInput{##1}}}%
\ItemHook{\leavevmode\ifpmdbmode
@@ -245,7 +326,7 @@
\saveQNo=\arabic{eqquestionnoi}\fi}}
% \end{macrocode}
%\leavevmode
-%\DescribeMacro\InputItems declares that the next \cs{pmInput} macros are for items in
+%\DescribeMacro\InputItems This command declares that the next \cs{pmInput} macros are for items in
%an list environment 2019/12/09 v0.4
%\changes{v0.4}{2019/12/09}{Added \string\cs{InputItems}}
% \begin{macrocode}
@@ -262,12 +343,14 @@
\let\item\item@pmNew
}
\def\ItemHook#1{\def\itemhook{#1}}
-\def\InputItems{\let\pmHook\pmHook@item
+\def\InputItems{\global\qzInputfalse
+ \let\pmHook\pmHook@item
\insertCkBx{\def\cbInQzMargin{\cbSelectInput{##1}}}%
\ItemHook{\leavevmode\ifpmdbmode
\marginpar{\pmAlignCB\cbInQzMargin}\fi}}
% \end{macrocode}
-%\paragraph*{Place check box and input \ameta{path}}\leavevmode\par\medskip
+%
+%\paragraph*{Place checkbox and input \ameta{path}}\leavevmode\par\medskip
%\noindent
%\DescribeMacro\ckBxInput\nmpsep{\darg{\ameta{path}}} Places the check box and inputs the \ameta{path}.
% \begin{macrocode}
@@ -277,42 +360,61 @@
\def\donext{\pmHook\input{#1}}\fi
\donext}
% \end{macrocode}
-%\subsubsection{Push button creation}
+%\subsection{Other pushbutton creations}
%This package provides two form fields that are used for the DB step.\par\medskip
%\noindent
%\DescribeMacro\displayChoices\nmpsep{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}} inserts a push button
%whose action is to display the selections in the console window. The argument \ameta{wd} can be empty, in which
%case, the width of the field is determined from the \cs{CA} key.
% \begin{macrocode}
-\def\displayChoiceCA#1{\def\displayChoice@CA{#1}}
-\def\displayChoiceTU#1{\def\displayChoice@TU{#1}}
-\displayChoiceCA{Display Choices}
-\displayChoiceTU{Lists all choices in the console window}
\newcommand{\displayChoices}[3][]{\pushButton[\TU{\displayChoice@TU}
\CA{\displayChoice@CA}#1\AAmouseup{\sldInputs}\protect\AA
]{sldInputs}{#2}{#3}}
% \end{macrocode}
+% Easy access to the \cs{CA} and \cs{TU} keys, for language localization, are provided.
+% These are \DescribeMacro\displayChoiceCA\cs{displayChoiceCA\darg{\ameta{text}}} and
+% \DescribeMacro\displayChoiceTU\cs{displayChoiceTU\darg{\ameta{text}}}.
+% \begin{macrocode}
+\def\displayChoiceCA#1{\def\displayChoice@CA{#1}}
+\def\displayChoiceTU#1{\def\displayChoice@TU{#1}}
+\displayChoiceCA{Display Choices}
+\displayChoiceTU{Display all choices in the console window}
+% \end{macrocode}
%\DescribeMacro\clrChoices\nmpsep{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}} inserts a push button
% whose action is to clear all check boxes (and underlying JavaScript variables) created by this package.
% The argument \ameta{wd} can be empty, in which
% case, the width of the field is determined from the \cs{CA} key.
% \begin{macrocode}
+\newcommand{\clrChoices}[3][]{\pushButton[\TU{\clrChoices@TU}
+ \CA{\clrChoices@CA}#1\AAmouseup{\clrAction}\protect\AA
+]{Inputs}{#2}{#3}}
+% \end{macrocode}
+% Easy access to the \cs{CA} and \cs{TU} keys, for language localization, are provided.
+% These are \DescribeMacro\clrChoicesCA\cs{clrChoicesCA\darg{\ameta{text}}} and
+% \DescribeMacro\clrChoicesTU\cs{clrChoicesTU\darg{\ameta{text}}}.
+% \begin{macrocode}
\def\clrChoicesCA#1{\def\clrChoices@CA{#1}}
\def\clrChoicesTU#1{\def\clrChoices@TU{#1}}
+% \end{macrocode}
+% The default declarations for these two.
+% \begin{macrocode}
\clrChoicesCA{Clear Choices}
-\clrChoicesTU{Clears all check boxes created by pmdb}
-\newcommand{\clrChoices}[3][]{\pushButton[\TU{\clrChoices@TU}
- \CA{\clrChoices@CA}#1\AAmouseup{\clrAction}\protect\AA
-]{sldInputs}{#2}{#3}}
+\clrChoicesTU{Clear all check boxes created by pmdb}
% \end{macrocode}
%
-%\subsection{Defining the \cs{pmInput} command}
+%\subsection{Defining the \tops{\protect\cs}{}{pmInput} command}
%
-%\DescribeMacro\pmInput\nmpsep{[\ameta{arg}]\darg{\ameta{path}}} is the main user-interface for inputting a file; here,
-%the macros name is \cs{pmInput}, ultimately it calls \cs{input} with the same path. Paths with spaces
+%\DescribeMacro\pmInput\nmpsep{*[\ameta{arg}]\darg{\ameta{path}}} is the main user-interface for inputting a file; here,
+%the macro's name is \cs{pmInput}, ultimately it calls \cs{input} with the same path. Paths with spaces
%must be enclosed in double quotes (|\pmInput{my cool problem.tex}|) and the extensions must always be used.
+%It the \texttt* option is specified, \cs{pmInput} gobbles up all remaining arguments and does nothing otherwise.
+%The optional argument \ameta{arg} is only obeyed when \cs{InputItems} is in affect; it is passed on to
+%the underlying \cs{item}, as in \cs{item[\ameta{arg}]}. The \ameta{path} argument is the path to the content to be input;
+%if the \ameta{path} contains spaces, then the path must be enclosed in double quotes (\texttt{"my cool path/file.tex"}).
% \begin{macrocode}
-\def\pmInput{\@ifnextchar[%]
+\newcommand\@gobbleOR[2][]{}
+\def\pmInput{\@ifstar{\@gobbleOR}{\pmInput@i}}
+\def\pmInput@i{\@ifnextchar[%]
{\let\pm@Brk\ef@YES\inputConta}
{\let\pm@Brk\ef@NO\inputConta}}
\let\pm@Brk\ef@NO
@@ -352,16 +454,20 @@
% in other package, in particular in the \pkg{srcltx}. So we allow the use of \cs{Input}
% if \cs{Input} is not otherwise defined.
% \begin{macrocode}
-\def\pmInputWarni{\PackageWarningNoLine{pmdb}{The command \string\Input\space
- is already defined.\MessageBreak
+\def\pmInputWarni{\PackageWarningNoLine{pmdb}{The command
+ \string\Input\space is already defined.\MessageBreak
The checkboxes may not appear in the margins.\MessageBreak
Use the supported command \string\pmInput\space instead}}
\def\pmInputWarnii{\PackageWarningNoLine{pmdb}{Letting
\string\Input\space to \string\pmInput. You are \MessageBreak
encouraged to use the supported\MessageBreak
command \string\pmInput\space instead}}
-\def\pmInputChk{\@ifundefined{Input}{\let\Input\pmInput\pmInputWarnii}
- {\pmInputWarni}}
+\def\pmInputChk{%
+ \@ifundefined{Input}{%
+ \gdef\Input{\pmInputWarnii
+ \global\let\pmInputWarnii\relax
+ \global\let\pmInputWarni\relax
+ \pmInput}}{\pmInputWarni}}
\AtBeginDocument{\pmInputChk}
% \end{macrocode}
%
@@ -369,8 +475,9 @@
% \leavevmode
%\DescribeMacro\ccBoxMU
% This is the JavaScript action of the check box, used in \cs{cbSelectInput}
+% This code uses two parameters \cs{p(1)=\ameta{path}} and \cs{p(2)=\ameta{cnt}} (|\the\pmdb@Cnt|).
% \begin{macrocode}
-\begin{defineJS}[\makeesc\@\catcode`\%=14\relax]{\ccBoxMU}
+\begin{defineJS}[\makeesc\@\makecmt\%]{\ccBoxMU}
@ifpmdbFP%
event.target.userName=("@p(1)");
@else%
@@ -382,28 +489,48 @@ event.target.userName=("@p(1)");
var pos=this.path.lastIndexOf("/");
var thispath=this.path.substring(0,pos+1);
% \end{macrocode}
-% \enspace\verb|/<drive>/user/documents/.../myfolder/|
+% \enspace|/<drive>/user/documents/.../myfolder/|
% \begin{macrocode}
-pos=this.path.indexOf("/",1);
-var drive=thispath.substring(0,pos);
+pos=thispath.indexOf("/",1);
+var drive=thispath.substring(1,pos);
var platform=app.platform;
+% \end{macrocode}
+% \uif{Windows} platform
+% \begin{macrocode}
if (platform=="WIN")
% \end{macrocode}
-% \hskip\parindent\enspace\verb|/<drive>:/user/documents/.../myfolder/|
+% \enspace|<drive>:/user/documents/.../myfolder/|
% \begin{macrocode}
thispath=drive+":/"+thispath.substring(pos+1);
-event.target.userName=thispath+("@p(1)");
-@fi%
+% \end{macrocode}
+% \uif{MacOS} platform: I'm not familiar with the \uif{MacOS} file system, so we'll just
+% assume it is the same as with Windows.
+% \begin{macrocode}
+if (platform=="MAC")
+% \end{macrocode}
+% \enspace|<drive>/user/documents/.../myfolder/|
+% \begin{macrocode}
+ thispath=drive+"/"+thispath.substring(pos+1);
+event.target.userName=thispath+("@p(1)");@fi
if (event.modifier){
- var _to=app.setTimeOut("_restoreCCState('pmdbCkBx.@p(2)');",.05);
+ event.target.checkThisBox(0,!event.target.isBoxChecked(0));
try {
- aebTrustedFunctions(this,aebLaunchURL,
- {cURL: "file://"+event.target.userName});
+ aebTrustedFunctions(this,aebLaunchURL,%
+{cURL: "file:///"+event.target.userName});
} catch(e) {
console.show();
console.println("The Ctrl+Click action is not supported, %
-installation of aeb\_pro.js is required.");
+installation of aeb\_pro.js or aeb-reader.js is required.");
}
+% \end{macrocode}
+% (2020/04/29) Add a shift event for quizzes.
+% \changes{v0.5}{2020/04/29}{Added \string\texttt{event.shift} for quizzes}
+% \begin{macrocode}
+}
+if (event.shift) {
+ event.target.checkThisBox(0,!event.target.isBoxChecked(0));%
+@ifqzInput
+ this.gotoNamedDest("@currQuiz."+(@p(2)+1));@fi
} else {
if (event.target.isBoxChecked(0)){
_oSPaths["pmdbCkBx.@p(2)"]=%
@@ -425,18 +552,18 @@ installation of aeb\_pro.js is required.");
% and displays them in the console window of \app{Acrobat/Reader}, used in
% \cs{displayChoices}.
% \begin{macrocode}
-\begin{defineJS}[\catcode`\%=14\relax]{\sldInputs}
+\begin{defineJS}[\makecmt\%]{\sldInputs}
console.clear();console.show();
if (_numInputs==0) console.println("No inputs selected");
else {
for(var i=0;i<_aInputs.length;i++){
if (!!_aInputs[i]){
if(_oSPaths["pmdbCkBx."+i][1])
- console.println(%
-'\\\\input\{\\"'+(_oSPaths["pmdbCkBx."+i][0])+'\\"\}');
+ console.println('\\\\input\{\\"'+(_oSPaths["pmdbCkBx."+i][0])%
++'\\"\}');
else
- console.println(%
-'\\\\input\{'+(_oSPaths["pmdbCkBx."+i][0])+'\}');
+ console.println('\\\\input\{'+(_oSPaths["pmdbCkBx."+i][0])%
++'\}');
}
}
}
@@ -444,7 +571,7 @@ else {
% \end{macrocode}
%\leavevmode
%\DescribeMacro\clrAction
-% Mouse up action to clear the check boxes and to re-initialize internal
+% Mouse up action to clear the checkboxes and to re-initialize internal
% internal JS variables. Used in \cs{clrChoices}.
% \begin{macrocode}
\begin{defineJS}{\clrAction}
@@ -460,13 +587,6 @@ this.resetForm("pmdbCkBx");
var _oSPaths=new Object;
var _aInputs=new Array;
var _numInputs=0;
-function _restoreCCState(fName){
- var f=this.getField(fName);
- var _ccState=%
-(typeof f["_boxState"]=="undefined")?false:f["_boxState"];
- f["_boxState"]=_ccState;
- return f.checkThisBox(0,_ccState);
-}
\end{insDLJS}
% \end{macrocode}
% \begin{macrocode}
diff --git a/texmf-dist/tex/latex/pmdb/pmdb.sty b/texmf-dist/tex/latex/pmdb/pmdb.sty
index ef6419c5..9140cff6 100644
--- a/texmf-dist/tex/latex/pmdb/pmdb.sty
+++ b/texmf-dist/tex/latex/pmdb/pmdb.sty
@@ -8,7 +8,7 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% pmdb.sty package,, %%
-%% Copyright (C) 2019 D. P. Story %%
+%% Copyright (C) 2019-2021 D. P. Story %%
%% dpstory@uakron.edu dpstory@acrotex.net %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -19,7 +19,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pmdb}
- \ProvidesPackage{pmdb}[2019/12/09 v0.4 Mark for input files]
+ \ProvidesPackage{pmdb}[2021/06/07 v1.0 Mark for input files]
\edef\th@dquoteCat{\the\catcode`\"}
\catcode`\"=12\relax
\newif\ifpmdbmode \pmdbmodetrue
@@ -34,19 +34,35 @@
\AtBeginDocument{\pmdb@ckThor}
\newif\ifpmdbFP \pmdbFPfalse
\newif\ifpmdbDQs \pmdbDQsfalse
+\newif\ifeditSource \editSourcefalse
+\def\editSourceOn{\editSourcetrue}
+\def\editSourceOff{\editSourcefalse}
\newcount\pmdb@Cnt
+\newcommand{\editSourceBtn}[3][]{\def\@editSourceBtn##1{%
+ \pushButton[\A{/S/Launch/F(##1)}\protect\A#1
+ ]{editPb.\the\pmdb@Cnt}{#2}{#3}}}
+\newcommand{\editSourceLnk}[4][]{\def\@editSourceLnk##1{%
+ \raisebox{1bp}{\setLinkBbox[\A{/S/Launch/F(##1)}
+ \protect\A#1]{#2}{#3}[c]{\makebox[#2][l]{\thinspace#4}}}}}
+\editSourceBtn[\TU{View in default editor}\S{S}]{11bp}{11bp}
+\editSourceLnk[\linktxtcolor{red}\H{N}]{11bp}{11bp}{E}
+\def\useEditBtn{\def\@editSourceBorL{\@editSourceBtn}}
+\def\useEditLnk{\def\@editSourceBorL{\@editSourceLnk}}
+\useEditBtn
\def\pmCBPresets#1{\def\pm@CBPresets{#1}}
\pmCBPresets{}
-\def\cbSelectInput#1{\checkBox[\TU{#1}\presets{\pm@CBPresets}
- \cmd{\bParams{#1}{\the\pmdb@Cnt}\eParams}
- \AAmouseup{\ccBoxMU}
- ]{pmdbCkBx.\the\pmdb@Cnt}{11bp}{11bp}{On}%
- \global\advance\pmdb@Cnt\@ne}
+\def\cbSelectInput#1{\mbox{\checkBox[\TU{#1}\presets{\pm@CBPresets}
+ \cmd{\bParams{#1}{\the\pmdb@Cnt}\eParams}
+ \AAmouseup{\ccBoxMU}]{pmdbCkBx.\the\pmdb@Cnt}{11bp}{11bp}{On}%
+ \ifeditSource\olBdry\@editSourceBorL{#1}\fi}\global
+ \advance\pmdb@Cnt\@ne
+}
\def\insertCkBx#1{\def\@insertCkBx##1{#1}}
\def\setCBsMarg{%
\ifpmdbtight
\if@reversemargin
- \def\pmAlignCBAlt{\ifodd\value{page}\leavevmode\hfill\else\fi}\else
+ \def\pmAlignCBAlt{\ifodd\value{page}\leavevmode
+ \hfill\else\fi}\else
\def\pmAlignCBAlt{\ifodd\value{page}\else\hfill\fi}\fi
\else
\if@reversemargin
@@ -63,16 +79,23 @@
\fi
}
\@ifundefined{chapter}{}{\AtBeginDocument{\setCBsMarg\altCBMargins}}
-\def\InputParas{%\let\pmAlignCB\relax
+\newif\ifqzInput \qzInputfalse
+\def\InputParas{\global\qzInputfalse
\insertCkBx{\ifpmdbmode
- \everypar{\marginpar{\pmAlignCB\cbSelectInput{##1}}\global\everypar{}}\fi}}
+ \everypar{\marginpar{\pmAlignCB
+ \cbSelectInput{##1}}\global\everypar{}}\fi}}
\InputParas
+\def\InputProbs{\global\qzInputfalse
+ \insertCkBx{\ifpmdbmode
+ \def\prior@questionsHook{\marginpar
+ {\pmAlignCB\cbSelectInput{##1}}}\fi}}
\newcount\saveQNo \saveQNo\z@
\def\pmHook@qzItems{%
\let\item@pmOld\item
- \def\item@pnNew{\item@pmOld\itemhook\let\item\item@pmOld}%
- \let\item\item@pnNew}
-\def\InputQuizItems{\let\pmHook\pmHook@qzItems
+ \def\item@pmNew{\item@pmOld\itemhook\let\item\item@pmOld}%
+ \let\item\item@pmNew}
+\def\InputQuizItems{\global\qzInputtrue
+ \let\pmHook\pmHook@qzItems
\saveQNo\z@
\insertCkBx{\def\cbInQzMargin{\cbSelectInput{##1}}}%
\ItemHook{\leavevmode\ifpmdbmode
@@ -92,7 +115,8 @@
\let\item\item@pmNew
}
\def\ItemHook#1{\def\itemhook{#1}}
-\def\InputItems{\let\pmHook\pmHook@item
+\def\InputItems{\global\qzInputfalse
+ \let\pmHook\pmHook@item
\insertCkBx{\def\cbInQzMargin{\cbSelectInput{##1}}}%
\ItemHook{\leavevmode\ifpmdbmode
\marginpar{\pmAlignCB\cbInQzMargin}\fi}}
@@ -101,21 +125,23 @@
\ifpmdbDQs\def\donext{\pmHook\input{"#1"}}\else
\def\donext{\pmHook\input{#1}}\fi
\donext}
-\def\displayChoiceCA#1{\def\displayChoice@CA{#1}}
-\def\displayChoiceTU#1{\def\displayChoice@TU{#1}}
-\displayChoiceCA{Display Choices}
-\displayChoiceTU{Lists all choices in the console window}
\newcommand{\displayChoices}[3][]{\pushButton[\TU{\displayChoice@TU}
\CA{\displayChoice@CA}#1\AAmouseup{\sldInputs}\protect\AA
]{sldInputs}{#2}{#3}}
+\def\displayChoiceCA#1{\def\displayChoice@CA{#1}}
+\def\displayChoiceTU#1{\def\displayChoice@TU{#1}}
+\displayChoiceCA{Display Choices}
+\displayChoiceTU{Display all choices in the console window}
+\newcommand{\clrChoices}[3][]{\pushButton[\TU{\clrChoices@TU}
+ \CA{\clrChoices@CA}#1\AAmouseup{\clrAction}\protect\AA
+]{Inputs}{#2}{#3}}
\def\clrChoicesCA#1{\def\clrChoices@CA{#1}}
\def\clrChoicesTU#1{\def\clrChoices@TU{#1}}
\clrChoicesCA{Clear Choices}
-\clrChoicesTU{Clears all check boxes created by pmdb}
-\newcommand{\clrChoices}[3][]{\pushButton[\TU{\clrChoices@TU}
- \CA{\clrChoices@CA}#1\AAmouseup{\clrAction}\protect\AA
-]{sldInputs}{#2}{#3}}
-\def\pmInput{\@ifnextchar[%]
+\clrChoicesTU{Clear all check boxes created by pmdb}
+\newcommand\@gobbleOR[2][]{}
+\def\pmInput{\@ifstar{\@gobbleOR}{\pmInput@i}}
+\def\pmInput@i{\@ifnextchar[%]
{\let\pm@Brk\ef@YES\inputConta}
{\let\pm@Brk\ef@NO\inputConta}}
\let\pm@Brk\ef@NO
@@ -135,41 +161,51 @@
\ifpmdbDQs\def\donext{\input{"#1"}}\else
\def\donext{\input{#1}}\fi\fi
\donext}
-\def\pmInputWarni{\PackageWarningNoLine{pmdb}{The command \string\Input\space
- is already defined.\MessageBreak
+\def\pmInputWarni{\PackageWarningNoLine{pmdb}{The command
+ \string\Input\space is already defined.\MessageBreak
The checkboxes may not appear in the margins.\MessageBreak
Use the supported command \string\pmInput\space instead}}
\def\pmInputWarnii{\PackageWarningNoLine{pmdb}{Letting
\string\Input\space to \string\pmInput. You are \MessageBreak
encouraged to use the supported\MessageBreak
command \string\pmInput\space instead}}
-\def\pmInputChk{\@ifundefined{Input}{\let\Input\pmInput\pmInputWarnii}
- {\pmInputWarni}}
+\def\pmInputChk{%
+ \@ifundefined{Input}{%
+ \gdef\Input{\pmInputWarnii
+ \global\let\pmInputWarnii\relax
+ \global\let\pmInputWarni\relax
+ \pmInput}}{\pmInputWarni}}
\AtBeginDocument{\pmInputChk}
-\begin{defineJS}[\makeesc\@\catcode`\%=14\relax]{\ccBoxMU}
+\begin{defineJS}[\makeesc\@\makecmt\%]{\ccBoxMU}
@ifpmdbFP%
event.target.userName=("@p(1)");
@else%
// device independent path
var pos=this.path.lastIndexOf("/");
var thispath=this.path.substring(0,pos+1);
-pos=this.path.indexOf("/",1);
-var drive=thispath.substring(0,pos);
+pos=thispath.indexOf("/",1);
+var drive=thispath.substring(1,pos);
var platform=app.platform;
if (platform=="WIN")
thispath=drive+":/"+thispath.substring(pos+1);
-event.target.userName=thispath+("@p(1)");
-@fi%
+if (platform=="MAC")
+ thispath=drive+"/"+thispath.substring(pos+1);
+event.target.userName=thispath+("@p(1)");@fi
if (event.modifier){
- var _to=app.setTimeOut("_restoreCCState('pmdbCkBx.@p(2)');",.05);
+ event.target.checkThisBox(0,!event.target.isBoxChecked(0));
try {
- aebTrustedFunctions(this,aebLaunchURL,
- {cURL: "file://"+event.target.userName});
+ aebTrustedFunctions(this,aebLaunchURL,%
+{cURL: "file:///"+event.target.userName});
} catch(e) {
console.show();
console.println("The Ctrl+Click action is not supported, %
-installation of aeb\_pro.js is required.");
+installation of aeb\_pro.js or aeb-reader.js is required.");
}
+}
+if (event.shift) {
+event.target.checkThisBox(0,!event.target.isBoxChecked(0));%
+@ifqzInput
+ this.gotoNamedDest("@currQuiz."+(@p(2)+1));@fi
} else {
if (event.target.isBoxChecked(0)){
_oSPaths["pmdbCkBx.@p(2)"]=%
@@ -184,18 +220,18 @@ installation of aeb\_pro.js is required.");
event.target["_boxState"]=!!event.target.isBoxChecked(0);
}
\end{defineJS}
-\begin{defineJS}[\catcode`\%=14\relax]{\sldInputs}
+\begin{defineJS}[\makecmt\%]{\sldInputs}
console.clear();console.show();
if (_numInputs==0) console.println("No inputs selected");
else {
for(var i=0;i<_aInputs.length;i++){
if (!!_aInputs[i]){
if(_oSPaths["pmdbCkBx."+i][1])
- console.println(%
-'\\\\input\{\\"'+(_oSPaths["pmdbCkBx."+i][0])+'\\"\}');
+ console.println('\\\\input\{\\"'+(_oSPaths["pmdbCkBx."+i][0])%
++'\\"\}');
else
- console.println(%
-'\\\\input\{'+(_oSPaths["pmdbCkBx."+i][0])+'\}');
+ console.println('\\\\input\{'+(_oSPaths["pmdbCkBx."+i][0])%
++'\}');
}
}
}
@@ -210,13 +246,6 @@ this.resetForm("pmdbCkBx");
var _oSPaths=new Object;
var _aInputs=new Array;
var _numInputs=0;
-function _restoreCCState(fName){
- var f=this.getField(fName);
- var _ccState=%
-(typeof f["_boxState"]=="undefined")?false:f["_boxState"];
- f["_boxState"]=_ccState;
- return f.checkThisBox(0,_ccState);
-}
\end{insDLJS}
\catcode`\"=\th@dquoteCat
\endinput
diff --git a/tlpkg/texlive.tlpdb b/tlpkg/texlive.tlpdb
index a2aab9aa..5d12cb63 100644
--- a/tlpkg/texlive.tlpdb
+++ b/tlpkg/texlive.tlpdb
@@ -7,7 +7,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2100-nonfree
-depend revision/322
+depend revision/324
name 00texlive.installation
category TLCore
@@ -212,7 +212,7 @@ catalogue-version 1.6.1
name acrotex
category Package
-revision 321
+revision 324
shortdesc The AcroTeX education bundle
longdesc The bundle contains: the web package to redefine page layout to
longdesc web-friendly dimensions; the exerquiz package for defining
@@ -222,7 +222,7 @@ longdesc inserting document-level JavaScript in LaTeX documents; the
longdesc dljslib library of JavaScript functions for use with exerquiz;
longdesc and the eq2db package for converting an exerquiz quiz for
longdesc processing by a ASP server-side script.
-docfiles size=1423
+docfiles size=1367
texmf-dist/doc/latex/acrotex/README.md details="Readme"
texmf-dist/doc/latex/acrotex/acrobat-in-workflow.pdf
texmf-dist/doc/latex/acrotex/acrobat-in-workflow.tex
@@ -243,7 +243,7 @@ docfiles size=1423
texmf-dist/doc/latex/acrotex/examples/webeqtst.tex
texmf-dist/doc/latex/acrotex/install_jsfiles.pdf
texmf-dist/doc/latex/acrotex/install_jsfiles.tex
-srcfiles size=330
+srcfiles size=332
texmf-dist/source/latex/acrotex/acrotex.ins
texmf-dist/source/latex/acrotex/contsolns.dtx
texmf-dist/source/latex/acrotex/dljslib.dtx
@@ -258,7 +258,7 @@ srcfiles size=330
texmf-dist/source/latex/acrotex/taborder.ins
texmf-dist/source/latex/acrotex/web.dtx
texmf-dist/source/latex/acrotex/web.ins
-runfiles size=181
+runfiles size=182
texmf-dist/tex/latex/acrotex/aeb-comment.sty
texmf-dist/tex/latex/acrotex/aebdocfmt.def
texmf-dist/tex/latex/acrotex/aebdonotindex.def
@@ -5309,7 +5309,7 @@ longdesc content is loaded into the default application, possibly a
longdesc LaTeX editor. For the Ctrl+Click feature to work, the file
longdesc aeb-reader.js needs to be installed. As the filename suggests,
longdesc this file will work for Adobe Acrobat Reader (DC), as well as
-longdesc for Adobe Acrobat itself.
+longdesc for the magnificent Adobe Acrobat itself.
docfiles size=203
texmf-dist/doc/latex/pmdb/README.md details="Readme"
texmf-dist/doc/latex/pmdb/examples/chapters/doc1.tex