Я использую MiKTeX 2.8 distibution для Windows.
Мы разрабатываем программное обеспечение, прежде всего, и используем ЛАТЕКС для создания наших пользовательских инструкций. Мы используем ЛАТЕКС потому что:
Как часть необслуживаемого процесса сборки на нашем сервере сборки, мы создаем использование документации texify исполняемый файл MiKTeX. Это работает довольно хорошо.
Однако проблемы происходят, когда разработчик совершает ошибку (например, \ref к \label, который не существует). Ошибка такой как то единственное генерирует предупреждение в ЛАТЕКСЕ. Предупреждение остается незамеченным texify, и нас оставляют с ошибками в документации.
У меня в настоящее время есть шаг сборки, который сканирует файлы журнала для строк, начинающихся 'с ЛАТЕКСНОГО Предупреждения', и приводит сборку к сбою, если существует кто-либо. Это работает, но очевидно довольно облуплено, и может пропустить промах предупреждений. Это в настоящее время не используется на локальных сборках на dev машинах, но если это - единственный способ сделать это, мне, вероятно, придется интегрировать его с редактором, которого мы в настоящее время используем (TeXworks, поставленный с MiKTeX).
Я хотел бы привести сборку к сбою, если какие-либо предупреждения, такие как неопределенная ссылка происходят, и я не сделал бы облупленных сканирований файлов журнала. Что-нибудь предлагает эту функцию?
Если бы я могу использовать эту функцию в локальных сборках на dev машинах, а также на сервере сборки это была бы огромная премия.
Следующий (непроверенный) код должен превратить любое предупреждение в ошибку:
\renewcommand{\GenericWarning}[2]{\GenericError{#1}{#2}{}{This warning has been turned into a fatal error.}}
Тогда вас может заинтересовать пакет молчание для фильтрации предупреждений.
Однако вам также нужно будет организовать это только для последнего запуска LaTeX, потому что при первых запусках следует ожидать некоторых предупреждений, таких как неопределенная ссылка.
Редакторы с хорошей поддержкой LaTeX сообщат вам, нужно ли повторно запускать LaTeX (разве TeXworks этого не делает?). Они делают это, анализируя вывод консоли или файл журнала. На самом деле он достаточно надежен (и если вы действительно беспокоитесь, вы можете переопределить \ GenericWarning
, чтобы добавить характерную строку ко всем предупреждениям). Я думаю, что анализ журналов - правильный способ сделать это.
Считайте это проверкой на соответствие документации. Если есть неопределенные ссылки, сборка документации завершается успешно. Продукты сборки - это pdf (или что-то еще) и журналы TeX. Проверка предупреждений в журналах - это тест.
Лучше всего было бы сделать это через управление заданиями в латексе, но я не знаю, как это сделать.
Вот несколько непроверенных изолент, которые могут быть полезны:
\def\exitfromtex{\nonstopmode\read16to\dummy} \let\writerrmessage\errmessage \def\errmessage#1{\writerrmessage{#1}\exitfromtex}
Ее можно поместить в файл пакета, который вы требуете от документалистов, или встроить в локальный файл Latex .fmt.