PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : colorbox Umgebung für Formeln



DaPhil
07-11-2012, 15:22
Hallo,
ich habe mir eine "Umgebung für wichtige Formeln" gebastelt. Es ist eine colorbox mit einer align Umgebung und einem Text:


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


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

rstuby
07-11-2012, 16:02
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.

localghost
07-11-2012, 16:53
Mit mdframed (http://ctan.org/pkg/mdframed) geht das irgendwie viel einfacher.

\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

DaPhil
07-11-2012, 21:51
Danke! Mit mdframed hab ich es mir basteln können so wie ich es wollte und alle Abstände scheinen sich korrekt zu verhalten!