diff options
Diffstat (limited to 'macros/latex/contrib/acroflex/doc/acroflex_man.tex')
-rw-r--r-- | macros/latex/contrib/acroflex/doc/acroflex_man.tex | 1073 |
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 |