% Florian Sihler, 2024 % Licensed under GNU General Public License version 3 % https://opensource.org/licenses/gpl-3.0.html \documentclass[parskip=half,english,numbers=noenddot,footnotes=nomultiple,oneside]{scrartcl} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{babel} \usepackage{microtype} \usepackage[hidelinks]{hyperref} \usepackage{lmodern} \usepackage{array,booktabs} \usepackage{footnote} \usepackage{fontawesome} \usepackage{fancyqr} \usepackage{xcolor} \usepackage[tex]{listings} \usepackage{amssymb} \lstdefinelanguage{ltx}{ language={[LaTeX]TeX}, moretexcs=[1]{fancyqr,qrcode,FancyQrDoNotPrintSquare,FancyQrRoundCut,FancyQrHardCut,FancyQrLoad,FancyQrLoadDefault,fancyqrset,faGithub} } \lstset{basicstyle=\ttfamily,breaklines,texcsstyle=*\color{purple}\bfseries,language=ltx} \lstMakeShortInline| \def\ltx#1{\lstinline/#1/} \interfootnotelinepenalty=10000 \title{The \texttt{fancyqr} package} \author{% \texorpdfstring{Florian Sihler\medskip\\* \fancyqr{https://github.com/EagleoutIce/fancyqr} }{Florian Sihler}} \date{Version v2.2 \textendash{} 2024/11/27} \begin{document} \maketitle \texttt{fancyqr} is a simple package to create fancy qr-codes with the help of the \textit{\href{https://www.ctan.org/pkg/qrcode}{qrcode}}-package. You can use the |\fancyqr|-macro just like the normal |\qrcode|.\footnote{\ltx{\\fancyqr[]\{\}}} If you do want to hide a center square (e.g, because you want to embed an image) you can use |\FancyQrDoNotPrintSquare{}{}| to hide a rectangle with radius x and y set from the center (with |\FancyQrDoNotPrintRadius{}| you can apply a \href{https://github.com/EagleoutIce/fancyqr/pull/41}{rounding} to this!). If you choose this option, the default |\FancyQrRoundCut| that rounds cut corners can be changed with |\FancyQrHardCut|. At the moment, there are six other styles for the qr-code |flat|, |frame|, |blobs|, |glitch|, and |dots|, that you can load (locally) by using |\FancyQrLoad{}|. The default style is named |default| and can be 'reset' by |\FancyQrLoad{default}| or |\FancyQrLoadDefault|. All of the extra qr-options (you can set all of them with |\fancyqrset{}|) are showcased in \autoref{tbl:extra-keys}. The defaults are set like this: \begin{lstlisting} \fancyqrset{image padding=0,gradient=true, gradient angle=135,r color=teal,l color=purple} \end{lstlisting} Consider the following example (uses \href{https://www.ctan.org/pkg/fontawesome}{fontawesome} for the symbol, but you can use include images,~\ldots): \begin{lstlisting} \fancyqr[image=\huge\faGithub,image padding=1,color=black!90!gray]{https://github.com/EagleoutIce/fancyqr} \end{lstlisting} \parbox[c]{.3\linewidth}{Which produces:}\hfill\parbox[c]{.4\linewidth}{\raggedleft\fancyqr[image=\Huge\faGithub,image padding=1,color=black!90!gray]{https://github.com/EagleoutIce/fancyqr}}\par \begin{savenotes} \begin{table} \centering\begin{tabular}{>{\ttfamily}ll>{\ttfamily}cp{.5\linewidth}} \toprule \multicolumn{1}{l}{Option} & Type & \multicolumn{1}{c}{Default} & Explanation \\ \midrule classic & boolean & false & Use the classic qr-code style (black with flat rectangles, this loads the |flat| style). \\ color & color & & Disables the |gradient| and sets the color accordingly. \\ compensate & length & 0.15pt & Compensating overlap to add to avoid glitches. \\ gradient & boolean & true & Toggle the color gradient \\ gradient angle & angle & 135 & Change the gradient angle. \\ image & \LaTeX & & Automatically center an image (you have to care for the size and maybe adjust the |version| and |level| to keep the qr-code readable).\footnote{The package will automatically calculate the required \ltx{\\FancyQrDoNotPrintSquare} (you have to make sure that the qr-code still has enough information to be readable). Therefore, the image will not scale with the qr-code.} \\ image padding & number & & Additionally hide blocks (x \& y) around the image. \\ image x padding & number & 0 & Additionally hide blocks (x) around the image. \\ image y padding & number & 0 & Additionally hide blocks (y) around the image. \\ l color & color & purple & Set the top left gradient color. \\ left color & color & & Alias for |l color|. \\ level & L/M/Q/H & M & |qrcode| option affecting error correction (low, medium, quartile, high). \\ padding & flag & & |qrcode| option adding sufficient additional space around the qr-code. \\ r color & color & teal & Set the bottom right gradient color. \\ random color & colors & & Allow to set a random color pool to pick from. \\ right color & color & & Alias for |r color|. \\ size & length & & Alias for |qrcode|'s |height| option. \\ tight & flag & & |qrcode| option adding no additional space around the qr-code. \\ version & \([0..40] \in \mathbb{N}\) & 0 & |qrcode| option affecting the size (tries to be as small as possible). \\ width & length & & Alias for |qrcode|'s |height| option. \\ \bottomrule \end{tabular} \caption{Overview of special qr-options.} \label{tbl:extra-keys} \end{table} \end{savenotes} \end{document}