Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I'm using ntheorem with the amsthm option, to define a theorem-like environment for stating notes. I should be getting an environment beginning with the word 'Note' in italic font, followed by the contents in normal roman font. Instead, I get 'Note' in boldface roman and the body in italic:

\documentclass{article}
\usepackage[amsthm]{ntheorem}
\theoremstyle{plain}
\theoremheaderfont{\normalfont\itshape}
\theorembodyfont{\normalfont}
\newtheorem*{myenv}{Note}

\begin{document}
\begin{myenv}
The quick brown fox jumps over the lazy dog.
\end{myenv}
\end{document}

Trying to define a new theoremstyle doesn't seem to work either:

\newtheoremstyle{nonumberabc}%
  {\item[\normalfont\itshape \hskip\labelsep ##1\theorem@separator]\normalfont}%
  {\item[{\normalfont\itshape \hskip \labelsep ##3}\theorem@separator]\normalfont}
\theoremstyle{abc}
\newtheorem*{myenv}{Note}

this gives the same results with the above document.

What am I doing wrong?

The problem does not occur if I drop the amsthm option - but then I don't get some nice amsthm definitions I'm expecting... (it was psychologically hard enough to drop amsthm for ntheorem after years or use!) Most importantly, I like the amsthm proof environment. So, for those suggesting that I just drop amsthm - how can I reproduce proof with the exact same behavior (including the QED box size etc.) with ntheorem? I can't just lift code out of ntheorem, because it doesn't seem to use its own theoremstyle commands to get the proof environment. Rather, it does something else.

share|improve this question
add comment

4 Answers 4

It is possible to "lift" the proof environment code from ntheorem:

\documentclass{article}
\usepackage[thmmarks]{ntheorem}% http://ctan.org/pkg/ntheorem

\makeatletter
\newcommand{\openbox}{\leavevmode
  \hbox to.77778em{%
  \hfil\vrule
  \vbox to.675em{\hrule width.6em\vfil\hrule}%
  \vrule\hfil}}
\gdef\proofSymbol{\openbox}
\newcommand{\proofname}{Proof.}
\newcounter{proof}\newcounter{currproofctr}\newcounter{endproofctr}%
\newenvironment{proof}[1][\proofname]{
  \th@nonumberplain
  \def\theorem@headerfont{\itshape}%
  \normalfont
  %\theoremsymbol{\ensuremath{_\blacksquare}}
  \@thm{proof}{proof}{#1}}%
  {\@endtheorem}
\makeatother

\theoremstyle{plain}
\theoremheaderfont{\normalfont\itshape}
\theorembodyfont{\normalfont}
\newtheorem*{myenv}{Note}

\begin{document}
\begin{myenv}
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
\begin{proof}
This statement is true, because the fox did jump over the lazy dog.
\end{proof}
\end{myenv}
\end{document}

ntheorem with amsthm proof environment

The QED-symbol is displayed when using the thmmarks package option of ntheorem. In ntheorem this is manually defined in \openbox, and subsequently used as \proofSymbol.

share|improve this answer
    
It's missing the point after 'Proof'. I can add that, I hope it's not missing anything else. –  einpoklum Oct 2 '11 at 17:52
    
As mentioned, the above was "lifted" from ntheorem based on the amsthm style option. Based on a browse of amsmath.sty, the only addition is \ignorespace after typesetting the point/period after Proof. –  Werner Oct 2 '11 at 18:06
    
Added a slightly modified version as an alternative answer, you're welcome to have a look. –  einpoklum Oct 22 '11 at 15:43
add comment

I'm using ntheorem with the amsthm option. I should be getting a environment with 'Note' in italic and the contents in normal roman font. Instead, I get 'Note' in boldface roman and the body in italic. What am I doing wrong?

I believe you need to provide a couple of \newtheoremstyle commands before you can issue the command \newtheorem{myenv}{Note}. According to the documentation of the ntheorem package, the theoremstyles of both numbered and unnumbered "theorem" environments must be defined explicitly if the package was loaded with the amsthm option. Here's what I suggest you do in the preamble, given your description of how you'd like the "note" environment to be styled:

\usepackage[amsthm]{ntheorem}
\theorembodyfont{\upshape}
\newtheoremstyle{notes} % for numbered notes
  {\item[\hskip\labelsep \itshape ##1\ ##2.]}%
  {\item[\hskip\labelsep \itshape ##1\ ##2, ##3.]}
\newtheoremstyle{nonumbernotes} % for unnumbered notes
  {\item[\hskip\labelsep \itshape ##1.]}%
  {\item[\hskip\labelsep \itshape ##1, ##3.]}
\theoremstyle{notes} % switch to newly defined theorem style
\newtheorem*{myenv}{Note}

After this, you should have no problems with your myenv environments.

share|improve this answer
add comment

The package documentation answered as follows:

3.2.2 amsthm

Here, the user has to express his definitions by the \newtheoremstyle command provided by ntheorem.sty, including the use of \theoremheaderfont and \theorembodyfont. The options [amsthm] and [standard] are in conflict since they both define an environment proof. Thus, we recommend not to use amsthm, since the features for defining theorem-like environments in ntheorem.sty—following theorem.sty—seem to be more intuitive and user-friendly.

Package ntheorem

To get a similar proof environment without the option amsthm you get do the following:

 \documentclass[english]{article}
\usepackage{babel}
\usepackage{amsmath,amssymb}
\usepackage[thmmarks,amsmath]{ntheorem}
\newcommand{\openbox}{\leavevmode
  \hbox to.77778em{%
  \hfil\vrule
  \vbox to.675em{\hrule width.6em\vfil\hrule}%
  \vrule\hfil}}
\theoremstyle{nonumberplain}

\theoremsymbol{\openbox}
\newtheorem{proof}{Proof}

\theoremsymbol{}
\theoremstyle{plain}
\theoremheaderfont{\normalfont\itshape}
\theorembodyfont{\normalfont}
\newtheorem*{myenv}{Note}



\begin{document}
\begin{myenv}
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
\end{myenv}

\begin{proof}[Alternative Text]
The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
\end{proof}
\end{document}
share|improve this answer
    
But I'm not using the [standard] option... and I do like amsthm's proof. –  einpoklum Oct 2 '11 at 17:28
    
@EyalRozenberg: Please see my edit. –  Marco Daniel Oct 2 '11 at 18:58
    
Your suggestion has a significant issue with optional arguments: Try \begin{proof}[Alternative Text] ... you get the Atlernative text twice. –  einpoklum Oct 2 '11 at 20:06
    
@EyalRozenberg: I fixed it. –  Marco Daniel Oct 2 '11 at 20:10
add comment
up vote 0 down vote accepted

Following Werner's answer and my comment there, here's code for a proof environment with the final-period-mark issue fixed; it's a slight tweak of the code Werner lifted from the `ntheorem' sources:

\makeatletter
\newcommand{\openbox}{\leavevmode
  \hbox to.77778em{%
  \hfil\vrule
  \vbox to.675em{\hrule width.6em\vfil\hrule}%
  \vrule\hfil}}
\gdef\proofSymbol{\openbox}
\newcommand{\proofname}{Proof}
\newcounter{proof}\newcounter{currproofctr}\newcounter{endproofctr}%
\newenvironment{proof}[1][\proofname]{
  \th@nonumberplain
  \def\theorem@headerfont{\itshape}%
  \normalfont
  %\theoremsymbol{\ensuremath{_\blacksquare}}
  \@thm{proof}{proof}{{#1}.}}%
  {\@endtheorem}
\makeatother
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.