Integrieren einer Bib-Style-Datei in ein neues Paket

Integrieren einer Bib-Style-Datei in ein neues Paket

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 derzeitnatbibund rufe ansp.bstdurch 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 .styDatei 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:

  1. 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.

  2. Legen Sie Ihre Bibliographiedefinitionen in einer separaten Datei ab, die Sie einfach \inputan geeigneter Stelle einfügen. Aber mal ehrlich ... was soll das bringen. Sie sparen tatsächlich ein paar Tastenanschläge.

  3. Wenn Sie dies wirklich in eine .styDatei schreiben müssen, tun Sie dies, indem Sie einen geeigneten eigenen Befehl ( \makemybibliographyoder 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

.bstJa, Sie können eine zusätzliche Datei in Ihr Paket bündeln (es ist nicht möglich , Code .stysinnvoll in eine Datei einzubetten, da er in einer anderen Sprache geschrieben ist).

Sie müssen es als .dtxDatei schreiben, wie es für verteilbare Pakete üblich ist, so dass der Benutzer es bei der Installation entpackt .sty.Unddie .bstDatei, 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.bstder 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 .dtxDatei 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

  1. IMHO esIstes ist eine gute Idee, eine formelle Paketdatei () zu erstellen .sty, aber nur, wenn sie als .dtxDatei mit der richtigen Dokumentation geschrieben wird, sodass sie installiert, verwaltet und referenziert werden kann;
  2. Ich bin nicht sicher, ob ich verstehe, warum2ist überhaupt nützlich;
  3. 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.bstDatei jedoch von S&P stammt, müssen Sie sie dazu überreden).

verwandte Informationen