% makeindex < aebpro_man.idx > aebpro_man.ind
\documentclass{article}
%\usepackage[fleqn]{amsmath}
\usepackage[
    web={centertitlepage,designv,nodirectory,forcolorpaper,usesf,tight,latextoc,pro,usetemplates},
    eforms={useui},
    aebxmp
]{aeb_pro}
\usepackage{aeb_mlink}

\usepackage{myriadpro}

\usepackage{acroman}

\usepackage[active]{srcltx}

\DeclareDocInfo
{
    university={\AcroTeX.Net},
    title={The \texttt{aeb\_mlink} Package\texorpdfstring{\\[1em]}{: }AeB Pro Family},
    author={D. P. Story},
    email={dpstory@acrotex.net},
    subject={Test file for using E4X to update the XMP Data Model},
    keywords={XMP, E4X, Adobe Acrobat, JavaScript},
    copyrightStatus={True},
    copyrightNotice={Copyright (C) 2006-\the\year, D. P. Story},
    copyrightInfoURL={http://www.acrotex.net}
}
\nocopyright
\DeclareInitView{windowoptions=showtitle}

\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
   \kern-.6em \hbox{$\mathcal S$}}$}


\def\AcroTeX{Acro\negthinspace\TeX}

\def\unskipparskip{\vskip-\parskip}
\renewenvironment{sverbatim}
{\parskip0pt\noindent\small\verbatim}{\endverbatim\par\aftergroup\unskipparskip}
\renewenvironment{ssverbatim}
{\parskip0pt\noindent\footnotesize\verbatim}{\endverbatim\par\aftergroup\unskipparskip}

\renewcommand\hproportionwebauthor{.5}
\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}}

\makeatletter
\renewcommand{\paragraph}
    {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}}
\makeatother

\parindent0pt
\parskip\medskipamount


\begin{docassembly}
\addWatermarkFromFile({
    bOnTop:false,
    cDIPath:"/C/AcroTeX/AcroTeX/ManualBGs/Manual_BG_Print_AeB.pdf"
});
\end{docassembly}

\begin{document}

\maketitle

\selectColors{linkColor=black}

\tableofcontents

\selectColors{linkColor=webgreen}

\section{Introduction}



This package creates \underbar{m}ulti-line \underbar{link}s, a dream
that I have had for a number of years. The package \textsf{hyperref}
does create links, but generally these links cannot be broken across
lines, unless the application \textsf{pdflatex} is used to create a
PDF; however, since my workflow is primarily through Acrobat
Distiller, this does me little good.

This package uses the \texttt{QuadPoints} entry of the link
annotation dictionary to create a bounding region; consequently,
\textbf{this package requires Acrobat Distiller} to create a PDF. The
\texttt{QuadPoints} entry in the link annotation is a PDF 1.6
feature, so these multi-line links will work in Adobe Reader 7.0 or
later. If viewed in a version of Adobe Reader previous to 7.0, the
viewer will use the underlying bounding box, which in the case of
this package, is the entire page. \emph{Because the multi-line links don't
work for versions of Adobe Reader prior to 7.0, this package should
be used only when the reading audience has the required version}.


\section{Requirements}

The following {\LaTeX} packages are the major ones required by \texttt{aeb\_mlink}.
\begin{itemize}

    \item \textsf{eforms}\footnote{Part of the AeB distribution; download \texttt{acrotex\_pack.zip}
    or \texttt{acrotex\_exdoc.zip} to get get the most current version
    of AeB at \url{www.math.uakron.edu/~dpstory/webeq.html}.} -- provides form and link support, \`a la Acro\negthinspace\TeX.
    \item \textsf{hyperref}\footnote{Now part of
        the standard distribution of a {\TeX} system.} -- provides link support, including the commands \cs{hyperref}, \cs{hyperlink},
        \cs{href}, \cs{nameref}, \cs{Nameref}, and \cs{href}.
    \item \textsf{soul}\footnote{Located at \nolinkurl{CTAN: tex-archive/macros/latex/contrib/soul/}} -- a very nice package by Melchior FRANZ, used by \textsf{aeb\_mlink}
        to hyphenate links.

\end{itemize}

\section{Package options}

There are only two package options---the name of the dvi-to-ps converter application to be used---,
these are \texttt{dvipsone} and \texttt{dvips}.

\section{multi-line Link Commands}

We define five multi-line hypertext link commands, these are \cs{mlhypertext},
\cs{mlhyperlink}, \cs{mlhyperref}, \cs{mlnameref}, \cs{mlNameref}, and \cs{href}. The first is a basic
command that is used in the definitions of the other five.

\newtopic\textbf{Note:} Because of the way the bounding boxes are constructed, it is best that the bounding rectangle is set on
invisible, that is, the linewidth of the boundary line is zero. The \texttt{colorlinks} option of \textsf{hyperref} should be taken.

\exSrc{mlink_tst} The demo file that illustrate all the commands to follow is \texttt{mlink\_tst.tex}.

\paragraph*{\textbackslash{mlhypertext}.} A general purpose multi-line link command.

\newtopic\begin{dCmd}{.5\linewidth}
\mlhypertext[#1]{#2}
\end{dCmd}
\PD The first parameter is optional, and is used to set the appearance and the actions of the link.
The second parameter is the text around which the link is constructed.

\CmdDescription Sets a hypertext link having a default appearance, and no action. The default appearance
is the same as that of \cs{hyperlink}, the command from \textsf{hyperref}.
If \texttt{colorlinks} option was taken in the hyperref package, the text is colored \cs{@linkcolor} (usually red);
otherwise, the text is the default color at the time, and a boundary rectangle is created by AcroForms with color
\cs{@linkbordercolor} (usually red).

For example, the following link is constructed using
\cs{mlhypertext}: \mlhypertext[\A{\JS{app.alert("AcroTeX rocks!")}}]%
{Acrobat Distiller, version~7.0 or greater} was used to
create this PDF document.

\begin{dCmd*}{.77\linewidth}
\mlhypertext[\A{\JS{app.alert("AcroTeX rocks!")}}]%
{Acrobat Distiller, version~7.0 or greater}
\end{dCmd*}
In the above example, the link, shown in \textcolor{webgreen}{green} is broken across lines. Though
is is not shown in this example, these links can break a line at a hyphenation point as well. The
optional argument is used to create an alert box that appears when the link is clicked.

\paragraph*{\textbackslash{mlhyperlink}.} A multi-line version of the \cs{hyperlink} command.

\newtopic\begin{dCmd}{.5\linewidth}
\mlhyperlink[#1]{#2}{#3}
\end{dCmd}

\PD The first parameter is optional, and is used to set the appearance, but \textit{not the actions} of the  link.
The second parameter is a named destination, perhaps created by the \cs{hypertarget} command of
\texttt{hyperref}. The third parameter is the text around which the link is constructed.

\CmdDescription This command is the multi-line version of the \textsf{hyperref} command, \cs{hyperlink}.
The default appearance is the same as \cs{hyperlink}, as described above in \cs{mlhypertext}.
The action of this link is to jump to a named destination; the action cannot be changed by defining
a different action through the first parameter.

This link uses the \cs{mlhyperlink} command:
\so{Welcome!} \mlhyperlink{retire}{Welcome, $\dots$ to my humble retirement residence, such as  it is!}
\begin{dCmd*}{.75\linewidth}
\mlhyperlink{retire}{Welcome, $\dots$ to my humble
retirement residence, such as it is!}
\end{dCmd*}
In this example, the line is broken at a hyphenation, cool!
We jump to the named destination, \texttt{retire}. On the last page,
the following text appears\\[1ex]
\verb!  My humble retirement \hypertarget{retire}{home}.!\\[1ex]
creating the named destination of \texttt{retire}.

\paragraph*{\textbackslash{mlhyperref}.} A multi-line version of the \cs{hyperref} command.

\newtopic\begin{dCmd}{.5\linewidth}
\mlhyperref[#1]{#2}{#3}
\end{dCmd}
\PD The first parameter is optional, and is used to set the
appearance, but \textit{not the actions} of the  link. The second
parameter is a label name created by the \cs{label} command of
\LaTeX. The third parameter is the text around which the link is
constructed.

\CmdDescription This is the multi-line version of the
\textsf{hyperref} command, \cs{hyperref}, The default appearance is
the same as \cs{hyperref}. The action of this link is to jump to a
destination created by the \cs{label} command of the
cross-referencing system of \LaTeX; the action cannot be changed by
defining a different action through the first parameter.

This link uses the \cs{mlhyperref} command: \mlhyperref[\ui{linktxtcolor=red}]{retirement}
{Welcome! Welcome to my humble retirement residence, such as  it is!}

\begin{dCmd*}{.75\linewidth}
\mlhyperref[\ui{linktxtcolor=red}]{retirement}
{Welcome! Welcome to my humble retirement
residence, such as it is!}
\end{dCmd*}
The user-friendly interface is used to change the appearance of the color
of the link text. The second argument is \texttt{retirement}, which is the label
affixed to the last section of this document,\\[1ex]
\verb!  \section{My \textbf{Retirement} Home}\label{retirement}!\\[1ex]
See \mlNameref{retirement}.


\paragraph*{\textbackslash{mlnameref}.} A multi-line version of the \cs{nameref} command.

\newtopic\begin{dCmd}{.5\linewidth}
\mlnameref[#1]{#2}
\end{dCmd}
\PD The first parameter is optional, and is used to set the
    appearance, but \textit{not the actions} of the  link. The second
    parameter is a name of a {\LaTeX} label.

\CmdDescription This is the multi-line version of the
\textsf{hyperref} command, \cs{nameref}. The default appearance is
the same as \cs{hyperref}. The action of this link is to jump to a
destination created by the \cs{label} command of the
cross-referencing system of \LaTeX; the action cannot be changed by
defining a different action through the first parameter.

This link uses the \cs{mlnameref} command: Please, click the webgreen link to witness \mlnameref{retirement}.

\begin{dCmd*}{.5\linewidth}
\mlnameref{retirement}
\end{dCmd*}

\paragraph*{\textbackslash{mlNameref}.} A multi-line version of the
\textsf{hyperref} command, \cs{Nameref}.

\newtopic\begin{dCmd}{.5\linewidth}
\mlNameref[#1]{#2}
\end{dCmd}
\PD The first parameter is optional, and is used to set the
    appearance, but \textit{not the actions} of the  link. The second
    parameter is a name of a {\LaTeX} label.

\CmdDescription This is the multi-line version of the
\textsf{hyperref} command, \cs{Nameref}. The default appearance is
the same as \cs{hyperref}. The action of this link is to jump to a
destination created by the \cs{label} command of the
cross-referencing system of \LaTeX; the action cannot be changed by
defining a different action through the first parameter.

This link uses the \cs{mlNameref} command: Click the link or go to
the page, \mlNameref{retirement}.

\begin{dCmd*}{.5\linewidth}
\mlNameref{retirement}
\end{dCmd*}

\paragraph*{\textbackslash{mlhref}.} A multi-line version of the
\textsf{hyperref} command, \cs{href}.

\newtopic\begin{dCmd}{.5\linewidth}
\mlhref[#1]{#2}{#3}
\end{dCmd}
\PD The first parameter is optional, and is used to set the
    appearance, but \textit{not the actions} of the  link. The
    second parameter is a URL, while the third parameter is the link text.

\CmdDescription This is the multi-line version of the
\textsf{hyperref} command, \cs{href}. The default appearance is
the same as \cs{hyperref}. There is one of three actions, depending on the
third argument, just as with \cs{href}.The action cannot be changed by
defining a different action through the first parameter.

\begingroup
\makeatletter
\def\Hy@temp#1{\expandafter\Hy@@temp\csname @#1color\endcsname{#1}}
\Hy@temp{link}{red}
\Hy@temp{anchor}{black}
\Hy@temp{cite}{green}
\Hy@temp{file}{cyan}
\Hy@temp{url}{magenta}
\Hy@temp{menu}{red}
\makeatother

Uses the \cs{mlhref} command with URL: \mlhref{%
http://www.math.uakron.edu/~dpstory/acrotex.html#educational}
{See the educational offerings of the {Acro\negthinspace{\TeX}} Web
Site at the University of Akron}

\begin{dCmd*}{\linewidth}
\mlhref{%
http://www.math.uakron.edu/~dpstory/acrotex.html#educational}
{See the educational offerings of the {Acro\negthinspace{\TeX}} Web
Site at the University of Akron}
\end{dCmd*}

\newtopic Uses the \cs{mlhref} command with mailto URL: My email address at Acro\negthinspace\TeX.Net,
\mlhref{mailto:dpstory@acrotex.net}{dpstory at acrotex dot net}.

\begin{dCmd*}{\linewidth}
\mlhref{mailto:dpstory@acrotex.net}{dpstory at acrotex dot net}
\end{dCmd*}

\newtopic If the second argument is a PDF file, the PDF viewer will open it from your local file system,
or if you are in a browser, will open it from the web, provided it can find the relative path
\begin{dCmd*}{\linewidth}
\mlhref{shameless_ad.pdf}{Here is a
shameless advertisement for Acro\negthinspace\TeX}.
\end{dCmd*}


\newtopic If the key word `\texttt{run:}' is used, the link is set up to launch an application.
The PDF viewer will attempt to open the file with the application
associated with the extension of the file provided.

\begin{dCmd*}{\linewidth}
\mlhref{run:\jobname.tex}{This is the source file of this document}.
\end{dCmd*}


\endgroup

\section{Setting the Appearance and Action}

The appearance and the action (at least for \cs{mlhypertex}) can be set through the first
optional parameter. The optional parameter takes key-value pairs of two types:
\paragraph*{Key-value Pairs.} The optional first parameter of each of the form and link commands take
two styles of key-values:
\begin{enumerate}
    \item eForms KVP: This is the key-value system originally developed, where each KVP has the form
        \verb|\<key>{<val>}|. Through these keys, the appearance
        and action of a link---if otherwise not restricted---may be set.
        For example, \mlhypertext[\S{U}\W{1}\Color{0 0.6 0}
        \linktxtcolor{webgreen} \A{\JS{app.alert("AcroTeX
        rocks!")}}]{AcroTeX can be found at
        \texttt{www.acrotex.net}, as close as your nearest web
        browser.}
\begin{sverbatim}
    \mlhypertext[\S{U}\W{1}\Color{0 0.6 0}\linktxtcolor{webgreen}
    \A{\JS{app.alert("AcroTeX rocks!")}}]{AcroTeX...browser.}
\end{sverbatim}

    \item[] The eForms KVP system is explained in the eforms manual,
    \textsl{\mlhref{http://www.math.uakron.edu/~dpstory/acrotex/eformman.pdf}{Support for AcroForms and Links, and for Document JavaScript and Open Page Events}},\footnote
    {\url{http://www.math.uakron.edu/~dpstory/acrotex/eformman.pdf}}
    where a complete listing of all supported KVPs is found in the appendices.

    \item \textsf{xkeyval} KVP: When the \texttt{useui} option is taken of the eforms package, key-value pairs are
        defined of the form \texttt{<key>[ = <value>]}. The key-value pairs are actually a value of
        a special eForms key, \cs{ui}. The value of \cs{ui} consists of a comma-delimited list of
        \textsf{xkeyval} key-value pairs. For example,
        \mlhypertext[\ui{%
            border=visible,
            linestyle=underlined,
            bordercolor={0 0.6 0},
            linktxtcolor=webgreen,
            js={app.alert("AcroTeX rocks!")}}]{AcroTeX
            can be found at \texttt{www.acrotex.net}, as
            close as your nearest web browser.}
\begin{sverbatim}
    \mlhypertext[\ui{%
        border=visible,
        linestyle=underlined,
        bordercolor={0 0.6 0},
        linktxtcolor=webgreen,
        js={app.alert("AcroTeX rocks!")}}]{AcroTeX...browser.}
\end{sverbatim}


    \item[] The xkeyval KVP system is described in the document
    \textsl{\mlhref{http://www.math.uakron.edu/~dpstory/acrotex/eformman.pdf}{Support for AcroForms and Links, and for Document JavaScript and Open Page Events}}.\footnote
    {Loc. cit.}

\end{enumerate}

\newpage

\section{My \textbf{Retirement} Home}\label{retirement}

My humble retirement \hypertarget{retire}{home}.
\begin{flushleft}
\setLinkText[\H{N}\A{\Named{GoBack}}]{\includegraphics[scale=.5]{DSC01404}}\quad \raisebox{75pt}{\textbf{Click image to return from jump}}
\end{flushleft}


Now, I simply must get back to my retirement. \dps



\end{document}
