#!/usr/bin/env perl # ======================================================================== # Latexmk configuration for dissertation template # ======================================================================== # This file works with both local builds (VimTeX, CLI) and Overleaf. # Overleaf automatically detects and uses .latexmkrc files. # # Usage: # latexmk main.tex -- build # latexmk -c main.tex -- clean auxiliary files # latexmk -C main.tex -- clean everything including PDF # ======================================================================== # Use pdflatex by default (change to 'xelatex' or 'lualatex' if needed) $pdf_mode = 1; # Number of compilation passes $max_repeat = 5; # Enable shell escape (needed by some packages) $pdflatex = 'pdflatex -shell-escape -interaction=nonstopmode -synctex=1 %O %S'; # BibLaTeX / Biber support $biber = 'biber %O %S'; # Glossaries / makeglossaries support # This rule runs makeglossaries when .glo or .acn files change add_cus_dep('glo', 'gls', 0, 'makeglossaries'); add_cus_dep('acn', 'acr', 0, 'makeglossaries'); sub makeglossaries { my ($base_name, $path) = fileparse( $_[0] ); my @args = ("makeglossaries", "-d", "$path", "$base_name"); system @args; } # Custom dependency for nomenclature (if used) add_cus_dep('nlo', 'nls', 0, 'makenlo2nls'); sub makenlo2nls { system("makeindex -s nomencl.ist -o '$_[0].nls' '$_[0].nlo'"); } # Output directory for auxiliary files (keeps root clean) # Uncomment the next line to use a build directory: # $out_dir = 'build'; # PDF viewer settings (for local use) # $pdf_previewer = 'start evince'; # Continuous preview mode (run 'latexmk -pvc main.tex') # $preview_continuous_mode = 1;