Skip to main content

TexForge - Forge perfect LaTeX papers with automated compilation, validation, and maintenance

Project description

TexForge - Forge Perfect LaTeX Papers

Automated LaTeX paper compilation, validation, and maintenance

License: GPL v3 Python 3.8+

⚠️ Note: This project is under active construction. Features and APIs may change.

Forge your research with precision and ease:

  • Modern CLI Tool: Simple texforge command for all operations
  • Smart Compilation: LaTeX to PDF with error detection and auto-cleanup
  • Project Templates: Physical Review A/L, generic article templates
  • Validation: Compilation, references, citations, TODOs
  • Notifications: Slack, Telegram, Discord, ntfy.sh (no config file needed!)
  • Python API: Use as a library in your own scripts

📑 Table of Contents

🚀 Quick Start

# Clone and install
git clone https://github.com/Jue-Xu/LaTex-paper-automation.git
cd LaTex-paper-automation
pip install -e .

# Create a new paper project
texforge init quantum-dynamics --template pra

# Write your paper
cd projects/quantum-dynamics
mv template.tex main.tex
# ... edit main.tex, add references.bib ...

# Compile to PDF
texforge compile

# Send notification (no config needed!)
export SLACK_WEBHOOK="https://hooks.slack.com/services/..."
texforge notify --slack "Paper compiled successfully!"

That's it! You're ready to forge perfect LaTeX papers.

📋 Features

🔨 Core Tools

  1. texforge prove - Rigorous theorem prover ⭐ NEW (Guide)

    • Reads theorems from your LaTeX files by label
    • Dual AI agents: Prover + Checker for verification
    • Specialized for quantum info, complexity theory, information theory
    • Writes verified proofs back to your .tex files automatically
    • Example: texforge prove --label thm:main
  2. texforge brainstorm - AI-powered research planning (Guide)

    • 6 expert personas evaluate your research idea
    • 3-round discussion with synthesis and recommendations
    • Reads references from library/ folder
    • Generates manuscript outline and detailed logs
  3. texforge arxiv-download - Multi-format arXiv paper downloader ⭐ NEW

    • Download papers in LaTeX source, PDF, or HTML format
    • Supports arXiv IDs or URLs
    • HTML version from ar5iv.labs.arxiv.org
    • Perfect for building your research library
    • Example: texforge arxiv-download 2301.12345 --format pdf
  4. texforge compile - Smart LaTeX compilation

    • Auto-detects main.tex, handles bibliography
    • Smart error detection vs. warnings
    • Auto-cleanup of auxiliary files
    • Slack notifications with --notify flag
  5. texforge init - Project scaffolding

    • Physical Review A/L templates (revtex4-2)
    • Generic article template
    • Complete project structure with content/ and library/ folders
  6. texforge review - Peer review simulation (Guide)

    • 3 expert reviewers for APS journals (PRA, PRB, PRL, PRX, PRR)
    • Automated compliance checks
    • Decision: Accept, Minor/Major Revision, or Reject
  7. texforge cover-letter - Submission letter generator (Guide)

    • Journal-specific professional cover letters
    • Pre-configured for PRL, Nature, Science, PRA, PRB, PRX
    • Outputs .txt and .md formats
  8. texforge polish - Grammar and word flow checker ⭐ NEW (Guide)

    • Checks grammar, clarity, and flow while preserving technical terminology
    • Two modes: Report (markdown) or Inline (LaTeX comments)
    • Severity filtering: critical, major, minor
    • Configurable terminology preservation
  9. texforge validate - Quality checks

    • Compilation, references, citations, TODOs
  10. texforge maintain - Automated maintenance

  • Scheduled checks with Git integration
  1. texforge notify - Multi-channel notifications
  • Slack, Telegram, Discord, ntfy.sh
  • Works without config files (env vars)

🚧 Planned Features (TODO)

  • texforge simulate - Dual-implementation simulation verification

    • Generate and verify numerical simulations in two independent frameworks
    • Qiskit + NumPy for quantum simulations
    • Automatic comparison and validation
    • Status: Being refactored to use Anthropic SDK directly
  • texforge generate-figures - Automated figure generation

    • AI-powered figure generation from paper context
    • Publication-quality matplotlib/seaborn plots
    • Progress-based triggers (e.g., at 50% completion)
    • Status: Being refactored to use Anthropic SDK directly

🎯 Key Benefits

  • Zero Configuration Start: Send notifications using environment variables
  • Smart Error Detection: Distinguishes LaTeX warnings from real errors
  • Clean API: Use as CLI tool or Python library
  • Professional Templates: Journal-ready LaTeX templates
  • Git Integration: Auto-commit with detailed messages
  • Flexible Notifications: Config file, environment vars, or direct credentials

💻 Usage

Command-Line Interface

# Research Planning
texforge brainstorm                          # Use project goals from README
texforge brainstorm --idea "..." --journal "PRL"

# Reference Management (NEW!)
texforge arxiv-download 2301.12345           # Download LaTeX source
texforge arxiv-download 2301.12345 --format pdf    # Download PDF
texforge arxiv-download 2301.12345 --format html   # Download HTML

# Paper Development
texforge init my-paper --template pra        # Initialize project
texforge compile                             # Compile to PDF
texforge validate                            # Quality checks

# Theorem Proving (NEW!)
texforge prove --label thm:main              # Prove theorem from LaTeX
texforge prove --label lem:bound --file methods.tex

# Grammar and Polish (NEW!)
texforge polish main.tex                     # Check grammar & flow
texforge polish main.tex --mode inline       # Add inline comments
texforge polish main.tex --severity critical # Only critical issues

# Pre-Submission Review
texforge review --journal prl                # Get peer review feedback
texforge review --journal prl --strict       # Strict criteria

# Submission Preparation
texforge cover-letter prl                    # Generate cover letter
texforge cover-letter nature -i "Context"    # With additional info

# Notifications
export SLACK_WEBHOOK="https://..."
texforge notify --slack "Paper ready!"

# Help
texforge --help
texforge <command> --help

📚 Complete Documentation:

Python API

Use TexForge as a library in your own scripts:

from texforge import PDFCompiler, PaperMaintenanceConfig, NotificationManager

# Compile a paper
config = PaperMaintenanceConfig.load("config.yaml")
compiler = PDFCompiler(config)
result = compiler.compile()

if result.success:
    print(f"✓ PDF generated: {result.pdf_path}")
else:
    print(f"✗ Compilation failed: {result.errors}")

# Send notification
notifier = NotificationManager(config)
notifier.send_notification(
    subject="Build Complete",
    body="PDF generated successfully",
    channels=["slack", "ntfy"]
)

Available Templates

  • pra - Physical Review A (two-column, revtex4-2)
  • prl - Physical Review Letters (two-column, revtex4-2)
  • ns - Nature/Science journals (intro, setup, results, discussion, references, methods, appendix)
  • tcs - Theoretical Computer Science (intro with Preliminaries/Previous Work/Contributions subsections)
  • generic - Generic article (single-column, article class)

🔧 Installation

Requirements

  • Python 3.8+ with pip
  • LaTeX distribution (TeX Live, MiKTeX, etc.)
  • Git (for project management)

Install TexForge

# Clone repository
git clone https://github.com/Jue-Xu/LaTex-paper-automation.git
cd LaTex-paper-automation

# Install in editable mode (recommended for development)
pip install -e .

# Or install from PyPI (when published)
pip install texforge

This installs:

  • texforge command-line tool
  • Python package for programmatic use
  • All dependencies (requests, numpy, matplotlib, pyyaml)

Verify Installation

# Check version
texforge --version

# Get help
texforge --help

# Test compilation (requires LaTeX)
texforge init test-paper
cd projects/test-paper
mv template.tex main.tex
texforge compile

📖 Complete Workflow Example

From idea to submission in 7 steps:

# 1. Create project
texforge init quantum-entanglement --template pra
cd quantum-entanglement

# 2. Download references from arXiv
texforge arxiv-download 2301.12345 --format pdf
texforge arxiv-download 2302.98765
cp ~/papers/other-refs/*.pdf library/

# 3. Brainstorm and plan (→ manuscript_outline.md)
texforge brainstorm --journal "Physical Review A"

# 4. Write paper based on outline
mv template.tex main.tex
# ... edit sections using content/manuscript_outline.md as guide ...

# 5. Compile and validate
texforge compile
texforge validate

# 6. Polish for grammar and flow
texforge polish main.tex
# ... fix critical issues ...
texforge polish main.tex --severity critical  # Verify fixes

# 7. Get peer review and iterate
texforge review --journal pra
# ... address feedback, revise ...
texforge compile && texforge review --journal pra

# 8. Prepare submission
texforge cover-letter pra
# Ready: paper PDF + cover_letter.txt

See detailed guides for each step:

Advanced Features

# Compile with custom configuration
texforge compile -c custom-config.yaml paper.tex

# Keep auxiliary files for debugging
texforge compile --no-clean

# Setup macros file
texforge compile --setup-macros

# Get macro suggestions
texforge compile --suggest-macros

# Multiple notification channels
texforge notify --subject "Build Complete" \
  --slack --telegram --ntfy \
  "All checks passed!"

⚙️ Configuration

TexForge uses YAML configuration files. Each project gets a .paper-config.yaml:

# Paper Settings
paper_directory: /path/to/paper
main_tex_file: main.tex
target_journal: Physical Review A

# Schedule
schedule:
  run_interval_hours: 6
  quiet_hours_start: "23:00"
  quiet_hours_end: "07:00"

# Checks to Run
checks:
  compile_check: true
  citation_check: true
  math_check: true
  consistency_check: false

# Git Integration
git:
  remote: "origin"
  branch: "main"
  commit_prefix: "paper: "
  auto_push: false

# Notifications (optional - can use env vars instead)
notifications:
  slack:
    enabled: true
    webhook_url: ""  # or use SLACK_WEBHOOK env var
  ntfy:
    enabled: true
    topic: "my-paper-updates"  # or use NTFY_TOPIC env var

Notification Setup

No config file needed! Use environment variables:

# Slack
export SLACK_WEBHOOK="https://hooks.slack.com/services/..."
texforge notify --slack "Message"

# ntfy.sh (recommended - no signup!)
export NTFY_TOPIC="my-paper-updates"
texforge notify --ntfy "Message"

# Telegram
export TELEGRAM_BOT_TOKEN="your-token"
export TELEGRAM_CHAT_ID="your-chat-id"
texforge notify --telegram "Message"

# Discord
export DISCORD_WEBHOOK="https://discord.com/api/webhooks/..."
texforge notify --discord "Message"

Or use direct credentials:

texforge notify --slack-webhook "https://..." "Message"
texforge notify --ntfy-topic "my-topic" "Message"

🎯 Use Cases

Research Paper Development

Write your paper in LaTeX with automatic compilation and quality checks:

texforge init research-paper --template pra
cd projects/research-paper
# ... edit main.tex ...
texforge compile && texforge notify --slack "Draft ready for review!"

Collaborative Writing

Integrate with Git hooks for automatic validation:

# .git/hooks/pre-commit
#!/bin/bash
texforge compile || exit 1
texforge validate || exit 1

Automated Paper Maintenance

Schedule regular checks with cron:

# Run every 6 hours
0 */6 * * * cd ~/papers/my-paper && texforge maintain -c .paper-config.yaml

CI/CD Integration

Use in GitHub Actions or other CI systems:

# .github/workflows/latex.yml
- name: Compile LaTeX
  run: |
    pip install texforge
    texforge compile main.tex

📚 Documentation

Agent Guides

  • Brainstorming Guide - AI research planning

    • 6 expert personas including Dr. Literature
    • 3-round discussion process
    • Output files and iteration workflow
  • Polish Agent Guide - Grammar and word flow checker ⭐ NEW

    • Two modes: Report and Inline comments
    • Preserves technical terminology
    • Severity filtering and workflow integration
    • LaTeX-aware grammar checking
  • APS Review Guide - Peer review simulation

    • 3 expert reviewers for APS journals
    • Compliance checks and decisions
    • Understanding feedback and iterating
  • Cover Letter Guide - Submission letters

    • Journal-specific letter generation
    • Customization and best practices
    • Integration with submission workflow

General Guides

  • CLI Guide - Complete command reference

    • All commands with examples
    • Configuration and troubleshooting
  • Additional docs in docs/:

    • Notification setup
    • Deployment checklists
    • Contributing guidelines

🤝 Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Development setup:

git clone https://github.com/Jue-Xu/LaTex-paper-automation.git
cd LaTex-paper-automation
pip install -e ".[dev]"  # Install with dev dependencies

📞 Support

Need help?

Quick diagnostics:

# Check installation
texforge --version
pip list | grep texforge

# Test compilation
texforge init test && cd projects/test
mv template.tex main.tex
texforge compile

# Test notifications
export SLACK_WEBHOOK="your-webhook"
texforge notify --slack "Test message"

📝 License

GNU General Public License v3.0 - see LICENSE file for details.

🙏 Acknowledgments

Built with Claude Code by Anthropic. Inspired by the needs of researchers who want to focus on science, not LaTeX debugging.


TexForge - Forge Perfect LaTeX Papers

Made with precision for researchers worldwide

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

texforge-0.1.4.tar.gz (170.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

texforge-0.1.4-py3-none-any.whl (127.6 kB view details)

Uploaded Python 3

File details

Details for the file texforge-0.1.4.tar.gz.

File metadata

  • Download URL: texforge-0.1.4.tar.gz
  • Upload date:
  • Size: 170.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for texforge-0.1.4.tar.gz
Algorithm Hash digest
SHA256 1720024065c1311505cef783990e7560a5de1a4087d64159647bf1cbf6ad5b57
MD5 0319dd73eca2bf5312b12b27ec158dd7
BLAKE2b-256 a11616e56136b382e34865cd9a633d1bce249b00fead2273c54f79bf2d4eede5

See more details on using hashes here.

File details

Details for the file texforge-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: texforge-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 127.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for texforge-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 215f73fc78007c95005b80625b2b51f33f756cbe648da60639192ff46b78ed7a
MD5 50295eb122504aaa51bb8a242b383e01
BLAKE2b-256 45fc1b37c53869a8cc61f8cb13983d56251fc1155ba386495e558a562eed11c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page