使用邮件合并时保留标签间距尺寸

使用邮件合并时保留标签间距尺寸

我正在制作一张地址标签。这是我的第一次迭代:

\documentclass[letterpaper,12pt]{article}

\usepackage[newdimens]{labels}
\LabelCols=4
\LabelRows=6
\LeftPageMargin=20mm
\RightPageMargin=20mm
\TopPageMargin=13mm
\BottomPageMargin=12.5mm
\InterLabelColumn=8mm
\InterLabelRow=5mm
\LeftLabelBorder=0.2mm
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm

\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels

\begin{document}

\begin{labels}
A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X
\end{labels}

\end{document}

我不想手动将所有标签写入文档正文中,而是想将它们存储在外部文件中。因此,我使用了包textmerg,例如 其他 问题

\documentclass[letterpaper,12pt]{article}

\usepackage{textmerg}

\usepackage[newdimens]{labels}
\LabelCols=4
\LabelRows=6
\LeftPageMargin=20mm
\RightPageMargin=20mm
\TopPageMargin=13mm
\BottomPageMargin=12.5mm
\InterLabelColumn=8mm
\InterLabelRow=5mm
\LeftLabelBorder=0.2mm
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm

\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels

\usepackage{filecontents}

\begin{filecontents*}{\jobname.dat}
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
\end{filecontents*}

\begin{document}

\Fields{\mylabel}

\Merge{\jobname.dat}{%
  \addresslabel{
    \mylabel
  }%
}%


\end{document}

不幸的是,转换过程中格式被打乱了。特别是,当我使用 Adob​​e Acrobat Reader DC 中的“测量”工具测量列间距时,结果显示约为 9.5 毫米,而不是 8 毫米。在打印到粘性标签上时,这是一个严重的问题。

以下是两者的比较:

标签重叠,红色与黑色不匹配

原始版本为黑色,第二版本为红色。

如何在保持原始尺寸的同时迭代外部文件?

(如果有办法来实现textmerg这一点,我会同意,但是使用datatool或者的方法catchfile也可以。)

如果你感兴趣的话,可以点击这里查看 Github repo 的链接亲自尝试一下:

https://github.com/nbeaver/textmerg-labels-example

编辑:拉取请求已已提交公认

答案1

软件包的 定义中有一个虚假空格\ParseFields。这是一个错误,应报告给维护者。

同时,您可以在序言中提供更正的定义。

\def\ParseFields#1{%
   \ifx#1\EndParseFields
      \let\NextParse\relax
   \else
      \let\NextParse\ParseFields
      \ifx#1+\DontAllowBlank
      \else
         \ifx#1-\AllowBlank
         \else\ReadIn#1% <= remove space here
         \fi
      \fi
   \fi\NextParse}

非空间标签

\begin{filecontents*}{\jobname.dat}
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
\end{filecontents*}
\documentclass[letterpaper,12pt]{article}
\usepackage{geometry}% without this I get A4
\usepackage{textmerg}

\usepackage[newdimens]{labels}
\LabelCols=4
\LabelRows=6
\LeftPageMargin=20mm
\RightPageMargin=20mm
\TopPageMargin=13mm
\BottomPageMargin=12.5mm
\InterLabelColumn=8mm
\InterLabelRow=5mm
\LeftLabelBorder=0.2mm
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm

\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels

\usepackage{background}
\backgroundsetup{contents=\includegraphics{\jobname-a},scale=1,angle=0,opacity=1}

\def\ParseFields#1{%
   \ifx#1\EndParseFields
      \let\NextParse\relax
   \else
      \let\NextParse\ParseFields
      \ifx#1+\DontAllowBlank
      \else
         \ifx#1-\AllowBlank
         \else\ReadIn#1% <= remove space here
         \fi
      \fi
   \fi\NextParse}


\begin{document}
\Fields{\mylabel}%
\Merge{\jobname.dat}{%
  \addresslabel{%
    \mylabel
  }%
}%
\end{document}

相关内容