[Tex/LaTex] Square with a diamond in it

math-modesymbols

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:

\newcommand{\sqdiamond}{\mathbin{\rlap{$\mspace{2mu}\diamond$}\hbox{$\square$}}}

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?

Best Answer

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.

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}

\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;}}}

\begin{document}
% 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}}$ ..


\end{document}

Result 1

Zoomed:

Variant 1: sqdiamond

Variant 2: varsqdiamond