#!/bin/bash AUTHOR_NAME="John Hill" function _tex_header(){ echo \\documentclass{article} echo \\usepackage{verse} echo \\usepackage[a5paper]{geometry} echo echo \\newcommand{\\attrib}[1]{% echo \\nopagebreak{\\raggedleft\\footnotesize \#1\\par}} echo \\renewcommand{\\poemtitlefont}{\\normalfont\\large\\itshape\\centering} echo echo \\begin{document} echo } function _tex_footer(){ echo \\end{verse} echo \\attrib{$AUTHOR_NAME} echo echo \\end{document} } function gen_tex(){ ls *txt | while read fname; do name=$(basename "$fname" .txt) texname="$name.tex" humname=$(head -1 "$fname") echo "POEM" "$humname" TO "$texname" longest_line=$(awk 'length > max_length { max_length = length; longest_line = $0 } END { print longest_line }' "$fname") _tex_header > "$texname" echo \\poemtitle{$humname} >> "$texname" echo \\settowidth{\\versewidth}{$longest_line:} >> "$texname" echo \\begin{verse}[\\versewidth] >> "$texname" tail --lines=+2 "$fname" | sed \ -e 's_\([[:alpha:],:_.-\;\?]\)$_\1 \\\\_g' \ -e 's_^$_\\end{verse}\\begin{verse}[\\versewidth]_' \ -e 's/_\(.*\)_/\\emph{\1}/g' \ >> "$texname" _tex_footer >> "$texname" done } gen_tex