Почему я получаю ошибку «3 — это очень плохо»?

Почему я получаю ошибку «3 — это очень плохо»?

После обновления с TeX Live 2022 до TeX Live 2023 при запуске bibtex, bibtex8, или bibtexuв TeX Live 2023 я получаю эту ошибку для любого входного файла:

3 is a bad bad

bibtex не выводит никаких данных. Что вызывает эту ошибку?

решение1

badявляется переменной, bibtexиспользуемой для сообщения "констант", которые не соответствуют определенным ограничениям. Единственным "хорошим" badявляется 0. badЗначение 3 означаетmax_print_line >= buf_size, что не допускается.

Начиная с TeX Live 2023,bibtexтеперь получает max_print_line«константу» из окружающей среды. Так что если у вас max_print_lineпеременная окружения установлена ​​на ≥20000,как предложено в этом ответе, вы теперь вызовете эту ошибку, которую вы не видели раньше. Похоже, что вы не можете установить buf_sizeпеременную окружения таким же образом.

Если установить max_print_line=19999, ошибка исчезнет.

Если вы пытаетесь понять, как это происходит на bibtexпрактике, прочитав PDF-версию исходного кода, созданную с помощью weave, которая поставляется с TeX Live, вы можете быть еще больше сбиты с толку, поскольку код, считывающий переменные среды, отсутствует, как и начальное buf_sizeзначение 20000. Все эти вещи происходят вbibtex.chфайл изменений, который создает различные патчи.

Связанный контент