Eigenen Bibliography Style erstellen: Wo hin damit?

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Eigenen Bibliography Style erstellen: Wo hin damit?

Beitrag von senior_hombre »

Hallo,
ich habe das gleiche Problem wie der Ersteller dieses Threads: http://www.golatex.de/biblatex-anpassen ... t4657.html

Nun will ich allerdings meinen Dokumentenkopf nicht unnötig aufblähen und würde daher gerne einen eigenen Styletype erstellen. Wie machen ich das am saubersten (Stichwort Trennung von Inhalt und Design mit HTML und CSS, ich weiß LaTeX ist etwas ganz anderes aber ich bin noch in der Eingewöhnungsphase)?
Akzeptabel wäre es auch, die "Änderungen" am Artikel-Style einfach nur auszulagern, was ist hier die Konvention?
Und das wichtigste wie mache ich das?
Also muss ich eine zentrale (vieleicht sogar systemspezifische) Konfigurationsdatei ändern oder legt man einfach eine neue Datei (möglicherweise wieder systemspezifisch, also in einem MikTex Verzeichnis und nicht im Dokumentenverzeichnis) an?

Ich arbeite an Verschiedenen Systemen (gemeint sind verschiedene Arbeitsplätze mit verschiedenen PCs und verschiedenen Betriebssystemen [Linux und Windows]) an ein und demselben Dokument. Dieses wird dann immer per USB Stick synchronisert. Deshalb wäre es mir natürlich recht wenn es eine Möglichkeit gäbe den eigenen Style auch immer "mitzunehmen", bevor ich hier aber einen Sonderweg gehe, würde ich natürlich eher auf jedem der Arbeitsplätze die Änderung vornehmen.

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

Wenn es um einen biblatex-Stil gibt, dann habe ich das grundsätzliche
Vorgehen einmal in der TeXnischen Komödie beschrieben (Link zu den DTK-
Artikeln in meiner Signatur).

Gruß,
Dominik.-

senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Beitrag von senior_hombre »

Hmm ich komme mit der Anleitung nicht klar, ich habe zwar nach einigem Suchen gefunden wo genau die Dateien sind die ich verändern will (das hat mich am meisten Zeit gekostet, weil keine der Anleitungne oder Hilfen im Netz bezüglich der Erstellung eines eigenen Stils irgendeine Aussage darüber machen). D.h. ich weiß wo die biblatex.def und so liegen, aber ich bin nicht sicher ob in den anderen Unterordnern nun die Zitierstile oder die Literaturverzeichnisstiele liegen.
Desweiten habe ich auch noch nicht herrausgefunden ob man die Änderungen in eben jenem Biblatex Verzeichnis vornimmt oder ob man die Änderungen quasi für jedes Dokument extra im Dokumentenverzeichnis vornimmt.

Ich dachte jetzt ich finde in einer der Dateien (der cbx Dateien) eine Datei für jeden Quelltyp (article, book, inbook, etc) oder zumindest eine Datei für jeden Literaturverzeichnistyp (numeric, authoryear), dass ist zwar auch so aber in den Dateien selber befindet sich keine Liste mit Einträgen für die Quelltypen, sondern nur ein paar Zeilen aus den ich nicht schlau werde.

Ich will ja eigentlich nur für den Literaturverzeichnistyp (nicht den Zitiertyp) numeric den Quelltyp: "article" etwas anpassen. Dafür wollte ich den Kompletten Numeric Style kopieren und "numeric-own" oder so nennen und dann eben den article Eintrag wie in dem Thread den ich oben zitiert habe anpassen. Aber so einfach scheint das nicht so sein.
Zumindest bräuchte ich noch ein paar Hinweise, wo muss ich genau nachschauen?

edit: ich bin jetzt ein bisschen weiter, ich habe einfach mal ein vorhandenen Stiel umbenannt bzw. kopiert und einfach nur im Feld \ProvidesFile den Namen angepasst, aber beim Aufrufen bekomme ich nur die Fehlermeldung das der Stil nicht bekannt ist. Da muss ich doch sicher noch irgendwo den Stil bekannt machen? Vieleicht in der biblatex.def oder so einfügen`?
In der Anleitung habe ich dazu nichts gefunden.

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

senior_hombre hat geschrieben:D.h. ich weiß wo die biblatex.def und so liegen, aber ich bin nicht sicher ob in den anderen Unterordnern nun die Zitierstile oder die Literaturverzeichnisstiele liegen.
bbx = bibliography file for biblatex (Bibliographiestil)
cbx = citation file for biblatex (Zitierstil)
lbx = language definition file for biblatex (Sprachdefinitionen)
Desweiten habe ich auch noch nicht herrausgefunden ob man die Änderungen in eben jenem Biblatex Verzeichnis vornimmt oder ob man die Änderungen quasi für jedes Dokument extra im Dokumentenverzeichnis vornimmt.
Eigentlich weder – noch. Auf jeden Fall nie im biblatex-Verzeichnis, denn
dann könnten deine Änderungen nach einem Update verlorengehen. Am
besten macht man das in einem lokalen TEXMF-Baum oder in einem dafür
vorgesehenen Benutzerverzeichnis der TeX-Distribution. Siehe dazu auch
http://projekte.dante.de/DanteFAQ/TDS,
http://projekte.dante.de/DanteFAQ/Verschiedenes#67 und evtl.
http://projekte.dante.de/DanteFAQ/PaketInstallation.
Ich will ja eigentlich nur für den Literaturverzeichnistyp (nicht den Zitiertyp) numeric den Quelltyp: "article" etwas anpassen. Dafür wollte ich den Kompletten Numeric Style kopieren und "numeric-own" oder so nennen und dann eben den article Eintrag wie in dem Thread den ich oben zitiert habe anpassen. Aber so einfach scheint das nicht so sein.
Zumindest bräuchte ich noch ein paar Hinweise, wo muss ich genau nachschauen?
Die grundsätzliche Darstellung im Literaturverzeichnis ist in standard.bbx
festgelegt, evtl. Änderungen daran dann in den bbx-Dateien der einzelnen
Stile. Die Datei standard.bbx müsste eigentlich schon eingebunden sein
(denn in numeric.bbx steht die Zeile \RequireBibliographyStyle{standard},
die genau das macht). In numeric-own.bbx kannst du dann
\RequireBibliographyStyle{standard}{…} aus standard.bbx hineinkopieren
und anpassen.
edit: ich bin jetzt ein bisschen weiter, ich habe einfach mal ein vorhandenen Stiel umbenannt bzw. kopiert und einfach nur im Feld \ProvidesFile den Namen angepasst, aber beim Aufrufen bekomme ich nur die Fehlermeldung das der Stil nicht bekannt ist. Da muss ich doch sicher noch irgendwo den Stil bekannt machen? Vieleicht in der biblatex.def oder so einfügen`?
Hast du einen texhash durchgeführt? Ansonsten: Minimalbeispiel.

Gruß,
Dominik.-

senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Beitrag von senior_hombre »

Vielen Dank erstmal für die Antwort, ich denke damit komme ich weiter, allerdings muss ich jetzt erstmal etwas rumprobieren.
Was den Texhash angeht, ich weiß nicht wie ich das unter Windows mache, jetzt gerade habe ich die Gelegenheit, dass ganze mal unter Linux umzusetzen.
Ich versuche mich erstmal nochmal daran und melde mich wenn ich wieder Probleme habe.

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

senior_hombre hat geschrieben:Was den Texhash angeht, ich weiß nicht wie ich das unter Windows mache, jetzt gerade habe ich die Gelegenheit, dass ganze mal unter Linux umzusetzen.
Bei MiKTeX im Einstellungsdialog auf den Button »Refresh FNDB« klicken
(FNDB steht für Filename Database). Mit TeXlive unter Windows kenne
ich mich nicht aus.

Gruß,
Dominik.-

senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Beitrag von senior_hombre »

ich glaube so langsam komme ich mir der Sache klar, allerdings hänge ich an der neu Definition bestimmter Makros.
Im Obigen Beispiel wird z.b. das Macro: journal+issuetitle
neu definiert, wo finde ich denn jetzt das Original?
In der Standard.bbx wird es nur aufgerufen und in der biblatex.def steht es nicht drin.
Irgendwo muss die Makros doch standartmäßig definiert sein, ich bräuchte dies dringend um ein bisschen abzukucken.
Mich interessieren nicht nur die original Makrodefinition sondern auch so sachen wie bibstrings. Im Numericstil wird nämlich z.b. vor jedem Artikel "In:" ausgeschrieben, ich konnte die Sache dann in der biblatex.def aufspüeren, da steht aber nur:
 \newbibmacro*{in:}{%
  \printtext{%
    \bibstring{in}\intitlepunct}}
d.h. irgendwo muss es sowas wie eine bibstring Definition geben oder ich verstehe das falsch. (immerhin steht es ja im Literaturverzeichnis mit großem I und in anderen Sprachen sieht das vieleicht noch ganz anders aus)

Und dann würde ich gerne noch wissen wo genau ich die neues Stile denn am besten abspeichere? Also am Beispiel von MikTex und Windows.
Geht ja nicht überall, das gäbe bestimmt Probleme beim Updaten der MikTex Datenbank, bzw. die Dateien werden sicher nicht überall gefunden.

edit: ok hab die Definitionen gefunden, hab sie übersehen sie stehen doch in der Standard.bbx

müsste jetzt nur noch wissen wo hin mit der neuen Stil Datei und was es mit den \bibstrings aufsich hat.

Und was hat es mit diesem Sternchen hinter den Befehlen aufsich:
\renewbibmakro*{}
Kann ich das ersetzen durch
\renewbibmakro[article]{} und somit das Makro z.b. nur für article neudefinieren?
Das wäre sehr Praktisch.[/b]

senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Beitrag von senior_hombre »

So ich habe hier mal meine (Test-)Version eines neuen numeric Stiles aufgeschrieben:
\ProvidesFile{numeric-own.bbx}
\RequireBibliographyStyle{numeric}

\renewbibmacro*{in:}{%
}%

\DeclareBibliographyDriver{article}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \usebibmacro{in:}%
  \usebibmacro{journal+issuetitle}%
  \newunit
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

\newbibmacro*{journal+issuetitle}{%
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \iffieldundef{series}
    {}
    {\newunit
     \printfield{series}%
     \setunit{\addspace}}%
  \usebibmacro{volume+number+eid}%
  \setunit{\addspace}%
  \usebibmacro{note+pages}%
  \setunit{\addspace}%
  \usebibmacro{issue+date}%
  \setunit{\addcolon\space}%
  \usebibmacro{issue}%
  \newunit}

\DeclareFieldFormat[article]{pages}{#1}
\DeclareFieldFormat[article]{volume}{\textbf{#1}}
\endinput
Das ganze ergab sich einfach durch ausprobieren und daher habe ich ein paar Fragen:
1. der Makro "in:" lautete Ursprünglich, in der biblatex.def:
\newbibmacro*{in:}{%
  \printtext{%
 \bibstring{in}\intitlepunct}}
ich wollte hier nur das "In:" vor jedem Artikel loswerden, ist das so ok?

2. Den article Driver habe ich nur nochmal aufgeführt weil ich das Datum nach Pages haben wollte, deshalb habe ich im Driver diese Zeile nur entfernt und dann in das {journal+issuetile} Makro verfrachtet

3. Mein Problem bleibt aber, dass das Datum immer mit Monat angegeben wird, ich würde es aber gerne ohne Monat haben

4. Wohin muss die Datei?

Benutzeravatar
domwass
TeX-Entwickler
TeX-Entwickler
Beiträge: 617
Registriert: Di 26. Aug 2008, 12:44
Kontaktdaten:

Beitrag von domwass »

senior_hombre hat geschrieben:d.h. irgendwo muss es sowas wie eine bibstring Definition geben
In den lbx-Dateien.
Und dann würde ich gerne noch wissen wo genau ich die neues Stile denn am besten abspeichere? Also am Beispiel von MikTex und Windows.
Geht ja nicht überall, das gäbe bestimmt Probleme beim Updaten der MikTex Datenbank, bzw. die Dateien werden sicher nicht überall gefunden.
Wo du speicherst, ist egal, du musst MiKTeX nur sagen, wo es die Dateien
findet, also den Pfad bei den MiKTeX-Einstellungen im Reiter »Roots«
hinzufügen.
Und was hat es mit diesem Sternchen hinter den Befehlen aufsich:
\renewbibmakro*{}
Das heißt, dass keine Absätze innerhalb des Befehls, der umdefiniert wird,
stehen dürfen. Das ist dasselbe wie bei \newcommand bzw.
\newcommand*.
Kann ich das ersetzen durch
\renewbibmakro[article]{} und somit das Makro z.b. nur für article neudefinieren?
Nein, das funktioniert nicht.
ich wollte hier nur das "In:" vor jedem Artikel loswerden, ist das so ok?
Ich würde einfach \usebibmacro{in} in den entsprechenden bibliograpy
drivern auskommentieren bzw. löschen.
Mein Problem bleibt aber, dass das Datum immer mit Monat angegeben wird, ich würde es aber gerne ohne Monat haben
Verstehe ich nicht. Mach mal ein Minimalbeispiel.

Gruß,
Dominik.-

senior_hombre
Forum-Anfänger
Forum-Anfänger
Beiträge: 30
Registriert: Fr 26. Nov 2010, 20:46

Beitrag von senior_hombre »

Was den letzten Punkt angeht, alle meine Versuche den Monat vor dem Jahr aus der Literaturliste:
[1] Autor, Journal,... (Monat Jahr), DOI:
usw.
zu entfernen brachten nichts, also habe ich es ganz gelassen. In meinem Beispiel gibt es also gar keinen Versuch den Monat nicht anzeigen zu lassen, ich suche im Gegenteil nach einer Lösung.

Antworten