具有默认限值的“esint”积分

具有默认限值的“esint”积分

当我尝试设置与esint 包,它将根据为其设置的限制生成:

默认体积积分为 esint

相应的示例代码是

\documentclass{article}
\usepackage[intlimits]{amsmath}
\usepackage{esint}
\begin{document}
  \[ \oiint_{O(V)} \]
\end{document}

我希望实现更类似的功能\oiint\limits_{O(V)},但实际上无需输入 limits-command,因为这应该是我的文档中的默认行为。文档没有提供intlimits与可用选项类似的选项amsmath

到目前为止,我使用了一种非常肮脏的黑客技术\re@DeclareMathSymbol。还有其他方法或者其他可以帮助我的包吗?

答案1

没有类似的包选项esint。但您可以使用定义\oiintlim

\def\oiintlim{\oiintop\limits}

平均能量损失

\documentclass{article}
\usepackage[intlimits]{amsmath}
\usepackage{esint}
\def\oiintlim{\oiintop\limits}
\begin{document}
  \[ \oiintlim_{O(V)} \]
\end{document} 

输出

在此处输入图片描述


编辑

extesint否则,从现有的创建一个新包非常简单esint

将以下内容保存为extesint.sty您的文档所在的位置(或 TeX 根目录中的某个位置并刷新数据库):

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{extesint}
\DeclareOption{intlimits}{\let\ilimits@\displaylimits}
\DeclareOption{nointlimits}{\let\ilimits@\nolimits}
\ExecuteOptions{nointlimits}
\ProcessOptions
\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@}
\re@DeclareMathSymbol{\iiintop}{\mathop}{largesymbolsA}{'005}
        \def\iiint{\iiintop\ilimits@}
\re@DeclareMathSymbol{\iiiintop}{\mathop}{largesymbolsA}{'007}
        \def\iiiint{\iiiintop\ilimits@}
\re@DeclareMathSymbol{\dotsintop}{\mathop}{largesymbolsA}{'011}
        \def\dotsint{\dotsintop\ilimits@}
\re@DeclareMathSymbol{\ointop}{\mathop}{largesymbolsA}{'013}
        \def\oint{\ointop\ilimits@}
\re@DeclareMathSymbol{\oiintop}{\mathop}{largesymbolsA}{'015}
        \def\oiint{\oiintop\ilimits@}
\re@DeclareMathSymbol{\sqintop}{\mathop}{largesymbolsA}{'017}
        \def\sqint{\sqintop\ilimits@}
\re@DeclareMathSymbol{\sqiintop}{\mathop}{largesymbolsA}{'021}
        \def\sqiint{\sqiintop\ilimits@}
\re@DeclareMathSymbol{\ointctrclockwiseop}{\mathop}{largesymbolsA}{'027}
        \def\ointctrclockwise{\ointctrclockwiseop\ilimits@}
\re@DeclareMathSymbol{\ointclockwiseop}{\mathop}{largesymbolsA}{'031}
        \def\ointclockwise{\ointclockwiseop\ilimits@}
\re@DeclareMathSymbol{\varointclockwiseop}{\mathop}{largesymbolsA}{'033}
        \def\varointclockwise{\varointclockwiseop\ilimits@}
\re@DeclareMathSymbol{\varointctrclockwiseop}{\mathop}{largesymbolsA}{'035}
        \def\varointctrclockwise{\varointctrclockwiseop\ilimits@}
\re@DeclareMathSymbol{\fintop}{\mathop}{largesymbolsA}{'037}
        \def\fint{\fintop\ilimits@}
\re@DeclareMathSymbol{\varoiintop}{\mathop}{largesymbolsA}{'041}
        \def\varoiint{\varoiintop\ilimits@}
\re@DeclareMathSymbol{\landupintop}{\mathop}{largesymbolsA}{'043}
        \def\landupint{\landupintop\ilimits@}
\re@DeclareMathSymbol{\landdownintop}{\mathop}{largesymbolsA}{'045}
        \def\landdownint{\landdownintop\ilimits@}
\endinput

然后,以下 MWE 按预期工作

\documentclass{article}
\usepackage[intlimits]{amsmath}
\usepackage[intlimits]{extesint}

\begin{document}
\[ \oiint_{O(V)} \]
\end{document} 

省略intlimits或使用nointlimits让它充当esint

答案2

您可以使用这个简单的技巧来修补序言中的 \oiint 及其其他兄弟:

\let\oldoiint\oiint
\renewcommand{\oiint}{\oldoiint\limits}

示例代码:

\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amsmath} 
\usepackage{esint} 

\let\oldoiint\oiint
\renewcommand{\oiint}{\oldoiint\limits}

\begin{document}

\[ \oiint_{O(V)}\]%\qquad \oiint\limits_{O(V)}

\end{document}

在此处输入图片描述

相关内容