Eu sei como definir um pacote ou uma classe, mas como faço para torná-lo disponível (para mim mesmo) o tempo todo?
Digamos que eu tenho o arquivo commonstuff.sty' (ou
myprettyclass.cls'), que eu quero poder incluir em qualquer arquivo `.tex' que eu criar no meu computador. Onde eu coloco? Preciso executar algum instalador nele, ou é o suficiente para mantê-lo em uma determinada pasta?
Note: Eu sei que posso simplesmente colocá-lo na mesma pasta do arquivo `.tex', mas isso'não é o que eu'm depois daqui. I'm procurando por um caminho para "install" o pacote centralmente no meu computador.
Você pode criar uma pasta abaixo do seu diretório pessoal TeX e colocar o seu arquivo `.sty' nele. Use este comando no prompt de comando para descobrir onde:
kpsewhich -var-value=TEXMFHOME
No meu computador, ele mostra
C:/Users/stefan/texmf
mas também pode ser ~/texmf/
em um computador Linux ou Unix.
Seguindo a estrutura do diretório TeX, você deve colocar seu arquivo em um subdiretório como ~/texmf/tex/latex/commonstuff/
, de acordo com o comentário de Arthur's abaixo. Isto tem a vantagem de que não é necessário para atualizar a base de dados do pacote, uma vez que o TeX pesquisa sua árvore pessoal texmf
diretamente. Se houver um arquivo ls-R
na árvore texmf
de sua casa, você pode apagá-lo com segurança, pois TeX não o utilizará de qualquer forma. (Nota: isto assume que sua árvore pessoal está em um sistema de arquivos local: usuários com pastas home montadas remotamente ainda podem precisar de hash).
Em relação ao MiKTeX, dê uma olhada na seção "Instalando arquivos sty ou cls" na resposta à pergunta Como posso instalar manualmente um pacote no MikTex (Windows).
Você pode então verificar com que arquivo será utilizado:
kpsewhich filename.sty
Isto mostrará o caminho para o arquivo capturado pela implementação do TeX.
Os arquivos .sty' precisam ser colocados em um subdiretório de
tex/latex' em uma árvore texmf. Essas árvores têm uma estrutura bastante fixa, mas a sua localização pode variar de acordo com o seu SO e distribuição TeX. Se você utiliza Unix (incluindo Mac OS) e TeX Live, há's por padrão uma hierarquia
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
bem como outros diretórios. Você quer colocá-lo no diretório texmf-local
, não nos outros diretórios que são gerenciados pelo instalador do TeX Live; quando você atualizar o TeX Live, seu pacote poderá ser sobrescrito. A hierarquia texmf-local', como os nomes indicam, é para pacotes locais gerenciados por você; ela ganhou't ser tocada por atualizações (que também é por isso que ela's diretamente sob o diretório
texlive, e não
texlive/2009`, por exemplo).
Você também pode escolher criar um diretório chamado texmf
em seu diretório home, e o pacote será visível apenas para você, não para os outros usuários em seu computador.
No Windows com MiKTeX, acredito que o diretório para instalações locais é C:\Localtexmf
por padrão.
Em qualquer caso e qualquer que seja sua distribuição, você tem que colocar o arquivo .sty
dentro de .../texmf-local/tex/latex
e não diretamente no diretório raiz; it's apenas ganhou't funciona de outra forma.
Então, se você'instalou o pacote no seu diretório home, você não tem nada para fazer. Se você'colocou em texmf-local
, por outro lado, você precisa executar o utilitário mktexlsr
(ou texhash
, it's an alias).
No Linux, você pode escolher qualquer diretório que quiser, e então adicionar uma linha como
export TEXINPUTS=".:~/latex:"
ao seu arquivo .bashrc (você pode adicionar múltiplos diretórios, separados por dois-pontos. Eu acho que você precisa do '.' no início). Pode haver algo similar no Windows. Eu acho isso mais fácil, já que separa "my" coisas da árvore texmf. Provavelmente não é ótimo se você'estiver escrevendo um pacote grande, mas útil para algumas coisas pequenas que você só quer compartilhar entre todos os seus projetos.