我想使用上下颠倒的 来\bigsqcup
表示其对偶运算。该stmaryrd
包提供了该符号 ,\bigsqcap
但我发现这两个符号的渲染大小不同。
以下是示例代码及其输出。
\documentclass[12pt]{article}
\usepackage{mathptmx}
\usepackage{stmaryrd}
\begin{document}
$\bigsqcup \bigsqcap \bigcup \bigcap$
\end{document}
正如你所见,\bigsqcap
它显然是个异类,比其他的都要大一些。
有人知道如何获得\bigsqcap
与 相同的尺寸吗\bigsqcup
?我需要使用mathptmx
字体,因此我希望有一个可以保留它的解决方案。
答案1
一个简单的解决方案是旋转\bigsqcup
以获取缺失的\bigsqcap
:
\documentclass[12pt]{article}
\usepackage{mathptmx}
\usepackage{graphicx}
\makeatletter
\providecommand{\bigsqcap}{%
\mathop{%
\mathpalette\@updown\bigsqcup
}%
}
\newcommand*{\@updown}[2]{%
\rotatebox[origin=c]{180}{$\m@th#1#2$}%
}
\makeatother
\begin{document}
\[\bigsqcup \bigsqcap \bigcup \bigcap\]
\[X\bigsqcup_0^\infty Y \bigsqcap_0^\infty Z\]
\[\bigsqcup\textstyle\bigsqcup
\scriptstyle\bigsqcup\scriptscriptstyle\bigsqcup\]
\[\bigsqcup\textstyle\bigsqcap
\scriptstyle\bigsqcap\scriptscriptstyle\bigsqcap\]
\end{document}
评论:
旋转切换到文本模式(
\hbox
)。\mathpalette
是获取当前所需数学样式的方法,当我们在 的旋转框中重新输入数学时\bigsqcup
。 的第一个参数\@updown
是数学样式(\displaystyle
,\textstyle
,...),第二个参数是未旋转的符号。 因此\@updown
也可以用于其他符号的旋转。\m@th
抑制\mathsurround
此值被设置的情况,以避免应该围绕数学公式的空间出现在公式内部。
答案2
使用包MnSymbol
代替stmaryrd
:
\documentclass[12pt]{article}
\usepackage{mathptmx}
\usepackage{MnSymbol}
\begin{document}
$\bigsqcup \bigsqcap \bigcup \bigcap$
\end{document}
生产