Wie erstelle ich eine spezielle „oder“-Umgebung?

Wie erstelle ich eine spezielle „oder“-Umgebung?

Ich möchte eine Umgebung erstellen, die aus einer vertikalen Linie auf der linken Seite besteht und bei jedem Zeilenumbruch automatisch ein „oder“ eingefügt wird. Der Zweck wäre ein mathematischer Kontext.

Es würde so aussehen:

Modell

Antwort1

Sie können das tcolorboxPaket verwenden, um eine Umgebung zu erstellen, die eine vertikale Linie erstellt.

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

Bildbeschreibung hier eingeben

Antwort2

Sie könnten eine array~ähnliche Umgebung verwenden und dasodervor jedem Element, das nicht das erste ist, nicht sehr sauber, aber es funktioniert.

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

Antwort3

Ich habe selbst eine Lösung gefunden:

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

Es ergibt sich folgendes Ergebnis:

Ergebnis

(Der Text ist auf Französisch, aber das spielt keine Rolle)

Antwort4

Mit Hilfe eines Klassenkameraden konnte ich eine neue Lösung erstellen, die noch mehr meinen ursprünglichen Wünschen entspricht. Sie verwendet zwar einen Befehl statt einer Umgebung, ist aber viel besser!

Hier ist der Code:

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

Man kann es ganz einfach wie folgt verwenden:

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

verwandte Informationen