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 GS1
paquete 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 \EANBarcode
espera 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 \EANBarcode
un 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}
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}