7

I often use theorems on LaTeX and have defined various kinds of them. At times, however, it is best not to define a specific theorem which would otherwise be a once-in-a-long-time usage, as for example with the "Fundamental Theorem of Algebra" or the "Hairy Ball Theorem" and such. A pdf I found on the Internet suggests the following code:

\makeatletter
\newtheorem{@thmattr}[thm]{\theorem@attr}
\newenvironment{thmattr}[1]
{\def\theorem@attr{#1}\begin{@thmattr}}
{\end{@thmattr}}
\makeatother

The only problem is that, besides needing a definition of a counter thm (which can easily be solved by removing the [thm]), this gives such theorems a counter. So I get "Fundamental Theorem of Algebra 1", which doesn't make sense since there is only one theorem with that name. So the question is: how do I make a theorem with no counter?

5
  • 4
    \newtheorem* is your friend, if you use amsthm ;)
    – yo'
    Mar 23, 2014 at 17:00
  • 1
    \usepackage{amsmath} and \newtheorem*{HBT}{Hairy Ball Theorem}. Do you have several "named theorems"?
    – egreg
    Mar 23, 2014 at 17:00
  • @egreg, why? Is there a trick for such situation?
    – Sigur
    Mar 23, 2014 at 17:05
  • @Sigur Yes, of course.
    – egreg
    Mar 23, 2014 at 17:05
  • @egreg, please, reference?
    – Sigur
    Mar 23, 2014 at 17:07

2 Answers 2

10

If you have a single named theorem, the easiest way is

\usepackage{amsthm}

\newtheorem*{HBT}{Hairy Ball Theorem}

so that

\begin{HBT}
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{HBT}

will produce what you want.

If you have several named theorems, then a strategy similar to what you found will work:

\newtheorem*{namedthm*}{\thistheoremname}
\newcommand{\thistheoremname}{} % initialization
\newenvironment{namedthm}[1]
  {\renewcommand{\thistheoremname}{#1}\begin{namedthm*}}
  {\end{namedthm*}}

and the input will be

\begin{namedthm}{Hairy Ball Theorem}
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{namedthm}

You can also give the attribution in the usual way:

\begin{namedthm}{Hairy Ball Theorem}[Brouwer]
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{namedthm}

Complete example; choose your preferred strategy.

\documentclass{article}
\usepackage{amsthm}

\newtheorem*{HBT}{Hairy Ball Theorem}

\newtheorem*{namedthm*}{\thistheoremname}
\newcommand{\thistheoremname}{} % initialization
\newenvironment{namedthm}[1]
  {\renewcommand{\thistheoremname}{#1}\begin{namedthm*}}
  {\end{namedthm*}}

\begin{document}

\begin{HBT}
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{HBT}

\begin{namedthm}{Hairy Ball Theorem}
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{namedthm}

\begin{namedthm}{Hairy Ball Theorem}[Brouwer]
There is no nonvanishing continuous tangent vector field on 
even dimensional $n$-spheres.
\end{namedthm}

\end{document}

enter image description here

1
  • Ow, I see. The theorem's name as an option. Nice! Thanks.
    – Sigur
    Mar 23, 2014 at 17:22
5

Using ntheorem, you have the emptyand emptybreak theorem styles. The name is an optional argument. Here are 4 possibilities (I had to patch the empty style because it didn't accept a label separator):

        \documentclass[12pt,a4paper]{article}

        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage{MinionPro}
        \usepackage{amsmath}
        \usepackage[svgnames, x11names]{xcolor}
        \usepackage{framed}
        \usepackage[framed, amsmath, thmmarks]{ntheorem}%
        \newcommand*\C{\mathbf C}

        \makeatletter
        \renewtheoremstyle{empty}%
          {\item[]}%
          {\item[\theorem@headerfont \hskip\labelsep\relax ##3\theorem@separator]}
        \makeatother

        \theoremheaderfont{\upshape\scshape}
        \theorembodyfont{\itshape}

        \theoremstyle{empty}
        \theoremseparator{.\,—}
        \newtheorem{namedthm}{}
        \newframedtheorem{namedfrthm}{}
        \theoremstyle{emptybreak}
        \theoremheaderfont{\bfseries\scshape}
        \theorembodyfont{\upshape\color{DarkSeaGreen4}}
        \theoremseparator{\smallskip}
        \newtheorem{NamedThm}{}
        \newframedtheorem{NamedfrThm}{}
        %\newframedtheorem{namedfrthm}}
        \begin{document}


        \begin{namedthm}[Fundamental Theorem of Algebra]
        Every polynomial with coefficients in  $ \C $ has a root in  $ \C $.  In other words,  the field of complex numbers is algebraically closed.
        \end{namedthm}

        \begin{namedfrthm}[Fundamental Theorem of Algebra]
        Every polynomial with coefficients in  $ \C $ has a root in  $ \C $.  In other words,  the field of complex numbers is algebraically closed.
        \end{namedfrthm}

        \begin{NamedThm}[Fundamental Theorem of Algebra]
        Every polynomial with coefficients in  $ \C $ has a root in  $ \C $.  In other words,  the field of complex numbers is algebraically closed.
        \end{NamedThm}

        \begin{NamedfrThm}[Fundamental Theorem of Algebra]
        Every polynomial with coefficients in  $ \C $ has a root in  $ \C $.  In other words,  the field of complex numbers is algebraically closed.
        \end{NamedfrThm}

        \end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .