#!/bin/sh build() { if ! grep '\\begin{document}' "$f" 1>/dev/null; then return fi latexmk "$f" pdf="$(printf %s "$f" | sed 's/\.tex$/.pdf/')" out="build/$(dirname "$f" | xargs basename | sed 's/^src$//')" mkdir -p "$out" && cp "$pdf" "$out" } for f in ./src/*.tex; do build "$f" done for f in ./src/**/*.tex; do build "$f" done