I found a solution here. You can use the following instructions, which must be included on the preamble.
\def\Xint#1{\mathchoice
{\XXint\displaystyle\textstyle{#1}}%
{\XXint\textstyle\scriptstyle{#1}}%
{\XXint\scriptstyle\scriptscriptstyle{#1}}%
{\XXint\scriptscriptstyle\scriptscriptstyle{#1}}%
\!\int}
\def\XXint#1#2#3{{\setbox0=\hbox{$#1{#2#3}{\int}$ }
\vcenter{\hbox{$#2#3$ }}\kern-.6\wd0}}
\def\ddashint{\Xint=}
\def\dashint{\Xint-}
The commands to execute those macros are \dashint
and \ddashint
for single dash and double dash, respectively.
EDIT: I tested the code given in the page, and the dash was a bit to the left of the integral, so I changed it slightly, substituting the .5 from the line \vcenter{\hbox{$#2#3$ }}\kern-.5\wd0}}
with a .6 . It worked for me, if it doesn't exactly do it for you, experiment with the .5 to find exactly where you want the dash to be, adding (subtracting) from the number to place it more to the right (left).
I'm aware of three packages that will let you create larger integral signs: bigints
, mtpro2
, and relsize
.
- The package
bigints
provides the following commands to scale up the symbol produced by \int
: \bigintssss
, \bigintsss
, \bigintss
, \bigints
, and \bigint
. Using the default math font family (Computer Modern) and the default text font size of 10pt, these commands (including the "ordinary" \int
) produce the following symbols, with a dummy integrand thrown in for scale:
- The
mtpro2
package, which uses Times New Roman-style fonts, provides the commands \xl
, \XL
, and \XXL
(as well as the gynormous, 10cm-tall \XXXL
, not shown below) as prefixes to \int
. This is how these integrals look like when typeset with the mtpro2
package:
By the way, the full mtpro2
package is not free. However, its "lite" subset (which is all that's needed to use the prefix commands \xl
, etc.) is free. The package may be downloaded from this site.
- The command
\mathlarger
of the relsize
package can also produce larger integral symbols. (For multi-step enlargements, the exscale
package must be loaded as well.) For a one-step increase in size, you'd type \mathop{\mathlarger{\int}}
; for a two-step increase, you'd type \mathop{\mathlarger{\mathlarger{\int}}}
, etc.
To my taste, all three sets of results look quite professional. :-)
Three further comments, and a caveat:
None of these packages seems to do a great job placing the lower and upper limits of integration. A reasonable positioning of the lower limit of integration, in particular, will require inserting either several "negative thinspace" (\!
) directives -- the larger the integral symbol, the more \!
instructions will likely be required -- or something like \mkern-18mu
. (Use \mkern
rather than \kern
when in math mode.)
The bigints
package can produce five large variants for \oint
as well, but (again AFAICT) not for double, triple, surface, slashed, etc. integrals. The mtpro2
package, while providing "only" three large variants of \int
(I'm disregarding the \XXXL
-prefix variant!), can produce large variants of \iint
, \iiint
, \oiint
, \oiiint
, \barint
, \slashint
, and clockwise- and counterclockwise-oriented line integrals. Similarly, the \mathlarger
command of the relsize
package can be applied to any operator symbol -- including \iint
, \iiint
, etc.
The mtpro2
package can be used in conjunction with both the bigints
and the relsize
packages. If the mtpro2
package is loaded, the instructions \bigintssss
, \bigintsss
, ... \mathop{\mathlarger{\int}}
, ... will produce integral symbols that are a bit "thicker", in keeping with the style of the \int
symbols produced directly by the mtpro2
package.
May 2014 update: I have recently discovered that the bigints
package doesn't seem to be compatible with the lmodern
package, in the sense that the macros of the bigints
pacakge do not generate "large" integral symbols if the lmodern
package is loaded as well. For a work-around, please see this answer by @egreg. The work-around consists of inserting the instructions
\DeclareFontFamily{OMX}{lmex}{}
\DeclareFontShape{OMX}{lmex}{m}{n}{<-> lmex10}{}
in the preamble, after loading the lmodern
package.
Finally, here's the code that produced the three screenshots shown above.
With the bigints
package:
\documentclass{article}
\usepackage{bigints}
\newcommand\dummy{\frac{a}{c}\,\mathrm{d}P}
\begin{document}
\[
\int\dummy\quad
\bigintssss\dummy\quad
\bigintsss\dummy\quad
\bigintss\dummy\quad
\bigints\dummy\quad
\bigint\dummy
\]
\end{document}
With the mtpro2
package:
\documentclass{article}
\usepackage[lite]{mtpro2}
\newcommand\dummy{\frac{a+b}{c+d}\,\mathrm{d}P\quad}
\begin{document}
\[
\int\dummy\quad
\xl\int\dummy\quad
\XL\int\dummy\quad
\XXL\int\dummy
\]
\end{document}
With the relsize
and exscale
packages:
\documentclass{article}
\usepackage{relsize,exscale}
\newcommand\dummy{\frac{a}{c}\,\mathrm{d}P\quad}
\begin{document}
\[
\int\dummy\quad
\mathop{\mathlarger{\int}}\dummy\quad
\mathop{\mathlarger{\mathlarger{\int}}}\dummy\quad
\mathop{\mathlarger{\mathlarger{\mathlarger{\int}}}}\dummy\quad
\mathop{\mathlarger{\mathlarger{\mathlarger{\mathlarger{\int}}}}}\dummy
\]
\end{document}
Best Answer
If you redefine the
largesymbols
font, all large operators will be taken from the Euler font. Moreover, the call is wrong:Here is the picture (on the right the usual symbol)
How does one discover what should be done? Well, it depends on the font one has to use. Let's make an example: we want some large symbols from the font used by
mathpazo
.We find in
mathpazo.sty
what font is used:Thus we just change the symbolic name to something like
pazolargesymbols
and do as the previous case; since the encoding isOMX
, which is the same normally used for math extension fonts, we know that the integral will be in the same slot as in the usual setting:One can find the standard definition in
fontmath.ltx
.If the encoding is non standard, as in the case of
eulervm
, we need to check for the slot. However,eulervm.sty
doesn't redefine\intop
, so we can be confident that the usual slot is good. It could be different for other symbols.Note that we have to define
\intop
rather than\int
, because the latter is defined by LaTeX asThe
amsmath
package does a different definition of\int
, but it uses\intop
for the symbol as well.