바코드가 포함된 라벨을 만들고 싶습니다. 개별 바코드는 개체를 식별하는 일련의 숫자여야 합니다. 몇 번의 시행착오 끝에 이 GS1
패키지가 나에게 맞는 것 같았습니다.
일련의 숫자가 있으므로 for 루프를 사용하는 것이 자연스럽게 보입니다. 발생하는 문제는 생성된 바코드가 모두 0 값이라는 것입니다.
어쩌면 문제는 \EANBarcode
정수 대신 문자열을 기대한다는 것입니다. LaTeX가 변수 유형을 처리하는 방법과 숫자 1을 문자열 "1"로 변환하는 방법, 그리고 이것이 여기에 관련이 있는지 모르겠습니다.
\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}
답변1
\EANBarcode
명시적인 숫자를 전달해야 합니다 .
\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}
다음을 사용하는 더 짧은 코드 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}