Como fazer um ambiente “ou” especial?

Como fazer um ambiente “ou” especial?

Gostaria de criar um ambiente que fosse feito de uma linha vertical à esquerda e um "ou" automático inserido a cada quebra de linha. Seu objetivo seria em um contexto matemático.

Ficaria assim:

modelo

Responder1

Você pode usar o tcolorboxpacote para criar um ambiente que crie uma linha vertical.

\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}

insira a descrição da imagem aqui

Responder2

Você poderia usar um ambiente semelhante a um array e adicionar oouantes de cada elemento que não seja o primeiro, não é muito limpo, mas funciona.

    \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}

Responder3

Eu encontrei uma solução sozinho:

\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}

Dá o seguinte resultado:

resultado

(O texto está em francês, mas não importa)

Responder4

Com a ajuda de um colega de classe, consegui fazer uma nova solução que se parece ainda mais com o que eu queria originalmente. Ele usa um comando em vez de um ambiente, mas é muito melhor!

Aqui está o código:

\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}}

Pode-se usá-lo de forma muito simples da seguinte maneira:

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

informação relacionada