Sé cómo definir un paquete o una clase, pero ¿cómo hacer que esté disponible (para mí) en todo momento?
Digamos que tengo el archivo de paquete commonstuff.sty
(o myprettyclass.cls
), que quiero poder incluir en cualquier archivo .tex
que cree en mi ordenador. ¿Dónde lo pongo? ¿Necesito ejecutar algún instalador en él, o es suficiente con guardarlo en una carpeta determinada?
*Nota: Sé que puedo colocarlo en la misma carpeta que el archivo .tex
, pero eso no es lo que busco aquí. Estoy buscando una manera de "instalar" el paquete de forma centralizada en mi ordenador.
Puede crear una carpeta debajo de su directorio principal de TeX y poner su archivo .sty
en ella. Utiliza este comando en la línea de comandos para saber dónde:
kpsewhich -var-value=TEXMFHOME
En mi ordenador aparece
C:/Users/stefan/texmf
pero también podría ser ~/texmf/
en un ordenador Linux o Unix.
Siguiendo la estructura de directorios de TeX, debería colocar su archivo en un subdirectorio como ~/texmf/tex/latex/commonstuff/
, según el comentario de Arthur más abajo. Esto tiene la ventaja de que no es necesario actualizar la base de datos de paquetes ya que TeX busca directamente en su árbol personal texmf
. Si hay un archivo ls-R
en su árbol texmf
personal, puede eliminarlo con seguridad ya que TeX no lo utilizará de todos modos. (Nota: esto supone que su árbol personal está en un sistema de archivos local: los usuarios con carpetas de inicio montadas remotamente pueden seguir necesitando el hash).
En cuanto a MiKTeX, eche un vistazo a la sección "Instalación de archivos sty o cls" en la respuesta a la pregunta Cómo puedo instalar manualmente un paquete en MikTex (Windows).
A continuación, puede verificar con qué archivo se utilizará:
kpsewhich filename.sty
Esto mostrará la ruta del archivo recogido por la implementación de TeX.
Los archivos .sty
deben colocarse en algún subdirectorio de tex/latex
en un árbol texmf. Estos árboles tienen una estructura bastante fija, pero su ubicación puede variar según su sistema operativo y la distribución de TeX. Si usas Unix (incluyendo Mac OS) y TeX Live, hay por defecto una jerarquía
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
así como otros directorios. Debe ponerlo en el directorio texmf-local
, no en los otros directorios gestionados por el instalador de TeX Live; cuando actualice TeX Live, su paquete puede ser sobrescrito. La jerarquía texmf-local
, como su nombre indica, es para los paquetes locales gestionados por usted; no será tocado por las actualizaciones (que es también la razón por la que está directamente bajo el directorio texlive
, y no texlive/2009
, por ejemplo).
También puede elegir crear un directorio llamado texmf
en su directorio personal, y el paquete será visible sólo para usted, no para los demás usuarios de su ordenador.
En Windows con MiKTeX, creo que el directorio para las instalaciones locales es C:\Localtexmf
por defecto.
En cualquier caso y sea cual sea tu distribución, tienes que colocar el archivo .sty
dentro de .../texmf-local/tex/latex
y no directamente en el directorio raíz; de lo contrario no funcionará.
Entonces, si has instalado el paquete en tu directorio raíz, no tienes nada que hacer. En cambio, si has puesto texmf-local
, tienes que ejecutar la utilidad mktexlsr
(o texhash
, es un alias).
En Linux, puede elegir cualquier directorio que desee, y luego añadir una línea como
export TEXINPUTS=".:~/latex:"
a tu archivo .bashrc (puedes añadir varios directorios, separados por dos puntos. Creo que necesitas el '.' al principio). Puede haber algo similar en Windows. Me parece más fácil, ya que separa "mi" cosas del árbol texmf. Probablemente no sea bueno si usted'está escribiendo un gran paquete, pero útil para algunas cosas pequeñas que sólo quiere compartir entre todos sus proyectos.