Standardsuchpfade für den Befehl \input setzen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Standardsuchpfade für den Befehl \input setzen

von KOMA » Mi 22. Sep 2010, 08:01

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.

von rais » Di 21. Sep 2010, 21:57

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

von KOMA » Di 21. Sep 2010, 08:32

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.

von rais » Di 21. Sep 2010, 01:08

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

von KOMA » Mo 20. Sep 2010, 09:48

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.

von caiusjuliuscaesar » So 19. Sep 2010, 16:28

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

von bloodworks » So 19. Sep 2010, 15:03

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.

von caiusjuliuscaesar » So 19. Sep 2010, 14:52

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

von bloodworks » So 19. Sep 2010, 14:26

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.

Standardsuchpfade für den Befehl \input setzen

von caiusjuliuscaesar » So 19. Sep 2010, 14:14

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

Nach oben