自身宏有问题

自身宏有问题

我不确定我的错误在哪里。我使用以下代码:

\newcommand{\qr}[2]{%
  \begin{pspicture}(1.378in, 1.5in)%
    \psbarcode[]{#1}{height=1.378 width=1.378}{qrcode}%
    {\psset{unit=1.378in}\rput(0.165,0.165){\color{white}#2}}%
  \end{pspicture}%
}

这个定义似乎没问题。

在这个完整的例子中

\documentclass[a4paper, 12pt, parskip]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage{pst-barcode}
\usepackage{auto-pst-pdf}

\newcommand{\qr}[2]{%
  \begin{pspicture}(1.378in, 1.5in)%
    \psbarcode[]{#1}{height=1.378 width=1.378}{qrcode}%
    {\psset{unit=1.378in}\rput(0.165,0.165){\color{white}#2}}%
  \end{pspicture}%
}

\begin{document}
  \section{Demo}
  \qr{1,1}
\end{document}

我收到一个奇怪的错误:

! Extra \endgroup. \endpspicture ->\pst@killglue \endgroup
                                         \egroup \ifdim \wd \pst@hbox =\z@ \e... l.57   \end{pspicture}

这是什么意思以及如何避免这种情况?

答案1

您的命令接收两个强制参数,因此您必须使用

\qr{1}{1}

答案2

如果您必须(或想要)以特定(逗号分隔)格式指定参数,则应使用类似如下的内容:

\documentclass{article}
\usepackage{pst-barcode}% http://ctan.org/pkg/pst-barcode

\newcommand{\qr}[1]{\qrbase(#1)}
\def\qrbase(#1,#2){%
  \begin{pspicture}(1.378in, 1.5in)%
    \psbarcode[]{#1}{height=1.378 width=1.378}{qrcode}%
    {\psset{unit=1.378in}\rput(0.165,0.165){\color{white}#2}}%
  \end{pspicture}%
}

\begin{document}
  \section{Demo}
  \qr{1,1}
\end{document}​

在此处输入图片描述

不过,使用@Gonzalo 的方法更简单。

相关内容