diff options
| -rw-r--r-- | README.md | 54 | ||||
| -rw-r--r-- | beamercolorthemeibm.sty | 11 | ||||
| -rw-r--r-- | beamerinnerthemeibm.sty | 71 | ||||
| -rw-r--r-- | beamerouterthemeibm.sty | 29 | ||||
| -rw-r--r-- | beamerthemeibm.sty | 51 | ||||
| -rw-r--r-- | ibeamer.pdf | bin | 0 -> 26030 bytes | |||
| -rw-r--r-- | ibeamer.tex | 79 | ||||
| -rw-r--r-- | ibmcolors.sty | 129 |
8 files changed, 424 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..7c3bec1 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# IBeaMer + +LaTeX/Beamer templates using the [IBM design +language](https://www.ibm.com/design/language). + +### Fonts + +See `ibeamer.tex` for example usage and `ibeamer.pdf` for a sample. + +This template uses the [Lete Sans Math](https://github.com/abccsss/LeteSansMath) +and [IBM Plex](https://github.com/IBM/plex) fonts. + +These may already part of your system's `texlive` distribution. On archlinux, +for example, they are part of the `texlive-fontsextra` package. If not, they are +both licensed with the [OFL `v1.1`](https://openfontlicense.org) and can be +freely downloaded from their github sources. They are also available on CTAN +([LeteSansMath](https://ctan.org/pkg/lete-sans-math), +[Plex](https://ctan.org/pkg/plex-otf)), if that is easier to integrate into your +LaTeX workflow. + +In total, the following font files will be needed + +* `IBMPlexMono-Regular.otf` +* `IBMPlexSans-Italic.otf` +* `IBMPlexSans-Regular.otf` +* `LeteSansMath.otf` + +Because we are using non-standard fonts, this will need to be compiled use +`lualatex`. For example, `latexmk -pdflua ibeamer.tex`. + +### Installation + +To use this package, clone this repository into your +[`$TEXMFHOME`](https://www.tug.org/texlive/doc/texlive-en/texlive-en.html) +directory. For example + + git clone https://git.rueg.re/ibeamer "$TEXMFHOME/ibeamer" + +If your `$TEXMFHOME` is not set, choose a location for it and `export` it in +your shell configuration file. For example, create the directory + + mkdir -p "$HOME/.local/share/tex" + +and add + + export TEXMFHOME=$HOME/.local/share/tex + +to your `$HOME/.bashrc` (or `$HOME/.zshrc` on MacOS). + +(Note: `$HOME/.local/share` is the default location for +[`$XDG_DATA_HOME`](https://wiki.archlinux.org/title/XDG_Base_Directory), but you +can pick any directory). + +Then you can use the `ibeamer.tex` template from anywhere in your filesystem. diff --git a/beamercolorthemeibm.sty b/beamercolorthemeibm.sty new file mode 100644 index 0000000..130430b --- /dev/null +++ b/beamercolorthemeibm.sty @@ -0,0 +1,11 @@ +\mode<presentation> + +\setbeamercolor{titlepage}{fg=white} + +\setbeamercolor*{title page header}{fg=white} +\setbeamercolor*{author}{fg=white} +\setbeamercolor*{date}{fg=white} +\setbeamercolor{frametitle}{bg=white, fg=ibmblue} + +\mode +<all> diff --git a/beamerinnerthemeibm.sty b/beamerinnerthemeibm.sty new file mode 100644 index 0000000..ce228c8 --- /dev/null +++ b/beamerinnerthemeibm.sty @@ -0,0 +1,71 @@ +\usepackage{setspace} +\usepackage{etoolbox} + +\setbeamertemplate{background}{ + \begin{tikzpicture} + \useasboundingbox (0,0) rectangle(\the\paperwidth,\the\paperheight); + \fill[color=ibmblue50] (0,0) rectangle (\the\paperwidth,\the\paperheight); + \ifnum\thepage>1\relax% + \fill[white,opacity=1] (0,0) rectangle(\the\paperwidth,\the\paperheight); + \fi + \end{tikzpicture} +} + +\defbeamertemplate*{title page}{customized}[1][]{% + \usebeamercolor[fg]{titlepage} + + \ifdef{\topspace}{\topspace}{\vspace{3ex}} + + \begin{minipage}[t]{0.59\textwidth} + \usebeamerfont{date}\insertdate + \end{minipage} + \begin{minipage}[c]{0.40\textwidth} + \raggedleft + \inserttitlegraphic{} + \end{minipage} + + \ifdef{\titlespace}{\titlespace}{\vspace{5ex}} + + \begin{minipage}[t]{\ifdef{\titlewidth}{\titlewidth}{0.70}\linewidth} + \raggedright + + { + \usebeamerfont{title} + \begin{spacing}{1.1} + \inserttitle + \end{spacing} + } + + \ifdef{\printtitletag}{% + \ifdef{\titletagspace}{\titletagspace}{\vspace{2ex}} + + % Must use spacing environment because there is a font size change + \usebeamerfont{titletag} + \begin{spacing}{1.1} + \printtitletag + \end{spacing} + }{} + + \ifdef{\subtitlespace}{\subtitlespace}{\vspace{2ex}} + + % Must use spacing environment because there is a font size change + \usebeamerfont{subtitle} + \begin{spacing}{1.1} + \insertsubtitle + \end{spacing} + \end{minipage} + + \ifdef{\printurl}{% + \ifdef{\urlspace}{\urlspace}{\vspace{1ex}} + + \usebeamerfont{titleurl}{\printurl} + }{} + + \ifdef{\authorspace}{\authorspace}{\vspace{2ex}} \vfill + + \usebeamerfont{author}\insertauthor + + \usebeamerfont{institute}\insertinstitute + + \ifdef{\bottomspace}{\bottomspace}{\vspace{2ex}} +} diff --git a/beamerouterthemeibm.sty b/beamerouterthemeibm.sty new file mode 100644 index 0000000..d1fe290 --- /dev/null +++ b/beamerouterthemeibm.sty @@ -0,0 +1,29 @@ +\mode<presentation> + +\setbeamercolor{foot left}{fg=ibmcoolgray60} +\setbeamercolor{foot center}{fg=ibmcoolgray60} +\setbeamercolor{foot right}{fg=ibmcoolgray60} + +\setbeamerfont{foot left}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\tiny} +\setbeamerfont{foot center}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\tiny} +\setbeamerfont{foot right}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\tiny} + +\newcommand{\ibmbeamerfootermargin}{2ex} + +\defbeamertemplate*{footline}{} +{% + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=3.25ex,dp=1ex,sep=\ibmbeamerfootermargin,left]{foot left}% + \usebeamerfont{foot left}\ifdef\printfooterleft{\printfooterleft}{} + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=3.25ex,dp=1ex,sep=\ibmbeamerfootermargin,center]{foot center}% + \usebeamerfont{foot center}\ifdef\printfootercenter{\printfootercenter}{} + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.333333\paperwidth,ht=3.25ex,dp=1ex,sep=\ibmbeamerfootermargin,right]{foot right}% + \usebeamerfont{foot right}\insertframenumber\,/\,\inserttotalframenumber + \end{beamercolorbox}}% + \vskip-\ibmbeamerfootermargin% +} + +\mode<all> diff --git a/beamerthemeibm.sty b/beamerthemeibm.sty new file mode 100644 index 0000000..8001462 --- /dev/null +++ b/beamerthemeibm.sty @@ -0,0 +1,51 @@ +\mode<presentation> + +\RequirePackage{tikz} + +% Settings +\useinnertheme{ibm} +\useoutertheme{ibm} +\usecolortheme{ibm} + +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{blocks}[rounded][shadow=true] + +% Set usual fonts +\RequirePackage{plex-otf} + +% Set title fonts +\setbeamerfont{title}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\Large} +\setbeamerfont{subtitle}{family=\fontspec{IBMPlexSans-Italic.otf}, size=\scriptsize} +\setbeamerfont{titletag}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\tiny} +\setbeamerfont{author}{family=\fontspec{IBMPlexSans-Regular.otf}} +\setbeamerfont{date}{family=\fontspec{IBMPlexSans-Regular.otf}, size=\scriptsize} +\setbeamerfont{frametitle}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\large} +\setbeamerfont{titleurl}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\scriptsize} +\setbeamerfont{footer}{family=\fontspec{IBMPlexMono-Regular.otf}, size=\tiny} + +% Set math fonts +\usepackage{unicode-math} +\setmathfont{LeteSansMath.otf} +\setmathrm{IBMPlexSans-Regular.otf} +\setmathsf{IBMPlexSans-Regular.otf} +\setmathtt{IBMPlexSans-Regular.otf} + +% Set line spacing +\setstretch{1.25} + +\newcommand{\settopspace}[1]{\newcommand{\topspace}{\vspace{#1}}} +\newcommand{\settitlespace}[1]{\newcommand{\titlespace}{\vspace{#1}}} +\newcommand{\setsubtitlespace}[1]{\newcommand{\subtitlespace}{\vspace{#1}}} +\newcommand{\settitletagspace}[1]{\newcommand{\titletagspace}{\vspace{#1}}} +\newcommand{\setauthorspace}[1]{\newcommand{\authorspace}{\vspace{#1}}} +\newcommand{\seturlspace}[1]{\newcommand{\urlspace}{\vspace{#1}}} +\newcommand{\setbottomspace}[1]{\newcommand{\bottomspace}{\vspace{#1}}} + +\newcommand{\seturl}[1]{\newcommand{\printurl}{#1}} +\newcommand{\titletag}[1]{\newcommand{\printtitletag}{#1}} + +\newcommand{\settitlewidth}[1]{\newcommand{\titlewidth}{#1}} + +\newcommand{\footerleft}[1]{\newcommand{\printfooterleft}{#1}} +\newcommand{\footercenter}[1]{\newcommand{\printfootercenter}{#1}} +\mode<all> diff --git a/ibeamer.pdf b/ibeamer.pdf Binary files differnew file mode 100644 index 0000000..f08d232 --- /dev/null +++ b/ibeamer.pdf diff --git a/ibeamer.tex b/ibeamer.tex new file mode 100644 index 0000000..67a8199 --- /dev/null +++ b/ibeamer.tex @@ -0,0 +1,79 @@ +\documentclass[aspectratio=1610]{beamer} +\usepackage{ibmcolors} +\usetheme{ibm} + +\title{LaTeX Template using IBM Design Language} +\subtitle{With a subtitle} +\author{I. B. Emma} +\institute{IBM Research Europe -- Zurich} +% \titlegraphic{<insert institution logo here>} +\date{Conference Venue, July 2024} + +\settopspace{1ex} +\settitlespace{8ex} +\setsubtitlespace{4ex} +\setauthorspace{6ex} +\setbottomspace{1ex} + +\settitlewidth{0.85} + +\begin{document} + +\begin{frame} + \titlepage{} +\end{frame} + +\begin{frame}{IBM Design Language: Colour Palette} + Example: + {\footnotesize + \texttt{\{{\textbackslash}color\{ibmblue60\}blue text\}} + } + or + {\footnotesize + \texttt{\{{\textbackslash}color\{ibmred20\}red text\}} + } + + \vspace{2ex} + + \centering + \begin{tikzpicture} + \def\ibmcolours{blue, cyan, teal, green, red, magenta, purple, coolgray, gray, warmgray} + \foreach \colour [count=\colournum] in \ibmcolours {% + \foreach \level [count=\levelnum] in {10,20,...,50} {% + \fill [fill=ibm\colour\level,draw=ibm\colour\level] (1.25*\colournum-1.25,0.5*\levelnum-0.5) + rectangle++ (1.25, 0.5) + node[midway] {{\tiny\texttt{\level}}}; + } + \foreach \level [count=\levelnum] in {60,70,...,100} {% + \fill [fill=ibm\colour\level,draw=ibm\colour\level] (1.25*\colournum-1.25,0.5*\levelnum+4*0.5) + rectangle++ (1.25, 0.5) + node[midway] {{\color{white}\tiny\texttt{\level}}}; + } + \path [fill=white,draw=white] (1.25*\colournum-1.25,5) + rectangle++ (1.25, 0.5) + node[midway] {{\tiny\texttt{\colour}}}; + } + \end{tikzpicture} +\end{frame} + +\begin{frame}{Mathematics is important} + Here is an equation + % + \begin{align*} + \Phi = \sum_{i=1}^n \phi_i + \end{align*} + \begin{align*} + (2Q)_x + = \frac{9x^4 + 6Ax^2 + A^2 - 8y^2x}{4y^2} + \end{align*} +\end{frame} + +\begin{frame}{So are big questions} + + {\color{ibmred50} Idea} Use isogenies in your schemes! + + {\color{ibmmagenta50} Question} How to make them efficient? + + {\color{ibmteal50} Answer} Higher-dimensions! +\end{frame} +\end{document} diff --git a/ibmcolors.sty b/ibmcolors.sty new file mode 100644 index 0000000..ec9fa79 --- /dev/null +++ b/ibmcolors.sty @@ -0,0 +1,129 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ibmcolors}[2025/03/10 Support for IBM's colour palette] + +% Pre-defined colors +% https://www.ctan.org/pkg/xcolor +\RequirePackage{xcolor} + +\definecolor{ibmred100}{RGB}{45, 7, 9} +\definecolor{ibmred90}{RGB}{82, 4, 8} +\definecolor{ibmred80}{RGB}{117, 14, 19} +\definecolor{ibmred70}{RGB}{162, 25, 31} +\definecolor{ibmred60}{RGB}{218, 30, 40} +\definecolor{ibmred50}{RGB}{250, 77, 86} +\definecolor{ibmred40}{RGB}{255, 131, 137} +\definecolor{ibmred30}{RGB}{255, 179, 184} +\definecolor{ibmred20}{RGB}{255, 215, 217} +\definecolor{ibmred10}{RGB}{255, 241, 241} +\definecolor{ibmmagenta100}{RGB}{42, 10, 24} +\definecolor{ibmmagenta90}{RGB}{81, 2, 36} +\definecolor{ibmmagenta80}{RGB}{116, 9, 55} +\definecolor{ibmmagenta70}{RGB}{159, 24, 83} +\definecolor{ibmmagenta60}{RGB}{208, 38, 112} +\definecolor{ibmmagenta50}{RGB}{238, 83, 150} +\definecolor{ibmmagenta40}{RGB}{255, 126, 182} +\definecolor{ibmmagenta30}{RGB}{255, 175, 210} +\definecolor{ibmmagenta20}{RGB}{255, 214, 232} +\definecolor{ibmmagenta10}{RGB}{255, 240, 247} +\definecolor{ibmpurple100}{RGB}{28, 15, 48} +\definecolor{ibmpurple90}{RGB}{49, 19, 94} +\definecolor{ibmpurple80}{RGB}{73, 29, 139} +\definecolor{ibmpurple70}{RGB}{105, 41, 196} +\definecolor{ibmpurple60}{RGB}{138, 63, 252} +\definecolor{ibmpurple50}{RGB}{165, 110, 255} +\definecolor{ibmpurple40}{RGB}{190, 149, 255} +\definecolor{ibmpurple30}{RGB}{212, 187, 255} +\definecolor{ibmpurple20}{RGB}{232, 218, 255} +\definecolor{ibmpurple10}{RGB}{246, 242, 255} +\definecolor{ibmblue100}{RGB}{0, 17, 65} +\definecolor{ibmblue90}{RGB}{0, 29, 108} +\definecolor{ibmblue80}{RGB}{0, 45, 156} +\definecolor{ibmblue70}{RGB}{0, 67, 206} +\definecolor{ibmblue60}{RGB}{15, 98, 254} +\definecolor{ibmblue50}{RGB}{69, 137, 255} +\definecolor{ibmblue40}{RGB}{120, 169, 255} +\definecolor{ibmblue30}{RGB}{166, 200, 255} +\definecolor{ibmblue20}{RGB}{208, 226, 255} +\definecolor{ibmblue10}{RGB}{237, 245, 255} +\definecolor{ibmcyan100}{RGB}{6, 23, 39} +\definecolor{ibmcyan90}{RGB}{1, 39, 73} +\definecolor{ibmcyan80}{RGB}{0, 58, 109} +\definecolor{ibmcyan70}{RGB}{0, 83, 154} +\definecolor{ibmcyan60}{RGB}{0, 114, 195} +\definecolor{ibmcyan50}{RGB}{17, 146, 232} +\definecolor{ibmcyan40}{RGB}{51, 177, 255} +\definecolor{ibmcyan30}{RGB}{130, 207, 255} +\definecolor{ibmcyan20}{RGB}{186, 230, 255} +\definecolor{ibmcyan10}{RGB}{229, 246, 255} +\definecolor{ibmteal100}{RGB}{8, 26, 28} +\definecolor{ibmteal90}{RGB}{2, 43, 48} +\definecolor{ibmteal80}{RGB}{0, 65, 68} +\definecolor{ibmteal70}{RGB}{0, 93, 93} +\definecolor{ibmteal60}{RGB}{0, 125, 121} +\definecolor{ibmteal50}{RGB}{0, 157, 154} +\definecolor{ibmteal40}{RGB}{8, 189, 186} +\definecolor{ibmteal30}{RGB}{61, 219, 217} +\definecolor{ibmteal20}{RGB}{158, 240, 240} +\definecolor{ibmteal10}{RGB}{217, 251, 251} +\definecolor{ibmgreen100}{RGB}{7, 25, 8} +\definecolor{ibmgreen90}{RGB}{2, 45, 13} +\definecolor{ibmgreen80}{RGB}{4, 67, 23} +\definecolor{ibmgreen70}{RGB}{14, 96, 39} +\definecolor{ibmgreen60}{RGB}{25, 128, 56} +\definecolor{ibmgreen50}{RGB}{36, 161, 72} +\definecolor{ibmgreen40}{RGB}{66, 190, 101} +\definecolor{ibmgreen30}{RGB}{111, 220, 140} +\definecolor{ibmgreen20}{RGB}{167, 240, 186} +\definecolor{ibmgreen10}{RGB}{222, 251, 230} +\definecolor{ibmcoolgray100}{RGB}{18, 22, 25} +\definecolor{ibmcoolgray90}{RGB}{33, 39, 42} +\definecolor{ibmcoolgray80}{RGB}{52, 58, 63} +\definecolor{ibmcoolgray70}{RGB}{77, 83, 88} +\definecolor{ibmcoolgray60}{RGB}{105, 112, 119} +\definecolor{ibmcoolgray50}{RGB}{135, 141, 150} +\definecolor{ibmcoolgray40}{RGB}{162, 169, 176} +\definecolor{ibmcoolgray30}{RGB}{193, 199, 205} +\definecolor{ibmcoolgray20}{RGB}{221, 225, 230} +\definecolor{ibmcoolgray10}{RGB}{242, 244, 248} +\definecolor{ibmgray100}{RGB}{22, 22, 22} +\definecolor{ibmgray90}{RGB}{38, 38, 38} +\definecolor{ibmgray80}{RGB}{57, 57, 57} +\definecolor{ibmgray70}{RGB}{82, 82, 82} +\definecolor{ibmgray60}{RGB}{111, 111, 111} +\definecolor{ibmgray50}{RGB}{141, 141, 141} +\definecolor{ibmgray40}{RGB}{168, 168, 168} +\definecolor{ibmgray30}{RGB}{198, 198, 198} +\definecolor{ibmgray20}{RGB}{224, 224, 224} +\definecolor{ibmgray10}{RGB}{244, 244, 244} +\definecolor{ibmwarmgray100}{RGB}{23, 20, 20} +\definecolor{ibmwarmgray90}{RGB}{39, 37, 37} +\definecolor{ibmwarmgray80}{RGB}{60, 56, 56} +\definecolor{ibmwarmgray70}{RGB}{86, 81, 81} +\definecolor{ibmwarmgray60}{RGB}{114, 110, 110} +\definecolor{ibmwarmgray50}{RGB}{143, 139, 139} +\definecolor{ibmwarmgray40}{RGB}{173, 168, 168} +\definecolor{ibmwarmgray30}{RGB}{202, 197, 196} +\definecolor{ibmwarmgray20}{RGB}{229, 224, 223} +\definecolor{ibmwarmgray10}{RGB}{247, 243, 242} + +\colorlet{ibmblue}{ibmblue60} +\colorlet{ibmcyan}{ibmcyan60} +\colorlet{ibmteal}{ibmteal60} +\colorlet{ibmgreen}{ibmgreen60} +\colorlet{ibmred}{ibmred60} +\colorlet{ibmmagenta}{ibmmagenta60} +\colorlet{ibmpurple}{ibmpurple60} +\colorlet{ibmcoolgray}{ibmcoolgray60} +\colorlet{ibmgray}{ibmgray60} +\colorlet{ibmwarmgray}{ibmwarmgray60} + +\newcommand{\ibmblue}{ibmblue60} +\newcommand{\ibmcyan}{ibmcyan60} +\newcommand{\ibmteal}{ibmteal60} +\newcommand{\ibmgreen}{ibmgreen60} +\newcommand{\ibmred}{ibmred60} +\newcommand{\ibmmagenta}{ibmmagenta60} +\newcommand{\ibmpurple}{ibmpurple60} +\newcommand{\ibmcoolgray}{ibmcoolgray60} +\newcommand{\ibmgray}{ibmgray60} +\newcommand{\ibmwarmgray}{ibmwarmgray60} |