├── .gitignore ├── LICENSE ├── README.md ├── beamerthemeExecushares.sty ├── sample.pdf └── sample.tex /.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | 10 | ## Intermediate documents: 11 | *.dvi 12 | # these rules might exclude image files for figures etc. 13 | # *.ps 14 | # *.eps 15 | # *.pdf 16 | 17 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 18 | *.bbl 19 | *.bcf 20 | *.blg 21 | *-blx.aux 22 | *-blx.bib 23 | *.run.xml 24 | 25 | ## Build tool auxiliary files: 26 | *.fdb_latexmk 27 | *.synctex.gz 28 | *.synctex.gz(busy) 29 | *.pdfsync 30 | 31 | ## Auxiliary and intermediate files from other packages: 32 | 33 | # algorithms 34 | *.alg 35 | *.loa 36 | 37 | # amsthm 38 | *.thm 39 | 40 | # beamer 41 | *.nav 42 | *.snm 43 | *.vrb 44 | 45 | # glossaries 46 | *.acn 47 | *.acr 48 | *.glg 49 | *.glo 50 | *.gls 51 | 52 | # hyperref 53 | *.brf 54 | 55 | # listings 56 | *.lol 57 | 58 | # makeidx 59 | *.idx 60 | *.ilg 61 | *.ind 62 | *.ist 63 | 64 | # minitoc 65 | *.maf 66 | *.mtc 67 | *.mtc0 68 | 69 | # minted 70 | *.pyg 71 | 72 | # nomencl 73 | *.nlo 74 | 75 | # sagetex 76 | *.sagetex.sage 77 | *.sagetex.py 78 | *.sagetex.scmd 79 | 80 | # sympy 81 | *.sout 82 | *.sympy 83 | sympy-plots-for-*.tex/ 84 | 85 | # todonotes 86 | *.tdo 87 | 88 | # xindy 89 | *.xdy 90 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Kenton Hamaluik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Beamer-Theme-Execushares 2 | ======================== 3 | 4 | A minimalist and modern-ish Beamer theme. Blog post regarding how this was written can be found here: https://blog.hamaluik.ca/posts/better-beamer-themes/ 5 | -------------------------------------------------------------------------------- /beamerthemeExecushares.sty: -------------------------------------------------------------------------------- 1 | % the various libraries we will be using 2 | \usepackage{tikz} 3 | \usetikzlibrary{calc} 4 | \usepackage[none]{hyphenat} 5 | \usepackage{fontspec} 6 | \defaultfontfeatures{Ligatures=TeX} 7 | 8 | \newif\ifbeamer@pixelitem 9 | \beamer@pixelitemtrue 10 | \DeclareOptionBeamer{nopixelitem}{\beamer@pixelitemfalse} 11 | \ProcessOptionsBeamer 12 | 13 | % define colours 14 | % taken from pickton on Adobe Kuler: 15 | % https://kuler.adobe.com/Some-Kind-Of-Execushares-color-theme-3837185/ 16 | \definecolor{ExecusharesRed}{RGB}{230,37,52} 17 | \definecolor{ExecusharesBlack}{RGB}{43,40,40} 18 | \definecolor{ExecusharesBlue}{RGB}{22,190,207} 19 | \definecolor{ExecusharesWhite}{RGB}{255,255,243} 20 | \definecolor{ExecusharesGrey}{RGB}{107,110,108} 21 | 22 | % use Adobe's Source Pro fonts: 23 | % Source Serif Pro: https://github.com/adobe-fonts/source-serif-pro 24 | % Source Sans Pro: https://github.com/adobe-fonts/source-sans-pro 25 | % Source Code Pro: https://github.com/adobe-fonts/source-code-pro 26 | \setmainfont{Source Serif Pro} 27 | \setsansfont{Source Sans Pro} 28 | \setmonofont{Source Code Pro} 29 | 30 | % To use with pdflatex, 31 | % comment the fontspec package at the top 32 | %\usepackage{sourceserifpro} 33 | %\usepackage{sourcesanspro} 34 | %\usepackage{sourcecodepro} 35 | 36 | % set colours 37 | \setbeamercolor{itemize item}{fg=ExecusharesBlue} 38 | \setbeamercolor{enumerate item}{fg=ExecusharesBlue} 39 | \setbeamercolor{alerted text}{fg=ExecusharesBlue} 40 | \setbeamercolor{section in toc}{fg=ExecusharesBlack} 41 | 42 | % set fonts 43 | \setbeamerfont{itemize/enumerate body}{size=\large} 44 | \setbeamerfont{itemize/enumerate subbody}{size=\normalsize} 45 | \setbeamerfont{itemize/enumerate subsubbody}{size=\small} 46 | 47 | \ifbeamer@pixelitem 48 | % make the itemize bullets pixelated > 49 | \setbeamertemplate{itemize item}{ 50 | \tikz{ 51 | \draw[fill=ExecusharesBlue,draw=none] (0, 0) rectangle(0.1, 0.1); 52 | \draw[fill=ExecusharesBlue,draw=none] (0.1, 0.1) rectangle(0.2, 0.2); 53 | \draw[fill=ExecusharesBlue,draw=none] (0, 0.2) rectangle(0.1, 0.3); 54 | } 55 | } 56 | % make the subitems also pixelated >, but a little smaller and red 57 | \setbeamertemplate{itemize subitem}{ 58 | \tikz{ 59 | \draw[fill=ExecusharesRed,draw=none] (0, 0) rectangle(0.075, 0.075); 60 | \draw[fill=ExecusharesRed,draw=none] (0.075, 0.075) rectangle(0.15, 0.15); 61 | \draw[fill=ExecusharesRed,draw=none] (0, 0.15) rectangle(0.075, 0.225); 62 | } 63 | } 64 | \fi 65 | 66 | % disable navigation 67 | \setbeamertemplate{navigation symbols}{} 68 | 69 | % custom draw the title page above 70 | \setbeamertemplate{title page}{} 71 | 72 | % again, manually draw the frame title above 73 | \setbeamertemplate{frametitle}{} 74 | 75 | % disable "Figure:" in the captions 76 | \setbeamertemplate{caption}{\tiny\insertcaption} 77 | \setbeamertemplate{caption label separator}{} 78 | 79 | % since I don't know a better way to do this, these are all switches 80 | % doing `\setcounter{showProgressBar}{0}` will turn the progress bar off (I turn it off for Appendix slides) 81 | % etc 82 | \newcounter{showProgressBar} 83 | \setcounter{showProgressBar}{1} 84 | \newcounter{showSlideNumbers} 85 | \setcounter{showSlideNumbers}{1} 86 | \newcounter{showSlideTotal} 87 | \setcounter{showSlideTotal}{1} 88 | 89 | % Set beginning of backup slides 90 | % This lets you having the slides counter ending with the "thank you" slide and avoiding the annoying question "why is the thank you at slide 38/41?" 91 | \newcommand{\backupbegin}{ 92 | \newcounter{finalframe} 93 | \setcounter{finalframe}{\value{framenumber}} 94 | } 95 | \newcommand{\backupend}{ 96 | \setcounter{framenumber}{\value{finalframe}} 97 | } 98 | 99 | % use \makeatletter for our progress bar definitions 100 | % progress bar idea from http://tex.stackexchange.com/a/59749/44221 101 | % slightly adapted for visual purposes here 102 | \makeatletter 103 | \newcount\progressbar@tmpcounta% auxiliary counter 104 | \newcount\progressbar@tmpcountb% auxiliary counter 105 | \newdimen\progressbar@pbwidth %progressbar width 106 | \newdimen\progressbar@tmpdim % auxiliary dimension 107 | 108 | \newdimen\slidewidth % auxiliary dimension 109 | \newdimen\slideheight % auxiliary dimension 110 | 111 | % make the progress bar go across the screen 112 | %\progressbar@pbwidth=12.8cm 113 | \progressbar@pbwidth=\the\paperwidth 114 | \slidewidth=\the\paperwidth 115 | \slideheight=\the\paperheight 116 | 117 | % use tikz to draw everything 118 | % it may not be the best, but it's easy to work with 119 | % and looks good 120 | % TODO: base title slide and contents slide on something other than slide numbers :/ 121 | \setbeamertemplate{background}{ 122 | % deal with progress bar stuff 123 | % (calculate where it should go) 124 | \progressbar@tmpcounta=\insertframenumber 125 | \progressbar@tmpcountb=\inserttotalframenumber 126 | \progressbar@tmpdim=\progressbar@pbwidth 127 | \divide\progressbar@tmpdim by 100 128 | \multiply\progressbar@tmpdim by \progressbar@tmpcounta 129 | \divide\progressbar@tmpdim by \progressbar@tmpcountb 130 | \multiply\progressbar@tmpdim by 100 131 | 132 | \begin{tikzpicture} 133 | % set up the entire slide as the canvas 134 | \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); 135 | 136 | % the background 137 | \fill[color=ExecusharesWhite] (0,0) rectangle(\the\paperwidth,\the\paperheight); 138 | 139 | % separate the drawing based on if we're the first (title) slide or not 140 | \ifnum\thepage=1\relax 141 | % the title page 142 | % draw the fills 143 | \fill[color=ExecusharesRed] (0, 4cm) rectangle(\slidewidth,\slideheight); 144 | 145 | % draw the actual text 146 | \node[anchor=south,text width=\slidewidth-1cm,inner xsep=0.5cm] at (0.5\slidewidth,4cm) {\color{ExecusharesWhite}\Huge\textbf{\inserttitle}}; 147 | \node[anchor=north east,text width=\slidewidth-1cm,align=right] at (\slidewidth-0.4cm,4cm) {\color{ExecusharesBlack}\tiny\insertsubtitle}; 148 | \node[above] at(0.5\slidewidth,2.3cm) {\color{ExecusharesBlack}\tiny by}; 149 | \node at (0.5\slidewidth,2cm) {\color{ExecusharesBlack}\LARGE\insertauthor}; 150 | 151 | % add the date in the corner 152 | \node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertdate}; 153 | \else 154 | % NOT the title page 155 | % title bar 156 | \fill[color=ExecusharesRed] (0, \slideheight-1cm) rectangle(\slidewidth,\slideheight); 157 | 158 | % swap the comment on these to add section titles to slide titles 159 | %\node[anchor=north,text width=11.8cm,inner xsep=0.5cm,inner ysep=0.25cm] at (6.4cm,9.6cm) {\color{ExecusharesWhite}\Large\textbf{\insertsectionhead: \insertframetitle}}; 160 | \node[anchor=north,text width=\slidewidth-1cm,inner xsep=0.5cm,inner ysep=0.25cm] at (0.5\slidewidth,\slideheight) {\color{ExecusharesWhite}\huge\textbf{\insertframetitle}}; 161 | 162 | % if we're showing a progress bar, show it 163 | % (I disable the progress bar and slide numbers for the "Appendix" slides) 164 | \ifnum \value{showProgressBar}>0\relax% 165 | % the the progress bar icon in the middle of the screen 166 | \draw[fill=ExecusharesGrey,draw=none] (0cm,0cm) rectangle(\slidewidth,0.25cm); 167 | \draw[fill=ExecusharesRed,draw=none] (0cm,0cm) rectangle(\progressbar@tmpdim,0.25cm); 168 | 169 | % bottom information 170 | \node[anchor=south west] at(0cm,0.25cm) {\color{ExecusharesGrey}\tiny\vphantom{lp}\insertsection}; 171 | % if slide numbers are active 172 | \ifnum \value{showSlideNumbers}>0\relax% 173 | % if slide totals are active 174 | \ifnum \value{showSlideTotal}>0\relax% 175 | % draw both slide number and slide total 176 | \node[anchor=south east] at(\slidewidth,0.25cm) {\color{ExecusharesGrey}\tiny\insertframenumber/\inserttotalframenumber}; 177 | \else 178 | % slide totals aren't active, don't draw them 179 | \node[anchor=south east] at(\slidewidth,0.25cm) {\color{ExecusharesGrey}\tiny\insertframenumber}; 180 | \fi 181 | \fi 182 | % don't show the progress bar? 183 | \else 184 | % section title in the bottom left 185 | \node[anchor=south west] at(0cm,0cm) {\color{ExecusharesGrey}\tiny\vphantom{lp}\insertsection}; 186 | % if we're showing slide numbers 187 | \ifnum \value{showSlideNumbers}>0\relax% 188 | % if slide totals are active 189 | \ifnum \value{showSlideTotal}>0\relax% 190 | % draw both slide number and slide total 191 | \node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertframenumber/\inserttotalframenumber}; 192 | \else 193 | % slide totals aren't active, don't draw them 194 | \node[anchor=south east] at(\slidewidth,0cm) {\color{ExecusharesGrey}\tiny\insertframenumber}; 195 | \fi 196 | \fi 197 | \fi 198 | \fi 199 | \end{tikzpicture} 200 | } 201 | \makeatother 202 | 203 | % add section titles 204 | \AtBeginSection{\frame{\sectionpage}} 205 | \setbeamertemplate{section page} 206 | { 207 | \begin{tikzpicture} 208 | % set up the entire slide as the canvas 209 | \useasboundingbox (0,0) rectangle(\slidewidth,\slideheight); 210 | %\fill[color=ExecusharesWhite] (0,0) rectangle(\the\paperwidth,\the\paperheight); 211 | \fill[color=ExecusharesWhite] (-1cm, 2cm) rectangle (\slidewidth, \slideheight+0.1cm); 212 | \fill[color=ExecusharesRed] (-1cm, 0.5\slideheight-1cm) rectangle(\slidewidth, 0.5\slideheight+1cm); 213 | \node[text width=\the\paperwidth-1cm,align=center] at (0.4\slidewidth, 0.5\slideheight) {\color{ExecusharesWhite}\Huge\textbf{\insertsection}}; 214 | \end{tikzpicture} 215 | } 216 | -------------------------------------------------------------------------------- /sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hamaluik/Beamer-Theme-Execushares/7e1ca2f3ed8a0e2ce583d1d8ba634b422ab32cf1/sample.pdf -------------------------------------------------------------------------------- /sample.tex: -------------------------------------------------------------------------------- 1 | %!TEX program = xelatex 2 | \documentclass{beamer} 3 | 4 | \usepackage{blindtext} 5 | 6 | \usetheme{Execushares} 7 | 8 | \title{A New Beamer Theme That Works Well and Looks Great: Execushares} 9 | \subtitle{A custom modern minimalist Beamer theme designed from scratch} 10 | \author{Kenton Hamaluik} 11 | \date{June 1, 2014} 12 | 13 | \setcounter{showSlideNumbers}{1} 14 | 15 | \begin{document} 16 | \setcounter{showProgressBar}{0} 17 | \setcounter{showSlideNumbers}{0} 18 | 19 | \frame{\titlepage} 20 | 21 | \begin{frame} 22 | \frametitle{Contents} 23 | \begin{enumerate} 24 | \item Introduction \\ \textcolor{ExecusharesGrey}{\footnotesize\hspace{1em} The reasoning and background behind this theme} 25 | \item Lorem Text \\ \textcolor{ExecusharesGrey}{\footnotesize\hspace{1em} Just some Lorem Ipsum for filler} 26 | \item Conclusions \\ \textcolor{ExecusharesGrey}{\footnotesize\hspace{1em} Some closing thoughts} 27 | \end{enumerate} 28 | \end{frame} 29 | 30 | \setcounter{framenumber}{0} 31 | \setcounter{showProgressBar}{1} 32 | \setcounter{showSlideNumbers}{1} 33 | \section{Introduction} 34 | \begin{frame} 35 | \frametitle{Why Beamer?} 36 | \begin{enumerate} 37 | \item LaTeX is great! 38 | \item Beamer is easy to use! 39 | \item Why not? 40 | \end{enumerate} 41 | \end{frame} 42 | 43 | \begin{frame} 44 | \frametitle{Why Custom Themes?} 45 | \begin{itemize} 46 | \item The default Beamer themes are outdated and visually displeasing 47 | \item There aren't many Beamer themes readily available online 48 | \item Making custom Beamer themes is easy! 49 | \end{itemize} 50 | \end{frame} 51 | 52 | \section{Lorem Ipsum} 53 | \begin{frame} 54 | \frametitle{Lorem 1} 55 | \blindtext 56 | \end{frame} 57 | 58 | \begin{frame} 59 | \frametitle{Lorem 2} 60 | \blindtext 61 | \end{frame} 62 | 63 | \begin{frame} 64 | \frametitle{Lorem 3} 65 | \blindtext 66 | \end{frame} 67 | 68 | \section{Conclusions} 69 | \begin{frame} 70 | \frametitle{Closing Thoughts} 71 | \begin{itemize} 72 | \item Woo, Beamer! 73 | \end{itemize} 74 | \end{frame} 75 | 76 | \appendix 77 | \backupbegin 78 | \begin{frame} 79 | \frametitle{Backup slide 1} 80 | \blindtext 81 | \end{frame} 82 | \backupend 83 | 84 | \end{document} 85 | --------------------------------------------------------------------------------