aspi6246/beamer-check
> Audit and fix Beamer slide decks for compilation errors, layout problems, and visual issues. Use this skill whenever the user says "check my slides", "fix my slides", "the slides don't compile", "text is running off the page", "slides look wrong", or after generating a Beamer deck to verify it before delivering. Also use when the user mentions overfull boxes, overlapping content, broken images, or any Beamer formatting issue.
npx skills add https://github.com/aspi6246/Claude-Code-Skills-for-Academics --skill beamer-check
This skill implements a compile → inspect → fix → verify loop for Beamer
slide decks. The goal is to catch and fix all issues before the user has to
open the PDF themselves.
Run the full audit protocol below. Do not skip the visual inspection phase —
compilation warnings alone do not catch all layout problems.
Run the diagnostic script:
python {baseDir}/scripts/beamer_check.py <path-to-tex-file> --output-dir <work-dir>/beamer-check-output
This will:
.tex file twice with pdfLaTeXdiagnostics.json summaryRead the script output and the diagnostics.json file. Categorise every
issue found:
This is the most important phase. Many layout problems produce no warnings
at all.
Open and examine EVERY rendered slide image in
beamer-check-output/slides/. For each slide, check for:
\footnotesize on a 16:9 slide)For every issue identified in Phases 1 and 2, apply the appropriate fix.
Ask the user before editing their file.
Text running off the right edge (overfull hbox):
% Option 1: Allow slightly loose spacing
\begin{frame}[fragile]{Title}
\sloppy
Content here...
\end{frame}
% Option 2: Reduce font size for that frame
\begin{frame}{Title}
\small % or \footnotesize for more reduction
Content here...
\end{frame}
% Option 3: Break long lines manually
Very long text that needs to be broken\\
across multiple lines.
% Option 4: For URLs
\url{https://very-long-url.com/that/overflows}
% Replace with:
{\small\url{https://very-long-url.com/that/overflows}}
Content overflowing the bottom (overfull vbox):
% Option 1: Reduce font size
\begin{frame}{Title}
\small
Too much content...
\end{frame}
% Option 2: Use allowframebreaks to auto-split
\begin{frame}[allowframebreaks]{Title}
Lots of content that will auto-split across slides...
\end{frame}
% Option 3: Shrink the whole frame (use sparingly)
\begin{frame}[shrink=10]{Title}
Content...
\end{frame}
% Option 4 (best): Split into two slides manually
% This is usually the right answer for teaching slides
Verbatim/code blocks overflowing:
% Use fragile option on the frame
\begin{frame}[fragile]{Title}
\begin{verbatim}
code here
\end{verbatim}
\end{frame}
% For long code, reduce font size
\begin{frame}[fragile]{Title}
\begin{verbatim}
\small
code here
\end{verbatim}
\end{frame}
Tables too wide:
% Option 1: Use \resizebox
\resizebox{\textwidth}{!}{%
\begin{tabular}{lccccc}
...
\end{tabular}
}
% Option 2: Use \small or \footnotesize
{\footnotesize
\begin{tabular}{lccccc}
...
\end{tabular}
}
% Option 3: Use tabularx for automatic column width
\usepackage{tabularx}
\begin{tabularx}{\textwidth}{lXXX}
...
\end{tabularx}
Missing images:
% Add a fallback so compilation doesn't fail
\IfFileExists{image.png}{%
\includegraphics[width=0.8\textwidth]{image.png}
}{%
\textit{[Image not found: image.png]}
}
Column alignment issues:
% Make sure column widths sum to \textwidth
\begin{columns}[T] % T = top-aligned
\begin{column}{0.48\textwidth}
Left content
\end{column}
\begin{column}{0.48\textwidth}
Right content
\end{column}
\end{columns}
% Leave ~0.04\textwidth for the gap between columns
After applying fixes:
python {baseDir}/scripts/beamer_check.py <path-to-tex-file> --output-dir <work-dir>/beamer-check-verify
slides that were modified. Confirm the fixes worked and didn't
introduce new layout problems.
Present a summary to the user:
Beamer Audit Complete
=====================
Slides checked: [N]
Issues found: [N]
Issues fixed: [N]
Remaining issues: [N] (with explanation if any)
Changes made:
- Slide 3: Reduced font size to \small (text overflow)
- Slide 7: Split into two slides (content exceeded frame)
- Slide 12: Added [fragile] option (verbatim block)
- ...
readability matters more than slide count
[shrink] option is a last resort — it makes everythingsmaller, which is usually worse than splitting
[allowframebreaks] is acceptable for reference/bibliography slidesbut looks bad for regular content — prefer manual splits
Take aspi6246/beamer-check from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.