Générer des QR codes directement dans LaTeX

Les Codes QR (ou QR codes, pour Quick Response codes) connaissent un essor notable depuis quelques années depuis la popularisation des smartphones. Leur intégration dans un document LaTeX est possible sans même avoir à passer par un service tiers.

Pour cela, c’est le package qrcode que nous utiliserons ici.

Installation

Son installation est assez inhabituelle, puisqu’il nous faut compiler un fichier source pour générer nous-même le .sty. Commencez par télécharger ici les fichiers qrcode.ins et qrcode.dtx et enregistrez-les dans le dossier de votre choix.

Dans ce dernier dossier, lancer ensuite la commande suivante :

latex qrcode.ins

C’est bon, le fichier qrcode.sty est généré ! Reste à le copier dans le répertoire adéquat (dans le futur dossier de compilation pour une utilisation ponctuelle, ou dans le dossier des packages si vous voulez une installation en dur) et de penser à appeler le package dans le document :

\usepackage{qrcode}

Une particularité des packages au format INS/DTX est que la documentation est incluse dans le .dtx. Donc si vous voulez la doc du package qrcode, il vous suffit de compiler deux fois avec (pdf)latex le fichier qrcode.dtx après avoir généré le .sty.

Utilisation

qrcode fonctionne aussi bien avec latex qu’avec pdflatex. Pour générer un QR code, il suffit d’utiliser la commande :

\qrcode{phrase à coder}

Et voila :

"Phrase à coder"
« Phrase à coder »

Dans la plupart des cas, c’est une URL que vous voudrez inclure dans le QR code. Exemple avec une adresse quelconque (prise totalement au hasard) :

QR code d'une URLNote : si vous utilisez hyperref, qrcode mettra automatiquement un lien cliquable vers ladite adresse, à moins de spécifier l’option nolink à la commande.

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

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 4 296.

Le package en question calcule automatiquement la version minimale à utiliser pour chaque chaîne, mais il est possible de forcer cette valeur (pour augmenter la version, évidemment), par exemple pour un aspect esthétique (si vous avec deux QR codes côte à côte).

\qrcode[version=3]{phrase à coder}

\qrcode[version=3]{phrase à coder}

Pour aller plus loin

Le package fournit pléthore d’options plus ou moins avancées, qui sont détaillées dans documentation (accessible ici, ou compilable depuis le DTX (voir plus haut).