使用 eulervm 和 newpx 进行积分符号

使用 eulervm 和 newpx 进行积分符号

我尝试eulervm同时加载newpxtextnewpxmath,这一直运行良好,直到我尝试使用构造积分\int。积分符号根本没有出现:

在此处输入图片描述

    \documentclass{article}

    \usepackage{newpxtext,newpxmath} 
    \usepackage{eulervm}

    \begin{document} 
    \[\int_a^b f(x)\, dx\] 
    \end{document}

我是否遗漏了什么?

答案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”。

相关内容