如何开始适应这个有用的小包装(https://ctan.org/pkg/qrcode?lang=en)以启用如下调用:
\qrcode[rounded corners=0.1mm]{348b0b3}%
结果是能够控制每个黑色模块的角半径从 0 到模块半宽(在这种情况下会得到圆形模块)。
答案1
PSTricks 包pst-barcode
为圆形模块提供一个选项:dotty
。
排版如下lualatex
:
\documentclass[border=1bp]{standalone}
\usepackage{pst-barcode}
\begin{document}
\makebox[1in][l]{\rule{0pt}{1in}%
% option inkspread controls overlapping amount (in pt) of dots; <0 enlarges dots
\psbarcode{348b0b3}{dotty inkspread=0.05 width=1 height=1}{qrcode}%
}
\end{document}
答案2
从技术上来说,这回答了您的问题,但结果可能不是您所期望的。选项1(注释和结果)为每个像素绘制一个 tikzpicture,因此速度很慢但非常灵活。选项 2(未注释且未显示)将任何字符缩放到像素大小,因此速度很快但灵活性较差。
平均能量损失
\documentclass{article}
\usepackage{qrcode,tikz,graphicx}
\makeatletter
\let\xqrcode@int\qrcode@int% store package macro
\def\qrcode@int{\let\xrule\rule% store old rule
\let\rule\altrule% overwrite rule
\xqrcode@int% package macro
\let\rule\xrule% restore rule
}
\makeatother
% option 1: tikz (slow but flexible); tikz package
% \newcommand{\altrule}[2]{\tikzpicture% custom tikz rule
% \fill[rounded corners=.3mm] (0,0) rectangle (#1,#2);
% \endtikzpicture}
% option 2: any character (fast but less flexible); graphicx package
\newcommand{\altsym}{$\bullet$}% alt symbol
\newcommand{\altrule}[2]{% custom rule: logix
\resizebox{#1}{!}{%
\ifdim#2>0pt\altsym\else\phantom{\altsym}\fi}}
\begin{document}
\qrcode{348b0b3}
\end{document}
结果