PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : include von übergeordnetem ordner geht nicht



noctua
13-04-2010, 19:42
Hallo,

ich habe diese ordnerstruktur



/ordner1/latexDatei.tex
/zuIncludenteDatei.tex


wenn ich nun
\include{../zuIncludenteDate} eingebe, so bekomme ich diese Fehlermeldungen


Processing: ./latexDatei.tex

Document Class: scrartcl 2009/07/24 v3.04a KOMA-Script document class (article)

Latex Error: ./latexDatei.tex:113 I can't write on file `../zuIncludenteDatei.aux'.

Latex Error: ./latexDatei.tex:113 Emergency stop.

Latex Error: ./latexDatei.tex:113 ==> Fatal error occurred, no output PDF file produced!

Complete transcript is in latexDatei.log

Found 3 errors, and 0 warnings in 1 runs

pdflatex -interaction=nonstopmode -file-line-error-style -synctex=1 exited with status 1

wenn ich zuIncludenteDatei.tex jedoch in den selben Ordner verschiebe und das ../ entferne, so funktioniert alles ohne Probleme.

ps: mit "\input{}" funktioniert es


Jemand eine idee?

tral
14-04-2010, 08:33
\include erzeugt, im Gegensatz zu \input, für jede eingebundene Datei eine eigene Hilfsdatei mit Endung .aux. Die Fehlermeldung lässt mich vermuten, dass du für / keine Schreibrechte hast bzw. das ../zuIncludenteDatei.aux für den Schreibzugriff gesperrt ist (falls die Datei existiert, kannst du ja mal versuchen, sie zu löschen).

Christian.

Schweinebacke
14-04-2010, 09:51
Eventuell erlaubt TeX auch schlicht nicht, dass Dateien (in dem Fall die aux-Dateien zu den per \include geladenen Dateien) in übergeordneten Verzeichnissen angelegt werden. Jedenfalls steht in kpathsea.pdf:
A TEX document, however, can write to arbitrary files, e.g., ‘~/.rhosts’, and thus an unwitting user who runs TEX on a random document is vulnerable to a trojan horse attack. This loophole is closed by default, but you can be permissive if you so desire in ‘texmf.cnf’. See Section “tex invocation” in Web2c. In web2c.pdf heißt es dann:
TEX can write output files, via the \openout primitive; this opens a security hole vulnerable to Trojan horse attack: an unwitting user could run a TEX program that overwrites, say, ‘~/.rhosts’. (MetaPost has a write primitive with similar implications). To alleviate this, there is a configuration variable openout_any, which selects one of three levels of security. When it is set to ‘a’ (for “any”), no restrictions are imposed. When it is set to ‘r’ (for “restricted”), filenames beginning with ‘.’ are disallowed (except ‘.tex’ because LATEX needs it). When it is set to ‘p’ (for “paranoid”) additional restrictions are imposed: an absolute filename must refer to a file in (a subdirectory) of TEXMFOUTPUT, and any attempt to go up a directory level is forbidden (that is, paths may not contain a ‘..’ component). The paranoid setting is the default. (For backwards compatibility, ‘y’ and ‘1’ are synonyms of ‘a’, while ‘n’ and ‘0’ are synonyms for ‘r’.)

Die Dateinamen für die Dateien beginnen in dem Fall ja mit einem Punkt.

noctua
14-04-2010, 12:20
die Datei existiert nicht, er kann sie einfach nicht anlegen. Das mit den schreibrechten kann natürlich sein aber theoretisch müssten schreibrechte da sein.

voss
14-04-2010, 12:59
die Datei existiert nicht, er kann sie einfach nicht anlegen. Das mit den schreibrechten kann natürlich sein aber theoretisch müssten schreibrechte da sein.

\include muss eine Datei im gleichen Ordner sein, wie die Haupt-Texdatei,
sonst findet er die aux-Dateien nicht. Mit \input kannst du machen,was du
willst, da dafür auch keine aux-Dateien erstellt werden.

HErbert

noctua
14-04-2010, 13:01
achso ... schade.

Aber danke, dann werde ich das nun mit input machen.

voss
14-04-2010, 13:12
achso ... schade.

Aber danke, dann werde ich das nun mit input machen.

\input ist die schlechtere Variante!

Herbert

Schweinebacke
14-04-2010, 13:13
\include muss eine Datei im gleichen Ordner sein, wie die Haupt-Texdatei,
sonst findet er die aux-Dateien nicht.

Doch das geht. Folgendes funktioniert bei mir einwandfrei, wenn das Unterverzeichnis "subdir" existiert:
\begin{filecontents*}{subdir/chapter.tex}
\chapter{Chapter}
\end{filecontents*}
\documentclass{book}

\begin{document}
\include{subdir/chapter}
\end{document}Probleme gibt es nur mit übergeordneten Verzeichnissen, außer man setzt beispielsweise openout_any=a, wie in meinem letzte Beitrag angegeben.

voss
14-04-2010, 15:15
\end{document}[/code]Probleme gibt es nur mit übergeordneten Verzeichnissen, außer man setzt beispielsweise openout_any=a, wie in meinem letzte Beitrag angegeben.

logisch, ich hatte sogar mein openin_any falsch gesetzt ...

Herbert