Sure thing. This also includes the beamer bit which I used for my defense. It’s all pretty hacky but hope it’s useful!
#
# Errors aren't handled gracefully (tex doesn't write to stderr, it seems)
# If you encounter errors, use "make verbose"
#
# For small changes (probably those without references), use "make quick"
#
# Thanks to https://gist.github.com/Miliox/4035649 for dependency outline
TEX = pdflatex
BTEX = biber
MAKE = make -s
TEXFLAGS = -halt-on-error
# $(MAIN).log is dumb if we have multiple targets!
SILENT = > /dev/null || cat $(MAIN).log
SILENT_NOER = 2>/dev/null 1>/dev/null
EDITOR = vim -p
PDFVIEW = evince
MAIN = main
PRES = presentation
ALL = $(MAIN).pdf
RECURS = media/ manuscripts/
VERSION := $(shell git rev-parse --short HEAD | cut -c 1-4)$(shell git diff-index --quiet HEAD && (echo -n ' ';git log -1 --format=[%cd]) || (echo -n '* '; date -u '+[%c]'))
all: recurs $(ALL)
pres: $(PRES).pdf
scratch: scratch.pdf
scratch.pdf: scratch.tex
@echo "TEX (final) $<"
@$(TEX) $(TEXFLAGS) $< $(SILENT)
verbose: SILENT = ''
verbose: $(ALL)
recurs: $(RECURS)
@$(foreach DIR, $(RECURS), \
echo "MAKE (CD) $(CURDIR)/$(DIR)"; \
$(MAKE) -C $(DIR) $(MAKECMDGOALS);)
@echo "MAKE (CD) ./"
clean:
@echo "SH (RM) Not recursing; 'make allclean' to clear generated files."
@rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml
allclean: recurs
@echo "SH (RM) A clean directory is a happy directory"
@rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml
version:
@echo "SH (ver) $(VERSION)"
@echo $(VERSION) > VERSION.tex
nixpages: main.pdf
@echo "PDF (pdftk)"
@pdftk main.pdf cat 1 4-end output final.pdf
quick: $(MAIN).tex version
@echo "TEX (final) $<"
@$(TEX) $(TEXFLAGS) $< $(SILENT)
$(MAIN).pdf: $(MAIN).tex $(MAIN).bbl all.tex tex/abstract.tex tex/intro.tex tex/appendix.tex tex/some_section.tex tex/some_other_section.tex
@echo "TEX (draft) $<"
@$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT)
@echo "TEX (final) $<"
@$(TEX) $(TEXFLAGS) $< $(SILENT)
$(MAIN).bbl: $(MAIN).aux
@echo "BIB (bib) $(MAIN)"
@$(BTEX) $(MAIN) > /dev/null
$(MAIN).aux: $(MAIN).tex $(MAIN).bib version
@echo "TEX (draft) $<"
@$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT)
$(PRES).pdf: $(PRES).tex $(PRES).bbl tex/beamer*.tex tex/slides/*.tex
@echo "TEX (draft) $<"
@$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT)
@echo "TEX (final) $<"
@$(TEX) $(TEXFLAGS) $< $(SILENT)
$(PRES).bbl: $(PRES).aux
@echo "BIB (bib) $(PRES)"
@$(BTEX) $(PRES) > /dev/null
$(PRES).aux: $(PRES).tex $(MAIN).bib
@echo "TEX (draft) $<"
@$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT)
edit:
@echo "EDIT (fork) $(EDITOR)"
@$(EDITOR) ./tex/*.tex *.tex
view:
@echo "VIEW (fork) $(PDFVIEW)"
@$(PDFVIEW) $(ALL) $(SILENT_NOER) &
flango@lemmy.eco.br 6 months ago
Thank you!!! I’ll see if I manage to make it work for me.