
Я потратил большую часть двух дней, пытаясь понять, почему моя система ubuntu linux (на самом деле это две разные системы) внезапно перестала находить файлы .cls и .sty из моего дистрибутива texlive. Изначально я использовал ubuntu texlive, и именно там он начал появляться. Поэтому я очистил все свои пакеты texlive и установил texlive 2020 из установочного скрипта TUG, как было объясненоздесь. Но у меня все та же проблема. Вот что я сделал на данный момент:
- при входе в систему как пользователь texlive все выглядит нормально. В частности,
$ kpsewhich article.cls
/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls
Но когда я запускаю его под своим обычным именем пользователя, я ничего не получаю и получаю код выхода 1.
- При входе в систему как me или texlive я получаю следующее для переменной TEXMF:
$ kpsewhich --expand-var='$TEXMF'
{{}/home/ded/.texlive2020/texmf-config,/home/ded/.texlive2020/texmf-var,/home/ded/texmf,!!/usr/local/texlive/texmf-local,!!/usr/local/texlive/2020/texmf-config,!!/usr/local/texlive/2020/texmf-var,!!/usr/local/texlive/2020/texmf-dist}
что выглядит правильно в обоих случаях.
- Я проверил права доступа к файлам, и все файлы texlive имеют разрешение на чтение "другие". Просто чтобы убедиться, я могу сделать это, войдя под своим именем:
$ cat $(find /usr/local/texlive/2020/texmf-dist -name article.cls | head -n 1)
и я получаю содержимое artlicle.cls, выведенное на мой экран.
У меня есть каталог ~/texmf, и все выглядит кошерно. У меня нет каталога ~/.texlive2020.
Я запустил kpsewhich с различными флагами отладки и вижу, что он ищет нужный каталог, но все равно не возвращает путь к article.cls. В выводе я вижу эту строку:
$ kpsewhich --debug=13 --must-exist --path=/usr/local/texlive/2020/texmf-dist// article.cls 2>~/tmp/kps-out
...
kdebug:dir_links(/usr/local/texlive/2020/texmf-dist/tex/latex/base) => 2
...
но все еще не видит article.cls.
Надеюсь, кто-нибудь сможет предложить мне что-то еще, что я мог бы попробовать, или предложить решение.
решение1
Хорошо. Я наконец-то понял, в чем проблема. Установив TEXINPUTS в настройках моей среды оболочки, я использовал эти каталоги, в /exclusion/ системных каталогов. После добавления к нему завершающего ':' все заработало, как и ожидалось. Надеюсь, этот ответ поможет кому-то еще.
Теперь, когда я знаю проблему, вот лучший ответ:настройка TEXINPUTS