2010-05-21 27 views
5

Ich habe ein Dokument unter ~/my_files/test.tex und möchte in test.tex einige Styling-Informationen einbinden, die unter ~/latex/styles/info_hystersetup.tex zu finden sind.So aktivieren Sie absolute Pfade in LaTeX

Wenn ich folgende Aussage in meinem test.tex:

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

ich folgende Fehlermeldung erhalten, wenn pdflatex Test.Test ausgeführt wird:

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

stelle ich die Rechte auf 777, aber diese hat nichts geändert. Es funktioniert, wenn ich info_hyperstsetup.tex in die Verzeichnisstruktur lege, in der sich test.tex befindet. Aber ich möchte diese Style-Informationen als globale Einstellung für alle meine Dokumente verwenden und nicht in jedes Projekt kopieren.

Danke für Ihre Hilfe.

+0

Ist das Verzeichnis '~/latex/styles /' beschreibbar? – kennytm

+0

Hallo KennyTM, ja, ich setze es mit sudo chmod -R 777 ~/Latex und der Fehler ist immer noch der gleiche. –

+0

Fügen Sie es zu Ihrem lokalen TeXmf-Baum (~/texmf/tex/latex/local /) und führen Sie dann texhash (wie Sie, * nicht * als root). Sie sollten dann \ include {info_hystersetup.tex} ausführen können. BTW, ich vermute, dass Sie diese Datei tatsächlich eingeben wollen: \ include ist für das Setzen von Inhalten gedacht. (Es gibt gute Sicherheitsgründe, den Pfad zu verbieten, den Sie zu verwenden versucht haben.) –

Antwort

1

Hier ist meine schmutzig Lösung (weil viele Menschen dort sagt aus nicht eingegeben zu verwenden, aber ich will auszukommen :)):

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

Wenn Sie etwas Besseres finden, mich nur wissen lassen. Der Hinweis mit der Einstellung output_any = a int in der texmf.conf hat nicht funktioniert. Ich benutze Ubuntu.

5

~ ist kein Pfad in Unix, sondern ein Pfad, der Unix-Shells auf den Wert von $ HOME erweitert.

Sie haben ein paar Möglichkeiten bekommen Ihr Problem zu lösen:

  1. definieren ein Makro \homedir, deren Wert in der Latex-Datei codiert der absolute Pfad zu Ihrem Haus zu sein (dh der Inhalt von $ ZUHAUSE). Nicht portierbar: Wenn Sie Ihre Datei auf einen anderen Computer verschieben, funktioniert sie wahrscheinlich nicht.
  2. Verwenden Sie relative Pfade: das ist, was Ihre Lösung tut. Wenn Sie Unterhierarchien von Dateien verschieben und darauf achten, dass diese in sich abgeschlossen sind, funktioniert dies gut.
  3. Erstellen Sie Ihre eigene Stildatei, z. B. thisfilesystem.sty, mit fest codierten Werten für verschiedene Verzeichnisse. Sie können dann nur die Werte von Maschine zu Maschine ändern. Dies kann auch automatisch aus einem Makefile erstellt werden.
  4. Verwenden Sie \write18, um echo $HOME ausführen und binden Sie dies an Sie \homedir Makro. Es ist tragbar, aber ich rate es nicht: Sie sollten sich angewöhnen, \write18 zu vermeiden, weil es ein schreckliches Sicherheitsloch ist.

Ich würde # 2 empfehlen.

0

Problem: Sie vergessen, das pdf zu schließen, die Sie erstellen oder kompilieren.

Lösung: Schließen Sie einfach Adobe Reader oder welche Anwendung Sie die PDF-Datei lesen.

Verwandte Themen