2010-05-21 31 views
5

Tengo un documento en ~/my_files/test.tex y quiero incluir en test.tex algunas informaciones de estilo, que se pueden encontrar en ~/latex/styles/info_hypersetup.tex.Cómo habilitar rutas absolutas en LaTeX

Cuando incluyo la siguiente declaración en mi test.tex:

%% setting the infos for the pdf 
\include{home/helex/latex/styles/info_hypersetup.tex} 

me sale el siguiente error al ejecutar pdflatex test.test:

! I can't write on file `~/latex/styles/info_hypersetup.tex.aux'. 

que establezca los derechos a 777, pero esto no cambia nada Funciona, si pongo info_hypersetup.tex en la estructura de directorios donde está test.tex. Pero quiero utilizar esta información de estilo como una configuración global para todos mis documentos y no quiero copiarla en cada proyecto.

Gracias por su ayuda.

+0

¿Es escribible el directorio '~/latex/styles /'? – kennytm

+0

Hola KennyTM, sí, lo configuré con sudo chmod -R 777 ~/latex y el error sigue siendo el mismo. –

+0

Agréguelo a su árbol TeXmf local (~/texmf/tex/latex/local /) y luego ejecute texhash (como usted, * no * como raíz). Entonces debería poder hacer \ include {info_hypersetup.tex}. Por cierto, sospecho que realmente quieres \ ingresar este archivo: \ include está destinado para que las cosas sean compuestas. (Existen buenas razones de seguridad para prohibir el tipo de ruta que ha tratado de usar). –

Respuesta

1

Aquí está mi solución sucia (porque mucha gente por ahí dice no utilizar la entrada, pero quiero seguir adelante :)):

\newcommand{\home}{../..} 
\input{\home/latex/styles/info_hypersetup} 

Si encuentra algo mejor, sólo házmelo saber. La sugerencia con la configuración output_any = a int texmf.conf no funcionó. Estoy usando ubuntu.

5

~ no es una ruta en Unix, sino que es una ruta que las shells de Unix se expanden al valor de $ HOME.

usted tiene algunas de las formas posibles para resolver su problema:

  1. definir una macro \homedir cuyo valor está codificado en el archivo de látex a ser la ruta absoluta a su casa (es decir, el contenido de $ CASA). No portable: si mueve su archivo a otra máquina, probablemente no funcionará.
  2. Utilice rutas relativas: esto es lo que hace su solución. Si mueve subhierarchies de archivos y tiene cuidado de que sean independientes, esto funciona bien.
  3. Crea tu propio archivo de estilo, digamos thisfilesystem.sty, con valores codificados para varios directorios. A continuación, puede cambiar los valores de esto de máquina a máquina. Esto también se puede crear automáticamente desde un Makefile.
  4. Utilice \write18 para ejecutar echo $HOME y conéctelo \homedir macro. Es portátil, pero no lo aconsejo: debe adquirir el hábito de evitar \write18, ya que es un agujero de seguridad horrible.

Recomendaría # 2.

0

Problema: Olvidó cerrar el pdf que está creando o compilando.

Solución: Simplemente cierre Adobe Reader o la aplicación que esté leyendo el archivo pdf.

Cuestiones relacionadas