Ограничения ёмкости регистров TeX'а
2021-05-28
·
2 мин. для прочтения
- TeX — достаточно старая программа. Он разрабатывался ещё в те времена, когда в моде была обратная совместимость (legacy). Он должен был одинаково работать при смене версии программного обеспечения.
- TeX является мультиплатформенной программой. Он должен одинаково работать на разном оборудовании.
Содержание
1 Общие сведения
- В TeX есть набор ограничений, которые иногда мешают скомпилировать TeX-файл.
- Эти ограничения вполне адекватны.
- Возникновение таких проблем могут указывать на ошибку в файле.
- Лучше всего внести исправления в исходный файл, чтобы подобные ошибки не возникали.
- Но иногда без правки ограничений не обойтись.
- Многие ограничения сняты в реализациях
XeTeXиLuaTeX.
2 Файлы для правки
2.1 TeX Live
- Рассматривается дистрибутив, установленный установщиком TeX Live (см. Установка TeX Live).
- Системный уровень
- Все команды выполняются с полномочиями администратора:
su - - При обычной установке настройки делаются в каталоге
/usr/local/texlive/texmf-local - Локальные настройки для форматов TeX находятся в файлеЭтот каталог задаётся переменной
/usr/local/texlive/texmf-local/web2c/texmf.cnfTEXMFLOCAL - После исправления файлов следует перегенерить форматы TeX:
fmtutil-sys --all
- Все команды выполняются с полномочиями администратора:
- Пользовательский уровень
- Все операции выполняются с полномочиями пользователя.
- При обычной установке настройки делаются в каталогеЭтот каталог задаётся переменной
~/texmfTEXMFHOME - Настройки пользователя для форматов TeX находятся в файле
~/texmf/web2c/texmf.cnf - После исправления файлов следует перегенерить форматы TeX:
fmtutil-user --all
3 Ошибки
3.1 Количество открытых файлов
- При компиляции ограничено количество открытых одновременно файлов.
- Ошибка выглядит следующим образом:
! TeX capacity exceeded, sorry [text input levels=15]. - Необходимо увеличить количество открытых одновременно файлов:
%% web2c/texmf.cnf %% simultaneous input files and error insertions, also applies to MetaPost max_in_open = 50 - Здесь мы увеличили количество одновременно открытых файлов до 50.