Wie verwendet man geschweifte Klammern in \newenvironment?

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Wie verwendet man geschweifte Klammern in \newenvironment?

Beitrag von Rolli »

Hallo, hoffentlich kann mir jemand sagen, wo mein Denkfehler ist.

Ich möchte eine "bunte Textbox" über die ganze Textbreite haben, mit mehrzeiligem zentrierten Text. Siehe Code - das funktioniert ganz prima genau so, wie ich mir das vorgestellt habe.

Nun das Problem: Das möchte ich an vielen Stellen in meinem Dokument verwenden und deswegen versuche ich, dafür eine neue eigene Umgebung zu definieren. Dabei bin ich auf das Problem gestoßen, dass die fcolorbox offenbar selbst in einer fcolorbox-Umgebung geschweifte Klammern um das, was sie darstellen soll, braucht. Allerdings habe ich als Inhalt der fcolorbox-Umgebung ja nicht simplen Text, sondern meine minibox, bei der ich die Textlänge ja richtig berechnen muss (\textwidth - 2*\fboxsep - 2*\fboxrule).

Wie bringe ich die öffnende und die schließende geschweifte Klammer in meine \newenvironment-Definition? So wie ich das versuche (maskieren mit \) geht es jedenfalls nicht.

Bin dankbar für jeden Tipp! LG, Rolli

\documentclass {scrbook}

\usepackage{xcolor}
\usepackage{calc}

\setlength{\fboxrule}{0.5mm}
\setlength{\fboxsep}{3mm}

\begin{document}

   % Die nächsten 6 Zeilen bewirken genau das, was ich will
   \begin{fcolorbox}{red}{yellow} {
      \begin{minipage}[c]{\textwidth-7mm} 
         \centering
         Lorem ipsum dolor sit amet, \\ consetetur sadipscing elitr.
      \end{minipage} }
   \end{fcolorbox}  
   
   % Die nächsten 3 Zeilen sind der Versuch, das in eine eigene Umgebung zu packen
   \newenvironment{myEnv}%
   {\begin{fcolorbox}{red}{white} \{ \begin{minipage}[c]{\textwidth-7mm} \centering}%
   {\end{minipage} \} \end{fcolorbox}}%
   
   % Meine Idee war, dass die nächsten 3 Zeilen dasselbe machen, wie die 6 Zeilen oben:
   \begin{myEnv}
      Lorem ipsum dolor sit amet, \\ consetetur sadipscing elitr.
   \end{myEnv}       
   
\end{document}

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Schau dir mal das Paket tcolorbox an.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

\fcolorbox ist keine Umgebung. Dein Code funktioniert nur, weil \begin{fcolorbox} das gleiche tut wie \fcolorbox.

Ich würde auch empfehlen, tcolorbox zu benutzen. Abgesehen davon, wenn du derartige Inhalte für eine Box einsammeln willst, kannst du lrboxen oder das environ-Paket benutzen.



\documentclass {scrbook}

\usepackage{xcolor}
\usepackage{calc}

\setlength{\fboxrule}{0.5mm}
\setlength{\fboxsep}{3mm}

\begin{document}

 
   \fcolorbox{red}{yellow} {%
      \begin{minipage}[c]{\textwidth-7mm}
         \centering
         Lorem ipsum dolor sit amet, \\ consetetur sadipscing elitr.
      \end{minipage}}
   

  
   \newsavebox\mycolorbox
   \newenvironment{myEnv}
   {%
    \begin{lrbox}{\mycolorbox}%
    \begin{minipage}[c]{\textwidth-7mm} \centering
   }%
   {%
    \end{minipage}\end{lrbox}%
    \fcolorbox{red}{yellow}{\usebox\mycolorbox}%
   }

   % Meine Idee war, dass die nächsten 3 Zeilen dasselbe machen, wie die 6 Zeilen oben:
   \begin{myEnv}
      Lorem ipsum dolor sit amet, \\ consetetur sadipscing elitr.
   \end{myEnv}

\end{document}

Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Beitrag von Rolli »

Johannes_B: Danke Dir für den Tipp. Als ziemlicher Neuling kennt man halt nur einen Bruchteil der verfügbaren Pakete (ich arbeite seit 2 Wochen daran, eines meiner alten WORD-Skripten mit ca. 150 Seiten und hunderten mathematischen Formeln in LaTeX zu bringen und habe vor 2 Wochen zum ersten Mal "\begin{document}" auf meiner Tastatur eingegeben).

u_fischer: Danke Dir für die Erklärung. So ist es klar, dass das nicht funktionieren kann. Du hast mir eine schlaflose Nacht erspart!

Vielen Dank Euch nochmals - Rolli

Antworten