Как создать особую среду «или»?

Как создать особую среду «или»?

Я хотел бы создать среду, которая будет состоять из вертикальной линии слева и автоматического "или", вставленного в каждый разрыв строки. Ее цель будет в контексте математики.

Это будет выглядеть так:

модель

решение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}\]

Связанный контент