Skip to content

Instantly share code, notes, and snippets.

@mschlenker mschlenker/qr.tex
Created Sep 15, 2016

Embed
What would you like to do?
\documentclass[a4paper]{article}
\usepackage{ngerman}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathpazo}
% QR package: https://www.ctan.org/tex-archive/macros/latex/contrib/qrcode
\usepackage[final]{qrcode}
% Es ist überhaupt nicht schön, article zu vergewaltigen,
% aber es funktioniert...
\setlength{\topmargin}{-2.54cm}
\setlength{\headheight}{0em}
\setlength{\headsep}{0em}
\setlength{\evensidemargin}{-2.54cm}
\setlength{\oddsidemargin}{-2.54cm}
\setlength{\textheight}{29cm}
\setlength{\textwidth}{21cm}
\usepackage{ae}
% Der Autor hat Bitstream Vera installiert und verwendet dafür
% einen anderen Zeilenabstand
% \renewcommand{\sfdefault}{Vera}
% \renewcommand{\baselinestretch}{1.2}
% Maßeinheit bitte belassen
\unitlength=0.1mm
% Hier bitte die eigenen Daten eintragen...
\def\uri{weine-leipzig.de}
\begin{document}
% Einige Koordinaten auf dem Papier...
%
% Sofern nicht anders angegeben, sind Koordinaten relativ
% zum linken oberen Eck der Karte. Eine Erhöhung des X-Wertes
% verschiebt ein Element nach rechts, eine Verringerung des
% Y-Wertes (größere negative Zahl) schiebt es nach unten.
%
% Passen Sie bitte zuerst \xstart und \ystart so an, daß
% die linke obere Ecke mit der Bruchkante im Karton passt.
% Anschließend folgt die Breite und die Höhe einzelner
% Karten (\vwidth und \vheight).
%
% Ist das erledigt, können Sie die Trennlinien, den Namen,
% den URI und das mittlere Textfeld (eine Minipage)
% verschieben.
% Kreuzchen drucken
\newif\ifcrosses\global\crossestrue
% Kreuzchen nicht drucken
% \newif\ifcrosses\global\crossesfalse
% Startposition links oben
\newcount\xstart\global\xstart=75
\newcount\ystart\global\ystart=2730
% Höhe und Breite einzelner Karten
\newcount\vwidth\global\vwidth=256
\newcount\vheight\global\vheight=-270
% Anzahl der Zeilen und Spalten
\newcount\xcards\global\xcards=7
\newcount\ycards\global\ycards=10
% Position der URI
\newcount\xuri\global\xuri=48
\newcount\yuri\global\yuri=-250
% Position des QR Codes
\newcount\xqr\global\xqr=18
\newcount\yqr\global\yqr=-130
% Hilfsvariablen -- hier nicht drehen
\newcount\auxx\global\auxx=0
\newcount\auxy\global\auxy=0
\newcount\xcrosses\global\xcrosses=\xcards
\newcount\ycrosses\global\ycrosses=\ycards
\advance\xcrosses by 1
\advance\ycrosses by 1
\newcount\x\global\x=1
\newcount\y\global\y=1
\sffamily
\thispagestyle{empty}
\begin{picture}(2095.00, 2895.00)
\ifcrosses
\auxx=\xstart
\auxy=\ystart
\loop
{
\loop
\put(\auxx,\auxy){\line(1,0){20}}
\advance\auxx by 10
\advance\auxy by -10
\put(\auxx,\auxy){\line(0,1){20}}
\advance\auxx by -10
\advance\auxy by 10
\advance\auxx by \vwidth
\ifnum \x<\xcrosses \advance \x by 1 \repeat
}
\advance\auxy by \vheight
\ifnum \y<\ycrosses \advance \y by 1 \repeat
\fi
\auxx=\xstart
\auxy=\ystart
\y=1
\x=1
\loop
{
\loop
% URL
\advance\auxx by \xuri
\advance\auxy by \yuri
\put(\auxx,\auxy){\footnotesize{\uri}}
% Rücksetzen aller Koordinaten
\advance\auxx by -\xuri
\advance\auxy by -\yuri
% QR Code
\advance\auxx by \xqr
\advance\auxy by \yqr
\put(\auxx,\auxy){
\qrset{height=2.0cm}
\qrcode{http://www.\uri}
}
% Rücksetzen aller Koordinaten
\advance\auxx by -\xqr
\advance\auxy by -\yqr
%
\advance\auxx by \vwidth
\ifnum \x<\xcards \advance \x by 1 \repeat
}
\advance\auxy by \vheight
\ifnum \y<\ycards \advance \y by 1 \repeat
\end{picture}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.