将两个符号组合成一个完全可扩展的符号

将两个符号组合成一个完全可扩展的符号

我必须在bigcup符号里面放一个冒号,这样结果才能与后者完全一样。

我按照这里和其他地方的各种帖子尝试了不同的方法。到目前为止,最好的结果是利用该包stackengine

如果我使用它cup正确工作,它确实看起来一样。

bigcup另一方面,如果我使用,结果将无法正确缩放,如下面的代码和附图所示。

\documentclass[a4paper,10pt]{article}
\usepackage{stackengine}

\newcommand{\bigcupcolon}{\mathop{\ensurestackMath{\stackinset{l}{}{c}{+.25ex}{:}{\bigcup}}}}
\newcommand{\cupcolon}{\mathop{\ensurestackMath{\stackinset{l}{-.18ex}{c}{+0.1ex}{:}{\cup}}}}

\begin{document}
    $\displaystyle\bigcup_{i\in I}S_i$\hspace{40pt}    $S_1\cup S_2$
    \vspace{20pt}

    $\displaystyle\bigcupcolon_{i\in I}S_i$\hspace{40pt}    $S_1\cupcolon S_2$

\end{document}

错误缩放的图像

那么问题是,你将如何写这样的符号?

答案1

问题是stackengine不明确保留数学样式(即\textstyle\displaystyle)。因此,虽然可以将其硬连线或执行\mathchoice,但在这里,我使用scalerel\ThisStyle{...\SavedStyle...}功能保存数学样式并将其导入\stackinset

在 MWE 中,我展示\bigcupcolon了两种数学风格。

编辑以在普通杯子中制作更小的点,并扩展以处理所有数学样式,包括\scriptstyle\scriptscriptstyle。(但请注意,这\bigcup似乎没有\scriptscriptstyle版本。)

\documentclass[a4paper,10pt]{article}
\usepackage{stackengine,scalerel}
\newcommand{\bigcupcolon}{\mathop{\ThisStyle{%
  \ensurestackMath{\stackinset{c}{-1.4pt}{c}{+.25\LMex}{:}{\SavedStyle\bigcup}}}}}
\newcommand{\cupcolon}{\mathop{\ThisStyle{%
  \ensurestackMath{\stackinset{c}{.3\LMpt}{c}{-1\LMpt}{\SavedStyle^:}{\SavedStyle\cup}}}}}
\begin{document}
$\displaystyle\bigcup_{i\in I}S_i$\hspace{40pt}    
$\bigcup_{i\in I}S_i$\hspace{40pt}
$S_1\cup S_2$
    \vspace{20pt}

$\displaystyle\bigcupcolon_{i\in I}S_i$\hspace{40pt}
$\bigcupcolon_{i\in I}S_i$\hspace{40pt}
$S_1\cupcolon S_2$
    \vspace{20pt}

$\scriptstyle\bigcupcolon_{i\in I}S_i$\hspace{40pt}
$\scriptscriptstyle\bigcupcolon_{i\in I}S_i$
    \vspace{20pt}

$\scriptstyle S_1\cupcolon S_2$\hspace{40pt}
$\scriptscriptstyle S_1\cupcolon S_2$
\end{document}

在此处输入图片描述

答案2

基于的解决方案https://tex.stackexchange.com/a/52673/4427

在“二进制”版本中,冒号是手工用小句点构建的,因为普通冒号与杯子符号相比太大了。

\documentclass{article}

\makeatletter
\def\moverlay{\mathpalette\mov@rlay}
\def\mov@rlay#1#2{\leavevmode\vtop{%
   \baselineskip\z@skip \lineskiplimit-\maxdimen
   \ialign{\hfil$\m@th#1##$\hfil\cr#2\crcr}}}
\newcommand{\charfusion}[3][\mathord]{%
    #1{\ifx#1\mathop\vphantom{#2}\fi
        \mathpalette\mov@rlay{#2\cr#3}%
      }%
    \ifx#1\mathop\expandafter\displaylimits\fi}
\makeatother

\newcommand{\ccolon}{\mathpalette\doccolon\relax}
\newcommand{\doccolon}[2]{%
  \vcenter{%
    \sbox8{$#1\mkern3.5mu$}%
    \smash{$\scriptscriptstyle.$}%
    \vskip\wd8
    \smash{$\scriptscriptstyle.$}%
    \vskip\ifdim\wd8<.15\normalbaselineskip.5\else.2\fi\wd8
  }%
}

\newcommand{\cupcolon}{\charfusion[\mathbin]{\cup}{\ccolon}}
\newcommand{\bigcupcolon}{\charfusion[\mathop]{\bigcup}{:}}

\begin{document}

\[
\mbox{inline: }{\textstyle A_{X\cupcolon Y} \cupcolon B_{\bigcupcolon B_{j}}}
\qquad
\mbox{display: }
\bigcupcolon_{i\in I} A_{i}
\]

\end{document}

在此处输入图片描述

相关内容