content-forge/.claude/skills/paper-illustration/references/academic-styles.md

8.2 KiB

Academic Styles Reference

Loaded by Step 3 (Apply Academic Style). Provides venue-specific visual parameters: colors, fonts, sizes, spacing, caption format. Every value is concrete — no "use default".

Table of Contents

  1. Universal Rules
  2. NeurIPS Style (Default)
  3. ICML Style
  4. ACL Style
  5. IEEE Style
  6. Nature Style
  7. Color Palettes Quick Reference
  8. Font Sizes Quick Reference

1. Universal Rules

These apply to ALL venues. Venue-specific sections override where noted.

Colorblind Safety

  • Primary encoding: color + shape/pattern (never color alone)
  • Forbidden pairs: pure red (#FF0000) vs pure green (#00FF00)
  • Mandatory test: simulate deuteranopia — all series still distinguishable
  • Maximum distinct colors per figure: 7 (use hatching/markers beyond 7)

Grayscale Compatibility

  • Figure must remain interpretable when printed in grayscale
  • Use varying lightness values, not just hue differences
  • Add patterns (hatching, dots) to filled regions as backup encoding

Typography

  • Minimum font size: 8pt at final print size
  • Label font size: 9-10pt
  • Title font size: 10-12pt (if shown on figure)
  • Legend font size: 8-9pt
  • All text must survive 50% reduction without becoming illegible

Resolution

  • Raster output: minimum 300 DPI (600 DPI recommended for print)
  • Vector output: PDF preferred (no rasterization artifacts)
  • Always generate both PNG (300 DPI) and PDF

Layout

  • Margins: sufficient whitespace around all elements (no clipped text)
  • Always call plt.tight_layout() or equivalent
  • Grid lines: light gray (#CCCCCC), thin (0.5pt), behind data
  • Axis spines: visible top and right spines optional (NeurIPS removes them)

2. NeurIPS Style (Default)

Page width: 5.5" (single column), 11.0" (full width) Figure width: 5.5" (single), 2.6" (half)

Color Palette (seaborn "muted" inspired, 7 colors)

Index Name Hex RGB Use
0 Blue #4878D0 (72, 120, 208) Primary / "Ours"
1 Orange #EE854A (238, 133, 74) Secondary / Baseline
2 Green #6ACC64 (106, 204, 100) Tertiary
3 Red #D65F5F (214, 95, 95) Alert / Worst
4 Purple #956CB4 (149, 108, 180) Additional
5 Brown #8C613C (140, 97, 60) Additional
6 Pink #DC7EC0 (220, 126, 192) Additional

Fonts

  • Family: serif (Times New Roman or similar)
  • Body: 10pt, Labels: 9pt, Legend: 8pt, Title: 11pt
  • matplotlib: 'font.family': 'serif'

Axes

  • Remove top and right spines: ax.spines['top'].set_visible(False)
  • Tick direction: out
  • Tick length: 4pt
  • Grid: alpha=0.3, linestyle='--', linewidth=0.5

Caption Format

Figure N: <Description>. <Key finding>.

3. ICML Style

Page width: 6.75" (single column), 13.5" (full width) Figure width: 6.75" (single), 3.25" (half)

Color Palette (cooler tones)

Index Name Hex Use
0 Dark Blue #1F77B4 Primary / "Ours"
1 Orange #FF7F0E Secondary
2 Teal #2CA02C Tertiary
3 Crimson #D62728 Alert
4 Violet #9467BD Additional
5 Sienna #8C564B Additional
6 Gray #7F7F7F Neutral/Baseline

Fonts

  • Family: serif (Computer Modern / Times)
  • Body: 10pt, Labels: 9pt, Legend: 8pt
  • matplotlib: 'font.family': 'serif', 'mathtext.fontset': 'cm'

Caption Format

Figure N. <Description>. <Key finding>.

4. ACL Style

Page width: 6.0" (single column) Figure width: 6.0" (single), 2.9" (half)

Color Palette (warm academic)

Index Name Hex Use
0 Royal Blue #2166AC Primary
1 Warm Red #B2182B Secondary
2 Teal #35978F Tertiary
3 Gold #DFC27D Highlight
4 Purple #762A83 Additional
5 Dark Gray #525252 Neutral

Fonts

  • Family: serif (Times New Roman)
  • Body: 10pt, Labels: 9pt, Legend: 8pt
  • matplotlib: 'font.family': 'serif'

Special Notes

  • NLP figures often include text examples — ensure text is readable
  • Attention heatmaps: use sequential colormap (Blues or YlOrRd)
  • Dependency trees: horizontal layout preferred

Caption Format

Figure N: <Description>.

5. IEEE Style

Page width: 3.5" (single column), 7.16" (double column) Figure width: 3.5" (single), 7.16" (full)

Color Palette (high contrast, traditional)

Index Name Hex Use
0 Blue #0072B2 Primary
1 Orange #E69F00 Secondary
2 Green #009E73 Tertiary
3 Red #CC79A7 Alert (pink-red, colorblind-safe)
4 Sky Blue #56B4E9 Additional
5 Vermilion #D55E00 Additional
6 Black #000000 Baseline/Reference

Note: This is the Wong colorblind-safe palette, recommended for all IEEE publications.

Fonts

  • Family: sans-serif (Helvetica / Arial)
  • Body: 8pt, Labels: 8pt, Legend: 7pt, Title: 9pt
  • matplotlib: 'font.family': 'sans-serif'

Special Notes

  • IEEE is stricter on figure size due to two-column format
  • Single-column figures: max 3.5" wide — everything must be readable at this size
  • Prefer subfigure grids over wide panoramic figures
  • Line width: minimum 1pt (thin lines disappear in print)

Caption Format

Fig. N. <Description>.

6. Nature Style

Page width: 3.5" (single column), 7.2" (double column) Figure width: 3.5" (single), 7.2" (full)

Color Palette (Nature-inspired, elegant)

Index Name Hex Use
0 Nature Blue #3B4CC0 Primary
1 Nature Red #B40426 Secondary
2 Nature Green #1B7837 Tertiary
3 Gold #F2C14E Highlight
4 Teal #008080 Additional
5 Dark Gray #404040 Neutral

Fonts

  • Family: sans-serif (Helvetica / Arial)
  • Body: 7pt, Labels: 7pt, Legend: 6pt, Title: 8pt
  • matplotlib: 'font.family': 'sans-serif', 'font.size': 7

Special Notes

  • Nature has the strictest size limits — maximize information density
  • Prefer panel layouts (a, b, c, d) with lowercase bold letters
  • Panel labels: a, b, c at top-left of each subfigure
  • Color: used sparingly, key data only — backgrounds always white

Caption Format

Figure N | <Title in bold>. <Description>. a, <Panel a description>. b, <Panel b description>.

7. Color Palettes Quick Reference

matplotlib Code Snippets

# NeurIPS (default)
COLORS_NEURIPS = ['#4878D0', '#EE854A', '#6ACC64', '#D65F5F', '#956CB4', '#8C613C', '#DC7EC0']

# ICML
COLORS_ICML = ['#1F77B4', '#FF7F0E', '#2CA02C', '#D62728', '#9467BD', '#8C564B', '#7F7F7F']

# ACL
COLORS_ACL = ['#2166AC', '#B2182B', '#35978F', '#DFC27D', '#762A83', '#525252']

# IEEE (Wong colorblind-safe)
COLORS_IEEE = ['#0072B2', '#E69F00', '#009E73', '#CC79A7', '#56B4E9', '#D55E00', '#000000']

# Nature
COLORS_NATURE = ['#3B4CC0', '#B40426', '#1B7837', '#F2C14E', '#008080', '#404040']

Choosing "Ours" Color

Convention: the first color in each palette (index 0, a shade of blue) is used for "our method". This creates visual prominence and is consistent with reader expectations.


8. Font Sizes Quick Reference

Venue Body Labels Legend Title Min
NeurIPS 10pt 9pt 8pt 11pt 8pt
ICML 10pt 9pt 8pt 10pt 8pt
ACL 10pt 9pt 8pt 10pt 8pt
IEEE 8pt 8pt 7pt 9pt 7pt
Nature 7pt 7pt 6pt 8pt 6pt

Rule of thumb: If in doubt, use larger font sizes. Reviewers complain about unreadable figures far more often than oversized text.


Cross-reference: SKILL.md §Step 3, §NEVER Rules #2 #3 #6