优化此案例命令以用于内联表达式

优化此案例命令以用于内联表达式

我想优化以下命令

\documentclass{standalone}
\usepackage{amsmath}
\newcommand{\casos}[2]{\left.\begin{cases}
                        #1 \\ #2
                       \end{cases} \mkern-18mu \right\}}

\begin{document}
\ldots demzufolge ist die Ableitung von $ \casos{\sin \theta}{ \cos \theta}$ durch
\[\frac{d}{d\theta} \casos{\sin \theta}{ \cos \theta}=\casos{+\cos \theta}{-\sin\theta}\]
gegeben.
\end{document}

我想让花括号变得更细(更薄?)(这里可能看起来还行,但如果只使用一个字符,括号似乎有点大)。此外,内联版本并不比等式中的版本小。但到目前为止,对我来说,实现它的唯一方法是cases,如您所见。

在此处输入图片描述

答案1

在这里我做了一些战略性改变。我放弃了环境。我使用(from包)cases构建了堆叠数学。\stackanchorstackengine

我使用\stretchleftright{}{}{}宏(来自包)通过拉伸和字形scalerel来制作括号,但要遵守最大纵横比的限制。\{\}

为了实现内联(文本样式)和显示样式的不同外观,我使用了来\mathchoice选择适当的形式。

在 MWE 中,我展示了两个版本,给出了最大括号纵横比和内联堆叠间隙的变化。我制作了版本\textstyle\small尽管也许\footnotesize可能更可取。

\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\stackMath

\usepackage{scalerel}
\def\maxaspect{300}
\def\shortgap{1pt}
% \displaystyle VERSION
\newcommand{\dcasos}[2]{\def\stacktype{L}\strutlongstacks{T}%
  \stretchleftright[\maxaspect]{\{}{\stackanchor{#1}{#2}}{\}}}
%%% AN ALTERNATIVE USING TRADITIONAL \left \right SYNTAX FOR \displaystyle
%%\newcommand{\dcasos}[2]{\def\stacktype{L}\strutlongstacks{T}\left\{\stackanchor{#1}{#2}\right\}}
% \textstyle VERSION
\newcommand{\tcasos}[2]{\def\stacktype{S}\setstackgap{S}{\shortgap}\small%
  \stretchleftright[\maxaspect]{\{}{\stackanchor{#1}{#2}}{\}}}
\newcommand\casos[2]{\mathchoice{\dcasos{#1}{#2}}
                                {\tcasos{#1}{#2}}
                                {\tcasos{#1}{#2}}
                                {\tcasos{#1}{#2}}}

\begin{document}
\ldots demzufolge ist die Ableitung von $ \casos{\sin \theta}{ \cos \theta}$ durch
\[\frac{d}{d\theta} \casos{\sin \theta}{ \cos \theta}=\casos{+\cos \theta}{-\sin\theta}\]
gegeben.

\def\maxaspect{200}
\def\shortgap{3pt}
\ldots demzufolge ist die Ableitung von $ \casos{\sin \theta}{ \cos \theta}$ durch
\[\frac{d}{d\theta} \casos{\sin \theta}{ \cos \theta}=\casos{+\cos \theta}{-\sin\theta}\]
gegeben.
\end{document}

在此处输入图片描述

答案2

综合 Zarko 和 Steven 的想法:

\documentclass{article}
\usepackage{mathtools}

\newcommand{\casos}[3][c]{{\mathpalette\docasos{{#1}{#2}{#3}}}}

\newcommand{\docasos}[2]{\dodocasos{#1}#2}

\newcommand{\dodocasos}[4]{%
  \left\{%
  \begin{\ifx\displaystyle#1\else small\fi matrix*}[#2]
    #3\\
    #4
  \end{\ifx\displaystyle#1\else small\fi matrix*}
  \right\}%
}

\begin{document}

demzufolge ist die Ableitung von $\casos{\sin\theta}{\cos\theta}$ durch
\[
\frac{d}{d\theta} \casos{\sin\theta}{\cos\theta}=\casos{\cos\theta}{-\sin\theta}
\]
gegeben.

demzufolge ist die Ableitung von $\casos[l]{\sin\theta}{\cos\theta}$ durch
\[
\frac{d}{d\theta} \casos[l]{\sin\theta}{\cos\theta}=\casos[l]{\cos\theta}{-\sin\theta}
\]
gegeben.

demzufolge ist die Ableitung von $\casos[r]{\sin\theta}{\cos\theta}$ durch
\[
\frac{d}{d\theta} \casos[r]{\sin\theta}{\cos\theta}=\casos[r]{\cos\theta}{-\sin\theta}
\]
gegeben.

\end{document}

在此处输入图片描述

答案3

我不知道是否存在在in-line math和中具有不同布局的环境displaymath,因此我建议定义两个命令,一个 -- \cases -- 用于内联使用,另一个 -- \Cases -- 用于 中。我建议使用l 和和 而displaymath不是:casesmathtooBmatrix*Bsmallmatrix*

\documentclass{article}
    \usepackage{mathtools}
\newcommand{\Casos}[2]{\begin{Bmatrix*}[r]
                        #1 \\ #2
                       \end{Bmatrix*}}
\newcommand{\casos}[2]{\begin{Bsmallmatrix*}[r]
                        #1 \\ #2
                       \end{Bsmallmatrix*}}

\usepackage[active,textmath,floats,tightpage]{preview}
    \setlength\PreviewBorder{1em}

    \begin{document}
%---------------------------------------------------------------%
\begin{figure}
    \ldots demzufolge ist die Ableitung von $\casos{\sin\theta}{\cos\theta}$ durch
    \[
\frac{d}{d\theta} \Casos{\sin\theta}{\cos\theta}=\Casos{\cos\theta}{-\sin\theta}
    \]
    gegeben.
\end{figure}
%---------------------------------------------------------------%
\end{document}

由于编译您的代码时出现错误,我将我的 MWE 更改为文章并使用预览。 在此处输入图片描述

编辑: 在 Steven 回答之前,我并不知道 \mathchoice。有了它,我的建议可以简化为:

\documentclass{article}
    \usepackage{mathtools}
    \newcommand{\displaycasos}[2]{\begin{Bmatrix*}[r]
                            #1 \\ #2
                           \end{Bmatrix*}}
    \newcommand{\textcasos}[2]{\begin{Bsmallmatrix*}[r]
                            #1 \\ #2
                           \end{Bsmallmatrix*}}
    \newcommand\casos[2]{\mathchoice{\displaycasos{#1}{#2}}
                                    {\textcasos{#1}{#2}}
                                    {\textcasos{#1}{#2}}
                                    {\textcasos{#1}{#2}}}

       \begin{document}
        \ldots demzufolge ist die Ableitung von $\casos{\sin\theta}{\cos\theta}$ durch
        \[
    \frac{d}{d\theta} \casos{\sin\theta}{\cos\theta}=\casos{\cos\theta}{-\sin\theta}
        \]
        gegeben.
    \end{document}

相关内容