diff options
author | Norbert Preining <norbert@preining.info> | 2017-07-13 10:25:48 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2017-07-13 10:25:48 +0900 |
commit | cfe306ba1b7ec40855a300580b7981845d56edeb (patch) | |
tree | e2feaf2adf8a8afe43a995528097913793874d01 /texmf-dist/doc/latex/aeb-pro | |
parent | 32d0671418a3cc6ad0465b06539ed54d96f77784 (diff) |
add aeb-mlink aeb-pro aebxmp graphicxsp annot-pro
Diffstat (limited to 'texmf-dist/doc/latex/aeb-pro')
31 files changed, 2613 insertions, 0 deletions
diff --git a/texmf-dist/doc/latex/aeb-pro/README.md b/texmf-dist/doc/latex/aeb-pro/README.md new file mode 100644 index 00000000..4c008de9 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/README.md @@ -0,0 +1,44 @@ +The AeB Pro Package +Author: D. P. Story +Dated: 2017-03-08 + +The AeB Pro Package complements and extends AcroTeX eDucation Bundle. + +AeB Pro implements a number of new features: + (1) AeB Central (this can be used by non-distiller users) + (2) Complete support for set up the initial view of the document + (3) Extensive support for document actions: document level JS, + set document actions (willSave, didSave, etc.) and open + document actions. (4) Complete support for page actions (5) + Complete support for full screen mode, and all the current + transition effects through version 8. + (6) Methods to easily attach documents + (7) document assembly methods, methods used immediately following + PDF creation. + (8) Methods for linking to attachments and launching attachments + (9) Support for creating PDF Packages. + (10) Initializing fields using unicode. + (11) Basic support for layers, rollovers and animations. + (12) In this version (v2.1 or later), the package is opened up to + non-Distiller workflows. Use the dvips/Distiller workflow to obtain all + features, (1)--(11) below, of this package. For authors that have Acrobat + but prefer a non-Distiller workflow, use the useacrobat option for + features (1)--(10) below. For authors who do not have Acrobat, use the + nopro option to access features (1)--(3), + +Extensive examples illustrate all these features. + +Installation Instructions: Contained in the documentation +aebpro_man.pdf and in install_jsfiles.pdf. + +Let me know if there are problems or suggested features. E-mail +me at dpstory@uakron.edu or dpstory@acrotex.net + +The AcroTeX Blog (http://blog.acrotex.net/) lists the distribution files at +http://www.acrotex.net/blog/?page_id=835, all demo files that use AeB Pro +are listed at http://www.acrotex.net/blog/?tag=aeb-pro. + +Now, I simply must get back to my retirement. + +D. P. Story +dpstory@uakron.edu diff --git a/texmf-dist/doc/latex/aeb-pro/aebpro_man.pdf b/texmf-dist/doc/latex/aeb-pro/aebpro_man.pdf Binary files differnew file mode 100644 index 00000000..b25ceb9a --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/aebpro_man.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.pdf Binary files differnew file mode 100644 index 00000000..4af04e42 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.tex new file mode 100644 index 00000000..52404840 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex1.tex @@ -0,0 +1,430 @@ +% use useacrobat option with pdftex and xetex if you have acrobat +% use nopro if you don't have acrobat +\documentclass{article} +\usepackage[% + web={ + pro, + designv, + tight, + centertitlepage, + }, + aebxmp, +]{aeb_pro} + + +\DeclareDocInfo +{ + title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Doc/Page Events \& Fullscreen Support, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=\url{http://www.acrotex.net}, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\talkdateLabel{Published:} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\vskip\medskipamount\noindent} +\newenvironment{sverbatim} +{\par\footnotesize\verbatim}{\endverbatim} + +% +% Environments for setting the will and did things +% Advanced > Document Processing > Set Document Actions +% +\begin{willClose} +console.println("willClose"); +\end{willClose} + +\begin{willSave} +console.println("willSave"); +\end{willSave} + +\begin{didSave} +console.println("didSave"); +\end{didSave} + +\begin{willPrint} +console.println("willPrint"); +\end{willPrint} + +\begin{didPrint} +console.println("didPrint"); +\end{didPrint} + +% +% Set the default full screen transition behavior +% +\setDefaultFS +{% + fullscreen, + cursor=delay, + Trans=Random, + loop, + escape +} +% +% This command has been around from insDLJS for many years, +% used for first page open actions +% +\OpenAction{\JS{% +% console.show();\r + console.clear();\r + console.println("Show the output of the page actions"); +}} +% +% Here, you can add an event that occurs with every page open +% There is a command to cancel this out +% +\begin{everyPageOpen} +var str = "every page open"; +console.println(str + ": page " + (this.pageNum+1)); +\end{everyPageOpen} +% +% Here, you can add an event that occurs with every page close +% There is a command to cancel this out +% +\begin{everyPageClose} +var str = "every page close"; +console.println(str + ": page " + (this.pageNum+1)); +\end{everyPageClose} +% +% To add an additional page open event to the first page, you +% can use either the \OpenAction of insdljs, or you can use +% this command indirectly through the addJSToPageOpen environment +% in the preamble. +% +\begin{addJSToPageOpen} +var str = "This should be the first page" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageOpen} + +% +% To add an additional page close event to the first page, use +% the addJSToPageClose environment in the preamble. +% +\begin{addJSToPageClose} +var str = "This is the close action for the first page!" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageClose} + +\begin{document} + +\setPageTransitionAt{1,\atPage{test}-\atPage{exam},7}{Trans=Blend,PageDur=20,TransDur=5} +% +% This environment allows you to set a page open event at a particular page +% if known. We can specify page ranges by marking the page with a \label, +% then referencing that page with a special command \atPage, like so. +% +\begin{addJSToPageOpenAt}{1,\atPage{test}-\atPage{exam}} +var str = ("Add to open page at pages between \\\\atPage{test} and \\\\atPage{exam}; Page " + (this.pageNum+1)); +console.println(str); +\end{addJSToPageOpenAt} +% +% This environment allows you to set a page close event at a particular page +% if known. +% +\begin{addJSToPageCloseAt}{5-8,12,15-} +var str = "Add to close page at page " + (this.pageNum+1); +console.println(str); +\end{addJSToPageCloseAt} + +%------------------ \maketitle --------------------------------------- + +\maketitle + +\tableofcontents + +%------------------ Document Content --------------------------------- + +\section{Document Actions} + +In this section we outline the various commands and environments for +creating document and page actions for a PDF document. + +\newtopic As you read through this section, keep the console +window open to see the various page events reporting back to the +console. + +\subsection{Document Level JavaScripts} + +Creating document level JavaScript has been part of AeB for many years, use the +\texttt{insDLJS} environment, as documented in \texttt{webeqman.pdf}. + +\subsection{Set Document Actions} + +The AeB Pro provides environments for the events willClose, +willSave, didSave, willPrint and didPrint JavaScript events. +Corresponding {\LaTeX} environments are created: \texttt{willClose}, +\texttt{willSave}, \texttt{didSave}, \texttt{willPrint} and +\texttt{didPrint}. These are illustrated in the preamble of this +document. + +\subsection{Open/Close Page Actions} + +When a page opens or closes a JavaScript occurs. Predefined JavaScript can execute +in reaction to these events. AeB Pro provides several commands and environments. + +\subsubsection{Open/Close Page Actions for First Page} + +Because of the way AeB was originally written---\textsf{exerquiz}, actually---, +the first page is a special case. + +There is a command, \cs{OpenAction}, that is part of the \texttt{insdljs} package for several years, that +is used to introduce open page actions: + +\begin{sverbatim} +\OpenAction{\JS{% + console.show();\r + console.clear();\r + console.println("Show the output of the page actions"); +}} +\end{sverbatim} +This command goes in the preamble to define action for the first page. This command is capable of defining +non-JavaScript action, see the documentation of \texttt{insdljs} for some details. + +Environments, defined in AeB Pro, but uses macros from \texttt{insdljs} are +\texttt{addJSToPageOpen} and \texttt{addJSToPageClose}. When placed in the preamble, these +provide JavaScript support for page open/close events of the first page. In the preamble of this document, you'll find + +\begin{sverbatim} +\begin{addJSToPageOpen} +var str = "This should be the first page" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageOpen} +\end{sverbatim} +and +\begin{sverbatim} +\begin{addJSToPageClose} +var str = "This is the close action for the first page!" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageClose} +\end{sverbatim} + +\subsubsection{Open/Close Page Actions for the other Pages} + +The same two environments \texttt{addJSToPageOpen} and \texttt{addJSToPageClose} can be used +in the body of the text to generate open or close actions for the page on which they appear. +It's a rather hit or miss proposition because the tex compiler may break the page at an unexpected location +and the environments are processed on the page following the one you wanted them to appear on. + +\newtopic Just below this paragraph are \texttt{addJSToPageOpen} and \texttt{addJSToPageClose} environments. +Will the effects defined by these environments appear on this page or the next? +% +% These two environments allow you to set the page open and page close actions for +% the current page. They do not overwrite the action created by the At versions +% of the same environment. +% +\begin{addJSToPageOpen} +var str = "Local open action" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageOpen} + +\begin{addJSToPageClose} +var str = "Local Close action!" +console.println(str + ": page " + (this.pageNum+1)); +\end{addJSToPageClose} + +\newtopic Another approach to trying to place \texttt{addJSToPageOpen} or \texttt{addJSTo\-Page\-Close} +on the page you want is to use the \texttt{addJSToPageOpenAt} or \texttt{addJSToPageCloseAt} environments. +These are the same of their cousins, but are more powerful. Each of these takes an argument that specifies +the page, pages, and/or page ranges of the open/close effects you want. These two commands can go in the +preamble, but I recommend putting them just after the \verb!\begin{document}! and before \cs{maketitle}, as +illustrated in this document. + +The two environments take a comma-delimited list of pages and page ranges, for example, an argument might +be \verb!{2-6,9,12,15-}!. This argument states that the open or close JavaScript listed in the environment +should execute on pages 2 through 6, page 9, page 11, and pages 15 through the end of the document. Very cool! + +This is all well and good if you know exactly which pages are the +ones you want the effects to appear. What's even more cool is that +you can use {\LaTeX}'s cross-referencing mechanism to specify the +pages. By placing these environments after \verb!\begin{document}!, +the cross referencing information (the \texttt{.aux}) has been input +and you can use \cs{atPage}, a special simplified version of +\cs{pageref}, to reference the pages. See the verbatim listing +below. + +\begin{sverbatim} +\begin{addJSToPageOpenAt}{1,\atPage{test}-\atPage{exam}} +var str = "Add to open page at pages between \\\\atPage{test} and \\\\atPage{exam} " + + (this.pageNum+1); +console.println(str); +\end{addJSToPageOpenAt} +\end{sverbatim} +In the above, we specify a range \verb!\atPage{test}-\atPage{exam}!, which when expanded +becomes a range of \pageref*{test}-\pageref*{exam}. If the first page number is larger than +the second number, the two numbers are switched; consequently, \verb!\atPage{exam}-\atPage{test}! +yields the same results. +\begin{sverbatim} +\begin{addJSToPageCloseAt}{5-8,12,15-} +var str = "Add to close page at page " + (this.pageNum+1); +console.println(str); +\end{addJSToPageCloseAt} +\end{sverbatim} +Notice that in the \texttt{addJSToPageOpenAt} environment above, +page 1 was specified. This specification is ignored. You do remember +that the first page events need to be defined in the preamble, don't +you. + +\subsubsection{Every Page Open/Close Events} + +As an additional feature, there may be an occasion where you want to +define an event for every page. These are handled separately from the earlier +mentioned open/closed events so one does not overwrite the other. These environments +are \texttt{everyPageOpen} and \texttt{everyPageClose}. They can go in the preamble, or anywhere. +They will take effect on the page they are processed on. Using these environments a second time +overwrites any earlier definition. To cancel out the every page action you can use +\cs{canceleveryPageOpen} and \cs{canceleveryPageClose}. The environments that appear +in the preamble are + +\begin{sverbatim} +\begin{everyPageOpen} +var str = "every page open"; +console.println(str + ": page " + (this.pageNum+1)); +\end{everyPageOpen} + +\begin{everyPageClose} +var str = "every page close"; +console.println(str + ": page " + (this.pageNum+1)); +\end{everyPageClose} +\end{sverbatim} + +\section{Fullscreen Control} + +In this section we present the controlling commands for default +fullscreen mode and for defining page transition effects. + +\subsection{\texorpdfstring{\protect\cs{setDefaultFS}}{\textbackslash setDefaultFS}} + +Set the default fullscreen behavior of Adobe Reader/Acrobat by using \cs{setDefaultFS} +in the preamble. This command takes a number of arguments using \texttt{xkeyval}, each key +correspond to a JavaScript property of the fullscreen object. + +\newtopic In the preamble of this document, I have placed \cs{setDefaultFS} specifying +that the document should go into fullscreen mode with a random transition for its default +transition effect. + +\begin{sverbatim} +\setDefaultFS +{% + fullscreen, + cursor=delay, + Trans=Random, + loop, + escape +} +\end{sverbatim} +See the AeB Pro documentation for full documentation on these properties. + +\subsection{Page Transition Effects} + +There are two commands \cs{setPageTransition} and +\cs{setPageTransitionAt}. The former sets the transition effects for +the page on which it is processed. It suffers from the same malady +as do \texttt{addJSToPageOpen} and \texttt{addJSToPageClose}, you +have to hit the page you want. The latter command is the same +remedy, as illustrated below. + +\begin{sverbatim} +\setPageTransitionAt{1,\atPage{test}-\atPage{exam},7}{Trans=Blend,PageDur=20,TransDur=5} +\end{sverbatim} +See the AeB Pro documentation for full documentation on these properties. + +\newpage +\parindent0pt + +\section{Test}\label{test} + +Hi world! Page \thepage + +\newpage + +Again, hi! Page \thepage + +\newpage + + +\begin{addJSToPageOpen} +app.beep(0); +\end{addJSToPageOpen} + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + + +\newpage + + +Canceling every open page + +\canceleveryPageOpen + +\newpage +\section{Exam}\label{exam} + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +\begin{everyPageOpen} +var z = "every page open, reset"; +console.println(z + ": page " + (this.pageNum+1)); +\end{everyPageOpen} + +Introducing the AeB Pro Family! + +\newtopic Resetting every page open this page + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\newpage + +Introducing the AeB Pro Family! + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.pdf Binary files differnew file mode 100644 index 00000000..5efa8728 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.tex new file mode 100644 index 00000000..03557696 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex2.tex @@ -0,0 +1,232 @@ +% use useacrobat option with pdftex and xetex if you have acrobat +% use nopro if you don't have acrobat +\documentclass{article} +\usepackage +[% +% useacrobat, +% nopro, + web={ + pro, + designiv, +% navibar, + tight, +% forcolorpaper, + centertitlepage, + usesf + }, + aebxmp +]{aeb_pro} + +\begin{comment} +Experiment with various combinations of \noSectionNumber, \forceSubSubNumbers, Commenting +and uncommenting the \selectDings data structure (for the toc). Comment and uncomment +the dings key-value pair for the layout sections data structure. +\end{comment} +\noSectionNumbers +%\forceSubSubNumbers + +\begin{comment} +\selectDings +{ + dDingToc=\ding{082}, + ddDingToc=\ding{079}, + dddDingToc=\ding{254} +} +\end{comment} + +\definecolor{orange}{rgb}{0.97,0.65,0.00} +\definecolor{indianbrown}{rgb}{0.35,0.24,0.11} + +\sectionLayout +{% + ding=\ding{082}, % This ding will appear when \noSectionNumbers is in effect, comment out to get no ding + indent=\prtscr{-\oddsidemargin}{0pt}, % Use \prtscr to have different values depending on for print or screen + halign=l, % align left, the default + color=\prtscr{webbrown}{red}, % text color of red + special=\prtscr{default}{shadow}, % shadow special effects + shadowcolor=blue % shadow color blue +} +\subsectionLayout{% + ding=\ding{079}, + indent=\prtscr{-.5\oddsidemargin}{0pt}, + halign=\prtscr{l}{c}, + color=red, + special=\prtscr{default}{fcolorbox} +} +\subsubsectionLayout{% + ding=$\bullet$, + halign=\prtscr{l}{r}, + color=indianbrown, + special=\prtscr{default}{fcolorboxfit}, + framecolor=red, + bgcolor=orange +} +\tocLayout +{% + ding=\ding{082}, + indent=\prtscr{-\oddsidemargin}{0pt}, + halign=\prtscr{l}{c}, + color=red, + shadowcolor=blue +} + +\DeclareDocInfo +{ + title=The AeB Pro Package + \texorpdfstring{\\[1ex]} + {: }Highlighting the \texttt{pro} option of Web, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=\url{http://www.acrotex.net}, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\talkdateLabel{Published:} + +\selectColors +{ + universityColor = blue, + titleColor = red, + authorColor = blue, + urlColor = webbrown, + linkColor = webgreen, + fileColor = webbrown +} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\vskip\medskipamount\noindent} +\newenvironment{sverbatim} +{\par\footnotesize\verbatim}{\endverbatim} + + +\begin{document} + +\maketitle + +\tableofcontents + +\section{AeB Control Central} + +The AeB family of software, {\LaTeX} packages all, are for the most +part stand alone; however, usually they are used in combination with +each other, at least that is the purpose for which they were +originally designed. When several members of family AeB are used, +they should be loaded in the optimal order. With AeB Pro, you can +now list the members of the AeB family you wish to use, along with +their optional parameters you wish to use. + +\newtopic For example, + +\begin{sverbatim} +\usepackage[% + driver=dvips, + web={pro,designv,tight,nodirectory,centertitlepage,usesf}, + exerquiz={<optional parameters>}, + ..., + aebxmp, +]{aeb_pro} +\end{sverbatim} +Yes, yes, I know this is not necessary, you can always load the +packages earlier than AeB Pro, but please, humor me. + +By default, the code for supporting features that require the use of +Distiller and Acrobat~Pro are included; there is a \texttt{nopro} option that excludes +these features. Use the \texttt{nopro} if you wish to use the AeB Control Center +to load the various members of the Acro\negthinspace\TeX{} family. + +\newtopic See the AeB Pro documentation for the list of supported options. + +\section{Document Information: + \texorpdfstring{\protect\cs{DeclareDocInfo}} + {\textbackslash DeclareDocInfo}} + +The \texttt{web} package and the \texttt{hyperref} package both have +several data strings used in the Description tab of the Document +Properties of a PDF document. Below is the \cs{DeclareDocInfo} +``data structure'', the meanings of the keys are clear. Some of the +keys are used in the Description tab of the PDF document, others are +used in the title page, while others true play a dual role. + +\begin{sverbatim} +\DeclareDocInfo{ + title=The AeB Pro Package + \texorpdfstring{\\[1ex]} + {: }Highlighting the \texttt{pro} option of Web, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=\url{http://www.acrotex.net}, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\end{sverbatim} +The last three keys are particular to the \textsf{aebxmp} package, +which has been input into this document. These three keys populate +the Advanced Metadata dialog box; Acrobat~8 Pro is required for +\textsf{aebxmp} package to work correctly. + +\newtopic See the AeB Pro documentation for a detailed description of \cs{DeclareDoc\-In\-fo} +and the \textsf{aebxmp} package documentation. + +\section{Control over Headings} + +The \texttt{pro} option of web introduces the use of the xkeyval package and with it comes a +complex choice for setting up your section headings and various elements of your title page. + +\subsection{Designing your Section Headings} + +When the \texttt{pro} option of the \textsf{web} package is used, the commands +\cs{section\-Layout}, \cs{sub\-section\-Layout} and \cs{subsubsectionLayout} become available. +Look in the preamble of this document, there, I've set the look of the format of each of these +three section levels. My design choices are meant to illustrate the variety of choices you have, +I myself have no sense of color, or design, for that matter. + +The normal setting is to show section numbers, when you execute \cs{no\-Section\-Numbers} in the preamble, +obviously, no section numbers will be shown. (Useful for presentations, with no cross-references.) If +you specify a value for the \texttt{ding} key, then a ding appears where the section number was. + +When showing section numbers, the default, one of the famous features of the \textsf{web} package was to have +a bullet for the subsubsection heading, rather than the subsubsection number. By executing +\cs{forceSubSubNumbers} in the preamble, you force the appearance of the subsubsection numbers. To get +the appearance of these numbers in the table of contents, use the \texttt{latextoc} option of \textsf{web}. + +The commands can be placed in the preamble or anywhere. They take +effect at the next encountered section that is applicable. + +\subsection{Designing your Initial Pages} + +The same mechanism used for the formatting of the section headings is also used for the +title page and the table of contents. + +\subsubsection{The Title Page} + +Certain components of the title page can be controlled using the same mechanism as the +section headings. Corresponding to the university, the title and the author are +\cs{universityLayout}, \cs{titleLayout} and \cs{authorLayout}. These three have the same key-value +pairs as the section layout commands, but they do now obey the \texttt{ding} key. + +\newtopic See \texttt{aebpro\_titlepg.tex} for an interesting illustration of the key-values +of the layout for the title page. + +\subsubsection{The Table of Contents} + +The \cs{tocLayout} command is like the layout commands on the title page, it does not obey the +\texttt{ding} key. With it you can adjust color of the text and horizontal positioning. Special +effects can also be specified. + +When \cs{noPageNumbers} is in effect, you can specify the values of the \cs{selectDings} structure +to have dings showing up in the table of contents listing. These dings may or may not match the dings +of the section labeling. Specifying no ding for a particular section level displays no ding for that +toc entry. + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.pdf Binary files differnew file mode 100644 index 00000000..2787301a --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex new file mode 100644 index 00000000..c20a15e0 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex @@ -0,0 +1,361 @@ +% Acrobat required +% use useacrobat option with pdftex and xetex if you have acrobat +\documentclass{article} +\usepackage{graphicx,fancyvrb} +\usepackage[% + web={ + pro, + designv, + tight, +% forcolorpaper, % uncomment to get doc for paper + centertitlepage, + usesf + }, + eforms, +% +% Attach source file, and the tex log (I've renamed \jobname.log +% to \jobname.tex.log to avoid the distiller from overwriting it. +% The distiller only creates the log if there some sort of error message; consequently, +% the log for distiller is not attached (no error), but the tex log is destroyed by distiller + attachsource={tex,log,tex.log}, +% +% Just for laughs, let's include Robot Man. +% + attachments={extras.zip.txt, ../extras/robot_man.pdf}, + aebxmp, +]{aeb_pro} + +\DeclareDocInfo +{ + title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Attachments and Doc Assembly, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=http://www.acrotex.net, + talkdate={January 12, 2007}, + version=1.0, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\DeclareInitView{layoutmag={navitab=UseAttachments},windowoptions=fit} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\vskip\medskipamount\noindent} +\newenvironment{sverbatim} +{\par\footnotesize\verbatim}{\endverbatim} +% +% As you do not have the necessary background files, the \addWatermarkFromFile +% will silently fail. +% +\begin{forpaper} +\begin{docassembly} +var pos=this.path.indexOf(this.documentFileName,"/"); +var myPath=this.path.substring(0,pos); +try { +\addWatermarkFromFile({ + bOnTop:false, + cDIPath:myPath+"../extras/Manual_BG_Print_AeB.pdf" +}); } catch(e) { console.println(e.toString()) }; +try { + \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" }); +} catch(e) { console.println(e.toString()) }; +try { + \importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"}); + \importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"}); + \importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"}); + var f = this.getField("cheesySound"); + f.buttonPosition = position.iconOnly; + var oIcon = this.getIcon("logo"); + f.buttonSetIcon(oIcon,0); + oIcon = this.getIcon("logopush"); + f.buttonSetIcon(oIcon,1); + oIcon = this.getIcon("logorollover"); + f.buttonSetIcon(oIcon,2); +} catch(e) { console.println(e.toString()) }; +try {\importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"});} catch(e){} +\end{docassembly} +\end{forpaper} +\begin{forscreen} +\begin{docassembly} +var pos=this.path.indexOf(this.documentFileName); +var myPath=this.path.substring(0,pos); +try { + \addWatermarkFromFile({ + bOnTop:false, + cDIPath:myPath+"../extras/Manual_BG_DesignV_AeB.pdf" + }); +} catch(e) { console.println(e.toString()) }; +try { + \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" }); +} catch(e) { console.println(e.toString()) }; +try { + \importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"}); + \importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"}); + \importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"}); + var f = this.getField("cheesySound"); + f.buttonPosition = position.iconOnly; + var oIcon = this.getIcon("logo"); + f.buttonSetIcon(oIcon,0); + oIcon = this.getIcon("logopush"); + f.buttonSetIcon(oIcon,1); + oIcon = this.getIcon("logorollover"); + f.buttonSetIcon(oIcon,2); +} catch(e) { console.println(e.toString()) }; +try {\importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"});} catch(e){} +\end{docassembly} +\end{forscreen} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +AeB Pro has two options for attaching files to the source PDF. The +approach is the \texttt{import\-Data\-Object} JavaScript method in +conjunction with the FDF techniques. + +Also in this sample file, doc assembly techniques are also +demonstrated.\footnote{The attachments feature uses doc assembly +methods, but simplified for user convenience.} + +\section{Attaching Files with AeB Pro} + +There are two options for attaching files +\begin{enumerate} + \item \texttt{attachsource} is a simplified option for attaching + any file of the form \cs{jobname.}\texttt{\textsl{ext}}. + + \item \texttt{attachments} is a general option for attaching a + file, as specified by its absolute or relative path. +\end{enumerate} + +\subsection{The \texttt{attachsource} option} + +Use this option to attach a file with the same base name as \cs{jobname}. + +\begin{Verbatim} + \usepackage[% + driver=dvips, + web={pro,usesf,...}, + attachsource={tex,dvi,log,tex.log}, + ... + ]{aeb_pro} +\end{Verbatim} +Simply list the extensions you wish to attach to the current +document. In the example above, we attach the original source file +\cs{jobname.tex}, \cs{jobname.dvi}, \cs{jobname.log} (the distiller +log) and \cs{jobname.tex.log} (the tex log). + + +\newtopic One problem with attaching the log file is that the distiller also +produces a log file with the same name \cs{jobname.log}. +Consequently, the log file for the tex file is overwritten by the +distiller log file. You'll see from the PDF document, that the log +file attached is the one for the distiller. + +A work around for this is to latex your file, rename the +log file to another extension, such as \cs{jobname.tex.log}, then +distill. + +\subsection{The \texttt{attachments} option} + +The \texttt{attachments} key is for attaching files other than ones +associated with the source file. The value of this key is a +comma-delimited list (enclosed in braces) of absolute paths and/or +relative paths to the file required to attach. For example, + +\begin{Verbatim} +\usepackage[% + driver=dvips, + web={pro,usesf,...}, + attachments={extras.zip.txt,../extras/robot_man.pdf, + /C/Documents and Settings/dps/My Documents/My Pictures/birthday17.jpg}, + ... +]{aeb_pro} +\end{Verbatim} +The first and second references are relative to the folder containing this +source file, and third one is an example of an absolute path +(picture not attached). + +\newtopic There are some files that Acrobat does not attach, but +there is no public list of these. One finds them by discovery, +\texttt{.exe} and \texttt{.zip} files, for example. + +A trick that I use to send \texttt{.zip} files through the email +(they are often stripped away by mail servers) is to \emph{hide} the +\texttt{.zip} file in a PDF as an attachment. But since Acrobat does +not attach \texttt{.zip}, I change the extension from \texttt{.zip} +to \texttt{zip.txt}, then inform the recipient to save the +\texttt{zip.txt} file and change the extension back to \texttt{.zip}. +Swave! + +\section{Doc Assembly} + +Ahhhh, document assembly. What can be said? This is a method that I +have used for many years and is incorporated into the +\textsf{insdljs} package under the name of \texttt{execJS}. Whereas +the \texttt{execJS} environment is still available to you, I've +simplified things. The term doc assembly refers to the use of the +\texttt{docassembly} environment (which is just an \texttt{execJS} +environment). + +The \texttt{execJS}/\texttt{docassembly} environments create an FDF +file with the various JavaScript commands that were contained in the +body of the environment. These environments also place in open page +action so that when the PDF is opened for the first time in Acrobat +Pro, the FDF file will be imported and the JS will be executed one +time and then discarded, see \cite{TUG:execJS} for an article on this topic. +This technique only works if you have Acrobat Pro. + +In addition to the \texttt{docassembly} environment, AeB Pro also +has several macros that expand to JavaScript methods that I find +useful. These are +\begin{enumerate} + \item \cs{addWatermarkFromFile}: inserts a background into the PDF + + \item \cs{importIcon}: imports icon files\footnote{The + AcroMemory package uses these environments and functions to + import icons.} + + \item \cs{importSound}: imports a sound file + + \item \cs{appopenDoc}: opens a document + + \item \cs{insertPages}: inserts pages into the PDF, useful for + inserting pages of difference sizes, such as tables or figures, + into a {\LaTeX} document which requires that all page be of a + fixed size. + + \item \cs{importDataObject}: Attaches a file to the PDF. This + function is used in the two attachments options of AeB Pro. +\end{enumerate} +See the AeB Pro documentation for details. Here, in this demo file, +I present the code in the preamble of this document: +\begin{Verbatim} +var pos=this.path.indexOf(this.documentFileName); +var myPath=this.path.substring(0,pos); +\begin{docassembly} +\addWatermarkFromFile({ + bOnTop:false, + cDIPath:myPath+"../extras/Manual_BG_Print_AeB.pdf" +}); +\end{docassembly} +\end{Verbatim} +It is \emph{very important} to note that the arguments for this +(pseudo-JS method) are enclosed in matching parentheses/braces +combination, i.e., \verb!({!\dots\verb!})!. The arguments are +key-value pairs separated by a colon, and the parameters themselves +are separated by commas. (The argument is actually an +object-literal). It is \emph{extremely important} to have the left +parenthesis/brace pair, \verb!({!, immediately follow the function +name. This is because the environment is a partial-verbatim +environment: \verb!\! is still the escape, but left and right braces +have been ``sanitized''. The commands, like +\cs{addWatermarkFromFile} first gobble up the next two tokens, and +re-inserts \verb!({! in a different location. (See the +\textsf{aeb\_pro.dtx} for the definitions.) + +For another cheesy demonstration, let's import a sound, associate it +with a button. I leave it to you to press the button at your +discretion. +\begin{center} +\setbox0=\hbox{\includegraphics[height=16bp]{extras/AeB_Logo.eps}} +\newtopic\pushButton[\S{S}\W{0}\A{\JS{% + var s = this.getSound("StarTrek");\r + s.play(); +}}]{cheesySound}{\the\wd0 }{\the\ht0 } +\end{center} + +\begin{Verbatim} +\begin{docassembly} +try { + \addWatermarkFromFile({ + bOnTop:false, + cDIPath:myPath+"../extras/Manual_BG_DesignV_AeB.pdf" + }); +} catch(e) { console.println(e.toString()) }; +try { + \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" }); +} catch(e) { console.println(e.toString()) }; +\end{docassembly} +\end{Verbatim} +Above is the full verbatim listing of the \texttt{docassembly} +environment that will execute for the screen. You'll note the +\cs{importSound} command, which imports the sound file +\texttt{trek.wav}. I've also enclosed the individual commands in a +\texttt{try/catch} construct. Doing so is very useful for debugging +the script. + +One last little demonstration of the doc assembly methods. In the +preamble, I've imported a few AeB logos (forgive me) and placed them +as appearance faces for the button above. Below is a listing of the +code, with some comments added. + +\begin{Verbatim}[fontsize=\small] +\begin{docassembly} +... +... +// Import the sounds into the document +\importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"}); +\importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"}); +\importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"}); +var f = this.getField("cheesySound"); // get the field object of the button +f.buttonPosition = position.iconOnly; // set it to receive icon appearances +var oIcon = this.getIcon("logo"); // get the "logo" icon +f.buttonSetIcon(oIcon,0); // assign it as the default appearance +oIcon = this.getIcon("logopush"); // get the "logopush" icon +f.buttonSetIcon(oIcon,1); // assign it as the down appearance +oIcon = this.getIcon("logorollover"); // get the "logorollover" icon +f.buttonSetIcon(oIcon,2); // assign it as the rollover appearance +\end{docassembly} +\end{Verbatim} +The result is the button you see above. + +\newtopic As a final example of \texttt{docassembly} usage, rather +than using the attachments options of AeB Pro, you can also attach +your own files using the \texttt{docassembly} environment. +\begin{Verbatim}[fontsize=\small] +\begin{docassembly} +... +... +try { + \importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"}); +} catch(e){} +\end{docassembly} +\end{Verbatim} +The attachments options automatically assign names. These names appear in the Description column of the attachments +tab of Acrobat/Reader. For file attached using the \texttt{attachsource}, the base name plus extension is used, for +the files specified by the \texttt{attachments} key, the names are given sequentially, \texttt{"AeB Attachment 1"}, +\texttt{"AeB Attachment 2"} and so on. When you roll your own, the description can be more aptly chosen. + +\newtopic I have found many uses for the \texttt{execJS} +environment, or the simplified \texttt{docassembly} environment. +You are only limited by your imagination, and knowledge of +JavaScript for Acrobat. + + +\newpage +\markright{References} + +\begin{thebibliography}{[1]}\label{references} +\addcontentsline{toc}{section}{\protect\numberline{}References} + +\bibitem{TUG:execJS} ``\texttt{execJS}: A new technique for introducing discardable +JavaScript into a PDF from a \LaTeX{} source,'' TUG\textsc{boat}, The +Communications of the \TeX{} User Group, Vol.~22, No.~4, pp.\ +265-268 (2001). + +\end{thebibliography} + + + +\end{document} + +\importDataObject({cName: "\myEmbeddedFile",cDIPath: "aebpro_ex2.pdf"}); diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.pdf Binary files differnew file mode 100644 index 00000000..d43072a7 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.tex new file mode 100644 index 00000000..81c83709 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex4.tex @@ -0,0 +1,346 @@ +% dvips/Distiller workflow only +\documentclass{article} +\usepackage{amsmath} +\usepackage[% + web={ + pro, + designv, + tight, +% forcolorpaper, + centertitlepage, + dvipsnames, + usesf + }, + uselayers, + eforms, + aebxmp, +]{aeb_pro} +\usepackage{graphicx} +\usepackage[nomessages]{fp} +% +% The versions of pstricks-add and pstricks should be +% fairly recent. +% +\usepackage{pstricks-add} +\usepackage[absolute,overlay]{textpos} + +\DeclareDocInfo +{ + title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Layers and Rollovers, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=http://www.acrotex.net, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\talkdateLabel{Published:} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\vskip\medskipamount\noindent} +\newenvironment{sverbatim} +{\par\footnotesize\verbatim}{\endverbatim} +\def\AcroTeX{Acro\negthinspace\TeX} + +\begin{document} + +\maketitle + +\section{Layers} + +When the \texttt{uselayers} option is taken, the necessary code is +input to produce layers (Optional Content Groups). The +\textcolor{blue}{{\AcroTeX} Presentation Bundle} (APB), which has a +very sophisticated method of control over layers, by comparison, the +\textcolor{blue}{AeB Pro} layer support is very primitive indeed. As +a rule, after you create a layer, you will need a control of that +layer. This could be a button or a link that executes JavaScript. + +The basic command for creating a layer is \cs{xBld}. The content of +the layer is set off by the \cs{xBld}/\cs{eBld} pair. The command +\cs{xBld} takes two parameters: (1) the first is optional, +\texttt{true} if the layer is initially visible or \texttt{false}, +the default, if the layer is hidden initially; (2) the name of the +layer, this is used to reference the layer, to make it visible or +hidden. + +The creation and control of layers are illustrated in the two +subsequent sections. + +\newtopic When constructing a layer, there are two possible scenarios: +\begin{enumerate} + \item The layer takes up ``tex'' space + \item The layer does not take up ``tex'' space +\end{enumerate} +Let's look at each of these in turn. + +\subsection{Layer takes up space} + +A layer that takes up space in tex is the easiest case. For +example, guess what I'm thinking thinking about: I'm thinking about +my formerly favorite number, \xBld{mythoughts}the number is the +value of the integral $\int_0^4 4x + \frac14\,dx$. \eBld Want a +hint? \setLink[% +\A{\JS{% + var oLayer = getxBld("mythoughts"); + if ( oLayer != null ) + oLayer.state = !oLayer.state; + }} +]{\textcolor{red}{Click here}} I hope that hint worked for you. +Click on the link to hide the layer again. + +\newtopic For those viewing this document in PDF, the relevant code +code is seen below. + +First the layer is enclosed in a \cs{xBld}/\cs{eBld} pair, the +default state is hidden, so we don't supply the optional parameter. +The require (second) parameter is the name used to refer to the +layer. + +The link text has a JavaScript action. First we get the OCG object +for this layer by calling the \texttt{getxBld} function (this is +part of the AeB Pro JavaScript) then if non-null (you may not have +spelled the name correctly) we toggle the current state, +\texttt{oLayer.state = !oLayer.state}. +\begin{sverbatim} +\xBld{mythoughts}the number is the value of the integral +$\int_0^4 4x + \frac14\,dx$. \eBld Want a hint? +\setLink[\A{\JS{% + var oLayer = getxBld("mythoughts"); + if ( oLayer != null ) + oLayer.state = !oLayer.state; + }} +]{\textcolor{red}{Click here}} +\end{sverbatim} + +An advantage of the layers approach is that the content of the +layers are latexed as part of the content of the tex file; +consequently, you can include virtually anything in your layer that +tex can handle, math, figures, PSTricks, etc. Acrobat Pro 7.0 (and +distiller) or later is required to build the layers, but only Adobe +Reader 7.0 or later is needed to view the document, once +constructed. + +\NewPage +\subsection{Layer takes no space}\label{nospace} + +Perhaps the easiest way of creating layers that do not take up any tex space is to use a +package such as \textsf{textpos}. In the preamble of this document, I've placed the following +command: + +\begin{sverbatim} +\usepackage{pstricks-add,pstricks} +\usepackage[absolute,overlay]{textpos} +\end{sverbatim} + +\begin{textblock*}{.67\linewidth}[.5,.5](.5\paperwidth,.5\paperheight) +\xBld{crossinggraphcs}\psshadowbox[framesep=0pt]{\fcolorbox{red}{cornsilk}{% +\parbox{\linewidth} +{% +\begin{center} +\begin{pspicture}(-0.5,-1,0)(7,5) + \pscustom[linewidth=1pt,fillstyle=hlines,hatchcolor=red]{ + \psplot[linewidth=1pt]{2}{5}{% + x x mul neg x 6 mul add 5 sub} + \psplot[linewidth=1pt]{5}{2}{% + x x mul neg 3 div x 4 mul 3 div add 5 3 div add} + } + \pscustom[linewidth=1pt,fillstyle=vlines,hatchcolor=blue]{ + \psline(0,1.666667) + \psplot[linewidth=1pt]{0}{2}{% + x x mul neg 3 div x 4 mul 3 div add 5 3 div add} + \psplot[linewidth=1pt]{2}{1}{% + x x mul neg x 6 mul add 5 sub} + } + \psaxes{->}(0,0)(-0.5,-0.5)(7,5) + \uput[-90](7,0){$x$} + \uput[0](0,5){$y$} + \psplot[linewidth=1pt]{0.75}{5.25}{% + x x mul neg x 6 mul add 5 sub} + \psplot[linewidth=1pt]{0}{5.25}{% + x x mul neg 3 div x 4 mul 3 div add 5 3 div add} + \rput(5,2){$f$} + \rput(3,2){$g$} +\end{pspicture} +\end{center} +}}}\eBld +\end{textblock*} + +Now we can create a layer that takes up no space, but is overlaid on top of the tex content. +We use the \textsf{textpos} commands to place the layer. Once created and placed, we must +have a way of showing it and hiding it. This time, we'll use a button: +\pushButton[ + \CA{Push} +\A{\JS{% + toggleSetThisLayer("crossinggraphcs"); +}}]{crossinggraphcsBtn}{}{12bp} + +\newtopic As you can see from this example, you must be very careful in the placement of your +layers vis-\`{a}-vis the button. Form fields are laid on top of +content, and a layer is considered part of the content. This particular layer could be move to the +upper left corner, for example, Let's see how a link works, shall we? \setLink[% +\A{\JS{% + toggleSetThisLayer("crossinggraphcs"); +}}]{\textcolor{red}{Click here}}! The link is active even through the layer, you just have to find it! +I could have set this link to that it has a visible bounding box, in which case the border of the +bounding box shows through the layer, but hey, at least you can find the link! + +One thing you need to keep in mind is the placement of the code, +within the \texttt{textblock} environment. The overlaid material +will appear on whatever page the \texttt{textblock} ends up on. +Should you add more material before the \texttt{textblock}, the +controls may drop off to the next page. When the user presses the +control, nothing happens, actually, the layer is appearing on the previous page. +Sometimes it makes sense to insert a \cs{newpage} to ensure the proper placement +of the overlay relative to the placement of the controls. + +\NewPage % this is \newpage when for screen, does nothing when forpaper, defined in web + +\defineRC{help1} +{% +\psset{llx=-12pt, lly=-12pt,urx =12pt,ury =12pt,xAxisLabel=$x$,yAxisLabel=$y$} +\begin{psgraph*}[arrows=->,trigLabels=true,trigLabelBase=2,dx=\psPiH](0,0)(-.5,-1.5)(6.75,1.5){.75\linewidth}{.25\linewidth} + \psset{algebraic=true}% + \rput(4,1){$y=\sin(x)$}% + \psplot[linecolor=blue]{0}{TwoPi}{sin(x)} +\end{psgraph*} +} + +\begin{rollover} +\begin{textblock*}{.4\linewidth}[.5,.5](.5\paperwidth,.5\paperheight) +\xBld{help1}\psshadowbox[framesep=0pt]{\fcolorbox{red}{cornsilk}{% +\parbox{\linewidth}{\insertRC{help1}}}}\eBld +\end{textblock*} +\end{rollover} +\begin{printRollover} +\definePR{help1}{\parbox{.4\linewidth}{\insertRC{help1}}}\insertPR{help1} +\end{printRollover} + +\section{Rollovers} + +The AeB Pro package offers you two rollovers, which ostensibly provides +help to the document consumer. + +\subsection{\texorpdfstring{\protect\cs{texHelp}}{\textbackslash{texHelp}} uses Layers} + +The rollover is a special case of the techniques discussed in +\hyperref[nospace]{section~\ref*{nospace}}. For a rollover, you +create a form field, enclosing a word, when the user rolls across +the word, a help box opens. For example, recall the graph of the +\texHelp{help1}{$\sin(x)$,} isn't it pretty? Try rolling over the +word that is tagged with the `\texHelpIndicator{}' symbol. + +You will have to look at the source file to see what goes on here, +suffice it to say that the command \cs{texHelp} was used to create +the rollover, the symbol that appears is defined in the +\textsf{aeb\_pro} package by \cs{texHelpIndicator}, this command can +be re-defined to have a different symbol. + +\subsection{\texorpdfstring{\protect\cs{pdfHelp}}{\textbackslash pdfHelp} does not} + +There is another type of rollover, \cs{pdfHelp}. The command takes three arguments, +the first one is the name of the button field that is enclose around the third argument, +the second argument is the help text. The help text is not part of the {\LaTeX} content +of the document is is not compiled by the {\TeX} compiler, so it should be text. For example, +can you remember the inventor of \pdfHelp{knuth}{Donald Knuth}{\TeX?} + +As with \cs{texHelp}, the symbol that tags the word as a help word +is defined in \textsf{aeb\_pro.dtx} by the command +\cs{pdf\-Help\-Indicator}. This command can be re-defined as needed. + +\section{Layers and Animation} + +Let's see if we can conjure up a little animation, shall we? + +\noindent\begin{minipage}{.65\linewidth}\centering +\DeclareAnime{sinegraph}{10}{40} +\def\thisframe{\animeBld\psplot[linecolor=red]{0}{\xi}{sin(x)}\eBld} +\psset{llx =-12pt,lly=-12pt,urx =12pt,ury =12pt} % ,trigLabels=true,labelFontSize=\small +\begin{psgraph*}[arrows=->,trigLabels=true,trigLabelBase=2,dx=\psPiH](0,0)(-.5,-1.5)(6.75,1.5){164pt}{70pt} + \psset{algebraic=true}% + \rput(4,1){$y=\sin(x)$} + \FPdiv{\myDelta}{\psPiTwo}{\nFrames}% + \def\xi{0}% + \multido{\i=1+1}{\nFrames}{\FPadd{\xi}{\xi}{\myDelta}\thisframe} +\end{psgraph*} +\end{minipage}\hfill +\begin{minipage}{.3\linewidth}%\centering +\backAnimeBtn{24bp}{12bp}\kern1bp\clearAnimeBtn{24bp}{12bp}\kern1bp\forwardAnimeBtn{24bp}{12bp} +\end{minipage} + +\newtopic It is possible to combine the techniques of +\hyperref[nospace]{section~\ref*{nospace}} with those of animation, to create +an anime that pops up. We leave this as an exercise for the reader, that's you. + +\NewPage + +\newtopic\xBld{dialog1}This page illustrates how you can create a series of +steps, all controlled by a button. \eBld\xBld{dialog2}Let us begin by +drawing the $\sin(x)$ curve. \eBld\xBld{dialog3}Do you think that I can do it? +\eBld\xBld{dialog4} Well, here goes!\eBld + +\begin{center} +\DeclareAnime{graph}{10}{40} +\def\frame{\animeBld\psplot[linecolor=red]{0}{\xi}{sin(x)}\eBld} +\psset{llx=-12pt, lly=-12pt,urx =12pt,ury =12pt,xAxisLabel=$x$,yAxisLabel=$y$} +\begin{psgraph*}[arrows=->,trigLabels=true,trigLabelBase=2,dx=\psPiH](0,0)(-.5,-1.5)(6.75,1.5){.5\linewidth}{.25\linewidth} + \psset{algebraic=true}% + \rput(4,1){$y=\sin(x)$}% + \FPdiv{\myDelta}{\psPiTwo}{\nFrames}% + \def\xi{0}% + \multido{\i=1+1}{\nFrames}{\FPadd{\xi}{\xi}{\myDelta}\frame} + \xBld{step1}\psplot[linecolor=blue]{0}{Pi 2 div}{sin(x)}\eBld + \xBld{step2}\psplot[linecolor=webgreen]{Pi 2 div}{Pi}{sin(x)}\eBld + \xBld{step3}\psplot[linecolor=Plum]{Pi}{3 Pi mul 2 div}{sin(x)}\eBld + \xBld{step4}\psplot[linecolor=yellow]{3 Pi mul 2 div}{TwoPi}{sin(x)}\eBld +\end{psgraph*} +\end{center} + +\newtopic\xBld{step1}Notice that the function increases from $[\,0, \pi/2\,]$ +and attains it maximum value of $1$ at $ x = \pi/2$. \eBld\xBld{step2}The +sine function then decreases to zero over the interval $[\,\pi/2, \pi\,]$. +\eBld \xBld{step3}Continuing its sinusoidal path it decreases on the +interval $[\,\pi,3\pi/2\,]$ down to its minimum value of $-1$ at $ x = +3\pi/2$. \eBld \xBld{step4}Finally, it increases up to $0$ over the +interval $[\,3\pi/2, 2\pi\,]$ completing the first cycle of its +graph.\eBld + +\newtopic\xBld{wrapup}Try \texttt{shift-click} too. dps\eBld + +\begin{defineJS}[\catcode`*=0]{\stepwise} +if ( typeof stepcounter == "undefined" ) stepcounter = 0; +if ( !event.shift ) stepcounter++; +if ( stepcounter > 10 ) stepcounter = 11; +if ( stepcounter < 1 ) stepcounter = 0; +switch (stepcounter) +{ + case 1: toggleSetThisLayer("dialog1", !event.shift); break; + case 2: toggleSetThisLayer("dialog2", !event.shift); break; + case 3: toggleSetThisLayer("dialog3", !event.shift); break; + case 4: toggleSetThisLayer("dialog4", !event.shift); break; + case 5: if (event.shift) aebAnimeLayersBackward(*animSpeed,*nFrames,"*animBaseName"); + else aebAnimeLayersForward(*animSpeed,*nFrames,"*animBaseName"); + break; + case 6: toggleSetThisLayer("step1", !event.shift); break; + case 7: toggleSetThisLayer("step2", !event.shift); break; + case 8: toggleSetThisLayer("step3", !event.shift); break; + case 9: toggleSetThisLayer("step4", !event.shift); break; + case 10: toggleSetThisLayer("wrapup",!event.shift); break; + default: +} +if ( event.shift ) stepcounter--; +\end{defineJS} + +\medskip +\begin{center} + \pushButton[\CA{Step Through}\TU{Step Through}\A{\JS{\stepwise}}]% + {stepthru}{}{12bp} +\end{center} + + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.pdf Binary files differnew file mode 100644 index 00000000..012a8932 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.tex new file mode 100644 index 00000000..f155d89b --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex5.tex @@ -0,0 +1,469 @@ +% Acrobat required +% use useacrobat option with pdftex and xetex if you have acrobat +% ---------------- +% +% Instructions for compiling this file +% 1. Compile this file once, but do not make into a PDF yet. +% 2. Open the two files children/target1.tex and children/target2.tex +% and compile these two files several times to resolve the cross- +% references. Now, make into PDFs. +% 3. Return to this file and compile again to input cross-reference info +% and make into a PDF via distiller. +% +\documentclass{article} +\usepackage{xr-hyper} +\usepackage[% +% driver=dvips, + gopro, + web={designiv,usesf,tight}, + attachsource={tex,dvi}, + attachments={% + children/target1.pdf,% % AeB Attachment #1 + children/target2.pdf,% % AeB Attachment #2 + ../extras/aest.xls % AeB Attachment #3 + }, + linktoattachments, + eforms +]{aeb_pro} + +\externaldocument[target1-]{children/target1} + +\DeclareDocInfo +{ + title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Linking to Attachments, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=http://www.acrotex.net, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\talkdateLabel{Published:} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\par\vskip6pt\noindent} +\def\aftersverbskip{\noindent} +\newenvironment{sverbatim} +{\par\small\verbatim} +{\endverbatim\par\aftergroup\aftersverbskip} +\newenvironment{ssverbatim} +{\par\footnotesize\verbatim} +{\endverbatim\par\aftergroup\aftersverbskip} +\def\AcroTeX{Acro\negthinspace\TeX} + +%\autolabelNum{AeST}{3} +%\autolabelNum{cooltarget}{3} +%\autolabelNum{attach1}{1} +%\autolabelNum{attach2}{2} +% +% \autolabelNum[mytarget]{1} +% \autolabelNum*[mytarget]{1}{New Title} +% \autolabelNum*[AeST]{3}{\u0022$|e^\u007B\u005Cln(17)\u007D|$\u0022 beep} +% \labelName{cooltarget}{\u0022$|e^\u007B\u005Cln(17)\u007D|$\u0022} +\begin{attachmentNames} +\autolabelNum{1} +%\autolabelNum{2} +\autolabelNum*{2}{target2.pdf Attachment File} +\autolabelNum*[AeST]{3}{AeBST Components} +\labelName{cooltarget}{My (cool) $|x^3|$ ~ % '<attachment>'} +\end{attachmentNames} +% The use of \importDataObject should occur after the \texttt{attachmentNames} environment. +%\def\u{\string\\u}% +\begin{docassembly} +var retn=\importDataObject({cName: "cooltarget",cDIPath: "aebpro_ex2.pdf"}); +if ( (app.viewerVersion>7) && retn ) + this.getDataObject("cooltarget").description="\aref(cooltarget)"; +\end{docassembly} + +\def\preseti{bordercolor={0 0 1},highlight=outline,border=visible,linestyle=dashed,open=new} + +\begin{document} + +\maketitle + +\tableofcontents + +\section{Introduction} + +As we saw briefly in \texttt{aebpro\_ex3.tex}, it is possible to +attach a document using the \texttt{docassembly} environment, as +illustrated below, +\begin{sverbatim} + \begin{docassembly} + \importDataObject({ + cName: "cooltarget", + cDIPath: "aebpro_ex2.pdf" + }); + \end{docassembly} +\end{sverbatim} +In the above, we use \cs{importDataObject}, set the path to be +\texttt{cDIPath: "aebpro\_ex2.pdf"} (this can be absolute or +relative), and give the attachment a name with \texttt{cName:} +\texttt{"\cs{aref(cooltarget)}"}. The special command \cs{aref}, is +used to reference the assigned name has as its argument the label +name, \emph{delimited by parentheses}. + +The parameter \texttt{cName} in the above \texttt{docassembly} code +is of particular importance. The value of \texttt{cName} is used in +the names tree for embedded files. It is used to reference the +attachment in the link code. After the file is imported, the value +of \texttt{cName} is converted by Acrobat to Unicode. When +referencing it, you must know the unicode of the value of the +\texttt{cName} key. + +First, we insert into the preamble, the \texttt{linktoattachments} option. +This brings in all the code and commands to be discussed in this document. +(See the preamble of this file.) + +\section{Naming Attachments} + +For documents attached by the \texttt{attachments} option, AeB Pro +assigns them ``names,'' which appear in the attachments tab of +Acrobat/Reader as the Description.\footnote{The Description is +important as it is the way embedded files are referenced +internally.} The names assigned are \texttt{AeB Attachment 1}, +\texttt{AeB Attachment 2}, \texttt{AeB Attachment 3}, and so on. +If you embedded the file using the \texttt{docassem\-bly} environment +and the \cs{importDataObject} method, then you are free to assign a +name of your preference. However it is done, the names must be +converted to unicode on the {\TeX} side of things to set up the +links, and there must be a \LaTeX-like way of referencing this +unicode name, hence the development of the \texttt{attachmentNames} +environment and the two commands \cs{autolabelNum} and +\cs{labelName}.\footnote{It is important to note that +these are not needed unless you are linking to the embedded +files.} + +We describe these by example. In the preamble you will find +\begin{sverbatim} + \begin{attachmentNames} + \autolabelNum{1} + \autolabelNum*{2}{target2.pdf Attachment File} + \autolabelNum*[AeST]{3}{AeBST Components} + \labelName{cooltarget}{My (cool) $|x^3|$ ~ % '<attachment>'} + \end{attachmentNames} +\end{sverbatim} +\textbf{\color{red}Note:} The \texttt{attachmentNames} environment +and the commands \cs{autolabel\-Num} and \cs{labelName} should be +used only in the parent document; for child documents they are not +necessary. + +\begin{description} + +\item[\cs{autolabelNum}:] For PDFs (or other files) embedded using the +\texttt{attachments} option, use the \cs{autolabelNum} command. The +syntax is +\begin{verbatim} + \autolabelNum[<label>]{<num>} +\end{verbatim} +The first optional argument is the label to be used to refer to this +embedded file; the default is \texttt{attach<num>}. The second +argument is the second is a number, 1, 2, 3.., which +corresponds to the order the file is listed in the value of the +\texttt{attachments} key.\footnote{To minimize the number of changes +to the document, if you later add an attachment, add it to the end +of the list so the earlier declarations are still valid.} + +\item[\cs{autolabelNum*}:] There is a star form of \cs{autolabelNum}, which +allows to to change the description of the attachment. +\begin{verbatim} + \autolabelNum*[<label>]{<num>}{<description>} +\end{verbatim} +By default, the first attachment has label name \texttt{attach<num>} +and has a description of \texttt{AeB Attachment <num>}, This command +allows you not only to change the label, but to change the description +of the attachment as well. + +\item[\cs{labelName}:] For files that are embedded in using +\cs{importDataObject}, use the command \cs{labelName} for assigning +the name, and setting up the correspondence between the name and the +label. +\begin{verbatim} + \labelName{<label>}{<description>} +\end{verbatim} +The first argument is the label to be used to reference this +embedded file. The second parameter you can assign an arbitrary +name. +\end{description} + +\newtopic The \texttt{<description>} parameter used in +\cs{autolabelNum*} and \cs{labelName} can be an arbitrary string +assigned to the description of this embedded file, the characters +can be most anything in the Basic Latin unicode set, 0021--007E, +with the exception of left and right braces \verb!{}!, backslash +\verb!\! and double quotes \texttt{"}. + +You can also enter the unicode character codes directly by typing +\cs{uXXXX} in the \texttt{<description>}, where \texttt{XXXX} are four hex digits. (Did I say not +to use `\verb!\!'?) This is very useful when using the trouble making +characters such as backslash, left and right braces, and double +quotes, or using unicode above 00FF (Basic Latin + Latin-1). To illustrate, suppose we wish +the description of \texttt{cooltarget} to be +\begin{sverbatim} + "$|e^{\ln(17)}|$" +\end{sverbatim} +All the bad characters! +\begin{sverbatim} +\labelName{cooltarget}{\u0022$|e^\u007B\u005Cln(17)\u007D|$\u0022} +\end{sverbatim} +From the unicode character tables we see that +\begin{itemize} +\item left brace \cs{u007B} +\item right brace \cs{u007D} +\item backslash \cs{u005C} +\item double quotes \cs{u0022} +\end{itemize} +See the example file \texttt{aebpro\_ex6.tex} for additional examples of the use +of \cs{uXXXX} character codes. + +There are several ``helper'' commands as well: \cs{EURO}, \cs{DQUOTE}, \cs{BSLASH}, +\cs{LBRACE} and \cs{RBRACE}. When the \cs{u} is detected, an \cs{expandafter} is executed. +This allows a command to appear immediately after the \cs{u}, things work out well if the +command expands to four hex numbers, as it should. Thus, instead of typing +\cs{u0022} you can type \verb!\u\DQUOTE!. + +\section{Linking to Embedded Files}\label{embed} + +This package defines two commands, \cs{ahyperref} and +\cs{ahyperlink}, to create links between parent and child and child +and child. The default behavior of \cs{ahyperref} (and +\cs{ahyperlink}) is to set up a link from parent to child. +\cs{ahyperlink} and \cs{ahyperref} are identical in all respects +except for how it interprets the destination. (Refer to +\Nameref{jump} for details.) + +\newtopic The commands each take three arguments, the +first one of which is optional +\begin{verbatim} + \ahyperref[<options>]{<target_label>}{<text>} + \ahyperlink[<options>]{<target_label>}{<text>} +\end{verbatim} +\noindent In the simplest case, we jump from the parent to the first page of a +child file, like so \ahyperref{attach1}{target1.pdf}, given by\dots +\begin{verbatim} + \ahyperref{attach1}{target1.pdf} +\end{verbatim} +This is the same as \ahyperref[goto=p2c]{attach1}{target1.pdf}, the code is\dots +\begin{verbatim} + \ahyperref[goto=p2c]{attach1}{target1.pdf} +\end{verbatim} +The \texttt{goto} key is one of the key-value pairs taken by the +optional argument. Permissible values for the \texttt{goto} key are +\texttt{p2c} (the default), \texttt{c2p} (child to parent) and +\texttt{c2c} (child to child). + +\newtopic +\fcolorbox{blue}{webyellow}{\parbox{\linewidth-2\fboxsep-2\fboxrule}{\textbf{\textcolor{red}{TIP:}} +After jumping to an attachment you can return to the point of origin +(in the parent document) by selecting the menu item \texttt{View > +Page Navigation > Previous View} or by using the keyboard shortcut of +\texttt{Alt+Left Arrow}}} + +\newtopic Similarly, link to the other embedded files in this parent: +\ahyperref{attach2}{target2.pdf} and \ahyperref{cooltarget}{aebpro\_ex2.pdf} + +In all cases above, the \cs{ahyperlink} command could have been used, because no +\emph{named} destination was specified, without a named destination, the these links jump to page~1. + + +\subsection{Jumping to a target}\label{jump} + +As you may know, {\LaTeX}, more exactly, \texttt{hyperref} has two +methods of jumping to a target in another document, jump to a label +(defined by \cs{label}) and jump to a target set by +\cs{hypertarget}. Each of these is demonstrated for embedded files +in the next two sections. + +\subsubsection{Jumping to a \texorpdfstring{\protect\cs{hypertarget}}{\textbackslash hypertarget} +with \texorpdfstring{\protect\cs{ahyperlink}}{\textbackslash ahyperlink}} + +There is a destination defined by the hyperref command +\texttt{hypertarget} in \texttt{target1.pdf} and we shall jump to +it. Here we go! \ahyperlink[dest=mytarget]{attach1}{Jump!}. The +code for this jump is +\begin{verbatim} + \ahyperlink[dest=mytarget]{attach1}{Jump!} +\end{verbatim} +\noindent Note that \texttt{dest=mytarget}, where ``\texttt{mytarget}'' is the +label assigned by the \cs{hypertarget} command in \texttt{target1.pdf}. + +\penalty-5000 + +\subsubsection{Jumping to a \texorpdfstring{\protect\cs{label}}{\textbackslash label} +with \texorpdfstring{\protect\cs{ahyperref}}{\textbackslash ahyperref}} + +{\LaTeX} has a cross-referencing system, to jump to a target set by +the \cs{label} command we use the \textsf{xr-hyper} package that +comes with \texttt{hyperref}. Using label referencing, we can jump to +\ahyperref[dest=target1-s:intro]{attach1}{Section~\ref*{target1-s:intro}} +on page~\pageref*{target1-s:intro} of the embedded file +\texttt{target1.pdf}. Swave! The code for the jump is +\begin{verbatim} + \ahyperref[dest=target1-s:intro]{attach1} + {Section~\ref*{target1-s:intro}} +\end{verbatim} +\noindent we set \verb!dest=target1-s:intro! + +The label in \texttt{target1.pdf} is \texttt{s:intro}, in the preamble of +this document we have +\begin{verbatim} + \externaldocument[target1-]{children/target1} +\end{verbatim} +\noindent which causes \textsf{xr-hyper} to append a prefix to the label (this +avoids the possibility of duplication of labels, over multiple +embedded files). + +\goodbreak +\subsection{Optional Args of \texorpdfstring{\protect\cs{ahyperref}}{\textbackslash ahyperref} +and \texorpdfstring{\protect\cs{ahyperlink}}{\textbackslash ahpyerlink}} + +The \cs{ahyperref} commands has a large number of optional arguments +enabling you to create any link that the user interface of Acrobat +Pro can create, and more. These are documented in +\textsf{aeb\_pro.dtx} and well as the main documentation. Suffice it +to have an example or two. + +By using the optional parameters, you can create any link the UI can create: +\ahyperref[dest=target1-s:intro,bordercolor={0 1 0},highlight=outline,% +border=visible,linestyle=dashed]{attach1}{Jump!} +This link is given by\dots +\begin{verbatim} + \ahyperref[% + dest=target1-s:intro, + bordercolor={0 1 0}, + highlight=outline, + border=visible, + linestyle=dashed + ]{attach1}{Jump!} +\end{verbatim} +\noindent Now what do you think of that? + +\newtopic The argument list can be quite long, as shown above. If you have some favorite settings, you can +save them in a macro, like so, +\begin{sverbatim} + \def\preseti{bordercolor={0 0 1},highlight=outline,open=new,% + border=visible,linestyle=dashed} +\end{sverbatim} +\noindent Then, I can say, more simply, \ahyperref[dest=target1-s:intro,preset=\preseti]{attach1}{Jump!} +This link is given by\dots +\begin{sverbatim} +\ahyperref[dest=target1-s:intro,preset=\preseti]{attach1}{Jump!} +\end{sverbatim} +\noindent I've defined a \texttt{preset} key so you can predefine some common settings you like to use, +the enter these settings through preset key, like so \verb!preset=\preseti!. Cool. + +Note that in the second example, I've included \texttt{open=new}, this causes the embedded file to open +in a new window. For Acrobat/Reader operating in MDI, a new child window will open; for SDI (version 8), +and if the user preferences allows it, it will open in its Acrobat/Adobe Reader window. + +\newtopic +\fcolorbox{blue}{webyellow}{\parbox{\linewidth-2\fboxsep-2\fboxrule}{\textbf{\textcolor{red}{TIP:}} +After jumping to an attachment that opens a new window, just close the new window to +return the parent document. \texttt{:-\textrm{\{})}}} + +\section{Opening and Saving with \texorpdfstring{\protect\cs{ahyperextract}} + {\textbackslash ahyperextract}} + +In addition to embedding and linking a PDF, you can embed most any +file and programmatically (or through the UI) open and/or save it to +the local file system. + +To attach a file to the parent PDF, you can use the +\texttt{attachsource} or the \texttt{attachments} options of AeB +Pro, or you can embed your own using the \texttt{importDataObject} +method, as described earlier in this file. + +If an embedded file is a PDF, then you can link to it, using +\cs{ahyperref} or \cs{ahyperlink}; we can jump to an embedded PDF +and jump back. If the embedded file is not a PDF, then jumping to it +makes no sense; the best we can do is to open the file (using an +application to display the file) and/or save it to the local hard +drive. + +The AeB Pro package has the command \cs{ahyperextract} to extract +the embedded file, and to save it to the local hard drive, with an +option to start the associated application and to display the file. +The syntax for \cs{ahyperextract} is the same as that of the other two commands: +\begin{verbatim} + \ahyperextract[<options>]{<target_label>}{<text>} +\end{verbatim} +\noindent The \texttt{<options>} are the same as \cs{ahyperref}, the \texttt{<target\_label>} is the one associated +with the attachment name, and the \texttt{<text>} is the link text. + +\newtopic In addition to the standard options of \cs{ahyperref}, \cs{ahyperextract} recognizes one additional key, \texttt{launch}. +This key accepts three values: \texttt{save} (the default), \texttt{view} and \texttt{viewnosave}. The following is a +partial verbatim listing of the descriptions given in the \textsl{JavaScript for Acrobat API Reference}, in the section +describing \texttt{importDataObject} method of the Doc object: +\begin{itemize} + \item \texttt{save}: The file will not be launched after it is saved. The user is prompted for a save path. + \item \texttt{view}: The file will be saved and then launched. + Launching will prompt the user with a security alert warning + if the file is not a PDF file. The user will be prompted for a + save path. + \item \texttt{viewnosave}: The file will be temporarily saved and + then launched. Launching will prompt the user with a security + alert warning if the file is not a PDF file. A temporary path + is used, and the user will not be prompted for a save path. + The temporary file that is created will be deleted by Acrobat + upon application shutdown. +\end{itemize} + +\newtopic Here is a series of examples of usage: +\begin{enumerate} + +\item \ahyperextract[launch=view]{cooltarget}{aebpro\_ex2.pdf}: Launch + and view this PDF. The code is +\begin{verbatim} +\ahyperextract[launch=view]{cooltarget}{aebpro\_ex2.pdf} +\end{verbatim} +When you extract (or open) PDF in this way, any links created +by \cs{ahyperref} or \cs{ahyperlink} as the PDF being viewed is no longer an embedded file of the +parent. + +\item View the \ahyperextract[launch=viewnosave]{tex}{aebpro\_ex5.tex}. The code is +\begin{verbatim} +\ahyperextract[launch=viewnosave]{tex}{aebpro\_ex5.tex} +\end{verbatim} +Note that for attachments brought in by the \texttt{attachsource} option, +the label for that attachment is the file extension, in this case +\texttt{tex}. + +\item \ahyperextract[launch=save]{AeST}{AeBST Component List}: This is an Excel spreadsheet which lists +the components of the {Acro\negthinspace\TeX} eDucation System +Tools. Here you are prompted to save; the spreadsheet will not be launched: +\begin{verbatim} +\ahyperextract[launch=save]{AeST}{AeBST Component List} +\end{verbatim} +\end{enumerate} + +\section{Final Assembly} + +To assemble your parent document with all the cross-references to +its embedded children, perform the following steps. +\begin{enumerate} + +\item {\LaTeX} the parent document so that the auxiliary file + \cs{jobname\_xref.cut}. This file is read by the children when they + are {\LaTeX}ed. + +\item {\LaTeX} the child documents. The child documents will write + their own auxiliary file and read \cs{jobname\_xref.cut}. (Multiple + compiles may be necessary to bring the auxiliary document up to + date.) + +\item Make PDF for the child documents. + +\item Now {\LaTeX} the parent again, which will read in the + auxiliary files of the children, if needed. Distill and \textsl{Le + Voil\`{a}}, you have it! + +\item At this point you can clean up all auxiliary files. + +\end{enumerate} + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.pdf Binary files differnew file mode 100644 index 00000000..6ad1f873 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.tex new file mode 100644 index 00000000..66cbd350 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex6.tex @@ -0,0 +1,150 @@ +% Acrobat required +% use useacrobat option with pdftex and xetex if you have acrobat +\documentclass{article} +\usepackage[% + gopro, + web={designiv,usesf,tight}, + attachsource={tex}, + attachments={% + children/theeuro.pdf, % AeB Attachment 1 + children/explog.pdf, % AeB Attachment 2 + ../extras/aest.xls, % AeB Attachment 3 + ../extras/ease.pdf % AeB Attachment 4 + }, + linktoattachments, + eforms +]{aeb_pro} + +\DeclareDocInfo +{ + title=The AeB Pro Package\texorpdfstring{\\[1ex]}{:} Creating a Package of Files, + author=D. P. Story, + university=Acro\negthinspace\TeX.Net, + email=dpstory@acrotex.net, + subject=Test file for the AeB Pro package, + keywords={Adobe Acrobat, JavaScript}, + talksite=http://www.acrotex.net, + talkdate={January 12, 2007}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL=http://www.acrotex.net +} +\talkdateLabel{Version} +\version{1.0}\nocopyright + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\par\vskip6pt\noindent} +\def\aftersverbskip{\noindent} +\newenvironment{sverbatim} +{\par\small\verbatim} +{\endverbatim\par\aftergroup\aftersverbskip} +\def\AcroTeX{Acro\negthinspace\TeX} + +\begin{attachmentNames} +\autolabelNum*{1}{European Currency \u\EURO} +\autolabelNum*{2}{\u0022$|e^\u007B\u005Cln(17)\u007D|$\u0022} +%\autolabelNum*{2}{\u\DQUOTE$|e^\u\LBRACE\u005Cln(17)\u\RBRACE|$\u\DQUOTE} +\autolabelNum*[AeST]{3}{The AeBST Components} +\autolabelNum*[atease]{4}{The @EASE Control Panel} +\end{attachmentNames} + +\makePDFPackage{viewmode=tile} % tile, details, hidden +% Try compiling with this option +%\makePDFPackage{viewmode=tile,initview=attach1} + +% choose view > Portfolio > Cover Sheet to recover the cover sheet + +\optionalPageMatter +{% + \par\bigskip + \begin{minipage}{.67\linewidth} + Link testing: + \begin{itemize} + \item See the \ahyperlink{attach1}{Euro} + \item See my \ahyperlink{attach2}{formerly favorite number} + \item See the \ahyperlink{atease}{@EASE Control Panel} + \item View the \ahyperextract[launch=view]{AeST}{AeST Components} + \end{itemize} + \end{minipage} +} + +\begin{document} + +\maketitle + +\section*{The \protect\cs{makePDFPackage} command} + +The concept of a PDF Package is introduced in Acrobat~8.\footnote{The PDF Package +has had several name changes, originally known as a Collection, a Portable Collection, +a PDF Package, and finally a (PDF) Portfolio.} On first +blush, it is nothing more than a fancy user interface to display +embedded files; however, it is also used in the new email form data +workflow. Using the new \textsf{Forms} menu, data contained in FDF +files can be packaged, and summary data can be displayed in the user +interface. Consequently, the way forms uses it, a PDF package can be +used as a simple database. + +Unfortunately, at this time, the form feature/database feature of +PDF Packages is inaccessible to the JavaScript API and AeB Pro. +What AeB Pro provides is packaging of the embedded files with the +nice UI. + +\newtopic The procedure is as follows: Embed all files files in the +parent as described in \texttt{aebpro\_ex5.pdf}, and use the command +\cs{makePDFPackage} to package the attachments. The syntax is +\begin{verbatim} + \makePDFPackage{<key-values>} +\end{verbatim} +There are only two sets of key-value pairs +\begin{description} + \item[\texttt{initview=<label>}:] Specifying a value for the + initview key determines which file will be used as the initial + view when the document is opened. If + \texttt{initview=attach2}, for this document, then the file + corresponding to the label \texttt{attach2}, as set up in the + \texttt{attachmentNames} environment is the initial view. + Listing \texttt{initview} with no value (or if + \texttt{initview} is not listed at all) causes the parent + document -- also called the \emph{cover sheet} -- to be + initially shown. + + \item[\texttt{viewmode=details|tile|hidden}:] The + \texttt{viewmode} determines which of the three user + interfaces is to be used initially. In terms of the UI + terminology: $\texttt{details} = \textsf{View top}$; + $\texttt{tile} = \textsf{View left}$; and $\texttt{hidden} = + \textsf{Minimize view}$. The default is \texttt{details}. +\end{description} +If you use this command with an empty argument list, +\verb!\makePDFPackage{}!, you create a PDF package with the +defaults. + +When navigating a PDF Package (Portfolio) the cover sheet can be viewed by +accessed through the menu item \texttt{View > Portfolio > Cover Sheet}. + +\newtopic\textbf{\textcolor{red}{TIP:}} Use the \cs{autolabelNum*} +command to assign a more informative description of the attachments, +like so. +\begin{sverbatim} + \autolabelNum*{1}{European Currency \u20AC} + \autolabelNum*{2}{\u0022$|e^\u007B\u005Cln(17)\u007D|$\u0022} + \autolabelNum*[AeST]{3}{The AeBST Components} + \autolabelNum*[atease]{4}{The @EASE Control Panel} +\end{sverbatim} + +Note that there is an alternative that is commented out to the assignment of the +second attachment, it is +\begin{sverbatim} + \autolabelNum* + {2}{\u\DQUOTE$|e^\u\LBRACE\u005Cln(17)\u\RBRACE|$\u\DQUOTE} +\end{sverbatim} +One can use the ``helper'' commands, as described in \texttt{aeb\_pro.tex}; however, +there is a slight problem. Within the \texttt{<description>} argument, we obey spaces, so +if we were to say \verb!\u\LBRACE\u\BSLASH ln(17)\u\RBRACE! there would be a space +after the backslash. This is the reason we used \cs{u005C}. + +\newtopic That's it! Hope you enjoy this feature and find a good +use for it. + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.pdf Binary files differnew file mode 100644 index 00000000..cccf3cbf --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.tex new file mode 100644 index 00000000..655c1883 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex7.tex @@ -0,0 +1,161 @@ +% use useacrobat option with pdftex and xetex if you have acrobat +% use nopro if you don't have acrobat (the attachsource silently fails) +\documentclass{article} +\usepackage[ + gopro, + web={designv,nodirectory,usesf}, + eforms, % only needed for \toggleAttachmentsPanel + attachsource={tex} +]{aeb_pro} +\usepackage{array} +\newcommand{\cs}[1]{\texttt{\char`\\#1}} + + +\begin{comment} + The layoutmag key has values: + navitab=UseNone,UseOutlines,UseThumbs,UseOC,UseAttachments + pagelayout=SinglePage,OneColumn,TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight + mag=ActualSize,FitPage,FitWidth,FitHeight,FitVisible, or positive number (e.g., mag = 50) + openatpage = page number (base 1) + + The windowoptions key has values: + fit,center,showtitle,fullscreen + + The uioptions key has values: + hidetoolbar,hidemenubar,hidewindowui +\end{comment} + +\DeclareInitView +{% + layoutmag={openatpage=2,mag=ActualSize,pagelayout=TwoPageRight}, + windowoptions={fit,center,showtitle}, + uioptions={hidetoolbar,hidemenubar,hidewindowui} +} +\DeclareDocInfo +{% + title=AcroTeX Fun with Initial View, + university=Acro\negthinspace\TeX.Net, + author=D. P. Story, + email=dpstory@acrotex.net, + subject=Testing total control, + talksite=\url{www.acrotex.net}, + version=1.0, + keywords={Initial View tab, Document Properties} +} +\nocopyright + +\optionalPageMatter +{% + \par\bigskip + \begin{center} + \toggleAttachmentsPanel{red}{View the attachment} + \end{center} +} + + + +\begin{document} + +\maketitle + +\noindent The \cs{DeclareInitView} command is a companion to +\cs{DeclareDocInfo}, each of these fills a tab of the +\textsf{Document Properties} dialog box. + +\begin{verbatim} +\DeclareInitView +{% + layoutmag={openatpage=2,mag=ActualSize,pagelayout=TwoPageRight}, + windowoptions={fit,center,showtitle}, + uioptions={hidetoolbar,hidemenubar,hidewindowui} +} +\DeclareDocInfo +{% + title=AcroTeX Fun with Initial View, + university=Acro\negthinspace\TeX.Net, + author=D. P. Story, + email=dpstory@acrotex.net, + subject=Testing total control, + talksite=\url{www.acrotex.net}, + version=1.0, + keywords={Initial View tab, Document Properties} +} +\end{verbatim} +Use this document to experiment with the various +properties of set by \cs{DeclareInitView}. + +\newpage + +\begin{itemize} + + \item \texttt{layoutmag}: This key sets the initial page layout and magnification + of the document. The values of this key are themselves key-values: + + \begin{small}\setlength{\extrarowheight}{3pt} + \begin{tabular}{|>{\ttfamily}l>{\raggedright}p{1.85in}p{2.15in}<{\raggedright}|}\hline + \multicolumn{1}{|l}{Key} &\multicolumn{1}{l}{Value(s)} & Description \\\hline + navitab & \texttt{UseNone}, \texttt{UseOutlines}, \texttt{UseThumbs}, + \texttt{UseOC}, \texttt{UseAttachments} + & The UI for these are Page Only, Bookmarks Panel + and Page, Pages Panel and Page, Layers Panel and + Page, Attachments Panel and Page, respectively. The + default is \texttt{UseNone}\\ + pagelayout & \texttt{SinglePage}, \texttt{OneColumn}, \texttt{TwoPageLeft}, + \texttt{TwoColumnLeft}, \texttt{TwoPageRight}, \texttt{TwoColumnRight} + & The UI for these are Single Page, Single Page + Continuous, Two-Up (Facing), Two-Up Continuous + (Facing), Two-Up (Cover Page), Two-Up Continuous + (Cover Page), respectively. The default is user's + preferences.\\ + mag & \texttt{ActualSize}, \texttt{FitPage}, \texttt{FitWidth}, + \texttt{FitHeight}, \texttt{FitVisible}, or \texttt{<positive number>} + & The UI for these are Actual Size, Fit Page, Fit + Width, Fit Height, Fit Visible, respectively. If a + positive number is provided, this is interpreted as + a magnification percentage. The default is to use + user's preferences. \\ + openatpage & \texttt{<positive number>} + & The page number (base 1) to open the document at. Default is page 1.\\\hline + \end{tabular} + \end{small}% + +\newpage + + \item \texttt{windowoptions}: The Window Options region of the + Initial View tab consists of a series of check boxes, which when + checked modifies the initial state of the document window. These are + not really Boolean keys. If the key is present, the + corresponding box in the UI will be checked, otherwise, the box + remains cleared. + + \begin{tabular}{|>{\ttfamily}lp{2in}|}\hline + Key & Description \\\hline + fit & Resize window to initial page\\ + center & Center window on screen \\ + fullscreen & Open in Full Screen mode\\ + showtitle & Show document title in the title bar\\\hline + \end{tabular} + + Note that you can open the document in Full Screen mode using the + \texttt{fullscreen} key above, or by using the \texttt{fullscreen} key + of the \cs{setDefaultFS}. Either will work. + +\newpage + + \item \texttt{uioptions}: The User Interface Options region of + the Initial View tab consists of a series of check boxes, which + when checked hides a UI control. These are not really Boolean + keys. If the key is present, the corresponding box in the UI + will be checked, otherwise, the box remains cleared. + + \begin{tabular}{|>{\ttfamily}lp{2in}|}\hline + Key & Description \\\hline + hidemenubar & Hide menu bar\\ + hidetoolbar & Hide tool bars\\ + hidewindowui & Hide window controls\\\hline + \end{tabular} + +\end{itemize} + + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.pdf b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.pdf Binary files differnew file mode 100644 index 00000000..116c2a75 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.tex new file mode 100644 index 00000000..3565c239 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex8.tex @@ -0,0 +1,218 @@ +% Acrobat required +% use useacrobat option with pdftex and xetex if you have acrobat +\documentclass{article} +\usepackage[ + web={designv,forcolorpaper,pro,tight,usesf}, + eforms, + linktoattachments, + attachsource={tex}, + aebxmp, +]{aeb_pro} + +\DeclareDocInfo +{ + university={Acro\negthinspace\TeX.Net}, + title={A Note on Entering Unicode into a Form Field}, + author={D. P. Story}, + email={dpstory@acrotex.net}, + subject={White Paper that discusses how to use AeB Pro to create form fields with unicode strings}, + talksite={\url{www.acrotex.net}}, + version={1.0}, + keywords={AeB, AcroForm, unicode, AcroTeX, AcroTeX.Net}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL={http://www.acrotex.net} +} +\nocopyright + + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand{\cS}[2]{\textField[\Ff\FfReadOnly\textSize{10}\textFont{Arial}\uDV{FEFF#2}\uV{FEFF#2}\BC{}]{#1}{20bp}{11bp}} + +\parskip6pt +\parindent0pt + +\labelName{coolDPS}{Donald \u20AC. Story} +\labelName{myCoolIV}{\u0022\u20AC|e^\u007B\u005Cln(17)\u007D|$\u0022} +\labelName{Reset myCoolIV}{Reset the \u0022\u20AC|e^\u007B\u005Cln(17)\u007D|$\u0022 field} + +\begin{document} + +\makeinlinetitle +%\maketitle + +\section{The Basics} + +This document demonstrates how to use some of the new commands that +come with AeB Pro, and some of the new keys in the eforms package +that are designed to enter unicode hex encoding. In all cases, you must have +the font that contains the glyph represented by the unicode hex. + +You need AeB Pro with the \texttt{linktoattachments} and the eforms package, see +preamble above. + +The first step is to use the \cs{labelName} command to define your unicode string +and associate a label with it. In the preamble, the following definition can be found. +\begin{verbatim} +\labelName{coolDPS}{Donald \u20AC. Story} +\end{verbatim} +The string can be a combination of characters from Basic Latin. As +described in the AeB Pro manual, the string can be entered using +keyboard keystrokes, or unicode notation \cs{uXXXX}, as above. +Spaces are eaten up, so you must enter the unicode for a space +\cs{u0020}. The command \cs{labelName} creates a macro that contains +the pure encoding of the string. You can use \cs{aref} to access +this encoding. +The Unicode for the string \verb!Donald \u20AC. Story! is +\begin{quote} +\unicodeStr(coolDPS) +\end{quote} +The hex code is computed from a table of unicodes defined in AeB Pro, with allowances for enter +a ``raw unicode'' using a \cs{u} escape sequence. + +Next, create an AcroForm field, a text field, in this example, and +use the command \cs{unicodeStr} to reference the label enclosed +in matching parentheses, like so +\begin{verbatim} +\textField[\Ff\FfReadOnly\textSize{10}\textFont{Arial}\W0 + \uDV{\unicodeStr(coolDPS)}\uV{\unicodeStr(coolDPS)}\BC{} +]{dps}{1in}{11bp} +\end{verbatim} +The result of the above code is + +\textField[\Ff\FfReadOnly\textSize{10}\textFont{Arial}\W0 + \uDV{\unicodeStr(coolDPS)}\uV{\unicodeStr(coolDPS)}\BC{} +]{dps}{1in}{11bp} + + +The technique uses some of the code brought in by the the +\texttt{linktoattachments} option of AeB Pro, and a new command, +named \cs{unicodeStr}, designed to make it simple to enter unicode +encoded strings into a form field. + +The above field is set to read only, the one below is not: + +\textField[\textSize{10}\textFont{Arial} + \uDV{\unicodeStr(myCoolIV)}\uV{\unicodeStr(myCoolIV)} +]{myCoolIV}{1.5in}{12bp}\pushButton[\textSize{10}\textFont{Arial}\uCA{FEFF20AC} + \uAC{FEFF20AA}\uRC{FEFF00A5}\uTU{\unicodeStr(Reset myCoolIV)}\A{\JS{this.resetForm(["myCoolIV"])}}]{reset}{.5in}{12bp} + +Edit the box above, then click on the reset button. (Notice the +tooltip for the reset button.) + +The eforms uses an optional first argument to change the appearance +of a form field, add in action (usually JavaScript action) or to +initialize the field value. In the above form fields, several +unicode counterparts to the standard keys were used. +\begin{itemize} + \item \cs{uV} and \cs{uDV} were used instead of \cs{V} and + \cs{DV} for giving the field a value and a default value, + respectively. The ``u'' versions are used when the string is in + unicode. + + \item Button face text for the reset button was entered with + \cs{uCA}, \cs{uAC} and \cs{uRC} rather than \cs{CA}, \cs{AC} and + \cs{RC}. You can mix these two types together. The normal face + caption could be defined by \cs{uCA} and the others defined by + \cs{AC} and \cs{RC}. + + \item The ``tooltip'', as used in the reset button, normally uses + the \cs{TU} key. When the string is meant to be unicode, use the + \cs{uTU} key. +\end{itemize} + +\section{More Advanced} + +For combo boxes and list boxes, things are slightly more +complicated. In the example below, we define a combo box. First, +define the appearance values of the combo box (the string that is +seen listed in the combo box). +\begin{verbatim} +\labelName{myEuro}{\u20AC (Euro)} +\labelName{myYen}{\u00A5 (Yen)} +\labelName{mySheqel}{\u20AA (Sheqel)} +\labelName{myPound}{\u00A3 (Pound)} +\labelName{myFranc}{\u20A3 (Franc)} +\end{verbatim} + +\labelName{myEuro}{\u20AC (Euro)} +\labelName{myYen}{\u00A5 (Yen)} +\labelName{mySheqel}{\u20AA (Sheqel)} +\labelName{myPound}{\u00A3 (Pound)} +\labelName{myFranc}{\u20A3 (Franc)} + +Then we can define our combo box. According to the PDF file format, +unicode strings should be enclosed in angle brackets +\verb!<XXXXXXXXXXXX>!. In initializing the combo box below, the +\cs{unicodeStr} command is used, but this time it is enclosed in +angle brackets. (That is all the ``u'' versions of the keys do above +is to automatically insert the angle brackets for you. Here we have +to do it ourselves. (I suppose one could have a helper command, but +you can handle it.) +\begin{verbatim} +\comboBox[\Ff\FfEdit\DV{1}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +} +\end{verbatim} +where the \texttt{*} in the position shown above is a token that signals the +passing of a raw form of the value options of a combo or list box; it is +defined in \textsf{eforms}. + +The result is +\comboBox[\Ff\FfEdit\DV{1}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +} + +Very swave! + +\section{More Advanced Still} + +You can also enter raw hex yourself (without using \cs{labelName}) if you have the patience to do +it, and in some cases, it is the easiest. + +For the purpose of the table below, the following definition was given in the preamble: + +\begin{verbatim} +\newcommand{\cS}[2]{% + \textField[ + \Ff\FfReadOnly\BC{}\textSize{10}\textFont{Arial} + \uDV{FEFF#2}\uV{FEFF#2} + ]{#1}{20bp}{11bp}} +\end{verbatim} +Again the \cs{uDV} and \cs{uV} keys are used but without +\cs{unicodeStr}. In this case, we must do it ourselves. As was +mentioned earlier, the ``u'' versions of these keys automatically +insert the angle brackets. Inside the angle brackets is the raw +unicode hex code. What wasn't mentioned before is that the first +four hex digits must be \texttt{FEFF} to signal the beginning of +unicode. Here, we insert these digits ourselves, followed, through +parameter replacement, by the unicode hex digits of the characters +desired. The result is the table you see below. (Again the field is +readonly, the table is the one that appears in manual of usage for the +JJ\_Game class (\texttt{jjg\_man.pdf}). + +\begin{center} +\begin{tabular}{lll||lll} +Description & Unicode & Symbol & Description & Unicode & Symbol \\\hline +Dollar Sign & \cs{u0024}& \cS{Dollar}{0024} & Lira Sign & \cs{u20A4} &\cS{Lira}{20A4}\\ +Pound Sign & \cs{u00A3}& \cS{Pound}{00A3} & Peseta Sign & \cs{u20A7} &\cS{Pesta}{20A7}\\ +Currency Sign & \cs{u00A4}& \cS{Currency}{00A4} & New Sheqel Sign & \cs{u20AA} &\cS{Sheqel}{20AA}\\ +Yen Sign & \cs{u00A5}& \cS{Yen}{00A5} & Dong Sign & \cs{u20AB} & \cS{Dong}{20AB}\\ +French Franc & \cs{u20A3}& \cS{Franc}{20A3} & Euro Sign & \cs{u20AC} &\cS{Euro}{20AC}\\ +\end{tabular} +\end{center} + +FYI: See \url{http://jrgraphix.net/research/unicode_blocks.php?block=0} for a display of unicode characters. + + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_index_ex.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_index_ex.tex new file mode 100644 index 00000000..40933cb4 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_index_ex.tex @@ -0,0 +1,44 @@ +\documentclass{article} +\usepackage[web={tight,pro}]{aeb_pro} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\vskip\medskipamount\noindent} + +\parindent0pt +\parskip6pt + +\begin{document} + + +\section{Index of Example Files} + +The following is a list of the example files that illustrate and test various +features of AeB Pro. + +\begin{enumerate} + \item \texttt{aebpro\_ex1.tex}: Illustrates the document and page + open/close actions and fullscreen support of AeB Pro. + + \item \texttt{aebpro\_ex2.tex}: Demonstrates the features of the + \texttt{pro} option of the \textsf{web} package, including enhanced control + over the layout of section headings and the title page. + + \item \texttt{aebpro\_ex3.tex}: Highlights the attachments options and the + doc assembly methods. + + \item \texttt{aebpro\_ex4.tex}: A discussion of layers, rollovers and animation. + + \item \texttt{aebpro\_ex5.tex}: Linking to attachments: The \cs{ahyperref}, \cs{ahyperlink} + and the \cs{ahyperextract} commands. + + \item \texttt{aebpro\_ex6.tex}: Learn how to create a PDF Package out of your attachments. + + \item \texttt{aebpro\_ex7.tex}: Explore the \cs{DeclareInitView} command, documentation included + in this file. + + \item \texttt{aebpro\_ex8.tex}: Details of how to use unicode to set the initial value(s) of field, or as + captions on a button. +\end{enumerate} + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/explog.pdf b/texmf-dist/doc/latex/aeb-pro/examples/children/explog.pdf Binary files differnew file mode 100644 index 00000000..7ecab32f --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/explog.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/target1.pdf b/texmf-dist/doc/latex/aeb-pro/examples/children/target1.pdf Binary files differnew file mode 100644 index 00000000..d898ea16 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/target1.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/target1.tex b/texmf-dist/doc/latex/aeb-pro/examples/children/target1.tex new file mode 100644 index 00000000..61b19a24 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/target1.tex @@ -0,0 +1,72 @@ +\documentclass{article} +\usepackage{xr-hyper} +\usepackage[% +% driver=dvips, + web={usesf,designiv}, + linktoattachments, + childof={../aebpro_ex5}, + eforms +]{aeb_pro} + +\externaldocument[target2-]{target2} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} +\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi +\par\noindent} +\def\aftersverbskip{\vskip-\parskip} +\newenvironment{sverbatim} +{\par\vskip-\parskip\parskip0pt\footnotesize\verbatim} +{\endverbatim\par\aftergroup\aftersverbskip} +\def\AcroTeX{Acro\negthinspace\TeX} + +\pagestyle{empty} +\parindent0pt +\parskip6pt + +\begin{document} +\makebox[0pt][l]{D.P. Story}\hfill\textbf{Attaching and Linking}\hfill\makebox[0pt][r]{\url{www.acrotex.net}} + +\bigskip + +Welcome to \texttt{target1.pdf}! + +Now, return to \ahyperref[goto=c2p]{}{parent document} + +Jump to the other attached file \ahyperref[goto=c2c]{attach2}{target2.pdf} + +\newpage + +\section{Instructions}\label{s:intro} + +Instructions to set up links from the child are straight forward. First, you insert a new option +into the option list of \texttt{aeb\_pro}: +\begin{sverbatim} +\usepackage[% + ... + linktoattachments, + childof={../aebpro_ex5}, +]{aeb_pro} +\end{sverbatim} +In addition to the \texttt{linktoattachments}, we also include the +\texttt{childof} key along with its value, +\verb!childof={../aebpro_ex5}!, the path to the parent. Do not +include any extension, just the base name will do fine, just fine. +Second, well, you're done, there is no second. + +For child to child, \ahyperref[goto=c2c]{attach2}{target2.pdf}\\ +\verb!\ahyperref[goto=c2c]{attach2}{target2.pdf}!\\ +and for child to \ahyperref[goto=c2p]{}{parent document}\\ +\verb!\ahyperref[goto=c2p]{}{parent document}! + +Let's jump to a \verb!\label{target2-targetsection}!: \ahyperref[goto=c2c,dest=target2-targetsection]{attach2} +{Section~\ref*{target2-targetsection}} in the document \texttt{target2.pdf} on page~\pageref*{target2-targetsection}. + +\newpage + +On this page we set a \hypertarget{mytarget}{\cs{hypertarget}}, and expect to jump here from the parent +document. + +Now, let's jump to a target defined by \cs{hypertarget}: \ahyperlink[goto=c2c,dest=myhypertarget]{attach2}{Away!} + + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/target2.pdf b/texmf-dist/doc/latex/aeb-pro/examples/children/target2.pdf Binary files differnew file mode 100644 index 00000000..a37fdee4 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/target2.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/target2.tex b/texmf-dist/doc/latex/aeb-pro/examples/children/target2.tex new file mode 100644 index 00000000..560baa50 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/target2.tex @@ -0,0 +1,43 @@ +\documentclass{article} +\usepackage{xr-hyper} +\usepackage[% +% driver=dvips, + web={usesf,designiv}, + linktoattachments, + childof={../aebpro_ex5}, + eforms +]{aeb_pro} + +\externaldocument[attach1-]{target1} + +\newcommand{\cs}[1]{\texttt{\char`\\#1}} + +\pagestyle{empty} +\parindent0pt +\parskip6pt + +\begin{document} +\makebox[0pt][l]{D.P. Story}\hfill\textbf{Attaching and Linking}\hfill\makebox[0pt][r]{\url{www.acrotex.net}} + +\bigskip + +Welcome to \texttt{target2.pdf}. + + +Now, return to \ahyperref[goto=c2p]{}{parent document} + +Jump to the other attached file \ahyperref[goto=c2c]{attach1}{target1.pdf} + +\newpage +\section{Target Section}\label{targetsection} + +This is \texttt{target2.pdf}, you should have arrived here via a child-to-child link from +\texttt{target1.pdf}. This is a test of \cs{ahyperref}. And \ahyperref[goto=c2c,dest=target1-s:intro] +{attach1}{return!} + +\newpage +One this page, we'll create a +\hypertarget{myhypertarget}{hypertarget}. We'll test child to child +jumping to a destination using \cs{ahyperlink}. And \ahyperlink[goto=c2c,dest=mytarget]{attach1}{return!} + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/examples/children/theeuro.pdf b/texmf-dist/doc/latex/aeb-pro/examples/children/theeuro.pdf Binary files differnew file mode 100644 index 00000000..d66a5989 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/children/theeuro.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/extras.zip.txt b/texmf-dist/doc/latex/aeb-pro/examples/extras.zip.txt Binary files differnew file mode 100644 index 00000000..1bdc0430 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/extras.zip.txt diff --git a/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.pdf b/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.pdf Binary files differnew file mode 100644 index 00000000..df933661 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.tex b/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.tex new file mode 100644 index 00000000..1be13778 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/myCoverPage.tex @@ -0,0 +1,16 @@ +\documentclass{article} +\usepackage[web=designiv]{aeb_pro} + +\thispagestyle{empty} + +\begin{document} + +\null\vfill + +\begin{center}\sffamily\Huge\bfseries + If you see this, the test worked! AeB Pro is installed correctly. +\end{center} + +\vfill + +\end{document}
\ No newline at end of file diff --git a/texmf-dist/doc/latex/aeb-pro/examples/test_install.pdf b/texmf-dist/doc/latex/aeb-pro/examples/test_install.pdf Binary files differnew file mode 100644 index 00000000..07cfd9fe --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/test_install.pdf diff --git a/texmf-dist/doc/latex/aeb-pro/examples/test_install.tex b/texmf-dist/doc/latex/aeb-pro/examples/test_install.tex new file mode 100644 index 00000000..20a2216f --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/examples/test_install.tex @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage[web=designiv,eforms]{aeb_pro} + +\begin{defineJS}{\insertSomePages} +aebTrustedFunctions( this, aebInsertPages, {nPage: -1,cPath: "myCoverPage.pdf",nStart: 0} ); +\end{defineJS} + +\thispagestyle{empty} +\parindent0pt\parskip6pt + +\begin{document} + +This is a file to test your AeB Pro installation. + +To test the \textsf{AeB Pro} installation, press this button: \pushButton[\CA{Test AeB +Pro}\A{\JS{\insertSomePages}}]{btnTest}{}{11bp} + +Upon pressing the button, if you have installed the \texttt{aeb\_pro.js} file +correctly, a cover page should be inserted as the first page. If the cover +page does not appear, check the \textsf{Acrobat} console window +\texttt{Ctrl+J} for an error message. If you did place \texttt{aeb\_pro.js} +in the use JavaScript folder, and the file was not imported, then either you +haven't closed and opened \textsf{Acrobat} after you installed \texttt{aeb\_pro.js}, +or the cover page document \texttt{myCoverPage.pdf} does not exist or has +been moved from this folder + +\end{document} diff --git a/texmf-dist/doc/latex/aeb-pro/install_jsfiles.pdf b/texmf-dist/doc/latex/aeb-pro/install_jsfiles.pdf Binary files differnew file mode 100644 index 00000000..d55c3e30 --- /dev/null +++ b/texmf-dist/doc/latex/aeb-pro/install_jsfiles.pdf |