环境 xparse 中的自定义参数

环境 xparse 中的自定义参数

是否可以创建一个具有必需参数的环境,该环境将仅使用xparse不带包的包来表示环境中的一些变化environ

更具体地说,我想创建一个用于积分替换的环境,该环境将接收必需的参数:linebracewave。或者至少lbw如果无法用文字表达的话。

\begin{subs}{MY ARGUMENT}
...
\end{subs}

以下是其工作原理的示例:

1․|两侧均可使用

\begin{equation}
\int =
\begin{subs}{l}
...
\end{subs}
\end{equation}

线

2․用途[]

\begin{equation}
\int =
\begin{subs}{b}
...
\end{subs}
\end{equation}

支撑

3․用途\lwavy\rwavy

\begin{equation}
\int =
\begin{subs}{w}
...
\end{subs}
\end{equation}

海浪

另外,如果你没有指定任何内容,它使用波浪线会很好

\begin{subs}
...
\end{subs}

仅供参考,这就是目前的硬编码方式:

\;\left \lwavy \:\begin{aligned}
{
...
}
\end{aligned}\;\right \rwavy \;

PS 不要介意截图上的那些随机内容,这只是为了演示。

答案1

不吸收内容也可以做到这一点。

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

% from https://tex.stackexchange.com/a/347545/4427
\DeclareFontFamily{OMX}{MnSymbolE}{}
\DeclareFontShape{OMX}{MnSymbolE}{m}{n}{
    <-6>  MnSymbolE5
   <6-7>  MnSymbolE6
   <7-8>  MnSymbolE7
   <8-9>  MnSymbolE8
   <9-10> MnSymbolE9
  <10-12> MnSymbolE10
  <12->   MnSymbolE12}{}
\DeclareFontShape{OMX}{MnSymbolE}{b}{n}{
    <-6>  MnSymbolE-Bold5
   <6-7>  MnSymbolE-Bold6
   <7-8>  MnSymbolE-Bold7
   <8-9>  MnSymbolE-Bold8
   <9-10> MnSymbolE-Bold9
  <10-12> MnSymbolE-Bold10
  <12->   MnSymbolE-Bold12}{}

\DeclareSymbolFont{mnlargesymbols}{OMX}{MnSymbolE}{m}{n}
\SetSymbolFont{largesymbols}{bold}{OMX}{MnSymbolE}{b}{n}

\DeclareMathDelimiter{\lwavy}{\mathopen}{mnlargesymbols}{'136}{mnlargesymbols}{'136}
\DeclareMathDelimiter{\rwavy}{\mathclose}{mnlargesymbols}{'136}{mnlargesymbols}{'136}

\ExplSyntaxOn
\NewDocumentEnvironment{subs}{O{wave}}
 {
  \left
  \str_case:nn { #1 }
   {
    {line}{|}
    {brack}{[}
    {wave}{\lwavy}
   }
  \begin{aligned}
 }
 {
  \end{aligned}
  \right
  \str_case:nn { #1 }
   {
    {line}{|}
    {brack}{]}
    {wave}{\rwavy}
   }
 }
\ExplSyntaxOff

\begin{document}

\[
\int=\begin{subs}
& y=5+x && dt=dx \\
& dy=dx && \text{I love unicorns} \\
& \text{My text here} && z=\sqrt{y-5x^2}
\end{subs}
\]

\[
\int=\begin{subs}[line]
& y=5+x && dt=dx \\
& dy=dx && \text{I love unicorns} \\
& \text{My text here} && z=\sqrt{y-5x^2}
\end{subs}
\]

\end{document}

在此处输入图片描述

相关内容