PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verwendung relativen Pfaden in Lyx



msfox
11-11-2010, 12:11
Hallo,

zur Erstellung von Dokumentationen muss ich Lyx verwenden, da dies für Kollegen einfacher ist, als mit der LaTex-Syntax umzugehen.
Im Lyx habe ich nun versucht, eine CSV-Datei über das Paket datatool einzubinden. Dies funktioniert jedoch nur, wenn ich den Pfad zur CSV-Datei absolut angebe. Da Kollegen ihre Dateien nun nicht zwingen im gleichen Pfad haben müssen (Dateien laufen über Subversion), ist dies unpraktikabel.
Gebe ich den Pfad relativ an, so kann Lyx das PDF-File nicht erstellen. Wie bereits im Thread http://www.mrunix.de/forums/showthread.php?t=69651 vermutet, liegt dies daran, dass Lyx die Datei die beider Generierung des PDF entstehen in einem temporären Verzeichnis abgelegt. Dort sucht Lyx dann auch die CSV-Datei, wenn man den Pfad relativ angibt.

Gleiches Problem habe ich auch bei der Einbindung von CSV beim Pakten tikz und csvtools (Vorgänger von datatool) festgestellt.

Nun meine Frage: Kann ich im Latex irgendwie Pfade auslesen? Oder hat schon jemand versucht bei den genannten Pfaden in Lyx mit relativen Pfaden zu arbeiten?

Ich hatte zwar das Paket currfile gefunden, bin aber aus der Beschreibung nicht so ganz schlau geworden. Vermutlich bekommen ich dort auch nur den Pfad aus dem tex-File im temporären Verzeichnis.


Hier noch einige Beispiel für mein Problem.
1. Absolute Pfadangabe bei Paket datatool -> funktioniert


\DTLsetseparator{;}
\DTLloaddb{mydata}{c:/dokumentation/uebung_changelog.csv}
\begin{tabular}{ccc}
\DTLdisplaydb{mydata}
\end{tabular}


2. Relative Pfadangabe bei Paket datatool -> funktioniert nicht


\DTLsetseparator{;}
\DTLloaddb{mydata}{uebung_changelog.csv}
\begin{tabular}{ccc}
\DTLdisplaydb{mydata}
\end{tabular}


3. Verwendung von Paket tikz -> geht nicht


\begin{tikzpicture}
\begin{axis}{ymin=0}
\addplot table {daten.csv}
\end{axis}
\end{tikzpicture}

msfox
11-11-2010, 15:11
Ich bin gerade auf zwei Lösungswegen.

1. Im Lyx gibt es die Möglichkeit mit external_templates das csv-File in den temporären Ordner kopieren zu lassen. Das klappt aber noch nicht so ganz.

2. habe ich im erzeugten Tex-File von Lyx folgendes gefunden:


\def\input@path{{C:/dokumentation//}}

Kann mir jemand sagen, ob ich in LaTex diese Variable wieder auslesen kann?

elektron
11-11-2010, 16:27
Hallo msfox

ich habe zwar keine Lösung für dein Problem habe hätte es gerne verstanden. Also ich fasse mal zusammen wie ich es verstanden habe. Du willst in Lyx csv-Dateien verarbeiten, und dies von verschiedenen Nutzern. Wieso legst du nicht einfach einen Ordner an wo jeder Zugriff darauf hat, und darin liegen die csv-Dateien. Diese referenzierst du dann mit absoluten Pfaden im Lyx-Dokument. Dies sollte doch auch mit Netzwerklaufwerken gehen. Wenn man kein Netzlaufwerk nutzt nimmt man nen lokales Laufwerk bzw. Verzeichnis wo alle Kollegen Lese und Schreibrechte besitzen.
Wo ist mein Denkfehler? Ist meines Erachtens die schnellste Lösung. Oder habe ich etwas übersehen?

Gruß elektron

msfox
12-11-2010, 08:21
Ich versuche mal eine kurze Erklärung, was aber hier nicht das Problem ist und somit nicht diskutiert werden sollte.
Die besagte Dokumentation besteht aus mehreren Dateien, welche mit Subversion versioniert werden. Die Dateien kann sich somit jeder in sein eigenes Verzeichnis auschecken. Wenn ich nun die csv-Datei auf ein Netzlaufwerk packe, wir sie ersten nicht mit versioniert und zweites müsste jeder, wenn er etwas an dieser Datei ändern will, diese auf auf dem Netzlaufwerk "suchen". Also nicht in dem Verzeichnis, wo eigentlich die Dokumentation liegt. Es soll also nicht sein, dass die Dateien auf unterschiedliche Ordner verstreut liegen.
Somit brauche ich also für das Einbinden der csv ein Lösung, wo ich entweder den Pfad relativ angeben kann oder wo ich den absoluten Pfad beim Generieren der PDF-Datei bestimmen kann. Im Grund funktioniert ja so etwas mit Bildern auch. Diese kopiert ja Lyx auch nicht erst alle temporäre Verzeichnis.
Wie geschrieben, schreibt ja Lyx den absoluten Pfad in die tex-Datei, welche im temporären Verzeichnis liegt. Nur weiß ich nicht, wie ich diesen dort auslesen kann.