如何创建一个特殊的“或”环境?

如何创建一个特殊的“或”环境?

我想创建一个由左侧的垂直线和在每个换行符处自动插入的“或”组成的环境。其用途是数学环境。

它看起来像这样:

模型

答案1

您可以使用该tcolorbox包来创建一个创建垂直线的环境。

\documentclass[a4paper]{article}
\usepackage[most]{tcolorbox}
% \usepackage{pgfplots}


\newtcolorbox{env}{
        enhanced,
        breakable, % This make the box breakable
        boxrule=0pt,
        frame hidden,
        borderline west={2pt}{0pt}{black}, % this create the line
        colback=white, % The background color,
        math upper,
        hbox,
        center
    }

\begin{document}
 Text text text
    \begin{env}
        \int_{-\infty}^{\infty}f(x)\delta(x-a)dx = f(a)
    \end{env}

\end{document}

在此处输入图片描述

答案2

您可以使用类似数组的环境并添加或者在每个非第一个元素之前,虽然不是很干净,但它有效。

    \documentclass[a4paper]{article}

    \usepackage{ifthen}
    \newcounter{orcounter}

    \newenvironment{orlist}{%
      \noindent\begin{tabular*}{\textwidth}{|l}
      \setcounter{orcounter}{0}
    }{%
     \end{tabular*}
    }

    \newcommand{\oritem}[1]{%
      \ifthenelse{\equal{\theorcounter}{0}}{\hspace{-1em}}{\\ \textbf{or}\\}
      #1\stepcounter{orcounter}
    }

    % -- Usage Example
    \begin{document}

    \begin{orlist}
      \oritem{example 1}
      \oritem{example 2}
    \end{orlist}

    \end{document}

答案3

我自己找到了一个解决方案:

\documentclass[a4paper]{article}

\newenvironment{ouenv}
{\left\lvert\begin{array}{l}}
{\end{array}\right.}

\begin{document}
\[\begin{ouenv}G\text{ abélien} \\ \text{ou} \\ I=\ensvide\end{ouenv}\]
\end{document}

结果如下:

结果

(文本是法语,但这并不重要)

答案4

在同学的帮助下,我能够做出一个新的解决方案,它看起来更像我最初想要的。它使用命令而不是环境,但效果要好得多!

以下是代码:

\newcounter{orcounter}

\newenvironment{orlist}
{
\begin{array}{|l}
\setcounter{orcounter}{0}
}
{
\end{array}
}

\newcommand{\oritem}[1]{%
\ifthenelse{\theorcounter<1}{}{\\ \text{ou} \\}#1\stepcounter{orcounter}
}

\NewDocumentCommand{\orenv}{>{\SplitList{\\}}m}{%
\begin{orlist}\ProcessList{#1}{\oritem}\end{orlist}}

可以非常简单地使用它,如下所示:

\[\orenv{G\text{ abélien} \\ I=\ensvide}\]

相关内容