ubuntu2404
# Makefile for CoCalc Machine Learning Template
# Optimized for PythonTeX compilation with ML frameworks
# Document settings
MAIN = main
TEXFILE = $(MAIN).tex
PDFFILE = $(MAIN).pdf
# LaTeX compilation settings
LATEX = pdflatex
LATEXFLAGS = -shell-escape -interaction=nonstopmode -file-line-error
# PythonTeX settings
PYTHONTEX = pythontex
PYTHONTEXFLAGS = --verbose
# BibTeX settings
BIBTEX = bibtex
# Default target
all: $(PDFFILE)
# Full compilation with PythonTeX
$(PDFFILE): $(TEXFILE)
@echo "Starting machine learning template compilation..."
@mkdir -p figures
@echo "Step 1: Initial LaTeX compilation"
$(LATEX) $(LATEXFLAGS) $(MAIN)
@echo "Step 2: Running PythonTeX for ML analysis"
$(PYTHONTEX) $(PYTHONTEXFLAGS) $(MAIN)
@echo "Step 3: Running BibTeX for bibliography"
$(BIBTEX) $(MAIN)
@echo "Step 4: Second LaTeX compilation"
$(LATEX) $(LATEXFLAGS) $(MAIN)
@echo "Step 5: Final LaTeX compilation"
$(LATEX) $(LATEXFLAGS) $(MAIN)
@echo "Machine learning template compilation complete: $(PDFFILE)"
# Quick draft compilation
draft: $(TEXFILE)
@echo "Quick draft compilation (no PythonTeX)..."
$(LATEX) -interaction=nonstopmode $(MAIN)
@echo "Draft compilation complete: $(PDFFILE)"
# Generate figures only
figures: $(TEXFILE)
@echo "Generating ML figures with PythonTeX..."
@mkdir -p figures
$(LATEX) $(LATEXFLAGS) $(MAIN)
$(PYTHONTEX) $(PYTHONTEXFLAGS) $(MAIN)
@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 *.pytxcode *.makefile *.fdb *.figlist *.makefile
rm -f $(MAIN).run.xml $(MAIN)-blx.bib
rm -rf pythontex-files-$(MAIN)/
rm -rf figures/
@echo "Clean complete."
# Force recompilation
force:
$(MAKE) clean
$(MAKE) all
# Test ML dependencies
test-deps:
@echo "Testing machine learning dependencies..."
python3 -c "import numpy; print(f'NumPy: {numpy.__version__}')"
python3 -c "import matplotlib; print(f'Matplotlib: {matplotlib.__version__}')"
python3 -c "import sklearn; print(f'Scikit-learn: {sklearn.__version__}')"
@echo "Dependencies checked."
# Help
help:
@echo "CoCalc Machine Learning Template"
@echo ""
@echo "Available targets:"
@echo " all - Full compilation with PythonTeX (default)"
@echo " draft - Quick compilation without PythonTeX"
@echo " figures - Generate ML figures only"
@echo " clean - Remove all generated files"
@echo " force - Clean and recompile"
@echo " test-deps - Test ML dependencies"
@echo " help - Show this help message"
@echo ""
@echo "Dependencies:"
@echo " - Python packages: numpy, matplotlib, scikit-learn, pandas"
@echo " - LaTeX packages: pythontex, amsmath, tikz, pgfplots"
.PHONY: all draft figures clean force test-deps help