I am trying to mimic lecture notes formatted like this:


I would like to format a theorem style which produces the same result as the line

  1. Inverse hyperbolic functions.

in the above pdf. So far I've been trying to keep it simple with the amsthm package, as I'm having a hard time finding a way to do this with ntheorem or thmtools.

My first attempt was to use \swapnumbers with the following theorem definition:





\begin{varthm}[The angle between vectors]

Let $\vec{u} = \langle {u_1, u_2} \rangle$ and $\vec{v} = \langle {v_1, v_2}
\rangle$ be two vectors in $\mathbb{R}^2$, and consider the triangle formed by
connecting the heads of $\vec{u}$ and $\vec{v}$.  The third side of this triangle is 
$\vec{u} - \vec{v}$.\footnote{We could also use $\vec{v} - \vec{u}$.  Either will 
suffice because we are only interested in its magnitude.} Let $\theta$ be the angle 
between $\vec{u}$ and $\vec{v}$, opposite $\vec{u} - \vec{v}$.  



The other result comes from commenting out \swapnumbers, which is actually closer to what I want, but now the numbering disappears!

  • 2
    It seems that without \swapnumbers the last argument of \newtheoremstyle should be: {#2#1 \thmnote{#3}} Jun 13, 2013 at 19:17
  • Okay, that worked perfectly. Thank you! So I am clear on this, the #2 takes care of the numbering, the #1 takes care of the theorem name, which I have specified to be just a period after {varthm}{.}, and the final period comes from the puncutation after thm head given in the definition itself. Jun 13, 2013 at 19:33
  • All arguments are explained in the documentation of amsthm. Jun 13, 2013 at 19:39

1 Answer 1


For me the first flaw in your mwe is the usage of \newtheorem. You are using \newtheorem{varthm}{.}. However the correct syntax as explained in the documentation is:

\newtheorem{name}{Printed output}

So your period is wrong. Related I think the correct syntax is


The command \swapnumbers (explained in the documentation) places the theorem number at the beginning of the heading instead of at the end. The command affects only common theorem styles.

The command \newtheoremstyle is a suitable way to specify the behaviour of a theorem environment. It has 9 mandatory arguments whereby the last argument specifies the heading. At this point it's important to highlight that the command \swapnumbers disables the declaration of the ninth argument of \newtheoremstyle. So related to your needs I suggest the following avoiding \swapnumbers and playing with the ninth argument:

 {}%space above
 {}%space below
 {}%body font
 {}%Indent amount
 {\bfseries}%Theorem head font
 {}%Punctuation after theorem head
 {.5em}%Space after theorem head
 {#2.~\thmnote{#3}}%Theorem head spec
  • 1
    The period in "indent amount" is wrong: it should be either empty (meaning zero) or a length. You can leave empty the second mandatory argument to \newtheorem, as the string Varthm is never used. A period should be added after #3: \thmnote{#3.}
    – egreg
    Aug 18, 2013 at 13:12
  • I'm sorry I just saw this response. Thank you both very much! Oct 11, 2013 at 20:59

You must log in to answer this question.

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