Skip to main content

LaTeX linter for GOST-styled documents.

Project description

lint-gost-tex

status-badge

Линтер LaTeX‑документов под требования ГОСТ: проверяет оформление ссылок, списков, иллюстраций, запрещённые сокращения, нестандартные символы и орфографию.

Возможности

  • проверка \includegraphics на фиксированную ширину;
  • пробелы перед \ref/\eqref/\autoref/... (неразрывный ~);
  • пунктуация вокруг ссылок;
  • запрет подчеркиваний/курсива;
  • правила для списков (вложенность, пунктуация, регистр);
  • подписи к рисункам/таблицам;
  • порядок иллюстраций относительно первого упоминания;
  • орфография (RU/EN) и запрет «пиксель»;
  • контроль не‑клавиатурных символов.

Установка

pip install lint-gost-tex

Быстрый старт

lint-gost-tex --root main.tex

или через модуль:

python -m lint_gost_tex --root main.tex

По умолчанию линтер ищет конфиг lint-gost-tex.toml в текущей директории. Другой файл можно указать явно:

lint-gost-tex --config path/to/config.toml

Конфигурация

Пример конфига: examples/lint-gost-tex.toml.

  1. Скопируйте конфиг в корень проекта:
cp examples/lint-gost-tex.toml ./lint-gost-tex.toml
  1. Скопируйте шаблоны словарей:
mkdir -p dictionaries
cp examples/dictionaries/*.txt ./dictionaries/

Важные параметры

  • document.root — корневой .tex файл.
  • document.exclude — исключения (по имени файла или glob).
  • spellcheck.custom_dict — пользовательский словарь.
  • spellcheck.extra_ru_dicts — русские словари (обязательно для RU‑проверки).
  • spellcheck.extra_en_dicts — дополнительные EN‑словари.

Если русских/английских словарей нет, линтер выдаст предупреждение SPELL000.

Ограничения

  • \include и \input учитываются только из корневого файла (без рекурсии).
  • Проверка орфографии требует явных словарей для русского языка.

Список правил

  • IMG001\includegraphics должен использовать заданную ширину.
  • REF001 — перед ссылками нужен ровно один ~.
  • REF002 — ссылки должны стоять перед завершающей пунктуацией.
  • TXT001 — запрет курсивов/подчеркиваний.
  • LST001 — запрет кастомных окружений списков/лейблов.
  • LST002 — запрет вложенных списков.
  • LST003 — пунктуация элементов списка.
  • LST004 — в элементе списка только одно предложение.
  • LST005 — элементы списка не должны начинаться с заглавной буквы.
  • CAP001 — подписи не должны оканчиваться пунктуацией.
  • ILL001 — иллюстрация появляется раньше первого упоминания.
  • ILL002 — иллюстрация не имеет ссылок.
  • ABBR001 — запрещённые сокращения (ГОСТ).
  • UNIC001 — запрет не‑клавиатурных символов.
  • SPELL000 — нет словарей для проверки.
  • SPELL001 — неизвестное слово.
  • SPELL002 — запрещённое слово «пиксель».
  • SPELL003 — требуется «ё» вместо «е».

Формат вывода

path:line:col [RULE_ID] message
  | source line
  |    ^

Коды выхода

  • 0 — ошибок нет.
  • 1 — найдены проблемы.

Разработка

poetry install
poetry run lint-gost-tex --root main.tex

Лицензия

MIT. См. LICENSE.

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

lint_gost_tex-0.1.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

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

lint_gost_tex-0.1.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file lint_gost_tex-0.1.0.tar.gz.

File metadata

  • Download URL: lint_gost_tex-0.1.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.0 CPython/3.12.11 Linux/5.15.0-133-generic

File hashes

Hashes for lint_gost_tex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d663311c39708d90bb1a674a750169d0df075d2072f298475153b7dfe8cd9634
MD5 4faf3dcccf5cf826e42d0d0047ea5e4d
BLAKE2b-256 73765d5d0f90e889dbc4e1eb7dcce761e5bd264a3678fc68075d32ce50a1efe4

See more details on using hashes here.

File details

Details for the file lint_gost_tex-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lint_gost_tex-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.0 CPython/3.12.11 Linux/5.15.0-133-generic

File hashes

Hashes for lint_gost_tex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 678cf84d96a1cc4443219cf3b390a06f65d87fa9f5144d3d689c0e3751b99d95
MD5 e961a38f604d8fe19f05a6718463b053
BLAKE2b-256 718875496e5de11b88561fe46e0dfcccb3d786e744dd51508d4cf9e89214d91f

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