Episode #125 of the Stack Overflow podcast is here. We talk Tilde Club and mechanical keyboards. Listen now

# Tag Info

25

There is a bug in thm-autoref.sty. Part of the set-up for cleverefs magic is left to the start of the document. So cleveref maintains a list of all the label types that it has been told about so that when it gets to the \begin{document} hook, it can iterate through them and finish the necessary configuration. Examining this list for your document (well, ...

11

You can use \newmdtheoremenv from the mdframed package; a little example (change the lengths and other settings according to your needs): \documentclass{article} \usepackage[english]{babel} \usepackage[margin=2cm]{geometry}% just for the example \usepackage{xcolor} \usepackage{amsthm} \usepackage{thmtools} \usepackage{mdframed} \usepackage{blindtext} \...

11

You have to redefine the macro responsible for writing the relevant data in the loe file: \newtheorem{defin}{Definition} \makeatletter \def\ll@defin{% \protect\numberline{\csname the\thmt@envname\endcsname}% \ifx\@empty\thmt@shortoptarg \thmt@thmname \else \thmt@shortoptarg \fi } \makeatother Of course it's better to use the interface of ...

10

You can use \renewcommand\listtheoremname{Elenco dei teoremi} in the preamble of your document.

10

Something like this? \documentclass[12pt,a4paper]{report} \usepackage[framemethod=TikZ]{mdframed} \usepackage{amsthm} \usepackage{thmtools} \usepackage{lipsum}% just to generate text for the example % example style \declaretheoremstyle[ headfont=\bfseries, notebraces={[}{]}, bodyfont=\normalfont\itshape, headpunct={}, postheadspace=\...

9

You can undefine it before defining it \let\definition\relax \theoremstyle{definition}

9

The problem with the endmarks in amsthm is a well known issue; the following remark is from the documentation: Placement of the QED symbol can be problematic if the last part of a proof environment is a displayed equation or list environment or something of that nature. In that case put a \qedhere command at the place where the QED symbol should ...

9

Here's a solution that borrows from the solution to Shaded theorems (thmtools) spanning pages The idea is to define an mdstyle \mdfdefinestyle{myframedstyle}{% outermargin = 1.3cm , % .... which is then hooked into the thmtools style declaration: preheadhook={\begin{mdframed}[style=myframedstyle]}, postfoothook=\end{mdframed}, You'll ...

8

This is slightly curious behaviour from the package that you don't notice in many situations. The space is caused by the line break after [Euclid]. Placing a percent sign directly after [Euclid] hides the newline and removes that space. \documentclass{article} \usepackage{amsthm} \usepackage{thmtools} \declaretheorem[thmbox=L]{boxtheorem L} \begin{...

8

Given that the theorem and proof environments are quite separate, it's indeed a bit tricky to forbid categorically all pagebreaks between them. All I can suggest is that you load the package needspace and insert the command \Needspace{3\baselineskip} close to the end of the statement of the theorem/corollary/whatever; note the uppercase N at the start of ...

8

I think this might be a not completely smooth interaction between the packages; skipbelow accepts negative values, but skipabove, and even spaceabove (from thmtools) when the mdframed key is in action, seem to ignore values that are less than 0pt. This might have to do with the fact that thmtools uses \addtotheorempreheadhook to pass the options to the ...

8

Here's one possibility: \documentclass{article} \usepackage{amsthm} \usepackage{thmtools} \declaretheoremstyle[ spaceabove=6pt, spacebelow=6pt, headfont=\bfseries, notefont=\mdseries, notebraces={(}{)}, bodyfont=\itshape, ]{mystyle} \let\variant\relax \declaretheorem[style=mystyle]{theorem} \declaretheorem[ name={Theorem~\variant{$^\ast$}}, ...

7

The first presented bugfix works for me. I have written to Toby Cubitt, the maintainer of the cleveref package. He agrees, that it is a bug, claims it,however, to be a bug in the thmtools package, which is why I reported the issue to Ulrich M. Schwarz, the maintainer of thmtools, providing the link to this thread. We'll see if there is an update for the ...

7

The shaded key requires a key-value list (see page 15 of the thmtools documentation); also, the unless unique option seems to require the unique package: \documentclass[a4paper, 12pt, oneside]{book} \usepackage{amsthm} \usepackage[unq]{unique} \usepackage{thmtools} \usepackage[unq]{unique} \usepackage{xcolor} \declaretheoremstyle[ numbered=...

7

This shouldn't happen. However it seems to happen and it's definitely a misfeature. How to remedy to it? Don't type the label just next to \begin{theorem}, but after the first word in the statement. I know this is a bad workaround. \documentclass{book} \usepackage{amsthm} \usepackage{thmtools} \declaretheorem{theorem} \usepackage{hyperref} \begin{...

7

This is due to bad interactions between the packages thmtools and thmbox, I believe. A way to solve this particular situation seems to be patching an internal command of thmtools. \documentclass{article} \usepackage{amsthm} \usepackage{thmtools} \usepackage{etoolbox} \makeatletter \patchcmd\thmt@parsetheoremargs {\let\@parsecmd\@empty} {\let\@parsecmd\...

7

Since \listoftheorems uses internally \listoffigures, you can use the etoolbox package to patch \listoffigures changing the default \chapter* to \chapter (for a solution using amsbook, please see the second example below): \documentclass{book} \usepackage{amsmath} \usepackage{thmtools} \usepackage{etoolbox} \declaretheorem[name=Theorem]{theo} \begin{...

7

Both packages use \@xa with very different meanings. For the Tkz suite, \@xa stands for a coordinate, while thmtools wants it to mean \expandafter. In my opinion both are wrong in their assumption: Tkz should use a private name with a prefix, while thmtools should use \@xp like amsmath or have a prefix itself. By changing all appearances of \@xa in the Tkz ...

7

Let's examine a simple document. \documentclass{article} \usepackage{amsthm,thmtools} \usepackage{hyperref} \declaretheorem{theorem} \begin{document} \section{A section title}\label{sec-a} \begin{theorem}[label=thm-e] $0\ne1$ \end{theorem} \begin{theorem}[name=Key theorem,label=thm-key] $0=0$ \end{theorem} \end{document} The \newlabel entries we find ...

6

If the list of theorems should also go in to the table of contents, then \addcontentsline can be used that automatically adds an entry for the bookmarks. Otherwise \pdfbookmark can be used for an entry to the bookmarks only. \cleardoublepage ensures the right page for the anchor setting by \pdfbookmark or \phantomsection, the latter provides the anchor for \...

6

The problem is that \theorem@headerfont calls \theorem@checkbold and this macro does \if b\expandafter\@car\f@series\@nil\boldmath\fi This is the reason for the disappearance: the font used is boldface and this causes \boldmath to come into action but XITS Math has no bold version. If you want to use ntheorem and math in the theorem labels, then you need ...

6

The best way I've found is to redefine the proof environment, that is, add the following lines in your preamble: \makeatletter \renewenvironment{proof}[1][\proofname]{\par \pushQED{\qed}% \normalfont \topsep6\p@\@plus6\p@\relax \trivlist \item[\hskip\labelsep \color{section_color}\sffamily\bfseries #1\@addpunct{.}]\ignorespaces }{% \...

6

Your example is far from minimal. If I remove all the code unrelated to the error I get \documentclass{report} \usepackage{thmtools} \declaretheoremstyle[ spaceabove=\topsep ]{mystyle} \declaretheorem[style=mystyle]{@thmattr} \begin{document} \end{document} which produces the error shown. ! Package thmtools Error: \declaretheorem key `spaceabove' not ...

6

The ntheorem package is compatible with thmtools and already defines a \theoremindent. In the following example from an old file of mine, I had set \theoremindent{1cm} and, as you can see, inside the proof environment, paragraph indent is preserved:

6

When the thmbox option is used, the control is passed to the thmbox package, which doesn't provide unnumbered theorems. This means that you cannot use that option together with numbered=no option. As a workaround, to obtain the theorem environment you were looking for, define \newenvironment{mytheo3}{% \thmbox[M]{\textbf{TheoremC}}% \hspace*{-1.5em}\...

5

You can simply fool LaTeX in thinking that proof is not defined: \let\proof\relax \declaretheorem[numbered=no]{proof}

5

If you want to use ntheorem instead of amsthm as the back-end, then you will have to resign to some of the formatting features that were available with amsthm and some other changes will have to be made: The commands \NAME, \NUMBER, and \NOTE will no longer be available. To simulate the desired head formatting, you can use the headformat=swapnumber option ...

5

As per my earlier comment ntheorem seems to add the \qed to the very last display mode equation. So a hack is to to end a proof with \vspace{-\belowdisplayskip} Code: \documentclass{scrreprt} \PassOptionsToPackage{thmmarks}{ntheorem} \PassOptionsToPackage{inline}{enumitem} \usepackage{amsmath,MnSymbol} \usepackage{ntheorem,thmtools} \usepackage{ ...

5

The problem is that thmtools defines \def\NUMBER{\bgroup\@upn{##2}\egroup} and \let\@upn=\textup so the change to italics won't have any effect on the number that will always be typeset in up-right font; one way to override this setting (and I am not sure if this is a good typographical practice) is to use preheadhook to redefine \@upn: \documentclass[...

5

This solution requires some customisation of the thmtools files. Copy the file thm-listof.sty into the same directory as your document and alter it; I was doing this anyway in order to reformat the list of theorems. If you try to override the format in your preamble, it does not work due to the packages use of \AtBeginDocument. In this file, find the block ...

Only top voted, non community-wiki answers of a minimum length are eligible