mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 08:33:36 +00:00
fixing paper build
This commit is contained in:
4
Makefile
4
Makefile
@@ -253,8 +253,8 @@ test:
|
|||||||
count-lines:
|
count-lines:
|
||||||
@$(NX) run research:stats
|
@$(NX) run research:stats
|
||||||
|
|
||||||
all:
|
# Default artifact set for this repo: thesis PDF (same as pdf).
|
||||||
@$(NX) run paper:build
|
all: pdf
|
||||||
|
|
||||||
.PHONY: manim.defense manim.defense.hq manim.render manim.render.full manim.render.poster manim.render.appendix manim.render.all
|
.PHONY: manim.defense manim.defense.hq manim.render manim.render.full manim.render.poster manim.render.appendix manim.render.all
|
||||||
# Main defense reel (paper/defense/manim/render_defense); uses paper/defense/.venv when present
|
# Main defense reel (paper/defense/manim/render_defense); uses paper/defense/.venv when present
|
||||||
|
|||||||
@@ -4,5 +4,23 @@ $bibtex_use = 2; # run biber when biblatex .bcf changes
|
|||||||
# biber cwd is paper/build; scripts/nx_paper.sh symlinks ../build/bib -> ../src/bib so
|
# biber cwd is paper/build; scripts/nx_paper.sh symlinks ../build/bib -> ../src/bib so
|
||||||
# datasources log as bib/references.bib and latexmk's -e check works from paper/src
|
# datasources log as bib/references.bib and latexmk's -e check works from paper/src
|
||||||
$biber = 'biber %O %S';
|
$biber = 'biber %O %S';
|
||||||
|
|
||||||
|
# Stale latexmk db: biblatex uses biber + .bcf, but the fdb can keep a "bibtex" rule after a bad
|
||||||
|
# run. Then biber never runs and citations stay undefined. Read whole fdb (small) so the rule
|
||||||
|
# line is never missed after a long dependency list.
|
||||||
|
for my $job (qw(main main-genpop summary)) {
|
||||||
|
my $bcf = "../build/$job.bcf";
|
||||||
|
my $bbl = "../build/$job.bbl";
|
||||||
|
my $fdb = "../build/$job.fdb_latexmk";
|
||||||
|
next unless -e $fdb && -e $bcf;
|
||||||
|
my $drop = !-e $bbl;
|
||||||
|
if ( !$drop && open my $fh, '<', $fdb ) {
|
||||||
|
local $/;
|
||||||
|
my $body = <$fh>;
|
||||||
|
close $fh;
|
||||||
|
$drop = 1 if defined $body && $body =~ /\["bibtex $job"\]/;
|
||||||
|
}
|
||||||
|
unlink $fdb if $drop;
|
||||||
|
}
|
||||||
$pdf_previewer = 'zathura %O %S';
|
$pdf_previewer = 'zathura %O %S';
|
||||||
$clean_ext = 'synctex.gz bbl bcf run.xml fls fdb_latexmk glg glo gls ist blg lof lot out toc';
|
$clean_ext = 'synctex.gz bbl bcf run.xml fls fdb_latexmk glg glo gls ist blg lof lot out toc';
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -27,18 +27,17 @@ link_build_bib() {
|
|||||||
ln -sfn ../src/bib ../build/bib
|
ln -sfn ../src/bib ../build/bib
|
||||||
}
|
}
|
||||||
|
|
||||||
# latexmk can exit non-zero with "biber ... gave an error in previous invocation" while the PDF is
|
# Biblatex uses biber; a stale latexmk fdb can still record ["bibtex <job>"], so latexmk skips
|
||||||
# already fine: incremental runs skip biber but keep a stale failure bit in main.fdb_latexmk.
|
# biber, main.bbl is missing or wrong, and every citation stays undefined. Drop only that case.
|
||||||
# One forced cycle (-g) re-runs biber and clears that state.
|
drop_stale_latexmk_bibtex_fdb() {
|
||||||
latexmk_paper() {
|
local job fdb tag
|
||||||
local job="$1"
|
for job in main main-genpop summary; do
|
||||||
local tex="$2"
|
fdb="../build/${job}.fdb_latexmk"
|
||||||
local -a common
|
tag=$(printf '["bibtex %s"]' "$job")
|
||||||
common=( -pdf -jobname="$job" -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build )
|
if [[ -f "$fdb" ]] && grep -Fq "$tag" "$fdb"; then
|
||||||
latexmk "${common[@]}" "$tex" || {
|
rm -f "$fdb"
|
||||||
printf '%s\n' "latexmk failed; retrying once with -g (clear stale biber/latexmk state)" >&2
|
fi
|
||||||
latexmk -g "${common[@]}" "$tex"
|
done
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
@@ -48,13 +47,15 @@ case "$cmd" in
|
|||||||
bash paper/concat_code.sh
|
bash paper/concat_code.sh
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
latexmk_paper main main.tex
|
drop_stale_latexmk_bibtex_fdb
|
||||||
|
latexmk -pdf -jobname=main -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main.tex
|
||||||
;;
|
;;
|
||||||
watch)
|
watch)
|
||||||
mkdir -p paper/build
|
mkdir -p paper/build
|
||||||
sync_mdp_figures
|
sync_mdp_figures
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
|
drop_stale_latexmk_bibtex_fdb
|
||||||
latexmk -pvc -pdf -jobname=main -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main.tex
|
latexmk -pvc -pdf -jobname=main -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main.tex
|
||||||
;;
|
;;
|
||||||
clean)
|
clean)
|
||||||
@@ -77,13 +78,15 @@ case "$cmd" in
|
|||||||
sync_mdp_figures
|
sync_mdp_figures
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
latexmk_paper main-genpop main-genpop.tex
|
drop_stale_latexmk_bibtex_fdb
|
||||||
|
latexmk -pdf -jobname=main-genpop -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main-genpop.tex
|
||||||
;;
|
;;
|
||||||
watch-genpop)
|
watch-genpop)
|
||||||
mkdir -p paper/build
|
mkdir -p paper/build
|
||||||
sync_mdp_figures
|
sync_mdp_figures
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
|
drop_stale_latexmk_bibtex_fdb
|
||||||
latexmk -pvc -pdf -jobname=main-genpop -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main-genpop.tex
|
latexmk -pvc -pdf -jobname=main-genpop -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build main-genpop.tex
|
||||||
;;
|
;;
|
||||||
build-arxiv)
|
build-arxiv)
|
||||||
@@ -99,12 +102,14 @@ case "$cmd" in
|
|||||||
mkdir -p paper/build
|
mkdir -p paper/build
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
latexmk_paper summary summary.tex
|
drop_stale_latexmk_bibtex_fdb
|
||||||
|
latexmk -pdf -jobname=summary -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build summary.tex
|
||||||
;;
|
;;
|
||||||
watch-summary)
|
watch-summary)
|
||||||
mkdir -p paper/build
|
mkdir -p paper/build
|
||||||
cd paper/src
|
cd paper/src
|
||||||
link_build_bib
|
link_build_bib
|
||||||
|
drop_stale_latexmk_bibtex_fdb
|
||||||
latexmk -pvc -pdf -jobname=summary -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build summary.tex
|
latexmk -pvc -pdf -jobname=summary -f -interaction=nonstopmode -file-line-error -r ../.latexmkrc -outdir=../build summary.tex
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
Reference in New Issue
Block a user