13

When I write $$\sum_{i=1}^{n} x_{i}$$ I obtain indices which are below and above the symbol. I want to write the existential quantifier with this same formatting, but when I try to do so, it appears as $$\exists_{i=1}^{n} x_{i}$$ with the indices written to the right of the symbol on the bottom and top, respectively. Is there any way to change this so that I have a big $\exists$ symbol where the $\Sigma$ is?

1

2 Answers 2

8

Here is a solution which is similar in spirit to Mico's earlier answer, condensed into a few lines of code. This requires amsmath.sty and scalefnt.sty. (Thanks to egreg for remarking on multiple improvements to the original answer; I've condensed it further based on his remarks.)

\newcommand\ScaleExists[1]{\vcenter{\hbox{\scalefont{#1}$\exists$}}}

\DeclareMathOperator*\bigexists{%
  \vphantom\sum
  \mathchoice{\ScaleExists{2}}{\ScaleExists{1.4}}{\ScaleExists{1}}{\ScaleExists{0.75}}}

The choices of font size were achieved by experimentation, and should be adequate for normalsized Computer Modern at 10pt to 12pt. Minor tweaking may be necessary for other typefaces. Because other font sizes (such as \Large and \footnotesize) are achieved by scaling up the size of normal characters, this should also work in other font sizes up to the limits of \scalefont to change the character size (up to about \LARGE at 11pt).

The parameters were chosen to achieve as similar an appearance as possible to the size and alignment of \sum in each context (displaystyle, textstyle, scriptstyle, and scriptscritstyle), with the same default behaviour of \limits and \nolimits in each context. In particular, the \vphantom\sum at the beginning of \bigexists is used to achieve precisely the same vertical spacing of the limits from the \exists symbol, as the limits would otherwise be closer to the symbol than they should be. Here is how it looks at 10pt:

Example presentation of <code>\bigexists</code> macro

This same code should be similarly generalized to any symbol of a similar height and depth (e.g. \forall).

It should be easy to tweak the results to obtain better tuning for other fonts or point sizes; additional refinements (or defining a custom character with \METAFONT) may be necessary to obtain a more robust solution.

3
  • Instead of computing the amount of vertical shift, you could use \vcenter{\hbox{\scalefont{x}$\exists$}}; also \mathop{\mathchoice{...}{...}{...}{...}} seems more economic. Finally, use just \newcommand instead of \DeclareMathOperator*: you're declaring a \mathop in the macro, aren't you?
    – egreg
    Feb 4, 2013 at 11:19
  • @egreg: I think I'm starting to get the idea of when I should expect \vcenter tobe the secret behind vertical spacing of pieces of (La)TeX -- absent actually looking at the definitions, of course. Good point about the redundancy of \mathop, I think it persisted due to two different approaches I was taking to prototyping the macro. Feb 4, 2013 at 11:56
  • 1
    If you also add \vphantom{\sum} just before \mathchoice you get similar placements of the limits as for \sum
    – egreg
    Feb 4, 2013 at 12:23
11

Whereas the symbols for \sum, \prod, and \int (and a few more select symbols) are designed to scale automatically depending on whether they're used in "textstyle" or "displaystyle" math mode, that's not the case for symbols such as \exists.

I can think of two workarounds. The first is to load the relsize package and use its \mathlarger command to enlarge the size of the \exists symbol. I don't know just how large you intend the \exists symbol to be; in the following example, I use a four-step enlargement of the symbol's size. Note also the use of the \lower directive (a TeX "primitive" command) to shift the position of the newly created symbol down by 0.75ex.

\documentclass{article}
\usepackage{relsize,amsfonts}
\newcommand\bigexists{%
  \mathop{\lower0.75ex\hbox{\ensuremath{%
    \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}%
  \limits}
\begin{document}
$\bigexists_{i\in\mathcal{I}} x_i$ 
\end{document}

enter image description here

A second workaround involves loading the graphicx package and using its \scalebox command. In the following MWE, a scaling factor of 1.7 is chosen to make the resulting large symbol roughly comparable to what's produced by the four-fold use of the \mathlarger command.

\documentclass{article}
\usepackage{amsfonts,graphicx}
\newcommand{\bigex}{%
\mathop{\lower0.75ex\hbox{%
   \scalebox{1.7}{\ensuremath{\exists}}}}\limits}
\begin{document}\pagestyle{empty}
$\bigex_{i\in\mathcal{I}} x_i$ 
\end{document}

Addendum - By default, the "limits" of the \bigexists and \bigex symbols will be set below and above the symbol. If you wanted to side-set the limits, you could type

\bigexists\nolimits
\bigex\nolimits

whenever necesssary. The \nolimits directive will override the \limits instruction contained in the definition of \bigexists and \bigex.


The result probably isn't entirely satisfactory from a typographic point of view, because the stroke widths of the newly created \bigexists and \bigex symbols appear to be quite thick and heavy (to me at least...). A full solution would entail creating a new symbol entirely from scratch.

0

You must log in to answer this question.

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