Skill Tracer
Skills › Scientific Agent Skills › scientific-slides › visual_review_workflow.md

visual_review_workflow.md

748 lines · skills/scientific-slides/references/visual_review_workflow.md at 5f2bc03

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Visual Review Workflow for Presentations
2

Visual Review Workflow for Presentations

Raw lines 1 to 2
3## Overview
4
5Visual review is a critical quality assurance step for presentations, allowing you to identify and fix layout issues, text overflow, element overlap, and design problems before presenting. This guide covers converting presentations to images, systematic visual inspection, common issues, and iterative improvement strategies.
6

Overview

Visual review is a critical quality assurance step for presentations, allowing you to identify and fix layout issues, text overflow, element overlap, and design problems before presenting. This guide covers converting presentations to images, systematic visual inspection, common issues, and iterative improvement strategies.

Raw lines 3 to 6
7## Render for layout; extract text for content checks
8
9Render every slide with `pdf_to_images.py` to inspect layout, cropping, and labels.
10Use PDF text extraction separately to check citations and wording; it cannot detect
11visual overlap. Work in page batches if tool/image limits require it. A past tool buffer
12failure is not a property of all PDFs and does not prohibit direct PDF inspection.
141. Export PDF from PowerPoint/Beamer.
152. Render pages and review them visually.
163. Check the source text, citations, original figures and reading order separately.
174. Correct source files, export again and recheck affected pages.

Render for layout; extract text for content checks

Render every slide with pdf_to_images.py to inspect layout, cropping, and labels. Use PDF text extraction separately to check citations and wording; it cannot detect visual overlap. Work in page batches if tool/image limits require it. A past tool buffer failure is not a property of all PDFs and does not prohibit direct PDF inspection.

  1. Export PDF from PowerPoint/Beamer.
  2. Render pages and review them visually.
  3. Check the source text, citations, original figures and reading order separately.
  4. Correct source files, export again and recheck affected pages.
Raw lines 7 to 18
19## Why Visual Review Matters

Why Visual Review Matters

Raw lines 19 to 20
21### Common Problems Invisible in Source
23**LaTeX Beamer Issues**:
24- Text overflow from text boxes
25- Overlapping elements (equations over images)
26- Poor line breaking
27- Figures extending beyond slide boundaries
28- Font size issues at actual resolution
30**PowerPoint Issues**:
31- Text cut off by shapes or slide edges
32- Images overlapping with text
33- Inconsistent spacing between slides
34- Color rendering differences
35- Font substitution problems
37**Projection Issues**:
38- Content visible on laptop but cut off when projected
39- Colors looking different on projector
40- Low contrast elements becoming invisible
41- Small details disappearing

Common Problems Invisible in Source

LaTeX Beamer Issues:

  • Text overflow from text boxes
  • Overlapping elements (equations over images)
  • Poor line breaking
  • Figures extending beyond slide boundaries
  • Font size issues at actual resolution

PowerPoint Issues:

  • Text cut off by shapes or slide edges
  • Images overlapping with text
  • Inconsistent spacing between slides
  • Color rendering differences
  • Font substitution problems

Projection Issues:

  • Content visible on laptop but cut off when projected
  • Colors looking different on projector
  • Low contrast elements becoming invisible
  • Small details disappearing
Raw lines 21 to 42
43### Benefits of Visual Review
45- **Catch layout errors early**: Fix before printing or presenting
46- **Verify readability**: Ensure text is large enough and high contrast
47- **Check consistency**: Spot inconsistencies across slides
48- **Test accessibility**: Verify color contrast and clarity
49- **Validate design**: Ensure professional appearance

Benefits of Visual Review

  • Catch layout errors early: Fix before printing or presenting
  • Verify readability: Ensure text is large enough and high contrast
  • Check consistency: Spot inconsistencies across slides
  • Test accessibility: Verify color contrast and clarity
  • Validate design: Ensure professional appearance
Raw lines 43 to 50
51## Conversion: PDF to Images

Conversion: PDF to Images

Raw lines 51 to 52
53### Method 1: Using pdf_to_images.py Script (Recommended)
55**No External Dependencies Required**:
56The script uses PyMuPDF, a self-contained Python library - no poppler or other system software needed.
58**Installation**:
59```bash
60# Install in your task environment (the repository environment omits scientific dependencies)
61uv pip install pymupdf
62```
64**Basic Conversion**:
65```bash
66# Convert all slides to JPEG images
67python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150
69# Creates: slide-001.jpg, slide-002.jpg, slide-003.jpg, ...
70```
72**High-Resolution Conversion**:
73```bash
74# Higher quality for detailed inspection (300 DPI)
75python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 300
77# PNG format (lossless, larger files)
78python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --format png
79```
81**Convert Specific Slides**:
82```bash
83# Slides 5-10 only
84python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --first 5 --last 10
86# Single slide
87python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --first 3 --last 3
88```
90**Output Options**:
91```bash
92# Different output directory
93python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf review/slide --dpi 150
95# Custom naming
96python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf output/presentation --dpi 150
97```

Method 1: Using pdf_to_images.py Script (Recommended)

No External Dependencies Required: The script uses PyMuPDF, a self-contained Python library - no poppler or other system software needed.

Installation:

# Install in your task environment (the repository environment omits scientific dependencies)
uv pip install pymupdf

Basic Conversion:

# Convert all slides to JPEG images
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150

# Creates: slide-001.jpg, slide-002.jpg, slide-003.jpg, ...

High-Resolution Conversion:

# Higher quality for detailed inspection (300 DPI)
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 300

# PNG format (lossless, larger files)
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --format png

Convert Specific Slides:

# Slides 5-10 only
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --first 5 --last 10

# Single slide
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf slide --dpi 150 --first 3 --last 3

Output Options:

# Different output directory
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf review/slide --dpi 150

# Custom naming
python skills/scientific-slides/scripts/pdf_to_images.py presentation.pdf output/presentation --dpi 150
Raw lines 53 to 98
Runs code python skills/scientific-slides/scripts/pdf_to_images.py :67
99### Method 2: Exporting PowerPoint Through LibreOffice
101For PowerPoint presentations, export to PDF with LibreOffice, then render as in Method 1:
103```bash
104soffice --headless --convert-to pdf --outdir review presentation.pptx
105python skills/scientific-slides/scripts/pdf_to_images.py review/presentation.pdf review/slide --dpi 150
106```
108LibreOffice substitutes fonts that are not installed, so confirm final text fit in PowerPoint.
110**Advantages**:
111- Optimized for PowerPoint files
112- Can create overview grids
113- Handles .pptx format directly
114- Customizable layout

Method 2: Exporting PowerPoint Through LibreOffice

For PowerPoint presentations, export to PDF with LibreOffice, then render as in Method 1:

soffice --headless --convert-to pdf --outdir review presentation.pptx
python skills/scientific-slides/scripts/pdf_to_images.py review/presentation.pdf review/slide --dpi 150

LibreOffice substitutes fonts that are not installed, so confirm final text fit in PowerPoint.

Advantages:

  • Optimized for PowerPoint files
  • Can create overview grids
  • Handles .pptx format directly
  • Customizable layout
Raw lines 99 to 115
Runs code python skills/scientific-slides/scripts/pdf_to_images.py :105
116### Method 3: Using ImageMagick 7 (Optional)
118**Installation**:
119```bash
120# Ubuntu/Debian
121sudo apt-get install imagemagick
123# macOS
124brew install imagemagick
125```
127**Conversion** (PDF reading also requires Ghostscript and an enabled PDF security policy; prefer PyMuPDF if unavailable):
128```bash
129# Convert PDF to images
130magick -density 150 presentation.pdf slide.jpg
132# Higher quality
133magick -density 300 presentation.pdf slide.jpg
135# Specific format
136magick -density 150 presentation.pdf slide.png
137```

Method 3: Using ImageMagick 7 (Optional)

Installation:

# Ubuntu/Debian
sudo apt-get install imagemagick

# macOS
brew install imagemagick

Conversion (PDF reading also requires Ghostscript and an enabled PDF security policy; prefer PyMuPDF if unavailable):

# Convert PDF to images
magick -density 150 presentation.pdf slide.jpg

# Higher quality
magick -density 300 presentation.pdf slide.jpg

# Specific format
magick -density 150 presentation.pdf slide.png
Raw lines 116 to 138
139### Method 4: Using Python (Programmatic)
141```python
142import pymupdf as fitz # PyMuPDF
144# Open PDF
145doc = fitz.open('presentation.pdf')
147# Convert each page to image
148for i, page in enumerate(doc, start=1):
149 pixmap = page.get_pixmap(dpi=200)
150 pixmap.save(f'slide-{i:03d}.jpg', output='jpeg')
152doc.close()
153```
155**Install PyMuPDF**:
156```bash
157uv pip install pymupdf
158# No external dependencies needed!
159```

Method 4: Using Python (Programmatic)

import pymupdf as fitz  # PyMuPDF

# Open PDF
doc = fitz.open('presentation.pdf')

# Convert each page to image
for i, page in enumerate(doc, start=1):
    pixmap = page.get_pixmap(dpi=200)
    pixmap.save(f'slide-{i:03d}.jpg', output='jpeg')

doc.close()

Install PyMuPDF:

uv pip install pymupdf
# No external dependencies needed!
Raw lines 139 to 160
161## Systematic Visual Inspection

Systematic Visual Inspection

Raw lines 161 to 162
163### Inspection Workflow
165**Step 1: Overview Pass**
166- View all slides quickly
167- Note overall consistency
168- Identify obviously problematic slides
169- Create list of slides needing detailed review
171**Step 2: Detailed Inspection**
172- Review each flagged slide carefully
173- Check against issue checklist (below)
174- Document specific problems with slide numbers
175- Take notes on required fixes
177**Step 3: Cross-Slide Comparison**
178- Check consistency across similar slides
179- Verify uniform spacing and alignment
180- Ensure consistent font sizes
181- Check color scheme consistency
183**Step 4: Distance Test**
184- View images at reduced size (simulates projection)
185- Check readability from ~6 feet
186- Verify key elements are visible
187- Test if main message is clear

Inspection Workflow

Step 1: Overview Pass

  • View all slides quickly
  • Note overall consistency
  • Identify obviously problematic slides
  • Create list of slides needing detailed review

Step 2: Detailed Inspection

  • Review each flagged slide carefully
  • Check against issue checklist (below)
  • Document specific problems with slide numbers
  • Take notes on required fixes

Step 3: Cross-Slide Comparison

  • Check consistency across similar slides
  • Verify uniform spacing and alignment
  • Ensure consistent font sizes
  • Check color scheme consistency

Step 4: Distance Test

  • View images at reduced size (simulates projection)
  • Check readability from ~6 feet
  • Verify key elements are visible
  • Test if main message is clear
Raw lines 163 to 188
189### Issue Checklist
191Review each slide for these common problems:
193#### Text Issues
195**Overflow and Truncation**:
196- [ ] Text cut off at slide edges
197- [ ] Text extending beyond text boxes
198- [ ] Equations running into margins
199- [ ] Captions cut off at bottom
200- [ ] Bullet points extending beyond boundary
202**Readability**:
203- [ ] Font size too small (minimum 18pt visible)
204- [ ] Poor contrast (text vs background)
205- [ ] Inadequate line spacing
206- [ ] Text too close to slide edge
207- [ ] Overlapping lines of text
209#### Element Overlap
211**Text Overlaps**:
212- [ ] Text overlapping with images
213- [ ] Text overlapping with shapes
214- [ ] Multiple text boxes overlapping
215- [ ] Labels overlapping with data points
216- [ ] Title overlapping with content
218**Visual Element Overlaps**:
219- [ ] Images overlapping
220- [ ] Shapes overlapping inappropriately
221- [ ] Figures extending into margins
222- [ ] Legend overlapping with plot
223- [ ] Watermark obscuring content
225#### Layout and Spacing
227**Alignment Issues**:
228- [ ] Misaligned text boxes
229- [ ] Uneven margins
230- [ ] Inconsistent element positioning
231- [ ] Off-center titles
232- [ ] Unaligned bullet points
234**Spacing Problems**:
235- [ ] Cramped content (insufficient white space)
236- [ ] Too much empty space (poor use of slide area)
237- [ ] Inconsistent spacing between elements
238- [ ] Uneven gaps in multi-column layouts
239- [ ] Poor distribution of content
241#### Color and Contrast
243**Visibility**:
244- [ ] Insufficient contrast (text vs background)
245- [ ] Colors too similar (hard to distinguish)
246- [ ] Text on busy backgrounds
247- [ ] Light text on light background
248- [ ] Dark text on dark background
250**Consistency**:
251- [ ] Inconsistent color schemes between slides
252- [ ] Unexpected color changes
253- [ ] Clashing color combinations
254- [ ] Poor color choices for data visualization
256#### Figures and Graphics
258**Quality**:
259- [ ] Pixelated or blurry images
260- [ ] Low-resolution figures
261- [ ] Distorted aspect ratios
262- [ ] Poor quality screenshots
263- [ ] Jagged edges on graphics
265**Layout**:
266- [ ] Figures too small to read
267- [ ] Axis labels too small
268- [ ] Legend text illegible
269- [ ] Complex figures without explanation
270- [ ] Figures not centered or aligned
272#### Technical Issues
274**Rendering**:
275- [ ] Missing fonts (substituted)
276- [ ] Special characters not displaying
277- [ ] Equations rendering incorrectly
278- [ ] Broken images or missing files
279- [ ] Incorrect colors (RGB vs CMYK)
281**Consistency**:
282- [ ] Slide numbers incorrect or missing
283- [ ] Inconsistent footer/header
284- [ ] Navigation elements broken
285- [ ] Hyperlinks not working (if testing interactively)

Issue Checklist

Review each slide for these common problems:

Text Issues

Overflow and Truncation:

  • [ ] Text cut off at slide edges
  • [ ] Text extending beyond text boxes
  • [ ] Equations running into margins
  • [ ] Captions cut off at bottom
  • [ ] Bullet points extending beyond boundary

Readability:

  • [ ] Font size too small (minimum 18pt visible)
  • [ ] Poor contrast (text vs background)
  • [ ] Inadequate line spacing
  • [ ] Text too close to slide edge
  • [ ] Overlapping lines of text

Element Overlap

Text Overlaps:

  • [ ] Text overlapping with images
  • [ ] Text overlapping with shapes
  • [ ] Multiple text boxes overlapping
  • [ ] Labels overlapping with data points
  • [ ] Title overlapping with content

Visual Element Overlaps:

  • [ ] Images overlapping
  • [ ] Shapes overlapping inappropriately
  • [ ] Figures extending into margins
  • [ ] Legend overlapping with plot
  • [ ] Watermark obscuring content

Layout and Spacing

Alignment Issues:

  • [ ] Misaligned text boxes
  • [ ] Uneven margins
  • [ ] Inconsistent element positioning
  • [ ] Off-center titles
  • [ ] Unaligned bullet points

Spacing Problems:

  • [ ] Cramped content (insufficient white space)
  • [ ] Too much empty space (poor use of slide area)
  • [ ] Inconsistent spacing between elements
  • [ ] Uneven gaps in multi-column layouts
  • [ ] Poor distribution of content

Color and Contrast

Visibility:

  • [ ] Insufficient contrast (text vs background)
  • [ ] Colors too similar (hard to distinguish)
  • [ ] Text on busy backgrounds
  • [ ] Light text on light background
  • [ ] Dark text on dark background

Consistency:

  • [ ] Inconsistent color schemes between slides
  • [ ] Unexpected color changes
  • [ ] Clashing color combinations
  • [ ] Poor color choices for data visualization

Figures and Graphics

Quality:

  • [ ] Pixelated or blurry images
  • [ ] Low-resolution figures
  • [ ] Distorted aspect ratios
  • [ ] Poor quality screenshots
  • [ ] Jagged edges on graphics

Layout:

  • [ ] Figures too small to read
  • [ ] Axis labels too small
  • [ ] Legend text illegible
  • [ ] Complex figures without explanation
  • [ ] Figures not centered or aligned

Technical Issues

Rendering:

  • [ ] Missing fonts (substituted)
  • [ ] Special characters not displaying
  • [ ] Equations rendering incorrectly
  • [ ] Broken images or missing files
  • [ ] Incorrect colors (RGB vs CMYK)

Consistency:

  • [ ] Slide numbers incorrect or missing
  • [ ] Inconsistent footer/header
  • [ ] Navigation elements broken
  • [ ] Hyperlinks not working (if testing interactively)
Raw lines 189 to 286
287## Documentation Template

Documentation Template

Raw lines 287 to 288
289### Issue Log Format
291Create a spreadsheet or document tracking all issues:
293```
294Slide # | Issue Category | Description | Severity | Status
295--------|---------------|-------------|----------|--------
2963 | Text Overflow | Bullet point 4 extends beyond box | High | Fixed
2977 | Element Overlap | Figure overlaps with caption | High | Fixed
29812 | Font Size | Axis labels too small | Medium | Fixed
29915 | Alignment | Title not centered | Low | Fixed
30022 | Contrast | Yellow text on white background | High | Fixed
301```
303**Severity Levels**:
304- **Critical**: Makes slide unusable or unprofessional
305- **High**: Significantly impacts readability or appearance
306- **Medium**: Noticeable but doesn't prevent comprehension
307- **Low**: Minor cosmetic issues

Issue Log Format

Create a spreadsheet or document tracking all issues:

Slide # | Issue Category | Description | Severity | Status
--------|---------------|-------------|----------|--------
3       | Text Overflow | Bullet point 4 extends beyond box | High | Fixed
7       | Element Overlap | Figure overlaps with caption | High | Fixed
12      | Font Size | Axis labels too small | Medium | Fixed
15      | Alignment | Title not centered | Low | Fixed
22      | Contrast | Yellow text on white background | High | Fixed

Severity Levels:

  • Critical: Makes slide unusable or unprofessional
  • High: Significantly impacts readability or appearance
  • Medium: Noticeable but doesn't prevent comprehension
  • Low: Minor cosmetic issues
Raw lines 289 to 308
309### Example Issue Documentation
311**Good Documentation**:
312```
313Slide 8: Text Overflow Issue
314- Description: Last bullet point "...implementation details"
315 extends ~0.5 inches beyond right margin of text box
316- Cause: Bullet text too long for available width
317- Fix: Reduce text to "...implementation" or increase box width
318- Verification: Check neighboring slides for similar issue
319```
321**Poor Documentation**:
322```
323Slide 8: text problem
324- Fix: make smaller
325```

Example Issue Documentation

Good Documentation:

Slide 8: Text Overflow Issue
- Description: Last bullet point "...implementation details" 
  extends ~0.5 inches beyond right margin of text box
- Cause: Bullet text too long for available width
- Fix: Reduce text to "...implementation" or increase box width
- Verification: Check neighboring slides for similar issue

Poor Documentation:

Slide 8: text problem
- Fix: make smaller
Raw lines 309 to 326
327## Common Issues and Solutions

Common Issues and Solutions

Raw lines 327 to 328
329### Issue 1: Text Overflow
331**Problem**: Text extends beyond boundaries
333**Identification**:
334- Visible text cut off at edge
335- Text running into margins
336- Partial characters visible
338**Solutions**:
340**LaTeX Beamer**:
341```latex
342% Reduce text
343\begin{frame}{Title}
344 \begin{itemize}
345 \item Shorten this long bullet point
346 % or
347 \item Use abbreviations or acronyms
348 % or
349 \item<alert@1> Split into multiple bullets
350 \end{itemize}
351\end{frame}
353% Set Beamer margins in the preamble
354\setbeamersize{text margin left=8mm,text margin right=8mm}
355\begin{frame}
356 Content with wider margins
357\end{frame}
358% Recompile and inspect the resulting frame
360% Smaller font for specific element
361{\small
362 Long text that needs to fit
364```
366**PowerPoint**:
367- Reduce font size for that element
368- Shorten text content
369- Increase text box size
370- Use text box auto-fit options (cautiously)
371- Split into multiple slides

Issue 1: Text Overflow

Problem: Text extends beyond boundaries

Identification:

  • Visible text cut off at edge
  • Text running into margins
  • Partial characters visible

Solutions:

LaTeX Beamer:

% Reduce text
\begin{frame}{Title}
  \begin{itemize}
    \item Shorten this long bullet point
    % or
    \item Use abbreviations or acronyms
    % or
    \item<alert@1> Split into multiple bullets
  \end{itemize}
\end{frame}

% Set Beamer margins in the preamble
\setbeamersize{text margin left=8mm,text margin right=8mm}
\begin{frame}
  Content with wider margins
\end{frame}
% Recompile and inspect the resulting frame

% Smaller font for specific element
{\small
  Long text that needs to fit
}

PowerPoint:

  • Reduce font size for that element
  • Shorten text content
  • Increase text box size
  • Use text box auto-fit options (cautiously)
  • Split into multiple slides
Raw lines 329 to 372
373### Issue 2: Element Overlap
375**Problem**: Elements overlapping inappropriately
377**Identification**:
378- Text obscured by images
379- Shapes covering text
380- Figures overlapping
382**Solutions**:
384**LaTeX Beamer**:
385```latex
386% Use columns for better separation
387\begin{columns}
388 \begin{column}{0.5\textwidth}
389 Text content
390 \end{column}
391 \begin{column}{0.5\textwidth}
392 \includegraphics[width=\textwidth]{figure.pdf}
393 \end{column}
394\end{columns}
396% Add spacing
397\vspace{0.5cm}
399% Adjust figure size
400\includegraphics[width=0.7\textwidth]{figure.pdf}
401```
403**PowerPoint**:
404- Use alignment guides to reposition
405- Reduce element sizes
406- Use two-column layout
407- Send elements backward/forward (layering)
408- Increase spacing between elements

Issue 2: Element Overlap

Problem: Elements overlapping inappropriately

Identification:

  • Text obscured by images
  • Shapes covering text
  • Figures overlapping

Solutions:

LaTeX Beamer:

% Use columns for better separation
\begin{columns}
  \begin{column}{0.5\textwidth}
    Text content
  \end{column}
  \begin{column}{0.5\textwidth}
    \includegraphics[width=\textwidth]{figure.pdf}
  \end{column}
\end{columns}

% Add spacing
\vspace{0.5cm}

% Adjust figure size
\includegraphics[width=0.7\textwidth]{figure.pdf}

PowerPoint:

  • Use alignment guides to reposition
  • Reduce element sizes
  • Use two-column layout
  • Send elements backward/forward (layering)
  • Increase spacing between elements
Raw lines 373 to 409
410### Issue 3: Poor Contrast
412**Problem**: Text difficult to read due to color choices
414**Identification**:
415- Squinting required to read text
416- Text fades into background
417- Colors too similar
419**Solutions**:
421**LaTeX Beamer**:
422```latex
423% Increase contrast
424\setbeamercolor{frametitle}{fg=black,bg=white}
425\setbeamercolor{normal text}{fg=black,bg=white}
427% Use darker colors
428\definecolor{darkblue}{RGB}{0,50,100}
429\setbeamercolor{structure}{fg=darkblue}
431% Test in grayscale
432\usepackage{xcolor}
433\selectcolormodel{gray} % Temporarily for testing
434```
436**PowerPoint**:
437- Choose high-contrast color combinations
438- Use dark text on light background or vice versa
439- Avoid pastels for text
440- Test with WebAIM contrast checker
441- Add text background box if needed

Issue 3: Poor Contrast

Problem: Text difficult to read due to color choices

Identification:

  • Squinting required to read text
  • Text fades into background
  • Colors too similar

Solutions:

LaTeX Beamer:

% Increase contrast
\setbeamercolor{frametitle}{fg=black,bg=white}
\setbeamercolor{normal text}{fg=black,bg=white}

% Use darker colors
\definecolor{darkblue}{RGB}{0,50,100}
\setbeamercolor{structure}{fg=darkblue}

% Test in grayscale
\usepackage{xcolor}
\selectcolormodel{gray}  % Temporarily for testing

PowerPoint:

  • Choose high-contrast color combinations
  • Use dark text on light background or vice versa
  • Avoid pastels for text
  • Test with WebAIM contrast checker
  • Add text background box if needed
Raw lines 410 to 442
443### Issue 4: Tiny Fonts
445**Problem**: Text too small to read from distance
447**Identification**:
448- Can't read text from 3 feet away
449- Axis labels disappear when viewing normally
450- Captions illegible
452**Solutions**:
454**LaTeX Beamer**:
455```latex
456% Increase base font size
457\documentclass[14pt]{beamer} % Instead of 11pt default
459% Recreate figures with larger fonts
460% In matplotlib:
461plt.rcParams['font.size'] = 18
462plt.rcParams['axes.labelsize'] = 20
464% In R/ggplot2:
465theme_set(theme_minimal(base_size = 16))
466```
468**PowerPoint**:
469- Minimum 18pt for body text, 24pt preferred
470- Recreate figures with larger labels
471- Use direct labeling instead of legends
472- Simplify complex figures
473- Split dense content across multiple slides

Issue 4: Tiny Fonts

Problem: Text too small to read from distance

Identification:

  • Can't read text from 3 feet away
  • Axis labels disappear when viewing normally
  • Captions illegible

Solutions:

LaTeX Beamer:

% Increase base font size
\documentclass[14pt]{beamer}  % Instead of 11pt default

% Recreate figures with larger fonts
% In matplotlib:
plt.rcParams['font.size'] = 18
plt.rcParams['axes.labelsize'] = 20

% In R/ggplot2:
theme_set(theme_minimal(base_size = 16))

PowerPoint:

  • Minimum 18pt for body text, 24pt preferred
  • Recreate figures with larger labels
  • Use direct labeling instead of legends
  • Simplify complex figures
  • Split dense content across multiple slides
Raw lines 443 to 474
475### Issue 5: Misalignment
477**Problem**: Elements not properly aligned
479**Identification**:
480- Uneven margins
481- Titles at different positions
482- Irregular spacing
484**Solutions**:
486**LaTeX Beamer**:
487```latex
488% Use consistent templates
489\setbeamertemplate{frametitle}[default][center]
491% Align columns at top
492\begin{columns}[T] % T = top alignment
493 \begin{column}{0.5\textwidth}
494 Content
495 \end{column}
496 \begin{column}{0.5\textwidth}
497 Content
498 \end{column}
499\end{columns}
501% Center figures
502\begin{center}
503 \includegraphics[width=0.8\textwidth]{figure.pdf}
504\end{center}
505```
507**PowerPoint**:
508- Use alignment tools (Align Left/Center/Right)
509- Enable gridlines and guides
510- Use snap to grid
511- Distribute objects evenly
512- Create master slides with consistent layouts

Issue 5: Misalignment

Problem: Elements not properly aligned

Identification:

  • Uneven margins
  • Titles at different positions
  • Irregular spacing

Solutions:

LaTeX Beamer:

% Use consistent templates
\setbeamertemplate{frametitle}[default][center]

% Align columns at top
\begin{columns}[T]  % T = top alignment
  \begin{column}{0.5\textwidth}
    Content
  \end{column}
  \begin{column}{0.5\textwidth}
    Content
  \end{column}
\end{columns}

% Center figures
\begin{center}
  \includegraphics[width=0.8\textwidth]{figure.pdf}
\end{center}

PowerPoint:

  • Use alignment tools (Align Left/Center/Right)
  • Enable gridlines and guides
  • Use snap to grid
  • Distribute objects evenly
  • Create master slides with consistent layouts
Raw lines 475 to 513
514## Iterative Improvement Process

Iterative Improvement Process

Raw lines 514 to 515
516### Workflow Cycle
518```
5191. Generate PDF
520 ↓
5212. Convert to images
522 ↓
5233. Systematic visual inspection
524 ↓
5254. Document issues
526 ↓
5275. Prioritize fixes
528 ↓
5296. Apply corrections to source
530 ↓
5317. Regenerate PDF
532 ↓
5338. Re-inspect (go to step 2)
534 ↓
5359. Complete when no critical issues remain
536```

Workflow Cycle

1. Generate PDF
    ↓
2. Convert to images
    ↓
3. Systematic visual inspection
    ↓
4. Document issues
    ↓
5. Prioritize fixes
    ↓
6. Apply corrections to source
    ↓
7. Regenerate PDF
    ↓
8. Re-inspect (go to step 2)
    ↓
9. Complete when no critical issues remain
Raw lines 516 to 537
538### Prioritization Strategy
540**Fix Immediately** (Block presentation):
541- Text overflow making content unreadable
542- Critical element overlaps obscuring data
543- Broken figures or missing content
544- Severely poor contrast
546**Fix Before Presenting**:
547- Font sizes too small
548- Moderate alignment issues
549- Inconsistent spacing
550- Moderate contrast problems
552**Fix If Time Permits**:
553- Minor misalignments
554- Small spacing inconsistencies
555- Cosmetic improvements
556- Non-critical color adjustments

Prioritization Strategy

Fix Immediately (Block presentation):

  • Text overflow making content unreadable
  • Critical element overlaps obscuring data
  • Broken figures or missing content
  • Severely poor contrast

Fix Before Presenting:

  • Font sizes too small
  • Moderate alignment issues
  • Inconsistent spacing
  • Moderate contrast problems

Fix If Time Permits:

  • Minor misalignments
  • Small spacing inconsistencies
  • Cosmetic improvements
  • Non-critical color adjustments
Raw lines 538 to 557
558### Stopping Criteria
560**Minimum Standards**:
561- [ ] No text overflow or truncation
562- [ ] No element overlaps obscuring content
563- [ ] All text readable at minimum 18pt equivalent
564- [ ] Adequate contrast (4.5:1 ratio minimum)
565- [ ] Figures and images display correctly
566- [ ] Consistent slide structure
568**Ideal Standards**:
569- [ ] Professional appearance throughout
570- [ ] Consistent alignment and spacing
571- [ ] High contrast (7:1 ratio)
572- [ ] Optimal font sizes (24pt+)
573- [ ] Polished visual design
574- [ ] Zero layout issues

Stopping Criteria

Minimum Standards:

  • [ ] No text overflow or truncation
  • [ ] No element overlaps obscuring content
  • [ ] All text readable at minimum 18pt equivalent
  • [ ] Adequate contrast (4.5:1 ratio minimum)
  • [ ] Figures and images display correctly
  • [ ] Consistent slide structure

Ideal Standards:

  • [ ] Professional appearance throughout
  • [ ] Consistent alignment and spacing
  • [ ] High contrast (7:1 ratio)
  • [ ] Optimal font sizes (24pt+)
  • [ ] Polished visual design
  • [ ] Zero layout issues
Raw lines 558 to 575
576## Automated Detection Strategies

Automated Detection Strategies

Raw lines 576 to 577
578### Python Script for Text Overflow Detection
580```python
581from PIL import Image
582import numpy as np
584def detect_edge_content(image_path, threshold=10):
585 """
586 Detect if content extends too close to slide edges.
587 Returns True if potential overflow detected.
588 """
589 img = Image.open(image_path).convert('L') # Grayscale
590 arr = np.array(img)
592 # Check edges (10 pixel border)
593 left_edge = arr[:, :threshold]
594 right_edge = arr[:, -threshold:]
595 top_edge = arr[:threshold, :]
596 bottom_edge = arr[-threshold:, :]
598 # Look for non-white pixels (content)
599 white_threshold = 240
601 issues = []
602 if np.any(left_edge < white_threshold):
603 issues.append("Left edge")
604 if np.any(right_edge < white_threshold):
605 issues.append("Right edge")
606 if np.any(top_edge < white_threshold):
607 issues.append("Top edge")
608 if np.any(bottom_edge < white_threshold):
609 issues.append("Bottom edge")
611 return issues
613# Usage
614for slide_num in range(1, 26):
615 issues = detect_edge_content(f'slide-{slide_num:03d}.jpg')
616 if issues:
617 print(f"Slide {slide_num}: Content near {', '.join(issues)}")
618```

Python Script for Text Overflow Detection

from PIL import Image
import numpy as np

def detect_edge_content(image_path, threshold=10):
    """
    Detect if content extends too close to slide edges.
    Returns True if potential overflow detected.
    """
    img = Image.open(image_path).convert('L')  # Grayscale
    arr = np.array(img)
    
    # Check edges (10 pixel border)
    left_edge = arr[:, :threshold]
    right_edge = arr[:, -threshold:]
    top_edge = arr[:threshold, :]
    bottom_edge = arr[-threshold:, :]
    
    # Look for non-white pixels (content)
    white_threshold = 240
    
    issues = []
    if np.any(left_edge < white_threshold):
        issues.append("Left edge")
    if np.any(right_edge < white_threshold):
        issues.append("Right edge")
    if np.any(top_edge < white_threshold):
        issues.append("Top edge")
    if np.any(bottom_edge < white_threshold):
        issues.append("Bottom edge")
    
    return issues

# Usage
for slide_num in range(1, 26):
    issues = detect_edge_content(f'slide-{slide_num:03d}.jpg')
    if issues:
        print(f"Slide {slide_num}: Content near {', '.join(issues)}")
Raw lines 578 to 619
620### Contrast Checking
622Check each actual foreground/background color pair. Whole-slide bright/dark percentiles
623cannot determine text contrast. For sRGB hex colors, use the WCAG relative luminance
624formula (normal text >=4.5:1; large text >=3:1). Projection may warrant greater contrast.
626```python
627def contrast_ratio(foreground, background):
628 def luminance(hex_color):
629 values = [int(hex_color.lstrip("#")[i:i+2], 16) / 255 for i in (0, 2, 4)]
630 linear = [v / 12.92 if v <= 0.04045 else ((v + 0.055) / 1.055) ** 2.4 for v in values]
631 return sum(v * w for v, w in zip(linear, (0.2126, 0.7152, 0.0722)))
632 light, dark = sorted((luminance(foreground), luminance(background)), reverse=True)
633 return (light + 0.05) / (dark + 0.05)
635assert contrast_ratio("#000000", "#FFFFFF") == 21.0
636assert contrast_ratio("#FFFFFF", "#FFFFFF") == 1.0
637print(contrast_ratio("#003366", "#FFFFFF"))
638```
640Source: [WCAG 2.2 contrast](https://www.w3.org/WAI/WCAG22/Understanding/contrast-minimum.html).
641The edge-content example above is an illustrative white-background heuristic;
642it flags dark backgrounds and intentional full-bleed images and cannot certify overflow.
643Its filenames must match the renderer's zero padding (for example `slide-001.jpg`).

Contrast Checking

Check each actual foreground/background color pair. Whole-slide bright/dark percentiles cannot determine text contrast. For sRGB hex colors, use the WCAG relative luminance formula (normal text >=4.5:1; large text >=3:1). Projection may warrant greater contrast.

def contrast_ratio(foreground, background):
    def luminance(hex_color):
        values = [int(hex_color.lstrip("#")[i:i+2], 16) / 255 for i in (0, 2, 4)]
        linear = [v / 12.92 if v <= 0.04045 else ((v + 0.055) / 1.055) ** 2.4 for v in values]
        return sum(v * w for v, w in zip(linear, (0.2126, 0.7152, 0.0722)))
    light, dark = sorted((luminance(foreground), luminance(background)), reverse=True)
    return (light + 0.05) / (dark + 0.05)

assert contrast_ratio("#000000", "#FFFFFF") == 21.0
assert contrast_ratio("#FFFFFF", "#FFFFFF") == 1.0
print(contrast_ratio("#003366", "#FFFFFF"))

Source: WCAG 2.2 contrast. The edge-content example above is an illustrative white-background heuristic; it flags dark backgrounds and intentional full-bleed images and cannot certify overflow. Its filenames must match the renderer's zero padding (for example slide-001.jpg).

Raw lines 620 to 644
645## Manual Review Best Practices

Manual Review Best Practices

Raw lines 645 to 646
647### Review Environment
649**Setup**:
650- Large monitor or dual monitors
651- Good lighting (not too bright, not dark)
652- Distraction-free environment
653- Image viewer with zoom capability
654- Notepad or spreadsheet for tracking issues
656**Viewing Options**:
657- View at 100% for detail inspection
658- View at 50% to simulate distance
659- View in sequence to check consistency
660- Compare similar slides side-by-side

Review Environment

Setup:

  • Large monitor or dual monitors
  • Good lighting (not too bright, not dark)
  • Distraction-free environment
  • Image viewer with zoom capability
  • Notepad or spreadsheet for tracking issues

Viewing Options:

  • View at 100% for detail inspection
  • View at 50% to simulate distance
  • View in sequence to check consistency
  • Compare similar slides side-by-side
Raw lines 647 to 661
662### Review Tips
664**Fresh Eyes**:
665- Take breaks every 15-20 slides
666- Review at different times of day
667- Get colleague to review
668- Come back next day for final check
670**Systematic Approach**:
671- Review in order (slide 1 → end)
672- Focus on one issue type at a time
673- Use checklist to ensure thoroughness
674- Document as you go, not from memory
676**Common Oversights**:
677- Backup slides (review these too!)
678- Title slide (first impression matters)
679- Acknowledgments slide (often forgotten)
680- Last slide (visible during Q&A)

Review Tips

Fresh Eyes:

  • Take breaks every 15-20 slides
  • Review at different times of day
  • Get colleague to review
  • Come back next day for final check

Systematic Approach:

  • Review in order (slide 1 → end)
  • Focus on one issue type at a time
  • Use checklist to ensure thoroughness
  • Document as you go, not from memory

Common Oversights:

  • Backup slides (review these too!)
  • Title slide (first impression matters)
  • Acknowledgments slide (often forgotten)
  • Last slide (visible during Q&A)
Raw lines 662 to 681
682## Tools and Resources

Tools and Resources

Raw lines 682 to 683
684### Recommended Software
686**PDF to Image Conversion**:
687- **PyMuPDF** (Python): Fast, no external dependencies (recommended)
688- **pdf_to_images.py script**: Wrapper for easy CLI usage
689- **ImageMagick**: Flexible, many options (optional)
691**Image Viewing**:
692- **IrfanView** (Windows): Fast, many formats
693- **Preview** (macOS): Built-in, simple
694- **Eye of GNOME** (Linux): Lightweight
695- **XnView**: Cross-platform, batch operations
697**Issue Tracking**:
698- **Spreadsheet** (Excel, Google Sheets): Simple, flexible
699- **Markdown file**: Version control friendly
700- **Issue tracker** (GitHub, Jira): If team collaboration
701- **Checklist app**: For mobile review

Recommended Software

PDF to Image Conversion:

  • PyMuPDF (Python): Fast, no external dependencies (recommended)
  • pdf_to_images.py script: Wrapper for easy CLI usage
  • ImageMagick: Flexible, many options (optional)

Image Viewing:

  • IrfanView (Windows): Fast, many formats
  • Preview (macOS): Built-in, simple
  • Eye of GNOME (Linux): Lightweight
  • XnView: Cross-platform, batch operations

Issue Tracking:

  • Spreadsheet (Excel, Google Sheets): Simple, flexible
  • Markdown file: Version control friendly
  • Issue tracker (GitHub, Jira): If team collaboration
  • Checklist app: For mobile review
Raw lines 684 to 702
703### Contrast Checkers
705- **WebAIM Contrast Checker**: https://webaim.org/resources/contrastchecker/
706- **Colour Contrast Analyser**: Desktop application
707- **Chrome DevTools**: Built-in contrast checking

Contrast Checkers

  • WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
  • Colour Contrast Analyser: Desktop application
  • Chrome DevTools: Built-in contrast checking
Raw lines 703 to 708
709### Color Blindness Simulators
711- **Coblis**: https://www.color-blindness.com/coblis-color-blindness-simulator/
712- **Color Oracle**: Free desktop application
713- **Photoshop/GIMP**: Built-in color blindness filters

Color Blindness Simulators

  • Coblis: https://www.color-blindness.com/coblis-color-blindness-simulator/
  • Color Oracle: Free desktop application
  • Photoshop/GIMP: Built-in color blindness filters
Raw lines 709 to 714
715## Summary Checklist
717Before finalizing your presentation:
719**Conversion**:
720- [ ] PDF converted to images at adequate resolution (150-300 DPI)
721- [ ] All slides converted (including backup slides)
722- [ ] Images saved in organized directory
724**Visual Inspection**:
725- [ ] All slides reviewed systematically
726- [ ] Issue checklist completed for each slide
727- [ ] Problems documented with slide numbers
728- [ ] Severity assigned to each issue
730**Issue Resolution**:
731- [ ] Critical issues fixed
732- [ ] High-priority issues addressed
733- [ ] Source files updated (not just PDF)
734- [ ] Regenerated and re-inspected
736**Final Verification**:
737- [ ] No text overflow or truncation
738- [ ] No inappropriate element overlaps
739- [ ] Adequate contrast throughout
740- [ ] Consistent layout and spacing
741- [ ] Professional appearance
742- [ ] Ready for projection or distribution
744**Testing**:
745- [ ] Tested on projector if possible
746- [ ] Viewed from back of room distance
747- [ ] Checked in various lighting conditions
748- [ ] Backup copy saved

Summary Checklist

Before finalizing your presentation:

Conversion:

  • [ ] PDF converted to images at adequate resolution (150-300 DPI)
  • [ ] All slides converted (including backup slides)
  • [ ] Images saved in organized directory

Visual Inspection:

  • [ ] All slides reviewed systematically
  • [ ] Issue checklist completed for each slide
  • [ ] Problems documented with slide numbers
  • [ ] Severity assigned to each issue

Issue Resolution:

  • [ ] Critical issues fixed
  • [ ] High-priority issues addressed
  • [ ] Source files updated (not just PDF)
  • [ ] Regenerated and re-inspected

Final Verification:

  • [ ] No text overflow or truncation
  • [ ] No inappropriate element overlaps
  • [ ] Adequate contrast throughout
  • [ ] Consistent layout and spacing
  • [ ] Professional appearance
  • [ ] Ready for projection or distribution

Testing:

  • [ ] Tested on projector if possible
  • [ ] Viewed from back of room distance
  • [ ] Checked in various lighting conditions
  • [ ] Backup copy saved
Raw lines 715 to 748