2010-05-21 11 views
5

J'ai un document sous ~/my_files/test.tex et je veux inclure dans test.tex des informations de style, que l'on peut trouver sous ~/latex/styles/info_hypersetup.tex.Comment activer les chemins absolus dans LaTeX

Quand je la phrase suivante dans mon test.tex:

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

Je reçois l'erreur suivante lors de l'exécution pdflatex test.test:

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

Je mis les droits à 777 mais ça n'a rien changé. Cela fonctionne, si je mets info_hypersetup.tex dans la structure de répertoire où test.tex est. Mais je veux utiliser cette information de style comme un paramètre global pour tous mes documents et je ne veux pas le copier dans chaque projet.

Merci pour votre aide.

+0

Le répertoire '~/latex/styles /' est-il accessible en écriture? – kennytm

+0

Salut KennyTM, oui je l'ai mis avec sudo chmod -R 777 ~/latex et l'erreur est toujours la même. –

+0

Ajoutez-le à votre arbre TeXmf local (~/texmf/tex/latex/local /), puis exécutez texhash (comme vous, * pas * en tant que root). Vous devriez alors pouvoir faire \ include {info_hypersetup.tex}. BTW, je soupçonne que vous voulez vraiment entrer \ ce fichier: \ include est destiné à être composé. (Il existe de bonnes raisons de sécurité pour interdire le type de chemin que vous avez essayé d'utiliser.) –

Répondre

1

Voici ma solution sale (parce que beaucoup de gens là-bas dit de ne pas utiliser l'entrée, mais je veux obtenir sur :)):

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

Si vous trouvez quelque chose de mieux, me le faire savoir. L'indice avec la définition de output_any = a int dans le fichier texmf.conf n'a pas fonctionné. J'utilise Ubuntu.

5

~ n'est pas un chemin sous Unix, mais plutôt un chemin que les shells Unix développent à la valeur de $ HOME.

Vous avez quelques moyens possibles pour résoudre votre problème:

  1. Définir une \homedir macro dont la valeur est codée dans votre fichier latex pour être le chemin absolu à votre domicile (c.-à-le contenu de $ MAISON). Nonportable: si vous déplacez votre fichier sur une autre machine, cela ne fonctionnera probablement pas.
  2. Utilisez les chemins d'accès relatifs: c'est ce que votre solution fait. Si vous déplacez des sous-hiérarchies de fichiers, et que vous êtes attentif à ce que cela soit autonome, cela fonctionne bien.
  3. Créez votre propre fichier de style, par exemple thisfilesystem.sty, avec des valeurs codées en dur pour différents répertoires. Vous pouvez ensuite changer les valeurs de cette machine à la machine. Cela peut également être créé automatiquement à partir d'un Makefile.
  4. Utilisez \write18 pour exécuter echo $HOME et lier ceci à la macro \homedir. C'est portable, mais je ne le conseille pas: vous devriez prendre l'habitude d'éviter \write18, parce que c'est un trou de sécurité terrible.

Je recommande # 2.

0

Problème: Vous oubliez de fermer le fichier PDF que vous créez ou compilez.

Solution: Fermez juste votre lecteur Adobe ou n'importe quelle application que vous lisez le fichier pdf.

Questions connexes