是否有任何软件包可以简化排版积分?

是否有任何软件包可以简化排版积分?

物理包对我帮助很大,让我能够干净、一致地排版数学(同时遵循数学排版的许多细微差别)。但它不支持积分。有人知道有哪个包支持积分吗?例如,它应该添加微分(适当间隔等),而我无需担心。我想我可以自己编写命令,但我希望有人已经完成了所有工作。

答案1

根据@egreg 的回答,我给自己创建了一个类似的宏,也对该dx部分进行了排版。

\documentclass[]{article}

\usepackage{xparse}

\newcommand\dd{\mathrm{d}}

\ExplSyntaxOn
\NewDocumentCommand \Int { s o m o }
  {%
    \IfNoValueTF{ #2 }
      { \int }
      {
        \fiziks_int:nn { #1 } { #2 }
      }
    #3
    \IfNoValueF { #4 } { \fiziks_int_dx:n { #4 } }
  }

\seq_new:N \l__fiziks_int_args_seq
\tl_new:N \l__fiziks_int_ast_tl

\cs_new_protected:Npn \fiziks_int:nn #1 #2
  {
    \seq_set_split:Nnn \l__fiziks_int_args_seq { ; } { #2 }
    \seq_map_inline:Nn \l__fiziks_int_args_seq 
      {
        \tl_if_in:nnTF { ##1 } { * }
          {% * case
            \tl_set:Nn \l__fiziks_int_ast_tl { ##1 }
            \tl_remove_once:Nn \l__fiziks_int_ast_tl { * }
            \fiziks_int_inner:NnV \oint { #1 } \l__fiziks_int_ast_tl
          }
          {% no * case
            \fiziks_int_inner:Nnn \int { #1 } { ##1 }
          }
      }
  }
\cs_new_protected:Npn \fiziks_int_inner:Nnn #1 #2 #3
  {
    #1
    \tl_if_blank:nF { #3 } 
      {
        \IfBooleanT { #2 } { \limits }
        \fiziks_int_inner_inner:Nx \sb { \clist_item:nn { #3 } { 1 } }
        \fiziks_int_inner_inner:Nx \sp { \clist_item:nn { #3 } { 2 } }
      }
  }
\cs_generate_variant:Nn \fiziks_int_inner:Nnn { NnV }
\cs_new:Npn \fiziks_int_inner_inner:Nn #1 #2
  {
    \tl_if_blank:nF { #2 } { #1 { #2 } }
  }
\cs_generate_variant:Nn \fiziks_int_inner_inner:Nn { Nx }

\cs_new_protected:Npn \fiziks_int_dx:n #1
  {
    \seq_set_split:Nnn \l__fiziks_int_args_seq { ; } { #1 }
    \seq_map_inline:Nn \l__fiziks_int_args_seq
      {
        \,\dd##1
      }
  }
\ExplSyntaxOff

\begin{document}
\[
  \Int[0,T;0,a]{f^2}[t;x]
  \Int*[0,T;0,a]{f^2}[t;x]
\]
\end{document}

在此处输入图片描述

相关内容