Barcodes mit einer For-Schleife generieren

Barcodes mit einer For-Schleife generieren

Ich möchte Etiketten mit Barcodes erstellen. Die einzelnen Barcodes sollten eine Zahlenfolge sein, die Objekte identifiziert. Nach einigem Ausprobieren GS1schien das Paket für mich zu funktionieren.

Da ich eine Zahlenfolge habe, erscheint es naheliegend, eine For-Schleife zu verwenden. Das Problem dabei ist, dass die generierten Barcodes alle den Wert 0 haben.

Vielleicht liegt das Problem darin, dass \EANBarcodeein String statt einer Ganzzahl erwartet wird. Ich weiß nicht, wie LaTeX mit Variablentypen umgeht und wie man die Zahl 1 in den String „1“ umwandelt und ob das hier relevant ist.

\documentclass[a4paper]{article}
\usepackage{labels}
\usepackage{GS1}
\usepackage{forloop}

\LabelCols=4
\LabelRows=11

\GSSetup{module_height=15mm}

\begin{document}
    \newcounter{loop}
    \forloop{loop}{1}{\value{loop} < 45}{
        \addresslabel{
            \EANBarcode{\arabic{loop}}
        }
    }
\end{document}

Antwort1

Es muss \EANBarcodeeine eindeutige Nummer übergeben werden:

\documentclass[a4paper]{article}
\usepackage{labels}
\usepackage{GS1}
\usepackage{forloop}

\LabelCols=4
\LabelRows=11

\GSSetup{module_height=15mm}

\begin{document}

\newcounter{loop}
\forloop{loop}{1}{\value{loop} < 45}{%
  \addresslabel{%
    \expandafter\EANBarcode\expandafter{\the\value{loop}}%
  }%
}

\end{document}

Bildbeschreibung hier eingeben

Kürzerer Code mit expl3:

\documentclass[a4paper]{article}
\usepackage{labels}
\usepackage{GS1}
\usepackage{expl3}

\LabelCols=4
\LabelRows=11

\GSSetup{module_height=15mm}

\begin{document}

\ExplSyntaxOn
\int_step_inline:nnnn { 1 } { 1 } { 44 }
 {
  \addresslabel{\EANBarcode{#1}}
 }
\ExplSyntaxOff

\end{document}

verwandte Informationen