\documentclass{article} \usepackage[fleqn]{amsmath} \usepackage[ web={centertitlepage,designv,forcolorpaper,tight*,latextoc,pro}, eforms,aebxmp ]{aeb_pro} \usepackage{graphicx,array,fancyvrb} \usepackage{aeb_mlink} %\usepackage{myriadpro} %\usepackage{calibri} \usepackage[altbullet]{lucidbry} \usepackage[dvipsone,!viewMagWin,!preview]{artthreads} \usepackage{lipsum,multicol} \raggedcolumns \makeatletter \renewenvironment{quote}[1][] {\def\@rgi{#1}\ifx\@rgi\@empty \let\rghtm\@empty\else\def\rghtm{\rightmargin\leftmargin}\fi \list{}{\rghtm} %{\rightmargin\leftmargin}% \item\relax} {\endlist} \makeatother \renewcommand{\hproportionwebtitle}{.8} %\usepackage{makeidx} %\makeindex \usepackage{acroman} \usepackage[active]{srcltx} \urlstyle{tt} %\def\tutpath{doc/tutorial} %\def\tutpathi{tutorial} %\def\expath{../examples} \DeclareDocInfo { university={\AcroTeX.Net}, title={The \textsf{artthreads} Package \texorpdfstring{\\[1ex]\Large}{: }Creating article threads for multi-column documents}, author={D. P. Story}, email={dpstory@acrotex.net}, subject=Documentation for artthreads package, talksite={\url{www.acrotex.net}}, version={1.0}, Keywords={LaTeX, article threads, multi-column documents, AcroTeX}, copyrightStatus=True, copyrightNotice={Copyright (C) \the\year, D. P. Story}, copyrightInfoURL={http://www.acrotex.net} } \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}} \optionalPageMatter{% \begin{center} \fcolorbox{blue}{webyellow}{ \begin{minipage}{.67\linewidth}% \textbf{\textcolor{red}{Stop!}} Before you read this documentation, take a moment to change your preferences: On your menu system if \app{Adobe Acrobat/Reader}, select \textsf{Edit\,>\,\penalty0Preferences\,>\,\penalty0General}, and \emph{clear the checkbox} for the item named \textsf{Make Hand tool select text \& images}, as listed under \textsf{Basic Tools} on that dialog box. (\textsf{Ctrl+K} or \textsf{Command+K} is the shortcut to the Preferences dialog box on \app{Windows} and \app{Mac OS}, respectively.) This makes reading an article thread much easier. Look for the hand icon with a down arrow on it.\hfill\dps \end{minipage}} \end{center} } \begin{docassembly} \addWatermarkFromFile({ bOnTop:false, cDIPath:"C:/Users/Public/Documents/ManualBGs/Manual_BG_Print_AeB.pdf" }); \executeSave(); \end{docassembly} \begin{document} \maketitle \selectColors{linkColor=black} \tableofcontents \selectColors{linkColor=webgreen} \setAddToBorder{addtow=5bp,addtoh=0bp} \newcommand\showArtPanel[1][Article]{\pushButton[ \CA{#1}\A{\Named{ArticleThreads} \Next{/S/Thread /D(\threadTitle)}}]{Btn}{}{11bp}} \section{Introduction} \setThreadInfo{title=Introduction,author=D. P. Story, subject=Introduction to article threads,keywords={AeB, PDF, LaTeX}}% \begin{multicols}{2} \noindent\makebox[0pt][r]{\showArtPanel[Intro]\relax\kern11bp}% \bArticle{lift=\baselineskip,width=\linewidth,height=2.5in}% \noindent Through the commands of the \pkg{artthreads} package, you can create \textit{article threads}, a concept/feature of \app{Adobe Reader/Acrobat} that has been around since the product's beginning. The use of article threads typically only makes sense in a document in which the text is in a multi-column format, or, perhaps, a single narrow column. When a document uses a multiple column format, it is often difficult, or at the very least inconvenient, to read it. When document page is fit into the viewing window, the text may be two small to read. This requires the reader, that's you, to adjust the magnification (zoom) level of the page to fit a column of text comfortably in the application window.\vadjust{\noindent \cArticle{lift=2\baselineskip,width=\linewidth,height=2.5in}} Once the column is fitted, additional navigation is needed to move the window view down one column, then up to the top of the next column. Think of trying to read a digital newspaper with many columns. Such navigation is tedious and distracts from reading the information begin presented. Set the article threads after the composition of the document is completed. The method of setting the threads is \emph{very visual} not automatic as in the \pkg{threadcol} package of Scott Patkin. \end{multicols} \section{Navigating an article thread} \setThreadInfo{title=Navigation,author=D. P. Story, subject=Navigation to article threads,keywords={AeB, PDF, LaTeX}}% \begin{multicols}{2} \noindent\makebox[0pt][r]{\showArtPanel[Navigate]\kern11bp}% \bArticle{lift=\baselineskip,width=\linewidth,height=4.2in}% \noindent Perhaps you noticed the `Intro' button on exhibit in this previous section or the `Navigate' button in this section as well. Clicking these buttons reveals the \textsf{Article} panel in the left-hand navigation pane. Listed there are all the articles created for this documentation. Right-clicking on any of the listed article names brings up a context menu; select \textsf{Read Article} to begin reading or choose \textsf{Properties} to see the thread info, which (may) include the title, author, subject, and keywords. \paragraph*{Begin an article thread.} There are two of ways to begin reading a thread: (1)~first open the \textsf{Article} pane (\textsf{View\,\penalty0>\penalty0\,\penalty0Show/Hide\,\penalty0>\,\penalty0Navigation Panes\,>\,Articles}), left-click an article title and select \textsf{Read Article}, or simple double-click an article title; or (2) place your mouse pointer over text, if it changes to a hand with an arrow on it, the text is part of an article thread, simply click on it to begin. \paragraph*{Navigating a thread.} Once you have initiated \textsf{Read Article}, you can navigate through the article thread using any of the following methods\vadjust{\noindent \cArticle{lift=2\baselineskip,width=\linewidth,height=4.2in}}: (1)~click in an area when the mouse is a hand icon with an arrow on it to move forward (shift-click to move back); (2) press the \textsf{Enter} key to move forward (or shift+\textsf{Enter} to move back); or (3) the page down (or page up) keys will also move you around within the thread. There may be problems in getting the hand icon with the arrow on it to appear, if this is the case, open the \textsf{Preferences} menu, \textsf{Edit\,>\,\penalty0Preferences\,>\,\penalty0General}, and \emph{clear the checkbox} for the item named \textsf{Make Hand tool select text \& images}, as listed under \textsf{Basic Tools} on that dialog box. (\textsf{Ctrl+K} or \textsf{Command+K} is the shortcut to the Preferences dialog box on \app{Windows} and \app{Mac OS}, respectively.) \paragraph*{Exploring threads.} Now that you have explored the operation of article threads and see how they work, the next thing to do is to see how they are created with the \pkg{artthreads} package. \end{multicols} \section{Creating article threads} We begin by including the \pkg{artthreads} package in your document. \begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()] \usepackage[!ameta(options)]{artthreads} \end{Verbatim} The \pkg{artthreads} package brings in the \pkg{fitr} package (\url{http://ctan.org/pkg/fitr}), many commands from that package are used. In fact, the same set of package options are used. \setThreadInfo{title=Package options,author=D. P. Story, subject=options of the artthreads package,keywords={AeB, PDF, LaTeX}}% \paragraph*{Package options.} The package has ten options: six driver options and four viewing options. \begin{multicols}{2}\previewtrue\viewMagWintrue \setAddToBorder{addtow=10bp,addtoh=10bp} \begin{itemize} \item \bArticle{lift=\baselineskip,width=\linewidth,height=2.5in}% \textbf{Driver Options:} These are \texttt{dvips} (the default), \texttt{dvipsone}, and \texttt{pdftex} (which includes the use of \textsf{lualatex}), \texttt{dvipdfm}, \texttt{dvipdfmx}, and \texttt{xetex}. If you specify one of the first two, it is assumed that you are using \textsf{Adobe Distiller} as your PDF creator. The \textsf{fitr} package checks whether the \textsf{web} package is loaded, if so, its uses the driver used by \textsf{web}; otherwise \textsf{fitr} auto-detects for \textsf{pdftex} and \textsf{xetex}. If no driver is passed, and neither \textsf{pdftex} nor \textsf{xetex} are detected, then \textsf{dvips} is the default driver. \setAddToBorder{addtow=0bp,addtoh=0bp} \item \cArticle{lift=\baselineskip,width=\linewidth,height=2.5in}% \textbf{Viewing Options:} When you specify \texttt{preview}, the bounding boxes for the article threads are shown in the dvi-previewer (or the PDF document); you can turn off this preview by specifying \texttt{!preview} (or removing \texttt{preview} entirely from the option list). The other option type is \texttt{viewMagWin}, when this option the viewing window, a rectangular region, becomes visible in the dvi-previewer (or in the PDF document); specifying \texttt{!viewMagWin} turns off this type of preview. %\item[] The effects of the viewing options will be illustrated later in this %document, see \autoref{previewEx} on page~\pageref*{previewEx}. \end{itemize} \end{multicols} You'll notice the two rectangular regions around the left column. The inner one is made visible by the \texttt{preview} option (or locally by \cs{previewtrue}), you can see that it covers `precisely' the text of the item. The outer rectangle is exposed by the \texttt{viewMagWin} option (or locally by \cs{viewMagWintrue}). When you view the thread -- and you do not define an `extra' border around the viewing area -- the inner rectangle is use. The text in this inner rectangle may not be entirely adequate for reading as it is very `tight' around the text. It is for this reason, we expand the viewing area by a specified amount. Compare the reading comfort of the left column verses the right column. (Try viewing the column thread with a narrow application window.) You may have also that the viewer returns to the same page view the page was in prior to reading the thread. \paragraph*{The article info.} The specifications for an article thread require it to have a title, and to optionally have key-values for author, subject, and keywords. \bVerb\takeMeasure{\string\setThreadInfo\{title=\ameta{text},author=\ameta{text},}% \begin{dCmd}[commandchars=!()]{\bxSize} \setThreadInfo{title=!ameta(text),author=!ameta(text), !qquad(subject=!ameta(text),keywords={!ameta(list)})} \end{dCmd} \endgroup\noindent If no value of \texttt{title} is provided, \pkg{artthreads} uses a generated value of \texttt{thread-\ameta{num}}. The \cs{setThreadInfo} command must appear prior to the opening the thread (see \cs{bArticle} below) to which it applies, if it does not, a {\LaTeX} error occurs. The drivers \opt{dvips}, \opt{dvipsone}, \opt{xetex} (\opt{dvipdfm}, \opt{dvipdfmx}) support all four keys; however, \opt{pdftex} only supports the \texttt{title} key. \paragraph*{The article thread commands.} There is one command (\cs{bArticle}) for beginning an article thread, and another (\cs{cArticle}) to continue that thread. \bVerb\takeMeasure{\string\bArticle\darg{\meta{KV-pairs}}}% \begin{dCmd}[commandchars=!()]{\bxSize} \bArticle{!meta(KV-pairs)} \cArticle{!meta(KV-pairs)} \end{dCmd} \endgroup\noindent Before illustrating \cs{bArticle} and \cs{cArticle}, the \meta{KV-pairs} are described first. \begin{itemize} \item \texttt{width=\ameta{length}}: The value of \opt{width} sets the width of the thread to \ameta{length}; \ameta{length} is usually, but not always, \cs{linewidth}. Dimension arithmetic is supported with the value of \opt{width} (\texttt{width=\cs{linewidth}\,+\,3pt}, for example). \item \texttt{height=\ameta{length}}: The value of \opt{height} sets the height of the thread to \ameta{length}. As with the \opt{width} key, dimension arithmetic is supported by \opt{height}; for example, \texttt{height=3in\,+\,2\cs{baselineskip}}. \item \texttt{lift=\ameta{length}}: This key-value lifts (raises) the article thread window up (or down) by an amount of \ameta{length}; for example, \texttt{lift=15pt} (or \texttt{lift=-15pt}). The default is a lift of \texttt{0pt}. Dimension arithmetic is supported. \item \texttt{shift=\ameta{length}}: The amount of horizontal shift of the article thread; positive to the right, negative to the left. For example, \texttt{shift=-1in} shifts the button/viewing window 1 inch to the left. The default is \texttt{0pt}. Dimension arithmetic is supported. \end{itemize} One last command before the examples. \paragraph*{Setting the expanded (add to) border.} It is often convenient to set the basic thread dimensions (\texttt{width=\cs{linewidth},height=3in}), but is harder to expand and position the thread to a wider or higher thread region. Use the \cs{setAddToBorder} command to expand, or add to, the dimensions of the thread rectangular dimensions. \bVerb\takeMeasure{\string\setAddToBorder\darg{addtow=\ameta{length},addtoh=\ameta{length}}}% \begin{dCmd}[commandchars=!()]{\bxSize} \setAddToBorder{addtow=!ameta(length),addtoh=!ameta(length)} \end{dCmd} \endgroup\noindent The \opt{addtow} key adds \ameta{length} to the left and right sides of the rectangular boundary of the thread; \opt{addtoh} adds \ameta{length} to the top and bottom of the rectangular boundary of the thread. The default dimensions for these two keys are \texttt{0pt}. \begin{multicols}{2}\setThreadInfo{title=Illustrate \string\\setAddToBorder}% \noindent\setAddToBorder{addtow=10bp,addtoh=10bp}\previewtrue\viewMagWintrue {\small\verb|\setAddToBorder{addtow=10bp,|\\ \null\qquad\verb|addtoh=10bp}|}\\\vadjust{\noindent\bArticle{lift=3\baselineskip,width=\linewidth,height=6\baselineskip}} In this column we've set a \texttt{10bp} border around the thread. When you click on the reading area, the viewer should zoom to the width of the wider rectangle. \vfill \columnbreak \noindent\setAddToBorder{addtow=4bp,addtoh=4bp}\previewtrue\viewMagWintrue {\small\verb|\setAddToBorder{addtow=4bp,|\\ \null\qquad\verb|addtoh=4bp}|}\\\vadjust{\noindent\cArticle{lift=3\baselineskip,width=\linewidth,height=6\baselineskip}} In this column, we've set a \texttt{4bp} border. Again, when you click on the reading area, the viewer should zoom to the width of the wider rectangle. \end{multicols} \newtopic\noindent\textbf{Tip:} The values of \opt{addtow} and \opt{addtoh} should be in big points (\texttt{bp}) for greater accuracy as these are converted to Postscript or PDF dimensions, depending on the driver. \paragraph*{Methodology with examples.} Now we've come to final part of this documentation, a description of the methodology, accompanied by examples. As pointed out early in this documentation, the method for applying the article threads is very visual. Compose your document content first, and then insert the document threads. Page~\arabic{page} \begin{center}\previewtrue\viewMagWintrue \begin{minipage}{.8\linewidth}\parindent=20pt\relax We illustrate the techniques in a single column of goodly width. First we declare our add to border dimension and article info \begin{Verbatim}[fontsize=\small] \setAddToBorder{addtow=4bp,addtoh=4bp} \setThreadInfo{title=Methodology,author=D. P. Story} \end{Verbatim} There are two places to begin a thread: (1) at the very beginning of a paragraph; and (2) from within a paragraph. Method~(1) is preferred. We begin the next paragraph with \begin{Verbatim}[fontsize=\small] \noindent\bArticle{lift=\baselineskip, width=\linewidth,height=1in+3\baselineskip}% Now we begin our deep thoughts... \end{Verbatim} \setAddToBorder{addtow=4bp,addtoh=4bp} \setThreadInfo{title=Methodology,author=D. P. Story} \noindent\bArticle{lift=\baselineskip,width=\linewidth,height=1in+3\baselineskip}% Now we begin our deep thoughts. During this development phase, the options \opt{preview} and \opt{viewMagWin} should be in effect. In a \EXT{DVI} viewer, we can see the bounding rectangles. We can see its too low, too long and so on. For users of \app{pdflatex}, \app{xelatex}, etc., view your documents in the \EXT{DVI} previewer first (or view them as a \EXT{PDF}). I've used \texttt{lift=\string\baselineskip} to raise up the thread rectangle by that mount to enclose the first line. The value of \opt{width} is usually \cs{linewidth}, but the value of \opt{height} may have to be adjusted, in this example, I've ``tweaked'' the \texttt{1in} by \texttt{3\string\baselineskip}. \newtopic Naturally, after you're satisfied, you then remove \opt{preview} and \opt{viewMagWin} or change them to \opt{!preview} and \opt{!viewMagWin}. Another possible location is from within a paragraph, here, we continue the previous thread using the \cs{cArticle} command in conjunction with the \cs{vadjust} {\TeX} primitive\vadjust{\noindent \cArticle{lift=5\baselineskip,width=\linewidth,height=2in+\baselineskip}}. Between the end of the word `primitive' and the period (.) ending the sentence, I've place \begin{Verbatim}[fontsize=\small] primitive\vadjust{\noindent\cArticle{lift=5\baselineskip, width=\linewidth,height=2in+\baselineskip}}. Between the \end{Verbatim} The value of \texttt{lift=5\string\baselineskip} we chosen because the original positioning of the thread rectangle was too low by about five lines. The value of \texttt{height} was chosen to cover the paragraph once the complete paragraph was composed. \previewfalse\viewMagWinfalse We now declare \verb|\previewfalse\viewMagWinfalse|. \noindent\cArticle{lift=\baselineskip,width=\linewidth,height=.5in+3\baselineskip}\indent Of course, in this example, it was entirely unnecessary to insert the \cs{cArticle} mid-paragraph, it would have been better placed at the beginning of the paragraph. Placing \cs{cArticle} mid-paragraph is useful for multi-column formats. When the paragraph flows from the first column the second column, use the \cs{vadjust} technique to cover the portion of the text that flows to the right column. \end{minipage} \end{center} By the way, notice the use of \cs{noindent}, this is oftentimes needed to position the article thread in the left margin of the text block. \paragraph*{The demo file.} The demo file \texttt{article\_tech.tex} reproduces the discussion on methods, it is found in the \texttt{examples} folder. \setThreadInfo{title=Final Thread,{author=D. P. Story, Ph.D.}} \newtopic\noindent In this documentation, I've covered the content with many article threads; normally, for multi-column content, one thread per column is sufficient. \begin{multicols}{2} %\previewtrue \noindent\bArticle{lift=\baselineskip,width=\linewidth,height=6.7in}\indent \lipsum[2] \lipsum[4] \lipsum[6] \noindent\cArticle{lift=3\baselineskip,width=\linewidth,height=6.7in}\indent \lipsum[7] \lipsum[10] \lipsum[12] \noindent\cArticle{lift=10\baselineskip,width=\linewidth,height=4in-\baselineskip}\indent \lipsum[14] \noindent\cArticle{lift=8\baselineskip,width=\linewidth,height=4in-\baselineskip}\indent \lipsum[16] \end{multicols} \paragraph*{The demo file.} The demo file for this package is \texttt{article\_tst.tex}, available in the \texttt{examples} folder. \section{My retirement} Now, I simply must get back to it. \dps \end{document}