Comment générer des QR codes ?#

Les QR codes (pour Quick Response Code) sont un type de code-barres en deux dimensions constitué de points noirs disposés dans un carré à fond blanc. L’agencement de ces points décrit l’information que contient le code. Ils peuvent être lus par un lecteur de code-barre ou un smartphone.

1.  Avec l’extension qrcode#

L’extension qrcode permet de générer des QR codes directement depuis

\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{qrcode}

\begin{document}
\qrcode{Données à coder}
\end{document}

Dans la plupart des cas, c’est une URL que vous voudrez inclure dans le QR code. Par exemple :

\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{qrcode}

\begin{document}
\qrcode{https://www.gutenberg-asso.fr/}
\end{document}

Notez que si vous utilisez hyperref, qrcode mettra automatiquement un lien cliquable vers l’adresse en question, à moins de spécifier l’option nolink à la commande.

Il est également possible de spécifier la hauteur du QR code, avec l’option height (sachant que les QR codes sont obligatoirement carrés…).

1.1.  Versions des QR codes#

Vous noterez la différence de résolution entre les deux QR codes précédents. Ceci s’explique par le fait que la chaîne de caractère à coder dans le second exemple est plus longue que dans le premier. Les QR codes sont définis suivant différentes tailles de grille, chaque taille correspondant à une « version » : de 21×21 points (version 1) jusqu’à 177×177 points (version 40).

Ainsi, la version 1 permet de coder au maximum 25 caractères alphanumériques tandis que la version 40 peut en coder 4296.

L’extension qrcode calcule automatiquement la version minimale à utiliser pour chaque chaîne (ça se voit dans le log de compilation), mais il est possible de forcer cette valeur (pour augmenter la version, évidemment), par exemple pour un aspect esthétique (si vous avez deux QR codes côte à côte) :

\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{qrcode}

\begin{document}
\qrcode[version=3]{Données à coder}
\end{document}

2.  QR-factures#

L’extension qrbill permet de générer les QR factures utilisées en Suisse depuis 2020, qui incluent des QR codes particuliers avec une croix suisse en leurs centres [1]. La QR facture fait 21cm de large et 10.5cm de haut et le plus simple est d’utiliser l’extension avec la classe standalone. qrbill s’emploie avec lualatex ou xelatex [2] et utilise par défaut la police au format TrueType Liberation Sans. Comme cette dernière n’est pas installée par défaut sur tous les systèmes, et n’est pas disponible sur CTAN, l’exemple ci-dessous utilise font=custom et redéfinit \qrbillfont pour employer TeX Gyre Heros. Attention cependant que la police choisie doit être à peu près compatible métriquement, pour que le texte de la facture ne rentre pas en collision avec ses différents cadres.

%!TEX engine=lualatex
\documentclass[french]{standalone}
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \usepackage[font=custom]{qrbill}% La police par défaut Liberation Sans
                                  % n'est pas sur CTAN/TeXLive/MikTeX
  \usepackage{fontspec}           % cf https://ctan.org/topic/font-sans
  \renewcommand*{\qrbillfont}{\fontspec{TeXGyreHeros}}
\begin{document}
\QRbill[
  creditor={TexBanque\\
  1 Avenue Donald Knuth\\ 
  2342 Zurich\\
  CH},
  Account=CH3141592653589793238,
]
\end{document}

3.  QR-EPC#

Le package epcqrcode permet de générer les QR codes du conseil européen des paiements, qui incluent un QR code particulier, dont le contenu peut être utilisé pour initier des virements SEPA au sein de l’espace unique de paiement en euros.

À faire

Ajouter un exemple.

4.  QR codes pour références bibliographiques#

L’extension bib2qr permet de créer un QR code associé à une référence bibliographique présente dans un fichier .bib appelé par votre document. L’exemple suivant, adapté de la documentation de l’extension, illustre son utilisation. Ici, c’est l’environnement filecontents qui crée le fichier .bib mais ce contournement est propre à la FAQ. Vous retrouverez fréquemment cette méthode dans la section Bibliographie de la FAQ).

% Un fichier .bib créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{\jobname.bib}
  @software{bib2qr,
    author = {Schreinemachers, Christian},
    title = {bib2qr - A LaTeX package for citing BibTeX entries with QR codes},
    url = {https://codeberg.org/Cs137/bib2qr/releases/tag/v0.2},
    version = {v0.2},
   date = {2024-07-31}
  }
  \end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{bib2qr}
  
  \addbibresource{\jobname.bib}

\begin{document}
Si vous voulez en savoir plus sur \textsf{bib2qr}, vous pouvez consulter
la référence suivante : \\[1ex]
\qrfullcite{bib2qr}
\end{document}