diff --git a/build/build-latex-smart.sh b/build/build-latex-smart.sh new file mode 100755 index 0000000..aaf9f79 --- /dev/null +++ b/build/build-latex-smart.sh @@ -0,0 +1,35 @@ +#!/bin/bash +set -euo pipefail + +# Color definitions +BOLD='\033[1m' +RED='\033[31m' +BLUE='\033[34m' +RESET='\033[0m' + +# Ensure a file parameter is passed +if [[ $# -lt 1 ]]; then + echo -e "${BOLD}${RED}Error${RESET}${RED}: No .tex file provided.${RESET}" + echo "Usage: $0 " + exit 1 +fi + +FILE="$1" + +# append .tex file extension, iff not already passed +[[ "$FILE" != *.tex ]] && FILE="${FILE}.tex" + +# Check that the file exists +if [[ ! -f "$FILE" ]]; then + echo -e "${BOLD}${RED}Error${RESET}${RED}: File '$FILE' not found.${RESET}" + exit 1 +fi + +# Detect active \usepackage{fontspec} (ignore commented lines) +if grep -Eq '^[^%]*\\usepackage\{fontspec\}' "$FILE"; then + echo -e "${BLUE}Detected fontspec → Using XeLaTeX${RESET}" + xelatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE" +else + echo -e "${BLUE}No active fontspec → Using pdfLaTeX${RESET}" + pdflatex -synctex=1 -interaction=nonstopmode -file-line-error "$FILE" +fi