Seite 1 von 1
Standardsuchpfade für den Befehl \input setzen
Verfasst: So 19. Sep 2010, 14:14
von caiusjuliuscaesar
Hallo,
gibt es anlaog zum Befehl
\graphicspath{
{pfad1/}
{pfad2/}
{usw/}
},
mit dem die Suchpfade für Grafiken gesetzt werden, die mit \includegraphics eingelesen werden, auch einen analogen Befehl, mit dem Standardpfade für
gesetzt werden, so daß man im \input-Befehl nicht immer den Pfad angeben muß?
Gruß und danke,
CJC
Verfasst: So 19. Sep 2010, 14:26
von bloodworks
Hallo
\graphicspath sollte nicht verwendet werden. Siehe dazu das l2tabu.pdf.
Du kannst auch für nicht Bildverzeichnisse TEXINPUTS Variable setzten. Das wird als Alternative im l2tabu vorgeschlagen.
Verfasst: So 19. Sep 2010, 14:52
von caiusjuliuscaesar
Hallo,
danke, habe ich mir angeschaut.
Problem: ich habe einen komplexen Dateibaum mit ca. 20 Verzeichnissen und noch einmal jeweils ein paar Unterverzeichnissen, aus denen ich die (Bild- und Tex-)Dateien ziehen will. Ist da eine Umgegbungsvariable nicht überfordert?
Gruß, CJC
Verfasst: So 19. Sep 2010, 15:03
von bloodworks
Naja also theoretisch kannst du deinen kompletten Dateibaum da reinschreiben. Zumindest dürfte das unter Unix kein Problem sein. Wenn du allerdings Dateien mit gleichen Namen in den Verzeichnissen hast, dann bekommst du Probleme. Das ist sowieso das Problem an der TEXINPUTS Lösung: Bei anderen Projekten kann das zu massiven Problemen führen. Deshalb darf man da auch nie absolute Pfade angeben, die zu einem speziellen Projekt gehören. Das kann man sich ja vorstellen, das macht Probleme.
Verfasst: So 19. Sep 2010, 16:28
von caiusjuliuscaesar
Hallo,
ich scheitere daran, die TEXINPUTS-Variable korrekt zu setzen.
Ich glaube, alles ausprobiert zu haben, die Variable wird auch tatsächlich gesetzt (Windows7). Allerdings werden die einzubindenden Dokumente nicht gefunden.
Ich habe folgendes ausprobiert:
- * absoluter und relativer Pfad
* Klein- und Großschreibung
* \input mit Extention .tex und ohne
* mit und ohne "\" am Ende der einzelnen Pfadangaben
Meinen Pfad habe ich wie folgt gesetzt:
d:\tex\irgendwas\dokumente;d:\tex\irgendwas\bilder1;d:\tex\irgendwas\bilder2;d:\tex\irgendwas\bilder3 usw.
Gibt es eine Möglichkeit zu testen, was falsch ist, oder ist mir gar ein offensichtlicher Syntaxfehler unterlaufen?
Gruß, CJC
Verfasst: Mo 20. Sep 2010, 09:48
von KOMA
Bei
\input sollte man die Dateiendung angeben, während man bei
\include unbedingt darauf verzichten sollte.
Zu TEXINPUTS sei - zumindest bei Verwendung von TeX-Live - auch auf
die kpathsea-Anleitung hingewiesen, die auch im Wiki unter dem Thema
Dateipfade als Link zu diesem Thema angegeben ist.
Verfasst: Di 21. Sep 2010, 01:08
von rais
Hallo,
KOMA hat geschrieben:Bei
\input sollte man die Dateiendung angeben, während man bei
\include unbedingt darauf verzichten sollte.
diesen Hinweis versteh ich nicht. Ok, bei Verwendung von \input{foo} wird erst nach einer Datei `foo' und erst nach erfolglosem Ergebnis nach `foo.tex' gesucht, aber trifft das nicht auch auf \include zu?
\begin{filecontents}{foo}
bar
\end{filecontents}
\begin{filecontents}{foo.tex}
foo
\end{filecontents}
\documentclass{article}
\begin{document}
\include{foo}
\end{document}
liefert mir `bar' in der Ausgabe (also den Inhalt aus der, hmm, ``erweiterungslosen'' Datei `foo'), warum soll man bei Verwendung von \input eine Erweiterung angeben und bei Verwendung von \include nicht?
MfG
Rainer
Verfasst: Di 21. Sep 2010, 08:32
von KOMA
Du hast die Warnungen nicht gelesen, die LaTeX Dir liefert:
LaTeX Warning: Writing file `./foo'.
LaTeX Warning: File `foo.tex' already exists on the system.
Not generating it from this source.
Das liegt daran, dass die erste filecontents-Umgebung in Wirklichkeit die Datei foo.tex und nicht die Datei foo erzeugt.
Und wenn Du Dein Beispiel mit emTeX unter Windows 3.11 übersetzt, hast Du danach den Inhalt, der eigentlich in foo.aux gehört in der Datei foo.tex, kannst also keinen zweiten LaTeX-Lauf mehr machen.
Wie bereits unter den von mir mit voller Absicht angegebenen Links angegeben ist, lädt LaTeX bei \include{DATEI} immer DATEI.tex und erzeugt DATEI.aux. Wenn Du Dein Beispiel ein klein wenig abänderst, wirst Du das merken:
\begin{filecontents}{foo.tex}
foo
\end{filecontents}
\documentclass{article}
\begin{document}
\include{foo.tex}
\end{document}
ergibt:
(./golatex.aux (./foo.aux))
No file foo.tex.tex.
(./golatex.aux (./foo.tex.aux)) )
No pages of output.
Fazit: Wenn ich Links angebe, sollte man das, was dort steht sorgfältig lesen. Wenn man Tests macht, sollte man die Log-Datei anschauen. Außerdem sollte man möglichst nicht nur das testen, was man gerne als Ergebnis hätte, sondern wenn man sich einer Frage aus zwei Richtungen annehmen kann, sollte man das auch tun.
BTW: Der
Status "Rückfrage" wird mit "Ein potentieller Beantworter hat eine Rückfrage zum Thread-Starter" erklärt. Also bitte künftig den Status korrekt setzen. Vielleicht setzt Johannes ja irgendwann mal meinen Vorschlag um, und definiert noch einen Status "Anschlussfrage". Bis dahin trifft der Status "komplex" es gut.
Verfasst: Di 21. Sep 2010, 21:57
von rais
Hallo Markus,
KOMA hat geschrieben:Du hast die Warnungen nicht gelesen, die LaTeX Dir liefert:
LaTeX Warning: Writing file `./foo'.
LaTeX Warning: File `foo.tex' already exists on the system.
Not generating it from this source.
Das liegt daran, dass die erste filecontents-Umgebung in Wirklichkeit die Datei foo.tex und nicht die Datei foo erzeugt.
Danke, genau da waren sie, die Tomaten auf meinen Augen
KOMA hat geschrieben:
Und wenn Du Dein Beispiel mit emTeX unter Windows 3.11 übersetzt, hast Du danach den Inhalt, der eigentlich in foo.aux gehört in der Datei foo.tex, kannst also keinen zweiten LaTeX-Lauf mehr machen.
Windows 3.11? War das nicht noch eine Oberfläche, die auf DOS (was war es, so um Version 5?) geladen werden musste?
KOMA hat geschrieben:
Wie bereits unter den von mir mit voller Absicht angegebenen Links angegeben ist, lädt LaTeX bei \include{DATEI} immer DATEI.tex und erzeugt DATEI.aux. Wenn Du Dein Beispiel ein klein wenig abänderst, wirst Du das merken:
\begin{filecontents}{foo.tex}
foo
\end{filecontents}
\documentclass{article}
\begin{document}
\include{foo.tex}
\end{document}
ergibt:
(./golatex.aux (./foo.aux))
No file foo.tex.tex.
(./golatex.aux (./foo.tex.aux)) )
No pages of output.
Ja danke, hab ich.
KOMA hat geschrieben:
Fazit: Wenn ich Links angebe, sollte man das, was dort steht sorgfältig lesen. Wenn man Tests macht, sollte man die Log-Datei anschauen. Außerdem sollte man möglichst nicht nur das testen, was man gerne als Ergebnis hätte, sondern wenn man sich einer Frage aus zwei Richtungen annehmen kann, sollte man das auch tun.
Ok. Aber das Ergebnis `wollte' ich ja nicht, es hat mich nur verwirrt -- und dank Dir weiß ich nu ja auch, woran es lag.
KOMA hat geschrieben:
BTW: Der
Status "Rückfrage" wird mit "Ein potentieller Beantworter hat eine Rückfrage zum Thread-Starter" erklärt. Also bitte künftig den Status korrekt setzen. Vielleicht setzt Johannes ja irgendwann mal meinen Vorschlag um, und definiert noch einen Status "Anschlussfrage". Bis dahin trifft der Status "komplex" es gut.
Ok.
BTW: Da Du meine Zwischenfrage so trefflich geklärt hast, heißt das, daß der Status von `komplex' auf `offen' bzw. `mit Vorschlag' zurückgesetzt werden sollte?
MfG
Rainer
Verfasst: Mi 22. Sep 2010, 08:01
von KOMA
Da der Status "komplex" mit "mehrere Fragen und Antworten" beschrieben ist, ist der auch weiterhin korrekt. Ändern würde ich den nur, wenn alle Fragen - insbesondere auch die des Erstfragestellers - beantwortet sind. Wenn Du wissen willst, wie Johannes sich das vorgestellt hat, dann musst Du hoffen, dass er das hier liest oder ihn direkt per PN fragen.