How to typeset "\utimes" (akin to \uplus)
\uplus
appears to have status mathbin
, whereas \biguplus
appears to have status mathop
. The following definitions of \utimes
and \bigutimes
preserve these settings.
\documentclass{article}
\usepackage{amsmath} %for "\boldsymbol" macro
\newcommand\utimes{\mathbin{\ooalign{$\cup$\cr%
\hfil\raise0.42ex\hbox{$\scriptscriptstyle\times$}\hfil\cr}}}
\newcommand\bigutimes{\mathop{\ooalign{$\bigcup$\cr%
\hfil\raise0.36ex\hbox{$\scriptscriptstyle\boldsymbol{\times}$}\hfil\cr}}}
\begin{document}
$a\uplus a$ $a\biguplus a$
$a\utimes a$ $a\bigutimes a$
$\uplus\utimes$
${\biguplus}{\bigutimes}$
\end{document}
The arguments of \raise
-- 0.42ex and 0.36ex, resp. -- were chosen to make \uplus
and \utimes
as similar in layout as possible, for the Computer Modern math font family -- which is the default font family in most TeX distributions (including the screenshot shown above). For other math font families, other arguments of \raise
will probably have to be considered.
Fitting \times
into \cup
is a pain; here I use picture
mode for adding the symbol.
\documentclass{article}
\usepackage{amsmath,pict2e}
\makeatletter
\DeclareRobustCommand{\utimes}{\mathbin{\mathpalette\u@times\relax}}
\newcommand\u@times[2]{%
\begingroup
\ifx#1\displaystyle\@tempswatrue\else
\ifx#1\textstyle\@tempswatrue\else
\@tempswafalse
\fi\fi
\sbox\z@{$\m@th#1{\cup}$}%
\setlength{\unitlength}{\wd\z@}%
\begin{picture}(0,0)
\roundcap
\linethickness{\variable@rule{#1}}
\put(0,0){\box\z@}
\if@tempswa
\Line(0.3,0.25)(0.7,0.65)
\Line(0.7,0.25)(0.3,0.65)
\else
\Line(0.3,0.2)(0.7,0.6)
\Line(0.3,0.6)(0.7,0.2)
\fi
\end{picture}%
\phantom{\cup}%
\endgroup
}
\DeclareRobustCommand{\bigutimes}{\DOTSB\mathop{\mathpalette\bigu@times\relax}\slimits@}
\newcommand{\bigu@times}[2]{%
\begingroup
\sbox\z@{$\m@th#1{\bigcup}$}%
\setlength{\unitlength}{\wd\z@}%
\begin{picture}(0,0)
\roundcap
\ifx#1\displaystyle
\linethickness{2\variable@rule{#1}}
\else
\linethickness{1.5\variable@rule{#1}}
\fi
\put(0,0){\box\z@}
\ifx#1\displaystyle
\Line(0.25,0.0)(0.75,0.5)
\Line(0.25,0.5)(0.75,0.0)
\else
\Line(0.3,0.1)(0.7,0.5)
\Line(0.3,0.5)(0.7,0.1)
\fi
\end{picture}%
\phantom{\bigcup}%
\endgroup
}
\newcommand{\variable@rule}[1]{%
\fontdimen8
\ifx#1\displaystyle\textfont3\else
\ifx#1\textstyle\textfont3\else
\ifx#1\scriptstyle\scriptfont3\else
\scriptscriptfont3\relax
\fi\fi\fi
}
\makeatother
\begin{document}
$a\uplus b\utimes c_{\uplus\utimes}$
$\displaystyle\biguplus\bigutimes
\textstyle\biguplus\bigutimes
\scriptstyle\biguplus\bigutimes$
$\displaystyle\biguplus_{i=1}^n\bigutimes_{i=1}^n$
\end{document}
The regular \cup
is too narrow in order to allow the \times
character inside it, so I chose \bigcup
as an alternative. With the correct kerning, the symbol allows for usage in \scriptstyle
etc. as well.
Since it is supposed to be an operator, \DeclareMathOperator
seems to be a correct choice.
\documentclass{article}
\usepackage{amsmath}
\DeclareMathOperator{\utimes}{\bigcup\utimeskern\times}
\newcommand{\utimeskern}{%
\mkern-17.5mu
\mathchoice{}{}{\mkern0.2mu}{\mkern0.5mu}%
}
\begin{document}
See $\utimes A$
\end{document}