Standardsuchpfade für den Befehl \input setzen

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


caiusjuliuscaesar
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Mo 15. Feb 2010, 18:13
Wohnort: Bochum

Standardsuchpfade für den Befehl \input setzen

Beitrag 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
\input
gesetzt werden, so daß man im \input-Befehl nicht immer den Pfad angeben muß?

Gruß und danke,

CJC

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


caiusjuliuscaesar
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Mo 15. Feb 2010, 18:13
Wohnort: Bochum

Beitrag 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

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag 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.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


caiusjuliuscaesar
Forum-Anfänger
Forum-Anfänger
Beiträge: 35
Registriert: Mo 15. Feb 2010, 18:13
Wohnort: Bochum

Beitrag 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

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

rais
Forum-Guru
Forum-Guru
Beiträge: 411
Registriert: Di 21. Sep 2010, 00:37

Beitrag 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
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

rais
Forum-Guru
Forum-Guru
Beiträge: 411
Registriert: Di 21. Sep 2010, 00:37

Beitrag 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 :oops:
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? :shock:
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
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag 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.

Antworten