如何修复 rotatebox 和 scalebox 之后 $\complement$ 的厚度变化

如何修复 rotatebox 和 scalebox 之后 $\complement$ 的厚度变化

我使用\mathcal S^\complement作为补码的符号。但是,我需要翻转符号\complement来制作反补码符号。如果我只使用\rotatebox,反补码的大小将大于补码符号,但如果我添加\scalebox{0.75}{...},反补码符号的粗细将发生变化。有什么方法可以解决这个问题吗?

\newcommand{\anticomplement}{\scalebox{0.75}{\rotatebox[origin=c]{180}{$\complement$}}}

...

$\mathcal S^\complement$, $\mathcal S^{\anticomplement}$

在此处输入图片描述

答案1

问题是 的内容\rotatebox没有意识到它应该在 中\scriptstyle。因此,您的未缩放版本正在制作一个\textstyle符号。解决方案是将$\scriptstyle\complement$其放在 内\rotatebox

在此处输入图片描述

\documentclass{article}
\usepackage{amssymb, graphicx}

\newcommand{\anticomplement}{\rotatebox[origin=c]{180}{$\scriptstyle\complement$}}

\begin{document}
$\mathcal S^\complement$, $\mathcal S^{\anticomplement}$
\end{document}

请注意,您还可以使用

\newcommand{\anticomplement}{\reflectbox{$\scriptstyle\complement$}}

答案2

一个简单的应用\mathpalette

\documentclass{article}
\usepackage{amsmath,amssymb,graphicx}

\makeatletter
\newcommand{\anticomplement}{{\mathpalette\anticomplement@\relax}}
\newcommand{\anticomplement@}[2]{%
  \reflectbox{$\m@th#1\complement$}%
}
\makeatother

\begin{document}

\[
\mathcal{S}^{\complement}\mathcal{S}^{\anticomplement}
x^{y^{\anticomplement}}\anticomplement
\]

\end{document}

我加了一副支架以防^\anticomplement滑落。

请注意\mathcal{S}是正确的语法。对于特定情况\reflectbox比 简单得多\rotatebox

在此处输入图片描述

相关内容