Seite 1 von 2

Modifizieren von alphadin

Verfasst: Fr 21. Nov 2014, 23:43
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

Verfasst: Sa 22. Nov 2014, 09:31
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.

Verfasst: Mo 24. Nov 2014, 18:59
von Dimitri
OK, vielen Dank für die Antwort und den Link. Werde Mir das mal ansehen.

Viele Grüße

Verfasst: Do 27. Nov 2014, 21:40
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...

Verfasst: Do 27. Nov 2014, 22:49
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 ...

Verfasst: Sa 29. Nov 2014, 09:58
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.

Verfasst: Sa 29. Nov 2014, 13:34
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

Verfasst: So 30. Nov 2014, 00:04
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

Verfasst: So 30. Nov 2014, 00:16
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

Verfasst: So 30. Nov 2014, 22:18
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}