我想通过对符号求平方来创建新的二进制运算。在此示例中,我尝试使用 来执行此操作\wr
。
我用
\usepackage{graphics}
\usepackage{stackengine}
\newcommand{\SmallWr}{\scalebox{0.6}{\( \boldsymbol\wr \)}}
\newcommand{\WrSymbol}{
\stackMath\stackinset{c}{0ex}{c}{0.05pt}{\SmallWr}{\square}
}
\newcommand{\SquaredWr}{
\mathbin{\WrSymbol}
}
它能正常工作,但并不完美。我遇到了一些 pdf 畸变,有时\wr
在正方形中放置得太高,有时放置得太低。这也取决于我用来查看 pdf 的缩放。
我怎样才能使这个符号更加健壮?
编辑:感谢您的建议。当 PDF 缩小时,我仍然会遇到相同的畸变。正如 schtandard 在他们的评论中指出的那样,这可能不是由于 LaTeX 造成的,除了增加屏幕像素数之外没有其他解决方案。
答案1
这是我的建议\framebox
:
\documentclass{article}
\usepackage{amsmath,amssymb,bm}
\makeatletter
\newcommand{\sqwr}{}% just to check it's undefined
\DeclareRobustCommand{\sqwr}{\mathbin{\mathpalette\sqwr@\relax}}
\newcommand{\sqwr@}[2]{%
\begingroup
\sbox\z@{$\m@th#1\mkern1mu$}%
\sbox\tw@{$\m@th#1\bm{\wr}$}%
\setlength{\fboxsep}{-\wd\z@}%
\setlength{\fboxrule}{\wd\z@}%
\framebox[\dimexpr\ht\tw@+\dp\tw@]{$\m@th#1\bm{\wr}$}%
\endgroup
}
\makeatother
\begin{document}
$F\sqwr G+X_{F\sqwr G}$
\end{document}
答案2
Unicode 有一个封闭的正方形组合符号,但结果并不那么美观。LaTeX 无法正确测量封闭符号的宽度,但您可以通过将其放在设置宽度的框中来解决这个问题。然后,框内的渲染取决于当前样式,所以我最终使用\mathchoice
并添加了一些负空间。
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{STIX Two Math}[Scale=MatchLowercase]
\pagestyle{empty} % To suppress page numbers in this MWE.
\newcommand\squarewr%
{\mathrel{\mathchoice%
{\makebox[1em]{\(\displaystyle\wr^^^^20de\)}}%
{\makebox[1em]{\(\textstyle\wr^^^^20de\)}}%
{\makebox[1em]{\(\scriptstyle\wr^^^^20de\)}}%
{\makebox[1em]{\(\scriptscriptstyle\wr^^^^20de\)}}%
}\!}
\begin{document}
\[ F \squarewr G_{F \squarewr G} \]
\end{document}
您需要调整宽度、水平居中、\kern
值等。这绝对不是最简单的方法。