答案1
该类amsart
设置\lineskiplimit
为 1pt,但qrcode.sty
(错误地)假设它是 0pt。
qrcode
当使用minipage
打印二维码时,通过在适当的位置添加预期设置来修复它。
\documentclass{amsart}
\usepackage{qrcode}
\usepackage{etoolbox}
\makeatletter
\patchcmd\qr@printmatrix
{\baselineskip}
{\lineskiplimit=0pt\baselineskip}
{}{}
\patchcmd\qr@printsavedbinarymatrix
{\baselineskip}
{\lineskiplimit=0pt\baselineskip}
{}{}
\makeatother
\begin{document}
\qrcode{http://www.ctan.org}
\end{document}
答案2
有一个qrcode.tex
与 LaTeX 软件包竞争的软件包qrcode.sty
。它qrcode.tex
是为纯 TeX 设计的,但它也可以在 LaTeX 中使用,因为它仅基于 TeX 基元。
您可以比较
\documentclass{amsart}
\usepackage{qrcode}
\begin{document}
\qrcode{http://www.ctan.org}
\end{document}
这给出了错误的结果
\documentclass{amsart}
\input qrcode
\begin{document}
\qrcode{http://www.ctan.org}
\end{document}
这给出了正确的结果。