Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
186 views
ubuntu2404
# Makefile for CoCalc Mathematics with Symbolic Computation Template
# Optimized for SageTeX compilation

# Document settings
MAIN = main
TEXFILE = $(MAIN).tex
PDFFILE = $(MAIN).pdf

# LaTeX compilation settings
LATEX = pdflatex
LATEXFLAGS = -shell-escape -interaction=nonstopmode -file-line-error

# SageTeX settings
SAGE = sage

# Default target
all: $(PDFFILE)

# Full compilation with SageTeX
$(PDFFILE): $(TEXFILE)
	@echo "Starting mathematics template compilation with SageTeX..."
	@mkdir -p figures
	@echo "Step 1: Initial LaTeX compilation"
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	@echo "Step 2: Running Sage for symbolic computation"
	$(SAGE) $(MAIN).sagetex.sage
	@echo "Step 3: Final LaTeX compilation"
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	@echo "Mathematics template compilation complete: $(PDFFILE)"

# Quick draft compilation without SageTeX
draft: $(TEXFILE)
	@echo "Quick draft compilation (no SageTeX)..."
	$(LATEX) -interaction=nonstopmode $(MAIN)
	@echo "Draft compilation complete: $(PDFFILE)"

# Generate figures only
figures: $(TEXFILE)
	@echo "Generating mathematical figures with SageTeX..."
	@mkdir -p figures
	$(LATEX) $(LATEXFLAGS) $(MAIN)
	$(SAGE) $(MAIN).sagetex.sage
	@echo "Figures generated"

# Clean generated files
clean:
	@echo "Cleaning generated files..."
	rm -f *.aux *.log *.out *.toc *.lof *.lot *.bbl *.blg
	rm -f *.fdb_latexmk *.fls *.synctex.gz
	rm -f *.sagetex.sage *.sagetex.scmd *.sagetex.sout
	rm -f $(MAIN).run.xml $(MAIN)-blx.bib
	rm -rf sage-plots-for-$(MAIN).tex/ __pycache__/
	rm -rf figures/
	@echo "Clean complete."

# Force recompilation
force:
	$(MAKE) clean
	$(MAKE) all

# Test Sage installation
test-sage:
	@echo "Testing Sage installation..."
	sage -v
	sage -c "print('Sage is working correctly')"

# Help
help:
	@echo "CoCalc Mathematics with Symbolic Computation Template"
	@echo ""
	@echo "Available targets:"
	@echo "  all       - Full compilation with SageTeX (default)"
	@echo "  draft     - Quick compilation without SageTeX"
	@echo "  figures   - Generate mathematical figures only"
	@echo "  clean     - Remove all generated files"
	@echo "  force     - Clean and recompile"
	@echo "  test-sage - Test Sage installation"
	@echo "  help      - Show this help message"
	@echo ""
	@echo "Dependencies:"
	@echo "  - SageMath for symbolic computation"
	@echo "  - LaTeX packages: sagetex, amsmath, tikz, pgfplots"

.PHONY: all draft figures clean force test-sage help