![具有默认限值的“esint”积分](https://linux22.com/image/282266/%E5%85%B7%E6%9C%89%E9%BB%98%E8%AE%A4%E9%99%90%E5%80%BC%E7%9A%84%E2%80%9Cesint%E2%80%9D%E7%A7%AF%E5%88%86.png)
当我尝试设置与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}