diff options
Diffstat (limited to 'texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex')
-rw-r--r-- | texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex new file mode 100644 index 00000000..3db8c6f1 --- /dev/null +++ b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex @@ -0,0 +1,360 @@ +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[% + web={centertitlepage,designv,forcolorpaper,latextoc,pro}, + eforms, + uselayers, + aebxmp +]{aeb_pro} +%\usepackage{aeb_mlink} +\usepackage{graphicx} +%\usepackage{myriadpro} +%\usepackage[usecmtt]{myriadpro} +\usepackage[altbullet]{lucidbry} +\usepackage{acrosort} +\usepackage{fancyvrb} +\usepackage{wrapfig} + +\let\pkg\textsf +\let\app\textsf +\let\env\texttt +\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{\raisebox{#1}{\parbox{\marginparwidth}{\slshape\raggedleft\small#2}}}} +\addtolength{\marginparwidth}{1in} + + +%\usepackage{acaslonpro} +%\usepackage{ajensonpro} +%\usepackage{minionpro} +%\usepackage{newsgothicstd} +%\usepackage{lucidbry} + +\DeclareDocInfo +{ + university={\AcroTeX.Net}, + title={The \textsf{acrosort} Package}, + author={D. P. Story}, + email={dpstory@acrotex.net}, + subject={Documentation for AcroSort}, + talksite={\url{www.acrotex.net}}, + version={1.6.1}, + versionLabel={Version}, + copyrightyears={2006-\the\year}, + prepared={2020/06/17}, + preparedLabel={Distribution Dated:}, + keywords={Adobe Acrobat, JavaScript, LaTeX, JavaScript, bubble sort, tiling}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL={http://www.acrotex.net} +} +\nocopyright +\usepackage{acroman} +%\usepackage[active]{srcltx} + + +\def\nhfootnote#1{\begin{NoHyper}\footnote{#1}\end{NoHyper}} + +\makeatletter +\renewcommand{\paragraph} + {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}} +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.5em}} +\makeatother + + +\def\scalefactor{.75} + +\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\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}} + +\def\AcroTeX{Acro\negthinspace\TeX} + +\begin{embedding} +\isPackage +\asEmbedTiles{choo}{20}{../examples/choo/choo} +\isPackage +\asEmbedTiles{emoji}{16}{graphics/myemoji} +\end{embedding} + +\customFinishJS{if(sortName=="emoji") toggleSetThisLayer("retire", true);} + + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="The acrosort Package"; +var manualfilename="Manual_BG_Print_acrosort.pdf"; +var manualtemplate="Manual_BG_Green.pdf"; // Blue, Green, Brown +var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; +var doc; +var buildIt=false; +if ( buildIt ) { + console.println("Creating new " + manualfilename + " file."); + doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); + var _path=this.path; + var pos=_path.lastIndexOf("/"); + _path=_path.substring(0,pos)+"/"+manualfilename; + \docSaveAs\newDO ({ cPath: _path }); + doc.closeDoc(); + doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); + f=doc.getField("ManualTitle"); + f.value=titleOfManual; + doc.flattenPages(); + \docSaveAs\newDO({ cPath: manualfilename }); + doc.closeDoc(); +} else { + console.println("Using the current "+manualfilename+" file."); +} +var _path=this.path; +var pos=_path.lastIndexOf("/"); +_path=_path.substring(0,pos)+"/"+manualfilename; +\addWatermarkFromFile({ + bOnTop:false, + bOnPrint:false, + cDIPath:_path +}); +\executeSave(); +\end{docassembly} + + +%\definePath\bgPath{"C:/Users/Public/Documents/ManualBGs/Manual_BG_Print_AeB.pdf"} +%\begin{docassembly} +%\addWatermarkFromFile({ +% bOnTop:false, +% cDIPath:\bgPath +%}); +%\executeSave(); +%\end{docassembly} + + +%\previewOn\pmpvOn + +\begin{document} + +\maketitle + +\selectColors{linkColor=black} +\tableofcontents +\selectColors{linkColor=webgreen} + +\section{Introduction} + +% \ulCornerHere sets the upper left corner of where the image is to be placed. +% \reserveSpaceByFile leaves space for the image. +\begin{wrapfigure}{l}{2in}\vskip-\baselineskip +\insertTiles{choo}{2in}{4}{5} + + +\smallskip + +% +% Simple controls, there meaning is obvious. You can changes their appearance +% by using the option argument. See \textsf{eForms} documentation for details +% on how to change the appearance. +% + +\centering\StartSort{choo}{}{11bp}\quad\ClearSort{choo}{}{11bp}%\quad\StopSort{}{11bp} +\vskip-\baselineskip +\end{wrapfigure}% +\pkg{acrosort} is a novelty {\LaTeX} package for importing a +series of tiled images of a picture. The tiled images are randomly +arranged, then resorted before the user's eyes using a bubble sort. We shall refer to the figure to the left +as a \FmtMP{tiled bubble sort}\textit{tiled bubble sort}. + +This new version of \pkg{acrosort}, dated 2020/06/02 or later, +supports all common workflows: \app{pdflatex}, \app{lualatex}, \app{xelatex}, +and \app{dvips\,->\,distiller}. + +The \pkg{graphicx}, \pkg{eforms}, and \pkg{icon-appr} packages are +automatically input by \textsf{acrosort}. When the workflow +\app{dvips\,->\,distiller} is used, the package \pkg{aeb\_pro} is required. +For the first time, \FmtMP{multiple tiled bubble\\sorts supported}multiple tiled bubble sorts can appear in the same +document, +though only one can be sorted at a time. + +\paragraph*{Demo files.} There are two sample files for this distribution: \texttt{as1.tex} (only one tile bubble sort), +and \texttt{as2.tex} (two tiled bubble sorts). These are found in the \texttt{examples} folder. + + +\section{The Method} + +The creation of the \emph{tiled bubble sort} has two easy steps. \verb~:-{)~ +\begin{enumerate} + \item Embed your graphics using the \env{embedding} environment of \pkg{icon-appr} and the special + command \cs{asEmbedTiles}. +\bVerb\takeMeasure{\string\asEmbedTiles[\ameta{ext}]\darg{\ameta{name}}\darg{\ameta{num-tiles}}\darg{\ameta{path}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +!color(gray)\begin{embedding} +\isPackage +\asEmbedTiles[!ameta(ext)]{!ameta(name)}{!ameta(num-tiles)}{!ameta(path)} +!color(gray)\end{embedding} +\end{dCmd} +\eVerb +The \cs{asEmbedTiles} is defined by \pkg{acrosort}. The parameters are: +\ameta{name} is a unique name used by \cs{insertTiles} to refer this tile +embedding; \ameta{num-tiles} is the number of tiles; \ameta{path} is the +path to the graphics file,\footnote{a relative or absolute path, relative +preferred} the graphics file is referenced by its \emph{base name}. +Usually, PDF files are used for graphics. + +\cs{isPackage} is optional and must appear prior to the \cs{asEmbedTiles} +command to which it refers. \cs{isPackage} means the tiled graphic files +are ``packaged'' in a single PDF, named +\texttt{\ameta{base name}\_package.pdf}. + +The optional argument \ameta{ext} is ignored when \cs{isPackage} is +present; otherwise, an extension of \ameta{ext} is affixed to the graphics +file. If \ameta{ext} is not specified, then an extension of \texttt{pdf} +(\texttt{.pdf}) is assumed. + +\textbf{Base name:} Suppose the base name is \texttt{myPicure}, then +\ameta{path} might be \texttt{graphics/\allowbreak myPicture}. If +\cs{isPackage} is expanded prior to \cs{asEmbedTiles}, \pkg{acrosort} looks +for \texttt{myPicture\_package.pdf} in the \texttt{graphics} folder. If +\cs{isPackage} does not appear, then \pkg{acrosort} looks for the sequence +of the tiled graphic files \texttt{myPicture\_01}, \texttt{myPicture\_02}, +\dots \texttt{myPicture\_\ameta{num-tiles}}, numbers less than 10 are +prefixed with a zero (0). In this case, the graphic file extension is taken +to be the one specified by \ameta{ext}, or as \texttt{.pdf}, otherwise. + +\cs{asEmbedTiles} puts the base graphic file in a box and measures its dimensions; +the format for the base graphic must be in a format that \cs{includegraphics} supports, for +whatever PDF creator you are using. In particular, when using straight {\LaTeX}, the base document +show have an EPS version. Note that in each of the graphics folders (\texttt{choo} and \texttt{emoji}) +both PDF and EPS versions of the base graphic are provided. + +\goodbreak + +\item In the body of the document, place the \cs{insertTiles} command: +\bVerb\takeMeasure{\string\insertTiles\darg{\ameta{name}}\darg{\ameta{width}}\darg{\ameta{n-rows}}\darg{\ameta{n-cols}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\insertTiles{!ameta(name)}{!ameta(width)}{!ameta(n-rows)}{!ameta(n-cols)} +\end{dCmd} +\eVerb +where \ameta{name} is the name of an embedding (\cs{asEmbedTiles}); +\ameta{width} is the total width of the picture; \ameta{n-row} is the +number of rows; \ameta{n-cols} is the number of columns. +\end{enumerate} +For the tiled bubble sort figure of this document, the following was used. +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] +... +\begin{embedding} +\isPackage +\asEmbedTiles{choo}{20}{../examples/choo/choo} +\end{embedding} +... +\begin{document} +... +\insertTiles{choo}{2in}{4}{5} +... +\end{document} +\end{Verbatim} +It's just that simple ! + +\section{Controlling the bubble sort} + +Below are three basic commands for controlling a tile bubble sort by the name +of \ameta{name}.\normalbaselines +\bVerb\takeMeasure{\string\StartSort[\ameta{KV-pairs}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}} +\begin{dCmd}[commandchars=!()]{\bxSize} +\StartSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)} +\StopSort[!ameta(KV-pairs)]{!ameta(wd)}{!ameta(ht)} +\ClearSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)} +\end{dCmd} +\eVerb +Use \ameta{KV-pairs} to change the appearance of the fields, where +\ameta{KV-pairs} are \pkg{eforms} field key-value pairs. The \ameta{name} argument +(\cs{StartSort} and \cs{ClearSort}) is the name of the graphics to be controlled. +(\ameta{name} must match up with the \ameta{name} argument of \cs{asEmbedTiles} and +\cs{insertTiles}.) The \ameta{wd} and \ameta{ht} are the width and height of the push button fields. +If a caption is provided, set \ameta{wd} to \texttt{\darg{}} and \pkg{eforms} will automatically +calculate the width based on the value of the \cs{CA} key. + +\newtopic\noindent +There are several other commands of interest, these are, +\begin{description} +\item[\cs{customStartJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} just prior to the start of the sort (\cs{StartSort}). The default + is \cs{customStartJS\darg{}}. +\item[\cs{customFinishJS\darg{\ameta{script}}}] (Document level) Inserts + \ameta{script} just after the finish of the sort. The default is + \cs{customFinishJS\darg{}}. +\item[\cs{appendStartSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the underlying package JavaScript of + \cs{StartSort}. The default is \cs{appendStartSortJS\darg{}}. +\item[\cs{appendStopSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the JavaScript of \cs{StopSort}. The default + is \cs{appendStopSortJS\darg{}}. +\item[\cs{appendClearSortJS\darg{\ameta{script}}}] (Field level) Inserts + \ameta{script} following the underlying package JavaScript of + \cs{ClearSort}. The default is \cs{appendClearSortJS\darg{}}. +\end{description} +Some simple examples; assume there is a text field by the name of +\texttt{"message"}: +\begin{Verbatim}[xleftmargin=\parindent] +\renewcommand{\customStartJS}{% + var f=this.getField("message"); + f.value="Begin sorting choo"; +} +\renewcommand{\customFinishJS}{% + var f=this.getField("message"); + f.value="Finished sorting choo"; +} +\end{Verbatim} + +\paragraph*{Placement.} It should be noted that the above commands marked as +``Field level'' may be placed in the body of the document, prior to the +commands they effect. The other command (\cs{customFinishJS}), which is marked as +``Document level,'' needs to be placed in the preamble to have any effect. + +\newtopic\noindent The sample file \texttt{as2.tex} provides examples of these various commands. + + +\section{Creation of tiles} + +Use the package \pkg{tile-graphic}\FmtMP{\pkg{tile-graphic} pkg} to tile a +graphics file. In the \texttt{examples} folder there are two demo files, \texttt{as1.tex} +and \texttt{as2.tex}, that use the graphics in the \texttt{emoji} and \texttt{choo} folders. +These two folders contain files \texttt{tg-emoji.tex} and \texttt{tg-choo.tex} that were used to produce +the tiled graphics. The one in the \texttt{emoji} +folder is reproduced +below.\FmtMP[-3\baselineskip]{\texttt{pdfcreator=\mbox{\hskip20pt}\\pdflatex\string|\\lualatex\string|\\xelatex\string|\\distiller}} +\begin{Verbatim}[fontsize=\small] +\documentclass{article} +\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic} +\setTileParams{4}{4}{emoji} +\begin{document} +\tileTheGraphic +\end{document} +\end{Verbatim} +Refer to the documentation of \pkg{tile-graphic} for more information. Currently, the options +are \opt{!wrttofiles} and \opt{packagefiles}, these produce \texttt{emoji\_package.pdf}. If you are using +\app{xelatex}\FmtMP{for \app{xelatex} users}, you'll need the ``non-packaged'' files. Produce them by changing the options +to +\opt{wrttofiles} and \opt{!packagefiles} and compile, the files \texttt{emoji\_01.pdf}, +\texttt{emoji\_02.pdf}, \dots, \texttt{emoji\_12.pdf} should be created. It's just that simple! + + +\section{Applications} %\previewOn\pmpvOn + +I've used this package to create birthday, wedding, and anniversary cards for +friends. You can use it for whatever novel idea your mind can conjure up! +Enjoy! +\begin{center}\fboxsep1bp\fboxrule2bp\appendClearSortJS{toggleSetThisLayer("retire", false);} +\leavevmode\llap{\StartSort{emoji}{}{11bp}\olBdry\ClearSort{emoji}{}{11bp}}\quad\fbox{\insertTiles{emoji}{2in}{4}{4}}\quad\leavevmode +\xBld[print=true]{retire}\rlap{\parbox{1.5in}{Now, I simply must get back to my retirement, \dps}\eBld} + +\end{center} + +%\newtopic\noindent +%Now, I simply must get back to my retirement, \dps +\end{document} |