Ich erhalte Fehlermeldungen bei Verwendung von

Open in Online-Editor
\AtBeginEnvironment{\Environment}{\begin{tcolorbox}}
\AtEndEnvironment{\Environment}{\end{tcolorbox}}

Was muss ich anders machen?

Händisch geht es, z.B.

Open in Online-Editor
\begin{table}
\begin{tcolorbox}
....
\end{tcolorbox}
\end{table}

Ganzes Dokument

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

\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{tcolorbox}
\tcbset{colframe=gray, colback=yellow!20,}

\usepackage{pgffor} % Schleifen
\usepackage{etoolbox}
\foreach \Environment in {figure, table}{%% 
\BeforeBeginEnvironment{\Environment}{\newpage}
% Problem hier .....
\AtBeginEnvironment{\Environment}{\begin{tcolorbox}}
\AtEndEnvironment{\Environment}{\end{tcolorbox}}
% .....
\AfterEndEnvironment{\Environment}{\clearpage}
}%%

\begin{document}

\begin{figure}\label{fig:Bild}
\centering
\includegraphics[scale=0.6]{example-image-a}
\caption{Bildunterschrift}
\end{figure}

\begin{table}
\begin{tcolorbox}
\label{tab:Tabelle}
\centering\Huge
\caption{Tabellen\"uberschrift}
\begin{tabular}{c|c|c}
A & B & C \\ \hline
X & Y & Z \\ 
\end{tabular}
\end{tcolorbox}
\end{table}

\end{document}

gefragt 12 Sep, 20:51

cis's gravatar image

cis
5.4k860169
Akzeptiert: 68%

bearbeitet 13 Sep, 01:57

saputello's gravatar image

saputello
18.4k22352


\AtBeginEnvironment führt den zusätzlichen Code nach dem Öffnen der zugehörigen Gruppe aber vor dem \begin-Code der Umgebung aus. Du hast hier also wieder die Gleitumgebung in der tcolorbox statt umgekehrt. Siehe float und blend into etc. in der tcolorbox-Anleitung wie das mit den Gleitumgebungen korrekt funktioniert, beispielsweise so:

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

\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{tcolorbox}
\tcbset{colframe=gray, colback=yellow!20,}

\newtcolorbox[blend into=figures]{boxedfigure}[2][]{float=tbp,title={#2},capture=hbox,every float=\centering}

\begin{document}

\begin{boxedfigure}[label=fig:Bild]{Bildunterschrift}
\includegraphics[scale=0.6]{example-image-a}
\end{boxedfigure}

\end{document}

gleitende tcolorbox-Umgebung

Eine andere Möglichkeit besteht darin, die interne @foat-Umgebung von LaTeX zu patchen, die im einspaltigen Satz von allen Gleitumgebungen verwendet wird. Dabei ist aber zu beachten, dass diese Umgebung in der Regel intern nicht mit \begin{@float} und \end{@float} aufgerufen wird, sondern mit \@float und \end@float und daher direkt diese Anweisungen geändert werden müssen:

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

\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{tcolorbox}
\tcbset{colframe=gray, colback=yellow!20,}

\usepackage{etoolbox}
\makeatletter
\pretocmd{\@float}{\newpage}{}{}
% Problem hier .....
\apptocmd{\@float}{\begin{tcolorbox}}{}{}
\pretocmd{\end@float}{\end{tcolorbox}}{}{}
% .....
\apptocmd{\end@float}{\clearpage}{}{}
\makeatother

\begin{document}

\begin{figure}\label{fig:Bild}
\centering
\includegraphics[scale=0.6]{example-image-a}
\caption{Bildunterschrift}
\end{figure}

\begin{table}
\begin{tcolorbox}
\label{tab:Tabelle}
\centering\Huge
\caption{Tabellen\"uberschrift}
\begin{tabular}{c|c|c}
A & B & C \\ \hline
X & Y & Z \\ 
\end{tabular}
\end{tcolorbox}
\end{table}

\end{document}

gepatchte Gleitumgebung in einer tcolorbox

Dass in diesem Beispiel die Tabelle nun doppelt umrandet ist, ist korrekt, da hier nun eine explizite tcolorbox in der impliziten tcolorbox der Gleitumgebung @float gesetzt wird.

Permanenter link

beantwortet 13 Sep, 01:36

saputello's gravatar image

saputello
18.4k22352

bearbeitet 13 Sep, 01:58

Ahhhja... Was immer Du da gezaubert hast beim 2. Beispiel, es scheint zu funktionieren. :() Zumindest bei figure- und table-Umgebungen (welche ich im MWE als Bsp. genommen habe). Allerdings nicht bei Umgebungen des Typs \newtheorem{defi}{Definition}[chapter] - sehe ich das richtig?

Es wäre irgendwie praktisch gewesen, wenn etoolbox.sty etwas bereitgestellt hätte, was Befehle direkt nach \begin{<Umgebung>} <ALSO HIER> postitionieren würde.

(13 Sep, 11:11) cis

@cis: Auch für theorem-Umgebungen bietet tcolorbox eigene Befehle. Mit etoolbox kann man prinzipiell die Anweisungen, über die Umgebungen definiert sind per \apptocmd und \pretocmd erweitern, wie ich das für @float gemacht habe. Allerdings kann etoolbox (und auch das bessere xpatch) nicht jede Anweisung/Umgebung so einfach erweitern. Wenn eine Anweisung intern eine andere aufruft und die Auswertung der Argumente diesen überlässt, dann funktioniert das nicht. Das ist genau der Grund, warum man nicht einfach \figure erweitern kann, sondern \@float erweitern muss …

(13 Sep, 12:11) saputello

@cis: Diese Begrenzung von \apptocmd und \xapptocmd wurde übrigens bereits in »Warum funktioniert \xapptocmd{\part}{\KOMAoptions{open=any}}{}{} nicht?« behandelt.

(13 Sep, 12:14) saputello

Puh, wird das kompliziert (für mich). Ich wollte egtl. nicht mit tcolorbox Theoreme erzeugen, sondern vorhandene amsmath-Theoreme farbig hinterlegen (und das muss für mein Projekt zwingend automatisiert bzw. globalisiert sein), so wie es beim 2. MWE mit tables und figures gemacht wird.

(13 Sep, 13:35) cis
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:

×27
×5
×3

Frage gestellt: 12 Sep, 20:51

Frage wurde angeschaut: 218 Mal

Zuletzt aktualisiert: 13 Sep, 14:24