Here's half an answer.
The reason that it is half an answer is because of the way that beamer builds a frame. In essence, the stuff on a frame can be divided in to "frame" and "content". The "frame" component is actually typeset by hooking in to the headers and footers bit of TeX's output routine. This ensures that it goes behind the actual content. The "content" is then rendered afterwards.
The "frame" component consists of all the stuff like backgrounds, sidebars, and so forth. Interestingly, the frame title is part of the "content".
What I've worked out so far is the order in which the "frame" stuff is laid out, and (mostly) what it consists of. To follow the trail, you need to look at the definition of \ps@navigation
in beamerbaseframecomponents.sty
and search for everywhere it has a \usebeamertemplate
(though you have to be on the lookout for calls to other functions that also call templates).
Exactly what each piece is and how it is to be used is covered in the manual (section 8.2) as Matthew says, but that doesn't tell you the order (well, not obviously) and on the basis that a picture is worth a thousand words anyway, I thought that the following pictures might help.
First, a frame itself:
And now the exploded diagram, at least as far as the "frame" part goes.
It's not quite the same as I didn't take apart the templates and reuse them, but hopefully each bit is unique enough to show what it is.
With regard to the content, then there's less need to do the "explosion" because stuff tends not to get put on top of other stuff, so then it's just a question of knowing what can go in to a frame. The exception is, perhaps, the frame title which one could consider as part of the "frame" part but which, by reason of implementation, is in the "content" part. So for that, reading the beamer
user guide is probably as good as you're going to get.
I shan't put the code for doing the above. It isn't pleasant! Nor is it readily adaptable to other situations.
Best Answer
The files loaded by TeX to use a LaTeX document class such as
beamer
are text files: there are no binaries involved. If you know the name of the file TeX is loading you can find it usingkpsewhich
. For example, the mainbeamer
class file is calledbeamer.cls
, andat the Command Line/Terminal will find it. On my system it gives
Inside the
beamer
folder you will then find other files that come with it: a lot in the case ofbeamer
, perhaps no additional files for a lot of packages. (The set up forbeamer
is pretty complex: there are a lot of files to read if you want to find a particular piece of code.)(Class files all have extension
.cls
, package files all have extension.sty
that's built-in to the LaTeX kernel, which is calledlatex.ltx
should you wish to read that! Thebeamer
theme files have a naming patternbeamer<type>theme<name>.sty
, so for example the 'Seagull' colour theme is defined bybeamercolorthemeseagull.sty
.)Some document classes and packages use a source/extracted approach where the sources may not be directly usable. They might be found using
kpsewhich
, for examplegives me
Note that
beamer
doesn't use such sources so this won't show anything. Also notice that MiKTeX and TeX Live have a different approach to the source files: TeX Live includes them all unzipped and so easy-to-find, while in MiKTeX most of the sources are compressed inside<installation root>\source
.As noted in a comment, the
.log
file generated by TeX includes the location of each file loaded. MiKTeX always gives the full path for these, while TeX Live gives relative paths where appropriate (making it a bit easier to read in some cases).