In einem mittlerweile sehr alten und umfangreichen Dokument möchte ich meine Präambel aufräumen/optimieren. Diese beinhaltet mittlerweile recht viele Pakete, wobei ich davon ausgehe, dass das ein oder andere Paket noch weitere nachläd. Da sich mittlerweile aber einiges in dem über 1000 Seiten langem Dokument geändert hat, gehe ich davon aus, dass nicht mehr alle der geladenen Pakete auch benötigt werden. Es stellt sich nur die Frage, welche das sind. gefragt 17 Apr '14, 12:43 nonlinearx cgnieder |
Mit der \listfiles Anweisung in der Präambel bekommt man eine lange Liste der geladenen Dateien. Mit einer "Umleitung" in der console latex datei> neuedatei.txt werden diese in eine Datei geschrieben. beantwortet 17 Apr '14, 13:07 ctansearch Ich glaube, ihm geht es nur darum, welche Pakete der Präambel übh. benutzt wurden - das kann er doch so leider nicht rausbekommen?
(17 Apr '14, 13:13)
cis
Ok, damit sehe ich, welche Pakete geladen, aber nicht, ob sie auch im Dokument verwendet worden sind. Ich möchte halt herausfinden, auf welche Pakete ich verzichten kann.
(17 Apr '14, 13:18)
nonlinearx
Mit dem schrittweisen Auskommentieren der Präamble und dem Vergleich mit der \listfile-Info kommt man schon sehr weit. Ansonsten kannst Du die Funktion aus http://www.texwelt.de/wissen/fragen/4452/wie-kann-ich-mir-eine-sammlung-paketunabhangiger-befehle-anlegen nutzen, indem Du jeden Befehl, der Dir im Quelltext begegnet, umdefinierst und anzeigst, wo er verwendet wird. Aus den drei Informationen ergibt sich, wo welcher Befehl aus welchem Paket genutzt wurde. Meist hat man mit wenig Aufwand in den ersten Seiten die meisten Befehle erwischt. Mit Minimalbeispiel könnte man es ausarbeiten.
(17 Apr '14, 21:12)
ctansearch
|
Die Antwort ist vielleicht nicht ganz einfach zu geben. Daher ist das folgende auch keine »richtige« Antwort im Sinne von: »mache das und das, dann weißt Du Bescheid«. Wenn man sein Dokument von vorneherein aufbaut, dann fügt man ja grundsätzlich immer nur die Pakete in die Präambel hinzu, die man braucht, und vermeidet damit, dass man unnötige Pakete lädt. Ich fange beispielsweise immer mit einer leeren Präambel an, die nur Open in writeLaTeX
\usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[ngerman]{babel} enthält und füge nur bei Bedarf weitere Pakete hinzu. So habe ich nie unnötige Pakete in der Präambel. Allerdings mag ich es auch, Pakete, die ich verwende, explizit in der Präambel stehen zu haben. So lade ich zum Beispiel Wenn man sich eine Präambel von irgendwoher besorgt (aus einer Vorlage oder so), dann hat man oft Unmengen an Paketen in der Präambel stehen, häufig leider auch veraltete, unnütze, ... (Einer von vielen Gründen, warum ich gegen Vorlagen bin.) Um herauszufinden, welche Pakete man braucht, und welche man unnötig lädt, könnte man zum Beispiel die Pakete in der Päambel nach und nach auskommentieren und zwischendurch kompilieren. Dann bekommt man schon einen Fehler, wenn man ein benötigtes Paket auskommentiert. Dabei kann aber passieren, dass man ein Paket auskommentiert, das das Verhalten von Befehlen ändert, ohne dass das zu einem Fehler führt, ist also keine ideale Methode. Ich wüsste aber nicht, wie man sonst herausfinden sollte, ob man ein Paket verwendet. Es kann auch nicht schaden, sich von Paketen, die einem nichts sagen und bei denen man also auch nicht weiß, was sie machen, mal die Dokumentation anzusehen. So findet man heraus, wofür sie da sind und kann entscheiden, ob man sie braucht oder nicht. Mit der Zeit lernt man so eine ganze Menge von Paketen kennen und kann irgendwann selbst entscheiden, was man will und was nicht. Im Zweifelsfall gilt meines Erachtens: wenn ich ein Paket nicht kenne und nicht weiß, was es macht -- ich es also bewusst gar nicht einsetze -- dann kann ich es aus der Präambel streichen. Wenn es von einem anderen Paket benötigt wird, dann wird dieses schon selbst dafür sorgen, dass es geladen wird. Natürlich kann man mit beantwortet 17 Apr '14, 14:04 cgnieder |
Da es scheints keine globale Lösung gibt, vll. einmal umgedreht: Worauf mich letztens Elke (esdd) hinwies: Man kann schauen, welche Befehle aus welchem Paket stammen. Man mußte sich ggf. eine Möglichkeit überlegen, wie man alle Befehlsaufrufe ausfiltert. beantwortet 17 Apr '14, 14:28 cis |
mögliches Duplikat von Welche Paketversionen werden vonmeinem Dokument geladen
Könnte hier nicht das nag-Paket etwas sein?