Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Author Matei Climescu for the SHiP Collaboration/Outreach group

Extra Credits to Hanae Tilquin for styling and feedback

SHiP / CERN Beamer theme — beamerthemeSHiP_deepcerise_embedded

A self-contained LuaLaTeX Beamer theme built on Metropolis, in SHiP/CERN house style. Every image it uses is embedded in the .sty as base64 and decoded at load time, so the single file is the only thing you need to ship — there are no companion image files.

Two colourways are provided: deepcerise (pink, default) and shipblue (blue). Each slide carries a generated cloud header band across the top and a sea strip (breaking wave / kraken / shark) across the bottom, with either the SHiP schooner or a skull riding in the bottom-right corner.

  • Version: v2.0 (2026-06-24)
  • Package name: beamerthemeSHiP_deepcerise_embedded
  • Engine: LuaLaTeX (required — see below)
  • Base theme: Metropolis

Requirements

  • LuaLaTeX. The embedded PNGs are decoded through \directlua, so the deck must be compiled with lualatex. Under pdfLaTeX/XeLaTeX the images are not written out and the theme prints a warning instead of the artwork.
  • Metropolis (beamertheme-metropolis) must be installed. Metropolis pulls in fontspec, which under LuaLaTeX needs luaotfload and its fonts (Fira is Metropolis's default). A normal TeX Live / MiKTeX install has these.
  • Packages auto-loaded by the theme: tikz, tcolorbox (with the skins library), graphicx, etoolbox. You don't load these yourself.

No image files, no \graphicspath, no external assets — everything is inside the .sty.


Installation

Place beamerthemeSHiP_deepcerise_embedded.sty either next to your .tex file or somewhere on your TeX search path (e.g. ~/texmf/tex/latex/, then texhash). The filename must stay exactly as-is, because Beamer derives it from the theme name.

Load it the Beamer way — Beamer prepends beamertheme, so you drop that prefix:

\documentclass{beamer}
\usetheme{SHiP_deepcerise_embedded}   % loads beamerthemeSHiP_deepcerise_embedded.sty

Quick start

\documentclass[aspectratio=169]{beamer}
\usetheme[shipblue, footer]{SHiP_deepcerise_embedded}

\title{Search for Hidden Particles}
\author{SHiP Collaboration}
\date{2026}

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}{Motivation}
  Physics beyond the Standard Model \SHiPbullet\ hidden sector portals.
\end{frame}

\end{document}

Compile with lualatex, and run it twice so the TikZ backgrounds settle:

lualatex mydeck.tex
lualatex mydeck.tex

Options

Pass these in the optional argument of \usetheme[...]{SHiP_deepcerise_embedded}.

Colour scheme

Option Effect
deepcerise Pink scheme (default)
shipblue Blue scheme

Bottom-right emblem

Option Effect
ship SHiP schooner in the corner (default)
skull Skull in the corner instead

Clouds

Option Effect
noclouds Remove the cloud header band on every slide

Footer

By default the plain Metropolis footer is used. footer switches on a custom bottom bar showing speaker, short title, date and slide number; the no… options hide individual fields of that bar.

Option Effect
footer Show the speaker / title / date / slide-number bar
nofooter Keep the plain Metropolis footer (default)
noauthor Hide the speaker field in the footer bar
notitle Hide the short-title field in the footer bar
nodate Hide the date field in the footer bar
noframenumber Hide the slide number in the footer bar

Examples:

\usetheme[footer]{SHiP_deepcerise_embedded}
\usetheme[shipblue, footer, noclouds]{SHiP_deepcerise_embedded}
\usetheme[skull]{SHiP_deepcerise_embedded}

Preamble commands

\SHiPcolorscheme{deepcerise|shipblue}

Set (or change) the colour scheme in the preamble instead of via an option:

\SHiPcolorscheme{shipblue}

Accepts shipblue/blue for the blue scheme; anything else selects the pink (deepcerise) scheme.


Per-frame commands

These are meant to be used inside a frame (except \footerstyle, which is dual-purpose — see below).

\framestyle{0|1|2|3} — pick the sea strip

Value Bottom graphic
1 breaking wave
2 kraken
3 shark
0 none (no bottom strip on this frame)

With no \framestyle, the three sea strips auto-alternate 1 → 2 → 3 → 1 … across your slides.

\begin{frame}{Results}
  \framestyle{2}   % kraken under this slide
  ...
\end{frame}

\footerstyle{ship|skull} — pick the corner emblem

  • Inside a frame: overrides the emblem for that frame only; the next frame reverts to the deck-wide default.
  • In the preamble or between frames: sets the deck-wide default (equivalent to the ship / skull options).
% deck-wide default set once:
\footerstyle{skull}

\begin{frame}{This one keeps the ship}
  \footerstyle{ship}     % just this frame
  ...
\end{frame}

\framenocloud — drop the cloud header on this frame

Replaces the cloud band with a plain coloured header bar for the current frame (useful behind a busy title). Global removal is the noclouds option.

\framenonumber — drop the slide number on this frame

Only relevant when the footer bar is enabled.


Inline emblems

Small, scheme-aware image glyphs you can drop into running text. They recolour automatically with the active scheme.

Command Glyph
\SHiPbullet SHiP symbol bullet
\SHiPanchor anchor
\SHiPpaddle paddle
Key channels \SHiPbullet\ dark photons \SHiPbullet\ heavy neutral leptons.

Colours

The theme defines named colours you can use anywhere (\color{...}, \textcolor{...}, fg=/bg= in Beamer templates).

Scheme-tracking (change with the active scheme)

Name Pink (deepcerise) Blue (shipblue)
deepcerise #D93387 #1565C0 (shipblue)
cerisemid #E87DB1 #32C9DD (shipcyan)
babypink #F8C8DC #C8E1F5 (light blue)

Note: deepcerise is the deck's accent colour, so under the blue scheme it resolves to blue. If you want a colour pinned to a specific hue regardless of scheme, define your own, e.g. \definecolor{fixedcerise}{HTML}{D93387}.

Fixed nautical colours (always the same)

Name Hex
shipblue #1565C0
shipnavy #06157B
shipcyan #32C9DD

To pass a raw hex value inline, use the [HTML] model (no #):

\textcolor[HTML]{D93387}{some pink text}

Blocks

block, alertblock and exampleblock are restyled with rounded tcolorbox panels that follow the scheme:

  • block — deepcerise title bar, faint deepcerise body.
  • alertblock — darker (deepcerise!85!black) title bar.
  • exampleblock — cerisemid title bar, faint cerisemid body.

A block with an empty title renders as a body-only panel (no empty coloured bar), so \begin{block}{} looks clean.


Title page and slide furniture

  • Cloud header — a generated cloud band sits across the top of every slide, behind a transparent frame-title bar (so the title reads over the clouds). noclouds / \framenocloud fall back to a plain coloured bar.
  • Title page — the cloud band is the title-page banner; the title itself is plain text in the scheme colour (there is no separate coloured title band).
  • Sea strip — the bottom of each slide carries a wave / kraken / shark strip (see \framestyle) with the ship or skull emblem (see \footerstyle / skull).
  • Footer — optional (footer) bar with speaker, title, date and a bold slide number.

Embedded assets

For reference, the twenty PNGs baked into the .sty (decoded to the compile directory at load) are:

  • SHiP-Symbol-{cerise,blue}.png, anchor-{cerise,blue}.png, paddle-{cerise,blue}.png — inline glyphs.
  • cloud-band-{cerise,blue}.png — the top header band.
  • waves-{cerise,blue}-{wave,kraken,shark}.png — sea strips with the schooner.
  • waves-{cerise,blue}-{wave,kraken,shark}-skull.png — sea strips with the skull.

The file is ~1.3 MB because it carries both the ship and skull strip sets so you can switch at will. If you only ever need one emblem, dropping the unused six strips roughly halves the sea-strip payload.


Compiling — checklist

  1. Use lualatex (not pdflatex/xelatex).
  2. Compile twice so the TikZ backgrounds are placed correctly.
  3. Make sure Metropolis and its fonts are installed.
lualatex mydeck.tex && lualatex mydeck.tex

Troubleshooting

Symptom Cause / fix
Warning about needing LuaLaTeX; no artwork You compiled with pdf/xelatex. Use lualatex.
luaotfload / font / fontspec errors Metropolis needs system fonts under LuaLaTeX. Install luaotfload + Fira (or set another font).
Backgrounds/emblems in the wrong place Compile a second time.
File beamerthemeSHiP_deepcerise_embedded.sty not found Put the .sty beside your .tex or on the TeX path; keep the exact filename.
\footerstyle{skull} inside a frame doesn't stick to later frames That's intended: inside a frame it's a per-frame override. Set the default via the skull option or \footerstyle{skull} in the preamble.

Regenerating the artwork (optional)

The embedded images are produced by a small Python pipeline (Pillow + NumPy + SciPy) that ships alongside the theme:

  • cloudband.py — generates the structured cloud header bands.
  • make_strips.py — builds the ship and skull sea-strip sets (erases the ship, rebuilds the sea, composites the skull artwork recoloured per scheme).
  • skull.py / skullify.py — earlier procedural-skull generator and the ship→skull swap helper.

You only need these if you want to change the artwork; for normal use the .sty is fully self-contained.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages