叠加两个符号。如何使其作为下标?

叠加两个符号。如何使其作为下标?

我正在尝试构造一个新符号:一个带有垂直线的圆圈。以下 MWE 有点用,但看起来不太正确。

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}
  1. 我认为新符号右侧的间距似乎稍微太大了?
  2. 更重要的是,当用作下标时,此符号不会调整大小。我需要对定义做出任何提示/修改吗?

这是基于以下问题的答案这个其他 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来代替手动字距调整。居中效果似乎不错。

相关内容