2009-07-30 6 views
2

Mein Freund hat folgende in seinem Computer in einem LaTeX-Dokument

\includegraphics[width=13.0cm]{/Users/max/Dropbox/2_user_cases.png}  

zu bekommen Ich mag würde eine Variable für die Benutzername haben, so dass wir schneller zusammenarbeiten können.

Pseudo-Code über das, was ich gewohnt

\includegraphics[width=13.0cm]{/Users/`echo $USER`/Dropbox/2_user_cases.png}  

Wie kann man einen solchen Befehl in LaTeX haben?

Antwort

2

im graphicx-Paket, ein Ordner für Latex definieren können Sie für alle Ihre Bilder in, wie folgt aussehen:

\graphicspath{{images/}} 

In dieser besonderen Konfiguration sieht Latex für einen Ordner in der gleichen Verzeichnis als Ihre Datei namens "Bilder".

Ich sehe nicht, warum Sie gerade einen vollständigen Pfad verwenden würde, wollen Bild bekommen in ...

einen Ordner hinzufügen, setzen Sie Ihre .tex Quelldatei in dort einen Ordner für Ihre Bilder erstellen .

Stick Sie arbeiten in einer Art Revisionskontrollsystem (Git, SVN, etc etc.) Commit oft, und Sie sind auf Ihrem Weg.

+0

Vielen Dank für Ihre Antwort! Ich liebe deine Art zu antworten. Sie haben die Quelle des Problems im PATH notiert, die ich vorher nicht kannte. –

+0

Sie wetten. Ich bin ein technischer Schreiber ... und ich bin den ganzen Tag in LaTeX, fast 8 Stunden am Tag. : P – Mica

1

Gebrauch ~ für Ihr Home-Verzeichnis (was wahrscheinlich ist/Benutzer/$ USER):

\includegraphics[width=13.0cm]{~/Dropbox/2_user_cases.png} 
+1

Die Tilde ist definitiv der beste Weg für ein Home-Verzeichnis. Was ist, wenn es nicht ist? Das Beste, was ich mir vorstellen kann, ist, dass das LaTeX-Dokument ein anderes enthält, das aus Umgebungsvariablen generiert wird, und LaTeX-Einsen korrekt einstellt. Dies könnte dann mit einem Makefile automatisiert werden, das eine Regel besagt, dass die LaTeX-Ausgabe von der generierten Datei abhängt. Die Regel für die generierte Datei würde ein vom Benutzer erstelltes Skript aufrufen ... bit kludgy, aber es würde funktionieren. – Cascabel

+0

Ich kann ~ aus einem unbekannten Grund nicht verwenden. - Dropbox kann die Ursache des Problems sein. –

+0

Haben Sie die Erlaubnis, die anderen Dateien anzuzeigen? –

2

Ich bin nicht sicher, dass Sie envvars von LaTeX zugreifen können. Wie Rutger Nijlunsing gesagt hat, können Sie "~ /" versuchen, da dies ein Alias ​​für "/ Users/<username>" ist.

Wenn es andere Envvars gibt, auf die Sie zugreifen müssen, wird Makefile verwendet, um das .tex (oder ein Shell-Skript) zu kompilieren, das sed aufruft, um dieses Wort zu ersetzen.

sed -i "s/max/$USER/" file.tex 
latex file.tex 
bibtex ... 
latex ...