diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 00:49:07 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 00:49:07 +0000 |
commit | 007f67a693e4d031fd3d792df8e4d5f43e2cb2e7 (patch) | |
tree | 90d17e00e572ecb1e24764b6f29c80e098b08d29 /Master/texmf-dist/doc/latex/envlab | |
parent | 950209b26f70aa87ed07c54f82a95b6f03b7c3a0 (diff) |
doc/latex
git-svn-id: svn://tug.org/texlive/trunk@84 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/envlab')
-rw-r--r-- | Master/texmf-dist/doc/latex/envlab/elguide.tex | 817 |
1 files changed, 817 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/envlab/elguide.tex b/Master/texmf-dist/doc/latex/envlab/elguide.tex new file mode 100644 index 00000000000..630b94807e6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/envlab/elguide.tex @@ -0,0 +1,817 @@ + + +\documentclass{ltxguide} + + + +\usepackage{shortvrb} + +\newcommand{\EL}{\textsl{EnvLab}} +\newcommand{\dvips}{\textsl{dvips}} +\newcommand{\PS}{\textsl{PostScript}} +\newcommand{\DS}{\textsl{DocStrip}} +\newcommand{\mailing}{\textsl{mailing}} +\newcommand{\graphics}{\textsl{graphics}} +\newcommand{\gs}{\textsl{ghostscript}} +\providecommand{\cs}[1]{{\ttfamily\char`\\{}#1}} +\MakeShortVerb{\|} +\renewcommand\star{{\ttfamily*}} +\providecommand\marg[1]{% + {\ttfamily\char`\{}{\em#1\/}{\ttfamily\char`\}}} +\providecommand\oarg[1]{% + {\ttfamily[}{\em#1\/}{\ttfamily]}} +\providecommand\parg[1]{% + {\ttfamily(}{\em#1\/}{\ttfamily)}} + +\newenvironment{figpage}{% + \begin{minipage}{0.8\textwidth}}{\end{minipage}} + +\newcommand{\meta}[1]{$\langle${\em#1\/}$\rangle$} + +\begin{document} + +\title{Printing Envelopes and Labels in \LaTeXe: \EL\ Package.\\ +User Guide\thanks{\copyright Boris Veytsman, 1996}} +\author{Boris Veytsman} +\date{June 15, 1996} + +\maketitle + +\begin{abstract} + This package provides a comprehensive and easily customizable system + for creating mailing envelopes and labels in \LaTeXe. Includes + printing barcodes and address formatting according to the US Postal + Service rules. +\end{abstract} + +\tableofcontents +\listoffigures +\listoftables + + + + +\section{Introduction} +\label{sec:Intro} + +The standard |\makelabels| command in the \LaTeXe\ |letter.cls| +document class typesets labels on Avery 5352 sheets. A typical user +may want more. \EL\ redefines |\makelabels| in\footnote{hopefully} +a more useful and customizable way. \EL: +\begin{itemize} +\item Typesets mailing labels or envelopes on a number + of pre-defined label sheets \emph{or} envelopes. +\item Can be easily configured for any customized label or envelope + sizes. The rule of thumb is: if you printer can print this, \EL\ can + typeset this. +\item Can optionally print barcodes and/or process addresses according + to the United States Postal Service Rules. +\item Allows you to include your logo in the return address. +\item Painlessly interacts with mail merging packages such as + |mailing|. +\item Does not require special fonts for address and barcodes + printing. The typesetting is implemented with standard fonts and + \LaTeX\ |\rule| commands. +\end{itemize} + +This package was written with US mailing standards in mind. This is +not a reflection of the author's americanocentrism: US standard was +only one I had official documents about. If you want to add your +national standards, please contact me with pointers to the +corresponding documents. + +This document describes the basic usage of the package. More +sophisticated users would want to typeset and browse |envlab.dtx| as +well. + +\section{Installation} +\label{sec:Install} + +The distribution of this package includes the following files: +\begin{enumerate} +\item |envlab.dtx|---fully documented program, +\item |envlab.ins|---\DS\ instruction module, +\item |elold.ins|---\DS\ instruction module for older + versions of \DS, +\item |elguide.tex| (this file)---User Guide, +\item |readme.|\emph{version\_number}---ReadMe file. +\end{enumerate} +To install the package +\begin{enumerate} +\item \LaTeX\ the file |envlab.ins|\footnote{If your |docstrip.tex| is + earlier than version 2.3, use |elold.ins| instead of + |envlab.ins|.}. It will produce three files: |envlab.drv|, + |envlab.sty| and |envlab.cfg|. +\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 +\item Produce the documentation by \LaTeX ing the files |elguide.tex| + and (optional) |envlab.drv|. +\item Enjoy! +\end{enumerate} + + +\section{Usage} +\label{sec:Usage} + + +\subsection{The basics} +\label{sec:Basics} + +The package \EL\ is intended to be used with the \LaTeXe\ |letter| +document class and similar custom classes. The standard document class +defines the environment |letter|, which, among other things, writes to +the main |.aux| file the information about mailing address. \EL\ +retrieves and typesets this information. In general one should not use +\EL\ with document classes that do not provide this information. The +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}. + + +There are three ways to use \EL: + + + +\subsubsection{Automatic generation of envelopes or labels} + \begin{decl} + |\makelabels| + \end{decl} + Put in the preamble of your document: + |\usepackage|\oarg{options}|{envlab}| and |\makelabels|. The package + will generate envelopes or labels at the end of your document, ready + to be printed. An example of such usage is shown on + Fig.~\ref{fig:Auto}. + + An interesting extension of this method is the use of \EL\ with + mail-merge packages. If such packages generate |letter| + environments, then \EL\ will happily produce envelopes or labels for + them. I tested \EL\ with the \mailing\ package available at + CTAN with excellent results. See an example on Fig.~\ref{fig:Merge}. + +\begin{figure}[tbp] + \begin{center} + \leavevmode + \begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\usepackage[personalenvelope]{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} + \opening{Dear Mary:} + I love only you + \closing{With love,} +\end{letter} + +\begin{letter}{% + Lisa O'Hara\\2 Beta Street\\Anotherplace, NY 12347} + \opening{Dear Lisa:} + I love only you + \closing{With love,} +\end{letter} +\end{document} + +\end{verbatim} + \end{figpage} + \caption{Automatic generation of envelopes} + \label{fig:Auto} + \end{center} +\end{figure} + +\begin{figure}[tbp] + \begin{center} + \leavevmode + \begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\usepackage[avery5061label,alwaysbarcodes]{envlab} +\makelabels + +\address{% +Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345} +\signature{Joe} + +\usepackage{mailing} +\addressfile{lovers.dat} +\mailingtext{% + I love only you + \closing{With love,}} + +\begin{document} +\makemailing +\end{document} +\end{verbatim} + \end{figpage} + \caption[\EL\ and \textsl{mailing} package.]{\EL\ and + \textsl{mailing} package. The file |lovers.dat| contains the + address data in the format described in the documentation for + \textsl{mailing} package.} + \label{fig:Merge} + \end{center} +\end{figure} + + +\subsubsection{Manual generation of envelopes or labels} +\begin{decl} + |\startlabels|, |\mlabel|\marg{from-address}\marg{to-address} +\end{decl} +Sometimes you need to generate only mailing labels or envelopes, but +not letters themselves. In this case prepare a separate document of +|letter| document class. Put in the preamble of your document +|\usepackage|\oarg{options}|{envlab}| and |\makelabels|, and in the +body of your document the command |\startlabels|\footnote{It sets up + page parameters for envelopes and letters}, and commands +|\mlabel|\marg{from-address}\marg{to-address} for each label you want +to generate (see Fig.~\ref{fig:Manual}) + + \begin{figure}[tbp] + \begin{center} + \leavevmode + \begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\usepackage[businessenvelope]{envlab} +\makelabels + +\begin{document} +\startlabels +\mlabel{% + Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345}{% + Mary McKeen\\2 Alpha Street\\Otherplace, NY 12346} +\mlabel{% + Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345}{% + Lisa O'Hara\\2 Beta Street\\Anotherplace, NY 12347} +\end{document} +\end{verbatim} + \end{figpage} + \caption{Manual generation of envelopes} + \label{fig:Manual} + \end{center} + \end{figure} + + +\subsubsection{Printing of return labels} +\begin{decl} + |\printreturnlabels|\marg{number}\marg{text} +\end{decl} + +Sometimes you need to print only return labels. To print \marg{number} +of labels with the \marg{text} on each use the command +|\printreturnlabels|\marg{number}\marg{text}. It is better to put it in +a separate document (see Fig.~\ref{fig:Return}). + +\begin{figure}[tbp] + \begin{center} + \leavevmode + \begin{figpage} +\begin{verbatim} +\documentclass[12pt]{letter} + +\usepackage[avery5160label,noprintbarcodes,% +nocapaddress]{envlab} +\makelabels + +\begin{document} +\printreturnlabels{180}{% + Joe Casanova\\1 Lambda Street\\Anyplace, NY 12345} +\end{document} +\end{verbatim} + \end{figpage} + \caption{Printing of return labels} + \label{fig:Return} + \end{center} +\end{figure} + + +\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} + + + +\begin{decl} + |businessenvelope|, + |executiveenvelope|, + |bookletenvelope|, + |personalenvelope|,\\ + |c6envelope|, + |c65envelope|, + |c5envelope| +\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 +with the given width and height. For example, if you have +$9.5''\times4.125''$ envelopes, use the command +|\usepackage[businessenvelope]{envlab}|. + +\begin{table}[tbp] + \begin{center} + \leavevmode + \begin{tabular}{ccc} + \hline + Package option & Width & Height\\ + \hline + businessenvelope & 9.5$''$ & 4.125$''$\\ + executiveenvelope & 7.5$''$ & 3.875$''$\\ + bookletenvelope & 10.5$''$ & 7.5$''$\\ + personalenvelope & 6.5$''$ & 3.625$''$\\ + c6envelope & 162 mm & 114 mm\\ + c65envelope & 224 mm & 114 mm\\ + c5envelope & 229 mm & 162 mm\\ + \hline + \end{tabular} + \caption{Standard envelope sizes} + \label{tab:Env} + \end{center} +\end{table} + +\begin{decl} + |\SetEnvelope|\oarg{top margin}\marg{width}\marg{height} +\end{decl} +If your envelope is not listed in Table~\ref{tab:Env}, put in the +preamble of your document the command +|\SetEnvelope|\marg{width}\marg{height}\footnote{The optional first + argument of this command is described in Section~\ref{sec:Print}}. +Its arguments are dimensions of your envelope (together with the +units!). For example, if you have $8''\times4''$ envelopes, use the +command |\SetEnvelope{8in}{4in}|. + +\begin{decl} +|avery5160label|, +|avery5161label|, +|avery5162label|,\\ +|avery5163label|, +|avery5164label| +\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 +the label total width and height, $t$ and $l$ are the distance between +the edge of the paper and the label (see Fig.~\ref{fig:Labels}). The +numbers $N_c$ and $N_r$ are correspondingly the numbers of columns and +rows of labels on a sheet. + +\begin{figure}[tbp] + \begin{center} + \leavevmode +\setlength{\unitlength}{0.00083300in}% +% +\begingroup\makeatletter\ifx\SetFigFont\undefined% +\gdef\SetFigFont#1#2#3#4#5{% + \reset@font\fontsize{#1}{#2pt}% + \fontfamily{#3}\fontseries{#4}\fontshape{#5}% + \selectfont}% +\fi\endgroup% +\begin{picture}(5169,4051)(76,-3305) +\thicklines +\put(1201,-2761){\framebox(1700,900){}} +\put(901,539){\line( 0,-1){975}} +\put(1201,539){\line( 0,-1){1200}} +\put(301,-361){\line( 1, 0){675}} +\put(301,-661){\line( 1, 0){1125}} +\put(301,-1861){\line( 1, 0){1200}} +\put(376,-361){\vector( 0, 1){ 0}} +\put(376,-361){\vector( 0,-1){300}} +\put(376,-661){\vector( 0, 1){ 0}} +\put(376,-661){\vector( 0,-1){1200}} +\put(901,464){\vector(-1, 0){ 0}} +\put(901,464){\vector( 1, 0){300}} +\put(901,-361){\line( 0,-1){2900}} +\put(1201,-1561){\framebox(1700,900){}} +\put(3201,-1561){\framebox(1700,900){}} +\put(3201,-2761){\framebox(1700,900){}} +\put(901,-361){\line( 1, 0){4300}} +\put(2901,239){\line( 0,-1){975}} +\put(3201,539){\line( 0,-1){1275}} +\put(2901,164){\vector(-1, 0){ 0}} +\put(2901,164){\vector( 1, 0){300}} +\put(1201,464){\vector(-1, 0){ 0}} +\put(1201,464){\vector( 1, 0){2000}} +\put( 76,-1336){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}$H$}}} +\put(976,614){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}$l$}}} +\put(151,-586){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}$t$}}} +\put(2976,239){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}$r$}}} +\put(2051,614){\makebox(0,0)[lb]{\smash{\SetFigFont{12}{14.4}{\rmdefault}{\mddefault}{\updefault}$W$}}} +\end{picture} + \caption{Labels parameters} + \label{fig:Labels} + \end{center} +\end{figure} + +\begin{table}[tbp] + \begin{center} + \leavevmode + \begin{tabular}{ccccccccc} + \hline + Package option & $W$ & $H$ & $t$ & $l$ & $r$ & $N_c$ & $N_r$\\ + \hline + avery5160label & 2.75$''$ & 1$''$ & 0.5$''$ & 0.19$''$ & + 0.12$''$ & 3 & 10\\ + avery5161label & 4.19$''$ & 1$''$ & 0.5$''$ & 0.16$''$ & + 0.19$''$ & 2 & 10\\ + avery5162label & 4.19$''$ & 1.33$''$ & 0.83$''$ & 0.16$''$ & + 0.19$''$ & 2 & 7\\ + 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\\ + \hline + \end{tabular} + \caption{Standard label sizes} + \label{tab:Lab} + \end{center} +\end{table} + +\begin{decl} + |\SetLabel|% + \marg{$W$}\marg{$H$}\marg{$t$}\marg{$l$}\marg{$r$}\marg{$N_c$}\marg{$N_r$} +\end{decl} +If your label size is not listed in Table~\ref{tab:Lab}, put in the +preamble of your document the command |\SetLabel|\marg {$W$}\marg +{$H$}\marg {$t$}\marg {$l$}\marg {$r$}\marg {$N_c$} \marg{$N_r$}. This +command is completely analogous to the command |\SetEnvelope| +described above. + + +\subsection{Printing details}\label{sec:Print} + +\EL\ typesets envelopes or sheets of labels just after the main text +of all letters in the documents. Most printers that have paper tray +and manual feeding slot use manual slot if it is not empty and tray +otherwise. When printing envelopes or labels on such printers, you +wait until the text of letters is printed, and then insert envelopes +or label sheets one by one in the manual feeding slot. + +\begin{decl} + |\AtBeginLabels|\marg{Printer specific commands}\\ + |\AtBeginLabelPage|\marg{Printer specific commands} +\end{decl} +However some printers have several paper trays and even paper trays +for envelopes. Moreover, sometimes the switching between trays can be +performed automatically by software commands. If you know such +commands for your printer and know how to insert them in the |.dvi| file +(e.g. through |\special|s), you can use the hook +|\AtBeginLabels|. Put the printer specific commands in the +argument of |\AtBeginLabels|. If you succeed, please e-mail me these +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. + +\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}|). + +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). + +\begin{decl} + |rotateenvelopes|, |norotateenvelopes| \\ + Options for \graphics\ package +\end{decl} +Usually envelopes are printed in the landscape mode, i.e. rotated by +$90^\circ$. The package options |rotateenvelopes| (default) and +|norotateenvelopes| control the rotation. Note that if you want to +rotate envelopes, you need the standard package \graphics\ +installed on your system. Also, you need a |dvi| driver that +understands rotation commands of the \graphics\ package. (I +think currently only \dvips\ does this). The package +\graphics\ is called internally by \EL. If you need to pass +specific options to the \graphics\ package, include it in the +list of options of \EL. For example, the command +|\usepackage[personalenvelope,dvips]{envlab}| calls \graphics\ +with the option |dvips|. + +\begin{decl} + |centerenvelopes|, |leftenvelopes|, + |rightenvelopes|,\\ + |customenvelopes|, |\EnvelopeLeftMargin| +\end{decl} +Most of manual feeding slots accept non-standard paper (like +envelopes) \emph{centered}. However there are some printers that +require non-standard paper to be pushed to the left or right end of +the slot. The package options |centerenvelopes| (this is the default +option), |leftenvelopes|, |rightenvelopes| and |customenvelopes| +control the position of the envelope with respect to the slot. The +first three options are self-explanatory. The fourth gives the control +over the envelope positioning to the user. If you choose this option, +you must set the length |\EnvelopeLeftMargin| before printing the +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). + + +\subsection{Formatting of the address (barcodes and capitalization)} + +In the United States (and many other countries as well) the mailing +pieces are sorted by machines. This process is greatly facilitated if +the addresses typesetting is enhanced for machine readability. + + +USPS standards \cite{Pub25} establish two ways for making the addresses +machine readable: barcodes and special printing of addresses for +optical character recognition (OCR) devices. In principle any method +would be sufficient, but it seems reasonable to play it safe using +\emph{both} methods. Therefore \EL\ by default both prints barcodes +and prepares addresses for OCR. This behavior can be controlled +through package options. + +Note that only ``To-Address'' should be machine-readable. The return +address can be formatted more freely. You can, for example, include +your logo in the \emph{return} address (see Section~\ref{sec:Cust}) + +\begin{decl} + |printbarcodes|, |noprintbarcodes| +\end{decl} +The addresses in the US contain ``zipcodes''---strings of five digits +(5-code) or 9 digits divided by dash (5+4 code). The 5+4 code is +actually a detalization\footnote{There is an even finer detalization + provided by the so called DPC numbers \cite{Pub25}. \EL\ does not + support it yet}, so the zipcode 12345-6789 can be written as just +12345. This code is converted into a series of long and short bars and +printed on a label or envelope. If the option |printbarcodes| +(default) is selected, \EL\ tries to extract zipcode from the address +and print it. It defines zipcode as a sequence of digits that: +\begin{enumerate} +\item Has no characters other than digits and dashes (-) inside it +\item Has no groups in braces (|{}|)inside it and is not braced itself +\item \label{item:Last} Is the last in the address field +\end{enumerate} +The option |noprintbarcodes| suppresses the typesetting of barcodes. + +\begin{decl} + |alwaysbarcodes|, |noalwaysbarcodes| +\end{decl} +Sometimes the rule~\ref{item:Last} is too harsh. Consider, for example, +the following address: +\begin{quote} + Mr. A. B. User\\ + 32 Omega Road\\ + Palo Alto Ca 12345\\ + USA +\end{quote} +Obviously it has a zipcode, however \EL\ normally will not see it. The +option |alwaysbarcodes| lifts this restriction, and \EL\ typesets barcodes +for the last number met in the address even if it is followed by some other +characters. Be careful with this option! If you select it, all addresses +must actually have zipcodes. Otherwise \EL\ will happily convert to bars a +street or apartment number. + +This option is especially useful if the addresses are not typed in +manually, but are prepared by some mail merge program like +\mailing\ package. Then they can contain spaces at the end, and +\EL\ will not recognize zipcodes unless |alwaysbarcodes| is selected. +The option |noalwaysbarcodes| (default) suppresses this behavior. + +\begin{decl} + |capaddress|, |nocapaddress| +\end{decl} +To facilitate OCR \EL\ typesets addresses in \textsf{\large 12pt sans + serif} font. The machine readability of the addresses is increased +if the following recommendations of US Postal service are followed: +\begin{itemize} +\item Converting the addresses to uppercase +\item Stripping punctuation from the addresses +\item Inserting 1 pt kern between the letters +\end{itemize} +The result looks rather ugly for human eye. However, it is intended not for +humans, but for machines. We will call this processing \emph{address + capitalization}. \EL\ performs capitalization of the +``To-addresses'' automatically if the option |capaddress| (default) is +selected. The option |nocapaddress| suppresses capitalization of the +addresses. + +If you decide to capitalize the addresses, be careful with the +accented letters. Since \EL\ processes the address letter by +letter\footnote{Rather, token by token}, it tries to insert kern +between |\"| and |u| in the word |M\"uller| causing an +error. Therefore all accented letters should be enclosed in +braces. The correct way to typeset Herr.~M{\"u}ller is +|Herr.~M{\"u}ller|\footnote{I probably should strip all accents since + they might confuse OCR. However USPS says nothing about accents, and + I decided to preserve them.}. + +\subsection{Printing of return addresses} + + +\begin{decl} + |printreturnaddress|, |noprintreturnaddress| +\end{decl} +\NEWfeature{Version 1.1} +The return addresses are printed on the envelopes if the package option +|printreturnaddress| (default) is chosen. Alternatively, the package +option |noprintreturnaddress| suppresses the printing of the return +address. Section~\ref{sec:Cust} describes how to customize your return +address. + + +\section{Customization} +\label{sec:Cust} + +\begin{decl} + |\returnaddress| +\end{decl} +Many people and companies want to print their logos on the +envelopes. You can include any image in your return address. The macro +|\returnaddress| controls the contents of the ``From-address'' field +on your envelope. \EL\ takes it from the |\address| command in your +document. However you can easily redefine it. For example, if the file +|mylogo.eps| contains your logo, you put in the preamble +|\renewcommand{\returnaddress}{\protect\includegraphics{mylogo}}| to +customize your envelopes. If you want return labels with your logo, +use command like +|\printreturnlabels{180}{{\protect\includegraphics{mylogo}}|. +\NEWdescription{Version 1.1} You can +include both logos and textual information into the |\returnaddress| macro. +While customizing return address, it is useful to know that +\LaTeX\ |letter| document class stores the contents of the |\address| +command in the |\fromaddress| macro, so the default definition of the +return address implemented in \EL\ is +|\renewcommand{\returnaddress}{\fromaddress}|. + +\begin{decl} + Customization of lengths +\end{decl} +All lengths (heights, widths, margins) are user-customizable. Consult +the file |envlab.dtx| for their definitions and use. + +\begin{decl} + |envlab.cfg| +\end{decl} +If you use \EL\ for some time, you probably would have a number of +options and commands that you execute in most documents prepared with +the package. You can save the typing by putting such commands in the +configuration file |envlab.cfg|. A sample configuration file is +included in the \EL\ distribution. You are free to hack it in any way +you like\footnote{\emph{Important:} |envlab.cfg| is the only file you + should modify. You are \emph{not} allowed to modify any other files + in the \EL\ distribution.}. This file consists of two parts: +|\ExecuteOptions|\marg{options} and +|\AtEndOfPackage|\marg{customization commands}. The options listed in +the first part supersede the default options of \EL. However the +options explicitly listed as the arguments of the |\usepackage| +command supersede the options in the configuration file. The commands +listed in the second part of the configuration file---as the arguments +of the |\AtEndOfPackage| command---supersede all definitions in the +package itself. Therefore by hacking |envlab.cfg| you can completely +change the behavior of the package without modifying \EL. + + +\section{Bugs and limitations} +\label{sec:Bugs} + +\NEWdescription{Version 1.1} +The most important limitation of \EL\ is related to an essential +limitation of \TeX\ itself. People usually want their envelopes printed +rotated $90^\circ$, so the envelopes are inserted in the printed by the +short side. Unfortunately \TeX\ was not designed with the text rotation +in mind. Therefore ``basic'' \TeX\ does not allow to typeset envelopes in +this manner. The standard \LaTeXe\ package \graphics\ uses \PS\ to add +this functionality to \TeX. \EL\ uses \graphics\ internally if the option +|rotateenvelopes| (default) is in effect. Therefore to typeset rotated +envelopes you need \graphics\ and either a \PS\ printer or \gs. Otherwise +use |norotatenvelopes| option if your printed can process envelopes +inserted by the long side. I understand that there is a problem with +printing rotated text on non-\PS\ printers. Probably the authors of +|dvi| drivers should be urged to address it. + +\NEWdescription{Version 1.1} +\EL\ thinks that all options it cannot understand belong to the +\graphics\ package and sends them there. Therefore if you misspell +an option of the \EL\ package, you will receive an error message from the +\graphics\ package rather than from \EL. + + +Please send bug reports to |boris@plmsc.psu.edu|. You can find +experimental versions of \EL\ at my homepage +(|http://planck.psu.edu/~boris|). + + +\section{Legalese} + +The package \EL\ is provided ``as is'' and comes with absolutely no +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for +a particular purpose. The entire risk as to the quality and +performance of the program is with you. Should the program prove +defective, you assume the cost of all necessary servicing, repair or +correction. + +In no event unless required by applicable law will the author of the +program be liable to you for damages, including any general, special, +incidental or consequential damages arising out of any use of the +program or out of inability to use the program (including but not +limited to loss of data or data being rendered inaccurate or losses +sustained by you or by third parties as a result of a failure of the +program to operate with any other programs), even if such holder or +other party has been advised of the possibility of such damages. + +In particular, while every effort was made to provide typesetting of +mailing pieces accordingly to the United States Postal Service +recommendations, the author of the package does not warrant neither +successful delivery of mail nor granting of mailing discounts in the +USA or any other countries. + + + + +\EL\ package is covered by the same license as the current \LaTeXe\ +package (see the files |legal.txt| and |modguide.tex| in the \LaTeXe\ +distribution). + +Avery and all Avery codes are trademarks of Avery Dennison Corporation. +\bigskip + + + +\begin{thebibliography}{1} +\addcontentsline{toc}{section}{\protect\refname} + \bibitem{Pub25} + USPS. + \newblock {\em Designing Business Letter Mail (Pub 25)}, August 1995. +\end{thebibliography} + + + + + + + +\end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: + + + + + + + + + |