TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In math mode, I'm trying to make a square with a diamond in it. My failed attempt has been to put the following in the preamble:


However, the diamond symbol is not scaled properly relative to the square. I'd like the corners of the diamond to touch the midpoints of the sides of the square, and I can't figure out how to "scale" the diamond appropriately. Is there another way to do this?

share|improve this question
Related question: Overlay symbol with another – Martin Scharrer Apr 1 '11 at 20:46
up vote 8 down vote accepted

It is quit difficult to get the two symbols scaled and align correctly in all four math modes. Better draw it using TikZ. One difficulty is to properly scale the size and line width. This can be best done using amsmath \text macro. I made two versions which are slightly different.


\newcommand{\sqdiamond}{\mathbin{\text{\tikz [x=1ex,y=1ex,line width=.1ex,line join=round] \draw (0,0) rectangle (1,1) (0,.5) -- (.5,1) -- (1,.5) -- (.5,0) -- (0,.5) -- cycle;}}}

\newcommand{\varsqdiamond}{\mathbin{\text{\tikz [x=1ex,y=1ex,line width=.1ex,line join=round] \draw (0,0) rectangle (1,1) (.5\pgflinewidth,.5) -- (.5,1ex-.5\pgflinewidth) -- (1ex-.5\pgflinewidth,.5) -- (.5,.5\pgflinewidth) -- (.5\pgflinewidth,.5) -- cycle;}}}

% Test code:

.. $a \sqdiamond b$ ..

\[a \sqdiamond b \]

.. $X_{a \sqdiamond b}$ ..

.. $X_{X_{a \sqdiamond b}}$ ..

.. $a \varsqdiamond b$ ..

\[a \varsqdiamond b \]

.. $X_{a \varsqdiamond b}$ ..

.. $X_{X_{a \varsqdiamond b}}$ ..


Result 1


Variant 1: sqdiamond

Variant 2: varsqdiamond

share|improve this answer

This seems to work with the Computer Modern fonts, but it's font dependent:

share|improve this answer

Here's one possibility, using TikZ:


  \tikz{\draw (0,0) rectangle (6pt,6pt); 
  \draw (3pt,0) -- (6pt,3pt) -- (3pt,6pt) -- (0,3pt) -- (3pt,0);}
share|improve this answer
The problem here is that it doesn't scale correctly in subscripts etc. Also the spacing around is wrong if \mathbin isn't used. – Martin Scharrer Apr 1 '11 at 20:32
@Martin Scharrer: yes, I know that, but it wasn't completely clear (at least for me) if the symbol should be used as a binary symbol, or as a relation symbol, or if it was just meant to be used as, for example, an endmark. – Gonzalo Medina Apr 1 '11 at 20:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.