考虑以下 MWE:
\documentclass{scrartcl}
\usepackage{qrcode}
\usepackage[english]{babel}
\begin{document}
\pagestyle{empty}
\qrcode[height=5cm,level="M"]{BCD\?001\?1\?SCT\?ABCDATWW\?Creditor\?AT611904300234573201\?EUR100\?\?\?My\ Subject}
\end{document}
这有效。但是,如果我切换语言ngerman
,LaTeX 将返回错误:
... loadhyph-de-1996.tex:8: Argument of \language@active@arg" has an extra }.
... loadhyph-de-1996.tex:8: Paragraph ended before \language@active@arg" was complete.
是什么赋予了?
答案1
德语 babel 用作"
简写,例如"
o 是重音字母。您可以本地关闭简写,也可以全局关闭它们,方法是
\usepackage[shorthands=off,ngerman]{babel}
答案2
如果您只是想打印二维码,没有问题:只要不加载即可babel
。
如果您的文档中有需要德语的部分,那么也"
需要使用简写(例如,在词素边界处打破连字符,或获取组合词的适当连字符)。
我建议修补\qrcode
以禁用速记。
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{qrcode}
\usepackage{xpatch}
\makeatletter
\xpretocmd{\qrcode}{\begingroup\shorthandoff{"}}{}{}
\xapptocmd{\qrcode@in}{\endgroup}{}{}
\begin{document}
\qrcode[height=5cm,level="M"]{BCD\?001\?1\?SCT\?ABCDATWW\?Creditor\?AT611904300234573201\?EUR100\?\?\?My\ Subject}
\bigskip
Auf"|lage, nicht Auflage
\end{document}