Instalações “privadas” de arquivos

Às vezes acontece de você precisar de uma nova versão de uma fonte ou um pacote de macro, mas a máquina que você usa é mantida por alguém que não está disposto a atualizar e não lhe dará privilégios para que você mesmo faça o trabalho. Uma instalação “temporária” é algumas vezes a abordagem correta, mas se houver a menor chance de que a instalação seja necessária para mais de um projeto, as instalações temporárias são inadequadas.

Em circunstâncias em que você tenha bastante espaço de backup ou espaço local adequado, a abordagem correta é criar uma instalação privada de (La)TeX que inclua as novas coisas que você precisa; isto é o ideal, mas nem sempre é possível.

Então, já que você não pode instalar na árvore texmf pública, você precisa instalar em sua própria árvore texmf; felizmente, o padrão TDS leva isso em conta e as distribuições modernas permitem que você faça isso. As distribuições mais modernas referem-se à árvore como $TEXMFHOME, mas ela costumava ser chamada de $HOMETEXMF; para verificar se seu sistema TeX realmente suporta o mecanismo, você deve começar por

kpsewhich -var-value TEXMFHOME
(por exemplo). Isso quase sempre retornará uma indicação para um subdiretório texmf do seu diretório inicial; a exceção mais comum é a dos Macintoshes usando MacTeX, onde o diretório é convencionalmente Library/texmf no seu diretório inicial.

Se você puder confirmar que a técnica vai funcionar, instale seu novo pacote (ou seja o que for) no lugar correto em uma árvore baseada em $HOME/texmf, e gere um índice dessa árvore

texhash $HOME/texmf
(o argumento especifica qual árvore você está indexando: é necessário caso você, por exemplo, não tenha acesso à árvore principal, e texhash sem o argumento tentaria criar a árvore principal.)

Existem dois problemas com esta fórmula simples: primeiro, a instalação que você está usando pode não definir um diretório inicial TEXMF e, segundo, pode haver alguma obstrução ao uso de $HOME/texmf como nome padrão. Em ambos os casos, uma boa solução é ter seu próprio texmf.cnf — uma ideia que parece mais assustadora do que na verdade é. O arquivo existente de instalação pode ser localizado com o comando:

kpsewhich texmf.cnf
Pegue uma cópia do arquivo e coloque-o em um diretório seu; poderia ser qualquer diretório, mas uma escolha óbvia é o diretório web2c da árvore que deseja criar, ou seja, $HOME/texmf/web2c ou algo parecido. Faça com que uma variável de ambiente aponte para este diretório:
TEXMFCNF=$HOME/texmf/web2c
export TEXMFCNF
(para um sistema do estilo Bourne shell), ou
setenv TEXMFCNF $HOME/texmf/web2c
(para um sistema do estilo C shell). Agora, edite a cópia do texmf.cnf

Haverá uma linha no arquivo existente que define a árvore onde as buscas são feitas; a forma mais simples da linha é:

TEXMF = !!$TEXMFMAIN
mas é provável que haja várias configurações alternativas atrás de marcadores de comentários (“%”), e a pessoa que instalou o sistema pode tê-las deixado lá. Seja como for, você precisa modificar a linha que está em vigor: mude o descrito acima para três linhas:
HOMETEXMF = $HOME/texmf
TEXMF = {$HOMETEXMF,!!$TEXMFMAIN}
% TEXMF = !!$TEXMFMAIN
sendo que o ponto importante é que $HOMETEXMF venha antes do que estava lá antes dentro das chaves. Por exemplo, se o original era
TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}
ele deve ser convertido para:
HOMETEXMF = $HOME/texmf
TEXMF = {$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN}
% TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}
(manter o original como um comentário é meramente um lembrete para o caso de você precisar fazer outra alteração mais tarde). Os pontos !! indicam à biblioteca de pesquisa de arquivos que ela deve insistir em uma árvore de diretório com texhash; se você puder contar com sua própria memória para executar o texhash em sua nova árvore toda vez que a alterar, então vale a pena adicionar as marcas à sua árvore:
TEXMF = {!!$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN}
pois isso fará com que o (La)TeX encontre seus arquivos ligeiramente mais rápido.

Tendo feito todas essas mudanças, o (La)TeX deveria “apenas usar” arquivos em sua nova árvore, preferencialmente em relação a qualquer coisa na árvore principal — você pode usá-la para atualizações de pacotes da árvore principal, bem como para instalar novas versões de coisas.

This answer last edited: 2011-04-13


Do you have any question? Ask on: latex.net.br - we love qood questions!