\clubsuit, \diamondsuit and the like produce the familiar card suit symbols; however, the diamond and heart suits are empty (only outlined), while clubs and spades are filled. Is there a way to obtain the filled versions of \diamondsuit and \heartsuit in TeX?

A "clean" solution would be preferred, but even an ugly "take this shape and fill it" TikZ hack would do the job.


  • 3
    Welcome to TeX.SX! Please make your answer compilable, starting with \documentclass and ending with \end{document}. Could you add also some explanations why it works? – Bobyandbob Sep 20 '18 at 6:31
  • Welcome to TeX.SX! It might be a nice touch to say a few more words ... although I admit that the answer is fairly clear as it is already. But you should definitely mention that the commands need math mode and thus can not be used in normal text as shown. – moewe Sep 20 '18 at 6:31
  • Can you make with no fill? – k.dkhk Sep 12 '19 at 9:35
  • 1
    Using fdssymbol package makes some other symbols weird-looking, including \sum and \int. – JACKY Li Dec 14 '20 at 15:27

As Alan has pointed out, the symbols are available in arev, which does normally change all your fonts. The following (added to your preamble) only takes the two symbols you want from arev.


Unfortunately the style differs slightly from the default symbols:



  • The other two suits are 84 and 85. \DeclareMathSymbol{\varclub}{\mathalpha}{extraup}{84} \DeclareMathSymbol{\varspade}{\mathalpha}{extraup}{85} Strangely, 3 are filled and 1 isn't (spades)... – PatrickT Mar 16 '13 at 11:03
  • @Caramdir: Can symbols from Computer/Latin Modern be imported in a similar fashion? I ask because Neo Euler lacks all of the card suit symbols, and it would be nice to import the club and diamond from Computer/Latin Modern. – emacsomancer Dec 24 '14 at 18:41
  • @emacsomancer I suppose. Please ask a separate question. – Caramdir Dec 25 '14 at 8:37

The arev package provides \varheart and \vardiamond which are filled. (The Comprehensive LaTeX Symbols Guide is your friend here.)


arev font output

Since arev changes the math font, it's maybe not the best solution. (But see Caramdir's answer for a way around that.)

The txfonts packages also provides \varheartsuit and \vardiamondsuit, but again changes the math font.


txfonts output

Alternatively, if you use XeLaTeX or LuaLaTeX, there are many fonts that contain these characters.

\newfontfamily\suitfont{Dejavu Sans}


XeTeX output

  • 3
    The arev package does change the whole math font though. – Caramdir Jan 24 '11 at 23:19
  • Also possible are \varheartsuit and \Diamondblack from the txfonts package, and these work without extra dependencies (txfonts package excluded. arev pulled two or three additional packages on my system). Maybe you'd like to edit your answer to include these? It feels wrong for me to post it as a separate answer. – Martin Tapankov Jan 24 '11 at 23:26
  • @Martin and Caramdir. Thanks. I've edited my answer. – Alan Munn Jan 24 '11 at 23:53
  • can u provide detail tex file for reference – larrycai Jan 7 '19 at 13:46
  • @larrycai I've added example documents for each method. – Alan Munn Jan 7 '19 at 16:01

Another font that provides the filled diamond and heart suit symbols is kpfonts. From the preamble of my template file for type-setting bridge stuff:


\newcommand*\Hs[1]{\ensuremath{{\color{blue} #1}{\color{red}\varheartsuit}}}
\newcommand*\Ss[1]{\ensuremath{{\color{blue} #1}{\color{black}\spadesuit}}}
\newcommand*\Ds[1]{\ensuremath{{\color{blue} #1}{\color{red}\vardiamondsuit}}}
\newcommand*\Cs[1]{\ensuremath{{\color{blue} #1}{\color{black}\clubsuit}}}
\newcommand*\NT[1]{{\color{blue} #1}{\color{black}\textsc{nt}}}

of course, this predicates on your willing to switch to a whole new font, so is in some sense inferior to the solutions already given.

  • Is it possible to only use these symbols from your font package without changing fonts? – ಠ_ಠ Feb 19 '18 at 4:50
  • 1
    A variant of Caramdir's answer should work. You will have to go through the kpfonts.sty to find the font name (I think replacing the zavm with jkpss should work), and also find the correct numbers for the symbols somehow. You may want to ask a new questions so someone more familiar with how this works can give you a better answer. – Willie Wong Feb 19 '18 at 5:09

The symbols are available in the pifont package using


in your preamble and

\ding{168}              % club
{\color{red}\ding{169}} % diamond
{\color{red}\ding{170}} % heart
\ding{171}              % spade

to access the different symbols.


The package amssymb provides the filled lozenge symbol \blacklozenge similar to the filled diamond.


I found an unexpectedly easy way here: https://tex.stackexchange.com/a/124347/80217.




enter image description here


You asked this question in 2011. As of 2020, the modern toolchain with unicode-math also supports \varheartsuit and \vardiamondsuit.

If your Unicode text font contains the symbols ♥ (U+2665) and ♦ (U+2666), you can load fontspec and enter them directly, or as as ^^^^2665 and ^^^^2666.

If you want to use them in text mode and your main font does not contain them, you could patch them in as follows:

\newfontfamily\symbolfont{DejaVu Serif}[Scale=MatchUppercase]

Another option would be to set a font for that entire block of symbols using ucharclasses.

  • Thanks; great to know Latex is getting better with time thanks to the work of many people. (By the way, quick question: does your snippet work in Pdflatex, or only in Xelatex?) – Federico Poloni Apr 28 '20 at 6:38
  • @FedericoPoloni Either LuaLaTeX or XeLaTeX, but not PDFLaTeX. – Davislor Apr 28 '20 at 10:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.