summaryrefslogtreecommitdiff
path: root/fonts/cmupint
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-04-14 03:02:32 +0000
committerNorbert Preining <norbert@preining.info>2020-04-14 03:02:32 +0000
commitc7235aafe4ddb8f9800cdf784212d4c53bb53e32 (patch)
tree3485e2d65f65d8128206c5a1c45c842b26e84705 /fonts/cmupint
parentc98e9ebef816f09dc54c52a01df4f978e1b210fc (diff)
CTAN sync 202004140302
Diffstat (limited to 'fonts/cmupint')
-rw-r--r--fonts/cmupint/README.md4
-rw-r--r--fonts/cmupint/afm/cmupint.afm146
-rw-r--r--fonts/cmupint/doc/cmupint.pdfbin294992 -> 332868 bytes
-rw-r--r--fonts/cmupint/doc/cmupint.tex83
-rw-r--r--fonts/cmupint/source/upintsym.mf94
-rw-r--r--fonts/cmupint/source/upintsymd.mf305
-rw-r--r--fonts/cmupint/tex/cmupint.sty31
-rw-r--r--fonts/cmupint/tfm/cmupint.tfmbin404 -> 504 bytes
-rw-r--r--fonts/cmupint/type1/cmupint.pfbbin29243 -> 37753 bytes
9 files changed, 565 insertions, 98 deletions
diff --git a/fonts/cmupint/README.md b/fonts/cmupint/README.md
index 7ad2b496dd..fdd1bfa323 100644
--- a/fonts/cmupint/README.md
+++ b/fonts/cmupint/README.md
@@ -1,5 +1,5 @@
-The cmupint package
-version 1.0 (January 21, 2020)
+The cmupint package
+version 1.1 (April 13, 2020)
Uroš Stefanović
This material is subject to The LaTeX Project Public License.
diff --git a/fonts/cmupint/afm/cmupint.afm b/fonts/cmupint/afm/cmupint.afm
index 4b23ff0e0a..875a6ea026 100644
--- a/fonts/cmupint/afm/cmupint.afm
+++ b/fonts/cmupint/afm/cmupint.afm
@@ -1,78 +1,94 @@
StartFontMetrics 2.0
Comment Generated by FontForge 20190801
-Comment Creation Date: Sun Jan 19 14:14:18 2020
+Comment Creation Date: Sun Apr 12 20:48:37 2020
FontName cmupint
FullName cmupint
FamilyName cmupint
Weight Medium
-Notice (Copyright (c) 2020, Uros)
+Notice (Copyright (c) 2020, Uros Stefanovic)
ItalicAngle 0
IsFixedPitch false
UnderlinePosition -100
UnderlineThickness 50
-Version 001.000
+Version 1.1
EncodingScheme FontSpecific
-FontBBox -28 -2286 1639 64
-StartCharMetrics 60
-C 0 ; WX 444 ; N integral ; B 56 -1112 501 1 ;
-C 1 ; WX 500 ; N integral.d ; B 55 -2222 556 1 ;
-C 2 ; WX 777 ; N uni222C ; B 56 -1112 834 1 ;
-C 3 ; WX 861 ; N uni222C.d ; B 55 -2222 917 1 ;
-C 4 ; WX 1111 ; N uni222D ; B 56 -1112 1167 1 ;
-C 5 ; WX 1222 ; N uni222D.d ; B 55 -2222 1278 1 ;
-C 6 ; WX 1444 ; N uni2A0C ; B 56 -1112 1501 1 ;
-C 7 ; WX 1583 ; N uni2A0C.d ; B 55 -2222 1639 1 ;
-C 8 ; WX 444 ; N uni222E ; B 56 -1112 501 1 ;
-C 9 ; WX 500 ; N uni222E.d ; B 55 -2222 556 1 ;
-C 10 ; WX 777 ; N uni222F ; B 56 -1112 833 1 ;
-C 11 ; WX 861 ; N uni222F.d ; B 55 -2222 917 1 ;
-C 12 ; WX 1111 ; N uni2230 ; B 56 -1112 1167 1 ;
-C 13 ; WX 1222 ; N uni2230.d ; B 55 -2222 1278 1 ;
-C 14 ; WX 444 ; N uni2233 ; B 56 -1112 569 1 ;
-C 15 ; WX 500 ; N uni2233.d ; B 55 -2222 633 1 ;
-C 16 ; WX 444 ; N uni2232.var ; B -14 -1112 501 1 ;
-C 17 ; WX 500 ; N uni2232.vard ; B -8 -2222 556 1 ;
-C 18 ; WX 444 ; N uni2232 ; B 56 -1112 569 1 ;
-C 19 ; WX 500 ; N uni2232.d ; B 55 -2222 633 1 ;
-C 20 ; WX 444 ; N uni2233.var ; B -14 -1112 501 1 ;
-C 21 ; WX 500 ; N uni2233.vard ; B -8 -2222 556 1 ;
-C 22 ; WX 500 ; N uni2A16 ; B 56 -1112 501 1 ;
-C 23 ; WX 500 ; N uni2A16.d ; B 55 -2222 556 1 ;
-C 24 ; WX 833 ; N uni2A16.var ; B 44 -1112 844 1 ;
-C 25 ; WX 861 ; N uni2A16.vard ; B 55 -2222 922 1 ;
-C 26 ; WX 444 ; N uni2A15 ; B 56 -1112 501 1 ;
-C 27 ; WX 500 ; N uni2A15.d ; B 55 -2222 556 1 ;
-C 28 ; WX 533 ; N uni2A14 ; B 56 -1112 603 1 ;
-C 29 ; WX 555 ; N uni2A14.d ; B 55 -2222 720 1 ;
-C 30 ; WX 444 ; N uni2A13 ; B 56 -1112 501 1 ;
-C 31 ; WX 555 ; N uni2A13.d ; B 55 -2222 568 1 ;
-C 32 ; WX 500 ; N uni2A12 ; B 56 -1112 501 1 ;
-C 33 ; WX 555 ; N uni2A12.d ; B 55 -2222 567 1 ;
-C 34 ; WX 444 ; N uni2A10 ; B 56 -1112 501 1 ;
-C 35 ; WX 500 ; N uni2A10.d ; B 55 -2222 556 1 ;
-C 36 ; WX 444 ; N uni2231 ; B 56 -1112 570 1 ;
-C 37 ; WX 500 ; N uni2231.d ; B 55 -2222 633 1 ;
-C 38 ; WX 444 ; N uni2A11 ; B 56 -1112 569 1 ;
-C 39 ; WX 500 ; N uni2A11.d ; B 55 -2222 633 1 ;
-C 40 ; WX 444 ; N uni2A0F ; B 56 -1112 501 1 ;
-C 41 ; WX 500 ; N uni2A0F.d ; B 55 -2222 556 1 ;
-C 42 ; WX 444 ; N uni2A0D ; B 56 -1112 501 1 ;
-C 43 ; WX 500 ; N uni2A0D.d ; B 55 -2222 556 1 ;
-C 44 ; WX 444 ; N uni2A0E ; B 56 -1112 501 1 ;
-C 45 ; WX 500 ; N uni2A0E.d ; B 55 -2222 556 1 ;
-C 46 ; WX 444 ; N uni2A18 ; B 56 -1112 501 1 ;
-C 47 ; WX 500 ; N uni2A18.d ; B 55 -2222 556 1 ;
-C 48 ; WX 444 ; N integral.landup ; B 35 -1112 522 1 ;
-C 49 ; WX 500 ; N integral.landupd ; B 55 -2222 569 1 ;
-C 50 ; WX 444 ; N integral.landdown ; B 35 -1112 522 1 ;
-C 51 ; WX 500 ; N integral.landdownd ; B 55 -2222 569 1 ;
-C 52 ; WX 488 ; N uni2A17 ; B -28 -1112 518 1 ;
-C 53 ; WX 500 ; N uni2A17.d ; B -28 -2222 574 1 ;
-C 54 ; WX 444 ; N uni2A1B ; B 48 -1112 508 64 ;
-C 55 ; WX 500 ; N uni2A1B.d ; B 48 -2222 564 64 ;
-C 56 ; WX 555 ; N uni2A1C ; B 47 -1175 508 1 ;
-C 57 ; WX 611 ; N uni2A1C.d ; B 47 -2286 564 1 ;
-C 58 ; WX 1444 ; N uni222C.dots ; B 56 -1112 1501 1 ;
-C 59 ; WX 1583 ; N uni222C.dotsd ; B 55 -2222 1639 1 ;
+FontBBox -28 -2287 1639 64
+StartCharMetrics 76
+C 0 ; WX 444 ; N integral ; B 55 -1112 500 0 ;
+C 1 ; WX 500 ; N integral.d ; B 55 -2223 555 0 ;
+C 2 ; WX 777 ; N uni222C ; B 55 -1112 833 1 ;
+C 3 ; WX 861 ; N uni222C.d ; B 55 -2223 916 0 ;
+C 4 ; WX 1111 ; N uni222D ; B 55 -1112 1167 1 ;
+C 5 ; WX 1222 ; N uni222D.d ; B 55 -2223 1277 0 ;
+C 6 ; WX 1444 ; N uni2A0C ; B 55 -1112 1500 1 ;
+C 7 ; WX 1583 ; N uni2A0C.d ; B 55 -2223 1639 0 ;
+C 8 ; WX 444 ; N uni222E ; B 55 -1112 500 0 ;
+C 9 ; WX 500 ; N uni222E.d ; B 55 -2223 555 0 ;
+C 10 ; WX 777 ; N uni222F ; B 55 -1112 833 1 ;
+C 11 ; WX 861 ; N uni222F.d ; B 55 -2223 916 1 ;
+C 12 ; WX 1111 ; N uni2230 ; B 55 -1112 1167 0 ;
+C 13 ; WX 1222 ; N uni2230.d ; B 55 -2223 1277 0 ;
+C 14 ; WX 444 ; N uni2233 ; B 55 -1112 570 0 ;
+C 15 ; WX 500 ; N uni2233.d ; B 55 -2223 633 0 ;
+C 16 ; WX 444 ; N uni2232.var ; B -16 -1112 500 0 ;
+C 17 ; WX 500 ; N uni2232.vard ; B -8 -2223 555 0 ;
+C 18 ; WX 444 ; N uni2232 ; B 55 -1112 570 0 ;
+C 19 ; WX 500 ; N uni2232.d ; B 55 -2223 634 0 ;
+C 20 ; WX 444 ; N uni2233.var ; B -16 -1112 500 0 ;
+C 21 ; WX 500 ; N uni2233.vard ; B -9 -2223 555 0 ;
+C 22 ; WX 500 ; N uni2A16 ; B 55 -1111 499 0 ;
+C 23 ; WX 500 ; N uni2A16.d ; B 55 -2223 555 0 ;
+C 24 ; WX 833 ; N uni2A16.var ; B 45 -1112 842 1 ;
+C 25 ; WX 861 ; N uni2A16.vard ; B 55 -2223 920 1 ;
+C 26 ; WX 444 ; N uni2A15 ; B 55 -1112 500 0 ;
+C 27 ; WX 500 ; N uni2A15.d ; B 55 -2223 555 0 ;
+C 28 ; WX 533 ; N uni2A14 ; B 55 -1112 603 1 ;
+C 29 ; WX 555 ; N uni2A14.d ; B 56 -2223 719 0 ;
+C 30 ; WX 444 ; N uni2A13 ; B 55 -1112 500 1 ;
+C 31 ; WX 555 ; N uni2A13.d ; B 56 -2223 566 0 ;
+C 32 ; WX 500 ; N uni2A12 ; B 55 -1111 499 0 ;
+C 33 ; WX 555 ; N uni2A12.d ; B 56 -2223 566 0 ;
+C 34 ; WX 444 ; N uni2A10 ; B 55 -1112 500 0 ;
+C 35 ; WX 500 ; N uni2A10.d ; B 55 -2223 555 0 ;
+C 36 ; WX 444 ; N uni2231 ; B 55 -1112 571 1 ;
+C 37 ; WX 500 ; N uni2231.d ; B 55 -2223 633 0 ;
+C 38 ; WX 444 ; N uni2A11 ; B 55 -1112 570 0 ;
+C 39 ; WX 500 ; N uni2A11.d ; B 55 -2223 633 0 ;
+C 40 ; WX 444 ; N uni2A0F ; B 55 -1112 500 1 ;
+C 41 ; WX 500 ; N uni2A0F.d ; B 55 -2223 555 0 ;
+C 42 ; WX 444 ; N uni2A0D ; B 55 -1112 500 1 ;
+C 43 ; WX 500 ; N uni2A0D.d ; B 55 -2223 555 0 ;
+C 44 ; WX 444 ; N uni2A0E ; B 55 -1112 500 1 ;
+C 45 ; WX 500 ; N uni2A0E.d ; B 55 -2223 555 0 ;
+C 46 ; WX 444 ; N uni2A18 ; B 55 -1112 500 1 ;
+C 47 ; WX 500 ; N uni2A18.d ; B 55 -2223 555 0 ;
+C 48 ; WX 444 ; N integral.landup ; B 35 -1112 520 1 ;
+C 49 ; WX 500 ; N integral.landupd ; B 55 -2223 569 0 ;
+C 50 ; WX 444 ; N integral.landdown ; B 35 -1112 520 1 ;
+C 51 ; WX 500 ; N integral.landdownd ; B 55 -2223 569 0 ;
+C 52 ; WX 488 ; N uni2A17 ; B -28 -1112 520 1 ;
+C 53 ; WX 500 ; N uni2A17.d ; B -28 -2223 575 0 ;
+C 54 ; WX 444 ; N uni2A1B ; B 48 -1112 507 64 ;
+C 55 ; WX 500 ; N uni2A1B.d ; B 48 -2223 562 64 ;
+C 56 ; WX 555 ; N uni2A1C ; B 48 -1176 507 0 ;
+C 57 ; WX 611 ; N uni2A1C.d ; B 48 -2287 562 0 ;
+C 58 ; WX 1444 ; N uni222C.dots ; B 55 -1112 1500 0 ;
+C 59 ; WX 1583 ; N uni222C.dotsd ; B 55 -2223 1639 0 ;
+C 60 ; WX 777 ; N uni2A0B ; B 55 -1112 722 1 ;
+C 61 ; WX 1444 ; N uni2A0B.d ; B 55 -2223 1389 0 ;
+C 62 ; WX 666 ; N uni2A1A ; B 55 -1112 611 -1 ;
+C 63 ; WX 1111 ; N uni2A1A.d ; B 55 -2223 1055 0 ;
+C 64 ; WX 666 ; N uni2A19 ; B 55 -1112 611 0 ;
+C 65 ; WX 1111 ; N uni2A19.d ; B 55 -2223 1055 0 ;
+C 66 ; WX 611 ; N integraltp ; B 264 -500 555 0 ;
+C 67 ; WX 611 ; N integralbt ; B 55 -488 362 10 ;
+C 68 ; WX 611 ; N uni23AE.r ; B 264 -277 362 10 ;
+C 69 ; WX 611 ; N uni23AE ; B 264 -722 362 10 ;
+C 70 ; WX 611 ; N uni23AE.o ; B 78 -722 547 10 ;
+C 71 ; WX 972 ; N integraltp.dbl ; B 264 -500 916 1 ;
+C 72 ; WX 972 ; N integralbt.dbl ; B 55 -490 722 10 ;
+C 73 ; WX 972 ; N uni23AE.rdbl ; B 264 -277 722 10 ;
+C 74 ; WX 972 ; N uni23AE.dbl ; B 264 -722 722 10 ;
+C 75 ; WX 972 ; N uni23AE.odbl ; B 108 -722 877 10 ;
EndCharMetrics
EndFontMetrics
diff --git a/fonts/cmupint/doc/cmupint.pdf b/fonts/cmupint/doc/cmupint.pdf
index 44bdce03b8..ae856c4df2 100644
--- a/fonts/cmupint/doc/cmupint.pdf
+++ b/fonts/cmupint/doc/cmupint.pdf
Binary files differ
diff --git a/fonts/cmupint/doc/cmupint.tex b/fonts/cmupint/doc/cmupint.tex
index a3bd5f4b54..9337411d17 100644
--- a/fonts/cmupint/doc/cmupint.tex
+++ b/fonts/cmupint/doc/cmupint.tex
@@ -11,10 +11,15 @@
\title{The \texttt{cmupint} package}
\author{Uroš Stefanović\footnote{\texttt{urostajms@gmail.com}}}
-\date{\today{} v1.0}
+\date{\today{} v1.1}
\newcommand\tbview[1]{ \verb"#1" & $\textstyle #1$ & $\displaystyle #1$ }
+\newcolumntype{C}{>{\centering\arraybackslash\hsize=.1\hsize}X}%
+\newcolumntype{D}{>{\centering\arraybackslash}X}%
+\newcolumntype{S}{>{\centering\hsize=.3\hsize}X}
+\setlength{\extrarowheight}{10pt}
+
\begin{document}
\maketitle
@@ -43,10 +48,8 @@ in preamble of the document.
The available options are \texttt{displaylimits} (default option), \texttt{limits} and \texttt{nolimits} (see Table~\ref{tabl1}).
\begin{table}[h!]
- \newcolumntype{C}{>{\centering\arraybackslash}X}%
- \setlength{\extrarowheight}{10pt}
\centering
- \begin{tabularx}{.7\textwidth}{|C|C|C|}
+ \begin{tabularx}{.7\textwidth}{|D|D|D|}
\hline
Option & Text style & Display style \\
\hline
@@ -65,32 +68,58 @@ The available options are \texttt{displaylimits} (default option), \texttt{limit
For the avaible integral symbols see Table~\ref{tabl2}.
+\section{Long integral}
+
+Long integral symbols are defined as the extensible delimiters, therefore the usage is slightly different: we use this symbols with:
+\begin{verbatim}
+\longint{bottomLimit}{topLimit}{mathExpression}
+\end{verbatim}
+Other availble commands are \verb|\longiint|, \verb|\longoint| and \verb|\longoiint|. The limits placement will be same as the choosen package option.
+
+For example, the code
+\begin{verbatim}
+\longint{-\infty}{+\infty}{\begin{pmatrix}
+1 & 2 \\ 3 & 4 \\ 5 & x \\ 6 & 7 \\ 8 & 9 \\ x & 0 \\ \end{pmatrix}}\,\mathrm{d}x
+\end{verbatim}
+will produce:
+\[\longint{-\infty}{+\infty}{\begin{pmatrix}
+ 1 & 2 \\ 3 & 4 \\ 5 & x \\ 6 & 7 \\ 8 & 9 \\ x & 0 \\ \end{pmatrix}}\,\mathrm{d}x.\]
+
+\section{Version history}
+
+\subsection*{1.1}
+
+\begin{itemize}
+ \item Added \verb|\sumint|, \verb|\intcap|, \verb|\intcup|.
+ \item Long integral symbols are added.
+\end{itemize}
+
+\pagebreak
\begin{table}[h!]
- \newcolumntype{C}{>{\centering\arraybackslash\hsize=.1\hsize}X}%
- \newcolumntype{S}{>{\centering\hsize=.3\hsize}X}
- \setlength{\extrarowheight}{10pt}
\centering
\begin{tabularx}{\textwidth}{|SCC|SCC|}
- \hline
- Command & Text style & Display style & Command & Text style & Display style \\
- \hline\hline
- \tbview{\int} & \tbview{\iint} \\
- \tbview{\iiint} & \tbview{\iiiint} \\
- \tbview{\oint} & \tbview{\oiint} \\
- \tbview{\oiiint} & \tbview{\ointctrclockwise} \\
- \tbview{\ointclockwise} & \tbview{\varointclockwise} \\
- \tbview{\varointctrclockwise} & \tbview{\sqint} \\
- \tbview{\sqiint} & \tbview{\pointint} \\
- \tbview{\npolint} & \tbview{\scpolint} \\
- \tbview{\rppolint} & \tbview{\cirfnint} \\
- \tbview{\intclockwise} & \tbview{\awint} \\
- \tbview{\fint} & \tbview{\barint} \\
- \tbview{\doublebarint} & \tbview{\xint} \\
- \tbview{\landupint} & \tbview{\landdownint} \\
- \tbview{\intlarhk} & \tbview{\upint} \\
- \tbview{\downint} & \tbview{\varidotsint} \\
- \verb"\idotsint"\footnotemark[1] & $\textstyle \idotsint$ & $\displaystyle \idotsint$ & \verb"\idotsint"\footnotemark[2] & $\textstyle \varidotsint$ & $\displaystyle \varidotsint$ \\
- \hline
+ \hline
+ Command & Text style & Display style & Command & Text style & Display style \\
+ \hline\hline
+ \tbview{\int} & \tbview{\iint} \\
+ \tbview{\iiint} & \tbview{\iiiint} \\
+ \tbview{\oint} & \tbview{\oiint} \\
+ \tbview{\oiiint} & \tbview{\ointctrclockwise} \\
+ \tbview{\ointclockwise} & \tbview{\varointclockwise} \\
+ \tbview{\varointctrclockwise} & \tbview{\sqint} \\
+ \tbview{\sqiint} & \tbview{\pointint} \\
+ \tbview{\npolint} & \tbview{\scpolint} \\
+ \tbview{\rppolint} & \tbview{\cirfnint} \\
+ \tbview{\intclockwise} & \tbview{\awint} \\
+ \tbview{\fint} & \tbview{\barint} \\
+ \tbview{\doublebarint} & \tbview{\xint} \\
+ \tbview{\landupint} & \tbview{\landdownint} \\
+ \tbview{\intlarhk} & \tbview{\upint} \\
+ \tbview{\downint} & \tbview{\sumint} \\
+ \tbview{\intcap} & \tbview{\intcup} \\
+ \tbview{\varidotsint} & & & \\
+ \verb"\idotsint"\footnotemark[1] & $\textstyle \idotsint$ & $\displaystyle \idotsint$ & \verb"\idotsint"\footnotemark[2] & $\textstyle \varidotsint$ & $\displaystyle \varidotsint$ \\
+ \hline
\end{tabularx}
\caption{Integral symbols.}\label{tabl2}
\end{table}
diff --git a/fonts/cmupint/source/upintsym.mf b/fonts/cmupint/source/upintsym.mf
index 3a6ef0ae9d..5212116e63 100644
--- a/fonts/cmupint/source/upintsym.mf
+++ b/fonts/cmupint/source/upintsym.mf
@@ -904,3 +904,97 @@ filldraw rond;
filldraw rond shifted .75z0;
penlabels(range 1 thru 39); endchar;
+
+
+cmchar "\textstyle integral summation sign";
+beginchar(60,10u#+4u#,0,100/54dh#); %10/6dh = 90/54
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness;
+numeric sumup, sumdown;
+sumup=-.2d; sumdown=-d-sumup;
+top_arm_thickness=Vround rule_thickness;
+bot_arm_thickness=Vround .9(.5[rule_thickness,curve]);
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=sumup; bot y2=sumup-top_arm_thickness-eps; bot y4=sumdown; y3=(sumdown+sumup)/2;% y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0);
+penpos3(alpha1*(curve-tiny),0);
+alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(rule_thickness-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=sumup; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-.7beak)-eps;
+arm(5,6,a,.45,12/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=sumdown; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+.7beak)+eps;
+arm(7,8,b,.45,12/11u); % lower arm and beak
+pickup fine.nib;
+numeric intoff;
+intoff=2u;
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d; y19-.5curve=vround(top y17l+.25curve);
+y13-y11=y19-y17; y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar;
+
+cmchar "\textstyle integral union sign";
+beginchar(62,10u#+2u#,0,100/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup pencircle scaled stem;
+numeric sumup, sumdown;
+sumup=-.2d; sumdown=-d-sumup;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps+sumup; bot y3=sumdown; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+pickup fine.nib;
+numeric intoff;
+intoff=1.0u;
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d; y19-.5curve=vround(top y17l+.25curve);
+y13-y11=y19-y17; y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar;
+
+cmchar "\textstyle integral intersection sign";
+beginchar(64,10u#+2u#,0,100/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup pencircle scaled stem;
+numeric sumup, sumdown;
+sumup=-.2d; sumdown=-d-sumup;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=sumup; bot y1=sumdown-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+pickup fine.nib;
+numeric intoff;
+intoff=1.0u;
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d; y19-.5curve=vround(top y17l+.25curve);
+y13-y11=y19-y17; y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar; \ No newline at end of file
diff --git a/fonts/cmupint/source/upintsymd.mf b/fonts/cmupint/source/upintsymd.mf
index 78bd1df28f..d1fc8fdf74 100644
--- a/fonts/cmupint/source/upintsymd.mf
+++ b/fonts/cmupint/source/upintsymd.mf
@@ -1003,6 +1003,111 @@ filldraw rond;
filldraw rond shifted .75z99;
penlabels(range 1 thru 39); endchar;
+cmchar "\displaystyle integral summation sign";
+beginchar(61,11u#+15u#,0,200/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+numeric sumup, sumdown;
+sumup=-.185d; sumdown=-d-sumup;
+thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
+top_arm_thickness=Vround .9thin_stem;
+bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]);
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=sumup; bot y2=sumup-top_arm_thickness-eps; bot y4=sumdown; y3=(sumdown+sumup)/2;%y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0);
+penpos3(alpha1*(thick_stem-tiny),0);
+alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(thin_stem-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=sumup; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps;
+arm(5,6,a,.45,24/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=sumdown; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,.45,24/11u); % lower arm and beak
+pickup fine.nib;
+numeric intoff;
+intoff=7.5u;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d;
+y19-.5bulb_size=vround(top y17l+.25bulb_size); y13-y11=y19-y17;
+y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar;
+
+cmchar "\displaystyle integral union sign";
+beginchar(63,11u#+9u#,0,200/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup pencircle scaled curve;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+numeric sumup, sumdown;
+sumup=-.185d; sumdown=-d-sumup;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps+sumup; bot y3=sumdown; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+pickup fine.nib;
+numeric intoff;
+intoff=4.5u;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d;
+y19-.5bulb_size=vround(top y17l+.25bulb_size); y13-y11=y19-y17;
+y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar;
+
+cmchar "\displaystyle integral intersection sign";
+beginchar(65,11u#+9u#,0,200/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,0); pickup pencircle scaled curve;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+numeric sumup, sumdown;
+sumup=-.185d; sumdown=-d-sumup;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=sumup; bot y1=sumdown-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+pickup fine.nib;
+numeric intoff;
+intoff=4.5u;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
+rt x11r=hround(w-intoff-u); x19=w-x11; x17=w-x13=3u+intoff;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d;
+y19-.5bulb_size=vround(top y17l+.25bulb_size); y13-y11=y19-y17;
+y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(range 1 thru 19); endchar;
+
charlist 0: 1;
charlist 2: 3;
@@ -1034,3 +1139,203 @@ charlist 52: 53;
charlist 54: 55;
charlist 56: 57;
charlist 58: 59;
+charlist 60: 61;
+charlist 62: 63;
+charlist 64: 65;
+
+
+cmchar "\displaystyle up integral sign top part";
+beginchar(66,11u#,0,44/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
+pos5(max_size,180);
+rt x1r=hround(w-u); w-x3=3u;
+x5=x4; lft x5r=hround(.5w-.5curve);
+y5=-d-eps;
+top y3r=0;
+y1=vround(bot y3l-.25bulb_size)-.5bulb_size;
+y4=-d;
+bulb(3,2,1);
+filldraw stroke z3e{left}...{down}z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+penlabels(range 1 thru 5); endchar;
+
+cmchar "\displaystyle up integral sign bottom part";
+beginchar(67,11u#,0,44/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+lft x9r=w-hround(w-u); x7=3u;
+y6=0;
+x5=x6; lft x5r=hround(.5w-.5curve);
+bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size);
+y5=eps;
+bulb(7,8,9); % bulbs
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e{down}...{left}z7e; % lower curve
+penlabels(range 5 thru 9); endchar;
+
+cmchar "\displaystyle up integral sign repeat part";
+beginchar(68,11u#,0,24/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5curve);
+y5=-d-eps;
+y4=eps;
+filldraw stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+penlabels(4,5); endchar;
+
+cmchar "\displaystyle up integral sign center part";
+beginchar(69,11u#,0,64/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5curve);
+y5=-d-eps;
+y4=eps;
+filldraw stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+penlabels(4,5); endchar;
+
+cmchar "\displaystyle up contour integral sign center part";
+beginchar(70,11u#,0,64/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5curve);
+y5=-d-eps;
+y4=eps;
+filldraw stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+pickup rule.nib; autorounded;
+x0=x4; 2y0=y5+y4;
+draw fullcircle scaled .7w shifted z0; % contour
+penlabels(0,4,5); endchar;
+
+extensible 69: 66,69,67,68;
+extensible 70: 66,70,67,68;
+
+
+cmchar "\displaystyle up double integral sign top part";
+beginchar(71,11u#+ddec#,0,44/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+path haut;
+x0=ddec;y0=0;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90);
+pos5(max_size,180);
+rt x1r=hround(w-ddec-u); w-ddec-x3=3u;
+x5=x4; lft x5r=hround(.5w-.5ddec-.5curve);
+y5=-d-eps;
+top y3r=0;
+x11=x1+ddec;x13=x3+ddec;
+y11=y1;y13=y3;
+y1=vround(bot y3l-.25bulb_size)-.5bulb_size;
+y4=-d;
+bulb(3,2,1); bulb(13,12,11);
+haut:=stroke z3e{left}...{down}z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw haut;
+filldraw haut shifted z0;
+penlabels(range 1 thru 13); endchar;
+
+cmchar "\displaystyle up double integral sign bottom part";
+beginchar(72,11u#+ddec#,0,44/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+path haut;
+x0=ddec;y0=0;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
+lft x9r=w-ddec-hround(w-ddec-u); x7=3u;
+x19=x9+ddec;x17=x7+ddec;
+y19=y9;y18=y8;y17=y7;
+y6=0;
+x5=x6; lft x5r=hround(.5w-.5ddec-.5curve);
+bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size);
+y5=eps;
+bulb(7,8,9); bulb(17,18,19);
+haut:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e{down}...{left}z7e; % lower curve
+filldraw haut;
+filldraw haut shifted z0;
+penlabels(range 5 thru 19); endchar;
+
+cmchar "\displaystyle up double integral sign repeat part";
+beginchar(73,11u#+ddec#,0,24/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+path haut;
+x0=ddec;y0=0;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5ddec-.5curve);
+y5=-d-eps;
+y4=eps;
+haut:=stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e;
+filldraw haut;
+filldraw haut shifted z0;
+penlabels(4,5); endchar;
+
+cmchar "\displaystyle up integral sign center part";
+beginchar(74,11u#+ddec#,0,64/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+path haut;
+x0=ddec;y0=0;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5ddec-.5curve);
+y5=-d-eps;
+y4=eps;
+haut:=stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e;
+filldraw haut;
+filldraw haut shifted z0;
+penlabels(4,5); endchar;
+
+cmchar "\displaystyle up double contour integral sign center part";
+beginchar(75,11u#+ddec#,0,64/54dh#);
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+path haut;
+x0=ddec;y0=0;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos4(max_size,180);
+pos5(max_size,180);
+x5=x4; lft x5r=hround(.5w-.5ddec-.5curve);
+y5=-d-eps;
+y4=eps;
+haut:=stroke z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e;
+filldraw haut;
+filldraw haut shifted z0;
+pickup rule.nib; autorounded;
+x10=x4; 2y10=y5+y4;
+z50=z10+.5z0;
+draw fullcircle xscaled .75w yscaled .5w shifted z50; % contour
+penlabels(4,5,50); endchar;
+
+extensible 74: 71,74,72,73;
+extensible 75: 71,75,72,73;
diff --git a/fonts/cmupint/tex/cmupint.sty b/fonts/cmupint/tex/cmupint.sty
index 49b8f0d818..51a01e70c2 100644
--- a/fonts/cmupint/tex/cmupint.sty
+++ b/fonts/cmupint/tex/cmupint.sty
@@ -1,7 +1,7 @@
-\ProvidesPackage{cmupint}[2020/01/21 v1.0 cmupint]
-\DeclareOption{displaylimits}{\let\upilimits@\displaylimits}
-\DeclareOption{limits}{\let\upilimits@\limits}
-\DeclareOption{nolimits}{\let\upilimits@\nolimits}
+\ProvidesPackage{cmupint}[2020/04/13 v1.1 cmupint]
+\DeclareOption{displaylimits}{\let\upilimits@\displaylimits \let\@longt@pfix\,}
+\DeclareOption{limits}{\let\upilimits@\limits \let\@longt@pfix\,}
+\DeclareOption{nolimits}{\let\upilimits@\nolimits \let\@longt@pfix\relax}
\ExecuteOptions{displaylimits}
\ProcessOptions\relax
\DeclareSymbolFont{uplargesymbols}{U}{cmupint}{m}{n}
@@ -35,6 +35,26 @@
\DeclareMathSymbol{\uprightupintop}{\mathop}{uplargesymbols}{54}
\DeclareMathSymbol{\uprightdownintop}{\mathop}{uplargesymbols}{56}
\DeclareMathSymbol{\uprightidotsintop}{\mathop}{uplargesymbols}{58}
+\DeclareMathSymbol{\uprightsumintop}{\mathop}{uplargesymbols}{60}
+\DeclareMathSymbol{\uprightintcupop}{\mathop}{uplargesymbols}{62}
+\DeclareMathSymbol{\uprightintcapop}{\mathop}{uplargesymbols}{64}
+\DeclareMathDelimiter{\uprightlongintop}{\mathop}{uplargesymbols}{69}{uplargesymbols}{69}
+\DeclareMathDelimiter{\uprightlongointop}{\mathop}{uplargesymbols}{70}{uplargesymbols}{70}
+\DeclareMathDelimiter{\uprightlongiintop}{\mathop}{uplargesymbols}{74}{uplargesymbols}{74}
+\DeclareMathDelimiter{\uprightlongoiintop}{\mathop}{uplargesymbols}{75}{uplargesymbols}{75}
+\newcommand\upintp@lette[5]{%
+ \mathchoice
+ {\upintl@ng@perator\displaystyle{#1}{#2}{#3}{#4}}
+ {\textstyle{#5_{#1}^{#2}#3}}
+ {\scriptstyle{#5_{#1}^{#2}#3}}
+ {\scriptscriptstyle{#5_{#1}^{#2}#3}}}
+\newcommand*\upintl@ng@perator[5]{%
+ \mathop{\hbox{$#1\left#5\vphantom{#4}\right.\n@space$}}\upilimits@
+ \ifx\@empty#2\@empty\else _{\!#2}\fi \ifx\@empty#3\@empty\else ^{\@longt@pfix#3}\fi #4 }
+\newcommand\longint[3]{\upintp@lette{#1}{#2}{#3}{\uprightlongintop}{\int}}
+\newcommand\longoint[3]{\upintp@lette{#1}{#2}{#3}{\uprightlongointop}{\oint}}
+\newcommand\longiint[3]{\upintp@lette{#1}{#2}{#3}{\uprightlongiintop}{\iint}}
+\newcommand\longoiint[3]{\upintp@lette{#1}{#2}{#3}{\uprightlongoiintop}{\oiint}}
\AtBeginDocument{
\def\int{\relax\uprightintop\upilimits@}
\def\iint{\relax\uprightiintop\upilimits@}
@@ -66,6 +86,9 @@
\def\upint{\relax\uprightupintop\upilimits@}
\def\downint{\relax\uprightdownintop\upilimits@}
\def\varidotsint{\relax\uprightidotsintop\upilimits@}
+\def\sumint{\relax\uprightsumintop\upilimits@}
+\def\intcup{\relax\uprightintcupop\upilimits@}
+\def\intcap{\relax\uprightintcapop\upilimits@}
\@ifpackageloaded{amsmath}{
\def\idotsint{\DOTSI\protect\mathop\bgroup\noexpand\uprightintop\intdots@\noexpand\uprightintop\egroup\noexpand\upilimits@}
}{
diff --git a/fonts/cmupint/tfm/cmupint.tfm b/fonts/cmupint/tfm/cmupint.tfm
index 8afc230e4c..074bc4229c 100644
--- a/fonts/cmupint/tfm/cmupint.tfm
+++ b/fonts/cmupint/tfm/cmupint.tfm
Binary files differ
diff --git a/fonts/cmupint/type1/cmupint.pfb b/fonts/cmupint/type1/cmupint.pfb
index 386f8230fb..582e90fda9 100644
--- a/fonts/cmupint/type1/cmupint.pfb
+++ b/fonts/cmupint/type1/cmupint.pfb
Binary files differ