Angenommen, ich will in einem Paket verhindern, dass ein anderes Paket implizit geladen wird. Beispiel:
\documentclass{scrartcl} \usepackage{filecontents} \begin{filecontents}{mhp.sty} \ProvidesPackage{mhp} \StorePreventPackageFromLoading{\@preventpackagelist} \PreventPackageFromLoading{color} \RequirePackage{expl3} % Loads the color package. \ResetPreventPackageFromLoading \PreventPackageFromLoading{\@preventpackagelist} \end{filecontents} \usepackage{mhp} \begin{document} \end{document}
Wenn \PreventPackageFromLoading
im mhp
Paket zum ersten Mal verwendet wird und folglich \@preventpackagelist
von \StorePreventPackageFromLoading
als leeres Makro definiert wird, gibt \PreventPackageFromLoading{\@preventpackagelist}
eine Warnung aus. Dieser Fall ist jedoch nicht weiter ungewöhnlich. Daher mein Vorschlag, zu überlegen, ob es nicht besser wäre, die Warnung durch einen reinen Logeintrag zu ersetzen.
MfG, Michael
Will ich eigentlich nicht
Der Aufruf mit einem leeren Argument ist eigentlich sogar ein Fehler. Da ist eine Warnung in meinen Augen das Mindeste. Wenn Du bei Deinem Paket die Warnung vermeiden willst, geht das ja auch ganz einfach:
Aber ich mache es trotzdem
Speziell für Dich gibt es jetzt die Sternversion
\PreventPackageFromLoading
, die ein leeres Argument verzeiht. Gleichzeitig verzeiht die Version auch, wenn ein Paket in der Liste steht, das bereits geladen wurde. In beiden Fällen wird dann\PackageInfo
stattPackageWarning
verwendet. Und wenn Dir\PackageInfo
auch noch zu viel ist, dann kannst Du in Deinem Paket auf eigenes Risiko auch\@PreventPackageFormLoading\@gobbletwo{…}
verwenden. Dann gibt es überhaupt keine Meldung.Danke!
Danke!