#!/usr/bin/env bash # pdfprint -- print-ready PDF with proper margins, headers, Shunn-style set -euo pipefail usage() { echo "Usage: pdfprint [--format shunn|book|essay] [--output file.pdf]" exit 1 } [ $# -lt 1 ] && usage input="$1"; shift format="essay" output="" while [ $# -gt 0 ]; do case "$1" in --format|-f) format="$2"; shift 2 ;; --output|-o) output="$2"; shift 2 ;; *) echo "Unknown option: $1"; usage ;; esac done [ -z "$output" ] && output="${input%.md}.pdf" case "$format" in shunn) # Standard manuscript format (Shunn) pandoc "$input" --pdf-engine=xelatex \ -V geometry:margin=1in \ -V fontsize:12pt \ -V linestretch:2 \ -V mainfont:"Courier New" \ -V header-includes:'\usepackage{fancyhdr}\pagestyle{fancy}\fancyhead[R]{\thepage}' \ -o "$output" ;; book) # Book interior format (6x9, tighter margins) pandoc "$input" --pdf-engine=xelatex \ -V geometry:'paperwidth=6in,paperheight=9in,margin=0.75in,inner=0.875in' \ -V fontsize:11pt \ -V linestretch:1.3 \ -V mainfont:"Linux Libertine" \ --toc \ -o "$output" ;; essay) # Clean essay format pandoc "$input" --pdf-engine=xelatex \ -V geometry:margin=1in \ -V fontsize:12pt \ -V linestretch:1.5 \ -V mainfont:"Linux Libertine" \ -o "$output" ;; *) echo "Unknown format: $format (use shunn, book, or essay)" exit 1 ;; esac echo "Created: $output ($format format, $(du -h "$output" | cut -f1))"