[Tex/LaTex] Big cartesian product & cartesian sum symbols with Lucida Math fonts

fontsmath-modesymbols

How can I get large cartesian product and cartesian sum symbols that will look compatible with the Lucida Bright and Lucida Math fonts of my document?

I am aware of the post How can I get a big cross to denote a generalized cartesian product?. However, the solution there of using the symbols from mathabx creates symbols that seem too light in weight as compared with the Lucida fonts — especially as compared with the Lucida Math big product and sum symbols. See this:

\documentclass[12pt]{article}
\usepackage{lucidabr}
\usepackage[fleqn]{amsmath}

% extracted from mathabx package:
\DeclareFontFamily{U}{mathx}{\hyphenchar\font45}
\DeclareFontShape{U}{mathx}{m}{n}{
      <5> <6> <7> <8> <9> <10>
      <10.95> <12> <14.4> <17.28> <20.74> <24.88>
      mathx10
      }{}
\DeclareSymbolFont{mathx}{U}{mathx}{m}{n}
\DeclareFontSubstitution{U}{mathx}{m}{n}
\DeclareMathSymbol{\bigplus}        {1}{mathx}{"90}
\DeclareMathSymbol{\bigtimes}       {1}{mathx}{"91}

\begin{document}
\Large

Using \verb!\bigtimes! and \verb!\bigplus!, respectively, \dots

Given a family $(X_{i})_{i \in I}$ of sets, its cartesian product is $\bigtimes_{i \in I} X_{i}$,
and its cartesian sum $\bigplus_{i \in I} X_{i}$.

The same, in display math:
%
\begin{equation*}
\bigtimes_{i \in I} X_{i} \quad\text{and}\quad \bigplus_{i \in I} X_{i}
\end{equation*}

Compare product $\prod_{i \in I} a_{i}$ and sum $\sum_{i \in I} a_{i}$.
\begin{equation*}
\prod_{i \in I} a_{i} \quad\text{and}\quad \sum_{i \in I} a_{i}
\end{equation*}

\end{document}

Output:

Cartesian product and sum

I am aware of the various methods for making larger math symbols described in answers at How to control the size of math symbols in an equation?. However, making larger plus and times symbols those ways still keeps the symbols too light, it seems to me, to harmonize with the Lucida and Lucida math fonts, or for that matter, to match large summation and product symbols.

Solution – following egreg

What worked best for me was to use egreg's definiton for \bigplus but modify the parameters in his \bigtimes as follows:

\makeatletter
\DeclareRobustCommand{\bigtimes}{%
  \mathop{\vphantom{\sum}\mathpalette\@bigtimes\relax}\slimits@
}
\newcommand{\@bigtimes}[2]{\vcenter{\hbox{\make@bigtimes{#1}}}}
\newcommand{\make@bigtimes}[1]{%
  \sbox\z@{$\m@th#1\sum$}%
  \setlength{\unitlength}{\wd\z@}%
  \begin{picture}(1,1)
    \roundcap
    \linethickness{.17ex}
    \Line(0.01,0)(.85,.99)
    \Line(0.01,.99)(.85,0.0)
  \end{picture}%
}
\makeatother

Best Answer

You can define the symbols yourself:

\documentclass{article}
\usepackage{lucimatx}
\usepackage[fleqn]{amsmath}
\usepackage{pict2e}

\makeatletter
\DeclareRobustCommand{\bigplus}{%
  \mathop{\vphantom{\sum}\mathpalette\@bigplus\relax}\slimits@
}
\newcommand{\@bigplus}[2]{\vcenter{\hbox{\make@bigplus{#1}}}}
\newcommand{\make@bigplus}[1]{%
  \sbox\z@{$\m@th#1\sum$}%
  \setlength{\unitlength}{\wd\z@}%
  \begin{picture}(1.4,1.4)
  %\roundcap
  \linethickness{.17ex}
  \Line(.7,.14)(.7,1.26)
  \Line(.14,.7)(1.26,.7)
  \end{picture}%
}
\DeclareRobustCommand{\bigtimes}{%
  \mathop{\vphantom{\sum}\mathpalette\@bigtimes\relax}\slimits@
}
\newcommand{\@bigtimes}[2]{\vcenter{\hbox{\make@bigtimes{#1}}}}
\newcommand{\make@bigtimes}[1]{%
  \sbox\z@{$\m@th#1\sum$}%
  \setlength{\unitlength}{\wd\z@}%
  \begin{picture}(1,1)
  %\roundcap
  \linethickness{.17ex}
  \Line(.1,.1)(.9,.9)
  \Line(.1,.9)(.9,.1)
  \end{picture}%
}
\makeatother

\begin{document}

$\bigplus_{i\in I} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i$

\bigskip

$\displaystyle
\bigplus_{i\in I} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i$

\end{document}

I left \roundcap (but commented), because it would be useful when Computer Modern is used instead of Lucida.

As you see, the width of \bigtimes is the same as \sum, whereas \bigplus is 40% wider (so the two symbols are essentially a rotation of each other).

Experiment with \linethickness until you're satisfied.

enter image description here

Edit September 2019

This should fix the slight misalignment of the subscript, as witnessed in the last two lines, with the guide rule.

\documentclass{article}
\usepackage{lucimatx}
\usepackage[fleqn]{amsmath}
\usepackage{pict2e}

\makeatletter
\DeclareRobustCommand{\bigplus}{%
  \mathop{\vphantom{\sum}\mathpalette\@bigplus\relax}\slimits@
}
\newcommand{\@bigplus}[2]{\smash{\vcenter{\hbox{\make@bigplus{#1}}}}}
\newcommand{\make@bigplus}[1]{%
  \sbox\z@{$\m@th#1\sum$}%
  \setlength{\unitlength}{\wd\z@}%
  \begin{picture}(1.4,1.4)
  %\roundcap
  \linethickness{.17ex}
  \Line(.7,.14)(.7,1.26)
  \Line(.14,.7)(1.26,.7)
  \end{picture}%
}
\DeclareRobustCommand{\bigtimes}{%
  \mathop{\vphantom{\sum}\mathpalette\@bigtimes\relax}\slimits@
}
\newcommand{\@bigtimes}[2]{\vcenter{\hbox{\make@bigtimes{#1}}}}
\newcommand{\make@bigtimes}[1]{%
  \sbox\z@{$\m@th#1\sum$}%
  \setlength{\unitlength}{\wd\z@}%
  \begin{picture}(1,1)
  %\roundcap
  \linethickness{.17ex}
  \Line(.1,.1)(.9,.9)
  \Line(.1,.9)(.9,.1)
  \end{picture}%
}
\makeatother

\begin{document}

$
\bigplus_{i\in I} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i
\bigcup_{i\in I} X_i
$

\bigskip

$\displaystyle
\bigplus_{i\in I} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i
\bigcup_{i\in I} X_i
$

\bigskip

\def\test{\makebox[0pt][l]{\kern-2cm\vrule height 0pt depth 0.1pt width \textwidth}}
$
\bigplus_{i\in I\test} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i
\bigcup_{i\in I} X_i
$

\bigskip

$\displaystyle
\bigplus_{i\in I\test} X_i \bigtimes_{i\in I} X_i \sum_{i\in I} X_i \prod_{i\in I} X_i
\bigcup_{i\in I} X_i
$

\end{document}

enter image description here

Related Question