Falha misteriosa da biblioteca kpsearch para encontrar article.cls no sistema Linux

Falha misteriosa da biblioteca kpsearch para encontrar article.cls no sistema Linux

Passei a maior parte de dois dias tentando descobrir por que meu sistema Ubuntu Linux (dois sistemas diferentes, na verdade) de repente não consegue encontrar arquivos .cls e .sty da minha distribuição texlive. Eu tinha usado originalmente o ubuntu texlive, e foi aí que ele começou a aparecer. Então, limpei todos os meus pacotes texlive e instalei o texlive 2020 a partir do script de instalação do TUG conforme explicadoaqui. Mas ainda tenho o mesmo problema. Aqui está o que fiz até agora:

  1. quando logado como usuário texlive, tudo parece bem. Em particular,
$  kpsewhich article.cls
/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls

Mas quando o executo como meu nome de usuário normal, não recebo nada e um código de saída 1.

  1. Quando logado como me ou texlive, recebo o seguinte para a variável 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}

o que parece certo em ambos os casos.

  1. Verifiquei as permissões dos arquivos e todos os arquivos texlive têm "outras" permissões de leitura. Só para ter certeza, posso fazer isso quando estiver logado como eu:
$ cat $(find /usr/local/texlive/2020/texmf-dist -name article.cls | head -n 1)

e recebo o conteúdo de artlicle.cls na minha tela.

  1. Eu tenho um diretório ~/texmf e tudo parece kosher. Não tenho diretório ~/.texlive2020.

  2. Executei o kpse Which com vários sinalizadores de depuração e posso ver onde ele pesquisa o diretório correto, mas ainda não retorna o caminho para article.cls. Eu vejo esta linha na saída:

$ 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
...

mas ainda não está vendo o article.cls.

Espero que alguém possa sugerir outra coisa que eu possa tentar ou sugerir uma solução.

Responder1

OK. Finalmente descobri qual era o problema. Ao definir TEXINPUTS na configuração do meu ambiente shell, ele estava usando esses diretórios, para a /exclusão/ dos diretórios do sistema. Depois de adicionar um final ':', tudo funcionou conforme o esperado. Espero que esta resposta ajude outra pessoa.

Agora que conheço o problema, esta é uma resposta melhor:configurando TEXINPUTS

informação relacionada