Skip to content

Instantly share code, notes, and snippets.

@pstjohn
Created November 11, 2014 00:12
Show Gist options
  • Save pstjohn/b5e5589617cc41cbd037 to your computer and use it in GitHub Desktop.
Save pstjohn/b5e5589617cc41cbd037 to your computer and use it in GitHub Desktop.
Macros for beamer presentations
\usepackage{color}
\usepackage{longtable}
\usepackage{ragged2e}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{booktabs}
\usepackage{bbding}
\usepackage{bibentry}
\usepackage{setspace}
\renewcommand\cite{\bibentry}
% math stuff
\usepackage{amsmath,amssymb,amsfonts,mathrsfs,mathtools}
\let\Tiny=\tiny
% define fonts
\usepackage{lmodern}
\usepackage[scale=0.9]{tgadventor} % sf font
\usepackage{ascii} % tt font
\usepackage[sc]{mathpazo} % math and serif font
\usepackage[T1]{fontenc}
\usepackage{bm}
\setbeamertemplate{navigation symbols}{}
\usetheme{CambridgeUS}
\usefonttheme{professionalfonts}
\usecolortheme{myorange}
\usecolortheme{orchid}
\useinnertheme{circles}
% \useoutertheme{noshading}
\useoutertheme{myshadow}
\setbeamercovered{invisible}
\newif\ifplacelogo % create a new conditional
\placelogotrue % set it to true
\logo{\ifplacelogo\vspace{-3mm}\includegraphics[height=0.6cm]{figures/logo}\fi}
\defbeamertemplate*{slidenumber}{framenumber}
{\insertframenumber}
\defbeamertemplate{slidenumber}{totalframenumber}
{\insertframenumber\,/\,\inserttotalframenumber}
\defbeamertemplate{slidenumber}{pagenumber}
{\insertpagenumber}
\defbeamertemplate{slidenumber}{totalpagenumber}
{\insertpagenumber\,/\,\insertpresentationendpage}
\defbeamertemplate*{footline}{split slidenumber right}
{%
\leavevmode%
\hbox{\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.0ex,dp=.875ex,leftskip=.3cm,rightskip=.3cm]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertdate%
\hfill%
\insertshortauthor%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.0ex,dp=.875ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
\usebeamerfont{title in head/foot}\insertshorttitle%
\hskip2ex plus1fill%
{\bfseries \insertframenumber}/\inserttotalframenumber%
% \usebeamertemplate{slidenumber}%
\end{beamercolorbox}}%
\vskip0pt%
}
\newcommand<>{\fullpagegraphic}[2][1.0]{
\only#3{
\dimen1=#1\textwidth\relax
\dimen2=#1\textheight\relax
\dimen3=0.8\dimen2\relax
\begin{center}
\includegraphics[width=\dimen1,height=\dimen3,keepaspectratio]{#2}
\end{center}
}}
\usepackage{rotating}
\makeatletter
% add a macro that saves its argument
\newcommand{\footlineextra}[1]{\gdef\insertfootlineextra{#1}}
\newbox\footlineextrabox
% add a beamer template that sets the saved argument in a box.
% The * means that the beamer font and color "footline extra" are automatically added.
\defbeamertemplate*{footline extra}{default}{
\begin{beamercolorbox}[wd=0.85\paperwidth,ht=2.25ex,dp=1ex,leftskip=\Gm@lmargin]{footline extra}
% \setstretch{2}
\insertfootlineextra
% \par\vspace{2.5pt}
\end{beamercolorbox}
}
\addtobeamertemplate{footline}{%
% set the box with the extra footline material but make it add no vertical space
\setbox\footlineextrabox=\vbox{\usebeamertemplate*{footline extra}}
\vskip -\ht\footlineextrabox
\vskip -\dp\footlineextrabox
\box\footlineextrabox%
}
{}
% patch \begin{frame} to reset the footline extra material
\let\beamer@original@frame=\frame
\def\frame{\gdef\insertfootlineextra{}\beamer@original@frame}
\footlineextra{}
\makeatother
\setbeamercolor{footline extra}{fg=structure.fg}% for instance
\setbeamerfont{footline extra}{size=\scriptsize}
\providecommand{\highlightmath}[1]{\colorbox{mypurple!20!white}{$\displaystyle #1$}}
\providecommand{\highlight}[1]{\colorbox{mypurple!20!white}{#1}}
% \newcommand{\bibliographylocation}{$HOME/Dropbox/Documents/Mendeley/library.bib}
% The following commands allow me to embed notes in the pdf for presentation.py's display on my mac. use \exnote{sentence 1. Sentence 2.} to add two lines of text to the slide. Must end with a period.
\usepackage{pdfcomment}
\newcommand{\pdfnote}[1]{\marginnote{\pdfcomment[icon=note]{#1}}}
\def\exnote#1{%
\begingroup
\edef\@tempa{#1\space}%
\expandafter\endgroup
\expandafter\readwords\@tempa\relax
}
\def\readwords#1. #2\relax{%
\doword{#1}% #1 = substr, #2 = rest of string
\begingroup
\ifx\relax#2\relax % is #2 empty?
\def\next{\endgroup\endexnote}% your own end-macro if required
\else
\def\next{\endgroup\readwords#2\relax}%
\fi
\next
}
\def\doword#1{\pdfnote{#1.}}
\def\endexnote{}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment