Spezieller Zitationsstil

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


Gast

Beitrag von Gast »

Hier sind ein paar Kommentare zu Deinem Code
   \renewcommand*\mkbibnamelast[1]{\textit{#1}}
   \renewcommand*\mkbibnamefirst[1]{\textit{#1}}
   \renewcommand*\mkbibnameprefix[1]{\textit{#1}}
   \renewcommand*\mkbibnameaffix[1]{\textit{#1}}
Ist mit Version 3.3 überholt (siehe Namensformat mit biblatex 3.3). Mit neueren Versionen sollte das
   \renewcommand*\mkbibnamefamily[1]{\mkbibemph{#1}}
   \renewcommand*\mkbibnamegiven[1]{\mkbibemph{#1}}
   \renewcommand*\mkbibnameprefix[1]{\mkbibemph{#1}}
   \renewcommand*\mkbibnamesuffix[1]{\mkbibemph{#1}}
sein, wobei Du statt \mkbibemph auch \mkbibitalic nutzen kannst, wenn es denn sein muss.
   \renewcommand*{\multinamedelim}{,\,}
   \renewcommand*{\finalnamedelim}{,\,}
halte ich für keine so gute Idee. Anstatt das Komma direkt einzugeben, solltest Du lieber \addcomma verwenden. Mit \, bekommst Du danach ein dünnes Leerzeichen, das halte ich für keine so gute Idee. Ich wäre für
   \renewcommand*{\multinamedelim}{\addcomma\space}
   \renewcommand*{\finalnamedelim}{\multinamedelim}
Wenn es sein muss, ersetze \space durch \addnbspace für ein dünnes nicht umbrechbares Leerzeichen (aber das ist bei langen Autorenlisten keine gute Idee)

Der Block
   \DeclareNameFormat{default}{% Vollzitate
\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
\usebibmacro{name:andothers}}
\DeclareNameFormat{labelname}{% alle anderen Zitate
  \usebibmacro{name:last-first}{#1}{#4}{#5}{#7}%
  \usebibmacro{name:andothers}}

\DeclareNameFormat{sortname}{% Bibliographie
  \iffirstinits
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}
    {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}%
  \usebibmacro{name:andothers}}
verursacht Seit Version 3.3 Fehler. Wenn ich richtig sehe, was Du möchtest, sollte es reichen, die Option giveninits=true zu laden und das obige mit
\DeclareNameAlias{default}{family-given}
\DeclareNameAlias{sortname}{default}
zu ersetzen.

Es ist ferner keine gute Idee, Zeichensetzung in \DeclareFieldFormat zu quetschen, wie in
   % Book
   \DeclareFieldFormat[book]{title}{#1}
   \DeclareFieldFormat[book]{edition}{#1,}
   \DeclareFieldFormat[book]{publisher}{#1,}
   \DeclareFieldFormat[book]{addendum}{#1}

   % Article  %!!!!!ACHTUNG auf Punkte zurücksetzten!!!
   \DeclareFieldFormat[article]{journaltitle}{#1,}
   \DeclareFieldFormat[article]{title}{#1}
   \DeclareFieldFormat[article]{journal}{#1,}
   \DeclareFieldFormat[article]{volume}{Vol. #1,}
   \DeclareFieldFormat[article]{pages}{S.\,{#1}}
   
   %Onlineanpassung
   \DeclareFieldFormat[article]{url}{#1,}
Außerdem sollten Strings wie 'Vol. ' und 'S.\,' mit bibstrings gelöst werden.

Ferner sollten Klammern lieber nicht in die bibstrings eingebaut werden, statt
%Um Hrsg. in Klammern und ohne Komma
\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\space}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}
    {}}
\DefineBibliographyStrings{ngerman}{%
editors = {\mkbibparens{Hrsg\adddot}}}

\DefineBibliographyStrings{ngerman}{%
editor = {\mkbibparens{Hrsg\adddot}},
editors = {\mkbibparens{Hrsg\adddot}}
}
hilft hoffentlich
%Um Hrsg. in Klammern und ohne Komma
\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\renewbibmacro*{editor}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editorstrg}%
     \clearname{editor}}
    {}}

\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
     \setunit{\addspace}%
     \usebibmacro{editor+othersstrg}%
     \clearname{editor}}
    {}}
Bei
%%% "in:" groß bei Artikeln und : %%%
\renewbibmacro{in:}{\space in\addcolon\space} %geändert auf klein
habe ich keinen blassen Schimmer, was Du erreichen möchtest. Aber es ist meiner Meinung nach, keine gute Idee, den bibstring durch einen festen String zu ersetzen.


Da Dein Beispiel bei mir nicht mehr läuft, kann ich leider nicht vergleichen, ob meine Vorschläge wirklich exakt dieselbe Ausgabe liefern, wie Dein Code. Aber so ist das ganze schon etwas übersichtlicher und weniger Fehleranfällig.

LillyLa

Beitrag von LillyLa »

Wow super! Vielen lieben Dank für die Lösung und die weiteren tollen Ideen.
Leider hatte ich die letzten Tage viele Problemchen bei meinen Versuchsdurchführungen, sodass ich heute erst dazu gekommen bin die verschiedenen Ideen auszuprobieren.

\renewbibmacro*{begentry}{\printtext[brackets]{\usebibmacro{cite}}\setunit{\addspace}
Funktioniert super! :) eckige Klammern sind im Literaturverzeichnis erschiene.

Die Änderung auf
   \renewcommand*\mkbibnamefamily[1]{\mkbibemph{#1}} 
   \renewcommand*\mkbibnamegiven[1]{\mkbibemph{#1}} 
   \renewcommand*\mkbibnameprefix[1]{\mkbibemph{#1}} 
   \renewcommand*\mkbibnamesuffix[1]{\mkbibemph{#1}}
und
\DeclareNameAlias{default}{family-given} 
\DeclareNameAlias{sortname}{default
funktioniert leider nicht. Da erhalte ich immer eine Fehlermeldung....Woran könnte das liegen? Muss ich noch etwas anderes ändern?

Die beiden anderen beiden Änderungsvorschläge:



   \renewcommand*{\multinamedelim}{\addcomma\space} 
   \renewcommand*{\finalnamedelim}{\multinamedelim}
und
%Um Hrsg. in Klammern und ohne Komma 
\DeclareFieldFormat{editortype}{\mkbibparens{#1}} 
\renewbibmacro*{editor}{% 
  \ifboolexpr{ 
    test \ifuseeditor 
    and 
    not test {\ifnameundef{editor}} 
  } 
    {\printnames{editor}% 
     \setunit{\addspace}% 
     \usebibmacro{editorstrg}% 
     \clearname{editor}} 
    {}} 

\renewbibmacro*{editor+others}{% 
  \ifboolexpr{ 
    test \ifuseeditor 
    and 
    not test {\ifnameundef{editor}} 
  } 
    {\printnames{editor}% 
     \setunit{\addspace}% 
     \usebibmacro{editor+othersstrg}% 
     \clearname{editor}} 
    {}}
funktionieren allerdings ganz wunderbar, sodass ich das gewünschte Ergebnisse erhalte.

Vielen lieben Dank!!! :)

Gast

Beitrag von Gast »

LillyLa hat geschrieben:funktioniert leider nicht. Da erhalte ich immer eine Fehlermeldung....Woran könnte das liegen?
Das hängt davon ab, was für eine Fehlermeldung du bekommst.
Hast du denn inzwischen biblatex (und biber!) in aktueller Version? Wenn nicht, funktioniert das natürlich nicht, da man – wie ausdrücklich erwähnt – dafür min. biblatex 3.3 benötigt. aktuell wäre 3.7.

Gast

Beitrag von Gast »

Das wird daran liegen, dass Dein biblatex veraltet ist. Die von mir oben vorgeschlagenen Befehle gibt es erst seit Version 3.3. Die ist allerdings nun auch fast ein Jahr alt, aktuell ist Version 3.7. Der von Dir verwendete Code funktioniert nur mit Versionen vor 3.3.

Du solltest also darüber nachdenken, biblatex und biber zu aktualisieren. Das machst Du am besten über Deine TeX-Distribution, also tlmgr bei TeX live und den das 'MikTeX Update'-Tool im Admin- und User-Modus bei MikTeX (eventuell musst Du die MikTeX-Updater jeweils zwei mal laufen lassen, damit alle Pakete aktualisiert werden).

Nach dem Update musst Du dann Deinen veralteten Code durch die obigen Vorschläge mit der neuen Syntax benutzen.

LillyLa

Beitrag von LillyLa »

Okay. Also ich bin mutig und werde es aktualisieren....
Helft ihr mir dann, wenn irgendwas nicht mehr funktioniert???
Ich habe schon wirklich Angst. Soll ich dann die Version 3.3 oder 3.7 nehmen?

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Mach einfach ein Update. Push the button and relax.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

LillyLa

Beitrag von LillyLa »

Es kommt eine Fehlermeldung.
Da steht immer, dass der Pfad falsch angegeben ist und somit führt er keine Aktualisierung durch.
Wo müsste ich denn den Pfad in den Einstellungen ändern?


LillyLa

Beitrag von LillyLa »

Ich habe schon mal geschaut und es scheint ein weitreichendes Problem hinsichtlich der grundsätzlichen Installation zu sein... Ich habe beschlossen, das Update vor meiner Masterarbeit durchzuführen, nur nicht jetzt für die Studienarbeit, da die Zeit sowieso schon sehr knapp ist.

Allerdings habe ich zur Zitation noch eine Frage:

Sofern ich es richtig verstanden habe, führt der Befehl
 \renewbibmacro*{begentry}{\usebibmacro{cite}}
zur Voranstellung der im Text verwendete Zitatforms im Literaturverzeichnis. Allerdings funktioniert es bei mir noch nicht so ganz.

Ein \cite{} im Textformat erzeugt ein: [Autor, Jahr]
Das vorangestellte Format im Literaturverzeichnis lautet aber [Autor, Abkürzung Vorname, Jahr].

Gleiches Problem habe ich auch bei mehreren Autoren:
Bei mehr als zwei Autoren wird im Textformat nur der erste mit der Ergänzung et al. geschrieben.
Im Literaturverzeichnis im vorangestellten Text werden aber ungewollter Weise alle aufgezählt.

Also irgendwie wird mithilfe dieses Befehls zwar ein vorangestellter Text erzeugt, aber anscheinend nicht der aus dem Textformat, sondern einfach der aus dem Literaturverzeichnis nochmal wiederholt und vorangestellt. Müsste der Befehl irgendwie noch erweitert werden?

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Ich habe schon mal geschaut und es scheint ein weitreichendes Problem hinsichtlich der grundsätzlichen Installation zu sein...
Büx nicht aus. Sage, was du für einen Fehler bekommst. Und sage auch mal, welches TeXsystem, welche biblatex und welche biber-Version du benutzt.
Allerdings habe ich zur Zitation noch eine Frage:
Hinterlege deine Fragen immer mit vollständigen Beispielen. Deine Zeit ist knapp, aber das gilt auch für andere. Mir ist eine neue in sich geschlossene Frage mit Beispiel viel lieber als ein "ich habe noch eine Frage", die sich an einen ellenlangen Thread anhängt, durch den man sich erstmal durchwühlen muss.

Antworten