使用 for 迴圈產生條碼

使用 for 迴圈產生條碼

我想建立帶有條碼的標籤。各個條碼應該是辨識物體的數字序列。經過一番嘗試和錯誤後,這個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}

相關內容