diff options
author | Norbert Preining <norbert@preining.info> | 2021-06-22 13:52:34 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-06-22 13:52:34 +0900 |
commit | 2bf7899fa3ec7a4e278b6da6d1ce3a12156ec277 (patch) | |
tree | d3e328f749aa1e8c40c0bb89848fe1b442525e60 | |
parent | 27f374321422d2d82e019b744aded5b0935c30c0 (diff) |
acrotex-js (new, split out)
-rw-r--r-- | ctan2tds-config.pl | 1 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/README.md | 15 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.pdf | bin | 0 -> 396417 bytes | |||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.tex | 238 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf | bin | 0 -> 213534 bytes | |||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/install_jsfiles.pdf | bin | 0 -> 188602 bytes | |||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/install_jsfiles.tex | 332 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/js-files/aeb.js | 24 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/js-files/aeb_pro.js | 177 | ||||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/js-test/test_install.pdf | bin | 0 -> 47782 bytes | |||
-rw-r--r-- | texmf-dist/doc/latex/acrotex-js/js-test/test_install.tex | 74 | ||||
-rw-r--r-- | texmf-dist/source/latex/acrotex-js/acrotex-js.dtx | 97 | ||||
-rw-r--r-- | texmf-dist/source/latex/acrotex-js/acrotex-js.ins | 60 | ||||
-rw-r--r-- | texmf-dist/tex/latex/acrotex-js/acrotex-js.sty | 25 | ||||
-rw-r--r-- | tlpkg/tlpsrc/acrotex-js.tlpsrc | 0 |
15 files changed, 1043 insertions, 0 deletions
diff --git a/ctan2tds-config.pl b/ctan2tds-config.pl index 3dde9204..1693e3a8 100644 --- a/ctan2tds-config.pl +++ b/ctan2tds-config.pl @@ -24,6 +24,7 @@ $special{'datepicker-pro'} = '&MAKEdps'; $special{'aeb-pro'} = '&MAKEdps'; $special{'annot-pro'} = '&MAKEdps'; $special{'acrotex'} = '&MAKEdps'; +$special{'acrotex-js'} = '&MAKEdps'; $special{'acromemory'} = '&MAKEdps'; $special{'aeb-mlink'} = '&MAKEdps'; $special{'aeb-minitoc'} = '&MAKEdps'; diff --git a/texmf-dist/doc/latex/acrotex-js/README.md b/texmf-dist/doc/latex/acrotex-js/README.md new file mode 100644 index 00000000..90c06a1c --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/README.md @@ -0,0 +1,15 @@ +The acrotex-js Package +Author: D. P. Story +Dated: 2021-06-19 + +In the distribution of this package are two critical JavaScript files (aeb.js +and aeb_pro.js) used by the packages insdljs, aeb_pro, thorshammer, and +docassembly. Previously these JS files where distributed with the individual +packages, now they are distributed by this package and must be installed according +to the instructions in the docs folder. + +What's New (2021-06-19) Move certain files from other packages: + acrobat-in-workflow.pdf and test_install.pdf + +dps + diff --git a/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.pdf b/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.pdf Binary files differnew file mode 100644 index 00000000..4dc7dda7 --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.pdf diff --git a/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.tex b/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.tex new file mode 100644 index 00000000..453806f8 --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/acrobat-in-workflow.tex @@ -0,0 +1,238 @@ +\RequirePackage[!use=preview,!use=efpmca,!use=usebw,!use=finalbuild]{spdef} +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[web={designv,forcolorpaper},useacrobat]{aeb_pro} +\usepackage{eforms} +\usepackage{graphicx} +\usepackage{fancyvrb} + +\ifpdf\def\x{% + \usepackage[T1]{fontenc} + \usepackage{lucidabr}} +\else\def\x{% + \usepackage[altbullet]{lucidbry} + \usepackage[active]{srcltx} +}\fi\x + +\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.} + +\paragraph*{The \pkg{docassembly} package.} This package uses the post PDF creation actions +described above, but is a stand alone package and is available to all {\LaTeX} workflows who own +the \app{Acrobat} application. The \pkg{docassembly} package defines the +\env{docassembly} environment and supports the same functionality of as {\AEBP}. The \pkg{docassembly} +package may be downloaded from CTAN at \url{https://ctan.org/pkg/docassembly}. + +\end{document} diff --git a/texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf b/texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf Binary files differnew file mode 100644 index 00000000..a26c51bf --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/acrotex-js.pdf diff --git a/texmf-dist/doc/latex/acrotex-js/install_jsfiles.pdf b/texmf-dist/doc/latex/acrotex-js/install_jsfiles.pdf Binary files differnew file mode 100644 index 00000000..f4f1b89a --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/install_jsfiles.pdf diff --git a/texmf-dist/doc/latex/acrotex-js/install_jsfiles.tex b/texmf-dist/doc/latex/acrotex-js/install_jsfiles.tex new file mode 100644 index 00000000..0d8c389c --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/install_jsfiles.tex @@ -0,0 +1,332 @@ +\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{pifont} +\usepackage{fancyvrb} + +\ifpdf\def\x{% + \usepackage[T1]{fontenc} + \usepackage[altbullet]{lucidabr}} + \let\copyright\textcopyright +\else\def\x{% + \usepackage[altbullet]{lucidbry}} + \usepackage[active]{srcltx} +\fi\x + + + +\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 +\let\pkg\textsf + +\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=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."); +} +\retnAbsPathAs(_path); +_path += "/"+manualfilename; +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 \emph{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 of \app{Acrobat} and for installing JavaScript files in that folder. +Various packages distributed by package author D. P. Story (notably +\pkg{acrotex}, \pkg{aeb\_pro}, \pkg{thorshammer}, and \pkg{docassembly}), use +the JavaScript files \texttt{aeb.js} and \texttt{aeb\_pro.js}, which are +placed in the user JavaScript folder. It is important to correctly install +these files for the packages listed above to function as expected. + +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} (\pkg{acrotex}) and {\AEBP} (\pkg{aeb\_pro}, as +well as other packages, 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. + \item For \pkg{thorshammer} and \pkg{docassembly}, \pkg{aeb\_pro.js} is + required to be installed. + +\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} +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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{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} (if applicable) and/or \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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{10.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} (if applicable) and/or \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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{ +\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/texmf-dist/doc/latex/acrotex-js/js-files/aeb.js b/texmf-dist/doc/latex/acrotex-js/js-files/aeb.js new file mode 100644 index 00000000..09310d2e --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/js-files/aeb.js @@ -0,0 +1,24 @@ +/* + AEB Import FDF Methods + + Copyright (C) 2006--2016 AcroTeX.Net + D. P. Story + http://www.acrotex.net + + Version 1.0 +*/ +if ( typeof aebTrustedFunctions == "undefined") { + aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs ) + { + app.beginPriv(); + var retn = oFunction( oArgs, doc ) + app.endPriv(); + return retn; + }); +} +aebImportAnFDF = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + doc.importAnFDF(oArgs); + app.endPriv(); +}); diff --git a/texmf-dist/doc/latex/acrotex-js/js-files/aeb_pro.js b/texmf-dist/doc/latex/acrotex-js/js-files/aeb_pro.js new file mode 100644 index 00000000..5dbfe4d5 --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/js-files/aeb_pro.js @@ -0,0 +1,177 @@ +/* + AEB Pro Document Assembly Methods + + Copyright (C) 2012 -- 2021 AcroTeX.Net + D. P. Story + http://www.acrotex.net + + Version 1.6.1 + + v1.6.1 aebCreateTemplate now returns an object + v1.6 Added aebAddWatermarkFromText, aebLaunchURL + v1.5 Added aebCertifyInvisibleSign +*/ + +if ( typeof aebTrustedFunctions == "undefined") { + aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs ) + { + app.beginPriv(); + var retn = oFunction( oArgs, doc ); + app.endPriv(); + return retn; + }); +} +aebAddWatermarkFromFile = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + var Msg=function(e){return (aebAddWatermarkFromFile.msg==undefined)?("Add Watermark from File Error: " + e.toString()):aebAddWatermarkFromFile.msg;} + app.beginPriv(); + try { doc.addWatermarkFromFile(oArgs); } catch(e) {console.println(Msg(e));} + app.endPriv(); + aebAddWatermarkFromFile.msg=undefined; +}); +aebAddWatermarkFromText = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.addWatermarkFromText(oArgs); + app.endPriv(); +}); +aebImportIcon = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.importIcon(oArgs); + app.endPriv(); +}); +aebInsertPages = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + var Msg=function(e){return (aebInsertPages.msg==undefined)?("Insert Pages Error: " + e.toString()):aebInsertPages.msg;} + app.beginPriv(); + try { doc.insertPages(oArgs); } catch(e) {console.println(Msg(e));} + app.endPriv(); + aebInsertPages.msg=undefined; +}) +aebAppOpenDoc = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + var Msg=function(e){return (aebAppOpenDoc.msg==undefined)?("App Open Doc Error: " + e.toString()):aebAppOpenDoc.msg;} + app.beginPriv(); + try { return app.openDoc(oArgs); } catch(e) {console.println(Msg(e));} + app.endPriv(); + aebAppOpenDoc.msg=undefined; + return retn; +}) +aebImportTextData = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.importTextData(oArgs); + app.endPriv(); +}); +aebImportSound = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.importSound(oArgs); + app.endPriv(); +}); +aebSaveAs = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + app.execMenuItem("Save"); + app.endPriv(); +}); +aebDocSaveAs = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + var Msg=function(e){return (aebDocSaveAs.msg==undefined)?("Doc SaveAs Error: " + e.toString()):aebDocSaveAs.msg;} + app.beginPriv(); + try { + return doc.saveAs(oArgs); + } catch(e){console.println(Msg(e));} + app.endPriv(); + aebDocSaveAs.msg=undefined; + +}); +aebExtractPages = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.extractPages(oArgs); + app.endPriv(); +}); +aebMailDoc = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.mailDoc(oArgs); + app.endPriv(); +}); +aebImportDataObject = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.importDataObject(oArgs); + app.endPriv(); +}); +aebSignatureSign = app.trustPropagatorFunction( function ( oArgs, field ) +{ + app.beginPriv(); + return field.signatureSign(oArgs); + app.endPriv(); +}); +aebSecurityHandlerLogin = app.trustPropagatorFunction( function ( oArgs, securityHandler ) +{ + app.beginPriv(); + return securityHandler.login(oArgs); + app.endPriv(); +}); +aebTimestampSign = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return doc.timestampSign(oArgs); + app.endPriv(); +}); +aebSecurityGetHandler = app.trustPropagatorFunction( function ( oArgs, security ) +{ + app.beginPriv(); + return security.getHandler(oArgs); + app.endPriv(); +}); +aebAppGetPath = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + return app.getPath(oArgs); + app.endPriv(); + return retn; +}); +aebSignatureSetSeedValue = app.trustPropagatorFunction( function ( oArgs, field ) +{ + app.beginPriv(); + return field.signatureSetSeedValue( oArgs ) + app.endPriv(); +}); +aebCertifyInvisibleSign = app.trustPropagatorFunction( function ( oArgs, field ) +{ + app.beginPriv(); + return field.certifyInvisibleSign( oArgs ) + app.endPriv(); +}); +aebAddIcon=app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + doc.addIcon(oArgs); + app.endPriv(); +}); +aebCreateTemplate = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + var Msg=function(e){return (aebCreateTemplate.msg==undefined)?("Create Template Error: " + e.toString()):aebCreateTemplate.msg;} + app.beginPriv(); + try { return doc.createTemplate(oArgs); } catch(e) {console.println(Msg(e));} + app.endPriv(); + aebCreateTemplate.msg=undefined; + +}) +aebBrowseForDoc=app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + var retn = app.browseForDoc(oArgs); + app.endPriv(); +}); +aebLaunchURL=app.trustPropagatorFunction ( function ( oArgs ) +{ + app.beginPriv(); + var retn = app.launchURL(oArgs); + app.endPriv(); +}); diff --git a/texmf-dist/doc/latex/acrotex-js/js-test/test_install.pdf b/texmf-dist/doc/latex/acrotex-js/js-test/test_install.pdf Binary files differnew file mode 100644 index 00000000..c2b92f25 --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/js-test/test_install.pdf diff --git a/texmf-dist/doc/latex/acrotex-js/js-test/test_install.tex b/texmf-dist/doc/latex/acrotex-js/js-test/test_install.tex new file mode 100644 index 00000000..72af3a51 --- /dev/null +++ b/texmf-dist/doc/latex/acrotex-js/js-test/test_install.tex @@ -0,0 +1,74 @@ +\documentclass{article} +\usepackage[designv]{web} +\usepackage{eforms} + +\ifpdf\def\x{% + \usepackage[T1]{fontenc} + \usepackage[altbullet]{lucidabr}} + \let\copyright\textcopyright +\else\def\x{% + \usepackage[altbullet]{lucidbry}} + \usepackage[active]{srcltx} +\fi\x + +\let\pkg\textsf + +\begin{defineJS}{\isImportAnFDFKnown} +console.clear(); console.show(); +if ( typeof aebImportAnFDF == "function" ) { + app.beep(0); + console.println(""); + console.println("aeb.js is successfully installed, congratulations!"); + console.println("You're ready to Rock with AcroTeX!"); +} else { + app.beep(0); app.beep(0); + console.println("aeb.js is not, repeat NOT, installed correctly!"); +} +\end{defineJS} +\begin{defineJS}{\isAddWatermarkFromFileKnown} +if ( typeof aebAddWatermarkFromFile == "function" ) { + app.beep(0); + console.println(""); + console.println("aeb_pro.js is successfully installed, congratulations!"); + console.println("You're ready to Rock with AcroTeX Pro, ho, ho!"); +} else { + app.beep(0); app.beep(0); + console.println("aeb_pro.js is not, repeat NOT, installed correctly!"); +} +\end{defineJS} + +\thispagestyle{empty} +\parindent0pt\parskip6pt + +\begin{document} +\begin{center}\bfseries + Testing the \pkg{AeB} and \pkg{AeB Pro} Installation +\end{center} + +This file is used to test for proper installation of \texttt{aeb.js} and +\texttt{aeb\_pro.js}. After following the instructions of +\texttt{js-files/install\_jsfiles.pdf} of the \pkg{acrotex-js} distribution, +test the installation by pressing the push buttons below. + + +To test the \textsf{AeB} installation, press this button: +\pushButton[\TU{Press to test the AeB installation}\CA{AeB}\A{\JS{\isImportAnFDFKnown}}]{btnTest}{}{11bp} + +To test the \textsf{AeB Pro} installation, press this button: +\pushButton[\TU{Press to test the AeB Pro installation}\CA{AeB Pro}\A{\JS{\isAddWatermarkFromFileKnown}}]{btnTest}{}{11bp} + +Congratulations if a successful installation is indicated. + +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{docs} folder of the \pkg{acrotex-js} package, 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{docs} folder of the \pkg{acrotex-js} package. + + + +\end{document} diff --git a/texmf-dist/source/latex/acrotex-js/acrotex-js.dtx b/texmf-dist/source/latex/acrotex-js/acrotex-js.dtx new file mode 100644 index 00000000..cf9af1fa --- /dev/null +++ b/texmf-dist/source/latex/acrotex-js/acrotex-js.dtx @@ -0,0 +1,97 @@ +%\iffalse +%<*copyright> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% acrotex-js.sty package %% +%% Copyright (C) 2021 %% +%% dpstory@acrotex.net %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%</copyright> +%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01] +%<package>\ProvidesPackage{acrotex-js} +%<package> [2021/06/19 v1.1 acrotex-js: A library of JavaScript files (dps)] +%<*driver> +\documentclass{ltxdoc} +\usepackage[colorlinks,hyperindex=false]{hyperref} +\hypersetup{pdfpagemode=UseNone} +%\pdfstringdefDisableCommands{\let\\\textbackslash} +%\EnableCrossrefs \CodelineIndex +\OnlyDescription % comment out for implementation details +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\InputIfFileExists{aebdocfmt.def}{\PackageInfo{web}{Inputting aebdocfmt.def}} + {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax + \PackageInfo{web}{aebdocfmt.def cannot be found}} +\begin{document} +\def\CMD#1{\textbackslash#1} +\let\pkg\textsf +\let\opt\texttt +\let\app\textsf +\addtolength{\marginparwidth}{3pt} + \GetFileInfo{acrotex-js.sty} + \title{\texorpdfstring{\protect\pkg{acrotex-js}}{acrotex-js}: Formatting for mobile devices} + \author{D. P. Story\\ + Email: \texttt{dpstory@acrotex.net}} + \date{processed \today} + \maketitle + \tableofcontents + \DocInput{acrotex-js.dtx} +\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute + \texttt{makeindex -s gind.ist -o acrotex-js.ind acrotex-js.idx} on the command line and recompile + \texttt{acrotex-js.dtx}.} +\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute + \texttt{makeindex -s gglo.ist -o acrotex-js.gls acrotex-js.glo} on the command line and recompile + \texttt{acrotex-js.dtx}.} +\end{document} +%</driver> +% \fi +% \MakeShortVerb{|} +% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}} +% {\PackageInfo{web}{cannot find aebdonotindex.def}} +% \section{Commentary} +% This file is a dummy {\LaTeX} package. The output of \pkg{acrotex-js} produces no document +% that is consumed by any {\LaTeX} engine. At the time of first publication of this ``package'' +% distributes the JavaScript files \texttt{aeb.js} and \texttt{aeb\_pro.js} (found in the +% \texttt{js-files} folder of this distribution) and provides documentation of how to +% install it, refer to \texttt{docs/install\_jsfiles.pdf}. +% +% \paragraph*{Packages that require this JS files.} The following is a list of packages +% that require the proper installation of the JS files provided by this package. +% \begin{itemize} +% \item \texttt{aeb.js}: Required by the \pkg{insdljs} package,\footnote{Or, any package that uses \pkg{insdljs}.} +% but for only for owners of the \app{Acrobat} application \emph{and} who use the +% \textsf{dvips \texttt{->} Adobe Distiller} +% or \textsf{dvips \texttt{->} ps2pdf} workflow.\footnote{There is no harm in the routine installation of this +% file even if you don't use \app{Distiller} or \app{ps2pdf}.} +% \item \texttt{aeb\_pro.js}: Required by the \pkg{aeb\_pro}, \pkg{thorshammer}, and \pkg{docassembly} packages. +% \end{itemize} +% In all cases, the JS files must be correctly installed for the above packages for them to perform as designed. +% Refer to \texttt{docs/install\_jsfiles.pdf} for installation instructions. +% +% \paragraph*{Files of this distribution.} +% \begin{itemize} +% \item Root-level folder: \texttt{acrotex-js.dtx}, \texttt{acrotex-js.ins}, \texttt{README.md} +% \item \texttt{docs} folder: \texttt{acrotex-js.pdf} (documentation), \texttt{install\_jsfile.pdf} +% (installation instructions, and +% \texttt{acrobat-in-workflow.pdf} (commentary on using \app{Acrobat} in your workflow). +% \item \texttt{js-files}: \texttt{aeb.js}, \texttt{aeb\_pro.js} (These are the JS files to be installed, +% follow the instructions of \texttt{install\_jsfile.pdf} in the \texttt{docs} folder. +% \item \texttt{js-test}: \texttt{test\_install.pdf} (After installing the JS files, test whether you've +% understood and following the instructions correctly, open this file in \app{Acrobat} and follow instructions +% contained therein.) +% \end{itemize} +% \changes{v1.1}{2021/06/19}{Moved \string\texttt{test\_install.pdf} and \string\texttt{acrobat-in-workflow.pdf} +% to this package from others} +% \changes{v1.0}{2021/06/18}{First publication version} +% \begin{macrocode} +%<*package> +% noop +%</package> +% \end{macrocode} +\endinput diff --git a/texmf-dist/source/latex/acrotex-js/acrotex-js.ins b/texmf-dist/source/latex/acrotex-js/acrotex-js.ins new file mode 100644 index 00000000..2f358ca3 --- /dev/null +++ b/texmf-dist/source/latex/acrotex-js/acrotex-js.ins @@ -0,0 +1,60 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1999-2012 D. P. Story +%% +%% This file is part of the `AcroTeX eDucation Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{2018/04/26} +\def\batchfile{acrotex-js.ins} + +\input docstrip +\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.4 or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex and get a newer one.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname\end +\fi + +\keepsilent +\askforoverwritefalse +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\preamble +\endpreamble + +\generate +{% + \file{acrotex-js.sty}{\from{acrotex-js.dtx}{copyright,package}} +} + +\Msg{***************************************************************} +\Msg{*} +\Msg{* \space To finish the installation you have to copy the files } +\Msg{*} +\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} +\Msg{*} +\Msg{***************************************************************} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/texmf-dist/tex/latex/acrotex-js/acrotex-js.sty b/texmf-dist/tex/latex/acrotex-js/acrotex-js.sty new file mode 100644 index 00000000..65c69595 --- /dev/null +++ b/texmf-dist/tex/latex/acrotex-js/acrotex-js.sty @@ -0,0 +1,25 @@ +%% +%% This is file `acrotex-js.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% acrotex-js.dtx (with options: `copyright,package') +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% acrotex-js.sty package %% +%% Copyright (C) 2021 %% +%% dpstory@acrotex.net %% +%% %% +%% This program can redistributed and/or modified under %% +%% the terms of the LaTeX Project Public License %% +%% Distributed from CTAN archives in directory %% +%% macros/latex/base/lppl.txt; either version 1 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1997/12/01] +\ProvidesPackage{acrotex-js} + [2021/06/19 v1.1 acrotex-js: A library of JavaScript files (dps)] +\endinput +%% +%% End of file `acrotex-js.sty'. diff --git a/tlpkg/tlpsrc/acrotex-js.tlpsrc b/tlpkg/tlpsrc/acrotex-js.tlpsrc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tlpkg/tlpsrc/acrotex-js.tlpsrc |