Anzeige:
Ergebnis 1 bis 9 von 9

Thema: include von übergeordnetem ordner geht nicht

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.10.2009
    Beiträge
    11

    include von übergeordnetem ordner geht nicht

    Hallo,

    ich habe diese ordnerstruktur

    Code:
    /ordner1/latexDatei.tex
    /zuIncludenteDatei.tex
    wenn ich nun
    Code:
    \include{../zuIncludenteDate}
    eingebe, so bekomme ich diese Fehlermeldungen

    Code:
    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?
    Geändert von noctua (13-04-2010 um 18:49 Uhr)

  2. #2
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    \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.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  3. #3
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    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.

  4. #4
    Registrierter Benutzer
    Registriert seit
    26.10.2009
    Beiträge
    11
    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.

  5. #5
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von noctua Beitrag anzeigen
    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

  6. #6
    Registrierter Benutzer
    Registriert seit
    26.10.2009
    Beiträge
    11
    achso ... schade.

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

  7. #7
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von noctua Beitrag anzeigen
    achso ... schade.

    Aber danke, dann werde ich das nun mit input machen.
    \input ist die schlechtere Variante!

    Herbert

  8. #8
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Zitat Zitat von voss Beitrag anzeigen
    \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:
    Code:
    \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.

  9. #9
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Schweinebacke Beitrag anzeigen
    \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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •