Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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?

share|improve this question

2 Answers 2

up vote 9 down vote accepted

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]
share|improve this answer

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

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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