我必须在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}