How to draw the cards from a deck using a Latex package, as TikZ?
3 Answers
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}
-
Do you know how to do this in Windows without
cygwin
? That's my work platform.– skpblackOct 21, 2014 at 1:39 -
@skpblack pdflatex, latexmk and inkscape exist for Windows. You may download manually the SVG-Cards archive then try GnuWin (a gnumake for windows)... Oct 21, 2014 at 5:19
-
@skpblack : I added a note with a link to an archive with all PDF cards Oct 21, 2014 at 8:11
-
This is such a great contribution. I used it to illustrate a Venn diagram intersection. FYI docdro.id/KaJUDjw– PatrickTOct 9, 2017 at 21:30
-
The export-latex function has a bug preventing you to export just one object with a certain ID. It produces and empty page. The trick by just exporting de ID to a plain SVG file and then do the Latex export works around this limitation. Very good, thanks! Feb 9, 2021 at 13:37
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
-
Now we have the
pst-poker
package which is included in TeX Live. Its document says "pst-poker
is based on the packagepoker
from Olaf Encke (web.mit.edu foley/games/Arcadia/sr/poker/pokersty)."– L. F.Mar 29, 2019 at 14:10
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.
-
-
1@LaRiFaRi Thanks for the links. I am aware of some of the other fonts, they are hard to come by (if you see in your link) there only about three other fonts you can use. The
Quivira
is a particularly good one as well, so are theNo Tofu
from Google. The last one is very lightweight and has an advantage if you don't mix it with other text. Oct 21, 2014 at 13:48
tikz
,pstricks
etc, especially the cards showing images like King, Queen, Joker, Jake are too complex to draw it with tikz.