Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDF to LaTeX Converter (AI-Powered)

Профессиональный инструмент для оцифровки математических лекций и конспектов из PDF в высококачественный LaTeX-код с использованием моделей семейства Gemini.

🚀 Особенности

  • Интеллектуальное распознавание: Использует мощь нейросетей (Gemini 1.5 Pro / Flash) для точного распознавания сложных математических формул и текста.
  • Автоматическая коррекция: Встроенный механизм "Self-healing" анализирует ошибки компиляции pdflatex и автоматически исправляет LaTeX-код через ИИ.
  • Предотвращение переполнения: Специальные промпты и настройки преамбулы (align*, split, multline) предотвращают выход формул за границы страницы (Overfull hbox).
  • Контроль лимитов: Реализован RateLimiter для соблюдения ограничений API (RPM).
  • Модульная сборка: Процесс разбит на блоки (по 10 страниц), что повышает надежность и позволяет обрабатывать объемные документы.

🛠 Технологический стек

  • Язык: Python 3.9+
  • Библиотеки: PyMuPDF (fitz), requests, python-dotenv
  • ИИ: OpenAI-совместимый API (Google Gemini через прокси или напрямую)
  • Верстка: LaTeX (pdflatex)

📋 Требования

  1. Python 3.9+
  2. Дистрибутив LaTeX: MiKTeX (Windows) или TeX Live (Linux/Mac). Убедитесь, что pdflatex доступен в вашем PATH.
  3. API Key: Ключ Google AI Studio (для Gemini).

⚙️ Установка

  1. Склонируйте репозиторий:

    git clone https://github.com/<YOUR_USERNAME>/otcifrovka_lekchii.git
    cd otcifrovka_lekchii
  2. Установите зависимости:

    pip install -r requirements.txt
  3. Настройте переменные окружения: Скопируйте .env.example в .env и укажите ваш API ключ и URL:

    cp .env.example .env

🖥 Использование

Полный цикл (Распознавание + Компиляция)

python main.py "path/to/lecture.pdf" "result.tex"

Только исправление и компиляция готового .tex файла

python main.py --check-only "result.tex"

Только компиляция с автоисправлением

python main.py --compile-only "result.tex"

🔒 Безопасность

Проект настроен на работу с переменными окружения. Никогда не фиксируйте ваш .env файл в системе контроля версий. Используйте .env.example как шаблон.


Разработано в рамках курса по автоматизации оцифровки учебных материалов.

About

Self-healing automated PDF to LaTeX converter. Analyzes pdflatex compilation error logs and iteratively repairs LaTeX syntax.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages