答案1
可以重新声明积分运算符\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}
或者,可以\intop
在加载之前保存一个版本newpxmath
,然后在加载之后恢复它:
\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}
作为第三种方法,人们可以只加载euler
包,而不是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}
讨论
发生这种情况有两个原因:因为eulervm
没有明确声明\intop
,也因为(默认情况下)newpxmath
重新定义\intop
\let\intop=\intslop
在哪里
\re@DeclareMathSymbol{\intslop} {\mathop}{largesymbols}{"AF}
此“AF”与 使用的“52”是不同的字形槽eulervm
。并且\intop
是 的组成部分,如\int
中定义的那样newpxmath
\def\int{\DOTSI\intop\ilimits@}
这个 MWE 明确地显示了讨论:
\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}
后记
该包euler
不会遇到同样的问题,因为它明确将\intop
符号声明到插槽“52”。