Code:
%https://tex.stackexchange.com/questions/47924/creating-playing-cards-using-tikz
\documentclass{article}
\usepackage{geometry}
\geometry{
paperwidth=65mm,
paperheight=97mm,
%offset=4mm,
margin=3mm
}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{fourier-orns}
\definecolor{titlebg}{cmyk}{0,0,0,1}
\definecolor{bg1}{cmyk}{0,1,1,0.07}
\definecolor{pricebg}{cmyk}{0,.22,1.00,.10}
\definecolor{contentbg}{cmyk}{0,0,0,0}
% TikZ/PGF Settings für die Karten
\pgfmathsetmacro{\cardwidth}{5.9}
\pgfmathsetmacro{\cardheight}{9.1}
\pgfmathsetmacro{\imagewidth}{\cardwidth}
\pgfmathsetmacro{\imageheight}{0.75*\cardheight}
\pgfmathsetmacro{\stripwidth}{0.7}
\pgfmathsetmacro{\strippadding}{0.2}
\pgfmathsetmacro{\textpadding}{0.1}
\pgfmathsetmacro{\titley}{\cardheight-\strippadding-1.5*\textpadding-0.5*\stripwidth}
% Formen der einzelnen Kartenelemente/-bestandteile
\def\shapeCard{(0,0) rectangle (\cardwidth,\cardheight)}
%Ohne Kasten:
%\def\shapeCard{(0,0) [draw=none] rectangle (\cardwidth,\cardheight)}
\def\shapeLeftStripLong{(\strippadding,-0.2) rectangle (\strippadding+\stripwidth,\cardheight-\strippadding-\strippadding-1)}
\def\shapeLeftStripShort{(\strippadding,\cardheight-\strippadding-1) rectangle (\strippadding+\stripwidth,\cardheight+0.2)}
\def\shapeRightStripShort{(\cardwidth-\stripwidth-\strippadding,\cardheight-\strippadding-1) rectangle (\cardwidth-\strippadding,\cardheight+0.2)}
\def\shapeTitleArea{(2*\strippadding+\stripwidth,\cardheight-\strippadding) rectangle (\cardwidth-2*\strippadding-\stripwidth,\cardheight-2*\stripwidth)}
\def\shapeContentArea{(2*\strippadding+\stripwidth,0.53*\cardheight) rectangle (\cardwidth+0.2,-0.2)}
% Stylings für die Elemente definieren
\tikzset{
% runde Ecken für die Karten
cardcorners/.style={
rounded corners=0.5cm
},
% runde Ecken für die "Fähnchen"
elementcorners/.style={
rounded corners=0.1cm
},
% Schlagschatten für die "Fähnchen"
stripshadow/.style={
drop shadow={
opacity=.5,
shadow,
color=black
}
},
% Style für die "Fähnchen"
strip/.style={
elementcorners,
stripshadow
},
% Bild für das Kartenmotiv
cardimage/.style={
path picture={
\node[below=-1.5mm] at (0.5*\cardwidth,\cardheight) {
\includegraphics[width=\imagewidth cm]{#1}
};
}
},
}
% Hintergrund der Karte
\newcommand{\cardbackground}[1]{
\draw[cardcorners, cardimage=#1] \shapeCard;
}
% Kategorie der Karte
\newcommand{\cardtype}[3]{
% First we fill the intersecting area. The \clip command does not allow options, therefore we have to use a scope to set the even odd rule.
\begin{scope}[even odd rule]
% Define a clipping path. All paths outside shapeCard will be cut because the even odd rule is set.
\clip[cardcorners] \shapeCard;
% Fill shapeLeftStripLong and shapeLeftStripShort. Since the even odd rule is set, only the card will be filled.
\fill[strip,#1] \shapeLeftStripLong node[rotate=90,above left=0.9mm,font=\normalsize] {
\color{white}\uppercase{#2}
};
\fill[strip,#1] \shapeLeftStripShort;
\end{scope}
\node at (\strippadding+\stripwidth-0.28,\cardheight-\strippadding-\strippadding-0.37) {\color{white}#3};
}
\newcommand{\cardtypeTEST}{\cardtype{bg1}{Test}{\hspace{-1mm}\LARGE\bomb}}
% Titel der Karte
\newcommand{\cardtitle}[1]{
%\draw[pattern=soft crosshatch,rounded corners=0.1cm] \shapeTitleArea;
\fill[elementcorners,titlebg,opacity=.65] \shapeTitleArea;
\node[text width=3.75cm] at (0.5*\cardwidth,\titley) {
\begin{center}
\color{white}\uppercase{\normalsize #1}
\end{center}
};
}
% Inhalt der Karte
\newcommand{\cardcontent}[2]{
\begin{scope}[even odd rule]
\clip[cardcorners] \shapeCard;
\fill[elementcorners,contentbg] \shapeContentArea;
\end{scope}
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,0.5*\cardheight-\textpadding) {
\textit{\glqq\normalsize #1\grqq}
};
\node[below right, text width=(\cardwidth-2*\strippadding-\stripwidth-2*\textpadding-0.3)*1cm] at (2*\strippadding+\stripwidth+\textpadding,3) {
\vrule width \textwidth height 2pt \\[-2pt]
\vspace{0.2cm}
{\scriptsize #2}
};
}
% Preis der Karte
\newcommand{\cardprice}[1]{
\begin{scope}[even odd rule]
\clip[cardcorners] \shapeCard;
\fill[strip,pricebg] \shapeRightStripShort;
\end{scope}
\node at (\cardwidth-0.5*\stripwidth-\strippadding,\titley-0.1) {\color{black}#1};
}
%Nach https://tex.stackexchange.com/questions/140168/how-to-remove-a-blank-page-before-the-title-page, entfernt leere erste Seite.
\usepackage{atbegshi}% http://ctan.org/pkg/atbegshi
\AtBeginDocument{\AtBeginShipoutNext{\AtBeginShipoutDiscard}}
\begin{document}\sloppy
\centering
\pagestyle{empty}
\begin{tikzpicture}
\cardbackground{./erlkoenig-frei.jpg}
\cardtypeTEST
\cardtitle{Der Test}
\cardcontent{Tja. Was für ein verhunztes Minimalbeispiel!}{Anweisung:\\[5pt]Ziehe 2 Karten, nimm 3 Gold, lege alles ab, lauf weg …}
\cardprice{20}
\end{tikzpicture}
\end{document}
Lesezeichen