3

I'd like to alter the plain theorem style so it uses \slshape instead of \itshape. I know I can define my own style via \newtheoremstyle but I don't know how to inspect (possibly in runtime) the current values of the parameters of the style so I can just change what I need and leave the rest alone.

3

You can see it in the amsthm.sty file sitting in somewhere in your distro

\thm@style{plain}
\newtoks\thm@bodyfont  \thm@bodyfont{\itshape}
\newtoks\thm@headfont  \thm@headfont{\bfseries}
\newtoks\thm@notefont  \thm@notefont{}
\newtoks\thm@headpunct \thm@headpunct{.}
\newskip\thm@preskip \newskip\thm@postskip
\def\thm@space@setup{%
  \thm@preskip=\topsep \thm@postskip=\thm@preskip
}

This is kind of the bowel movement version of the user-level and much clearer \newtheoremstyle command. I don't recommend fiddling with the already defined styles but if we were doing it from scracth we would have (didn't check though)

\newtheoremstyle{plain}{\topsep}{\topsep}{\itshape}{}{\bfseries}{.}{.5em}{}%
  • I would think that inheritance between styles or at least exposing the defaults is standard functionality. What if I later use some package which alters the definitions? Then the hard-coded values of parameters don't make sense. And for your values, somewhere I've seen 5pt plus 1pt minus 1pt and somewhere .5em for space parameter. – user87690 May 10 '14 at 13:03
  • @user87690 Most packages (the good ones) always offer a switch for keeping the originals. – percusse May 10 '14 at 13:04
0

It seems that the easiest way to do it is \def \th@plain {\slshape} or better: \def \th@slanted {\slshape} and then use \theoremstyle{slanted}. There is/was also macro \theorembodyfont which is intended for this, but I'm not sure in what package it is located.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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