[texhax] need name of variable containing value of documentclass

Heiko Oberdiek heiko.oberdiek at googlemail.com
Mon Oct 17 23:36:51 CEST 2011

On Mon, Oct 17, 2011 at 11:14:39PM +0200, Uwe Lueck wrote:

> "Heiko Oberdiek" <heiko.oberdiek at googlemail.com> wrote 04.10.2011 16:33:48:
> > A document class can load another document class
> > that can load another documentclass
> I disagree already here, let alone ...

\typeout{I am class `ClassA'}
\typeout{I am class `ClassB'}

This document uses the following classes:
\newcommand*{\ClassListEntry}[3]{\item \texttt{#1}}
The main (first) class is \texttt{\MainClassName}.

> > that can load another document class that can load ...
> ... once I thought this too, but then I experienced \@twoloadclasserror,
> see \let\LoadClass\@twoloadclasserror in \@onefilewithoptions of latex.ltx.

It's set *after* the class file is read, thus it allows nested
\LoadClass calls, see the example above.

> > There is a package `classlist' that records the main (first) class
> > and the class list. The package needs to be loaded before \documentclass:
> I saw "classlist" earlier and already then wondered how long the "list" can be, 
> now looked up its documentation for examples ...
> I.e., e.g., when some class `modbook.cls' builds on the standard LaTeX
> `book.cls' by \LoadClass{book}, you cannot create a class `mmodbook.cls'
> building on `modbook.cls' by \LoadClass{modclass}, rather
>     \documentclass{mmodclass}
> will produce the \@twoloadclasserror then.

No, see example above (article:=book, ClassB:=modbook, ClassA:=mmodbook).

Yours sincerely
  Heiko Oberdiek

PS: there is a typo in the documentation of classlist:
    "\MainClass" should read "\MainClassName".

More information about the texhax mailing list