This is so, because \insertsectionnumber
is defined as (in the file beamerbasesection.sty
)
\def\insertsectionnumber{\@arabic\c@section}
And \appendix
doesn't change this;
\newcommand<>\appendix{%
\only#1{\part{\appendixname}
\addtocontents{nav}{\protect\headcommand{\protect\beamer@appendixpages{\the\c@page}}}}}
so the counter will appear using arabic representation.
You can change this, redefining \insertsectionnumber
in the proper location:
\setcounter{section}{0}
\renewcommand\insertsectionnumber{\Alph{section}}
Perhaps you want to let \appendix do this change:
\documentclass{beamer}
\makeatletter
\renewcommand<>\appendix{%
\setcounter{section}{0}%
\renewcommand\insertsectionnumber{\Alph{section}}%
\only#1{\part{\appendixname}
\addtocontents{nav}{\protect\headcommand{\protect\beamer@appendixpages{\the\c@page}}}}}
\makeatother
\begin{document}
\section{test1}
\begin{frame}{\insertsectionnumber.~\insertsection}
bal bla
\end{frame}
\appendix
\section{test2}
\begin{frame}{\insertsectionnumber.~\insertsection}
bla bla
\end{frame}
\end{document}
Although LaTeX is not the best language for this sort of thing, here is a potential solution. It uses the pgffor
package.
First, we load the pgffor
package and define a counter that will keep track of how many items there are in our list.
\usepackage{pgffor}
\newcounter{SortListTotal}
Then, we define a command that will store the list items.
\newcommand{\sortitem}[2]{\expandafter\def\csname SortListItem#1\endcsname{#2}\stepcounter{SortListTotal}}
The first argument of \sortitem
is the item's number; the second is the item text.
Now, we define a command to print out the list. This command also resets the counter, ready for a new sorted list.
\newcommand{\printsortlist}{\foreach\currentlistitem in{1,2,...,\value{SortListTotal}}{\item[\currentlistitem]\csname SortListItem\currentlistitem\endcsname}\setcounter{SortListTotal}{0}}
These commands are used as in the following:
\begin{enumerate}
\sortitem{3}{This is the third item.}
\sortitem{4}{This is the fourth item.}
\sortitem{1}{This is the first item.}
\sortitem{2}{This is the second item.}
\printsortlist
\end{enumerate}
Alternatively, if you want to specify the order after storing the items:
\makeatletter
\newcounter{SortListTotal}
\newcommand{\sortitem}[1]{\stepcounter{SortListTotal}\expandafter\def\csname SortItem\arabic{SortListTotal}\endcsname{#1}}
\newcommand{\printsortlist}[1]{\@for\currentitem:=#1\do{\item\csname SortItem\currentitem\endcsname}\setcounter{SortListTotal}{0}}
\makeatother
These commands are used as in the following:
\begin{enumerate}
\sortitem{This is the third item.}
\sortitem{This is the fourth item.}
\sortitem{This is the first item.}
\sortitem{This is the second item.}
\printsortlist{3,4,1,2}
\end{enumerate}
Best Answer
If the appearance is the only thing matters, then the following will do:
Code
Output