定制案例环境

定制案例环境

我通常使用包cases中的环境amsmath-它非常好:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[\begin{cases}
    x+y=2 \\
    2x+3y=4
\end{cases}\]
\end{document}

在此处输入图片描述

图片 1


问题 1

然而,在我的国家,这个符号看起来并不是这样的。它更像是这个——括号略有变化:

是否可以重新定义cases环境,使其像这样:

在此处输入图片描述

图2

在此处输入图片描述

图 3

现在说实话我不知道该怎么做。


问题2

除此之外,{我们还有[。现在,我[cases环境中使用类似的gathered,也在包中amsmath

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\left[\begin{gathered}
    x=3\hfill\\
    x=4\hfill
\end{gathered}\right.
\]
\end{document}

在此处输入图片描述

图4

然而,像问题 1上面,我想要得到这种方括号:

在此处输入图片描述

图5

怎么做?抱歉,我一点儿头绪都没有 :(

问题 2.1

此外,在我的国家,人们更喜欢这样

在此处输入图片描述

图6

与上述问题类似,我发现有很多困难并且失败了。

对于任何问题的任何帮助都将不胜感激!


重要的提示

图 2、3、5、6 是用 Windows Paint 做的。由于 Euclid 字体的行间距较大,所以图片中的行间距比我想要的要大。但是我想要的间距只是 normal,没有那么大。在cases这种情况下 normal 的默认间距就很合适。

答案1

使用起来相对简单\tikzmatrix

我创建了两个新的环境(mycurlymybrack),并带有一个可选参数来指示方程式的数量(如果方程式多于两个)。

代码

\usepackage{expl3}
\ExplSyntaxOn
\int_new:N \g__prg_map_int 
\ExplSyntaxOff

仅当您遇到如下错误时才需要:

! Undefined control sequence.
<argument> \g__prg_map_int

(感谢 Joseph Wright解决问题

\documentclass[12pt,fleqn]{article}
\usepackage{amsmath}
\usepackage{environ}
\usepackage{tikz}
\usetikzlibrary{matrix}
% the following code is needed if you got the error 
% ! Undefined control sequence.
% <argument> \g__prg_map_int 
% see here 
%https://tex.stackexchange.com/questions/463282/undefined-control-sequence-g-prg-map-int
% otherwise, leave it out
\usepackage{expl3}
\ExplSyntaxOn
\int_new:N \g__prg_map_int 
\ExplSyntaxOff
% end of temporary code
\usetikzlibrary{decorations.pathreplacing, calligraphy, calc}
\tikzset{
    mymatr/.style={
        matrix of math nodes, 
        column sep = 10pt,
        nodes={
            anchor=text, 
            inner xsep=3pt
        }, 
        inner xsep=7pt,
        ampersand replacement={\&},
    }
}
\NewEnviron{mybrack}[1][2]{%
    \begin{tikzpicture}[baseline=(mybase)]
    \matrix[mymatr](A){
        \BODY\\
    };
    \coordinate (mybase) at ($(A-1-1.text)!.5!(A-#1-1.text)$);
    \draw[thick]([xshift=-6.4pt]A-1-1.west) -- +(4.4pt,0);
    \foreach[evaluate=\mystep as \prev using int(\mystep-1)] \mystep in 
    {2,...,#1}{
        \draw[thick]([xshift=-6pt]A-\prev-1.west) -- 
        ([xshift=-6pt]A-\mystep-1.west) -- + (4pt,0);
    }
    \end{tikzpicture}
}

\NewEnviron{mycurly}[1][2]{%
    \begin{tikzpicture}[baseline=(mybase)]
    \matrix[mymatr](A){
        \BODY\\
    };
    \coordinate (mybase) at ($(A-1-1.text)!.5! (A-#1-1.text)$); 
    \draw[line width=.9pt,decorate,decoration={calligraphic 
    brace,amplitude=4pt, mirror}](A-1-1.west) -- (A-#1-1.west);
    \end{tikzpicture}
}


\begin{document}
    Environment which puts curly braces:
    \[
    \begin{mycurly}
    \frac{3}{4}x+y=2 \\
    e^{2x}+3y=4
    \end{mycurly}
    \]
    if you have more than 2 equation, you have to indicate their number in the 
    optional argument:
    \[
    \begin{mycurly}[3]
    \frac{3}{4}x+y=2 \\
    e^{2x}+3y=4\\
    \sqrt{x+3}+5z=0
    \end{mycurly}
    \]
    \[
    \begin{mycurly}[4]
    x+y=2 \\
    2x+3y=4 \\
    3x+5z=0 \\
    \dfrac{7x}{x+9}+y+z=2
    \end{mycurly}
    \]
    Environment which puts square brackets:
    \[
    \begin{mybrack}
    \frac{3}{4}x+y=2 \\
    e^{2x}+3y=4
    \end{mybrack}
    \]
    if you have more than 2 equation, you have to indicate their number in the 
    optional argument:
    \[
    \begin{mybrack}[3]
    \frac{3}{4}x+y=2 \\
    e^{2x}+3y=4\\
    \sqrt{x+3}+5z=0
    \end{mybrack}
    \]
    \[
    \begin{mybrack}[4]
    x+y=2 \\
    2x+3y=4 \\
    3x+5z=0 \\
    \dfrac{7x}{x+9}+y+z=2
    \end{mybrack}
    \]
    Please note you have to use \verb|\&| instead of \verb|&| here:
    \[
    f(x) = 
    \begin{mycurly}[4]
    \dfrac{1}{3}x+y=2 \& \text{if }x<0 \\
    2x+3y=4 \& \text{if }0\leq x<1\\
    3x+5z=0 \& \text{if }1\leq x<2\\
    \dfrac{7x}{x+9}+y+z=2 \& \text{if } x>2
    \end{mycurly}
    \]
    \[
    f(x) = 
    \begin{mycurly}[3]
    2x+3y=4 \& \text{if } x<1\\
    3x+5z=0 \& \text{if }1\leq x<2\\
    \dfrac{7x}{x+9}+y+z=2 \& \text{if } x>2
    \end{mycurly}
    \]
    It works also with the bracket type (even if I don't know if it is used in 
    your country):
    \[
    f(x) = 
    \begin{mybrack}[4]
    \dfrac{1}{3}x+y=2 \& \text{if }x<0 \\
    2x+3y=4 \& \text{if }0\leq x<1\\
    3x+5z=0 \& \text{if }1\leq x<2\\
    \dfrac{7x}{x+9}+y+z=2 \& \text{if } x>2
    \end{mybrack}
    \]
    \[
    f(x) = 
    \begin{mybrack}[3]
    2x+3y=4 \& \text{if } x<1\\
    3x+5z=0 \& \text{if }1\leq x<2\\
    \dfrac{7x}{x+9}+y+z=2 \& \text{if } x>2
    \end{mybrack}
    \]
\end{document}

在此处输入图片描述 在此处输入图片描述

相关内容