我正在制作一页包含国会图书馆分类号 (LCC) 的粘性标签。它们位于labels
包裹调用“纯格式”。
\begin{filecontents*}{\jobname.dat}
PR
6051
.D3352
M68
Z
253.4
.T47
K58
QA
76.6
.K644
Z
250.8
.M46
E578
PR
5815
PR
6039
.O32
T65
\end{filecontents*}
\documentclass[letterpaper,10pt]{article}
\usepackage[newdimens]{labels}
\LabelCols=3
\LabelRows=10
\LeftPageMargin=4mm
\RightPageMargin=4mm
\TopPageMargin=12.5mm
\BottomPageMargin=13mm
\InterLabelColumn=4mm
\InterLabelRow=0mm
\LeftLabelBorder=0.2mm
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm
\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels
\begin{document}
\labelfile{\jobname.dat}
\end{document}
它看起来像这样:
但是,我实际上想调整标签的格式,使它们向右移动,同时仍然保持左对齐。我这样做了:
\begin{center}%
\parbox{20mm}{%
PR
6051
.D3352
M68}\end{center}
全文在此:
\documentclass[letterpaper,10pt]{article}
\usepackage[newdimens]{labels}
\LabelCols=3
\LabelRows=10
\LeftPageMargin=4mm
\RightPageMargin=4mm
\TopPageMargin=12.5mm
\BottomPageMargin=13mm
\InterLabelColumn=4mm
\InterLabelRow=0mm
\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}%
\begin{center}%
\parbox{20mm}{%
PR
6051
.D3352
M68}\end{center}
\begin{center}%
\parbox{20mm}{%
Z
253.4
.T47
K58}\end{center}
\begin{center}%
\parbox{20mm}{%
QA
76.6
.K644}\end{center}
\begin{center}%
\parbox{20mm}{%
Z
250.8
.M46
E578}\end{center}
\begin{center}%
\parbox{20mm}{%
PR
5815}\end{center}
\begin{center}%
\parbox{20mm}{%
PR
6039
.O32
T65}\end{center}
\end{labels}
\end{document}
它看起来像这样:
当然,我还需要从外部文件读取。我想也许我可以修改宏\labelfile
来实现这一点。然而,当我查看时labels.sty
,我发现它只是 的一个包装器\input
。
\def\labelfile#1{\begin{labels}\input#1\end{labels}}
所以接下来我尝试textmerg
。
\begin{filecontents*}{\jobname.dat}
PR
6051
.D3352
M68
Z
253.4
.T47
K58
QA
76.6
.K644
Z
250.8
.M46
E578
PR
5815
PR
6039
.O32
T65
\end{filecontents*}
\documentclass[letterpaper,10pt]{article}
\usepackage{textmerg}
\usepackage[newdimens]{labels}
\LabelCols=3
\LabelRows=10
\LeftPageMargin=4mm
\RightPageMargin=4mm
\TopPageMargin=12.5mm
\BottomPageMargin=13mm
\InterLabelColumn=4mm
\InterLabelRow=0mm
\LeftLabelBorder=0.2mm
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm
\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels
\begin{document}
\Fields{\subclass\number\cutter}
\Merge{\jobname.dat}{%
\addresslabel{
\begin{center}
\parbox{20mm}{
\subclass\\
\number\\
\cutter}
\end{center}
}%
}%
\end{document}
不幸的是,LCC 的长度是可变的;它们通常长两到四行。有些有一个或多个 Cutter 编号;有些没有。这意味着这些编号被错误地拆分了。
以下哪种方法最好?
覆盖宏以
labels
获取我想要的格式?(我在文档中找不到关于此内容的提示。)
使用高级功能来
textmerg
处理可变长度格式?(手册中的“复杂示例”涉及“长度不确定但宽度固定的表格”。我相信在这种情况下宽度不是固定的。)
使用不同的包,例如
datatool
?大多数示例都
datatool
涉及 CSV,所以我不确定这会如何发挥作用。
以下是 git 存储库的链接,以便更轻松地获取文件:
答案1
设置\LeftLabelBorder
为更高的值:
\documentclass[letterpaper,10pt]{article}
\usepackage[pass]{geometry} % because my default output paper would be A4
\usepackage[newdimens]{labels}
\LabelCols=3
\LabelRows=10
\LeftPageMargin=4mm
\RightPageMargin=4mm
\TopPageMargin=12.5mm
\BottomPageMargin=13mm
\InterLabelColumn=4mm
\InterLabelRow=0mm
\LeftLabelBorder=10mm % <--- changed
\RightLabelBorder=0.2mm
\TopLabelBorder=0.2mm
\BottomLabelBorder=0mm
\LabelGridtrue % show grid for labels
\LabelInfotrue % show info for labels
\begin{document}
\labelfile{\jobname.dat}
\end{document}