# Where do I find the source code of beamer in a MiKTeX installation?

I'm looking for the source code of default beamer themes (*.sty) for studying purpose.

A file content search for keywords like \setbeamertemplate only returns texworks.exe.

If these definitions are only shipped as binaries, is there another way to install the source?

• What sort of search did you do? By 'sources' I take it you actually mean the files used by TeX at run-time, not for example the source files for the beamer documentation? Probably you are looking for kpsewhich beamer.cls or similar. – Joseph Wright Aug 22 '14 at 8:48
• If you compile a Beamer document, you can see a few of the files used by studying the log file – cmhughes Aug 22 '14 at 8:56
• every time you process any latex document the full path of every included file is printed to the log file. – David Carlisle Aug 22 '14 at 9:49

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 using kpsewhich. For example, the main beamer class file is called beamer.cls, and

kpsewhich beamer.cls


at the Command Line/Terminal will find it. On my system it gives

c:/texlive/2014/texmf-dist/tex/latex/beamer/beamer.cls


Inside the beamer folder you will then find other files that come with it: a lot in the case of beamer, perhaps no additional files for a lot of packages. (The set up for beamer 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 called latex.ltx should you wish to read that! The beamer theme files have a naming pattern beamer<type>theme<name>.sty, so for example the 'Seagull' colour theme is defined by beamercolorthemeseagull.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 example

kpsewhich siunitx.dtx


gives me

c:/texlive/2014/texmf-dist/source/latex/siunitx/siunitx.dtx


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).

It's texmf\source\beamer-src.tar.bz2, where texmf has to be replaced with the main root of your installation — usually C:\Program Files\MiKTeX 2.9 for a 64 bit installation, or C:\Program Files (x86)\MiKTeX 2.9 for a 32 bit installation.

Generally speaking (almost) all sources are installed in Main Root\source. The exact location can be checked, for a particular package, with MiKTeX Package Manager: right-click on the package name and select the Files tab; a popup window will show the list of all files in the package, ordered by path, such as this one:

• Thank you. The MiKTeX Package Manager shows a relative path: texmf\tex\latex\beamer\base\  (wherein texmf seems to be a placeholder), while kpsewhich gives an absolute path, like: C:/Users/Jens/AppData/Roaming/MiKTeX/2.9/tex/latex/beamer/base/beamer.cls. – Jens Piegsa Aug 22 '14 at 10:38
• Such a path corresponds to a personal installation. For an installation for every user, texmf is C:\Program Files\MiKTeX by default. – Bernard Aug 22 '14 at 10:57