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 »

Johannes_B hat geschrieben:DIN ISO 690 hat im Literaturverzeichnis lediglich die Iso-Nummern und Titel der jeweiligen Standards. Mehr nicht.
Jahr? Monat? Oder auch das:
Johannes_B hat geschrieben:Eine Norm oder Regel wird beschlossen. Da gibt es keinen verantworlichen Autor. Das sind Kommitees voll schlauer Leute.
Etwas ähnliches hätte ich auch beinahe geschrieben. Aber das Kommitee könnte ja auch im Verzeichnis genannt werden.

Gib doch mal ein Beispiel für einen bib-Eintrag einer Norm. Ich habe ein wenig herumgesucht und nicht viel gefunden. Überall wird das Number-Feld für die Nummer der DIN oder ISO-Norm benutzt
Johannes_B hat geschrieben: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.
Dann gibt es bei Normen eben kein Autor-Feld. Nochmal die Frage: Was gibt es stattdessen?
Johannes_B hat geschrieben:Wer ist denn Autor eines Gesetzes oder einer Verordnung? Und wer ist eigentlich Autor des Dudens?
Ui, das sind aber jetzt zwei ganz andere Fässer, vor allem das mit den Gesetzen (Stichwort »unverändert übernommen«), die machen wir lieber nicht auf.
Johannes_B hat geschrieben:Off-topic:
http://www.rechtschreibrat.com/
Was möchtest Du mir damit mitteilen?

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

Beitrag von Johannes_B »

Der Rechtschreibrat gibt die Wortliste raus, welche von verschiedenen Herausgebern für die deutsche Rechtschreibung genutzt wird. Egal ob Duden oder das Billigding vom ALDI für zwei Euro.


Die Frage ist: Gehört das Arbeiten/Forschen/Experimentieren nach DIN irgendwie ins Literaturverzeichnis? Sind das Quellen, welche deine Arbeit nachvollziehbar machen, oder reicht es eine Anmerkung dazu im Text zu schreiben?

Die Erfassung der xyz-Werte wurde nach den Standards von DIN abc durchgeführt.

Jahr oder Monat? Keine Angabe in der DIN (oder ISO) über Richtlinien für Titelangaben und Zitierung von Informationsquellen

Komitee?
ISO/TC 46 "Information and documentation", Unterkomitee C 9 "Identification and description" [...]
Es ist Samstag Abend, deshalb: Das juckt keinen.

Arbeiten nach DIN/Regel. Sehr schön. Punkt.
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.

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

Beitrag von ehwlt »

Naja, ich könnte jetzt sagen: Arbeiten nach Vorlage. Egal ob schön. Punkt.

Ich will ja auch nur Nummer, Titel und Datum der Norm/Empfehlung/sonstwas im Verzeichnis haben, damit man als Leser nicht erst das Internet oder was auch immer anwerfen und nachsehen muß, wenn man nur grob wissen will, um was es geht. Das ist ein Detail der Vorlage, das ich für sinnvoll halte.

Gast

Beitrag von Gast »

Achje, da ist das eigentliche Problem nach knapp einer Seite gelöst und jetzt diskutieren wir schon seit anderthalb Seiten über minimale Details. Aber der Reihe nach

Ich habe auf https://gist.github.com/moewew/a835a208 ... 46239e26b2 jetzt eine andere Methode verwendet, um number loszuwerden.
\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit{\addcomma\space}%
  \printfield{eid}}
Dazu habe ich zwar ein weiteres Makro umdefinieren müssen, aber darauf kam es jetzt auch nicht mehr an. Wie Du erkannt hast, wurde issue aufgrund vorheriger Änderungen an der Datumsausgabe eh nicht ausgegeben.
(Wie bereits erwähnt, würde ich issue= {2} übrigens eher für falsch halten und stattdessen number = {2} erwarten. Da ist es übrigens egal, wie die Journals selbst das bezeichnen, wichtig ist, wie die Datenstruktur von biblatex/BibTeX das bezeichnet, und das ist nunmal number obwohl 'issue' vielleicht geläufiger wäre.)

Mit \mkbibacro setzt biblatex Akronyme. Z.B. finden wir es in biblatex.def:
\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1}
\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1}
\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1}
Die Standarddefinition ist
\newcommand*{\mkbibacro}[1]{%
  \ifcsundef{\f@encoding/\f@family/\f@series/sc}
    {#1}
    {\textsc{\MakeLowercase{#1}}}}
aber da Du \textls nutzt habe ich das umdefiniert.
Es steht Dir frei, dieses Makro auch für die Auszeichnungen von Akronymen in der .bib-Datei zu verwenden. (Mit dem caveat, dass Deine Datei dann biblatex voraussetzt.)
Akronyme sperrt TeX für Dich nur, wenn Du es ihm sagst. Ideal ist es, nicht \textls[120]{FOO} zu sagen, sondern ein Makro zu definieren, das du später ändern kannst. Deshalb macht biblatex das ja auch so.

Ich werfe, wie erwähnt, mental \citet und \textcite und \citep und \parencite zusammen. Wie ebenfalls schon erwähnt, gibt es die Kurzformen \citet und \citep bei biblatex standardmäßig nicht und die langen Formen sind ihre Äquivalente. Wenn Du aber die natbib-Kompatibilitätsoption lädst, dann werden die Kurzformen Alias für die Langformen. Ich wollte darauf hinweisen, dass Deine Definition von \citet Dir nun eine prinzipiell andere Ausgabe gibt als \textcite. Die Funktion, die Du Dir da zerschießt ist unter anderem, dass die prenote mit Deiner Definition nicht in die Klammer bewegt wird. (Das kann man gut finden oder nicht.) Da ich davon ausging, dass Dein \citet bei Dir der am häufigsten genutzte Befehl ist, habe ich ihn daher \cite genannt - so sparen wir uns einen Buchstaben und ich komme nicht in den gedanklichen Konflikt, \textcite zu ändern.

Zu der Sache mit den Normen: Wenn man dass wirklich vernünftig lösen wollte, müsste man - wie gesagt - einen eignen Driver neu schreiben. Je nach den dort verwendeten Feldnamen (darf 'DIN' wirklich author sein, oder sollte es type sein, oder was ganz Neues?) müssten dann eventuell das Sortierschema und die Zitatbefehle angepasst werden. Das ist es mir jetzt eher nicht wert, besonders wenn die Vorlage auch schummelt und Du Normen nicht so häufig zitierst.
Mit der aktuellen Version funktioniert aber nur die @misc-Lösung wirklich gut. @standard fällt auf einen 'fallback driver' zurück, der nur mit Glück erträgliche Resultate liefert.

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

Beitrag von ehwlt »

Ich glaube, bei meiner Erweiterung des makeat-Teils kann man \newbibmacro*{cite:labelyear+extrayear} weglassen, das scheint es bereits in einer Form zu geben, in der es tut, was ich möchte.
Da ist es übrigens egal, wie die Journals selbst das bezeichnen, wichtig ist, wie die Datenstruktur von biblatex/BibTeX das bezeichnet, und das ist nunmal number obwohl 'issue' vielleicht geläufiger wäre.)
Auch wieder wahr.
Anonymous hat geschrieben:Mit \mkbibacro setzt biblatex Akronyme. Z.B. finden wir es in biblatex.def:
\DeclareFieldFormat{isbn}{\mkbibacro{ISBN}\addcolon\space #1}
\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addcolon\space #1}
\DeclareFieldFormat{issn}{\mkbibacro{ISSN}\addcolon\space #1}
Die Standarddefinition ist
\newcommand*{\mkbibacro}[1]{%
  \ifcsundef{\f@encoding/\f@family/\f@series/sc}
    {#1}
    {\textsc{\MakeLowercase{#1}}}}
aber da Du \textls nutzt habe ich das umdefiniert.
Okay, ich hatte nur nicht geschnallt, daß \mkbibacro von biblatex in Definitionen verwendet wird, aber ist eigentlich klar.
Akronyme sperrt TeX für Dich nur, wenn Du es ihm sagst. Ideal ist es, nicht \textls[120]{FOO} zu sagen, sondern ein Makro zu definieren, das du später ändern kannst. Deshalb macht biblatex das ja auch so.
Ich würde mir dann also einen Typ samt Driver schreiben, der nicht den String »DIN« aus einem bib-Eintrag/-Feld übernimmt und ausgibt, sondern an einem solchen String erkennt, daß es das entsprechende Makro ausführen soll? Also in etwa so:
% dbx-Datei
\DeclareDatamodelEntrytypes{stdnormrecthing}% "StdNormRecThing" funktioniert nicht

\DeclareDatamodelFields[type=field,datatype=literal]{institution,doctype}

\DeclareDatamodelFields[type=field,datatype=integer]{docnumber}

\DeclareDatamodelEntryfields[stdnormrecthing]{institution,doctype,docnumber}

% bib-Datei
@stdnormrecthing{DIN8601,
  title = {Data elements and interchange formats – Information interchange – Representation of dates and times},
  year = {2006},
  month  = {9},
  doctype = {DIN},
  docnumber = {8601},
  shorthand = {\textls[120]{DIN}\,8601}
}

% Stil
\DeclareFieldFormat{doctype}{\mkbibacro{#1}}% ???

\newbibmacro{doctype+docnumber}{% ohne Überprüfung, ob in den Feldern etwas eingetragen wurde
  \printfield{doctype}%
  \setunit*{\addnbthinspace}
  \printfield{docnumber}
}

\DeclareBibliographyDriver{stdnormrecthing}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{doctype+docnumber}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{title}%
  \newblock% ???
  \usebibmacro{docdate}% oder etwas in der Art, müßte man noch definieren
  \usebibmacro{finentry}}
Was jetzt noch nicht besonders ausgefeilt ist und doch wieder \textls[120]{FOO} benutzt, aber dafür nur für shorthand.
Ich werfe, wie erwähnt, mental \citet und \textcite und \citep und \parencite zusammen. Wie ebenfalls schon erwähnt, gibt es die Kurzformen \citet und \citep bei biblatex standardmäßig nicht und die langen Formen sind ihre Äquivalente.
Sie machen aber glaube ich nicht exakt dasselbe.
Wenn Du aber die natbib-Kompatibilitätsoption lädst, dann werden die Kurzformen Alias für die Langformen. Ich wollte darauf hinweisen, dass Deine Definition von \citet Dir nun eine prinzipiell andere Ausgabe gibt als \textcite.
Ich will ich ja auch etwas anderes (was die Verlinkung durch Hyperref angeht).
Die Funktion, die Du Dir da zerschießt ist unter anderem, dass die prenote mit Deiner Definition nicht in die Klammer bewegt wird. (Das kann man gut finden oder nicht.)
Ich bin bis jetzt davon ausgegangen, prenote sei für Dinge wie »siehe« oder »u. a.«. Wenn das in die Klammer wandert, steht es vor der Jahreszahl, nicht mehr vor dem gesamten Verweis (s.o.). In welchen Fällen sollte es denn in die Klammer wandern?

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

Beitrag von ehwlt »

Jetzt ist mir ein sprichwörtlich sehr kleines aber für Leute mit typografischem Tick, wie mir, wichtiges Detail aufgefallen, von dem ich nicht weiß, wie man es ändert:

Wenn im Literaturverzeichnis steht »Mittelbach, F.: The LaTeX Companion. 2. Auflage (Addison Wesley, Boston 2004)«, dann sollte der Punkt nach dem Titel ebenfalls kursiv gesetzt werden.

Dafür ist zunächst dieser Code-Block zuständig:
\DeclareBibliographyDriver{book}{%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/editor+others/translator+others}%
  \setunit{\printdelim{nametitledelim}}\newblock
  \usebibmacro{maintitle+title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \printfield{edition}%
  \newunit
  \iffieldundef{maintitle}
    {\printfield{volume}%
     \printfield{part}}
    {}%
  \newunit
  \printfield{volumes}%
  \newunit\newblock
  \usebibmacro{series+number}%
  \newunit\newblock
  \printfield{note}%
  \newunit\newblock
  \usebibmacro{chapter+pages}%
  \newunit\newblock
  \usebibmacro{publisher+location+date}%
  \newunit
  \printfield{pagetotal}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{isbn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate}%
  \setunit{\bibpagerefpunct}\newblock
  \usebibmacro{pageref}%
  \newunit\newblock
  \iftoggle{bbx:related}
    {\usebibmacro{related:init}%
     \usebibmacro{related}}
    {}%
  \usebibmacro{finentry}}
Ich vermute, daß darin nur \usebibmacro{maintitle+title}\newunit für das setzen des Buchtitels verantwortlich ist. Mir ist aber noch nichtmal klar, wodurch der Titel bei Büchern kursiv gesetzt wird, bei Artikeln aber nicht. \newunit setzt wohl den Punkt, aber leider unabhängig vom Schriftstil usw. des Titels. Muß man \newunit umdefinieren?

PS: Da lag ich schonmal falsch. In meinem Beispielverzeichniseintrag oben ist \printfield{edition} für den Punkt verantwortlich. Zwischen diesem Makro und dem Titel gibt es noch drei andere Makros, die Punkte setzen, wenn die entsprechenden Felder in der bib-Datei nicht leer sind. Das ist jetzt etwas blöd, daß die Makros sich um die Trennzeichen zu vorangehendem und nicht zu nachfolgendem Text kümmern. Der Grund leuchtet mir ein, glaube ich, aber wie kann man das ändern?

Gast

Beitrag von Gast »

Es gibt die Option punctfont. Mit punctfont=true übernimmt die Zeichensetzung die Schrift des vorangegangenen Text. Das ist also was Du möchtest.

Nun hast Du fette volumes. Wenn Du danach aber kein fettes Komma möchtest, brauchen wir statt \DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}
\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}\setpunctfont{}}
oder
\DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}}
Ich habe leider ein bisschen den Überblick verloren, wie Dein Code aussieht und da Du kein Minimalbeispiel geliefert hast, habe ich auch keins und habe nicht viel getestet, aber das sollte die Idee sein.

In Latin Modern finde ich den kursiven und aufrechten Punkt übrigens hinreichen ähnlich und klein genug, dass mich zumindest das nicht stört.

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

Beitrag von ehwlt »

Perfekt, vielen Dank. Ich habe zwar den Eindruck, daß der Punkt in einer eigenen Gruppe o.ä. gesetzt wird, wodurch kein Kerning zum vorangegangenen Wort stattfindet, aber das dürfte nicht so leicht zu ändern sein.

Gast

Beitrag von Gast »

Ich will insbesondere im Licht von https://github.com/plk/biblatex/issues/598 nicht ganz ausschließen, dass das Kerning nicht ganz in Ordnung ist. Bin mir nicht ganz sicher, was hier mit der italic correction passiert. Das könnte den Eindruck auch etwas ändern.

Ich weiß nicht, ob sich das alles so leicht ändern lässt. Der Bug aus dem Link zumindest ist so ohne Weiteres nicht so leicht zu beheben. Die Maschinerie die punctfont aufbaut, um zu tun, was es tut, ist übrigens bei Weitem nicht ohne. Obwohl es vielleicht nach einer einfachen Aufgabe klingt, sind bei automatischen Systemen manchmal ziemlich komplizierte Implementationen nötig, um sie zu lösen.

Antworten