0

For several years I have used the envlab package for producing labels for envelopes. Now I get peculiar results when normally I would expect 14 labels to fill an A4 sheet they now occupy an area approximately 10 by 12 mm. I am using TeXlive 2017 with all packages up to date as of 2 hours ago.

For convenience I keep all the address data in a file addressdata.tex which I \input to a file like xmaslabels.tex for generating the labels for our Xmas card list.

I have tried to concatenate these two kinds of files into one MWE as below (hopefully without any typos):

% envlabprobmwe.tex
\documentclass[12pt,a4paper]{letter}
\usepackage[avery5160label,noprintbarcodes,nocapaddress]{envlab}
\SetLabel{3.85in}{1.4in}{0.6in}{0.1in}{2}{7}%% Avery MP7163 labels
\let\oldPrintLabel\PrintLabel
\renewcommand{\PrintLabel}[1]{\fbox{\oldPrintLabel{#1}}}% box labels

%% \mlabel{From}{To}
\newcommand{\add}[5]{\mbox{}\mlabel{}}{#1\\#2}}

%% Names and address data

\newcommand*{\Alf{\add{Alfred}% name
  {Warwickshire}% address
  {Phone}% phone number
  {Email}% email address
  {}% other information
  }

\newcommand*{\Joe}{\add{Joseph}%
  {Arithma}%
  {Phone \\ Mobile}%
  {Email \\ Facebook}%
  {Children}%
}

\startlabels

\begin{document}
%% print labels, two columns of seven --- 14 per page
\Alf
\Joe
\end{document}

When I process this with pdflatex and print it the result is an unreadable blob of text at the top center of the sheet, about 10mm wide.

Unless I can, with your help, get this sorted out my wife (and hence myself) will not be happy.

  • It would take a lot of work to set up, but you could handle any label sheet format using flowfram and use \newframe to jump to the next label. – John Kormylo Dec 3 '17 at 17:07
2

Your code did not compile because some curly brackets were misplaced (for instance in the definition of \Alf). Once this is fixed, some labels are indeed being typeset.

\documentclass[12pt,a4paper]{letter}
\usepackage[avery5160label,noprintbarcodes,nocapaddress]{envlab}
\let\oldPrintLabel\PrintLabel
\renewcommand{\PrintLabel}[1]{\fbox{\oldPrintLabel{#1}}}% box labels

%% \mlabel{From}{To}
\newcommand{\add}[5]{\mbox{}\mlabel{}{#1\\#2}}

%% Names and address data

\newcommand*{\Alf}{\add{Alfred}% name
  {Warwickshire}% address
  {Phone}% phone number
  {Email}% email address
  {}% other information
  }

\newcommand*{\Joe}{\add{Joseph}%
  {Arithma}%
  {Phone \\ Mobile}%
  {Email \\ Facebook}%
  {Children}%
}


\begin{document}
\SetLabel{3.85in}{1.4in}{0.6in}{0.1in}{2pt}{7}{7}%% Avery MP7163 labels
\startlabels
%% print labels, two columns of seven --- 14 per page
\Alf
\Joe
\end{document}

enter image description here

EDIT: I realized that \SetLabel in the MNWE (minimal nonworking example) came with to few arguments. I fixed that and it seems to be working now.

  • Thank you for your answer. Did you actually print the result on paper? I tried your code but still got the tiny printed output. I have discovered that the \startlabels command must come after the \begin{document}. The \SetLabel, which you commented out, was to specify the appropriate dimensions of the label sheet I want to print on (an English not USA sized sheet). If you want to change your answer I'll accept it. – Peter Wilson Dec 3 '17 at 18:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.