-
-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy path.latexmkrc
More file actions
114 lines (93 loc) · 4.52 KB
/
Copy path.latexmkrc
File metadata and controls
114 lines (93 loc) · 4.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# ============================================================================
# Configuración de latexmk para la plantilla TFG/TFM EPS UA
# ============================================================================
#
# Uso:
# latexmk main.tex - Compilación completa
# latexmk -pvc main.tex - Compilación continua (watch mode)
# latexmk -c - Limpiar archivos auxiliares
# latexmk -C - Limpiar todo (incluido PDF)
#
# ============================================================================
# MOTOR DE COMPILACIÓN
# ============================================================================
# Usar LuaLaTeX para generar PDF
$pdf_mode = 4; # 4 = lualatex
# Comando de LuaLaTeX con opciones necesarias
$lualatex = 'lualatex -shell-escape -interaction=nonstopmode -file-line-error -synctex=1 %O %S';
# ----------------------------------------------------------------------------
# COMPATIBILIDAD CON OVERLEAF (y con `latexmk -pdf` / `-pdfxe` / `-pdfdvi`)
# ----------------------------------------------------------------------------
# Overleaf ignora la línea mágica «% !TeX program = lualatex» y elige el motor
# desde Menu -> Compiler, pasándolo por línea de órdenes (-pdf, -pdfxe...).
# Las opciones de la línea de órdenes tienen prioridad sobre $pdf_mode, así que
# un proyecto importado a Overleaf compilaría con pdfLaTeX o XeLaTeX y fallaría
# («TeX capacity exceeded», memoria fija de esos motores).
#
# Redirigimos esos motores a LuaLaTeX: así el proyecto compila en Overleaf
# aunque el menú «Compiler» no esté en LuaLaTeX. latexmk detecta que la salida
# es PDF en vez de XDV/DVI y ajusta la cadena automáticamente.
# En la compilación normal (pdf_mode = 4) estas variables NO se usan.
$pdflatex = 'lualatex -shell-escape -interaction=nonstopmode -file-line-error -synctex=1 %O %S';
$xelatex = 'lualatex -shell-escape -interaction=nonstopmode -file-line-error -synctex=1 %O %S';
$latex = 'lualatex -shell-escape -interaction=nonstopmode -file-line-error -synctex=1 %O %S';
# Máximo número de iteraciones
$max_repeat = 5;
# ============================================================================
# BIBLIOGRAFÍA (Biber)
# ============================================================================
$bibtex_use = 2; # 2 = usar biber cuando se detecte
$biber = 'biber --validate-datamodel %O %S';
# ============================================================================
# GLOSARIOS Y ACRÓNIMOS
# ============================================================================
# Dependencias personalizadas para makeglossaries
add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');
sub run_makeglossaries {
my ($base_name, $path) = fileparse( $_[0] );
my @args = ( "-d", $path, $base_name );
if ($silent) { unshift @args, "-q"; }
return system "makeglossaries", @args;
}
# Extensiones de glosarios
push @generated_exts, 'glo', 'gls', 'glg', 'glsdefs';
push @generated_exts, 'acn', 'acr', 'alg';
push @generated_exts, 'ist';
# ============================================================================
# LIMPIEZA DE ARCHIVOS
# ============================================================================
# Extensiones adicionales a limpiar
push @generated_exts, 'aux', 'log', 'out', 'toc', 'lof', 'lot';
push @generated_exts, 'bbl', 'bcf', 'blg', 'run.xml';
push @generated_exts, 'fls', 'fdb_latexmk', 'synctex.gz', 'xdv';
push @generated_exts, 'nav', 'snm', 'vrb'; # Beamer
push @generated_exts, 'pyg', 'listing', 'lol'; # Minted/listings
push @generated_exts, 'idx', 'ilg', 'ind'; # Índices
# Directorios a limpiar
$clean_ext = 'synctex.gz synctex.gz(busy) run.xml %R-blx.bib';
# Limpiar directorio de minted con clean
$clean_full_ext = '_minted-%R/';
# ============================================================================
# VISOR DE PDF
# ============================================================================
# Detectar sistema operativo para el visor
if ($^O eq 'darwin') {
# macOS
$pdf_previewer = 'open -a Preview %S';
} elsif ($^O eq 'MSWin32') {
# Windows
$pdf_previewer = 'start %S';
} else {
# Linux y otros
$pdf_previewer = 'xdg-open %S';
}
# ============================================================================
# OTRAS OPCIONES
# ============================================================================
# Directorio de salida (raíz del proyecto)
$out_dir = '.';
# No mostrar advertencias menores
$silence_logfile_warnings = 1;
# Colorear salida si es posible
$color = 1;