Visual PDF Regression Test

Compare current Beamer PDF output against a baseline branch to detect visual regressions.

Sby Skills Guide Bot
TestingIntermediate
007/22/2026
Claude CodeCursorWindsurf
#pdf-diff#visual-regression#beamer#regression-testing#latex

Recommended for


name: pdf-diff description: Visual PDF regression test comparing current Beamer output against a baseline branch. Use when checking if slide changes introduced visual regressions. argument-hint: "[PaperName] [branch, default: main]" allowed-tools: ["Read", "Bash", "Glob"]

Visual PDF Regression Test

Compare the current Beamer PDF output against a baseline branch to detect visual regressions.

Prerequisites

  • diff-pdf must be installed (brew install diff-pdf)
  • The paper's .tex file must compile successfully

Steps

Step 1: Parse arguments

  • First argument: PaperName (required, e.g., SUNY, DreamZero)
  • Second argument: baseline branch (optional, default: main)

Step 2: Compile current version

cd /Users/iyunseong/maangeek/paper2pr/Slides
TEXINPUTS=../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode $PAPER.tex
cp $PAPER.pdf /tmp/${PAPER}_current.pdf

Step 3: Get baseline version

cd /Users/iyunseong/maangeek/paper2pr
git stash --include-untracked
git checkout $BRANCH -- Slides/$PAPER.tex
cd Slides
TEXINPUTS=../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode $PAPER.tex
cp $PAPER.pdf /tmp/${PAPER}_baseline.pdf
git checkout - -- Slides/$PAPER.tex
git stash pop

Step 4: Run diff-pdf

diff-pdf --output-diff=/tmp/${PAPER}_diff.pdf /tmp/${PAPER}_baseline.pdf /tmp/${PAPER}_current.pdf
echo "Exit code: $?"
  • Exit code 0: PDFs are visually identical
  • Exit code 1: Visual differences detected (diff PDF saved)

Step 5: Report results

  • If identical: "No visual regressions detected."
  • If different: "Visual differences found. Diff PDF saved to /tmp/${PAPER}_diff.pdf"
    • Open the diff PDF: open /tmp/${PAPER}_diff.pdf
    • Differences are highlighted in red

Step 6: Cleanup

rm -f /tmp/${PAPER}_current.pdf /tmp/${PAPER}_baseline.pdf

Keep the diff PDF for review if differences were found.

Notes

  • This compares full visual output, including fonts, spacing, and figure rendering
  • Single-pass XeLaTeX is sufficient for visual comparison (no bibtex needed)
  • For multi-page diffs, diff-pdf --skip-identical shows only changed pages
Related skills