On Thu, 24 Jul 2014 08:34:51 +0800
Leo Liu <
sdl...@gmail.com> wrote:
> Indeed.
In that case, just for the record and possibly to help in suggesting
a full solution in the future, I once encountered a problem like this
with my IEEEtran class under the spanish mode of babel.sty.
IEEEtran typically needs to capitalize the headers. Under babel's
spanish mode, an inserted header line command like:
\setlanguage{english}
became something like:
\setlanguage{ENGLISH}
and babel would then complain that it does not recognize a language
called "ENGLISH".
The solution was to add a \protect to the arguments of \markboth:
\def\markboth#1#2{\def\leftmark{\MakeUppercase{\protect#1} ...
(Although looking at this now, I wonder why I did not place the
case changing commands within the actual definitions of \oddhead
et al.)
Anyway, the problem with doing the same thing in memoir is that
the section style definition macros do not acquire the argument
for \MakeLowercase:
\setsubsubsecheadstyle{\normalfont\normalsize\centering\scshape\MakeLowercase}
Instead, that is done within LaTeX's \@startsection, \@sect macros.
Perhaps it would have been better if TeX/LaTeX's case changing
commands worked at a deeper level just like the font style commands
(e.g., \bfseries) so as to be less prone to such foreseen side
effects (as well as make it easier to "shield" select text from
case changes).
Your later version of memoir is using \MakeTextLowercase, presumably
from the textcase.sty package, but it seems the problem also
occurs with that.
Cheers,
Mike