Anzeige:
Ergebnis 1 bis 8 von 8

Thema: \usepackage{sty-files/file.sty} warning

  1. #1
    Registrierter Benutzer Avatar von ProfessorChaos
    Registriert seit
    29.12.2007
    Ort
    Canberra (Australien)
    Beiträge
    89

    \usepackage{sty-files/file.sty} warning

    Hi,

    ich möchte aus gewissen Gründen einige Pakete nicht "installieren", sondern die sty-File von Hand in den Ordner kopieren, in dem auch die tex-Datei liegt, die sie benutzt. Um präziser zu sein: ich möchte die sty-Datei in einen Subordner hiervon legen.

    Beispiel:
    Mein "Haupt"-Ordner enthält die Datei "main.tex" und den Ordner "sty-files".
    Der "sty-files"-Ordner enthält die Datei "file.sty".

    In der Datei "main.tex" referenziere ich nun dieses Package mit dem Befehl:
    \usepackage{sty-files/file}.

    Das Kompilieren funktioniert, denn das Package wird gefunden und auch verwendet. *Aber* ich erhalte die folgende Fehlermeldung:
    "LaTeX Warning: You have requested package `sty-files/file', but the package provides `file'.

    Kann ich diese Warnung irgendwie eliminieren?
    Natürlich gibt es drei offenischtliche Varianten, dies zu tun:
    (1) Ich kopiere meine sty-Datei nicht in einen Suborder, sondern neben main.tex,
    (2) Ich benenne den 'provideten' Package-Namen in "sty-files/file" um, oder
    (3) Ich installiere das package richtig.

    (1) möchte ich nicht, da ich Ordnung in meinen LaTeX-Projekten möchte,
    (2) ist Unsinn und ein hässlicher Work-Around,
    (3) scheidet aus, da mein LaTeX-Projekt in einem Repository liegt und ich möchte, dass es jeder sofort kompilieren kann (ohne Installationen).

    Gibt es also noch eine andere Variante?

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Setze den Pfad mit TEXINPUTS oder --include-directory=dir (bei miktex, ob TeXLive eine ähnliche Option hat, weiß ich nicht).

  3. #3
    Registrierter Benutzer Avatar von ProfessorChaos
    Registriert seit
    29.12.2007
    Ort
    Canberra (Australien)
    Beiträge
    89
    Danke für die Antwort, aber deine Variante löst nicht mein Problem, dass ich eine system-unabhängige Lösung suche. Ich möchte den LaTeX-Quelltext anpassen, so dass andere, die meine Dateien benutzen, die Warnung auch nicht sehen (ohne erst etwas einstellen zu müssen).

    Aber wahrscheinlich gibt es da keine Lösung?

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Aber wahrscheinlich gibt es da keine Lösung?
    Es wäre sicherlich möglich, etwas Analoges zu \graphicspath zu definieren. Oder \ProvidesPackage so umdefinieren, so dass es zuerst die Ordner entfernt und dann den Text macht. Aber ich glaube nicht, dass es jemand schon gemacht hat.

    Der saubere Weg derzeit ist wohl, die sty umbenennen und in der sty den \ProvidesPackage-Eintrag anzupassen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Wie so oft, bietet auch hier KOMA-Script eine Lösung:
    Code:
    \begin{filecontents*}{unterverzeichnis/meintest.sty}
    \ProvidesPackage{meintest}
    \end{filecontents*}
    \documentclass{article}
    \usepackage{scrlfile}
    \ReplaceFile{meintest.sty}{unterverzeichnis/meintest.sty}
    \usepackage{meintest}
    \begin{document}
    
    \end{document}
    Damit das Beispiel funktioniert, muss das Verzeichnis "unterverzeichnis" angelegt werden.

    Und wenn dasselbe Dokument auch ohne das Unterverzeichnis aber mit normal installiertem Paket funktionieren soll:
    Code:
    \documentclass{article}
    \usepackage{scrlfile}
    \IfFileExists{unterverzeichnis/meintest.sty}{\ReplaceFile{meintest.sty}{unterverzeichnis/meintest.sty}}{}
    \usepackage{meintest}
    \begin{document}
    
    \end{document}
    Geändert von Schweinebacke (13-09-2010 um 10:23 Uhr) Grund: Zweites Beispiel ergänzt

  6. #6
    Registrierter Benutzer Avatar von ProfessorChaos
    Registriert seit
    29.12.2007
    Ort
    Canberra (Australien)
    Beiträge
    89
    Vielen Dank; es gibt also doch eine schöne (d.h. system-unabhängige) Lösung zu meinem Problem.

    Allerdings benötigte ich die drei Zeilen der filecontents-Umgebung nicht. Wenn ich sie verwende erhalte ich die Warnung, dass die Datei "unterverzeichnis/meintest.sty" bereits auf dem System existiert. Ohne diese drei Zeilen tritt der gewünschte Effekt dennoch auf (ohne die eben beschriebene zusätzliche Warnung).

    Ich habe noch ein 100% analoges Problem für die Verwendung einer selbst definierten Klasse. Ich sehe allerdings nicht, wie ich die hier beschriebene Lösung entsprechend anpassen kann. Trotz der Verwandschaft poste ich das Problem als neues Thema, siehe:

    \documentclass{class/myClass} warning

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Du solltest mal die filecontents-Umgebung nachlesen.

    Zu Deinem Klassen-Problem. Das ist doch grundsätzlich das gleiche Problem. Du musst lediglich das Paket scrlfile bereits vor der Klasse laden, was mit \RequirePackage möglich sein sollte.

  8. #8
    Registrierter Benutzer Avatar von ProfessorChaos
    Registriert seit
    29.12.2007
    Ort
    Canberra (Australien)
    Beiträge
    89
    Zitat Zitat von Schweinebacke Beitrag anzeigen
    Du solltest mal die filecontents-Umgebung nachlesen.
    Okay... Habe es mir auf meine ToDo-List geschrieben.

    Zitat Zitat von Schweinebacke Beitrag anzeigen
    Du musst lediglich ...
    Funktioniert perfekt. Vielen Dank!

Lesezeichen

Berechtigungen

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