#!/usr/bin/env sh # Compiling this document with pdflatex, will leave all utf8 chars in the `\note`s # mangled. But, `pdfpc` interprets them as markdown, thus replacing all of them with their # respective html entities results in them looking correct in during the presentation. # # This script automatically replaces them in the source files. # # # Known Bugs # It does not account for `\note`s spanning multiple lines. So, for example, this would not # be fixed: # ```latex # \note { # Ästhetik ist hierbei nicht mit den Wundern der Kunst zu verwechseln. # } # ``` rg '\\note' --files-with-matches | while IFS= read -r file; do [ "$(basename "$file")" = "$(basename "$0")" ] && continue echo "Fixing: '$file'" sed --in-place 's/^\(.*\)\\note\(.*\){\(.*\)}/printf "%s\\\\\\note%s{%s}" "\1" "\2" "$( echo "\3" | sed "s@ä@\\\ä\;@g" | sed "s@ö@\\\ö\;@g" | sed "s@ü@\\\ü\;@g" | sed "s@Ä@\\\Ä\;@g" | sed "s@Ö@\\\Ö\;@g" | sed "s@Ü@\\\Ü\;@g" | sed "s@ß@\\\ß\;@g" | sed "s@→@\\\&rarr\;@g" )"/eg' "$file" done