Ein Netzwerk wächst nicht

es explodiert !

Meine Visitenkarte mit LuaLaTeX

(TeXlive 2024, TeXstudio 4.8.1, Linux Mint 21.3 Xfce - Virginia)

(Stand: 10. Aug. 2024)

Nach Anregungen, besonders von: http://www.karol-koziol.net/tex/card.zip

Statt abzutippen oder herauszukopieren sind die Dateien hier herunterladbar:

Visitenkarte.tex - erstellt eine A4-Seite mit 12 Visitenkarten, beidseitig bedruckt.

Logo.tex - erstellt das Logo für die Visitenkarten.

QR.tex - erstellt den QR-Code für die Visitenkarten.

Ich habe alles mit TeXstudio erstellt. Die Generierung der pdf-Dateien funktioniert aber auch von der shell mit

  • lualatex Visitenkarte.tex
  • lualatex Logo.tex
  • lualatex QR.tex

Hinweise:

  • Werden Logo.pdf und QR.pdf erstellt und in dasselbe Verzeichnis gestellt, erfolgt anschließend die Generierung der A4-Seite mit den Visitenkarten wesentlich schneller.
  • Die Zeit zur Erstellung kann in einer Linux-Bash so gemesen werden:
    \time -o Visitenkarte_time.txt -p lualatex Visitenkarte.tex > Visitenkarte_log.txt
    (Der Backslash bei \time ist erforderlich, Visitenkarte_time.txt enthält die Zeiten und Visitenkarte_log.txt die Zeichen, welche sonst am Bildschirm zu sehen wären)
Visitenkarte.tex
% !TeX root = Visitenkarte.tex
% !TeX spellcheck = de_DE
% !TeX encoding = UTF-8
% !TeX TS-program = lualatex
% !TeX TXS-program:bibliography = biblatex
% Ende magic comment's für TeXstudio

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% beidseitig bedruckte A4-Seite mit 12 Visitenkarten, Stand: 2024-08-10
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% In dieser Datei Visitenkarte.tex wird auch der
%%% auf der Visitenkarte stehende Text definiert.
%%%
%%% Wenn die Datei Logo.pdf nicht existiert wird hier auch die Grafik erzeugt
%%% und auf der Vorderseite eingebunden, aber nicht abgespeichert.
%%%
%%% Die Datei Logo.pdf wird mit Logo.tex erzeugt.
%%%
%%% Wenn die Datei QR.pdf nicht existiert wird hier auch die Grafik erzeugt
%%% und auf der Rückseite eingebunden, aber nicht abgespeichert.
%%%
%%% Die Datei QR.pdf wird mit QR.tex erzeugt.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% was noch fehlt:
%%% - Automatische Berechnung von Spalten-, Zeilenanzahl und Justage
%%% - Bei Bedarf Höhe und Breite der Schnittkreuze trennen
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% die seitliche Justage der Seiten ist vom Drucker abhängig
%%% mein Drucker: Canon MX 925
%%% Drucken > Seite einrichten:
%%%    Beidseitig:    kurzer Rand (Umdrehen)
%%%    Ausrichtung:    Querformat
%%% Normgröße Visitenkarte: 55 mm x 85 mm
%%% Schnittrand um jede Visitenkarte einstellen auf Zeile 82
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[
%    paper=a4, % A4-Papierformat (efault)
    fontsize=9pt, % Schriftgröße papersize (DIV=calc)
    paper=landscape, % Ausrichtung quer, sonst portrait
%    version=last, % letzte KOMA-Version verwenden (default)
    BCOR=0 mm, % Bindungskorrektur
    DIV=13, % calc, wird wegen {geometry} ignoriert
    parskip=half-, % -=letzte Zeile des Absatzes darf beliebig gefüllt sein
]{scrartcl}

\usepackage[ % Seitenränder einstellen:
    left=5.0 mm,
    right=5.0 mm,
    top=5.0 mm,
    bottom=8.0 mm
]{geometry}

\usepackage{polyglossia}% % Alternative zu babel für LuaLaTeX und XeLaTeX
\setdefaultlanguage{ngerman} % \setdefaultlanguage[variant|spelling|script|...]{german|ngerman}
\usepackage{graphicx} % erweiterte Grafikfunktionen
\usepackage{microtype} % Justage Zeichenabstände, Ligaturen, Sperrsatz für pdfTeX
\usepackage{twemojis} % verschiedene Symbole
\usepackage{tikz} % Zeichnung: hier Rahmnen um Schrift
\usetikzlibrary{intersections} % Schnittpunkte von Kurven in TikZ berechnen
\usepackage{verbatim} % Abschnitte auskommentieren
\usepackage{qrcode} % QR-Code erzeugen
\usepackage{calc} % Berechnungen ermöglichen

%\usepackage{showframe} % Ränder anzeigen für debug
%\renewcommand*\ShowFrameColor{\color{red!50!yellow}} % Farbe der Ränder ändern

\newlength{\kartenbreite} % Breite einer einzelnen Visitenkarte
\setlength{\kartenbreite}{92.0 mm} % Breite = 92,0 mm
\newlength{\kartenhöhe} % Höhe einer einzelnen Visitenharte
\setlength{\kartenhöhe}{45.0 mm} % Höhe = 45.0 mm

\newlength{\schnitt} % Verschnitt um jede Visitenkarte
\setlength{\schnitt}{1.0 mm} % oben, unten, links und rechts

\newlength{\kreuz} % Länge eines Trennkreuzstegs, jeweils
\setlength{\kreuz}{10.0 mm} % oben, unten, links und rechts

\newlength{\weit} % Breite einer Visitenkarte mit Verschnitt
\newlength{\hoch} % Höhe einer Visitenharte mit Verschnitt
\setlength{\weit}{\kartenbreite + 2\schnitt} % Breite = 92,0 mm + 2*Verschnitt = 94 mm
\setlength{\hoch}{\kartenhöhe + 2\schnitt} % Höhe = 45.0 mm + 2*Verschnitt = 47 mm

\newcommand{\spalten}{3} % Spaltenanzahl
\newcommand{\zeilen}{4} % Zeilenanzahl

\newlength{\justage} % seitliche Justage der Seite, damit sich vordere
\setlength{\justage}{0.5 mm} % und hinterere Schnittlinien decken

\author{Andreas Horn}
\date{2024-08-10}

\newcommand{\vorname}{Vorname}
\newcommand{\name}{Nachname}
\newcommand{\beruf}{Berufe,\ spezielle\ Kenntnisse\ und\ sonstige\ Fähigkeiten}
\newcommand{\strasse}{Diese\ Str.\ 123}
\newcommand{\plz}{12345}
\newcommand{\ort}{Seebad\ Dieser\ Ort}
\newcommand{\region}{Bundesland}
\newcommand{\deutschland}{Deutschland}
\newcommand{\tel}{+49\ 1234\ 567890}
\newcommand{\mobil}{+49\ 123\ 4567\ 890}
\newcommand{\email}{Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.}
\newcommand{\webseite}{https://webseite.de}
% Vorsicht, die folgenden Texte dürfen nicht zu lang werden, sonst gibt es
% im Rahmen der Visitenkarten-Vorderseite ein automatischer Zeilenumbruch:
\newcommand{\zweck}{Zweck\ dieses\ Angebots}
\newcommand{\fach}{unterstützte\ Fachrichtungen}
\newcommand{\spezial}{spezielle\ Einschränkungen\ dabei}
\newcommand{\hinweisA}{1.\ Zeile\ als\ Hinweis.}
\newcommand{\hinweisB}{2.\ Zeile\ als\ Hinweis.}
\newcommand{\motto}{Mathematik\ ist\ die\ Grundlage\ jeder\ Naturwissenschaft}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn Logo
\newcommand{\logo}{%
    % grauer Hintergrund (14.0 mm * 14.0 mm):
    \fill [lightgray] (\j*\weit-\weit+74.0 mm, \i*\hoch-\hoch+26.3 mm)
        rectangle (\j*\weit-\weit+88.0 mm, \i*\hoch-\hoch+40.3 mm);

    % Funktion:
    \newcommand{\myfunktion}{(0.44*\x, 0.17/\x)};

    % Teile der Koordinatenachsen links und unten:
    \draw [blue, line width=0.5 mm]
        (\j*\weit-\weit+75.0 mm, \i*\hoch-\hoch+30.0 mm)--
        (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+30.0 mm)--
        (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+28.0 mm);

    % Teile der Koordinatenachsen rechts und oben:
    \draw [blue, line width=0.5 mm, name path=xyP]
        (\j*\weit-\weit+86.0 mm, \i*\hoch-\hoch+30.0 mm)--
        (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+30.0 mm)--
        (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+39.0 mm);

    % Funktion zeichnen:
    \draw [
        domain=0.08 mm:0.6 mm, % Begrenzung der Auswertung für die unabhängige Variable (hier: \x)
        smooth, % glatt
        color=blue,
        line width=0.5 mm,
        name path=myFkt, % für Berechnung der Schraffur erforderlich
        % Positionierung, von linker Seite nach rechts verschoben:
        right=\j*\weit-\weit+77.0 mm,
        % Positionierung, von Unterkante nach oben verschoben:
        above=\i*\hoch-\hoch+30.0 mm,
    ]
        plot (\myfunktion);

    % Schraffur vorbereiten:
    % Punkte auf den Koordinatenachsen oben und rechts:
    \coordinate (A1) at (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+35.0 mm);
    \coordinate (A2) at (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+33.0 mm);
    \coordinate (A3) at (\j*\weit-\weit+77.0 mm, \i*\hoch-\hoch+31.0 mm);
    \coordinate (A4) at (\j*\weit-\weit+78.0 mm, \i*\hoch-\hoch+30.0 mm);
    \coordinate (A5) at (\j*\weit-\weit+80.0 mm, \i*\hoch-\hoch+30.0 mm);
    \coordinate (A6) at (\j*\weit-\weit+82.0 mm, \i*\hoch-\hoch+30.0 mm);
    % Verlängerung des A-Pfades um 4 mm nach oben und nach rechts:
    \coordinate (SP) at (4.0 mm, 4.0 mm);
    % Pfade für Schnittpunktberechnung:
    \path [name path=P1] (A1) -- +(SP);
    \path [name path=P2] (A2) -- +(SP);
    \path [name path=P3] (A3) -- +(SP);
    \path [name path=P4] (A4) -- +(SP);
    \path [name path=P5] (A5) -- +(SP);
    \path [name path=P6] (A6) -- +(SP);
    % Schnittpunktberechnung:
    \path [name intersections = {of = myFkt and P1}] (intersection-1) coordinate (S1);
    \path [name intersections = {of = myFkt and P2}] (intersection-1) coordinate (S2);
    \path [name intersections = {of = myFkt and P3}] (intersection-1) coordinate (S3);
    \path [name intersections = {of = myFkt and P4}] (intersection-1) coordinate (S4);
    \path [name intersections = {of = myFkt and P5}] (intersection-1) coordinate (S5);
    \path [name intersections = {of = myFkt and P6}] (intersection-1) coordinate (S6);
    % Schraffur zeichnen:
    \draw [blue, line width=0.5 mm] (A1) -- (S1);
    \draw [blue, line width=0.5 mm] (A2) -- (S2);
    \draw [blue, line width=0.5 mm] (A3) -- (S3);
    \draw [blue, line width=0.5 mm] (A4) -- (S4);
    \draw [blue, line width=0.5 mm] (A5) -- (S5);
    \draw [blue, line width=0.5 mm] (A6) -- (S6);
    % Beschriftung der Funktion
    \node [scale=0.3 mm, color=blue] at (\j*\weit-\weit+83.0 mm, \i*\hoch-\hoch+36.0 mm)
        {$\textbf{\textit f(x)}$};
}
% Ende Logo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn QR-Code
\newcommand{\qrinhalt}{%
    BEGIN:VCARD\?%
    VERSION:2.1\?%
    N:\name;\vorname;;;\?%
    FN:\vorname\ \name\?%
    TITLE:\beruf\?%
    NOTE:\zweck;\ \fach;\ \spezial\?%
    ADR;TYPE=HOME:;;\strasse;\ort;\region;\plz;\deutschland\?%
    TEL;TYPE=HOME:\tel\?%
    TEL;TYPE=CELL;PREF:\mobil\?%
    EMAIL:\email\?%
    URL:\webseite\?%
    REV:20240810T183000Z\?%
    END:VCARD%
}
\newcommand{\qrbild}{
    \node at (\j*\weit-0.5\weit, \i*\hoch-0.5\hoch){
        \qrcode[
            height=16.5 mm,
            level=L,
            version=14
        ]{
            \qrinhalt
        };
    };
}
% Ende QR-Code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn Schnitthilfslinien
\newcommand{\schnitthilfslinien}{
%    waagerechte Schnitthilfslinien:
    \foreach \i in {0,...,\zeilen}{ % Trennkreuze, waagerechter Teil
        \foreach \j in {2,...,\zeilen}{
            \draw [very thin, lightgray, solid]
                (\j*\weit - \j*\kreuz + \j*\kreuz - 2*\weit + 0 mm, \i*\hoch)
                --
                (\j*\weit - 2*\weit + \kreuz, \i*\hoch);
            \draw [very thin, lightgray, solid]
                (\j*\weit - \weit - \kreuz, \i*\hoch) -- (\j*\weit - \weit + 0 mm, \i*\hoch);
        }
    }
%    Schnitthilfslinien ober- und unterhalb der Trennkreuze, bei Bedarf einblenden:
%    \foreach \i in {1,...,\zeilen}{
%        \draw [very thin, lightgray, solid]
%            (0, \i*\hoch - \schnitt) -- (3*\weit, \i*\hoch - \schnitt);
%        \draw [very thin, lightgray, solid]
%            (0, \i*\hoch - \hoch + \schnitt) -- (3*\weit, \i*\hoch - \hoch + \schnitt);
%    }

%     senkrechte Schnitthilfslinien:
    \foreach \i in {0,...,\spalten}{ % Trennkreuze, senkrechter Teil
        \foreach \j in {1,...,\zeilen}{
            \draw [very thin, lightgray, solid]
                (\i*\weit, \j*\hoch - 1*\hoch + 0 mm) -- (\i*\weit, \j*\hoch - 1*\hoch + \kreuz);
            \draw [very thin, lightgray, solid]
                (\i*\weit, \j*\hoch - 0*\hoch + 0 mm) -- (\i*\weit, \j*\hoch - 0*\hoch - \kreuz);
        }
    }
%    Schnitthilfslinien links und rechts der Trennkreuze, bei Bedarf einblenden:
%    \foreach \i in {1,...,\spalten}{
%        \draw [very thin, lightgray, solid]
%            (\i*\weit - \schnitt, 4*\hoch) -- (\i*\weit - \schnitt, 0 mm);
%        \draw [very thin, lightgray, solid]
%            (\i*\weit - \weit + \schnitt, 4*\hoch) -- (\i*\weit - \weit + \schnitt, 0);
%    }
}
% Ende Schnitthilfslinien
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
% Längenzählung in tikzpicture immer von links unten
% (right=10.0 mm) von linker Kante 10.0 mm nach rechts
% (above=10.0 mm) von Unterkante 10.0 mm nach oben
% (left=-10.0 mm) von linker Kante 10.0 mm nach links (=-right)
% (below=10.0 mm) von Unterkante 10.0 mm nach unten (=-above)

% Vorderseite der Visitenkarte
    \hspace{\justage}
    \begin{tikzpicture}

        \schnitthilfslinien % Schnitthilfslinien

        \IfFileExists {Logo.pdf} % Datei auf Vorhandensein prüfen
        { % vorhandene Datei Logo.pdf einbinden:
            \renewcommand{\logo}{
                \node at (\j*\weit-14.0 mm, \i*\hoch-14.5 mm){
                    \includegraphics[width=16.5mm, height=16.5mm]{Logo.pdf}
                };
            }
        }{ % sonst dynamische Erzeugung des Logo's:
        }

        \foreach \i in {1,...,\zeilen}{ % Zeilen wiederholen
            \foreach \j in {1,...,\spalten}{ % Spalten wiederholen
                \node[ % gerundeter Rahmen mit Schrift darin
                    inner sep=2.0ex,
                    rounded corners,
                    draw=blue,
                    align=center, % align=right|center|left
                    text width = 0.17\textwidth,
                    draw,
                ]
                % wegen align=center ist das der Mittelpunkt des gerundeten Rahmens:
                at (\j*\weit-\weit+31.0 mm, \i*\hoch-\hoch+33.0 mm)
                {
                    \textcolor{blue}\zweck \\ % Zweck des Angebots
                    \textcolor{blue}\fach \\ % Fachrichtung
                    \textcolor{blue}\spezial % Spezielle Fähigkeiten
                };

                % Schrift unterhalb des gerundeten Rahmens:
                \node at (\j*\weit-\weit+ 3.0 mm, \i*\hoch-\hoch+21.0 mm) [right]
                    {\huge\textcolor{blue}{\vorname~\name}}; % Vorname Nachname
                \node at (\j*\weit-\weit+ 3.0 mm, \i*\hoch-\hoch+16.0 mm) [right]
                    {\Large\textcolor{blue}{\beruf}}; % Beruf
                \node at (\j*\weit-\weit+ 3.0 mm, \i*\hoch-\hoch+12.0 mm) [right]
                    {\strasse}; % Straße Hausnummer
                \node at (\j*\weit-\weit+ 3.0 mm, \i*\hoch-\hoch+ 8.0 mm) [right]
                    {\plz\ \ort}; % Postleitzahl Ort
                \node at (\j*\weit-\weit+ 3.0 mm, \i*\hoch-\hoch+ 5.0 mm) [right]
                    {\twemoji{e-mail}~\email}; % E-Mail
                \node at (\j*\weit-\weit+89.4 mm, \i*\hoch-\hoch+12.0 mm) [left]
                    {\twemoji{mobile phone}~\mobil}; % Mobil-Telefonnummer
                \node at (\j*\weit-\weit+89.4 mm, \i*\hoch-\hoch+ 8.0 mm) [left]
                    {\twemoji{telephone receiver}~\tel}; % Festnetz-Telefonnummer
                \node at (\j*\weit-\weit+89.4 mm, \i*\hoch-\hoch+ 5.0 mm) [left]
                    {\webseite}; % Webseite

                % Logo.pdf ausgeben oder Logo dynamisch erzeugen
                \logo

            }
        }
    \end{tikzpicture}
    \newpage
% Rückseite der Visitenkarte
    \hspace{\justage}
    \begin{tikzpicture}

        \schnitthilfslinien

        \IfFileExists {QR.pdf}{ % Datei auf Vorhandensein prüfen
            \renewcommand{\qrbild}{ % vorhandene Datei QR.pdf einbinden
                \node at (\j*\weit-0.5\weit, \i*\hoch-0.5\hoch){
                    \includegraphics[width=16.5mm, height=16.5mm]{QR.pdf}
                };
            }
        }{ % sonst dynamische Erzeugung des QR-Code
        }

        \foreach \i in {1,...,\zeilen}{ % Zeilen wiederholen
            \foreach \j in {1,...,\spalten}{ % Spalten wiederholen
    
                \node at (\j*\weit-\weit+0.5\weit, \i*\hoch-\hoch+40 mm) [centered]
                    {\hinweisA}; % Hinweis A
                \node at (\j*\weit-\weit+0.5\weit, \i*\hoch-\hoch+36 mm) [centered]
                    {\hinweisB}; % Hinweis B
                \node at (\j*\weit-\weit+0.5\weit, \i*\hoch-\hoch+10 mm) [centered]
                    {\motto}; % Motto

                % QR.pdf ausgeben oder QR-Code dynamisch erzeugen
                \qrbild
            }
        }
    \end{tikzpicture}
\end{document}
Logo.tex
% !TeX root = Logo.tex
% !TeX spellcheck = de_DE
% !TeX encoding = UTF-8
% !TeX TS-program = lualatex
% !TeX TXS-program:bibliography = biblatex
% Ende magic comment's für TeXstudio
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% erzeugt die Datei Logo.pdf für die Visitenkarten, Stand: 2024-08-10
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[
    fontsize=9pt, % Schriftgröße papersize (DIV=calc)
    BCOR=0 mm, % Bindungskorrektur
    DIV=13, % calc, 6=feste Vorgabe, die keine Warnung bringt, wird wegen {geometry} ignoriert
    parskip=half-, % "-" heißt: letzte Zeile des Absatzes darf beliebig gefüllt sein
]{scrartcl}

\usepackage[ % Seitenränder einstellen
    left=0.0 mm,
    right=0.0 mm,
    top=0.0 mm,
    bottom=0.0 mm,
    paperheight=14.0 mm,
    paperwidth=14.0 mm,
]{geometry}

\usepackage{tikz} % Zeichnung: hier Rahmnen um Schrift
\usetikzlibrary{intersections} % Schnittpunkte von Kurven in TikZ berechnen

\author{Andreas Horn}
\date{2024-07-24}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn Logo
\newcommand{\logo}{%
    % grauer Hintergrund:
    \fill [lightgray] (0.0 mm, 0.0 mm)
        rectangle (14.0 mm, 14.0 mm);

    % Funktion:
    \newcommand{\myfunktion}{(0.44*\x, 0.17/\x)};

    % Teile der Koordinatenachsen links und unten:
    \draw [blue, line width=0.5 mm]
        (1.0 mm, 3.3 mm)--
        (3.0 mm, 3.3 mm)--
        (3.0 mm, 1.3 mm);

    % Teile der Koordinatenachsen rechts und oben:
    \draw [blue, line width=0.5 mm, name path=xyP]
        (12.0 mm,  3.3 mm)--
        ( 3.0 mm,  3.3 mm)--
        ( 3.0 mm, 12.3 mm);

    % Funktion zeichnen:
    \draw [
        domain=0.08 mm:0.6 mm, % Begrenzung der Auswertung für die unabhängige Variable (hier: \x)
        smooth, % glatt
        color=blue,
        line width=0.5 mm,
        name path=myFkt, % für Berechnung der Schraffur erforderlich
        % Positionierung, von linker Seite nach rechts verschoben:
        right=77.0 mm - 74.0 mm,
        % Positionierung, von Unterkante nach oben verschoben:
        above=30.0 mm - 26.3 mm,
    ]
        plot (\myfunktion);

    % Schraffur vorbereiten:
    % Punkte auf den Koordinatenachsen oben und rechts:
    \coordinate (A1) at (3.0 mm, 8.3 mm);
    \coordinate (A2) at (3.0 mm, 6.3 mm);
    \coordinate (A3) at (3.0 mm, 4.3 mm);
    \coordinate (A4) at (4.0 mm, 3.3 mm);
    \coordinate (A5) at (6.0 mm, 3.3 mm);
    \coordinate (A6) at (8.0 mm, 3.3 mm);
    % Verlängerung des A-Pfades:
    \coordinate (SP) at (4.0 mm, 4.0 mm);
    % Pfade für Schnittpunktberechnung:
    \path [name path=P1] (A1) -- +(SP);
    \path [name path=P2] (A2) -- +(SP);
    \path [name path=P3] (A3) -- +(SP);
    \path [name path=P4] (A4) -- +(SP);
    \path [name path=P5] (A5) -- +(SP);
    \path [name path=P6] (A6) -- +(SP);
    % Schnittpunktberechnung:
    \path [name intersections = {of = myFkt and P1}] (intersection-1) coordinate (S1);
    \path [name intersections = {of = myFkt and P2}] (intersection-1) coordinate (S2);
    \path [name intersections = {of = myFkt and P3}] (intersection-1) coordinate (S3);
    \path [name intersections = {of = myFkt and P4}] (intersection-1) coordinate (S4);
    \path [name intersections = {of = myFkt and P5}] (intersection-1) coordinate (S5);
    \path [name intersections = {of = myFkt and P6}] (intersection-1) coordinate (S6);
    % Schraffur zeichnen:
    \draw [blue, line width=0.5 mm] (A1) -- (S1);
    \draw [blue, line width=0.5 mm] (A2) -- (S2);
    \draw [blue, line width=0.5 mm] (A3) -- (S3);
    \draw [blue, line width=0.5 mm] (A4) -- (S4);
    \draw [blue, line width=0.5 mm] (A5) -- (S5);
    \draw [blue, line width=0.5 mm] (A6) -- (S6);
    % Beschriftung der Funktion
    \node [scale=0.3 mm, color=blue] at (83.0 mm - 74.0 mm, 36.0 mm - 26.3 mm)
        {$\textbf{\textit f(x)}$};
}
% Ende Logo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
% Längenzählung in tikzpicture immer von links unten
% (right=10.0 mm) von linker Kante 10.0 mm nach rechts
% (above=10.0 mm) von Unterkante 10.0 mm nach oben
% (left=10.0 mm) von linker Kante 10.0 mm nach links
% (below=10.0 mm) von Unterkante 10.0 mm nach unten

    \begin{tikzpicture} % [Optionen]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn Logo
        \logo
% Ende Logo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \end{tikzpicture}
\end{document}

 

QR.tex
% !TeX root = QR.tex
% !TeX spellcheck = de_DE
% !TeX encoding = UTF-8
% !TeX TS-program = lualatex
% !TeX TXS-program:bibliography = biblatex
% Ende magic comment's für TeXstudio
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%
%%% erzeugt die Datei QR.pdf für die Visitenkarten, Stand: 2024-08-10
%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[
    version=last, % letzte KOMA-Version verwenden
    BCOR=0 mm, % Bindungskorrektur
    DIV=13, % calc, 6=feste Vorgabe, die keine Warnung bringt, wird wegen {geometry} ignoriert
    parskip=half-, % "-" heißt: letzte Zeile des Absatzes darf beliebig gefüllt sein
]{scrartcl}

% Seitenränder einstellen:
\usepackage[
    left=0.0 mm,
    right=0.0 mm,
    top=5.35 mm,
    bottom=0.0 mm,
    paperheight=16.5 mm,
    paperwidth=16.5 mm,
]{geometry}

\usepackage{tikz} % Zeichnung: hier Rahmnen um Schrift
\usetikzlibrary{intersections} % Schnittpunkte von Kurven in TikZ berechnen
\usepackage{qrcode} % QR-Code erzeugen

\author{Andreas Horn}
\date{2024-07-24}

\newcommand{\vorname}{Vorname}
\newcommand{\name}{Nachname}
\newcommand{\beruf}{Berufe,\ spezielle\ Kenntnisse\ und\ sonstige\ Fähigkeiten}
\newcommand{\strasse}{Diese\ Str.\ 123}
\newcommand{\plz}{12345}
\newcommand{\ort}{Seebad\ Dieser\ Ort}
\newcommand{\region}{Bundesland}
\newcommand{\deutschland}{Deutschland}
\newcommand{\tel}{+49\ 1234\ 567890}
\newcommand{\mobil}{+49\ 123\ 4567\ 890}
\newcommand{\email}{Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.}
\newcommand{\webseite}{https://webseite.de}
% Vorsicht, die folgenden Texte dürfen nicht zu lang werden, sonst gibt es
% im Rahmen der Visitenkarten-Vorderseite ein automatischer Zeilenumbruch:
\newcommand{\zweck}{Zweck\ dieses\ Angebots}
\newcommand{\fach}{unterstützte\ Fachrichtungen}
\newcommand{\spezial}{spezielle\ Einschränkungen\ dabei}
%\newcommand{\hinweisA}{1.\ Zeile\ als\ Hinweis}
%\newcommand{\hinweisB}{mich\ bitte\ telefonisch\ kontaktieren.}
%\newcommand{\motto}{Mathematik\ ist\ die\ Grundlage\ jeder\ Naturwissenschaft}
\newcommand{\qrinhalt}{
    BEGIN:VCARD\?%
    VERSION:2.1\?%
    N:\name;\vorname;;;\?%
    FN:\vorname\ \name\?%
    TITLE:\beruf\?%
    NOTE:\zweck;\ \fach;\ \spezial\?%
    ADR;TYPE=HOME:;;\strasse;\ort;\region;\plz;\deutschland\?%
    TEL;TYPE=HOME:\tel\?%
    TEL;TYPE=CELL;PREF:\mobil\?%
    EMAIL:\email\?%
    URL:\webseite\?%
    REV:20240810T183000Z\?%
    END:VCARD
}

\begin{document}
    \begin{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Beginn QR-Code
        \qrcode[
            height=16.5 mm,
            level=L,
            version=14
        ]{\qrinhalt}
% Ende QR-Code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \end{tikzpicture}
\end{document}