我喜欢 fourier 包,但我想使用 esint 包中的积分。我尝试在 fourier 之后使用 esint,\int 和 \oint 具有来自 esint 的形式,但 \iint 和 \oiint 具有来自 fourier 包的形式,见下面的示例。三重积分也是如此。
\documentclass[aps,notitlepage]{revtex4-2}
\usepackage{fourier}
\usepackage{esint}
\begin{document}
\begin{equation}
\int\hspace{2em}\oint\hspace{2em} \iint\hspace{2em}\oiint
\end{equation}
\end{document}
我查看了 fourier.sty,发现有二重积分和三重积分的定义,但没有单重积分的定义。因此,esint.sty 中的定义用于单重积分。问题是 - 如何使用 esint.sty 重新定义二重积分和三重积分?通常,下一个样式是重新定义之前的定义。但为什么在这种情况下不这样做?在 esint.sty 中,\iint 的定义如下
\def\re@DeclareMathSymbol#1#2#3#4{%
\let#1=\undefined
\DeclareMathSymbol{#1}{#2}{#3}{#4}}
\DeclareSymbolFont{largesymbolsA}{U}{esint}{m}{n}
\re@DeclareMathSymbol{\intop}{\mathop}{largesymbolsA}{'001}
\def\int{\intop\ilimits@}
\re@DeclareMathSymbol{\iintop}{\mathop}{largesymbolsA}{'003}
\def\iint{\iintop\ilimits@}
在 fourier.sty
\DeclareSymbolFont{largesymbols}{FMX}{futm}{m}{n}
\DeclareMathSymbol{\iintop}{\mathop}{largesymbols}{206}
\def\iint{\DOTSI\iintop\ilimits@}
答案1
在fourier.sty
我们看到
\AtBeginDocument{\let\mathbb\math@bb %
\DeclareMathSymbol{\iintop}{\mathop}{largesymbols}{206}
\DeclareMathSymbol{\iiintop}{\mathop}{largesymbols}{208}
\DeclareMathSymbol{\oiintop}{\mathop}{largesymbols}{210}
\DeclareMathSymbol{\oiiintop}{\mathop}{largesymbols}{212}
\DeclareMathSymbol{\slashintop}{\mathop}{largesymbols}{214}
\@ifpackageloaded{amsmath}{%
\def\iint{\DOTSI\iintop\ilimits@}
\def\iiint{\DOTSI\iiintop\ilimits@}
\def\oiint{\DOTSI\oiintop\ilimits@}
\def\oiiint{\DOTSI\oiiintop\ilimits@}
\def\slashint{\DOTSI\slashintop\ilimits@}
}{%
[...]
这意味着fourier
在文档开始时重新定义二重积分和三重积分的命令,从而覆盖由 完成的命令esint
。您必须撤消此设置。假设您也加载amsmath
(您应该, 顺便一提),
\documentclass{article}
\usepackage{amsmath}
\usepackage{fourier}
\usepackage{esint}
\makeatletter
\NewCommandCopy\ESINT@iintop\iintop
\NewCommandCopy\ESINT@iiintop\iiintop
\NewCommandCopy\ESINT@oiintop\oiintop
\NewCommandCopy\ESINT@oiiintop\oiiintop
\AtBeginDocument{%
\def\iint{\DOTSI\ESINT@iintop\ilimits@}
\def\iiint{\DOTSI\ESINT@iiintop\ilimits@}
\def\oiint{\DOTSI\ESINT@oiintop\ilimits@}
\def\oiiint{\DOTSI\ESINT@oiiintop\ilimits@}
}
\makeatother
\begin{document}
\begin{equation}
\int\hspace{2em}\oint\hspace{2em} \iint\hspace{2em}\oiint
\end{equation}
\end{document}
我认为您不应该使用fourier
with revtex4-2
,因为它被认为是提交给美国物理学会期刊的格式,如果您这样做他们会不高兴的。
如果您使用的是没有的旧版 LaTeX 版本,请在加载后将\NewCommandCopy
其替换为。\LetLtxMacro
\usepackage{letltxmacro}