Is there an easy way to put a box around a theorem in LaTeX
? For example to state an important theorem.
I tried using page 20 of the ntheorem
documentation,
but I do not know how to use the package.
Is there an easy way to put a box around a theorem in LaTeX
? For example to state an important theorem.
I tried using page 20 of the ntheorem
documentation,
but I do not know how to use the package.
You can use \newmdtheoremenv
from the mdframed package:
\documentclass{article}
\usepackage{mdframed}
\usepackage{lipsum}
\newmdtheoremenv{theo}{Theorem}
\begin{document}
\begin{theo}
\lipsum*[1]
\end{theo}
\end{document}
If you only want to frame some theorems, then you can define a new environment using the mdframed
environment and some previously defined theorem-like environment:
\documentclass{article}
\usepackage{mdframed}
\usepackage{lipsum}
\newtheorem{theo}{Theorem}
\newenvironment{ftheo}
{\begin{mdframed}\begin{theo}}
{\end{theo}\end{mdframed}}
\begin{document}
\begin{ftheo}
\lipsum*[1]
\end{ftheo}
\begin{theo}
\lipsum*[1]
\end{theo}
\end{document}
I don't know if the tcolorbox
package was available at the time that the question was asked, but here's a small example taken directly from the documentation:
% arara: pdflatex
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newtcbtheorem[number within=section]{mytheo}{My Theorem}%
{colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{th}
\begin{document}
\begin{mytheo}{This is my title}{theoexample}
This is the text of the theorem. The counter is automatically assigned and,
in this example, prefixed with the section number. This theorem is numbered with
\ref{th:theoexample} and is given on page \pageref{th:theoexample}.
\end{mytheo}
\end{document}
Here's a minimum working example (MWE) of how one can use the ntheorem
and framed
packages to draw a rectangular frame around a theorem environment:
\documentclass{article}
\usepackage{framed} % or, "mdframed"
\usepackage[framed]{ntheorem}
\newframedtheorem{frm-thm}{Theorem}
\begin{document}
\begin{frm-thm}[Pythagoras]
Let $a$, $b$, and $c$ denote the lengths of the sides of a \emph{right
triangle}, i.e., of a triangle with one angle equal to $90^\circ$.
Without loss of generality assume that $a\le b<c$. Then
\[ a^2+b^2=c^2. \]
\end{frm-thm}
\end{document}
Check the user guides of the framed
and mdframed
packages for available options for setting the style of the frame.
Here's an example of how you can put some colour into your Theorems using ntheorem
combined with PSTricks
.
\documentclass{article}
\usepackage{pstricks}
\usepackage{pst-grad}
\usepackage{framed}
\usepackage[framed]{ntheorem}
\usepackage{lipsum}
% framed theorem, red background
\theoremstyle{plain}
\theoremsymbol{}
\theoremseparator{}
\def\theoremframecommand{%
\psshadowbox[fillstyle=solid,fillcolor=red,linecolor=black]}
\newshadedtheorem{mytheorem}{Special Theorem}
% framed theorem, gradient shading
\theoremstyle{plain}
\theoremsymbol{}
\theoremseparator{}
\def\theoremframecommand{%
\psshadowbox[fillstyle=gradient,gradbegin=red,gradend=yellow,linecolor=black]}
\newshadedtheorem{myfancytheorem}{Sunset special theorem}
\begin{document}
\begin{mytheorem}
\lipsum[1]
\end{mytheorem}
\begin{myfancytheorem}
\lipsum[1]
\end{myfancytheorem}
\end{document}
Either run the above code with
latex myfile.tex
dvips myfile.dvi
ps2pdf myfile.ps
or
xelatex myfile.tex
If you want to run it with pdflatex
then add the option pdf
to the pstricks
load
\usepackage[pdf]{pstricks}
and compile with
pdflatex -shell-escape myfile.tex
If you are using thmtools
, it should be noted that it can render boxed theorems per se. Example:
\documentclass{report}
\usepackage{thmtools}
\usepackage{lipsum}
\declaretheorem[
shaded={rulecolor=black, rulewidth=1pt, bgcolor=magenta},
name=Theorem,
]{thmboxed}
\begin{document}
\begin{thmboxed}
\lipsum[1]
\end{thmboxed}
\end{document}
renders as
thmtools
for that by e.g. setting headformat
and headpunct
to \@empty
in the custom theorem style, a better solution would be using boxes, e.g. a \coloredbox
around a \minipage
.
ntheorem
usespstricks
to shade theorem. So you have to compile vialatex-ps-pdf
orxelatex
. -- Maybe the packageframed
is helpful.