pgffor foreach 和标签如何协同工作?

pgffor foreach 和标签如何协同工作?

我目前正在尝试创建一张带有不同条形码的标签纸。

这是我取得的进展:

\documentclass[12pt,a4paper]{article}
\usepackage[newdimens]{labels}

%% Change variables here:
\newcommand{\barprefix}{XX}
\newcommand{\barversion}{00}
\newcommand{\baryear}{2017}
\newcommand{\barmonth}{04}
\newcommand{\barstartid}{10}

\newcommand{\bartype}{code128}

% Label format:
\LabelCols=3
\LabelRows=8
\LeftPageMargin=7mm
\RightPageMargin=7mm
\TopPageMargin=15mm
\BottomPageMargin=15mm
\InterLabelColumn=2mm
\InterLabelRow=0mm
\LeftLabelBorder=5mm
\RightLabelBorder=5mm
\TopLabelBorder=5mm
\BottomLabelBorder=5mm
\numberoflabels=\LabelCols

\usepackage{pst-barcode}

\usepackage{pgf}
\usepackage{pgffor}

\begin{document}
    \pgfmathparse{subtract(\LabelRows,1)}%
    \pgfmathint{\pgfmathresult}%
    \foreach \n in {0,...,\pgfmathresult}{%
        \pgfmathsetbasenumberlength{3}%
        \pgfmathparse{add(\n,\barstartid)}%
        \pgfmathint{\pgfmathresult}%
        \pgfmathdectobase\barid{\pgfmathresult}{10}%
        \genericlabel{%
            \fbox{%
                \begin{pspicture}(0,-0.2)(4.8,1)%
                    \psbarcode{\barprefix\barversion\baryear\barmonth\barid}{includetext includecheck includecheckintext height=0.4}{\bartype}%
                \end{pspicture}%
            }%
        }%
    }
\end{document}

此代码的问题在于,它不是将所有标签打印在一页上,而是为每行标签创建单独的页面。如果我只需删除 foreach 循环并自行通过 genericlabels 输入每个标签行,就可以解决这个问题,但我想使用 for 循环来执行此操作,这样我只需更改 rows 参数即可。

感谢您的帮助。

答案1

\foreach添加分组。您可以改用\pgfplotsforeachungroupedpgfplots 包中的命令。或者使用其他循环命令(例如\int_step_variable:nnnNn {0} {1}{\pgfmathresult}{\n}{...}expl3 中的命令也可以)。

相关内容