51 lines
1.7 KiB
Perl
51 lines
1.7 KiB
Perl
#!/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;
|