5

I am using the \listtheorems command from ntheorem to generate a list of theorems for a document. However, because I number the theorems inside sections, the theorem number is a bit on the long side, and when typeset the theorem numbers run into the theorem name.

I know that for lists of figures or the TOC I can control this using tocloft and setting numwidth, is there something similar I can do for the theorem lists generated by ntheorem?


MWE:

\documentclass{book}
\usepackage{amsmath}
\usepackage[standard,amsmath]{ntheorem}
\setcounter{chapter}{11}
\setcounter{section}{22}
\setcounter{Theorem}{33}
\numberwithin{Theorem}{section}

\begin{document}
\begin{Theorem}[False Theorem]
This is not a theorem
\end{Theorem}

List of theorems:
\listtheorems{Theorem}
\end{document}

The output looks like:

Colliding text

Here's the tail end of the log from latex building the MWE:

** Generating table of Theorem
(./listthm.thm
Overfull \hbox (12.5556pt too wide) detected at line 1
\OT1/cmr/m/n/10 11.22.34 
 []

)
\tf@thm=\write3
\openout3 = `listthm.thm'.

 [1

] (./listthm.aux) ) 
lockstep
  • 250,273
Willie Wong
  • 24,733
  • 8
  • 74
  • 106

1 Answers1

4

Add the following after loading ntheorem:

\makeatletter
\def\thm@@thmline#1#2#3#4{%
  \@dottedtocline{-2}{0em}{5em}{\protect\numberline{#2}#3}{#4}}
\makeatother

The usual definition has 2.3em instead of 5em; adjust until you're satisfied.

egreg
  • 1,121,712
  • thanks, but unfortunately I hadn't realised that the fix would also depend on the fact that I am using hyperref. In any case, a suitable modification to the appropriate lines in ntheorem.sty patches the problem. – Willie Wong Feb 02 '12 at 13:11
  • Yes, the macro is slightly more complicated, but it's sufficient to find its definition in ntheorem.sty and change the 2.3em to the desired value. – egreg Feb 02 '12 at 14:33