How to draw the cards of a deck?
The closest solution I found is the experimental package poker
developed by Olaf Encke. This package is based on PSTricks (with all complications to run in pdflatex
) further that this package is not standard and generally is not included in the Standard TeX Distributions (MaCTeX, TeXLive or MiKTeX) and it must be manually installed.
I recommend these steps:
Download and extract the package from MIT webpage.
Depending of your distribution Install manually the package. (For MiKTeX you must Create a local texmf tree, if you use a system as Linux read How do I install an individual package on a Linux system?, and read here for MaCTeX).
Run using the path
latex
->dvips
->ps2pdf
.If you need the figures to include in others files
.pdf
(withpdflatex
,xelatex
orlualatex
) then clip usingpdfcrop --hires <file> <file.pdf>
Code Example
\documentclass{article}
\usepackage{poker}
\pagestyle{empty} %No number in pages
\begin{document}
\begin{cards}
\crdAs\crdKh
\end{cards}
\begin{cards}
\crdpair{\crdKs}{\crdtenh}%
\crdflop{\crdsevd}{\crdsevc}{\crdQd}%
\crdKc\crdKd%
\end{cards}
\end{document}
Result
Depends what you want to do with them. If you going to enter them in a paper to describe probabilities etc, better to use a font. As of Unicode 7.0 there are codepoints for card suite. Use the Symbola free font of George Douros.
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\symbola{Symbola.ttf}
\begin{document}
\Huge
\symbola
\char"1F0AB \char"1F0CF
\end{document}
Use XeLaTeX or LuaLaTeX.
With a unicode font you can just type "The drawn trump suit from the draw deck is a ♣ card (2♣)." and typeset the text easily.
Here is a solution using SVG-Cards
, inkscape
and PDFLaTEX/graphicx/TikZ
.
I provide a Makefile
:
to download and to extract the SVG-Cards archive (via
wget
andtar
),to extract each SVG card from
svg-cards.svg
(viainkscape
)to convert each SVG card into a PDF card (via
inkscape
)to compile
cards.tex
(viapdflatex
)
Steps:
Copy the
Makefile
(note: the white spaces at beginning of lines are tabulations) and thecards.tex
below.Run
make
to getcards.pdf
Note: if you can't use this Makefile
, I provide cards.tgz. This archive contains all extracted PDF cards (needed to compile cards.tex
).
The Makefile
:
JOKERS = black_joker red_joker
LEVELS = 1 2 3 4 5 6 7 8 9 10 jack queen king
CLUBS = ${LEVELS:%=%_club}
DIAMONDS = ${LEVELS:%=%_diamond}
HEARTS = ${LEVELS:%=%_heart}
SPADES = ${LEVELS:%=%_spade}
CARDS = ${CLUBS} ${DIAMONDS} ${HEARTS} ${SPADES} ${JOKERS}
CARDS_PDF = ${CARDS:%=card-%.pdf}
all: cards.pdf
cards.pdf: cards.tex $(CARDS_PDF)
latexmk -pdf cards.tex
card-%.pdf: card-%.svg
inkscape --export-pdf=$@ $<
card-%.svg: SVG-cards-2.0.1/svg-cards.svg
inkscape --export-plain-svg=$@ --export-id=${@:card-%.svg=%} --export-id-only $<
SVG-cards-2.0.1/svg-cards.svg:
wget http://sourceforge.net/projects/svg-cards/files/SVG-cards-2.0.1.tar.gz
tar zxvf SVG-cards-2.0.1.tar.gz
The cards.tex
file:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \col[count=\c] in {spade,heart,diamond,club}{
\begin{scope}[shift={(\c*90:1.5cm)}]
\foreach \level[count=\val] in {1,...,10,jack,queen,king}{
\node[inner sep=0,anchor=south,rotate={40-(\val*6)}]
at ({140-(\val*6)}:1cm)
{\includegraphics[height=1cm]{card-\level_\col}};
}
\end{scope}
}
\node at (-2,0) {\includegraphics[height=1cm]{card-red_joker}};
\node at (2,0) {\includegraphics[height=1cm]{card-black_joker}};
\end{tikzpicture}
\end{document}