不同颜色编码的定理

不同颜色编码的定理

我正在使用这段代码来构建我的定理:

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

我正在寻找一种方法来用不同的颜色对不同的定理(示例、证明等)进行编码。但每次我尝试创建新命令时,我似乎都会全局“覆盖”颜色。

实现这一目标的最佳方法是什么?

答案1

一个选项是为每种颜色定义一个命令,其行为如下\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}

在此处输入图片描述

答案2

或者你可以使用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}

编辑

0.8 版本mdframed提供了命令newmdenvrenewmdenvnewmdtheoremenv。因此您可以简单使用:

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

相关内容