diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/envlab/elguide.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/envlab/elguide.tex | 422 |
1 files changed, 354 insertions, 68 deletions
diff --git a/Master/texmf-dist/doc/latex/envlab/elguide.tex b/Master/texmf-dist/doc/latex/envlab/elguide.tex index 630b94807e6..f0e43669de9 100644 --- a/Master/texmf-dist/doc/latex/envlab/elguide.tex +++ b/Master/texmf-dist/doc/latex/envlab/elguide.tex @@ -1,5 +1,3 @@ - - \documentclass{ltxguide} @@ -31,9 +29,9 @@ \begin{document} \title{Printing Envelopes and Labels in \LaTeXe: \EL\ Package.\\ -User Guide\thanks{\copyright Boris Veytsman, 1996}} +User Guide\thanks{\copyright Boris Veytsman, 1996, 1997}} \author{Boris Veytsman} -\date{June 15, 1996} +\date{July 16, 1997} \maketitle @@ -105,7 +103,8 @@ To install the package \item (Optional) Look at the file |envlab.cfg| and change it accordingly to your taste (see Section~\ref{sec:Cust}). \item Move the files |envlab.sty| and |envlab.cfg| to the - \LaTeX\ search path + \LaTeX\ search path\footnote{The users of kpathsea based \TeX---like + te\TeX---should also issue |texhash| to update the search database.} \item Produce the documentation by \LaTeX ing the files |elguide.tex| and (optional) |envlab.drv|. \item Enjoy! @@ -128,17 +127,15 @@ retrieves and typesets this information. In general one should not use package types an error message if it cannot find the |makelabels| command in the class it is called from\footnote{If you want to create a custom letter class to be used with \EL, take care to write - commands \cs{startlabels} and \cs{mlabel}\marg{from-address}\marg{to-address} - to the |.aux| file. Also - define a \cs{makelabels} command. The latter can do - anything---\EL\ will redefine it anyway, but the package needs to see - \cs{makelabels} defined at the start up}. + commands \cs{startlabels} and + \cs{mlabel}\marg{from-address}\marg{to-address} to the |.aux| file. + Also define a \cs{makelabels} command. The latter can do + anything---\EL\ will redefine it anyway, but the package needs to + see \cs{makelabels} defined at the start up}. There are three ways to use \EL: - - \subsubsection{Automatic generation of envelopes or labels} \begin{decl} |\makelabels| @@ -301,15 +298,33 @@ nocapaddress]{envlab} \subsection{Sizes of labels and envelopes} -\EL\ package makes a distinction between envelopes and labels. The -differences are: -\begin{itemize} - \item Envelopes are printed on separate pages, labels are printed - several per page - \item Envelopes might have return address, labels might not - \item Envelopes are rotated by default, labels are never rotated -\end{itemize} - +\NEWdescription{Version 1.2} \EL\ package recognizes three kinds of media: +envelopes, labels and \NEWfeature{Version 1.2}``big labels''. Envelopes are +printed one per physical page, they could be rotated (i.~e.\ inserted +in the printer sidewise) and could carry both the shipping address and +return address. Labels and big labels are peel-off labels that are +printed several per physical page, they could not be rotated. The +difference between labels and big labels is that labels have only +shipping address while big labels have both return \emph{and} shipping +addresses. These differences are summarized in Table~\ref{tab:diff}. +The kind and the size of the media are set either by package options +or by the corresponding commands. +\begin{table}[tbp] + \begin{center} + \leavevmode + \begin{tabular}{cccc} + \hline + Media & Number per page & Rotation & Return address \\ + \hline + Envelopes & One & Settable & Yes\\ + Labels & Several & Not rotated & No\\ + Big Labels & Several & Not rotated & Yes\\ + \hline + \end{tabular} + \caption{Differences between envelopes, labels and big labels} + \label{tab:diff} + \end{center} +\end{table} \begin{decl} @@ -319,7 +334,7 @@ differences are: |personalenvelope|,\\ |c6envelope|, |c65envelope|, - |c5envelope| + |c5envelope|, |dlenvelope| \end{decl} \EL\ knows about a number of standard envelopes. The options listed in Table~\ref{tab:Env} are used to typeset the addresses for envelopes @@ -341,6 +356,7 @@ $9.5''\times4.125''$ envelopes, use the command c6envelope & 162 mm & 114 mm\\ c65envelope & 224 mm & 114 mm\\ c5envelope & 229 mm & 162 mm\\ + dlenvelope & 220 mm & 110 mm\\ \hline \end{tabular} \caption{Standard envelope sizes} @@ -362,9 +378,11 @@ command |\SetEnvelope{8in}{4in}|. \begin{decl} |avery5160label|, |avery5161label|, -|avery5162label|,\\ -|avery5163label|, -|avery5164label| +|avery5162label|, +|avery5163label|,\\ +|avery5164label|, +|avery5262label|, +|herma4625label| \end{decl} \EL\ knows also about a number of commercially available labels. They are listed in Table~\ref{tab:Lab}. The dimensions $W$ and $H$ are @@ -436,7 +454,11 @@ rows of labels on a sheet. avery5163label & 4.19$''$ & 2$''$ & 0.5$''$ & 0.16$''$ & 0.19$''$ & 2 & 5\\ avery5164label & 4.19$''$ & 3.33$''$ & 0.5$''$ & 0.16$''$ & - 0.19$''$ & 2 & 3\\ + 0.19$''$ & 2 & 3\\ + avery5262label & 110 mm & 34 mm & 21 mm & 4 mm & + 5 mm & 2 & 7\\ + herma4625label & 105 mm & 42.3 mm & 0 mm & 5 mm & + 5 mm & 2 & 7\\ \hline \end{tabular} \caption{Standard label sizes} @@ -454,6 +476,45 @@ preamble of your document the command |\SetLabel|\marg {$W$}\marg command is completely analogous to the command |\SetEnvelope| described above. +\begin{decl} +|avery5163biglabel|, +|avery5164biglabel| +\end{decl} +\NEWfeature{Version 1.2} +``Big labels'' are big enough to carry both shipping and return +addresses, otherwise their dimensions are completely analogous to the +ones of labels. The predefined big labels are listed in +Table~\ref{tab:BigLab}. Note the difference between package options, +say, |avery5163label| and |avery5163biglabel|: while the physical +media is same, the formatting of addresses is quite different. + +\begin{table}[tbp] + \begin{center} + \leavevmode + \begin{tabular}{ccccccccc} + \hline + Package option & $W$ & $H$ & $t$ & $l$ & $r$ & $N_c$ & $N_r$\\ + \hline + avery5163biglabel & 4.19$''$ & 2$''$ & 0.5$''$ & 0.16$''$ & + 0.19$''$ & 2 & 5\\ + avery5164biglabel & 4.19$''$ & 3.33$''$ & 0.5$''$ & 0.16$''$ & + 0.19$''$ & 2 & 3\\ + \hline + \end{tabular} + \caption{Standard big label sizes} + \label{tab:BigLab} + \end{center} +\end{table} + +\begin{decl} + |\SetBigLabel|% + \marg{$W$}\marg{$H$}\marg{$t$}\marg{$l$}\marg{$r$}\marg{$N_c$}\marg{$N_r$} +\end{decl} +\NEWfeature{Version 1.2} +If your label size is not listed in Table~\ref{tab:BigLab}, put in the +preamble of your document the command |\SetBigLabel|\marg {$W$}\marg +{$H$}\marg {$t$}\marg {$l$}\marg {$r$}\marg {$N_c$} \marg{$N_r$}. + \subsection{Printing details}\label{sec:Print} @@ -479,41 +540,23 @@ commands and the specifications of your printer, so I can include them in the future releases of \EL. \NEWfeature{Version 1.1} Note that the command |\AtBeginLabels| is cumulative: if you use it several times in the same document, the new commands will be appended without overwriting -the previous definitions. \NEWfeature{Version 1.1}. The command -|\AtBeginLabelPage| works in the same way, but its argument will be -inserted at the beginning of each \emph{page} of \EL\ output, i.e. before -printing each envelope or label sheet. +the previous definitions. -\begin{decl} - |pswait|, |nopswait| -\end{decl} -\NEWfeature{Version 1.1} -If you use \dvips, you can ask it to switch your printer to manual -mode just before printing envelopes and labels. The printer will print the -main body of the letter(s) using the paper tray, and then stop, waiting for -envelopes or label sheets to be fed in the manual slot. The option -|pswait|, based on the code by \emph{William Slough} -\texttt{<cfwas@eiu.edu>}, -inserts the corresponding \PS\ |special|s in your output. -The option |nopswait| (default) suppresses this behavior. +\NEWfeature{Version 1.1} +The command |\AtBeginLabelPage| works in the +same way, but its argument will be inserted at the beginning of each +\emph{page} of \EL\ output, i.e. before printing each envelope or +label sheet. -\begin{decl} - |\PSwait| -\end{decl} -\NEWfeature{Version 1.1} William Slough's code can be useful in -other situations when you need to switch to manual mode in the -middle of the document. The command |\PSwait| inserts the -corresponding \PS\ code in the \dvips\ output. (An attentive reader -has probably already guessed that the |pswait| option is implemented -through the command |\AtBeginLabels{\PSwait}|). +The code for \PS{} printers is described in Section~\ref{sec:PS}. -Note that there are differences in the handling of the text close to paper -edges from printer to printer. Since envelopes and label sheets have text -near the edges, you might need to tune the offsets. For labels you can use -the command |\SetLabel| to do this. The optional first argument of the -command |\SetEnvelope| sets the distance between the leading edge of -``logical paper'' and the physical leading edge of the envelope (0 pt by -default). +There are differences in the handling of the text close to paper edges +from printer to printer. Since envelopes and label sheets have text +near the edges, you might need to tune the offsets. For labels you +can use the command |\SetLabel| to do this. The optional first +argument of the command |\SetEnvelope| sets the distance between the +leading edge of ``logical paper'' and the physical leading edge of the +envelope (0 pt by default). \begin{decl} |rotateenvelopes|, |norotateenvelopes| \\ @@ -550,18 +593,16 @@ envelopes. For example to shift the envelope for $2''$ from the left edge use |\setlength{\EnvelopeLeftMargin}{2in}| \begin{decl} - |LabelOffsetRow|, |LabelOffsetCol|,\\ |\FirstLabel|\marg{Row}\marg{Col} \end{decl} -Sometimes you need to print labels on a partially used sheet. The -counters |LabelOffsetRow| and |LabelOffsetCol| (default values 1) set -the position of the first label to print. You can change them using -the |\setlength| command. \NEWfeature{Version 1.1} Alternatively, you can -use the command |\FirstLabel|\marg{Row}\marg{Col} to set both counters -simultaneously. For example, the command |\FirstLabel{3}{2}| causes \EL\ -to start printing labels beginning with the second label in the third -row. Note that labels are printed row by row (\emph{not} column by -column, like in the standard \LaTeXe\ |letter| class). +\NEWdescription{Version 1.2} Sometimes you need to print labels on a +partially used sheet. \NEWfeature{Version 1.1} The command +|\FirstLabel|\marg{Row}\marg{Col} allows you to start printing of +labels from the given position. For example, the command +|\FirstLabel{3}{2}| causes \EL\ to start printing labels beginning +with the second label in the third row. Note that labels are printed +row by row (\emph{not} column by column, like in the standard \LaTeXe\ +|letter| class). \subsection{Formatting of the address (barcodes and capitalization)} @@ -668,6 +709,152 @@ address. Section~\ref{sec:Cust} describes how to customize your return address. +\subsection{Change of settings for some labels} + +\begin{decl} + |\suppresslabels|, |\resumelabels|,\\ + |\suppressonelabel|, |\resumeonelabel| +\end{decl} +\NEWfeature{Version 1.2} In many cases your |.tex| file contains many +|letter| environments. By default, if the command |\makelabels| +appears in the preamble, all them will generate mailing labels. +Sometimes you may want to override this behavior. \EL{} provides four +handy commands for this. The command |\suppresslabels| issued anywhere +before |\end{letter}| will suppress printing of mailing labels for the +current and subsequent letters---until the command |\resumelabels| is +issued. The commands |\suppressonelabel| and |\resumeonelabel| are +similar, but act only on the current label. + + + + +\begin{decl} + |\ChangeEnvelope|, |\ChangeLabel|, |\ChangeBigLabel| +\end{decl} +\NEWfeature{Version 1.2} The commands |\SetEnvelope|, |\SetLabel|, +|\SetBigLabel| have immediate effect: they set the sizes of all +following mailing labels. The mailing labels, automatically generated +by |letter| environments, are written to the |.aux| file, and +therefore they all will be printed for the envelope or labels size set +by the last |\Set| command. Sometimes, however, one needs to print +envelopes for the different |letter| environments at different sizes. +The commands |\ChangeEnvelope|, |\ChangeLabel| and |\ChangeBigLabel| +have the same meaning and arguments as the corresponding |\Set| +commands. However, instead of setting the media, they write the +information into the |.aux| file, and the actual change is delayed +until the |.aux| file is read (i.~e.~at the end of the document). +Therefore they act only on the mailing labels, extracted from the +|letter| environments, that follow this command. + + + +\subsection{Enhancements for the \texttt{letter} environment} + +\NEWfeature{Version 1.2} +Some people letters contain below the address the subject like this +\begin{quote} + Re: our recent talk +\end{quote} +A way to do this is to include it in the address (see +Figure~\ref{fig:wrong}). However, this additional info will be put in +the mailing label, which is wrong. The package \EL{} defines a command +|\re| to cope with this. + +\begin{figure}[tbp] + \leavevmode +\begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\address{% + Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345} +\signature{Joe} + +\begin{document} + +\begin{letter}{% + Mary McKeen\\ + 2 Alpha Street\\ + Otherplace, NY 12346\\[2ex] + Re: Our love} + \opening{Dear Mary:} + I love only you + \closing{With love,} +\end{letter} +\end{document} +\end{verbatim} +\end{figpage} +\caption{A wrong way to include subject information in the letter} + \label{fig:wrong} +\end{figure} + +\begin{decl} + |re|, |nore| +\end{decl} +This command poses the following problem. The rest of the \EL{} +package meant to work not only with the standard |letter| class, but +with any other letter classes that write address information to the +|.aux| file in the standard format. However, if a package makes a +change to the formatting of the letter itself, we cannot be guaranteed +that it will work with all letter classes. Therefore we chose the +following solution: the additional features are enabled only if the +package option |re| is selected. If the option |nore| (default) is +selected, the package works in the ``compatibility mode'', and the +additional features are disabled\footnote{For \TeX perts: if the + option |re| is chosen, \EL{} redefines the \cs{opening} command. See + the file |envlab.dtx| for additional information.}. + + + + +\begin{decl} + |\re| +\end{decl} +\NEWfeature{Version 1.2} +The command |\re| defines additional subject information to be put +between the address and opening. It is very simple: just put +|\re|\marg{Subject} anywhere before the |\opening| command (see +Figure~\ref{fig:right}). + +\begin{figure}[tbp] +\leavevmode +\begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\usepackage[avery5160label,re]{envlab} +\makelabels + +\address{% + Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345} +\signature{Joe} + +\begin{document} + + \begin{letter}{% + Mary McKeen\\ + 2 Alpha Street\\ + Otherplace, NY 12346} + \re{Our love} + \opening{Dear Mary:} + I love only you + \closing{With love,} + \end{letter} +\end{document} +\end{verbatim} +\end{figpage} +\caption{The \EL{} way to include subject information in the letter} + \label{fig:right} +\end{figure} + +Actually the scope of the |\re| command is the same as the scope of +the commands like |\address| or |\signature|: if it is issued outside +the |letter| environment, it affect all subsequent letters. If it is +issued inside the |letter| environment (but before the |\opening| +command), it is local to the current letter. To disable global |\re|, +just issue this command with empty argument: |\re{}|. + + \section{Customization} \label{sec:Cust} @@ -699,6 +886,17 @@ All lengths (heights, widths, margins) are user-customizable. Consult the file |envlab.dtx| for their definitions and use. \begin{decl} + |\ReName| +\end{decl} +\NEWfeature{Version 1.2} +The subject name for the |\re| command is stored in the |\ReName| +macro. Normally it is defined as plain style ``Re: ''. To +|\newcommand{\ReName}{Re: }| (note the space after semicolon!). To +change this, use |\renewcommand|, for example +|\renewcommand{\ReName}{\textbf{Subject: }}|. + + +\begin{decl} |envlab.cfg| \end{decl} If you use \EL\ for some time, you probably would have a number of @@ -720,6 +918,83 @@ package itself. Therefore by hacking |envlab.cfg| you can completely change the behavior of the package without modifying \EL. +\section{Commands for \PS{} printers} +\label{sec:PS} + + +I myself know next to nothing about programming of \PS{} printers, and +the following is based on contributions of \EL{} users. + +\begin{decl} + |pswait|, |nopswait| +\end{decl} +\NEWfeature{Version 1.1} +If you use \dvips, you can ask it to switch your printer to manual +mode just before printing envelopes and labels. The printer will print the +main body of the letter(s) using the paper tray, and then stop, waiting for +envelopes or label sheets to be fed in the manual slot. The option +|pswait|, based on the code by \emph{William Slough} +\texttt{<cfwas@eiu.edu>}, +inserts the corresponding \PS\ |special|s in your output. +The option |nopswait| (default) suppresses this behavior. + +\begin{decl} + |\PSwait| +\end{decl} +\NEWfeature{Version 1.1} William Slough's code can be useful in +other situations when you need to switch to manual mode in the +middle of the document. The command |\PSwait| inserts the +corresponding \PS\ code in the \dvips\ output. (An attentive reader +has probably already guessed that the |pswait| option is implemented +through the command |\AtBeginLabels{\PSwait}|). + +\begin{decl} + |psautotray|, |nopsautotray| +\end{decl} +\NEWfeature{Version 1.2} +\emph{Uri Blumenthal} \texttt{<uri@ibm.net>} wrote code for automatic +switching to other trays For example, if your envelopes are loaded +into \texttt{/otherenvelopetray}, try the following code: +\begin{verbatim} +\AtBeginLabels{% + \special{ps:clear grestore + statusdict begin false setduplexmode + /manualfeed true def + /otherenvelopetray end 0 0 bop }} +\end{verbatim} +If the package option |psautotray| is selected, \EL{} will try to +guess the proper tray from the envelope you chose. The option +|nopsautotray| (default) disables this feature. At present this +mechanism is rather experimental; I would be grateful for +failure/success reports as well as for suggestions. Note that |pswait| +and |psautotray| options are not compatible (|psautotray| switches the +printer to the manual mode anyway). If you selected them both, only +the one selected last will be chosen. + +\NEWdescription{Version 1.2} +Another solution by \emph{Robert Estes} +\texttt{<estes@ece.ucdavis.edu>} works for Optra R+ printers: +\begin{verbatim} +\AtBeginLabels{\special{ps: +clear grestore +1 dict dup /MediaPosition null put setpagedevice +1 dict dup /ManualFeed true put setpagedevice +1 dict dup /Policies 1 dict dup /PageSize 2 put put setpagedevice +2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice +0 0 bop +}} +\end{verbatim} + +\NEWdescription{Version 1.2} +The code by \emph{Greg Jumper} \texttt{<jumper@lens.sri.com>} works +for HP LaserJet 4MV: +\begin{verbatim} + \special{! <</ManualFeed true /DeferredMediaSelection true + /PageSize [297 684] /ImagingBBox null>> setpagedevice} +\end{verbatim} + + + \section{Bugs and limitations} \label{sec:Bugs} @@ -750,6 +1025,17 @@ experimental versions of \EL\ at my homepage (|http://planck.psu.edu/~boris|). + +\section{Acknowledgements} + +\NEWdescription{Version 1.2} Since the first version of \EL{} was +released, many users helped me with bug reports, suggestions and code +contributions to enhance it. I would like to express my gratitude to +Uri Blumenthal, Arnie Ostebee, William Slough, Ed Reingold, Jos +Jansen, Juergen Schlegelmilch, Jim Hill, Greg Jumper, Robert Estes, +Genick Bar-Meir and many others for their help. + + \section{Legalese} The package \EL\ is provided ``as is'' and comes with absolutely no |