Erstellung eines Zitationsstils [AUTjj]

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


Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Erstellung eines Zitationsstils [AUTjj]

Beitrag von Jens2102 »

Hallo zusammen,

ich schreibe derzeit meine Masterarbeit und arbeite dabei mit Citavi für die Literatursammlung. Das einbinden in LaTex hat auch super funktioniert und ich habe alphadin soweit modifiziert, dass ich immer die ersten drei Buchstabn vom Erstautor plus zwei Jahreszahlen erhalte. Diese sind dann aber in der Form [Autjj] und nicht [AUTjj]. Kann mir jemand helfen mein alphadin zu modifizieren.

Mein LaTex Code sieht wie folgt aus:
\documentclass[13pt, a4paper]{scrartcl}
\usepackage{ngerman, amsmath, amssymb} 
\usepackage[utf8]{inputenc}
\usepackage [noadjust]{cite}
\renewcommand{\bibname}{Literturverzeichnis}

\begin{document}

...Dies ist der Text. \cite{Beura.2018}

\renewcommand{\refname}{Literaturverzeichnis}
\addcontentsline{toc}{section}{Literaturverzeichnis}
\bibliography{LiteraturTest}
\bibliographystyle{alphadinMOD}

\end{document}
Mein von Citavi erstelltes Verzeichnis sieht dazu wie folgt aus:
% This file was created with Citavi 6.3.0.0

@article{Beura.2018,
 author = {Beura, Vikrant Kumar and Xavier, Vincent and Venkateswaran, T. and Kulkarni, Kaustubh N.},
 year = {2018},
 title = {Interdiffusion and microstructure evolution during brazing of austenitic martensitic stainless steel and aluminum-bronze with Ag-Cu-Zn based brazing filler material},
 pages = {852--862},
 volume = {740},
 issn = {09258388},
 journal = {Journal of Alloys and Compounds},
 doi = {10.1016/j.jallcom.2018.01.043}
}
Danke schon mal im Voraus.

VG

Jens

Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Beitrag von Jens2102 »

Hier noch ein Auszug aus der alphadin. Hoffe es ist die richtige Stelle.
FUNCTION {format.lab.names}
{ 's :=
s num.names$ 'numnames :=
numnames #100 >% Ich habe dies von 1 auf 100 gesetzt, um immer ein Kürzel aus dem Nachnamen des Erstautors zu bekommen
{ 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$
}


Gast

Beitrag von Gast »

Ohne die ganze .bst-Datei gesehen zu haben und selbst damit herumgespielt zu haben, traue ich mir nicht zu, passenden Code abzuliefern. Aber ein Blick in Tame The BeaST oder btxhak zeigt, dass es die Funktion change.case$ gibt, wenn man der als zweites (von links nach rechts gezählt, was vielleicht nicht ganz natürlich ist bei umgekehrter polnischer Notation) Argument "u" übergibt, sollte sie ihr erstes Argument in All-Caps ausgeben:
<text> "u" change.case$
Wenn Du also "u" change.case$ an der richtigen Stelle einsprenkelst, könnte es was werden.

Ansonsten bleibt mir noch zu erwähnen, dass biblatex und biber meist um Ecken leichter anzupassen sind als die .bst-Stile mit ihrer umgekehrten polnischen Notation. Ferner basieren alphadin und Co auf dem meiner Meinung nach nicht nur ästhetisch sehr fragwürdigen, sondern inzwischen auch seit mindestens 6 Jahren durch DIN ISO 690 ersetzten Standard DIN 1505-2. Auch auf diese Basis im Speziellen würde ich also nicht setzen.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Mein Änderungsvorschlag zu Deinem Beispiel ist unabhängig davon, ob Du zu biblatex wechselst oder nicht:
\begin{filecontents}{\jobname.bib}
@article{Beura.2018,
    author = {Beura, Vikrant Kumar and Xavier, Vincent and Venkateswaran, T. and Kulkarni, Kaustubh N.},
    year = {2018},
    title = {Interdiffusion and microstructure evolution during brazing of austenitic martensitic stainless steel and aluminum-bronze with Ag-Cu-Zn based brazing filler material},
    pages = {852--862},
    volume = {740},
    issn = {09258388},
    journal = {Journal of Alloys and Compounds},
    doi = {10.1016/j.jallcom.2018.01.043}
}
\end{filecontents}

\documentclass[fontsize=13pt, bibliography=totoc]{scrartcl}
%\usepackage[utf8]{inputenc} für ältere TeX-Distributionen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}% Ersatz für das Paket ngerman
\usepackage[noadjust]{cite}

\renewcaptionname{ngerman}{\refname}{Literaturverzeichnis}

\bibliographystyle{alphadinMOD}

\begin{document}
\tableofcontents

\dots{} Dies ist der Text. \cite{Beura.2018}

\bibliography{\jobname}
\end{document}
In einer Arbeit dieser Größe mit einer Dokumentklasse zu arbeiten, die keine Kapitel unterstützt, ist zwar technisch gesehen kein Problem, aber nach meiner Erfahrung eher ungewöhnlich.

Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Beitrag von Jens2102 »

Hallo,

erste einnmal vielen Dank für eure Hilfe. Ich habe auf euer Anraten hin auf BibLaTeX und biber umgestellt. Ich habe es mal an einem anderen Kurzbeispiel ausprobiert.

Es passt alles soweit. Das einzige was noch geändert werden muss ist, dass bei der Zitation der Quelle mit zwei Autoren ein Plus steht. Wie bekomme ich das + noch weg? Habt ihr einen Vorschlag?

Hier noch das Beispiel:
\documentclass[12pt]{article}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage[backend = biber, bibencoding = latin1, style = alphabetic-verb,]{biblatex}

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[uppercase, final]{shorthand}
      \field[uppercase, final]{label}
    \field[uppercase,strwidth=3,strside=left,names=1]{labelname}
   }
  \labelelement{
    \field[strwidth=2,strside=right]{year}
  }
}

}
\DefineBibliographyStrings{ngerman}{
   andothers = {{et\,al\adddot}},            
}


\addbibresource{Database/Testliteratur.bib}

\begin{document}

\tableofcontents

\section{Test Section}

Test text. \cite{Miller2012}, \cite{MurphyAndSummer1999}

\section{Another Test Section}

Test text. \cite{MurphyAndSummer1999}

\printbibliography[heading=bibintoc]

\end{document}

Das Literaturverzeichnis sieht wie folgt aus:
@book{Miller2012,
	author = {Adam Miller},
	title = {Clever Book Titel},
	date = {2012},
	editor = {Sammy Editor},
	publisher = {NotSpringer},
}

@book{MurphyAndSummer1999,
	author = {Bill Murphy AND Luise Summer},
	title = {Clever Book Titel},
	date = {1999},
	publisher = {NotSpringer},
}
Schon mal danke für eure Mühen.

PS.: Im nachgang ist mir jetzt noch aufgefallen, dass wenn ich vier Autoren in einer Quelle einfüge nur der erste im Literaturverzeichnis aufgeführt wird und dann ein et al. ergänzt wird. Ich hätte allerdings gerne bis drei Autoren alle Namen drin stehen. Sind es mehr als drei, sollen die ersten drei dennoch alle aufgeführt werden und dann erst das et al. folgen.

Gibt es diesbezüglich noch Tipps?

VG
Jens

Gast

Beitrag von Gast »

Jens2102 hat geschrieben:Das einzige was noch geändert werden muss ist, dass bei der Zitation der Quelle mit zwei Autoren ein Plus steht. Wie bekomme ich das + noch weg?
\renewcommand*{\labelalphaothers}{}

Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Beitrag von Jens2102 »

Perfekt. Das mit dem + hat funktioniert. Vielen Dank.

Jetzt besteht nur noch das Problem dass bei einer Quelle ab vier Autoren nur noch der erste Autor im Literaturverzeichnis aufgeführt wird mit einem et al. dahinter. Ich hätte aber bei vier oder mehr Autoren gerne die ersten drei im Literaturverzeichnis stehen und dann erst das et al. Außerdem sind die Namen mit vollem Vor- und Nachnamen ausgeschrieben.

Z.B. das Buch 1 haben die Autoren AAA, BBB, CCC und DDD im Jahr 2012 geschrieben. Dann bekomme ich jetzt

[AAA12] AAA et al. Buch 1 (2012)

Kann man das mit den vollständigen Namen auch noch ändern?

Ich hätte gerne den vollen Nachnamen, erster Buchstabe des Vornamens, das geliche vom zweit- und Drittautor und dann das et al.

Entschuldigt die vielen Fragen. Bin noch recht neu mit Latex unterwegs...
Dateianhänge
Hier mal ein Beispiel wie es ca. aussehen soll
Hier mal ein Beispiel wie es ca. aussehen soll
Beispiel Forum.png (21.7 KiB) 2949 mal betrachtet

Gast

Beitrag von Gast »

Dafür musst Du ein bisschen mit minbibnames und maxbibnames herumspielen. Für die Initialen gibt es giveninits. Der Rest kann mit NameFormaten und DelimFormaten erledigt werden.
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}% heutzutage würde ich immer UTF-8 nutzen
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
% in jedem Fall ist die Angabe von bibencoding unnötig, wenn sie mit
% der Dokumentcodierung (wie in inputenc angegeben) übereinstimmt
\usepackage[backend=biber,
  style=alphabetic-verb,
  minbibnames=3, maxbibnames=3,
  giveninits=true]{biblatex}

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[uppercase, final]{shorthand}
    \field[uppercase, final]{label}
    \field[uppercase,strwidth=3,strside=left,names=1]{labelname}
  }
  \labelelement{
    \field[strwidth=2,strside=right]{year}
  }
}

\renewcommand*{\labelalphaothers}{}

\DeclareNameAlias{sortname}{family-given}
\DeclareNameAlias{author}{sortname}
\DeclareNameAlias{editor}{sortname}
\DeclareNameAlias{translator}{sortname}

\DeclareDelimFormat{multinamedelim}{\addsemicolon\space}
\DeclareDelimAlias{finalnamedelim}{multinamedelim}

\DefineBibliographyStrings{german}{
  andothers = {{et\,al\adddot}},            
}


\addbibresource{biblatex-examples.bib}

\begin{document}
\tableofcontents

\section{Test Section}
Test text. \cite{sigfridsson,worman,geer,nussbaum,aksin,herrmann}

\section{Another Test Section}
Test text. \cite{sigfridsson,companion,cotton}

\printbibliography[heading=bibintoc]
\end{document}

Jens2102
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Do 11. Jul 2019, 16:36

Beitrag von Jens2102 »

Ja. Das hat funktioniert und sieht jetzt genau so aus wie ich mir das vorgestellt habe. :D

Vielen vielen Dank für eure super Hilfe :)

Antworten