我想创建方框 ( \Box
) 和菱形 ( \Diamond
),并在其中添加字母和其他符号。我已经实现了一些功能,但结果还不错:
$\Box \!\!\! _ {^{_ {^{_{^a}}}}}$
$\Diamond \!\!\! _ {^{_ {^{_{^a}}}}}$
$\Box\!\!\! _{^{ _{^\heartsuit}}}$
有人有好的建议可以让它看起来更好吗?
答案1
一个简单的解决方案,适用于方框和菱形中的单个字符。尝试使用\setlength\fboxsep{2pt}
宏内的设置
\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}
答案2
我无法使代码更短,但它可能更具可读性和可靠性。
\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
被 LaTeX 内核用来合并符号。 类似命令\textcircled
就是用它来定义的。