One can redeclare the integral operator, \intop
:
\documentclass{article}
\usepackage{newpxtext,newpxmath}
\usepackage{eulervm}
\DeclareMathSymbol\intop \mathop {largesymbols}{"52}
\begin{document}
\[\int_a^b f(x)\, dx \quad\textstyle\int_a^b f(x)\, dx\]
\end{document}

Alternately, one could save a version of \intop
before loading newpxmath
and then restore it afterwards:
\documentclass{article}
\let\svintop\intop
\usepackage{newpxtext,newpxmath}
\let\intop\svintop
\usepackage{eulervm}
\begin{document}
\[\int_a^b f(x)\, dx \quad\textstyle\int_a^b f(x)\, dx\]
\end{document}
As a third way, one could just load the euler
package, instead of eulervm
.
\documentclass{article}
\usepackage{newpxtext,newpxmath}
\usepackage{euler}
\begin{document}
\[\int_a^b f(x)\, dx \quad\textstyle\int_a^b f(x)\, dx\]
\end{document}
DISCUSSION
All this happens for two reasons: because eulervm
does not explicitly declare \intop
and also because newpxmath
redefines \intop
(by default) with
\let\intop=\intslop
where
\re@DeclareMathSymbol{\intslop} {\mathop}{largesymbols}{"AF}
This "AF is a different glyph slot than the "52 used by eulervm
. And \intop
is an integral part of \int
, as defined in newpxmath
as
\def\int{\DOTSI\intop\ilimits@}
This MWE shows the discussion explicitly:
\documentclass{article}
\sbox0{DEFAULT: \meaning\intop}
\usepackage{newpxtext,newpxmath}
\sbox2{NEWPXMATH: \meaning\intop}
\usepackage{eulervm}
\sbox4{EULER DOES NOT FIX: \meaning\intop}
\DeclareMathSymbol\intop \mathop {largesymbols}{"52}
\sbox6{REDECLARED: \meaning\intop}
\begin{document}
\[\int_a^b f(x)\, dx \quad\textstyle\int_a^b f(x)\, dx\]
\box0
\box2
\box4
\box6
\end{document}

POSTSCRIPT
The package euler
does not suffer the same problem because it explicitly declares the \intop
symbol to slot "52.
newpxmath
at all if you want to useeulervm
? Removing it works just fine...newpxmath
because\operatorname
wouldn't work without it.\operatorname
is defined byamsmath
, which is loaded by default bynewpxmath
. But you can load it separately.