内联括号,类似于排列和二项式,但对齐

内联括号,类似于排列和二项式,但对齐

我经常遇到需要在域中的两个集合上定义函数的情况。我想创建一个命令\newcommand{\func}[4]{...},使行内括号,显示了函数如何映射两组点。

到目前为止,我已经做到了这一点

在此处输入图片描述

通过命令$\binom{\tiny(x,s,t)\mapsto(x,s(1-t))}{\tiny(y,t)\mapsto y~~~~~~~~~}。如你所见,我遇到了问题结盟两者\mapsto以及尺寸两个外侧括号。

有人能帮我写这样的命令吗?我尝试用内联表,但它太大了。最好(但不是必须)两个外括号都响应\leftand\right\big

评论:这是我当前的解决方案(通过没有对齐的 \binom)的样子:

在此处输入图片描述

任何产生更大括号的解决方案都是不可接受的。唯一缺少的是对齐。

答案1

理想情况下,应该有一个aligned间距较小的版本。不过我还没听说有这样的实现。

\mathllap这是一个使用和psmallmatrix*的非自动解决方案mathtools

\documentclass{article}
\usepackage{mathtools}
\begin{document}
abc 
$\begin{psmallmatrix*}[l]
    (x,s,t)                           \mapsto (x,s(1-t)) \\ 
    \phantom{(x,s,t)}\mathllap{(y,t)} \mapsto y
\end{psmallmatrix*}$
abc
\end{document}

结果

答案2

这是一个基于 Tobi 答案的选项。现在,该命令根据第一个(可选参数)提供三种不同的大小:没有可选参数时,它可以用于内联表达式;使用Bigbigg作为可选参数,您可以增加大小并在显示的表达式中使用该命令。

\documentclass[12pt,a4paper]{scrartcl}
\usepackage{ifthen}
\usepackage{amsmath,mathtools}

% default values
\newcommand\OpenS{\bigl(}
\newcommand\CloseS{\bigr)}
\newcommand\Vspace{-0.85em}
\newcommand\Msize{\scriptstyle}

\newcommand{\func}[5][]{%
  \ensuremath{% 
    \ifthenelse{\equal{#1}{Big}}
      {\renewcommand\OpenS{\Bigl(}%
        \renewcommand\CloseS{\Bigr)}%
        \renewcommand\Vspace{-0.55em}%
        \renewcommand\Msize{\textstyle}}%
      {\ifthenelse{\equal{#1}{bigg}}%
        {\renewcommand\OpenS{\biggl(}%
          \renewcommand\CloseS{\biggr)}%
          \renewcommand\Vspace{-0.2em}%
          \renewcommand\Msize{\displaystyle}}%
          {}}
          \OpenS%
            \begin{aligned}\Msize
            {\Msize#2} &\mapsto {\Msize#3}\\[\Vspace]
            {\Msize#4} &\mapsto {\Msize#5}
            \end{aligned}
        \CloseS%
    }%
}

\begin{document}
text text  text text t text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text text text $k(g)=\func{(x,s,t)}{(x,s(t-1))}{(y,t)}{y}$ text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  
\[
k(g)=\func[Big]{(x,s,t)}{(x,s(t-1))}{(y,t)}{y}
\]
text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text 
\[
k(g)=\func[bigg]{(x,s,t)}{\big(x,s(t-1)\big)}{(y,t)}{y}
\]
text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text text  text text 

\end{document}

结果:

答案3

这是 Gonzalo 答案的精简版本

\makeatletter
\newcommand{\ho@func}[8]{
  %#1 = opening delimiter
  %#2 = closing delimiter
  %#3 = vertical space 
  %#4 = size of symbols
  %#5 = top left
  %#6 = top right
  %#7 = bottom left
  %#8 = bottom right
  #1\vcenter{\halign{\hfil$##\mapsto{}$&$##$\hfil\cr
    #4#5&#4#6\cr\noalign{\vskip#3}#4#7&#4#8\cr}}#2}
\@namedef{ho@}{\ho@func{\bigl(}{\bigr)}{-1ex}{\scriptstyle}}
\@namedef{ho@Big}{\ho@func{\Bigl(}{\Bigr)}{-.2ex}{\textstyle}}
\@namedef{ho@bigg}{\ho@func{\biggl(}{\biggr)}{0ex}{\textstyle}}
\newcommand{\func}[1][]{\@nameuse{ho@#1}}
\makeatother

可选参数决定使用\func哪一个命令;该命令扩展为,后跟它所需的八个参数中的四个,接下来的四个在输入流中,它们作为的参数显示给用户。\ho@...\ho@...\ho@func\func

我和菲尔一样,永远不会用以下方式定义这样的东西\ensuremath:将数学公式放在它们所属的位置有助于限制语法错误。

注意:已编辑以直接使用\halign。示例文本可以与 Gonzalo 的答案相同,不需要额外的包。

答案4

这是使用 Xy-pic 的版本:

\documentclass[12pt]{article}
\usepackage[all,cmtip]{xy}

\newcommand{\func}[4]{
  \begingroup
  \let\objectstyle=\scriptstyle
  \ensuremath{
    \left(
      \vcenter{
        \xymatrix@R=0ex@C=1em{
          {#1} \ar@{|->}[r]& {#2}\\
          {#3} \ar@{|->}[r]& {#4}
        }
      }
    \right)
  }
  \endgroup
}

\begin{document}

Here we are in math mode: $\func{(x,y)}{x+y}{(s,t)}{s^{2}-t}$

Here we are not in math mode: \func{(x,s,t)}{(x,s(1-t))}{(y,t)}{y}

\end{document}

(我从来没想过使用\ensuremath,但我在@Tobi 的回答中看到了它。) 在此处输入图片描述

相关内容