Skip to content

Instantly share code, notes, and snippets.

@mschlenker
Last active December 21, 2022 16:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mschlenker/f60e0f15ff1edfc4881c to your computer and use it in GitHub Desktop.
Save mschlenker/f60e0f15ff1edfc4881c to your computer and use it in GitHub Desktop.
\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\name{Donald Duck}
\def\uri{http://www.donaldduck.de/}
\def\email{donald@donaldduck.de/}
\def\phone{+49 851 123 45 67}
\def\street{Emil-Erpel-Str. 23}
\def\city{12567 Entenhausen}
\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=2665
% Höhe und Breite einzelner Karten
\newcount\vwidth\global\vwidth=920
\newcount\vheight\global\vheight=-515
% Anzahl der Zeilen und Spalten
\newcount\xcards\global\xcards=2
\newcount\ycards\global\ycards=5
% Positionen der Linien auf Karte, rel. zum Kreuzchen
\newcount\xlineup\global\xlineup=75
\newcount\ylineup\global\ylineup=-130
% relativ zum Y der oberen Linie
\newcount\ylinedwn\global\ylinedwn=-300
% Position des Namens
\newcount\xname\global\xname=75
\newcount\yname\global\yname=-120
% Position der URI
\newcount\xuri\global\xuri=75
\newcount\yuri\global\yuri=-460
% Position des Adresskastens
\newcount\xadr\global\xadr=75
\newcount\yadr\global\yadr=-220
% Position des QR Codes
\newcount\xqr\global\xqr=68
\newcount\yqr\global\yqr=-290
% 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
% obere Linie
\advance\auxx by \xlineup
\advance\auxy by \ylineup
\put(\auxx,\auxy){\line(1,0){800}}
% untere Linie
\advance\auxy by \ylinedwn
\put(\auxx,\auxy){\line(1,0){800}}
% Rücksetzen aller Koordinaten
\advance\auxx by -\xlineup
\advance\auxy by -\ylineup
\advance\auxy by -\ylinedwn
% Namen
\advance\auxx by \xname
\advance\auxy by \yname
\put(\auxx,\auxy){\large \textbf{\name}}
% Rücksetzen aller Koordinaten
\advance\auxx by -\xname
\advance\auxy by -\yname
% 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
% Kasten mit Adresse
\advance\auxx by \xadr
\advance\auxy by \yadr
\put(\auxx,\auxy){
\begin{minipage}[t]{7.8cm}
\raggedleft
\phone \\
\street \\
\ \\
\city
\end{minipage}
}
% Rücksetzen aller Koordinaten
\advance\auxx by -\xadr
\advance\auxy by -\yadr
% QR Code
\advance\auxx by \xqr
\advance\auxy by \yqr
\put(\auxx,\auxy){
\qrset{height=2.8cm}
\qrcode{\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