Quero criar etiquetas com códigos de barras. Os códigos de barras individuais devem ser uma sequência de números que identificam objetos. Depois de algumas tentativas e erros, o GS1
pacote pareceu funcionar para mim.
Como tenho uma sequência de números, parece natural usar um loop for. O problema que surge é que todos os códigos de barras gerados têm valor 0.
Talvez o problema seja que \EANBarcode
espera uma string em vez de um número inteiro. Não sei como o LaTeX lida com tipos de variáveis e como converter o número 1 na string "1" e se isso é relevante aqui.
\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}
Responder1
Você tem que passar \EANBarcode
um 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 mais curto com 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}