A collection of technical papers and documentation with automated LaTeX compilation
This repository hosts technical papers and documentation with automated PDF generation. Each project maintains its source LaTeX files (.tex) and compiled PDFs (.pdf) in the same directory.
Current Projects:
- Project JANUS - Neuromorphic Trading Intelligence System (consolidated in
project_janus/janus.tex)
technical_papers/
βββ .github/
β βββ workflows/
β βββ ci.yml # Automated PDF compilation
βββ project_janus/ # Main project directory
β βββ janus.tex # β CONSOLIDATED DOCUMENT (recommended)
β βββ janus.pdf # Compiled PDF (auto-generated)
β βββ README.md # Project-specific documentation
βββ main.tex # Legacy standalone documents
βββ forward.tex
βββ backward.tex
βββ neuro.tex
βββ rust.tex
βββ main_content.tex # Content-only file (used by janus.tex)
βββ README.md # This file
PDFs are automatically compiled and committed to the repository:
git clone https://github.com/nuniesmith/technical_papers.git
cd technical_papers
# Navigate to any project directory
cd project_janus
# PDFs are located next to their source .tex files
ls -lh *.pdf- LaTeX Distribution: TeX Live (Linux/Windows) or MacTeX (macOS)
- Bash: Available on Linux/macOS/WSL
Ubuntu/Debian:
sudo apt-get update
sudo apt-get install -y texlive-fullmacOS (Homebrew):
brew install --cask mactexmacOS (MacPorts):
sudo port install texliveArch Linux:
sudo pacman -S texlive-mostFedora/RHEL:
sudo dnf install texlive-scheme-fullIf the project includes a build script:
cd technical_papers
chmod +x scripts/build.sh
./scripts/build.shOr build individual documents manually:
cd project_name
# Build a document (run twice for TOC/references)
pdflatex document.tex
pdflatex document.tex
# Or use latexmk for automatic handling
latexmk -pdf document.texEvery push to the main branch triggers automated PDF compilation via GitHub Actions.
Features:
- β
Auto-discovery: Automatically finds all
.texfiles with\documentclass - β
Smart compilation: Runs
pdflatextwice for TOC and cross-references - β Same-directory output: PDFs are created next to their source files
- β Auto-commit: Compiled PDFs are committed back to the repository
- β
Loop prevention: Uses
[skip ci]to prevent infinite build loops - β Build reports: Summary of successful/failed compilations
Workflow: .github/workflows/ci.yml
Simply create a new .tex file anywhere in the repository:
\documentclass{article}
\begin{document}
Your content here
\end{document}The CI system will automatically detect and compile it!
-
Create project directory:
mkdir new_project_name cd new_project_name -
Add LaTeX documents:
# Create your .tex files touch paper.tex -
Optional: Add build script:
# Create project-specific build automation touch build.sh chmod +x build.sh -
Commit and push:
git add new_project_name/ git commit -m "Add new project: Project Name" git push
The CI system will automatically compile your documents.
Simple project (single document):
my_paper/
βββ paper.tex
βββ paper.pdf (auto-generated)
Complex project (multiple documents):
my_project/
βββ main.tex
βββ main.pdf
βββ appendix_a.tex
βββ appendix_a.pdf
βββ complete.tex # Optional: unified document
βββ complete.pdf
βββ extract_content.sh # Optional: content extraction
βββ README.md # Optional: project-specific docs
Ensure your documents load commonly available packages:
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath, amssymb}
\usepackage{graphicx}
\usepackage{hyperref}Run compilation twice for proper TOC and references:
pdflatex document.tex # First pass
pdflatex document.tex # Second pass (resolves references)Or use latexmk for automatic handling:
latexmk -pdf document.texFor unicode characters in LaTeX:
\usepackage{newunicodechar}
\newunicodechar{β}{\ensuremath{\rightarrow}}
\newunicodechar{β₯}{\ensuremath{\geq}}Create a build.sh in your project directory:
#!/bin/bash
set -e
# Compile all documents
for tex_file in *.tex; do
if [ -f "$tex_file" ]; then
echo "Building $tex_file..."
pdflatex -interaction=nonstopmode "$tex_file"
pdflatex -interaction=nonstopmode "$tex_file"
fi
done
# Cleanup auxiliary files
rm -f *.aux *.log *.out *.toc *.synctex.gz
echo "Build complete!"A comprehensive technical specification for a brain-inspired algorithmic trading system.
π Main Document (Recommended):
project_janus/janus.pdf- Complete consolidated specification (all parts in one)
Legacy Documents (Individual Parts):
main.pdf- Architectural overview and philosophyforward.pdf- Real-time trading service (Janus Bifrons)backward.pdf- Memory consolidation and learning (Janus Consivius)neuro.pdf- Neuromorphic architecture mappingrust.pdf- Rust implementation guide
What's Inside janus.pdf:
- Part 1: Main Architecture - System design and philosophy
- Part 2: Forward Service - Real-time decision-making and execution
- Part 3: Backward Service - Memory consolidation and learning
- Part 4: Neuromorphic Architecture - Brain-region mapping
- Part 5: Rust Implementation - Production deployment guide
Location: project_janus/ | Documentation: project_janus/README.md
Contributions are welcome! To add or improve documentation:
- Fork the repository
- Create a feature branch
git checkout -b feature/new-paper
- Add your LaTeX files
- Test compilation locally
- Submit a pull request
- β Use standard LaTeX packages (avoid exotic dependencies)
- β Include README in project directories for complex projects
- β Test compilation before pushing
- β Use meaningful commit messages
- β
Keep source files (
.tex) and PDFs in the same directory
Unless otherwise specified, content in this repository is licensed under:
- Documentation/Papers: Creative Commons BY-NC-SA 4.0
- Code/Scripts: MIT License
Individual projects may specify their own licenses.
Issue: "File not found" errors
# Solution: Install missing packages
sudo apt-get install texlive-latex-extra texlive-fonts-extraIssue: Unicode characters not rendering
# Solution: Add unicode support
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}Issue: References showing as "??"
# Solution: Run pdflatex twice
pdflatex document.tex
pdflatex document.texIssue: Build fails on GitHub Actions
- Check the Actions tab for detailed logs
- Ensure all required packages are in
texlive-full - Test locally before pushing
Issue: Infinite commit loops
- Workflow uses
[skip ci]in commit messages - Ensure you're not modifying committed PDFs manually
Jordan Smith
- GitHub: @nuniesmith
- LaTeX Project contributors
- GitHub Actions community
- Open source LaTeX package maintainers
Adding a new project? Just create a directory, add your .tex files, commit, and push. The CI system handles the rest!