BibLaTex APA Groß-/Kleinschreibung und Datumformat

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


sla89
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 3. Mai 2015, 12:31

BibLaTex APA Groß-/Kleinschreibung und Datumformat

Beitrag von sla89 »

Hallo,

ich arbeite derzeit an meiner Masterarbeit und habe ein paar Probleme mit BibLaTex mit Biber und dem APA Stil.

Im Literaturverzeichnis verliere ich die Groß-/Kleinschreibung. Lässt sich das irgendwie umgehen? Ich habe gelesen, dass man das mit {} aushebeln kann, doch ich hoffe, dass es einen anderen Weg gibt, da ich über 120 Quellen habe...
Weiters habe ich den Term o.D. (ohne Datum) durch o.J. (ohne Jahr) ersetzt. Auch hier wird das "J" im Literaturverzeichnis klein geschrieben.

Ich habe auch das Problem, dass die Monate und Tage bei einer Quellenangabe mitangegeben werden im Literaturverzeichnis:
Bluetooth SIG Inc. (2014, 2. Dezember)
Wie kann ich das umgehen? Ich verwende in meinem Bib-File ausschließlich das Feld date und nicht year, month und day. Kann ich diese Ausgabe dennoch formatieren? Mit dem folgenden ließen sich die Monate und Tage entfernen, doch ich habe das date Feld genutzt... geht das trotzdem irgendwie?
\AtEveryBibitem{
  \clearfield{labelmonth}
  \clearfield{labelday}
}
Hier ein Minibeispiel:
\begin{filecontents}{\jobname.bib} 
@online{ieee_ieee_2003,
	title = {{802.15.3}},
	url = {http://standards.ieee.org/getieee802/download/802.15.3-2003.pdf},
	author = {{IEEE}},
	urldate = {2015-05-18},
	date = {2003-09-29}
}

@online{ieee_ieee_????,
	title = {{IEEE} 802},
	url = {http://www.ieee802.org/},
	author = {{IEEE}},
	urldate = {2015-05-17}
}

@online{ieee_ieee_????-a,
	title = {{IEEE} 802 Standards},
	url = {http://standards.ieee.org/},
	author = {{IEEE}},
	urldate = {2015-05-02}
}

\end{filecontents} 

\documentclass[bibliography=totoc]{scrartcl} 
\usepackage[ngerman]{babel} % language
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}% Recommended
\usepackage[
	style=apa,
	backend=biber,
	maxcitenames=1,
	url=true
]{biblatex}

\DeclareLanguageMapping{ngerman}{ngerman-apa}
\NewBibliographyString{from}
\NewBibliographyString{retrieved}
\NewBibliographyString{nodate}
\DefineBibliographyStrings{ngerman}{
	bibliography = {Literaturverzeichnis},
  andothers ={et\addabbrvspace al\adddot},
  andmore   ={et\addabbrvspace al\adddot},
	from = {Online\space im\space Internet:},
	retrieved = {Zugriff\space am:},
	nodate = {o\adddot\space {J}\adddot}
}
\addbibresource{\jobname.bib}%jobname NICHT ersetzen 
\begin{document} 

\cite{ieee_ieee_2003}

\cite{ieee_ieee_????}

\cite{ieee_ieee_????-a}

\printbibliography 
\end{document} 
Ausgabe:
Bild



Vielen herzlichen Dank und schöne Grüße,
Stefan[/img]

nixversteh
Forum-Meister
Forum-Meister
Beiträge: 555
Registriert: Di 10. Aug 2010, 09:47
Wohnort: Wrestedt

..........

Beitrag von nixversteh »

Hallo Stefan,

füge mal diesen Code ein:
\DeclareFieldFormat{apacase}{#1}
Viel Erfolg
Gruß

Martin
Absence of evidence is not evidence of absence

sla89
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 3. Mai 2015, 12:31

Beitrag von sla89 »

Hallo Martin,

spitze - danke! Das brachten den gewünschten Effekt!

Bzgl. der anderen Probleme:

ich habe jetzt alle Quellen angepasst und nutze nur noch year - somit ist die Ausgabe schön und auch mehr als ausreichend.

Das Problem mit o.j. bestand weiterhin. Ich kann es allerdings umgehen, indem ich bei den Quellen ohne Jahr folgendes hinzufüge:
year = {{o.J.}}
Somit sind alle Probleme behoben.

Danke :)

Gast

Beitrag von Gast »

Ich denke Du hast hier ein kleines Problem in biblatex-apa aufgetan. In den DefineBibliographyExtras{ngerman} wird in den Datumsmakros immer \biblcstring verwendet und so wird der String "o. J." immer in kleine Buchstaben umgewandelt. Das sollte nicht passieren. Die Definition von DefineBibliographyExtras{ngerman} ist im Dokument gar nicht so leicht zu ändern, Du könntest eine eigene .lbx-Datei erstellen und die Änderungen dort vornehmen.
Ich habe einen Bugreport erstellt https://github.com/plk/biblatex-apa/issues/10

sla89
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 3. Mai 2015, 12:31

Beitrag von sla89 »

Oh - interessant :)

Dass das sonst noch niemandem aufgefallen ist, wundert mich. Ich bin ja nicht der Erste, der APA verwendet. :lol:

Vielen Dank - ich werde mir das mit der eigenen lbx-Datei ansehen. :)
Wäre definitiv die saubere Lösung.

Gast

Beitrag von Gast »

Die Frage ist natürlich wie viele Menschen, die biblatex-apa auf deutsch verwenden dann auch noch Quellen dabeihaben, die kein Datum aufweisen können.

Für deine eigene .lbx-Datei kannst du ngerman-apa.lbx kopieren und umbenennen in ngerman-sla.lbx zum Beispiel, dann solltest Du den Header anpassen in dem \DeclareBibliographyStrings-Teil kannst Du Deine \DefineBibliographyStrings umtopfen (jetzt hast Du sogar die Möglichkeit, zwischen abgekürzter und voller Version zu unterscheiden).

In dem DefineBibliographyExtras-Teil musst Du dann alle Instanzen von \biblcstring durch \bibstring austauschen.

In etwa so:
\ProvidesFile{ngerman-sla.lbx}[2015/07/23 revised APA biblatex localisation]
\InheritBibliographyExtras{ngerman}

% (APA 6.22) The example abbreviations

\NewBibliographyString{revisededition}
\NewBibliographyString{typechair}
\NewBibliographyString{typechairs}
\NewBibliographyString{typevolume}
\NewBibliographyString{typevolumes}
\NewBibliographyString{typeseries}
\NewBibliographyString{typeseriess}
\NewBibliographyString{typevolseries}
\NewBibliographyString{typevolseriess}
\NewBibliographyString{on}
\NewBibliographyString{retrieved}
\NewBibliographyString{available}
\NewBibliographyString{from}
\NewBibliographyString{archivedat}
\NewBibliographyString{origyear}
\NewBibliographyString{reviewof}
\NewBibliographyString{producer}
\NewBibliographyString{execproducer}
\NewBibliographyString{director}
\NewBibliographyString{writer}
\NewBibliographyString{with}

\DeclareBibliographyStrings{%
  inherit          = {ngerman},
  bibliography = {Literaturverzeichnis},
  andothers ={et\addabbrvspace al\adddot},
  andmore   ={et\addabbrvspace al\adddot},
  from = {Online\space im\space Internet:},
  retrieved = {Zugriff\space am:},
  nodate = {o\adddot\space {J}\adddot}
  revisededition   = {{\"Uberarbeitete\space Auflage}{\"Uberarb\adddot\space Aufl\adddot}},
  producer         = {{Produzent}{Produzent}},
  execproducer     = {{Produzent}{Produzent}},
  director         = {{Regisseur}{Regisseur}},
  writer           = {{Schriftsteller}{Schriftsteller}},
  with             = {{mit}{mit}},
  page             = {{Seite}{{}S\adddot}},
  pages            = {{Seiten}{{}S\adddot}},
  on               = {{am}{am}},
  available        = {{Erh\"altlich}{Erh\"altlich}},
  archivedat       = {{archiviert\space unter}{archiviert\space unter}},
  reviewof         = {{Rezension\space des}{Rezension\space des}},
  paragraph        = {{\P}{\P}},
  paragraphs       = {{\P\P}{\P\P}},
  origyear         = {{Original\space ver\"offentlicht}{Original\space ver\"offentlicht}},
  typechair        = {{Konferenzstuhl}{Konferenzstuhl}},
  typechairs       = {{Konferenzst\"uhle}{Konferenzst\"uhle}},
  typevolume       = {{Band\space Herausgeber}{Bd\adddot\space Hrsg\adddot}},
  typevolumes      = {{Band\space Herausgeber}{Bd\adddot\space Hrsg\adddot}},
  typeseries       = {{Reihe\space Herausgeber}{Reihe\space Hrsg\adddot}},
  typeseriess      = {{Reihe\space Herausgeber}{Reihe\space Hrsg\adddot}},
  typevolseries    = {{Reihe\space und\space Band\space Herausgeber}{Reihe\space\& Bd\adddot\space Hrsg\adddot}},
  typevolseriess   = {{Reihe\space und\space Band\space Herausgeber}{Reihe\space\& Bd\adddot\space Hrsg\adddot}},
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (APA 7.10 Example 68) Drop end* when they are the same as *

% You must use \printdate to get here otherwise it will be ignored
\DefineBibliographyExtras{ngerman}{%
  \protected\def\mkbibdateapalong#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addspace}}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongextra#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}\printfield{extrayear}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addspace}}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongmdy#1#2#3{%
    \iffieldundef{#3}%
      {}%
      {\stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}%
        {}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}%
    \iffieldundef{#1}%
      {}%
      {\iffieldundef{#2}%
        {}%
        {\addspace}%
       \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}}}


%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\endinput
In Deinem Dokument nutzt Du jetzt natürlich nicht mehr \DeclareLanguageMapping{ngerman}{ngerman-apa} sondern \DeclareLanguageMapping{ngerman}{ngerman-sla}.

sla89
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: So 3. Mai 2015, 12:31

Beitrag von sla89 »

Habe ich so übernommen und noch ein wenig angepasst :)

Vielen, vielen herzlichen Dank. :)

Gast

Beitrag von Gast »

Das Problem, dass der bibstring automatisch in kleine Buchstaben umgewandelt wurde, ist inzwischen behoben https://github.com/plk/biblatex-apa/issues/10 und sollte in der nächsten Version von biblatex-apa nicht mehr auftreten.

Das macht die eigene .lbx-Datei dann überflüssig. Mir ist übrigens eingefallen, dass ein inkrementeller Aufbau auf ngerman-apa.lbx vielleicht die bessere Lösung ist.
\ProvidesFile{ngerman-apas.lbx}[2015/07/25\space enhanced APA localisation for ngerman]
\InheritBibliographyExtras{ngerman-apa}

\DeclareBibliographyStrings{%
  inherit           = {ngerman-apa},
  bibliography      = {{Literaturverzeichnis}{Literaturverzeichnis}},
  andothers         = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
  andmore           = {{et\addabbrvspace al\adddot}{et\addabbrvspace al\adddot}},
  from              = {{Online\space im\space Internet:}{Online\space im\space Internet:}},
  retrieved         = {{Zugriff\space am:}{Zugriff\space am:}},
  nodate            = {{ohne Jahr}{{}o\adddot\space {J}\adddot}},
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (APA 7.10 Example 68) Drop end* when they are the same as *

% You must use \printdate to get here otherwise it will be ignored
\DefineBibliographyExtras{ngerman}{%
  \protected\def\mkbibdateapalong#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addspace}}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongextra#1#2#3{%
    \iffieldundef{#1}%
      {}%
      {\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}\printfield{extrayear}}%
    \iffieldundef{#3}%
      {}%
      {\iffieldundef{#1}%
        {}
        {\addcomma\addspace}%
       \stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}
        {\iffieldundef{#1}
          {}
          {\addspace}}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}}%
  \protected\def\mkbibdateapalongmdy#1#2#3{%
    \iffieldundef{#3}%
      {}%
      {\stripzeros{\thefield{#3}}}%
    \iffieldundef{#2}%
      {}%
      {\iffieldundef{#3}%
        {}%
        {\adddot\addspace}%
       \mkbibmonth{\thefield{#2}}}%
    \iffieldundef{#1}%
      {}%
      {\iffieldundef{#2}%
        {}%
        {\addspace}%
       \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\thefield{#1}}}}}


%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\endinput
sollte es in der Zwischenzeit auch tun, wobei mit der nächsten Version der \DefineBibliographyExtras{ngerman} überflüssig werden wird.

Antworten