Modifizieren von alphadin

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


Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Modifizieren von alphadin

Beitrag von Dimitri »

Hallo,

ich habe heute morgen die alphadin.bst-Datei eingebunden (Miktex). Nun würde ich gerne eine Kleinigkeit ändern: Ich hätte gerne, dass alle Artikel etc., die mehr als drei Autoren aufweisen, mit [ABC+99] zitiert werden; dabei seien A, B, C und D die Nachnamen der Autoren und 99 das Jahr 1999. Bei Mir wird zumeist mit [ABCD99] zitiert (machmal aber auch mit einem "+"). Dachte alpahdin.bst würde das beheben. Kann Mir da bitte jemand weiterhelfen?
...und noch zwei Fragen am Rande:
a) Mit welchem Programm sollte ich eine .bst-Datei öffnen? Mit einem Texteditor sieht das Ganze etwas seltsam aus.,
b) Warum wird per default eigentlich "uneinheitlich" zitiert (manchmal "+", manchmal nicht)?

Viele Grüße

Besserwisser

Beitrag von Besserwisser »

bst-Dateien sind etwas seltsam und Änderungen daran meist nicht so einfach, wenn man mit der seltsamen Notation nicht gut vertraut ist. Das ist einer der Gründe, warum ein schlauer Mensch biblatex geschaffen hat, mit der man derlei Dinge komplett auf LaTeX-Ebene regelt. Siehe unbedingt die wichtigen Hinweise.

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

OK, vielen Dank für die Antwort und den Link. Werde Mir das mal ansehen.

Viele Grüße

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

Zu Bibtex: Aber seltsam ist doch trotzdem, dass obwohl ich alphadin verwende, inkonsitent zitiert wird: einmal ACEG und ein anderes mal ABC^{+} - nicht ABCD; oder ist das nur bei Mir so??? Als würde das vom entsprechenden Eintrag abhängen...

Beinschuss
Forum-Meister
Forum-Meister
Beiträge: 809
Registriert: Di 2. Okt 2012, 21:42
Wohnort: NRW

Beitrag von Beinschuss »

Das Label wird nicht inkonsistent gebildet: Wenn's mehr als drei Autoren gibt, dann kommt das Plus-Zeichen. Der Autor von alphadin.bst macht es Dir übrigens leicht, das zu ändern: Nimm jeweils die beiden Prozentzeichen weg und setzt dafür eine Zeile tiefer zwei Prozentzeichen an den Anfang (= auskommentieren). Lorenzen hat's kommentiert.
FUNCTION {format.lab.names}
{ 's :=
  s num.names$ 'numnames :=
  numnames #1 >
    { numnames #4 >
        { #3 'namesleft := }
        { numnames 'namesleft := }
      if$
      #1 'nameptr :=
      ""
        { namesleft #0 > }
        { nameptr numnames =
            { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
%%                { "\," *  %% kein besonderes Zeichen fuer "others" i. label
                { "{\etalchar{+}}" *   %% ein plus-Zeichen (+) fuer "others"!
                  #1 'et.al.char.used :=
                }
                { s nameptr "{l{}}" format.name$ * }
              if$
            }
            { s nameptr "{l{}}" format.name$ * }
          if$
          nameptr #1 + 'nameptr :=
          namesleft #1 - 'namesleft :=
        }
      while$
      numnames #4 >
%%        { "\," *  %%  s. Bemerkung oben
        { "{\etalchar{+}}" *
          #1 'et.al.char.used :=
        }
        'skip$
      if$
    }
    { s #1 "{l{}}" format.name$
      duplicate$ text.length$ #2 <
        { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } %%  vgl. Anmerkung!
        'skip$
      if$
    }
  if$
}
Helmut

P.S.: Ungetestet aufgrund des fehlenden Minimalbeispiels. Glücklicherweise muss man sich beim *sehr empfehlenswerten* biblatex mit dieser kryptischen Programmierung als Anwender nicht mehr herumschlagen ...

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

Oh, vielen Dank. Werde das heute mal noch testen.
Mit welchem Programm lässt sich ne bst-Datei gut lesen? Mit nem Texteditor kann ich jene zwar öffnen, aber alles ist total verschoben.

PS: Ein Minimalbsp werde ich auch noch posten.

Beinschuss
Forum-Meister
Forum-Meister
Beiträge: 809
Registriert: Di 2. Okt 2012, 21:42
Wohnort: NRW

Beitrag von Beinschuss »

TeXStudio öffnet die .bst-Datei sauber mit allen Einrückungen, und Emacs hat sogar ein Syntaxhighlighting dafür. Aber auch einfache Texteditoren sollten den Job problemlos erledigen.

Helmut

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

Hallo Helmut,

danke für die Antworten. Habe eben folgendes Minimalbeispiel getestet:
\RequirePackage{filecontents}
\begin{filecontents*}{Testliteratur.bib}
@Article{Mayne2000,
  Title                    = {Constrained model predictive control: Stability and optimality},
  Author                   = {Mayne, David Q and Rawlings, James B and Rao, Christopher V and Scokaert, Pierre OM},
  Journal                  = {Automatica},
  Year                     = {2000},
  Number                   = {6},
  Pages                    = {789--814},
  Volume                   = {36},

  Owner                    = {Dimitri Semanejow},
  Publisher                = {Elsevier},
  Timestamp                = {2014.05.29},
  Url                      = {http://www.sciencedirect.com/science/article/pii/S0005109899002149}
}

\end{filecontents*}


\documentclass[fontsize=12pt]{scrreprt}

\begin{document}


Test\\
\cite{Mayne2000}


\nocite{*}

\bibliography{Testliteratur.bib}

\bibliographystyle{alphadin}


\end{document}
Bei genau diesem Artikel bekomme ich nämlich in meinem Originaldokument beim Zitieren [MRRS00] als Ausgabe. Allerdings tauchte beim Kompilieren des obigen Minimalbeispiels folgende Fehlermeldung auf:
LaTeX Warning: Empty `thebibliography' environment or \BreakBibliography
               before end of `thebibliography' environment on input line 10.
Aber egtl sollte das Minimalbeispiel doch "funktionieren", oder?
Kann Mir bzgl dieses Fehlers auch noch jemand weiterhelfen?

Viele Grüße

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

Oh, dummer Fehler:
\bibliography{Testliteratur.bib}
muss natürlich
\bibliography{Testliteratur}
heißen. :oops:

Aber wie gesagt: Zitiert wird [MRRS00] - warum auch immer. Kann Mir da bitte jemand weiterhelfen?

Viele Grüße

Dimitri
Forum-Guru
Forum-Guru
Beiträge: 418
Registriert: Fr 22. Mär 2013, 16:50

Beitrag von Dimitri »

Also nochmal das kompilierbare Minimalbeispiel:
\RequirePackage{filecontents}
\begin{filecontents*}{Testliteratur.bib}
@Article{Mayne2000,
  Title                    = {Constrained model predictive control: Stability and optimality},
  Author                   = {Mayne, David Q and Rawlings, James B and Rao, Christopher V and Scokaert, Pierre OM},
  Journal                  = {Automatica},
  Year                     = {2000},
  Number                   = {6},
  Pages                    = {789--814},
  Volume                   = {36},

  Owner                    = {Dimitri Semanejow},
  Publisher                = {Elsevier},
  Timestamp                = {2014.05.29},
  Url                      = {http://www.sciencedirect.com/science/article/pii/S0005109899002149}
}

\end{filecontents*}


\documentclass[fontsize=12pt]{scrreprt}

\begin{document}


Test\\
\cite{Mayne2000}


\nocite{*}

\bibliography{Testliteratur}

\bibliographystyle{alphadin}


\end{document}

Antworten