Ich habe mich gefragt, wie ich eine Bib-Style-Datei in ein benutzerdefiniertes Paket integrieren kann, sodass sie nicht im Hauptteil jedes Dokuments separat festgelegt werden muss.
Konkret verwende ich derzeitnatbib
und rufe ansp.bst
durch Platzieren \bibliographystyle{C:/Users/Miztli/Documents/BibTeX/sp}
davor \bibliography{C:/Users/Miztli/Documents/BibTeX/references}
am Ende meiner Dokumente.
Antwort1
Ich finde es nicht richtig, zu versuchen, so etwas in eine .sty
Datei einzubauen. Selbst wenn man bei persönlichen Stildateien etwas Flexibilität/Laxheit zulässt, erscheint es mir fragwürdig, sie mit fest codierten Pfaden zu anderen Datenquellen zu versehen. Außerdem ist es, wie Sie anmerken, offensichtlich schwierig, dies bei einer Bibliographie zu tun, da diese dort geladen werden soll.
Ich würde (in grober Reihenfolge) bevorzugen:
Verwenden Sie einen Editor, der ein Snippet einfügen kann. In Emacs beispielsweise könnte man mit yasnippet leicht etwas definieren, das entsprechend erweitert wird. Dann ist in jeder Datei, die Sie erstellen, transparent, welche Ressourcen sie verwendet. Sie sparen Tipparbeit, aber jede Datei, die Sie erstellen, bleibt einigermaßen in sich geschlossen. Das ist auf lange Sicht gut. Obwohl esscheintAuch wenn es eine gute Idee ist, eine Stildatei zu haben, werden Sie in große Schwierigkeiten geraten, wenn Sie diese irgendwann in der Zukunft verlieren oder ändern und vergessen, wie, warum oder wann Sie sie geändert haben.
Legen Sie Ihre Bibliographiedefinitionen in einer separaten Datei ab, die Sie einfach
\input
an geeigneter Stelle einfügen. Aber mal ehrlich ... was soll das bringen. Sie sparen tatsächlich ein paar Tastenanschläge.Wenn Sie dies wirklich in eine
.sty
Datei schreiben müssen, tun Sie dies, indem Sie einen geeigneten eigenen Befehl (\makemybibliography
oder etwas Ähnliches) definieren, der sich in die gewünschten Befehle erweitert, vorzugsweise mit geeigneten vorherigen Prüfungen, ob die benötigten Dateien dort vorhanden sind, wo Sie sie erwarten, und geeigneten Fehlern, wenn dies nicht der Fall ist. Dies richtig zu machen ist wahrscheinlich einevielmehr Arbeit als das Schreiben eines Snippets für einen Redakteur.
Antwort2
Soweit ich weiß, kann der Befehl \bibliographystyle überall stehen. Er muss nicht am Ende vor dem Befehl \bibliography stehen. Sie können ihn also in Ihr Paket oder Ihre Klasse einfügen.
Antwort3
.bst
Ja, Sie können eine zusätzliche Datei in Ihr Paket bündeln (es ist nicht möglich , Code .sty
sinnvoll in eine Datei einzubetten, da er in einer anderen Sprache geschrieben ist).
Sie müssen es als .dtx
Datei schreiben, wie es für verteilbare Pakete üblich ist, so dass der Benutzer es bei der Installation entpackt .sty
.Unddie .bst
Datei, die Sie eingefügt haben (und weitere Dateien, falls erforderlich). Der Benutzer muss diese Dateien dann an die „richtige Stelle“ legen, was erklärt wirdHier, genau wie für jedes andere manuell installierte Paket.
ABER...(sehr großes ABER), wenn die BiBTeX-Style-Datei bereits ein Standardpaket auf CTAN ist (ich kann sie dort nicht finden), dann ist es in der Tat eine sehr schlechte Idee, eine private Kopie in Ihr Paket zu bündeln. Der Benutzer sollte sie auf die normale Weise von CTAN installieren (wenn er eine TeX-Distribution mit On-the-Fly-Installation verwendet, wird dies möglicherweise automatisch für ihn erledigt).
Ist das sp.bst
der vonSemantik & Pragmatik? Wenn ja, sollten Sie sie dazu ermutigen, es richtig zu bündeln und über CTAN verfügbar zu machen, wenn sie können, das würde das Leben für alle einfacher machen. In jedem Fall können Sie es sicherlich zu Ihrer .dtx
Datei hinzufügen, aber Sie benötigen dazu die Erlaubnis des Autors oder Urheberrechtsinhabers und eine formelle Vereinbarung zur Handhabung von Aktualisierungen und Überschreibungen.
Paul Stanleybringt einige gute Argumente vor, aber
- IMHO esIstes ist eine gute Idee, eine formelle Paketdatei () zu erstellen
.sty
, aber nur, wenn sie als.dtx
Datei mit der richtigen Dokumentation geschrieben wird, sodass sie installiert, verwaltet und referenziert werden kann; - Ich bin nicht sicher, ob ich verstehe, warum2ist überhaupt nützlich;
- Abgesehen von Emacs kenne ich keinen LaTeX-Editor, der Snippets unterstützt, und es ist keine gute Idee, Autoren zu zwingen, einen anderen Editor zu verwenden als den, den sie normalerweise verwenden.
Erwägen Sie eine Umstellung von BiBTeX auf Biblatex (wenn diese sp.bst
Datei jedoch von S&P stammt, müssen Sie sie dazu überreden).