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.1.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.1-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lint_gost_tex-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 8b29b3e6d00169ebef2a0f6001904d44854415ebaeb1ab44df7b2b8571b723ed
MD5 cb7258af942ed4ea155fcfb25f5ef9dd
BLAKE2b-256 8ad33fbc91f5ddfd13d767d23573a55b82d3a745ff743b735e415b04389a227a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: lint_gost_tex-0.1.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 06921cf83b28173672bf06f135626b26ede734c590d57242357b39a42e85d9ae
MD5 3c2d60fb7d6c8b4d26e9ed0192b3ba5f
BLAKE2b-256 ccee78bb0ce94a0c7e70cd9dbace71e20b4545ec02efdb69e6861c6d20621ddc

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