Pregunta

Consumo .sty-archivos que no son parte de texlive y quieren tenerlos en un subdirectorio de la carpeta con mi main.tex. He utilizado la siguiente línea para cargar el paquete:

\usepackage{sty/prettythesis}

Esto funciona, pero la compilación de la main.tex con XeLaTeX y usar goma me da una advertencia:

sty/prettythesis.sty: You have requested package `sty/prettythesis',
but the package provides `prettythesis'. (page 1)

¿Hay una manera de evitar esta advertencia o manejar este caso sin tener que incluir "pocilga \" en todas .sty-files \ comando ProvidesPackage o establecer la variable de entorno TEXINPUTS (que parece no ser posible desde el principal. tex sí mismo)?

¿Fue útil?

Solución

Creo que este hilo aquí:

habla precisamente lo mismo: lo que parece, las únicas alternativas son o bien utilizando la variable de entorno TEXINPUTS; o utilizando el paquete de importación . ( nota, hay una variante en el paquete import en ... Incluyendo archivos tex pg 3. )

Un poco más sobre TEXINPUTS:

Espero que esto ayude;
¡Salud!

EDIT: Yo esperaba que se podría establecer la ruta TEXINPUTS directamente en el archivo tex ( utilizando \write18 - y la nota, algunas versiones del uso del látex --enable-write18, mina usa -shell-escape para permitir \write18; véase también esta ) - pero parece que no es posible :

  

" ... esto no es posible. ... La variable de entorno del proceso está puesto, pero esto no tiene un efecto a su proceso padre (TEX). " ( Re: Configuración de las variables ambientales dentro TEXINPUTS látex - comp .text.tex ).

... así que, ahora acabo de llamar pdflatex en mi bash Linux como esto:

  

TEXINPUTS=.//:$TEXINPUTS pdflatex ./myfile.tex

y luego se resolverá directamente \usepackage{mypackage} en el archivo myfile.tex -. mypackage.sty incluso si está en un subdirectorio, por ejemplo ./subdir/mypackage.sty

Otros consejos

En pocas palabras línea de abajo antes de la llamada a pdflatex (o látex) en su makefile o Creación de un script:

export TEXINPUTS=".:./sty:"

A continuación, una referencia a su paquete como:

\usepackage{prettythesis}

Como has descubierto, poner el paquete en un subdirectorio (por ejemplo, ./sty/prettythesis.sty con respecto a su archivo principal .tex en ./), y llamando el paquete vía

\usepackage{sty/prettythesis}

se carga correctamente el paquete, pero se producirá el aviso

sty/prettythesis.sty: You have requested package `sty/prettythesis',
but the package provides `prettythesis'. (page 1)

Si lo que quieres es para deshacerse de esta advertencia, y que estás bien con modificaciones menores en el archivo .sty, entonces usted puede simplemente cambiar el nombre del paquete que se informa, cambiando el comando \ProvidesPackage a

\ProvidesPackage{sty/prettythesis}

Esto puede ser un inconveniente si va a estar moviéndose alrededor de cargas, pero la carga de modificaciones que no es tan malo tampoco.

Aún mejor, si lo que tienes ahí es un procedimiento específico, versión modificada de un paquete TeX estándar (como, por ejemplo, este parche de natbib ), entonces el cambio en el nombre del paquete indica claramente qué paquete se proporciona, y si vuelve a utilizar el archivo entonces será (lo más probable) volver a subir una advertencia para indicarle que en asegurarse de que usted sabe lo que está haciendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top