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