summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/acroflex/doc/acroflex_man.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-08-08 03:01:09 +0000
committerNorbert Preining <norbert@preining.info>2020-08-08 03:01:09 +0000
commit1c9455caf30309c8b8ba69afdc5a16a83d9f9a58 (patch)
tree0bc3971e599005a7420c53782539e789de57b40d /macros/latex/contrib/acroflex/doc/acroflex_man.tex
parent3710c23789342d9d88783cbe9ad23eb5263a7c33 (diff)
CTAN sync 202008080301
Diffstat (limited to 'macros/latex/contrib/acroflex/doc/acroflex_man.tex')
-rw-r--r--macros/latex/contrib/acroflex/doc/acroflex_man.tex1073
1 files changed, 0 insertions, 1073 deletions
diff --git a/macros/latex/contrib/acroflex/doc/acroflex_man.tex b/macros/latex/contrib/acroflex/doc/acroflex_man.tex
deleted file mode 100644
index 63bbcbb8f6..0000000000
--- a/macros/latex/contrib/acroflex/doc/acroflex_man.tex
+++ /dev/null
@@ -1,1073 +0,0 @@
-% makeindex < acroflex_man.idx > acroflex_man.ind
-\documentclass{article}
-\usepackage[fleqn]{amsmath}
-\usepackage[
- web={centertitlepage,designv,
- nodirectory,forcolorpaper,
- latextoc,pro},
- eforms,
- linktoattachments,
- aebxmp
-]{aeb_pro}
-\usepackage[dvipsone,showembeds]{graphicxsp}
-\usepackage{array}
-\usepackage[altbullet]{lucidbry}
-%\usepackage{myriadpro}
-
-%\usepackage{makeidx}
-%\makeindex
-\usepackage{acroman}
-\usepackage[active]{srcltx}
-
-\makeatletter
-\renewcommand{\paragraph}
- {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}}
-\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.5em}}
-\renewcommand*\descriptionlabel[1]{\hspace\labelsep
- \normalfont #1}
-\newcommand{\aebDescriptionlabel}[1]{%
- \setlength\dimen@{\amtIndent+\labelsep}%
- {\hspace*{\dimen@}#1}}
-\makeatother
-\newenvironment{aebDescript}
- {\begin{list}{}{\setlength{\labelwidth}{0pt}%
- \setlength{\leftmargin}{\leftmargin}%
- \setlength{\leftmargin}{\leftmargin+\amtIndent}%
- \setlength\itemindent{-\leftmargin}%
- \let\makelabel\aebDescriptionlabel
- }}{\end{list}}
-
-\def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}}
-\def\AcroBlog{{Acro\!\TeX} Blog}
-
-\newcommand\refctan[1]{\href{http://ctan.org/pkg/#1}{ctan.org/pkg/#1}}
-\newlength{\aebdimen}
-\def\anglemeta#1{$\langle\textit{\texttt{#1}}\rangle$}
-%\def\meta#1{\textit{\texttt{#1}}}
-\let\meta\anglemeta
-\let\pkg\textsf
-\let\env\texttt
-\let\opt\texttt
-\let\app\textsf
-\def\RMA{RMA}
-\let\SC\relax
-\def\SWF{SWF}
-\def\FLV{FLV}
-\let\EXT\relax
-\def\AcroFLeX{AcroF\kern-.1667em
- \lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}
-\def\AEB{\textsf{AeB}}
-\def\AcroTeX{Acro\!\TeX}
-\def\HTML{HTML}\def\FDF{FDF}
-\def\PDF{PDF}\def\URL{URL}
-\let\amtIndent\leftmargini
-\def\bNH{\begin{NoHyper}}\def\eNH{\end{NoHyper}}
-\def\nhnameref#1{\bNH\nameref{#1}\eNH}
-\def\nhNameref#1{\bNH\Nameref{#1}\eNH}
-\def\nhurl#1{\bNH\url{#1}\eNH}
-\def\grayV#1{\textcolor{gray}{#1}}
-\def\darg#1{\{#1\}}
-\def\parboxValign{t}
-\renewcommand*{\backrefalt}[4]{%
- \ifcase #1\or
- See page~#2.\else See pages~#2.\fi
-}
-\newenvironment{aebQuote}
- {\list{}{\leftmargin\amtIndent}%
- \item\relax}{\endlist}
-\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{%
- \raisebox{.5\baselineskip+#1}{%
- \expandafter\parbox\expandafter[\parboxValign]%
- {\marginparwidth}{\aebbkFmtMp#2}}}}
-\def\aebbkFmtMp{\kern0pt\itshape\small
- \color{blue}\raggedright\hspace{0pt}}
-\newcommand{\BlogArticle}{\makebox[0pt][l]{\hspace{-1pt}\color{blue}\Pisymbol{webd}{254}%
- }\raisebox{.5pt}{\color{red}\ding{045}}}
-\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}%
- \kern-.6em \hbox{$\mathcal S$}}$}
-\def\FitItIn{\eq@fititin}
-\def\endredpoint{\FitItIn{{\large\ifusebw\color{black}\else\color{red}\fi$\blacktriangleleft$}}}
-
-\def\takeMeasure{\bgroup\obeyspaces\takeMeasurei}
-\def\takeMeasurei#1{\global\setbox\webtempboxi\hbox{\ttfamily#1}\egroup}
-
-
-\urlstyle{rm}
-
-\def\expath{../examples}
-
-\DeclareDocInfo
-{
- university={\AcroTeX.Net},
- title={\texorpdfstring{\AcroFLeX\\[1em]
- The {\AcroTeX} and FLEX/Flash Connection\\[1em]Applications to Graphing}{The AcroFLeX
- Graphing System}},
- author={D. P. Story},
- email={dpstory@acrotex.net},
- subject={Documentation for AcroFLeX},
- talksite={\url{www.acrotex.net}},
- version={1.6c},
- keywords={SWF, Adobe FLEX, Adobe Acrobat, JavaScript, ActionScript, AcroTeX},
- copyrightStatus=True,
- copyrightNotice={Copyright (C) \the\year, D. P. Story},
- copyrightInfoURL={http://www.acrotex.net}
-}
-
-\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
- \kern-.6em \hbox{$\mathcal S$}}$}
-
-\setWindowOptions{showtitle}
-
-\universityLayout{fontsize=Large}
-\titleLayout{fontsize=LARGE}
-\authorLayout{fontsize=Large}
-\tocLayout{fontsize=Large,color=aeb}
-\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
-\subsectionLayout{indent=-31.25pt,color=aeb}
-\subsubsectionLayout{indent=0pt,color=aeb}
-\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}
-
-%\pagestyle{empty}
-%\parindent0pt\parskip\medskipamount
-
-\definePath\bgPath{"C:/Users/Public/Documents/%
- ManualBGs/Manual_BG_Print_AeB.pdf"}
-\begin{docassembly}
-\addWatermarkFromFile({
- bOnTop:false,
- cDIPath: \bgPath
-});
-\executeSave();
-\end{docassembly}
-
-\begin{document}
-
-\maketitle
-
-\selectColors{linkColor=black}
-\tableofcontents
-\selectColors{linkColor=webgreen}
-
-\section{Introduction}
-
-The \textbf{{\AcroFLeX}} Graphing Bundle is used to create a
-\emph{graphing screen} that can be incorporated into a PDF document
-and viewed within \app{Adobe Acrobat Reader}, version 9.0 or later. The graphing
-screen can be interactive or non-interactive.
-
-For the interactive graphing screen, the user can enter an
-expression representing a function of a single variable $x$, a polar
-function of $t$, or a set of parametric equations that are functions
-of $t$. Various controls are provided to change the viewing window,
-for shifting horizontally and vertically, and for zooming in or out.
-
-For the non-interactive graphing screen, the screen is populated
-when the user clicks a link created by \cs{sgraphLink}.
-\cs{sgraphLink} passes such information as the function,
-domain, and range to the graphing routines of {\AcroFLeX}.
-
-In this version of {\AcroFLeX}, up to four functions can be graphed
-and four sets of plotted points can be displayed, on one graphing
-screen.
-
-The graph screen itself is actually a SWF file, named
-\texttt{acroflex.swf}. This SWF file is part of the {\AcroFLeX}
-distribution. This package uses the \pkg{rmannot} package, also
-written by this author, to create rich media annotations, to embed
-\texttt{acroflex.swf} in the PDF document, and to display the SWF through
-the rich media annotation.
-
-\subsection{Background}
-
-Version 9 of Acrobat/Adobe Reader introduces the \textit{rich media
-annotation} which plays FLV movies, and SWF animations, and MP3 files.\footnote{%
-The rich media annotation is introduced in
-\textsl{Adobe Supplement to the ISO 32000}, which documents
-BaseLevel 1.7, ExtensionLevel 3, the Adobe's extensions to PDF~1.7.}
-Acrobat/Adobe Reader also provides a scripting bridge between
-JavaScript for Acrobat, and ActionScript, the scripting language of
-Flash player. This bridge enables the PDF and the Flash widget,
-embedded in the rich media annotation, to communicate. The scripting
-bridge opens up wonderful opportunities for applications to the
-education sector. The {\AcroFLeX} Graphing Bundle is one such
-application of the new PDF-Flash connection to education.
-
-\textbf{{\AcroFLeX}} uses the commercial product Adobe FLEX
-Builder~3 and FLEX~3 SDK to produce Flash widgets, and the AeB to
-create PDF documents with appropriate JavaScript to communicate with
-the Flash widget. FLEX Builder~3 is currently free for students and
-educators, the FLEX 3 SDK is free to all.
-
-% This style file defines some basic controls for
-% \textbf{{\AcroFLeX} Graphing} for controlling graphical SWF files
-% for graphing.
-%
-% These commands are general {\LaTeX} commands, that require no special driver, so
-% they can be used by, for example, pdftex; however, we use SWF files to produce
-% the graphing screen with the built-in ActionScript to communicate with the PDF.
-% For this, you will need Acrobat 9 Pro. In that case, you might as well use the
-% Acrobat Distiller to produce your PDF, but it is not necessary.
-
-\subsection{What is \texorpdfstring{{\AcroFLeX}}{AcroFLeX}?}
-
-The word \textbf{\AcroFLeX} is meant to convey a merging of two computer technologies:
-\begin{itemize}
-\item \textbf{Acro}: connotes both \textbf{Adobe Acrobat} (\textbf{Adobe Reader})
-and \textbf{{Acro\negthinspace\TeX}} (as in the
-\textbf{{Acro\negthinspace\TeX} eDucation Bundle} or, just \textbf{AeB}).
-\item \textbf{F\kern-.1667em\lower.5ex\hbox{L}\kern-.3eme\kern-.125emX\@}: connotes
- \textbf{Adobe FLEX 3}. FLEX 3 is used to create SWF files to interact with the user.
- In the case of graphing, plotting information is passed from Acrobat, via JavaScript,
- to the Flash widget. ActionScript takes the data, and plots the points provided, and
- connects them with a smooth curve.
-\end{itemize}
-
-
-\section{Requirements}
-
-In this section we list the requirements for this package.
-
-\subsection{{\LaTeX} Package Requirements}
-
-The preamble of the demo file afgraph.tex lists:
-\begin{Verbatim}[xleftmargin=\amtIndent,numbers=left]
-\usepackage[%
- driver=dvips,
- web={nodirectory,pro,tight,usesf},
- eforms,exerquiz,dljslib={ImplMulti},
- graphicxsp={showembeds}
-]{aeb_pro}
-\usepackage{acroflex}
-\end{Verbatim}
-Let me comment on each of these lines.
-\begin{itemize}
- \item Line~(7): Of course, we use the \pkg{acroflex} package. The
- \pkg{acroflex} package \textit{requires} the \pkg{rmannot} package.
- The latter package is the one that creates the rich media annotation,
- embeds the graphing Flash widget, acroflex.swf, and displays it. The
- \pkg{rmannot} package is the only one listed in \texttt{acroflex.dtx}
- as required, however, more packages are really required, as discussed
- in the next items.
-
- \item Lines (1)--(6): The \pkg{aeb\_pro} package is \textit{strongly
- recommended}. The {\AcroFLeX} Graphing Bundle uses the
- \texttt{willClose} environment to assure the document will behave
- properly when the user closes the document.
-
- The options use the so-called \textbf{AeB Control Central} that represent
- a convenient way to input the other required packages (in optimal order)
- needed by the \pkg{acroflex} package.
-
- If \texttt{aeb\_pro} is not used, then the individual
- required packages must be input using the \cs{usepackage}
- mechanism.
-
- We input the \texttt{aeb\_pro} package before the
- \pkg{acroflex} package.
-
- We now comment on each of the options used in the \texttt{aeb\_pro}
- package:
- \begin{description}
- \item[Line (2), the \texttt{driver} option:] This system uses \app{Acrobat
- Distiller}, which distills a PostScript file. The driver values
- this package uses are \texttt{dvips} and \texttt{dvipsone}.
- Setting the driver is important because the dvi-to-ps application
- (\texttt{dvips} and \texttt{dvipsone}) consumes the dvi file
- produced by the {\TeX} compiler and writes a PostScript file that
- Acrobat Distiller consumes.
-
- \item [Line (3), the \texttt{web} option:] The \texttt{web} package
- is not really required. It is used to create a PDF page size
- convenient to view on a computer monitor. This package has many
- options and features for the document author to design a document
- for screen---or for paper---viewing.
-
- The \pkg{web} package brings in the \pkg{hyperref} package, which is
- a \textit{required package}. If \texttt{web} is not used,
- \pkg{hyperref} needs to be input.
-
- \item [Line (4), the \texttt{eforms} option:] A \textit{required}
- package. This package provides form field and link support for
- the {\AcroFLeX} Graphing Bundle. The \texttt{eforms}, in turn,
- inputs the \texttt{insdljs} package, which provides support for
- document-level JavaScript. It is the document-level JavaScript
- where much of the work is done: parsing input, calculating
- graphing data, and sending this data off to the
- \texttt{acroflex.swf} widget for display.
-
- \item [Line (4), the \texttt{exerquiz} option:] A \textit{required}
- package. The \texttt{exerquiz} package has several function
- parsing methods defined in its document-level JavaScript.
- {\AcroFLeX} uses these parsing routines. One of these days, I'll
- separate out the parsing routines from \texttt{exerquiz}, but not
- now.
-
- \item [Line (4), the \texttt{dljslib} option:] An optional, \emph{but
- recommended} package. We use this package for its
- \texttt{ImplMulti} option. This option simplifies the problem of
- entering functional expressions. Without the \texttt{ImplMulti},
- to enter $2x\sin^2(2x)$, the user must type explicit
- multiplications, \verb!2*x*(sin(2*x))^2!, with the
- \texttt{ImplMulti} option, the user needs only enter
- \verb!2xsin^2(2x)!.
-
- \item [Line (5), the \texttt{graphicxsp} option:] The \texttt{graphicxsp} is a
- \textit{required} package of \pkg{rmannot}, but we input it
- earlier so we can set its options through the \textbf{AeB Control
- Central} (part of AeB Pro). The \texttt{graphicxsp} package, part
- of the AeB Pro Bundle, provides embedding of poster graphics for
- a rich media annotation. A poster graphic is the appearance you
- see when the annotation is not activated.
-
- \end{description}
-\end{itemize}
-
-\subsection{PDF Creator Requirements}
-
-This package requires Acrobat Distiller 9.0 (or later) to convert
-PostScript files to PDF. Because this package uses \pkg{rmannot}
-to create rich media annotations, there is also a requirement that
-the Distiller must be opened using the \texttt{-F} command line
-flag. See the documentation of the \pkg{rmannot} package for more
-details.
-
-\subsection{Installation}
-
-The installation of the \pkg{acroflex} package is
-straightforward. Place \texttt{acroflex.zip} in the search path of
-your {\TeX} system and unzip. Unzipping creates a folder named
-\pkg{acroflex}. Refresh your filename database, if your system
-requires it.
-
-Accompanying the distribution is a file named \texttt{acroflex.cfg}.
-Open this file in your favorite text editor and you see the
-following lines.
-\begin{Verbatim}
- %
- % AcroFleX Graphing Bundle Configuration File
- % D. P. Story, dpstory@acrotex.net
- %
- \pathToAcroFlex{C:/acrotex/aebpro/acroflex/swf}
-\end{Verbatim}
-Edit the argument of \cs{pathToAcroFlex} (defined in the
-\pkg{acroflex} package) to the path of the folder that contains
-the \texttt{acroflex.swf} Flash file. Save and close
-\texttt{acroflex.cfg}.
-
-Of course, you need to install the latest versions of AeB (the
-{\AcroTeX} eDucation Bundle), AeB Pro, \texttt{graphicxsp}, and
-\pkg{rmannot}. Follow the package documentation closely for
-installation, some of the packages require that certain JavaScript
-file be installed.
-
-
-\section{The \texorpdfstring{\AcroFLeX}{AcroFLeX} Graphing System}
-
-This package defines several document scripts, the two primary ones are
-\texttt{Graph\_xy()} and \texttt{Graph\_xyt()}, the others support these two.
-\texttt{Graph\_xy()} and \texttt{Graph\_xyt()} take the data passed to it,
-parse it, create plot data, and send it off to the {\AcroFLeX} graphing
-widget to graph the data by way of the infamous scripting bridge. Details of
-these functions can be found in the documentation in the
-\texttt{acroflex.dtx} file.
-
-In the {\AcroFLeX} graphing system there are three modes of
-operation: interactive, populate, and silent.
-\begin{itemize}
-\item \textbf{Interactive:} This occurs when the user enters a
-function through the UI.
-
-The following controls are \emph{required}:
-\begin{Verbatim}
- \funcInputField, \graphBtn, \numPoints
- \domMin, \domMax, \rngMin, \rngMax,
-\end{Verbatim}
-If parametric or polar graphs are to be used,
-then \cs{domMinP} and \cs{domMaxP} are also required. The other
-controls are \emph{optional}:
-\begin{Verbatim}
- \graphClrBtn
- \amtShift (\hShiftL, \hShiftR, \vShiftD, \vShiftU)
- \zoomInOut, \savedelSelBtn, \functionSelect
-\end{Verbatim}
-The \cs{graphClrBtn} button is recommended, though not required.
-All these commands will be discussed in detail in the pages that follow.
-
-\item \textbf{Populate:} The populate mode occurs when the graphing
- parameters are passed to \texttt{Graph\_xy} (or \texttt{Graph\_xyt}) by
- \cs{sgraphLink} (or some other command). All the essential information
- is passed as arguments. The target graphing screen has all the required
- controls, as listed above. The command initiating the graphing must set
- the \texttt{graph\_props.populate} property to \texttt{true}. In this
- case the graphing data populate the required fields and the graph will
- be drawn. It is the document author's responsibility to only use
- populate on graphing screens that have all the required control fields.
-
- Populate behaves exactly like interactive, but the graphing data is
- passed to the graphing routines in pre-packaged form, prepared by the
- document author; the user, however, can manipulate the curve once it
- appears.
-
- The required controls are the same as the interactive mode.
-
-\item \textbf{Silent:} In the silent or \emph{non-interactive} mode, there
- must be no controls other than \cs{graphClrBtn}. Basically, the
- document author prepares some pre-packaged graphs to be displayed to
- the user, without interaction. These may go along with a tutorial
- discussion symmetry, periodicity, tangent lines, etc.
-
- If the document author wants the user to interact with the graph, the
- required controls need to be supplied and the
- \texttt{graph\_props.populate} property needs to be set to \texttt{true}.
- That is, use the populate mode.
-
-\end{itemize}
-
-\subsection{Setting up the Graphing Screen}
-
-It should be a hard and fast rule that all content concerning a
-graphing screen should occur on the same page as the rich media
-annotation that displays the graphing screen. Should discussion
-cross page boundaries, create another graphing screen for that page.
-Never fear, the {\AcroFLeX} graphing widget is only embedded once,
-so adding more screens does not bloat the size of the file.
-
-There are three commands to set up an {\AcroFLeX} graph screen:
-\Com{dimScreenGraph}, \Com{graphName} and \Com{graphScreen}. The use of
-the command \cs{dimScreenGraph} is not required, but recommended.
-\takeMeasure{\string\graphScreen[\meta{rma\_options}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\dimScreenGraph{!meta(width)}{!meta(height)}
-\graphName{!meta(unique_name)}
-\graphScreen[!meta(rma_options)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-
-\CmdDescription We describe each of these three, and their parameters.
-\begin{itemize}
- \item \cs{dimScreenGraph}: This command is a convenient way of setting the dimensions
- of the graphing screen. You specify the width of the screen using the \meta{width}
- parameter and the height of the screen using the \meta{height} parameter. These values
- are passed through a \cs{setlength}, so simple calculations on the dimension can be performed
- on the parameters. (The \texttt{calc} package is used by the web package.) This command then
- defines macros \Com{hScreenGraph} and \Com{vScreenGraph} to hold these two dimensions, respectively.
- \cs{hScreenGraph} and \cs{vScreenGraph} can be used in \cs{graphScreen}, or in setting up
- \texttt{minipage}s based on these lengths, for example.
-
- \item[] If the aspect ratio of all your graphing screens is going to be the same, then
- it suffices to use \cs{dimScreenGraph} only once in the document.
-
- \item \cs{graphName}: Use this command to define a unique name for this graphing screen. Each
- screen must have a different name. This command defines the text macro \Com{afgraphName}, which
- expands to the given name.
-
- \item \cs{graphScreen}: This is the main command of this package,
- it's the one that creates a rich media annotation and associates
- it with the {\AcroFLeX} Graphing widget. It has three parameters:
- %\begin{aebQuote}
- \begin{description}\def\NH{\hspace{-\labelsep}}
- \item \NH\meta{rma\_options} is optional and just passes to the underlying
- command \Com{rmAnnot} (defined in the \pkg{rmannot}
- package) that actually creates the rich media annotation.
- The most ``important'' key-value pair, for this package,
- is the \texttt{poster} key, through this key, a poster can
- be associated with the annotation.
- \item \NH\meta{width} is the width of the graph screen, if \cs{dimScreenGraph} was used,
- just use \cs{hScreenGraph} as this value.
- \item\NH\meta{height} is height the screen of the graph screen, if \cs{dimScreenGraph} was used,
- just use \cs{vScreenGraph} as this value.
- \end{description}
-% \end{aebQuote}
-\end{itemize}
-The \cs{graphScreen} can be resized using \cs{resizebox} or
-\cs{scalebox} (from the \texttt{graphicx} package) to obtain a
-larger or smaller graph screen with the same aspect ratio.
-
-
-The following is an example of the usage of each of these three commands. Note that the
-height is three-fourths that of the width.
-
-\takeMeasure{\string\graphScreen[poster=aflogo]\{\string\hScreenGraph\}\{\string\vScreenGraph\}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\dimScreenGraph{186bp}{186bp*3/4}
-\graphName{graph1}
-\graphScreen[poster=aflogo]{\hScreenGraph}{\vScreenGraph}
-\end{dCmd*}
-
-\paragraph*{Graphing Screen in a Floating Window.} The graphing
-window can appear in a floating window as well. The
-\Com{iconFloatGraphScreen} command is used to create such a screen.
-
-\takeMeasure{\string\iconFloatGraphScreen[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\iconFloatGraphScreen[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\PD The command has three parameters. The first optional one is passed as the
-first optional parameter of the underlying \cs{graphScreen} command. The
-\cs{graphScreen} command uses \Com{hScreenGraph} and \Com{vScreenGraph},
-defined through the \cs{dimScreenGraph} command, to set the dimensions of the
-graph screen. The graph screen is then resized using \Com{resizebox} from the
-\texttt{graphicx} package. The other two parameters, \meta{width} and
-\meta{height}, are simply passed to \cs{resizebox}. See the documentation on
-\cs{resizebox} for details on these parameters.
-
-For example,\takeMeasure{\string\iconFloatGraphScreen[poster=aflogo]\{40bp\}\{!\}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\iconFloatGraphScreen[poster=aflogo]{40bp}{!}
-\end{dCmd*}
-\noindent The first parameter is used to define a poster of the icon, the
-second parameter is \texttt{40bp} which means to resize the graphic
-to a width of \texttt{40bp}, the third parameter of exclamation
-point (!) signals \cs{resizebox} to maintain the aspect ratio of the
-graphic.
-
-The \cs{iconFloatGraphScreen} command is implemented by creating a
-rich media annotation for the {\AcroFLeX} Graphing widget, with a
-form field button on top of it that is transparent. Pressing on the
-icon is actually pressing on the button. The button action activates
-the graphing screen if it is not activated, and deactivates it if it
-is activated. The graphing screen might be the target of graphing
-data sent to it by the \cs{sgraphLink} command, see
-\hyperref[sgraphlink]{Section~\ref*{sgraphlink}},
-page~\pageref*{sgraphlink}, or through the graphing screen controls,
-these are explained next.
-
-\subsection{Graphing Screen Controls}
-
-The controls described in this section are used for interactive and
-populate modes.
-
-\subsubsection{Required Controls}
-
-For interactive or populate mode, in addition to \cs{graphScreen},
-several controls are required so the user can manipulate the graph.
-
-\takeMeasure{\string\funcInputField[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\funcInputField[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The field created by
-\cs{funcInputField}\footnote{The command was originally misnamed
-\cs{fileInputField} and is still recognized by the {\AcroFLeX}
-package; however, document authors should use the command
-\cs{funcInputField}.} is used to enter a function or a set of points
-to be graphed. The function is parsed by the \texttt{exerquiz}
-routines, so the same syntax that is used for \texttt{exerquiz}
-quizzes and short quizzes is used. The \meta{key\_values} are
-passed to the underlining text field and can be used to change the
-appearance of the field, see the \texttt{eformman.pdf} for more
-information. The \meta{width} and \meta{height} are the
-width and height, respectively, of the text field.
-
-\takeMeasure{\string\graphBtn[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\graphBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The graph button. Once the user has entered a
-required data into the required fields, the user press this button
-and the graph appears in the graph screen. The parameters are the
-same as for \cs{funcInputField}, the descriptions are the same.
-
-\takeMeasure{\string\numPoints[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\numPoints[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription This text field displays the number of points to be
-plotted. It is editable, the user can change this value. The
-parameters are the same as for \cs{funcInputField}, the descriptions
-are the same.
-
-
-\takeMeasure{\string\domMin[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\domMin[!meta(key_values)]{!meta(width)}{!meta(height)}
-\domMax[!meta(key_values)]{!meta(width)}{!meta(height)}
-\rngMin[!meta(key_values)]{!meta(width)}{!meta(height)}
-\rngMax[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The graphing window is set by these four text
-fields. When the curve is graphed, only the rectangular window,
-\begin{quote}
-$[\,\cs{domMin}, \cs{domMax}\,] \times [\,\cs{rngMin},
-\cs{rngMax}\,]$
-\end{quote}
-is displayed.\footnote {By this notation, I mean the
-intervals determined by the values of these intervals.} The
-parameters are the same as for \cs{funcInputField}, the descriptions
-are the same.
-
-If parametric and polar graphing is required of the user,
-\cs{domMinP} and \cs{domMaxP} are required as well.
-
-\takeMeasure{\string\domMinP[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\domMinP[!meta(key_values)]{!meta(width)}{!meta(height)}
-\domMaxP[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-\CmdDescription The interval $[\,\cs{domMinP}, \cs{domMaxP}\,]$ is
-the interval over which a set of parametric equations is traced; in
-the case of polar functions, this interval is used for the domain of
-the polar function. The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Setting the default values.} Whereas it is possible to
-set the default values of the fields just described, a more
-convenient method is used.
-
-\takeMeasure{\string\defaultDomRng%
-\{\meta{x\_min}\}\{\meta{x\_max}\}\{\meta{y\_min}\}\{\meta{y\_max}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultFunction{!meta(!upshape(function|points))}
-\defaultNumPoints{!meta(postive_integer)}
-\defaultDomRng{!meta(x_min)}{!meta(x_max)}{!meta(y_min)}{!meta(y_max)}
-\defaultDomP{!meta(t_min)}{!meta(t_max)}
-\end{dCmd}
-
-\noindent These can be executed, along with \cs{graphName}, just before the
-\cs{graphScreen} command. The values of their parameters will then populate
-the corresponding fields as default values.
-
-The following are the default values of all the required fields, as
-defined by the \pkg{acroflex} package. Note that all of these are
-parsed (with the exception of the number of points) using
-\texttt{exerquiz}'s parsing routines; consequently, a value such as
-\texttt{2*PI} is perfectly legal.
-
-\takeMeasure{\string\defaultDomRng\darg{-2}\darg{2}\darg{0}\darg{4}}
-\begin{dCmd*}{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultFunction{x^2}
-\defaultNumPoints{40}
-\defaultDomRng{-2}{2}{0}{4}
-\defaultDomP{0}{2*PI}
-\end{dCmd*}
-
-\subsubsection{Optional Controls}
-
-There are several other optional controls that may be useful in manipulating
-a graph.
-
-\takeMeasure{\string\graphClrBtn[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\graphClrBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-On clicking this button, the current graphing screen is cleared of
-all graphs and plotted points. Shift-clicking this button
-deactivates the graphing screen, and the annotation's poster
-appears.
-
-\paragraph*{Multiple Plots.} By using the \Com{functionSelect} combo
-box, the user can graph multiple curves.
-
-\takeMeasure{\string\functionSelect[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\savedelSelBtn[!meta(key_values)]{!meta(width)}{!meta(height)}
-\functionSelect[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-The \cs{functionSelect} combo box serves several purposes. It consists of
-eight items that appear as \texttt{Curve\,1}, \texttt{Curve\,2},
-\texttt{Curve\,3}, \texttt{Curve\,4}, \texttt{Plot\,1}, \texttt{Plot\,2},
-\texttt{Plot\,3}, \texttt{Plot\,4}. When this combo box is present, the user
-is able to graph multiple curves and plots. Changing the combo box to
-\texttt{Curve\,2}, for example, and pressing the \cs{graphBtn} button, the
-function will be graphed on \texttt{Curve\,2}. There are four curves possible,
-and four sets of plotted points. The different curves and plots are color
-coded.
-
-When the \cs{savedelSelBtn} is also present, the user can click on
-it and save the function definition under that curve or plot. These
-expressions will only be saved during the current viewing session in
-\app{Acrobat Reader}, but if the user is on Acrobat, the PDF can be saved
-and the values added to the combo list will be saved as well.
-
-The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Horizontal and Vertical Shifting.} There are several
-controls that shift the graphing window vertically or horizontally.
-
-\takeMeasure{\string\amtShift[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\amtShift[!meta(key_values)]{!meta(width)}{!meta(height)}
-\hShiftL{!meta(text)}
-\hShiftR{!meta(text)}
-\vShiftU{!meta(text)}
-\vShiftD{!meta(text)}
-\end{dCmd}
-The \cs{amtShift} is a text field, its value is a positive number
-that will be used to shift the graphing window horizontally or
-vertically. The user can change this value. The parameters are the
-same as for \cs{funcInputField}, the descriptions are the same.
-
-The other four commands are implemented as links, then clicked, the
-graphing window moves the amount specified in \cs{amtShift} field
-left (\cs{hShiftL}), right (\cs{hShiftR}), up (\cs{vShiftU}) or down
-(\cs{vShiftD}). The argument \meta{text} is the text to be used
-to identify the link.
-
-\paragraph*{Zoom, zoom, zoom.}
-
-The user can be allowed to optionally zoom the graph out or in by providing the
-control \Com{zoomInOut}.
-
-\takeMeasure{\string\zoomInOut[\meta{key\_values}]\{\meta{width}\}\{\meta{height}\}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\zoomInOut[!meta(key_values)]{!meta(width)}{!meta(height)}
-\end{dCmd}
-Click the \cs{zoomInOut} button zooms out by an amount shown in the
-\cs{amtShift} field; shift-clicking will zoom in by the amount shown
-in the \cs{amtShift} field. The parameters are the same as for
-\cs{funcInputField}, the descriptions are the same.
-
-\paragraph*{Setting the default values.} As with the required controls, the optional ones
-can be given default values through convenience macros.
-
-
-\takeMeasure{\string\defaultShiftAmt\darg{\meta{positive\_number}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defaultShiftAmt{!meta(positive_number)}
-\defaultShiftAmt{1}
-\end{dCmd}
-The \cs{defaultShiftAmt} is used to set the default value of the \cs{amtShift} field; the default
-value is \cs{defaultShiftAmt\darg{1}}.
-
-The \cs{functionSelect} lists four curves and four plots. The text can be changed by
-through the following text macros. Each command is followed by its default definition.
-\takeMeasure{\string\afCurve\darg{\meta{name\_for\_curve}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\afCurve{!meta(name_for_curve)}
-\afCurve{Curve}
-\afPoint{!meta(name_for_point)}
-\afPoint{Point}
-\afUnused{!meta(unused)}
-\afUnused{--unused}
-\end{dCmd}
-The definitions values of \cs{afCurve} and \cs{afPoint} are the
-target of several search using regular expressions. If the values of
-\cs{afCurve} and \cs{afPoint} are too complex, the regular
-expression search may fail. Try to keep these definitions to ASCII
-characters.
-
-\subsection{Populate and Silent Linking}
-
-The previous section details the interactive mode, where the
-\cs{graphScreen} is present with all its required controls, and
-possibly some optional controls. Curves are generated purely through
-the user interface, that is, the user enters data into the various
-form fields, clicks the \cs{graphBtn}, and \textsl{voil\`{a}}, the
-graph is drawn!
-
-In this section, the populate mode is discussed as well as silent mode.
-
-\subsection{Graphing with \texorpdfstring{\protect\cs{sgraphLink}}{\CMD{sgraphLink}}}\label{sgraphlink}
-
-The document author can prepare function/points to be graphed, along
-with all the essential data needed to view the graph. For populate,
-the graphing data populate the required text field, and is available
-for the user then to manipulate. The population of an interactive
-graphing screen is done though a special link, the \cs{sgraphLink}.
-(The ``s'' in \cs{sgraphLink} stands for ``silent,'' but that was
-before I made the design decision to have a populate mode.)
-
-The syntax for \cs{sgraphLink} is
-\takeMeasure{\string\sgraphLink[\meta{appr}]\darg{\meta{graph\_key\_vals}}%
-\darg{\meta{func{\upshape|}points}}\darg{\meta{text}}}
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\sgraphLink[!meta(appr)]{!meta(graph_key_vals)}{!meta(func(!upshape|)points)}{!meta(text)}
-\end{dCmd}
-\PD The command takes four parameters, the first is the usual
-optional parameter that can be used to change the appearance of the
-link. The others we present in detail.
-\begin{description}
- \item [\texttt{[\meta{appr}]}:] Key-value pairs that are used to change the appearance of the link.
- \item [\meta{graph\_key\_vals}:] Key-value pairs, some of which are used on the {\LaTeX} side,
- some on the PDF side, while others on SWF side.
- \begin{description}
- \item\texttt{graph=\meta{value}}: The value of this key determines which
- \emph{chart series} (FLEX terminology) the data will appear
- on. The values of this key are:
- \begin{description}
- \item [\texttt{c1}, \texttt{c2}, \texttt{c3}, and \texttt{c4}:]
- Use one of these values to graph a function, a polar function,
- or a set of parametric functions. Up to four curves can be displayed
- on the graphing screen at once. These values are displayed using
- the \texttt{LinearSeries} (FLEX terminology).
- \item [\texttt{a1}, \texttt{a2}, \texttt{a3}, and \texttt{a4}:]
- Same as above, but the region between the horizontal axis, and
- the graph is shaded in. These values are displayed using
- the \texttt{AreaSeries} (FLEX terminology).
- \item [\texttt{p1}, \texttt{p2}, \texttt{p3}, and \texttt{p4}:]
- Use one of these values to plot points. These values are displayed using
- the \texttt{PlotSeries} (FLEX terminology).
- \end{description}
- Thus, \texttt{graph=c2} tells the graphing
- routines of {\AcroFLeX} and the {\AcroFLeX} Graphing widget
- to display this data on series \texttt{c2}.
-
- If two curves or plots have the same value for
- \texttt{graph}, then the one graphed last will
- overwrite the earlier one. If you want both curves
- or plots to appear on the graph together, give them
- different \texttt{graph} values.
-
- When this key is not given a value, the default is
- \texttt{c1}.
-
- \item [\texttt{type=\meta{\upshape{cart|para|polar}}}:] This key declares the type of curve,
- possible values are \texttt{cart}, \texttt{para}, and
- \texttt{polar}. This key is used mostly internally, and is
- normally not used. There is one situation that it is used. When
- defining a polar function, use \texttt{type=polar}. Thus, to
- define a polar function, type something like this:
-
-\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\footnotesize]
-\sgraphLink{type=polar,xInterval={[-1.5,1.5]},yInterval={[-1,2]},
- tInterval={[0,2*PI]},points=40,populate}
- {1+sin(t)}{$r = 1 + \sin(\theta)$ }
-\end{Verbatim}
-
- Note the explicit use of \texttt{type=polar}; the
- parsing can identify a function of $x$ and a set of
- parametric equations that are function of $t$, but help
- is needed for polar.
-
- \item [\texttt{populate=\meta{\upshape{true|false}}}:] Possible
- values are \texttt{true} or \texttt{false}, typing
- \texttt{populate} is the same as \texttt{populate=true}. This
- switch signals the graphing routines on the PDF side to populate
- the required fields with the graphing data. The default is
- \texttt{populate=false}, do not populate, use silent mode.
-
- \textbf{Populate versus Silent Modes:} The \texttt{populate} key
- is how populate mode is distinguished from silent mode:
- \texttt{populate=true} is populate mode, while \texttt{populate=false}
- (or the populate parameter not listed) is silent mode. In
- populate mode, the target graphing screen must have all required
- control fields; in silent mode, the only control should be the
- \cs{graphClrBtn} button.
-
- \item [\texttt{connectwith=\meta{\upshape{curve|segment}}}:] The key
- determines the method used to connect consecutive points on the
- graph, possible values are \texttt{curve} and \texttt{segment}.
- This value is passed to the {\AcroFLeX} graphing widget. For
- function of $x$, the default is \texttt{curve}; otherwise, the
- default is \texttt{segment}. This value is ignored when the
- \texttt{graph} property signals plotting
- (\texttt{p1}--\texttt{p4}).
-
- \item [\texttt{points=\meta{num}}:] The number of points to generate for
- plotting the current function. When the \texttt{graph}
- property signals plotting (\texttt{p1}--\texttt{p4}), the
- \texttt{points} property is ignored. If the graph property
- signals graphing (\texttt{c1}--\texttt{c4};
- \texttt{a1}--\texttt{a4}), and argument \texttt{\#3} is a
- set of rectangular points, the \texttt{points} property must
- either not be present, or set to zero (\texttt{points=0}).
-
- \item [\texttt{xInterval=\darg{[a,b]}}:] (Required) An interval on the $x$-axis, the
- interval must be in the form \verb!{[a,b]}!, for example,
- \texttt{xInterval=\darg{[0,1]}}. For functions of $x$, this interval
- represents the domain over which the function is graphed. It
- also represents the left and right boundaries of the graphing
- window.
-
- \textbf{Important:} The \texttt{xkeyval} package
- parses these parameters. Because the interval notation
- contains a comma (,), the whole interval must be enclosed in
- braces so the parsing will be correct, as illustrated above.
-
- \item [\texttt{yInterval=\darg{[a,b]}}:] (Required) An interval on the $y$-axis, the
- interval must be in the form \verb!{[a,b]}!, for
- example, \verb!yInterval={[0,1]}!. It represents
- the upper and lower boundaries of the graphing window.
-
- As with \texttt{xInterval}, the interval needs to be
- enclosed in braces.
-
- \item [\texttt{tInterval=\darg{[a,b]}}:] When plotting a set of parametric equations, or
- a polar function, this interval is required as a parameter. The
- interval is of the form \verb!{[a,b]}!, including the braces,
- and represents the domain of the parameter. The
- \texttt{tInterval} must not be included otherwise, that is, for
- graphing a function of $x$. Some early {\LaTeX} parsing tests
- whether the value of \texttt{tInterval} is empty (the default)
- or not. If nonempty, we assume the graphing is parametric or
- polar. For point plotting, \texttt{tInterval} must not be
- included in the parameter list.
-
- \item [\texttt{xPlot=\darg{[a,b]}}:] The parameter \texttt{xInterval} determines
- the left and right boundaries of the graphing window; it also
- determines the interval over which the function is to be plotted.
- The \texttt{xPlot} separates these two functionalities; the value
- of \texttt{xPlot} is an interval \verb![a,b]!, over which the
- function will be plotted. Thus, \verb!xInterval={[-2,2]}! specifies
- the scaling of the x-axis; while \verb!xPlot={[0,1]}! defines
- the interval to plot the given function. If \texttt{xPlot} is not
- specified, then \texttt{xInterval} will be used.
-
- \item [\texttt{noquotes=\meta{\upshape{true|false}}}:] When argument \texttt{\#3} is parsed, it
- is, by default, placed in double quotes, for example,
- \verb!"x^2"!; however, there are some situations where the
- double quotes should not be used. (See the \texttt{afgraph.tex}
- file for one such example.) Possible values for
- \texttt{noquotes} are \texttt{true} and \texttt{false}.
- Including \texttt{noquotes} in the option list is equivalent to
- \texttt{noquotes=true}. The default is \texttt{noquotes=false}.
-
- \item [\texttt{wait=\meta{\upshape{true|false}}}:] Including
- \texttt{wait} in the option list is equivalent to
- \texttt{wait=true}. The default is \texttt{wait=false}. When
- using \cs{defineGraphJS} to create a Java\-Script action that will
- execute multiple calls to \texttt{Graph\_xy} or
- \texttt{Graph\_xyt}, list \texttt{wait} in the option list. This
- will cause a slight delay that allows the graphing screen to
- become activated, (if not already activated) before the graphing
- data is created and sent to the {\AcroFLeX} graphing widget. See
- the example below in
- \hyperref[defineGraphJS]{Section~\ref*{defineGraphJS}},
- page~\pageref*{defineGraphJS}.
- \end{description}
- \item [\meta{func{\upshape|}points}:] This argument can be a function or a set of points.
- \begin{description}
- \item [\meta{func}:] A function can be three types: (1) a function of $x$; (2)
- a function of $t$; and a pair of function of $t$. If there is a
- single function of $t$, case (2), that is interpreted as a polar
- function, and graphed accordingly. The pair of functions must be
- functions of $t$ and separated by a semi-colon (;); these are
- then interpreted as a set of parametric equations. For example,
- \verb!x^2! would be graphed as a parabola; \verb!1+sin(t)! would
- be graphed as a Cardioid in the polar coordinate system; and
- \verb!cos(t);sin(t)! would be graphed as a circle.
-
- \item [\meta{points}:] Points can be input as a semi-colon-delimited list of
- rectangular coordinates. For example, \verb!(1,2);(2,3);(5,6)!.
- Points can be plotted discretely, or plotted and connected with
- either a smooth curve, or line segments.
- \end{description}
- \item [\meta{text}:] The text that the link is attached to, when
- this text is clicked, the defined action of populating the graph
- occurs.
-\end{description}
-
-\subsection{Graphing with \texorpdfstring{\protect\cs{defineGraphJS}}{\CMD{defineGraphJS}}}\label{defineGraphJS}
-
-The \cs{defineGraphJS} command expands to either
-\texttt{Graph\_xy()} or \texttt{Graph\_xyt()}, and is essentially
-the code used by \cs{sgraphLink}. Use \cs{defineGraphJS} to create a
-custom link action or form field action to graph pre-packaged
-functions.
-
-\takeMeasure{\string\defineGraphJS\darg{\meta{graph\_key\_vals}}\darg{\meta{func{\upshape|}points}}\darg{\meta{command}}}%
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\defineGraphJS{!meta(graph_key_vals)}{!meta(func(!upshape|)points)}{!meta(command)}
-\end{dCmd}
-
-\CmdDescription \cs{defineGraphJS} defines a new command
-\cs{\meta{command}} what will expand to \texttt{Graph\_xy()} or
-\texttt{Graph\_xyt()} fully populated by its arguments. This command
-can be used to create new actions that involve multiple calls to the
-{\AcroFLeX} graphing routines.
-
-\PD There are three required parameters.
-\begin{description}
- \item [\meta{graph\_key\_vals}:] The same key-value pairs as
- described for \cs{sgraphLink}.
- \item [\meta{func{\upshape|}points}:] An expression representing a
- function of $x$, a polar function of $t$, a set of parametric
- equations, or a set of points.
- \item [\meta{command}:] A command that this JavaScript code will
- be saved under.
-\end{description}
-
-An example of usage can be found in \texttt{afgraph.tex}, we
-present another example here, also included in \texttt{afgraph.tex}, that
-might suggest the value of this command. We construct a link that
-graphs a function and plots discrete points.
-
-\begin{Verbatim}[fontsize=\footnotesize,xleftmargin=\amtIndent]
-\def\DomX{[0,2PI]}\def\DomY{[-1,1]}
-\defineGraphJS{graph=c1,wait,xInterval={\DomX},yInterval={\DomY},
- points=40}{sin(x)}{\mySineCurve}
-\defineGraphJS{graph=p1,wait,xInterval={\DomX},yInterval={\DomY}}
- {(0,sin(0));(PI/2,sin(PI/2));(PI,sin(PI));(3PI/2,sin(3PI/2));
- (2PI,sin(2PI))}{\mySinePoints}
-\setLinkText[\A{\JS{%
- \clearGraphJS\r
- \mySineCurve\r
- \mySinePoints
-}}]{Consider the sine function and indicated points}%
-\end{Verbatim}
-Note the use of the \texttt{wait} key in both the definitions to give the graphing screen
-time to be activated and ready to receive data. Observe also the list of points is given
-in symbolic form, we let JavaScript calculate the values for us.
-
-The command \Com{clearGraphJS} is used to clear the graphing screen before new curves are written
-to the screen. \cs{clearGraphJS} expands to the document JavaScript function that clears
-the graphing screen.
-
-\section{Customizations}
-
-There are a number of English phrases that appear as tooltips or as
-messages in alert dialog boxes, as a result, the acroflex package has
-a language option.
-\takeMeasure{\string\usepackage[lang=english|german]\darg{acroflex}}%
-\begin{dCmd}[commandchars=!()]{\wd\webtempboxi+2\fboxsep+2\fboxrule}
-\usepackage[lang=english|german]{acroflex}
-\end{dCmd}
-Specifying \texttt{english} as the value of \texttt{lang} inputs the
-file \texttt{afcustom\_us.def}, which normally does nothing; the
-definitions made in this file are the hard-wired defaults of the
-package. As an English speaker, you can edit this file, and improve
-the phrasing, if you wish. Specifying \texttt{german} as the value
-of \texttt{lang} inputs the file \texttt{afcustom\_de.def}; you can,
-of course, edit this file to get a preferred phrasing. If not lang
-key-value pair is specified, the \textsf{acroflex} package inputs
-the file \texttt{afcustom.def} (found in the examples folder). This
-file is intended for local use. Place it in the folder where the
-source file resides, modify it as desired to get custom messages.
-The file \texttt{afcustom.def} contains some instructions and guidelines for editing.
-
-\redpoint If the file \texttt{afcustom.def} is placed on the latex search
-path, it will be found and input for each source file; if
-\texttt{afcustom.def} is in the source file folder, it is this
-version that is found first and input.
-Should the phrases entered in \texttt{afcustom.def} require special
-accents, use the \texttt{unicode} option of \pkg{web} (which just
-passes the \texttt{unicode} option on to \pkg{hyperref}), and enter any
-special characters using {\LaTeX} notation. For example, to address
-my formerly favorite friend, J\"{u}rgen, we can write,
-\begin{Verbatim}[xleftmargin=\amtIndent]
-\ttgraphBtn{J\"{u}rgen, press to graph the function}
-\end{Verbatim}
-For the alert box messages, use JavaScript unicode notation, for example
-\begin{Verbatim}[xleftmargin=\amtIndent]
-\flJSStr{\af@badNumberMsg}{%
- J\u00FCrgen, the value input does not appear to be a number,
- please enter a number, or an expression that evaluates to a
- number. \dps}
-\end{Verbatim}
-This latter example does not require the \texttt{unicode} option.
-
-
-\newtopic Note that \cs{flJSStr} is a new command (defined in \pkg{insdljs}) that enables you
-to enter unicode, for example, \cs{u00FC} is the u-umlaut (\verb!\"{u}! or
-\"{u}). Also, within the argument string, you can use \cs{r} (carriage
-return) and \t (tab) to format your lines as needed. Double backslash
-\verb!\\! is converted into single backslash \verb!\!, so for example,
-\verb!\\AcroTeX! appears in the dialog box as \cs{AcroTeX}. The string
-argument is immediately expanded, so a command like \cs{dps} (in the above
-definition) gets expanded at definition time. Use \cs{protect} to delay the
-expansion until the tex compiler finally expands the JS command string
-(useful here, if \cs{dps} gets redefined).
-
-
-
-\bigskip\noindent
-That's all for now, I simply must get back to my retirement. \dps
-
-\end{document}
-
-
-\newpage
-\leftskip20pt\rightskip20pt\small
-\addcontentsline{toc}{section}{\protect\numberline{}Index}
-\markright{Index}
-\printindex