![如何抽取一副牌?](https://linux22.com/image/300007/%E5%A6%82%E4%BD%95%E6%8A%BD%E5%8F%96%E4%B8%80%E5%89%AF%E7%89%8C%EF%BC%9F.png)
如何使用 Latex 包(如 TikZ)从牌组中抽取卡片?
答案1
这是一个使用的解决方案SVG-Cards
,inkscape
和PDFLaTEX/graphicx/TikZ
。
我提供一个Makefile
:
下载并提取 SVG-Cards 档案(通过
wget
和tar
),从中提取每个 SVG 卡
svg-cards.svg
(通过inkscape
)将每张 SVG 卡转换为 PDF 卡(通过
inkscape
)编译
cards.tex
(通过pdflatex
)
脚步:
复制
Makefile
(注意:行首的空格是制表符) 及cards.tex
以下内容。奔跑
make
去得到cards.pdf
笔记:如果你不能使用这个Makefile
,我提供卡片.tgz. 此档案包含所有提取的 PDF 卡片(编译所需cards.tex
)。
这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
文件cards.tex
:
\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}
答案2
我发现最接近的解决方案是实验包裹poker
由开发奥拉夫·恩克.此包基于技巧(所有并发症都发生在pdflatex
)此外,这个包不是标准的,通常不包含在标准 TeX 发行版(MaCTeX、TeXLive 或 MiKTeX)而且必须是手动已安装。
我建议采取以下步骤:
下载并解压包麻省理工学院网页。
取决于您的分布手动安装包。 (为了微特克斯你必须创建本地 texmf 树,如果你使用如下系统Linux读如何在 Linux 系统上安装单独的软件包?, 和阅读此处为了麦芽糖)。
使用路径
latex
->dvips
->运行ps2pdf
。如果您需要将图形包含在其他文件中
.pdf
(带有pdflatex
、xelatex
或lualatex
),则使用pdfcrop --hires <file> <file.pdf>
代码示例
\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}
结果
答案3
取决于你想用它们做什么。如果你打算把它们输入到论文中来描述概率等,最好使用字体。从 Unicode 7.0 开始,卡片套件就有了代码点。使用 Symbola 免费字体乔治·杜罗斯。
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\symbola{Symbola.ttf}
\begin{document}
\Huge
\symbola
\char"1F0AB \char"1F0CF
\end{document}
使用 XeLaTeX 或 LuaLaTeX。
使用 unicode 字体,您只需输入“从抽牌堆中抽出的王牌花色是一张 ♣ 牌 (2♣)。”并轻松排版文本。