# Merging Symbols in Mathmode

I want to create boxes (\Box) and diamonds (\Diamond) with letter and other symbols insider them. I've achieved something, but the result is ok-ish:

$\Box \!\!\! _ {^{_ {^{_{^a}}}}}$
$\Diamond \!\!\! _ {^{_ {^{_{^a}}}}}$
$\Box\!\!\! _{^{ _{^\heartsuit}}}$


Does anyone have a good tip to make it looks better?

-

A simple solution for single characters in the box and diamond. Play around with the setting \setlength\fboxsep{2pt} inside macros

\documentclass[a5paper,12pt]{article}
\usepackage{amssymb,graphicx}
\def\CBox#1{\fbox{$\scriptstyle#1$}}
\def\DBox#1{\rotatebox[origin=c]{45}{\fbox{\rotatebox[origin=c]{-45}{$#1$}}}}
\begin{document}

$\CBox{a}$
$\DBox{a}$

\end{document}


-

I can't make the code shorter, but it might be more readable and reliable.

\documentclass{article}
\usepackage{amssymb}
\newcommand\merge[2]{%
\ooalign{\hfil$\vcenter{\hbox{$#1$}}$\hfil\cr
\hfil$\vcenter{\hbox{$\scriptstyle #2$}}$\hfil}}
\newcommand\inBox[1]{\merge\Box{#1}}
\newcommand\inDiamond[1]{\merge\Diamond{#1}}
\newcommand\inheartsuit[1]{\merge\heartsuit{#1}}
\begin{document}
$\inBox{a}, \inDiamond{a}, \inBox\heartsuit$
\end{document}


\ooalign is used by LaTeX kernel to merge symbols. Commands like \textcircled are defined with it.

-
nice solution!! –  Herbert May 5 '11 at 12:27