Wieso kann ich

Open in Online-Editor
\newcommand{\EigeneUmgebungen}{defi,satz,bsp}
 \newcommand{\StandardUmgebungen}{figure,table,equation}

nicht in der Form

Open in Online-Editor
\foreach \Umgebung in {\EigeneUmgebungen, \StandardUmgebungen}{...}

anwenden?

Open in Online-Editor
\documentclass{scrreprt}
\usepackage[ngerman]{babel}

\usepackage{xpatch}

% AMS-Mathepakete und eigene theorem-Umgebungen
\usepackage{amsmath, amssymb, amsfonts}
  \newtheorem{defi}{Definition}[chapter]
  \newtheorem{satz}[defi]{Satz}
  \newtheorem{bsp}[defi]{Beispiel}

\newcommand{\EigeneUmgebungen}{defi,satz,bsp}
\newcommand{\StandardUmgebungen}{figure,table,equation}
\usepackage{pgffor} % Schleifen

\foreach \Umgebung in {\EigeneUmgebungen, \StandardUmgebungen}{%% 
  \BeforeBeginEnvironment{\Umgebung}{Eine Umgebung:}
}
\begin{document}

\begin{defi}[Eine Definition]
$x:=y$
\end{defi}

\begin{satz}[Ein Satz]
$a^2 + b^2 = c^2$
\end{satz}

\begin{table}
\begin{tabular}{c|c|c}
A & B & C \\ \hline
X & Y & Z \\ 
\end{tabular}
\end{table}

\end{document}

gefragt 14 Sep, 15:33

cis's gravatar image

cis
5.4k860169
Akzeptiert: 68%

ok, tut. ---

(14 Sep, 18:09) cis
1

Beachte auch, dass \foreach die auszuführenden Anweisungen laut Anleitung mit einer Gruppe umschließt. Übrigens bietet etoolbox (das wird auch von xpatch geladen) selbst ebenfalls Listenverarbeitungsbefehle.

(15 Sep, 01:56) saputello

Weil da explizite Klammern stehen. \foreach expandiert die Liste nur, wenn man \forach in \list verwendet, wobei \def\list{1,2,3}. In deinem Fall also \edef\list{\EigeneUmgebungen, \StandardUmgebungen}.

Ganzes Bsp.:

Open in Online-Editor
\documentclass{scrreprt}
\usepackage[ngerman]{babel}

\usepackage{xpatch}

% AMS-Mathepakete und eigene theorem-Umgebungen
\usepackage{amsmath, amssymb, amsfonts}
  \newtheorem{defi}{Definition}[chapter]
  \newtheorem{satz}[defi]{Satz}
  \newtheorem{bsp}[defi]{Beispiel}

\usepackage{pgffor} % Schleifen
\def\list{}
\def\EigeneUmgebungen{defi,satz,bsp}
\def\StandardUmgebungen{figure,table,equation}

\edef\list{\EigeneUmgebungen, \StandardUmgebungen}
\foreach \Umgebung in \list {%% 
  \BeforeBeginEnvironment{\Umgebung}{Eine Umgebung:}
}%%
\begin{document}

\begin{defi}[Eine Definition]
$x:=y$
\end{defi}

\begin{satz}[Ein Satz]
$a^2 + b^2 = c^2$
\end{satz}

\begin{table}[h]
\begin{tabular}{c|c|c}
A & B & C \\ \hline
X & Y & Z \\ 
\end{tabular}
\end{table}

\end{document}
Permanenter link

beantwortet 14 Sep, 17:07

Henri's gravatar image

Henri
10.0k31730

bearbeitet 18 Sep, 16:41

cis's gravatar image

cis
5.4k860169

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×1

Frage gestellt: 14 Sep, 15:33

Frage wurde angeschaut: 228 Mal

Zuletzt aktualisiert: 18 Sep, 16:41

Verwandte Fragen