Ограничения ёмкости регистров TeX'а

  • 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.cnf
      
      Этот каталог задаётся переменной
      TEXMFLOCAL
      
    • После исправления файлов следует перегенерить форматы TeX:
      fmtutil-sys --all
      
  • Пользовательский уровень
    • Все операции выполняются с полномочиями пользователя.
    • При обычной установке настройки делаются в каталоге
      ~/texmf
      
      Этот каталог задаётся переменной
      TEXMFHOME
      
    • Настройки пользователя для форматов 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.

Links to this note

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие