Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Umrandung in \newenvironment

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.07.2008
    Beiträge
    35

    Cool Umrandung in \newenvironment

    Ich habe mir eine kleine Umgebung gebastelt zur eindrücklicheren Darstellung von Problempunkten. Als hoffentlich lauffähiges Beispiel habe ich meine Bastelei angehängt. Nun wird allerdings die umrahmte Box über die gesamte Seitenbreite gezogen. Alle Versuche die Box in ihrer Breite á la \parbox usw. zu begrenzen sind bisher gescheitert. Es gibt ja etliche Möglichkeiten, nur hat bis jetzt nichts funktioniert.
    Aber vielleicht weiß hier jemand Rat, wie ich dieses simple Problem löse.



    Code:
    \documentclass[pdftex,a4paper, 12pt]{scrbook}
    \usepackage{xcolor}
    \usepackage{framed}
    
    \newenvironment{fshaded}{%
    \def\FrameCommand{\fcolorbox{framecolor}{shadecolor}}%
    \MakeFramed {\FrameRestore}}%
    {\endMakeFramed}
    
    %----Zähler der Umgebungen
    \newtheorem{Problem}{Problem}
    
    %----neuer Befehl wird definiert
    \newenvironment{problem}[1][] 
    {\definecolor{shadecolor}{rgb}{0.9,0.3,0.3}%
    \definecolor{framecolor}{rgb}{0,0,0}% 
    \setlength{\fboxrule}{2pt}
    \begin{fshaded}\begin{Problem}[#1]}{\end{Problem}\end{fshaded}}
    \begin{document}
    
    \begin{problem}[Unberechenbarkeit von Monstern]
    TEST TEST TEST
    \end{problem}
    
    \begin{problem}[Unberechenbarkeit von roten Monstern]
    TEST TEST TEST
    \end{problem}
    
    
    \begin{problem}[Unberechenbarkeit von blauen Monstern]
    TEST TEST TEST
    \end{problem}
    
    \end{document}
    MfG

    Scrattor

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Zitat Zitat von Scrattor Beitrag anzeigen
    Nun wird allerdings die umrahmte Box über die gesamte Seitenbreite gezogen.
    Hallo,

    wie breit soll die denn sein?

    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.07.2008
    Beiträge
    35
    Wär schön, wenn sich das dem jeweiligen Problempunkt anpassen ließe...

    Ansonsten einfach 1/2 Seite. Das dürfte in den meisten Fällen genügen.

    MfG

    Marco alias Scrattor ;-)

  4. #4
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534

    schattierte gerahmte Box bestimmter Breite

    Hallo Marco,

    hier ist eine Umprogrammierung der fshaded-Umgebung, so dass sie einen optionalen Parameter für die Länge versteht:
    Code:
    \newenvironment{fshaded}[1][\hsize]{%
    \def\FrameCommand{\fcolorbox{framecolor}{shadecolor}}%
    \MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    Du kannst sie wie bisher ohne Parameter verwenden, dann wird \hsize benutzt, oder Du rufst sie in der Weise auf:
    Code:
    \begin{fshaded}[.8\textwidth] ... \end{fshaded}
    Stefan

  5. #5
    Registrierter Benutzer
    Registriert seit
    14.07.2008
    Beiträge
    35

    Arrow Guter Vorschlag! Kompilierung bei mir fehlerhaft

    Vielen Dank. Das sieht in jedem Fall nach einer fundierten Lösung aus. Allerdings bekomm ich bei Verwendung des folgenden Codes kein nennenswertes Ergebnis. Die Längenangabe wird lediglich in die Box eingefügt...

    Code:
    \documentclass[pdftex,a4paper, 12pt]{scrbook}
    \usepackage{xcolor}
    \usepackage{framed}
    
    \newenvironment{fshaded}[1][\hsize]{%
    \def\FrameCommand{\fcolorbox{framecolor}{shadecolor}}%
    \MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}}%
    {\endMakeFramed}
    
    %\newenvironment{fshaded}{%
    %\def\FrameCommand{\fcolorbox{framecolor}{shadecolor}}%
    %\MakeFramed {\FrameRestore}}%
    %{\endMakeFramed}
    
    %----Zähler der Umgebungen
    \newtheorem{Problem}{Problem}
    
    %----neuer Befehl wird definiert
    \newenvironment{problem}[1][] 
    {\definecolor{shadecolor}{rgb}{0.9,0.3,0.3}%
    \definecolor{framecolor}{rgb}{0,0,0}% 
    \setlength{\fboxrule}{2pt}
    \begin{fshaded}\begin{Problem}[#1]}{\end{Problem}\end{fshaded}}
    \begin{document}
    
    \begin{problem}[Unberechenbarkeit von Monstern][60mm]
    TEST TEST TEST
    \end{problem}
    
    \begin{problem}[Unberechenbarkeit von roten Monstern]
    TEST TEST TEST
    \end{problem}
    
    \end{document}
    Natürlich kann ich in der Zeile
    Code:
     \newenvironment{fshaded}[1][\hsize]
    \hsize durch die gewünschte Breite ändern, bspw. 60mm. Allerdings führt es dann zu dem unerwünschten Ergebnis, dass ohne Zeilenumbruch über die Box hinaus geschrieben wird. Das ist in der ursprünglichen Version nicht der Fall. Der Fehler scheint in der Zeile
    Code:
    \MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}}
    zu stecken. Oder habe ich nur etwas übersehen?

    MfG

    Scrattor

  6. #6
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534

    Umgebung für Rahmen variabler Breite

    Hi Marco,

    oben habe ich nur die Parameterbehandlung für fshaded definiert. Wenn Du die Breite auch als Parameter für die problem-Umgebung haben möchtest, muss sie auch dort definiert werden. Da schon ein optionaler Parameter vorhanden ist, geht nur ein Pflichtparameter:
    Code:
    \newenvironment{problem}[2][] 
    {\definecolor{shadecolor}{rgb}{0.9,0.3,0.3}%
    \definecolor{framecolor}{rgb}{0,0,0}% 
    \setlength{\fboxrule}{2pt}
    \begin{fshaded}[#2]\begin{Problem}[#1]}{\end{Problem}\end{fshaded}}
    ...
    \begin{problem}[Unberechenbarkeit von Monstern]{60mm}
    \end{problem}
    Umgebrochen wird hier, nur nicht im Problemtitel.

    Stefan

  7. #7
    Registrierter Benutzer
    Registriert seit
    14.07.2008
    Beiträge
    35
    *schäm*

    Achtung: Vor Inbetriebnahme des Mundewerkes, Gehirn einschalten.

    Denn kaum hatte ich den Beitrag abgeschickt und nochmal drübergeschaut hab ich den Fehler entdeckt. Hab mich in meinem eigenen Quellcode nicht mehr zurecht gefunden... Vielleicht sollte ich da mal wieder aufräumen. ^^

    In jedem Falle, danke ich dir Stefan! Nun läuft fast alles und ich kann weiterbasteln.

    Vielen Dank und schönen Tag noch.

    MfG

    Scrattor

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •