在 Mathmode 中合并符号

在 Mathmode 中合并符号

我想创建方框 ( \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就是用它来定义的。

相关内容