![叠加两个符号。如何使其作为下标?](https://linux22.com/image/304234/%E5%8F%A0%E5%8A%A0%E4%B8%A4%E4%B8%AA%E7%AC%A6%E5%8F%B7%E3%80%82%E5%A6%82%E4%BD%95%E4%BD%BF%E5%85%B6%E4%BD%9C%E4%B8%BA%E4%B8%8B%E6%A0%87%EF%BC%9F.png)
我正在尝试构造一个新符号:一个带有垂直线的圆圈。以下 MWE 有点用,但看起来不太正确。
\documentclass[12pt]{amsart}
\newcommand{\bcirc}{\mathrel{\ooalign{$\circ$\cr\hidewidth\hbox{$|\mkern 1.9mu$}\cr}}}
\begin{document}
New symbol $x \bcirc_3 y$ works.
Also huge version {\huge$x \bcirc_2 y$} works fine.
In displaymath, compare:
\begin{align*}
x \bcirc_1 y &= \pi_{w \bcirc_2 z} , \\
x \circ_1 y &= \pi_{w \circ_2 z} .
\end{align*}
\end{document}
- 我认为新符号右侧的间距似乎稍微太大了?
- 更重要的是,当用作下标时,此符号不会调整大小。我需要对定义做出任何提示/修改吗?
这是基于以下问题的答案这个其他 tex.SE 问题。
答案1
你必须使用\mathpalette
:
\documentclass[12pt]{amsart}
\makeatletter
\newcommand{\bcirc}{\mathrel{\vphantom{|}\mathpalette\do@bcirc\relax}}
\newcommand{\do@bcirc}[2]{%
\ooalign{%
$#1\m@th\circ$\cr
\hidewidth$#1\m@th|$\hidewidth\cr
}%
}
\makeatother
\begin{document}
New symbol $x \bcirc_3 y$ works.
Also huge version {\huge$x \bcirc_2 y$} works fine.
In displaymath, compare:
\begin{align*}
x \bcirc_1 y &= \pi_{w \bcirc_2 z} , \\
x \circ_1 y &= \pi_{w \circ_2 z} .
\end{align*}
\end{document}
我用它\hidewidth
来代替手动字距调整。居中效果似乎不错。