6

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

1 Answer 1

4

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

5
  • I'm going to have to play around with your approach, so that the \bigplus and \bigtimes characters are larger -- so that they match in height the usual \sum and \prod -- and perhaps slightly thicker. I wonder what penalty there will be in processing time (in a 400-page document where at least \bigplus is used dozens and dozens of times (I do know it's possible to save picture files for re-use, but I'll have to compare the efficiency of doing that, which involves looking repeatedly at several files, vs. redrawing the symbols each time their macros are invoked.
    – murray
    Dec 14, 2016 at 2:05
  • Subscripts on the \bigplus are too low compared with those on the other big operators (compare, too, \bigcup); this is especially noticeable In the in-line style. How can this be adjusted?
    – murray
    Sep 4, 2019 at 20:54
  • Removing \vphantom{\sum} does not fix the misalignment of subscripts compared to other large op symbols.
    – murray
    Sep 4, 2019 at 22:30
  • @murray Now it should be OK
    – egreg
    Sep 4, 2019 at 23:13
  • @greg: Ah: \smash. Perfect now (except I prefer my \bigtimes corner coordinates that make the symbol narrower than it is wide.
    – murray
    Sep 5, 2019 at 0:50

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .