Generar códigos de barras con un bucle for

Generar códigos de barras con un bucle for

Quiero crear etiquetas con códigos de barras. Los códigos de barras individuales deben ser una secuencia de números que identifiquen objetos. Después de algunas pruebas y errores, el GS1paquete pareció funcionar para mí.

Como tengo una secuencia de números, parece natural utilizar un bucle for. El problema que surge es que los códigos de barras generados tienen todos valores 0.

Quizás el problema sea que \EANBarcodeespera una cadena en lugar de un número entero. No sé cómo maneja LaTeX los tipos de variables y cómo convertir el número 1 en la cadena "1" y si esto es relevante aquí.

\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}

Respuesta1

Tienes que pasar \EANBarcodeun número explícito:

\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}

ingrese la descripción de la imagen aquí

Código más corto con 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}

información relacionada