biblatex/authoryear: Autor (Jahr), Feldreihenfolgen Einträge

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


ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Anonymous hat geschrieben:Die Fehlermeldung, die Du bekommst deutet darauf hin, dass Deine biblatex-Version zu alt ist. \datecircaprint und das ganze andere Gesumse für extensive Datumsdarstellung gibt es erst seit Version 3.5. Aktuell ist 3.7.
Du musst also ein Update machen. Denk daran, dass Du biblatex und Biber immer gemeinsam updaten musst, um Versionskonflikte zu vermeiden.
Stimmt, das war’s, danke für den Hinweis.
Anonymous hat geschrieben:In der zweiten Version sollten die Buchstaben jetzt auch angezeigt werden.
Tatsächlich. Wie kommt’s? An der hat sich doch nichts geändert.
Anonymous hat geschrieben:Möchtest Du issue oder number ausschalten? Wie sieht denn ein Eintrag, bei dem Du das tun möchtest, aus?
Da das wohl nicht einheitlich gehandhabt wird, am besten beides. Das sieht dann so aus wie Dimpfelmoser und Zwackelmann (2008).
Anonymous hat geschrieben:Nochmal zu der Vorlagengeschichte: Hast Du schon mal dezent angefragt, wie sehr Du Dich an die Vorlage halten sollst? Würde es Deine Betreuerin/Dozentin überhaupt bemerken und dann auch noch schlecht finden, wenn Du von der Vorlage sinnvoll abweichst?

Ich habe bis jetzt noch nie eine Vorlage bekommen, aber ein paar Vorgaben gibt es an meiner Uni schon. Nach Rücksprache mit meinen Dozenten durfte ich die aber meistens sinnvoll ändern.
Sogar mehr als nur dezent. ;-) Augen zu und durch.
Anonymous hat geschrieben:Wo kommt die Vorlage überhaupt her? Ist das eine Uni-Vorlage oder eine Deines Arbeitskreises oder der Dozentin? Gibt es da irgendeinen Support für? Eigentlich ist es unverantwortlich, Leute zu zwingen eine veraltete, schlecht geschriebene und nicht supportete Vorlage zu nutzen.
Gezwungen wird man nicht, man bekommt die Vorlage in erster Linie, damit man sich nicht erst noch viel in LaTeX einarbeiten muß oder gar auf Word & Co. ausweicht. Veraltete Pakete durch neue zu ersetzen bekommt man dann schon hin, das ist nicht das Problem, aber die äußere Form ist eben vorgebenen.
Anonymous hat geschrieben:Hier ist der Code, der (1) von der Wunschliste erledigt. Wie versprochen ist der Code nun recht lang (um dir 600 Zeilen), die eigentlichen Änderungen am bibdriver waren aber minimal.
Danke. Etwas in der Art hatte ich schon erwartet, nur muß man eben wissen, was man ändern muß.
Anonymous hat geschrieben:PS: Wenn in neuer Rechtschreibung (nach 1996) schreibst, solltest Du Paket auf babel wohl mit dem Argument ngerman laden und nicht mit german. Die Vorlage wird mir immer unsympathischer.
Nach der neuen schreibe ich nicht, auch nicht streng nach der alten, aber german paßt besser als ngerman.

Nochmal vielen Dank. Zu (2), der Sache mit der DIN: Bei sowas schreibe ich einfach \textls[120]{DIN}\,8601 oder so ähnlich in das Feld author.

PS: Wo findet denn \renewcommand*{\mkbibacro}{\textls[120]} Verwendung?

PPS: Das ist wohl so gedacht: author = {{\mkbibacro{DIN} \textls[0]{8601}}}, oder?

PPPS: Ich habe für die Kompatibilität zu LaTeX-Quelltext aus natbib-Zeiten den makeat-Teil erweitert:
\makeatletter
\DeclareCiteCommand{\citet}%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{ecitet}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}

\DeclareCiteCommand{\citep}[\mkbibparens]%
  {\usebibmacro{prenote}}%
  {\usebibmacro{citeindex}\usebibmacro{ecitep}}%
  {\multicitedelim}%
  {\usebibmacro{postnote}}

\newbibmacro*{ecitet}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:parenlabelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}

\newbibmacro*{ecitep}{%
  \printtext[bibhyperref]{%
    \DeclareFieldFormat{bibhyperref}{##1}%
    \iffieldundef{shorthand}
      {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
         {\usebibmacro{cite:label}%
          \setunit{\printdelim{nonameyeardelim}}}
         {\printnames{labelname}%
          \setunit{\printdelim{nameyeardelim}}}%
       \usebibmacro{cite:labelyear+extrayear}}
      {\usebibmacro{cite:shorthand}}}}

\newbibmacro*{cite:parenlabelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext[parens]{%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {}
       {\datecircaprint}%
     \dateeraprintpre{labelyear}%
     \printfield{labelyear}%
     \printfield{extrayear}%
     \dateuncertainprint%
     \iffieldsequal{labeldateera}{labelenddateera}{}
       {\dateeraprint{labelyear}}%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {\datecircaprintedtf}
       {}%
     \iffieldundef{labelendyear}
       {}
       {\iffieldsequal{labelyear}{labelendyear}{}
        {\ifdefstring\blx@dateformat@labeldate{edtf}
          {\slash}%
          {\bibdaterangesep
           \enddatecircaprint}%
         \dateeraprintpre{labelendyear}%
         \printfield{labelendyear}%
         \enddateuncertainprint
         \ifdefstring\blx@dateformat@labeldate{edtf}
           {\enddatecircaprintedtf}
           {}%
         \dateeraprint{labelendyear}}}}}}

\newbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
    {}
    {\printtext{%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {}
       {\datecircaprint}%
     \dateeraprintpre{labelyear}%
     \printfield{labelyear}%
     \printfield{extrayear}%
     \dateuncertainprint%
     \iffieldsequal{labeldateera}{labelenddateera}{}
       {\dateeraprint{labelyear}}%
     \ifdefstring\blx@dateformat@labeldate{edtf}
       {\datecircaprintedtf}
       {}%
     \iffieldundef{labelendyear}
       {}
       {\iffieldsequal{labelyear}{labelendyear}{}
        {\ifdefstring\blx@dateformat@labeldate{edtf}
          {\slash}%
          {\bibdaterangesep
           \enddatecircaprint}%
         \dateeraprintpre{labelendyear}%
         \printfield{labelendyear}%
         \enddateuncertainprint
         \ifdefstring\blx@dateformat@labeldate{edtf}
           {\enddatecircaprintedtf}
           {}%
         \dateeraprint{labelendyear}}}}}}
\makeatother
Und weil es so einfacher war, den Link auf das ganze Label auszudehnen, anstatt das auch noch für \parencite zu machen.

Gast

Beitrag von Gast »

Mit den Buchstaben in der zweiten Version habe ich mich vielleicht unglücklich ausgedrückt. Das hat mit der korrekten biblatex-Version schon immer funktioniert, in der ersten Version war das noch nicht der Fall.

Für number und issue hilft dann
\AtEveryBibitem{\clearfield{number}\clearfield{issue}}
Die Geschichte mit der Vorlage wird ja immer doller. Das als Vorlage zum Einstieg zu verwenden halte ich wirklich für keine gute Idee. Besonders wenn dann daran festgehalten wird, eventuell bescheuerte Ausgaben beizubehalten.

PS: Das ist für allerhand Akronyme. Z.B. wird jetzt ISBN und DOI eben mit \textls[120] wie von Dir gewünscht gesetzt und nicht in \textsc.

PPS: Ja das ginge wohl so.

PPPS: Ja für \citep/\parencite geht das wohl so. Für \citet/\textcite zerschießt Du Dir damit etwas die Standardfunktionsiweise bei biblatex, aber seis drum.

Gast

Beitrag von Gast »

Sorry, hab ich vergessen. Hier der Code mit Versionsgeschichte https://gist.github.com/moewew/a835a208 ... 46239e26b2

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Anonymous hat geschrieben:Für number und issue hilft dann
\AtEveryBibitem{\clearfield{number}\clearfield{issue}}
issue wird jetzt schon nicht angezeigt. number schon, allerdings wird das auch für die Nummer der DIN (8601) verwendet, die wiederum nicht angezeigt wird.
Anonymous hat geschrieben:Die Geschichte mit der Vorlage wird ja immer doller. Das als Vorlage zum Einstieg zu verwenden halte ich wirklich für keine gute Idee. Besonders wenn dann daran festgehalten wird, eventuell bescheuerte Ausgaben beizubehalten.
Meinst Du die Ausgaben von BibTeX? Im Rahmen der vorgesehenen Verwendung der Vorlage passen die eigentlich, da hat die Vorlage einen eigenen BibTeX-/natbib-Stil.
Anonymous hat geschrieben:PS: Das ist für allerhand Akronyme. Z.B. wird jetzt ISBN und DOI eben mit \textls[120] wie von Dir gewünscht gesetzt und nicht in \textsc.

PPS: Ja das ginge wohl so.
Ist es anders gedacht?
Anonymous hat geschrieben:PPPS: Ja für \citep/\parencite geht das wohl so. Für \citet/\textcite zerschießt Du Dir damit etwas die Standardfunktionsiweise bei biblatex, aber seis drum.
Inwiefern? An \textcite habe ich nichts geändert.

Gast

Beitrag von Gast »

Ja, das löscht schon alle numbers. Ich habe so ein bisschen den Überblick verloren, was Du an der Stelle möchtest. Hast Du denn jetzt ein Beispiel für mich, wo etwas schiefgeht, wenn Du den Code nicht einbindest?

PPS: Naja, es ist nicht super schön, das alles in author zu stopfen, denn streng genommen ist das nicht der Autor. Aber da Du erwähntest, dass Deine Vorlage das auch so macht, kannst Du es auch so machen.

PPPS: Ich habe jetzt \citep und \parencite sowie \citet und \textcite jeweils in denselben Topf geworfen, da mit der natbib-Option erstere ein Alias für letztere werden. Wenn Du mit Deinem Code die Ausgabe von \textcite (hast Du ja nicht geändert) und \citet (das hast Du selbst definiert) vergleichst, wird Dir in bestimmten Fällen ein Unterschied auffallen. Zitiere z.B. einen Eintrag mit shorthand oder füge eine pre- oder postnote hinzu mit \citet[cf.][19]{sigfridsson}.

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

Ja, das löscht schon alle numbers. Ich habe so ein bisschen den Überblick verloren, was Du an der Stelle möchtest. Hast Du denn jetzt ein Beispiel für mich, wo etwas schiefgeht, wenn Du den Code nicht einbindest?
Ich bin mir nicht mehr ganz sicher, ob wir von derselben Sache sprechen. ;-) Normalerweise benutze ich in der bib-Datei issue für Journals, wenn es in einem Jahr mehrere Ausgaben gab und ich nicht auf die erste verweise. Das sollte im Verzeichnis meiner Meinung nach drinstehen, die Vorlage läßt das aber weg. Vielleicht hat man auch nur vergessen, es zu berücksichtigen

number habe ich in meinem Beispiel ganz oben für @standard bzw. die DIN benutzt. Da sollte der Eintrag im Verzeichnis mit »DIN8601: « beginnen, gefolgt vom Titel (kursiv). Autor wäre hier vermutlich »DIN«, bin mir aber nicht sicher. »8601« würde ich bei number eintragen.

number wird aber anscheinend auch anstelle von issue benutzt, bei Journals (laut biblatex-Doku, erscheint mir auch logisch: issue = spring, number = 4 für April oder Q4 z.B.).

Deswegen sollten, wenn man sich an das Verhalten der natbib-Vorlage halten will, issue und number bei Journals/@article nicht angezeigt werden, number bei @standard schon. Aussehen sollte es also so wie in meinem MWE, die bib-Datei wäre dann zum Beispiel:
@Standard{DIN8601,
  Title = {Data elements and interchange formats – Information interchange – Representation of dates and times},
  Year = {2006},
  Month = {9},
  Author = {DIN},% ???
  Institution = {DIN},
  Type = {Norm},
  Number = {8601}
}

@Article{Dimpfelmoser2008,
  Title = {Raub einer Kaffeemühle},
  Author = {Alois Dimpfelmoser and Petrosilius Zwackelmann},
  Journal = {J. Kasperl-Seppel},
  Year = {2008},
  Pages = {12576–12693},
  Volume = {191},
  Issue = {2}
}
Vermutlich muß man dafür aber noch mehr an den Drivern rumbasteln.
PPS: Naja, es ist nicht super schön, das alles in author zu stopfen, denn streng genommen ist das nicht der Autor. Aber da Du erwähntest, dass Deine Vorlage das auch so macht, kannst Du es auch so machen.
Ach so, da bezog ich mich auf die Verwendung von \mkbibacro allgemein, ob das so, wie ich es gemacht habe, auch gedacht ist, also daß man es in der bib-Datei in einem Feld als Makro benutzt, oder ob man dort besser keine Makros benutzt.
PPPS: Ich habe jetzt \citep und \parencite sowie \citet und \textcite jeweils in denselben Topf geworfen, da mit der natbib-Option erstere ein Alias für letztere werden. Wenn Du mit Deinem Code die Ausgabe von \textcite (hast Du ja nicht geändert) und \citet (das hast Du selbst definiert) vergleichst, wird Dir in bestimmten Fällen ein Unterschied auffallen. Zitiere z.B. einen Eintrag mit shorthand oder füge eine pre- oder postnote hinzu mit \citet[cf.][19]{sigfridsson}.
\citet ist das \cite aus Deinem Code, ich habe es nur umbenannt. Dieses hier
\citet[s.][5]{key}\\
\textcite[s.][5]{key}\\
\citep[s.][5]{key}\\
\parencite[s.][5]{key}
erzeugt das:
s. [url=http://]Knuth (2017)[/url], S. 5
Knuth (s. 2017, S. 5)
(s. [url=http://]Knuth 2017[/url], S. 5)
(s. Knuth 2017, S. 5)
\parencite und \textcite erzeugen keine Links. Und letzteres setzt prenote an die falsche Stelle, fällt mir gerade auf. Meintest Du, daß ich mit \citet nicht das bekomme, was ich \textcite bekäme (ergo zerschossen)? Mit \citet und \citep bekomme ich jetzt genau das, was ich mit diesen beiden Makros und der Option natbib bekäme (oder?), von den Links evtl. abgesehen.

Mit shorthand kenne ich mich überhaupt nicht aus, das habe ich bis jetzt noch nie benutzt/gehabt.

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

Beitrag von Johannes_B »

Ich bin verwirrt. Du kannst doch nicht einfach Felder missbrauchen und erwarten, dass das Ergebnis stimmt. DIN ist weder Autor, noch ist die Nummer der Norm fur das Feld number bestimmt.

Wo kann man denn die Vorgabe (bst) des Instituts finden? Und wenn es die fertig gibt. warum machst du dir selbst mit biblatex so viel Sorgen?
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.

Gast

Beitrag von Gast »

Also, eigentlich wäre number das korrekte Feld für die Unterteilung eines volumes bei einem Artikel. issue ist für Sonderausgaben mit eigenem Titel oder Text-Title wie 'Sommer', genau wie Du es aus der Doku beschrieben hast.
\AtEveryBibitem{\ifentrytype{article}{clearfield{number}\clearfield{issue}}{}}
löscht beide Felder nur für @article.

Ja, 'DIN' könnte bei der Norm schon der Autor sein. (Ich finde das nicht so knorke, aber seis drum.) Wenn man das wirklich richtig machen will, muss man aber den driver umschreiben. Aber wir hatten uns ja mehr oder weniger darauf geeinigt, dass Du es so machst wie Deine Vorlage.

Generell würde ich versuchen, Makros in der .bib-Datei zu vermeiden. Aber es gibt Situationen, in denen es nicht viel besser geht oder in denen die einzig sinnvolle Sache ist, ein Makro zu verwenden. Hier ist es wohl OK.

Na gut. Ich wollte Dich nur darauf hiweisen, dass mit Deinem Code \citet sich nicht ganz so verhält wie \textcite. Da ich nicht weiß, welche Befehle Du überhaupt verwendest, war das nur ein kleiner Hinweis. Ich weiß nicht, was Deine Vorlage Dir geben würde, aber von der Idee müsste es wohl etwa so aussehen, wie Du es jetzt bekommst.

ehwlt
Forum-Anfänger
Forum-Anfänger
Beiträge: 37
Registriert: Sa 5. Mär 2011, 13:29

Beitrag von ehwlt »

\AtEveryBibitem{\ifentrytype{article}{clearfield{number}\clearfield{issue}}{}}
löscht beide Felder nur für @article.
issue wird bei mir bei Artikeln auch ohne diesen Löschcode nicht angezeigt. Oder anders: Wenn ich in Deinem letzten Beispiel den bib-Eintrag des Artikels um ein Issue-Feld erweitere, erscheint dessen Inhalt nicht im Verzeichnis. number schon, das heißt, ich habe die Wahl, ob ich die Nummer im Verzeichnis haben will oder nicht, perfekt. Journals bezeichnen Ausgabennummern meistens als Issue, nicht als Number.
Generell würde ich versuchen, Makros in der .bib-Datei zu vermeiden. Aber es gibt Situationen, in denen es nicht viel besser geht oder in denen die einzig sinnvolle Sache ist, ein Makro zu verwenden. Hier ist es wohl OK.
Makros in der bib-Datei gefallen mir auch nicht sonderlich. Aber wozu ist \mkbibacro normalerweise dann gedacht? Wie bekommt man etwas wie »DIN« gesperrt (ganz allgemein)?
Na gut. Ich wollte Dich nur darauf hiweisen, dass mit Deinem Code \citet sich nicht ganz so verhält wie \textcite. Da ich nicht weiß, welche Befehle Du überhaupt verwendest, war das nur ein kleiner Hinweis. Ich weiß nicht, was Deine Vorlage Dir geben würde, aber von der Idee müsste es wohl etwa so aussehen, wie Du es jetzt bekommst.
Ich benutze den ganzen Code aus Deinem letzten Beispiel, erweitert um die Sache mit \citet und \citep. Im LaTeX-Dokument verwende ich nur \citet und \citep. Deswegen verstehe ich nicht, inwiefern ich mir eine Funktion von biblatex zerschieße (der Code stammt ja von Dir). \textcite macht ja gerade nicht das, was ich will/brauche.
Johannes_B hat geschrieben:Ich bin verwirrt. Du kannst doch nicht einfach Felder missbrauchen und erwarten, dass das Ergebnis stimmt. DIN ist weder Autor, noch ist die Nummer der Norm fur das Feld number bestimmt.

Wo kann man denn die Vorgabe (bst) des Instituts finden? Und wenn es die fertig gibt. warum machst du dir selbst mit biblatex so viel Sorgen?
Was wäre dann der Autor, und wo schreibt man die Nummer der Norm stattdessen hinein?

Ich erwarte nicht, daß das Ergebnis stimmt. Ich versuche nur von BibTeX auf BibLaTeX umzusteigen und mich weiterhin an eine bestehende Vorlage zu halten, die bei diesen »mißbräulichen« Eingaben ein Ergebnis erzeugt, an das ich mich eben halten soll.

Die Vorlage gibt es nicht online, das ist etwas internes.

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

Beitrag von Johannes_B »

DIN ISO 690 hat im Literaturverzeichnis lediglich die Iso-Nummern und Titel der jeweiligen Standards. Mehr nicht.

Eine Norm oder Regel wird beschlossen. Da gibt es keinen verantworlichen Autor. Das sind Kommitees voll schlauer Leute. Wer ist denn Autor eines Gesetzes oder einer Verordnung? Und wer ist eigentlich Autor des Dudens?


Off-topic:
http://www.rechtschreibrat.com/

EDIT: Und wenn man sich DIN ISO 690 mal anschaut, kann das DIN nicht die Autorenschaft haben, denn ISO 690 wurde unverändert übernommen/übersetzt.
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.

Antworten