I know that there are lots of similar question, but none of those have helped me so far - and I did google a lot. So my question is: I have a document class (emulateapj) which accepts a few options.

In my document, I want to have a conditional test which checks if some option (for example onecolumn) is set, and if so, to do a few things like changing font size or line separation.

Something like


Just gives me always false.

  • 2
    Welcome to TeX.sx! Please add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}. Apr 23, 2013 at 16:35
  • Is the option defined as a bool? Apr 23, 2013 at 16:36

1 Answer 1


The kernel provides \@ifclasswith:


\@ifclasswith{emulateapj}{onecolumn}{\typeout{ONECOLUMN}}{\typeout{NO ONECOLUMN}}
\@ifclasswith{emulateapj}{revtex4}{\typeout{REVTEX4}}{\typeout{NO REVTEX4}}


The output on the terminal is


The \@ifclasswith command is only available before \begin{document}, so if you want to set up your own conditional you have to do it in the preamble:


\newcommand{\foo}{\ifhbonecolumn fooone\else footwo\fi}
  • This is only one option if you use no keyval package. Apr 23, 2013 at 18:10
  • Great suggestion,\@ifclasswith. clsguide doesn't say anything about it, where is it mentioned? Jan 12, 2016 at 14:10
  • @ArchStanton In source2e.pdf
    – egreg
    Jan 12, 2016 at 15:06

You must log in to answer this question.

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