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 '16, 21:33

cis's gravatar image

cis
9.5k95459491
Akzeptiert-Rate: 29%

ok, tut. ---

(15 Sep '16, 00: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 '16, 07: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 '16, 23:07

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 18 Sep '16, 22:41

cis's gravatar image

cis
9.5k95459491

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×5

gestellte Frage: 14 Sep '16, 21:33

Frage wurde gesehen: 5,413 Mal

zuletzt geändert: 18 Sep '16, 22:41