Anzeige:
Ergebnis 1 bis 4 von 4

Thema: colorbox Umgebung für Formeln

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.06.2009
    Beiträge
    146

    colorbox Umgebung für Formeln

    Hallo,
    ich habe mir eine "Umgebung für wichtige Formeln" gebastelt. Es ist eine colorbox mit einer align Umgebung und einem Text:
    Code:
    \makeatletter
    \newcommand{\SF}[2]{
    	\\
    	\definecolor{background}{rgb}{0.627,0.741,1.0}
    	\vspace*{1.2em}
    	\noindent
    	\colorbox{background}{
    		\parbox{\linewidth}{
    			\@fleqnfalse
    			\begin{align}
    				#1
    			\end{align}
    			\hspace{5mm}
    			{\textbf{#2}}
    			\vspace*{0.3cm}
    		}
    	}
    	\vspace*{1.2em}
    	\\
    }
    \makeatother
    Jetzt habe ich aber folgendes Problem: Die vspaces machen nicht das was ich erwartet habe. Der Code erzeugt 2 mal den Abstand nur unterhalb meiner colorbox, nicht einmal darüber und einmal darunter. Außerdem habe ich Probleme wenn direkt danach ein Kapitel anfängt, die Abstände werden dann unschön. Außerdem würde ich gerne die Abstände kontrollieren vor und nach der align Umgebung, geht das irgendwie?

    Hier noch ein lauffähiges Beispiel. Nimmt man hier vor dem 2. \SF ein paar Zeilen weg, wird auf der 2. Seite der Text weiter oben angefangen, obwohl nach der Formel die nächste Seite anfängt.
    Code:
    \documentclass[
    	a4paper,
    	fontsize=10pt,
    	draft=true
    ]{scrartcl}
    
    \usepackage[utf8x]{inputenc}
    \usepackage[ngerman, english]{babel}
    \usepackage{scrhack}
    \usepackage[fleqn]{amsmath}
    \usepackage[onehalfspacing]{setspace}
    \usepackage{bm}
    \usepackage[table]{xcolor}
    \usepackage{graphicx}
    \usepackage{scrpage2}
    
    \makeatletter
    \newcommand{\SF}[2]{
    	\\
    	\definecolor{background}{rgb}{0.627,0.741,1.0}
    	\vspace*{1.2em}
    	\noindent
    	\colorbox{background}{
    		\parbox{\linewidth}{
    			\@fleqnfalse
    			\begin{align}
    				#1
    			\end{align}
    			\hspace{5mm}
    			{\textbf{#2}}
    			\vspace*{0.3cm}
    		}
    	}
    	\vspace*{1.2em}
    	\\
    }
    \makeatother
    
    \begin{document}
    \section{Die erste Section}
    Hier kommt nun ein bisschen Text.
    \SF{
    \hbar \Omega_{\mathrm{R}} = \bm{d}_{\mathrm{cv}} \bm{\bm{E}_0}
    }{Rabi-energy}
    Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. 
    
    Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text.
    \SF{
    \hbar \Omega_{\mathrm{R}} = \bm{d}_{\mathrm{cv}} \bm{\bm{E}_0}
    }{Rabi-energy}
    
    Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text.
    \SF{
    \hbar \Omega_{\mathrm{R}} = \bm{d}_{\mathrm{cv}} \bm{\bm{E}_0}
    }{Rabi-energy}
    
    \section{Die 2. Section}
    Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text. Hier kommt nun ein bisschen Text.
    
    \section{Die 3. Section}
    Test
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Das mit den vspaces kommt daher, dass diese beim nächsten Absatzwechsel wirksam werden. Ein neuer Absatz wird mit Leerzeile oder \par begonnen, nicht aber mit \\, welches ausdrücklich als Zeilenwechsel ohne Absatz definiert ist.

  3. #3
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Einfachere Alternative

    Mit mdframed geht das irgendwie viel einfacher.
    Code:
    \documentclass[
      fontsize=10pt,
      ngerman,
      english
    ]{scrartcl}
    \usepackage[T1]{fontenc}
    \usepackage{selinput}
    \SelectInputMappings{
      adieresis={ä},
      germandbls={ß},
      Euro={€}
    }
    \usepackage{babel}
    \usepackage{graphicx}
    \usepackage[fleqn]{mathtools}
    \usepackage{bm}
    \usepackage[onehalfspacing]{setspace}
    
    \usepackage[table]{xcolor}
    \definecolor{background}{rgb}{0.627,0.741,1.0}
    
    \usepackage[framemethod=default]{mdframed}
    \newmdenv[
      backgroundcolor=background,
      hidealllines=true,
      rightmargin=-\marginparsep,
      skipabove=\bigskipamount,
      skipbelow=\bigskipamount
    ]{SF}
    
    \usepackage{lipsum}   % nur für Fülltext
    
    \makeatletter
    \newcommand*{\fleqnoff}{\@fleqnfalse}
    \makeatother
    
    \begin{document}
      \section{Die erste Section}
        \lipsum[1]
        \begin{SF}[frametitle=\textsc{Rabi} energy]
          \fleqnoff
          \begin{align}
            \hbar\Omega_\text{R} &= \bm{d}_\text{cv} \bm{E_0}
          \end{align}
        \end{SF}
        \lipsum[2]
    
        \lipsum[3]
        \begin{SF}[frametitle=\textsc{Rabi} energy]
          \fleqnoff
          \begin{align}
            \hbar\Omega_\text{R} &= \bm{d}_\text{cv} \bm{E_0}
          \end{align}
        \end{SF}
        \lipsum[4]
    
        \begin{SF}[frametitle=\textsc{Rabi} energy]
          \fleqnoff
          \begin{align}
            \hbar\Omega_\text{R} &= \bm{d}_\text{cv} \bm{E_0}
          \end{align}
        \end{SF}
    
      \section{Die 2. Section}
        \lipsum[5]
    
      \section{Die 3. Section}
        \lipsum[6]
    \end{document}
    Es gibt nur kleine Änderungen in der Handhabung. Und der Titel einer Box hat eine feste Position, die nicht geändert werden kann.


    Thorsten
    Geändert von localghost (07-11-2012 um 15:58 Uhr)
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  4. #4
    Registrierter Benutzer
    Registriert seit
    29.06.2009
    Beiträge
    146
    Danke! Mit mdframed hab ich es mir basteln können so wie ich es wollte und alle Abstände scheinen sich korrekt zu verhalten!

Lesezeichen

Berechtigungen

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