setkomafont with uppercase that works robustly
Imho there is no better way. A font is the best solution. Some of the problems with \uppercase
& friends are described in the FAQ: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=casechange. In your example there are the additional problems that you don't know where in the code the upper case command is executed and you can have various arguments.
You can add a layer over \section
and redefine \author
:
\makeatletter
\def\author#1{\gdef\@author{\MakeUppercase{#1}}}
\let\scr@section\section
\def\section{\@ifstar\seamus@sections\seamus@section}
\def\seamus@sections#1{\scr@section*{\MakeUppercase{#1}}}
\def\seamus@section{\@dblarg{\seamus@section@}}
\def\seamus@section@[#1]#2{%
\scr@section[\MakeUppercase{#1}]{\MakeUppercase{#2}}}
\makeatother
The method advertised by source2e.pdf
of terminating the sixth parameter passed to \@startsection
with \MakeUppercase
doesn't work with scrartcl.