Wie verwendet man geschweifte Klammern in \newenvironment?

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Wie verwendet man geschweifte Klammern in \newenvironment?

von Rolli » Mi 15. Feb 2017, 14:15

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

von u_fischer » Mi 15. Feb 2017, 10:22

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

von Johannes_B » Mi 15. Feb 2017, 09:48

Schau dir mal das Paket tcolorbox an.

Wie verwendet man geschweifte Klammern in \newenvironment?

von Rolli » Mi 15. Feb 2017, 08:54

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}

Nach oben