答案1
这是使用\framebox
固定大小的解决方案。我认为如果方块中的符号较小,看起来会更好\scriptstyle
。我认为使用任何小写拉丁字母或希腊字母看起来都相当不错。
\documentclass{article}
\usepackage{amsmath}
\newcommand{\squareop}[1]{%
\setlength{\fboxsep}{0pt}%
\setlength{\unitlength}{.7em}%
\mathrel{%
\raisebox{-1pt}{\framebox(1,1){\(\scriptstyle #1\)}}%
}%
}
\begin{document}
\begin{tabular}{lll}
\( x \squareop{a} y \) & \( x \squareop{b} y \) & \( x \squareop{c} y \) \\
\( x \squareop{d} y \) & \( x \squareop{e} y \) & \( x \squareop{f} y \) \\
\( x \squareop{g} y \) & \( x \squareop{h} y \) & \( x \squareop{i} y \) \\
\( x \squareop{j} y \) & \( x \squareop{k} y \) & \( x \squareop{l} y \) \\
\( x \squareop{m} y \) & \( x \squareop{n} y \) & \( x \squareop{o} y \) \\
\( x \squareop{p} y \) & \( x \squareop{q} y \) & \( x \squareop{r} y \) \\
\( x \squareop{s} y \) & \( x \squareop{t} y \) & \( x \squareop{u} y \) \\
\( x \squareop{v} y \) & \( x \squareop{w} y \) & \( x \squareop{z} y \) \\
\end{tabular}
\qquad
\begin{tabular}{lll}
\( x \squareop{\alpha} y \) & \( x \squareop{\beta} y \) & \( x \squareop{\gamma} y \) \\
\( x \squareop{\delta} y \) & \( x \squareop{\epsilon} y \) & \( x \squareop{\zeta} y \) \\
\( x \squareop{\eta} y \) & \( x \squareop{\theta} y \) & \( x \squareop{\iota} y \) \\
\( x \squareop{\kappa} y \) & \( x \squareop{\lambda} y \) & \( x \squareop{\mu} y \) \\
\( x \squareop{\nu} y \) & \( x \squareop{\xi} y \) & \( x \squareop{\pi} y \) \\
\( x \squareop{\rho} y \) & \( x \squareop{\sigma} y \) & \( x \squareop{\tau} y \) \\
\( x \squareop{\upsilon} y \) & \( x \squareop{\phi} y \) & \( x \squareop{\varphi} y \) \\
\( x \squareop{\chi} y \) & \( x \squareop{\psi} y \) & \( x \squareop{\omega} y \) \\
\end{tabular}
\end{document}
答案2
您可能还想要大版本。
\documentclass{article}
\usepackage{amsmath,array,relsize}
\makeatletter
\DeclareRobustCommand{\boxop}[1]{\mathbin{\mathpalette\box@op{#1}}}
\DeclareRobustCommand{\bigboxop}[1]{\mathop{\mathpalette\bigbox@op{#1}}\slimits@}
\newcommand{\box@op}[2]{%
\begingroup
\sbox\z@{$\m@th#1\mkern15mu$}%
\dimen@=\wd\z@
\setlength{\fboxsep}{0pt}%
\makebox[\dimen@]{%
\framebox[0.9\dimen@]{%
\vbox to 0.9\dimen@{%
\vss
\hbox{\raisebox{\depth}{$\box@op@style{#1}#2$}}%
\vss
}%
}%
}%
\endgroup
}
\newcommand{\box@op@style}[1]{%
\ifx#1\displaystyle\scriptstyle\else
\ifx#1\textstyle\scriptstyle\else
\scriptscriptstyle\fi\fi\m@th
}
\newcommand{\bigbox@op}[2]{%
\begingroup
\sbox\z@{$\m@th#1\sum$}%
\dimen@=\wd\z@
\vphantom{\sum}%
\vcenter{%
\setlength{\fboxsep}{0pt}%
\hbox to \dimen@{%
\hss
\framebox[0.9\dimen@]{%
\vbox to 0.9\dimen@{%
\vss
\hbox{\raisebox{\depth}{$\m@th#1\box@op@larger{#1}{#2}$}}%
\vss
}%
}%
\hss
}%
}%
\endgroup
}
\newcommand{\box@op@larger}[2]{%
\ifx#1\displaystyle
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
{\mathlarger{#2}}{#2}%
}
\makeatother
\begin{document}
$x\boxop{\lambda}y\boxop{\lambda\!'}z\boxop{\varphi}w\boxop{\beta}u$
$\scriptstyle x\boxop{\lambda}y\boxop{\lambda\!'}z$
$\displaystyle\sum_{k=1}^n\bigboxop{\lambda}_{k=1}^n x_k$
$\bigboxop{\lambda}_{k=1}^n x_k$
$\scriptstyle\bigboxop{\lambda}_{k=1}^n x_k$
$\displaystyle\sum_{k=1}^n\sum_{k=1}^n x_k$
\end{document}