normik¶
nk — линтер оформления отчётных документов по ГОСТ для исходников LaTeX.
Принимает .tex и выдаёт список нарушений с указанием файла, строки и того,
кто этого требует — пункта стандарта или положения вуза. Инструмент
детерминированный: одни и те же входные данные всегда дают один и тот же вывод.
LLM внутри не используется.
$ nk check chapters
chapters/method.tex
8:3 error figure-caption-dot (ГОСТ 7.32-2017 п. 6.5.7)
Нарушение: Наименование рисунка заканчивается точкой.
Требуется: Наименование рисунка приводят с прописной буквы без точки в конце.
Исправить: \caption{Схема экспериментальной установки}
6 | \centering
7 | \includegraphics[width=0.8\textwidth]{img/setup.png}
> 8 | \caption{Схема экспериментальной установки.}
9 | \end{figure}
Стандарты¶
Поддержаны ГОСТ 7.32-2017 и ГОСТ Р 2.105-2019. Какой из них проверять, задаёт профиль; без профиля отчёт проверяется по ГОСТ 7.32-2017.
Одно и то же требование записано в нескольких стандартах под разными пунктами, поэтому правило объявляет пункт в каждом из них, а находка ссылается на пункт выбранного. Требование самого стандарта — реферат, надпись о продолжении таблицы — под другим стандартом не проверяется.
Стандарт бывает и привлечённым: положение МГТУ велит оформлять список источников по ГОСТ Р 7.0.100-2018, а отчёт при этом остаётся отчётом по ГОСТ 7.32-2017. Такой стандарт профиль не выбирает, а привлекает — и его пункты начинают действовать наравне с пунктами выбранного.
Но не всякое требование принадлежит стандарту, и правило говорит, чьё оно:
- стандарт — записано в ГОСТ, действует только под ним;
- общее — не записано нигде, но нужно всем: тире вместо дефиса, ёлочки, неразрывные пробелы;
- положение вуза — устанавливает положение или методические указания кафедры: под любым стандартом, а чьё оно и под каким пунктом — знает профиль.
Положение вуза со своей нумерацией пунктов и своими отступлениями от стандарта описывается профилем. Пока профиль его не назвал, находка по такому требованию источника не называет: сослаться не на кого.
Что проверяется¶
Только исходники. Требования, проверяемые по скомпилированному документу — поля, гарнитуры, кегль, колонцифры, — в область видимости не входят.
Правила разложены по тому, что они регулируют, а не по разделам стандарта: у разных стандартов разделы разные, а иллюстрации остаются иллюстрациями.
| Что регулируется | Правил |
|---|---|
| Структура отчёта | 2 |
| Заголовки и рубрикация | 9 |
| Перечисления | 7 |
| Реферат | 6 |
| Термины и сокращения | 8 |
| Иллюстрации | 11 |
| Таблицы | 12 |
| Формулы | 6 |
| Примечания и сноски | 3 |
| Источники и ссылки на них | 9 |
| Приложения | 7 |
| Изложение текста | 9 |
| Типографика | 7 |
Полный перечень — в разделе Правила.
С чего начать¶
- Установка — поставить
nk. - Использование — команды, ключи, форматы вывода, коды возврата, автоисправление, подавления и снимок известных нарушений.
- Профили — подстроить набор правил под требования кафедры.
- Интеграции — CI и передача вывода агенту.
Ограничения¶
- Правит файлы отчёта только по ключу
--fixи только там, где замена однозначна. Остальные находки остаются предложением текстом. - Тексты стандартов в репозитории не воспроизводятся: правила ссылаются на номера пунктов и формулируют требование своими словами.
- Часть требований по исходникам непроверяема в принципе. Такие места правило
либо не трогает, либо помечает уровнем
info— какbibtex-order-unverifiable.