Detailanpassungen am Literaturverzeichnis mit biblatex

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Detailanpassungen am Literaturverzeichnis mit biblatex

von domwass » Do 28. Mai 2009, 11:46

Falls die Frage damit für dich beantwortet ist, aktualisiere doch bitte den Status.

Gruß,
Dominik.-

von stevenbu » Do 28. Mai 2009, 10:58

Ah, ok - vielen dank. Ich weiss jetzt wieso es nicht lief... ich lies bibtex nicht laufen (ich dachte, das würde durch "filecontents" erledigt).

nochmals Vielen Dank das hat mir sehr geholfen.
stefan

von domwass » Do 28. Mai 2009, 10:29

stevenbu hat geschrieben:Hier das Minimalbeispiel - wobei das nicht läuft: ich kriege da immer die Meldung "empty bibliography"
\cite{*} gibt es so nicht (BibTeX sucht dann nach einem Eintrag mit dem bibtexkey '*'). Was du suchst, ist \nocite{*}.
(übrigens auch wenn ich das Beispiel von http://biblatex.dominik-wassenhoven.de/ ... ml?de&mini 1:1 kopiere).
Sicher? Hier läuft's.

Folgendes funktioniert:
\documentclass[11pt,twoside]{scrreprt} 

\usepackage{filecontents} 
\begin{filecontents}{\jobname.bib} 
@ARTICLE{CoxReaeration, 
  author = {Cox, B.A.}, 
  title = {A review of dissolve oxygen modelling techniques for lowland rivers}, 
  journal = {The Science of the Total Environment}, 
  year = {2003}, 
  volume = {314}, 
  pages = {303-334}, 
  owner = {stef}, 
  timestamp = {2009.04.01} 
} 

@ARTICLE{DevolAmazon, 
  author = {Allan H. Devol and Bruce R. Forsberg and Jeffrey E. Richey and Tania 
   P. Pementel}, 
  title = {Seasonal variation in chemical distributions in the Amazon (Solimões) 
   River: A multiyear time series}, 
  journal = {Global Biogeochemical Cycle}, 
  year = {1995}, 
  volume = {9}, 
  pages = {307-328}, 
  number = {3}, 
  month = {9}, 
  owner = {stef}, 
  timestamp = {2009.03.27} 
} 
\end{filecontents} 

\usepackage[latin9]{inputenc} 
\usepackage[USenglish]{babel} 
\usepackage[babel]{csquotes} 
\usepackage[
  sorting=nyt,
  style=authoryear,
  natbib=true,
  hyperref=auto
]{biblatex} 
\bibliography{\jobname} 

\DeclareBibliographyDriver{article}{% 
  \usebibmacro{author/editor}% 
  \newunit 
  \usebibmacro{title}% 
  \newunit 
  \usebibmacro{journal}% 
  \setunit*{\addspace}% 
  \printtext{\textbf{\printfield{volume}}}% 
  \iffieldundef{number}{}{\printtext[parens]{\printfield{number}}}%   
  \setunit*{\addcolon}% 
  \printfield{pages}% 
  \usebibmacro{finentry}} 
  
\DeclareFieldFormat{pages}{#1} 

\makeatletter
\renewbibmacro*{author}{%
  \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}}
    {\ifthenelse{\iffieldequals{fullhash}{\bbx@lasthash}\AND
                 \NOT\iffirstonpage}
       {\bibnamedash}
       {\savefield{fullhash}{\bbx@lasthash}%
        \printnames{author}%
	\iffieldundef{authortype}
	  {\setunit{\adddot\space}}% <-- statt \setunit{\addspace}
	  {\setunit{\addcomma\space}}}%
     \iffieldundef{authortype}
       {}
       {\usebibmacro{authorstrg}%
      	\setunit{\addspace}}}%
    {\global\undef\bbx@lasthash
     \usebibmacro{labeltitle}%
     \setunit*{\adddot\space}}% <-- statt \setunit*{\addspace}
  \usebibmacro{year+labelyear}}
\makeatother

\renewbibmacro*{year+labelyear}{%
  \iffieldundef{year}
    {}
    {\printfield{year}%
     \printfield{labelyear}}}
         
\begin{document} 
Dies ist nur ein kleines Testdokument. 
\nocite{*} 
\printbibliography[maxnames=99]% damit alle Namen angezeigt werden
\end{document}
\textbf funktioniert nicht. Sowohl
\printfield{\textbf{volume}}%
als auch
\printtext[textbf]{\printfield{volume}}%
funktionieren nicht :cry: .
Aber folgendes funktioniert:
\printtext{\textbf{\printfield{volume}}}
Das habe ich mir auch gedacht und mir das macro in biblatex.def mal angesehen.
Die bibmacros author und editor werden in authoryear.bbx umdefiniert. Von dort ausgehend habe ich dann die Änderungen eingebaut (siehe Minimalbeispiel oben).

Übrigens: Wenn du style=authoryear angibst, wird automatisch bibstyle und citestyle eingestellt. Die beiden letzten Optionen sind nur dazu gedacht, wenn man in den bibliographischen Angaben im Text und im Literaturverzeichnis jeweils unterschiedliche Stile verwendet (was im Normalfall nicht vorkommt).

Gruß,
Dominik.-

von stevenbu » Do 28. Mai 2009, 09:57

Hallo domwass

Hier das Minimalbeispiel - wobei das nicht läuft: ich kriege da immer die Meldung "empty bibliography" (übrigens auch wenn ich das Beispiel von http://biblatex.dominik-wassenhoven.de/ ... ml?de&mini 1:1 kopiere).
\documentclass[11pt,twoside]{scrreprt}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@ARTICLE{CoxReaeration,
  author = {Cox, B.A.},
  title = {A review of dissolve oxygen modelling techniques for lowland rivers},
  journal = {The Science of the Total Environment},
  year = {2003},
  volume = {314},
  pages = {303-334},
  owner = {stef},
  timestamp = {2009.04.01}
}

@ARTICLE{DevolAmazon,
  author = {Allan H. Devol and Bruce R. Forsberg and Jeffrey E. Richey and Tania
	P. Pementel},
  title = {Seasonal variation in chemical distributions in the Amazon (Solimões)
	River: A multiyear time series},
  journal = {Global Biogeochemical Cycle},
  year = {1995},
  volume = {9},
  pages = {307-328},
  number = {3},
  month = {9},
  owner = {stef},
  timestamp = {2009.03.27}
}
\end{filecontents}

\usepackage[latin9]{inputenc}
\usepackage[USenglish]{babel}
\usepackage[babel]{csquotes}
\usepackage[sorting=nyt,style=authoryear,bibstyle=authoryear,citestyle=authoryear,natbib=true,hyperref=auto]{biblatex}
\bibliography{\jobname}

\DeclareBibliographyDriver{article}{%
  \usebibmacro{author/editor}%
  \newunit
  \usebibmacro{title}%
  \newunit
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \printfield{volume}%
  \iffieldundef{number}{}{\printtext[parens]{\printfield{number}}}%  
  \setunit*{\addcolon}%
  \printfield{pages}%
  \usebibmacro{finentry}}
\DeclareFieldFormat{pages}{#1}

\begin{document}
Dies ist nur ein kleines Testdokument.
\cite{*}
\printbibliography
\end{document}

\textbf funktioniert nicht. Sowohl
\printfield{\textbf{volume}}%
als auch
\printtext[textbf]{\printfield{volume}}%
funktionieren nicht :cry: .

Doch, nur nicht im BibliographyDriver. Aber du kannst ja das bibmacro umdefinieren (mit dem Befehl \renewbibmacro).
Das habe ich mir auch gedacht und mir das macro in biblatex.def mal angesehen.
\newbibmacro*{author/editor}{%
  \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}}
    {\usebibmacro{author}}
    {\usebibmacro{editor}}}
Dort kann ich aber keine Einbindung des Jahres feststellen. Auch die dahinter hängenden Macros
\newbibmacro*{author}{%
  \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}}
    {\printnames{author}%
     \iffieldundef{authortype}
  {}
  		{\addcomma\space
	\usebibmacro{authorstrg}}}
{}}
und
\newbibmacro*{editor}{%
  \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}
    {\printnames{editor}%
     \addcomma\space
     \usebibmacro{editorstrg}%
     \clearname{editor}}
    {}}
zeigen keine Einbindung der Jahreszahl. Leider verstehe ich zu wenig vom Programmieren in LaTeX um mir ein neues Macro zu schreiben (man siehts daran, dass ich keine Ahnung habe welches Makro überhaupt verwendet wird um die Jahreszahl anzuzeigen :?: ). Die Biblatexdokumentation enthält für mich zu wenig (die falschen?) Infos damit ich damit von 0 her ein Makro bauen könnte (obwohl ich vom Umfang der Dokumentation beeindruckt bin). Wenn ich irgendwo eine Liste aller Makros hätte die in biblatex verwendet werden und diese auch analysieren könnte, dann wäre ich glaube ich in der Lage das Problem selber zu lösen.

Besten Dank und Viele Grüsse
stevenbu

Re: Detailanpassungen am Literaturverzeichnis mit biblatex

von domwass » Do 28. Mai 2009, 09:02

stevenbu hat geschrieben:Da die Jahreszahl ja zusammen mit dem Autoren (\usebibmacro{author/editor}) aufgerufen wird, kann ich sie nicht separat steuern.

Doch, nur nicht im BibliographyDriver. Aber du kannst ja das bibmacro umdefinieren (mit dem Befehl \renewbibmacro).
Und wie lautet der Befehl in der "biblatex-Umgebung" für fette Schrift?
\textbf sollte auch mit biblatex funktionieren.

Bau am besten ein vollständiges Minimalbeispiel, dann kann man dir einfacher helfen. Und die bib-Dateien kann man mit Hilfe der filecontents-Umgebung auch in das Minimalbeispiel integrieren.

Gruß,
Dominik.-

Detailanpassungen am Literaturverzeichnis mit biblatex

von stevenbu » Mi 27. Mai 2009, 18:46

Hallo zusammen

Die standardmässige Einstellung von biblatex für den author-year stil entspricht nicht dem was bei meiner Arbeit verlangt ist. (Ist aber der, der dem Soll am nächsten kommt.) Durch Internetrecherche, biblatex.def und biblatex guide studium bin ich schon auf folgendes Resultat gekommen:
\usepackage[sorting=nyt,style=authoryear,bibstyle=authoryear,citestyle=authoryear,natbib=true,hyperref=auto]{biblatex}
\bibliography{Literaturverzeichnis}
\usepackage[USenglish]{babel}
\usepackage[babel]{csquotes}

\DeclareBibliographyDriver{article}{%
  \usebibmacro{author/editor}%
  \newunit
  \usebibmacro{title}%
  \newunit
  \usebibmacro{journal}%
  \setunit*{\addspace}%
  \printfield{volume}%
  \iffieldundef{number}{}{\printtext[parens]{\printfield{number}}}%  
  \setunit*{\addcolon}%
  \printfield{pages}%
  \usebibmacro{finentry}}
\DeclareFieldFormat{pages}{#1}
Das ergibt mir folgenden zum Beispiel den folgenden Output:

Wiegner, T. N. and S. P. Seitzinger (2004). Seasonal bioavailability of dissolved organic carbon and nitrogen from pristine and polluted freshwater wetlands. Limnology and Oceanography 49:1703-1712.

Nun ist es aber so, dass folgendes verlangt wird:

Wiegner, T. N. and S. P. Seitzinger. 2004. Seasonal bioavailability of dissolved organic carbon and nitrogen from pristine and polluted freshwater wetlands. Limnology and Oceanography 49:1703-1712.

also sollen die Klammern bei der Jahreszahl raus und dafür ein Punkt nach den Autoren rein. Zudem sollte die Ausgabenummer des Journals fett geschrieben sein.
Da die Jahreszahl ja zusammen mit dem Autoren (\usebibmacro{author/editor}) aufgerufen wird, kann ich sie nicht separat steuern. Weiss da jemand Hilfe? Und wie lautet der Befehl in der "biblatex-Umgebung" für fette Schrift?

Besten Dank
stevenbu

Nach oben