13

I'm using this code to frame my theorems:

\documentclass[a4paper,12pt]{scrreprt}
\usepackage[table]{xcolor}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage[amsmath,thmmarks,framed]{ntheorem} 

\usepackage{framed}
\newframedtheorem{beispiel}{Beispiel}[section]
\renewcommand*\FrameCommand{{\color{gray}\vrule width 3pt \hspace{15pt}}}


\begin{document}

\begin{beispiel}
[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem     Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{beispiel}
\end{document}

I'm searching for a way to encode different theorems (example, proof, etc.) with different colors. But every time I try to create a new command I seem to "overwrite" the colors globally.

What would the best way to achieve this?

13

One option would be to define for each color a command which will behave as \newframedtheorem:

\documentclass[a4paper,12pt]{scrreprt}
\usepackage[table]{xcolor}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage[amsmath,thmmarks,framed]{ntheorem} 

\usepackage{framed}

\makeatletter
\def\newframedRtheorem#1{%
\theoremprework{\vskip\theoremframepreskipamount
\renewcommand*\FrameCommand{%
  {\color{red}\vrule width 3pt \hspace{15pt}}}
  \framed}%
\theorempostwork{\endframed\vskip\theoremframepostskipamount}%
\newtheorem@i{#1}%
}
\def\newframedBtheorem#1{%
\theoremprework{\vskip\theoremframepreskipamount
\renewcommand*\FrameCommand{%
  {\color{blue}\vrule width 3pt \hspace{15pt}}}
  \framed}%
\theorempostwork{\endframed\vskip\theoremframepostskipamount}%
\newtheorem@i{#1}%
}
\def\newframedGtheorem#1{%
\theoremprework{\vskip\theoremframepreskipamount
\renewcommand*\FrameCommand{%
  {\color{green}\vrule width 3pt \hspace{15pt}}}
  \framed}%
\theorempostwork{\endframed\vskip\theoremframepostskipamount}%
\newtheorem@i{#1}%
}
\makeatother
\newframedRtheorem{beispiel}{Beispiel}[section]
\newframedBtheorem{theo}[beispiel]{Theorem}
\newframedGtheorem{exam}[beispiel]{Example}

\begin{document}

\begin{beispiel}[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem     Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{beispiel}

\begin{theo}[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem     Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{theo}

\begin{exam}[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem     Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{exam}

\end{document}

enter image description here

12

Or you can use mdframed:

\documentclass[a4paper,12pt]{scrreprt}

\usepackage[table]{xcolor}
\usepackage{latexsym}
\usepackage{amsmath}
\usepackage[amsmath,thmmarks,framed]{ntheorem} 
\usepackage[style=0,ntheorem]{mdframed}
\mdfsetup{%
topline=false,
rightline=false,
bottomline=false,
linewidth=3pt,
innerleftmargin=15pt,
innerrightmargin=0pt,
skipabove=\baselineskip,
skipabove=1.2\baselineskip,
}

\newtheorem{mdbeispiel}{Beispiel}[section]
\newtheorem{mdspiele}{Spiele}[section]
\newenvironment{beispiel}[1][]%
   {\begin{mdframed}[linecolor=blue]\begin{mdbeispiel}[#1]}
   {\end{mdbeispiel}\end{mdframed}}
\newenvironment{spiele}[1][]%
   {\begin{mdframed}[linecolor=red]\begin{mdspiele}[#1]}
   {\end{mdspiele}\end{mdframed}}


\begin{document}

\begin{beispiel}[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem
Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{beispiel}

\begin{spiele}[Antwortzeit]
Unter der Antwortzeit eines Dienstes versteht man den Zeitintervall zwischen dem
Absenden einer Nachricht und dem Empfang der entsprechenden Antwort. 
\end{spiele}
\end{document}

EDIT

With version 0.8 mdframed provides the commands newmdenv, renewmdenv and newmdtheoremenv. So you can simple use:

newmdtheoremenv[linecolor=red]{beispiel}{Beispiel}[section]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.