biblatex - diverse Anpassungen

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: biblatex - diverse Anpassungen

von pauabaer » So 17. Jul 2016, 22:05

Wahnsinn. Vielen Dank für deine Hilfe!

Gruß
pauabaer

von Gast » So 17. Jul 2016, 14:47

Gut, dann musst Du den Stil wieder zurück zu authoryear-icomp ändern.

Die Billiglösung ist dann
% ad 2
\makeatletter
\AtEveryCitekey{\global\undef\blx@lastkey@text}
\makeatother
Du kannst aber auch die etwas komplexere, aber vielleicht konzeptionell schönere Lösung von ibidem only in the footnotes and not in the running text nehmen.
In etwas abgewandelter Form:
\makeatletter
\def\blx@opt@ibidtracker@foot{%
  \let\blx@imc@ifciteibid\blx@ifciteibid@foot
  \let\blx@ibidtracker\blx@ibidtracker@context
  \let\blx@ibidreset\blx@ibidreset@context
  \booltrue{citetracker}}

\def\blx@ifciteibid@foot{%
  \ifbool{citetracker}
    {\iftoggle{blx@footnote}
       {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
       {\@secondoftwo}}
    {\@secondoftwo}}
\makeatother
und dann
ibidtracker=foot,% ad 2
als biblatex-Ladeoption
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Bohrs.1967,
  keywords  = {Bucher},  
  author    = {B{\"o}hrs, Hermann},
  year      = {1967},
  title     = {Arbeitsstudien in der Betriebswirtschaft},
  address   = {Wiesbaden},
  publisher = {Gabler Verlag},
}

@book{Bohrs.1970,
  keywords  = {Bucher},  
  author    = {B{\"o}hrs, Hermann},
  year      = {1970},
  title     = {Was soll man machen?},
  address   = {Wiesbaden},
  publisher = {Gabler Verlag},
}

@article{Drees.1980,
  keywords = {Artikel},
  author   = {Drees, Gerhard and Sommer, Hans and Eckert, Gerhard},
  year     = {1980},
  title    = {Zweckm{\"a}{\ss}iger Einsatz von Turmdrehkranen auf Hochbaustellen},
  pages    = {822--843},
  number   = {12},
  journal  = {Baumaschine + Bautechnik},
}
\end{filecontents}


\documentclass{article}
\usepackage[ngerman]{babel}          
\usepackage[utf8]{inputenc}      
\usepackage[T1]{fontenc}          
\usepackage{lmodern}            

\usepackage[autostyle]{csquotes}


% ad 2
\makeatletter
\def\blx@opt@ibidtracker@foot{%
  \let\blx@imc@ifciteibid\blx@ifciteibid@foot
  \let\blx@ibidtracker\blx@ibidtracker@context
  \let\blx@ibidreset\blx@ibidreset@context
  \booltrue{citetracker}}

\def\blx@ifciteibid@foot{%
  \ifbool{citetracker}
    {\iftoggle{blx@footnote}
       {\blx@imc@iffieldequals{entrykey}\blx@lastkey@foot}
       {\@secondoftwo}}
    {\@secondoftwo}}
\makeatother

\usepackage[
  isbn=false,
  style=authoryear-icomp,
  backend=bibtex,
  giveninits=true,
  dashed=false, % ad 3
  ibidtracker=foot,% ad 2
]{biblatex}


\addbibresource{\jobname.bib}

\renewcommand*{\nameyeardelim}{\addspace}  
\renewcommand*{\newunitpunct}{\addcomma\space}  

\renewbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
  {}
  {\printtext[bibhyperref]{%
     \printtext[parens]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}}

\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \setunit*{\addcomma\space}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit}

\usepackage{xpatch}
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\renewcommand*{\labelnamepunct}{\mkbibbold{\addcolon\space}}

% ad 1
\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}%
}

\DeclareNameAlias{sortname}{family-given}


\begin{document}
\cite{Drees.1980} und \cite{Drees.1980} und \cite{Drees.1980}

\cite{Bohrs.1967} \cite{Bohrs.1970}

Lorem\footcite{Bohrs.1967} ipsum\footcite{Bohrs.1970} dolor\footcite{Bohrs.1970}

\cite{Bohrs.1967} \cite{Bohrs.1970}

\printbibheading[title=Quellenverzeichnis]
\printbibliography[keyword=Bucher,heading=subbibliography,title={Monographien, Sammelwerke}]
\printbibliography[keyword=Artikel,heading=subbibliography,title={Artikel in Fachzeitschrift}]  
\end{document}

von pauabaer » Sa 16. Jul 2016, 23:02

Guten Abend,

vielen Dank für die Anpassungen!!
Bis auf Punkt 2 soweit alles wie ich mir das Wünsche. Danke!

Bei Punkt 2 habe ich mich gestern nicht eindeutig ausgedrückt.

In meiner Arbeit gebe ich Quellen mit \footcite an. Hierfür würde ich gerne das ebd. anzeigen lassen. Nur nicht wenn ich mal im Fließtext eine Quelle angebe. Hier sollen die Autoren immer, egal ob die Quelle bereits vorher in einer Fußnote aufgeführt wurde, ausgeschrieben (wie von dir angepasst) werden.
Mit den derzeitigen Anpassungen verschwinden leider auch die ebd.-Verweise in den Fußnoten.

Gibt es hierfür eine Möglichkeit?

Gruß
pauabaer

von Gast » Sa 16. Jul 2016, 11:30

Dein Beispiel läuft bei mir mit einer aktuellen biblatex-Version (v3.4) nicht mehr. Ersetze den \DeclareNameFormat{sortname}-Block durch die Zeile
\DeclareNameAlias{sortname}{family-given}
das Ergebnis sollte dasselbe sein, aber es ist kürzer und funktioniert mit allen Versionen >= v3.3.
Beachte auch, dass in Bohrs.1970 ein Komma fehlte.
Die Option firstinits heißt seit Version 3.3 giveninits.
Ich habe mir die Freiheit genommen, cite:labelyear+extrayear ein bisschen anzupassen (\printtext[parens] statt \mkbibparens). Wenn Du auf diese Art und Weise Klammern in Deine Zitate einführst, bekommst Du aber doppelte Klammern bei \textcite. Vielleicht hättest Du einfach ohne Modifikationen \textcite statt \cite nutzen wollen.

Ad 1: Mit
\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}%
}
statt
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\multinamedelim}
bekommst Du Kommas und "und" in den Zitaten und Semikolons im Literaturverzeichnis.
Wenn Du nur
\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
}
nutzt, bekommst Du Semikolons und "und" im Literaturverzeichnis.
(Vorher wolltest Du doch explizit kein "und", oder?)

Ad 2: Nutze den Stil authoryear-comp statt authoryear-icomp, dann musst Du die Option ibidpage löschen, die ist dann nämlich nicht mehr definiert. (Das i in der Bezeichnung des Stils steht für ibid das ist die englische/lateinische Version von "ebd.".)

Ad 3: Die Option dashed=false sollte das können.
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Bohrs.1967,
  keywords  = {Bucher},  
  author    = {B{\"o}hrs, Hermann},
  year      = {1967},
  title     = {Arbeitsstudien in der Betriebswirtschaft},
  address   = {Wiesbaden},
  publisher = {Gabler Verlag},
}

@book{Bohrs.1970,
  keywords  = {Bucher},  
  author    = {B{\"o}hrs, Hermann},
  year      = {1970},
  title     = {Was soll man machen?},
  address   = {Wiesbaden},
  publisher = {Gabler Verlag},
}

@article{Drees.1980,
  keywords = {Artikel},
  author   = {Drees, Gerhard and Sommer, Hans and Eckert, Gerhard},
  year     = {1980},
  title    = {Zweckm{\"a}{\ss}iger Einsatz von Turmdrehkranen auf Hochbaustellen},
  pages    = {822--843},
  number   = {12},
  journal  = {Baumaschine + Bautechnik},
}
\end{filecontents}


\documentclass{article}
\usepackage[ngerman]{babel}          
\usepackage[utf8]{inputenc}      
\usepackage[T1]{fontenc}          
\usepackage{lmodern}            

\usepackage[autostyle]{csquotes} 
\usepackage[
   isbn=false,
   style=authoryear-comp,% ad 2
   backend=bibtex,
   giveninits=true,
   dashed=false, % ad 3
]{biblatex}


\addbibresource{\jobname.bib}

\renewcommand*{\nameyeardelim}{\addspace}  
\renewcommand*{\newunitpunct}{\addcomma\space}  

\renewbibmacro*{cite:labelyear+extrayear}{%
  \iffieldundef{labelyear}
  {}
  {\printtext[bibhyperref]{%
     \printtext[parens]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}}

\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \setunit*{\addcomma\space}%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \usebibmacro{date}%
  \newunit}

\usepackage{xpatch}
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{}
\xapptobibmacro{author}{\egroup}{}{}
\renewcommand*{\labelnamepunct}{\mkbibbold{\addcolon\space}}

% ad 1
\AtBeginBibliography{%
  \renewcommand*{\multinamedelim}{\addsemicolon\space}%
  \renewcommand*{\finalnamedelim}{\multinamedelim}%
}

\DeclareNameAlias{sortname}{family-given}

\begin{document}
\cite{Drees.1980} und \cite{Drees.1980} und \cite{Drees.1980}

\cite{Bohrs.1967} \cite{Bohrs.1970}

\printbibheading[title=Quellenverzeichnis]
\printbibliography[keyword=Bucher,heading=subbibliography,title={Monographien, Sammelwerke}]
\printbibliography[keyword=Artikel,heading=subbibliography,title={Artikel in Fachzeitschrift}]  
\end{document}

von pauabaer » Sa 16. Jul 2016, 00:02

Guten Abend.

Ich muss meinen alten Thread nocheinmal ausgraben.

Habe zu diesem Beispiel drei Fragen:
\begin{filecontents}{\jobname.bib} 
@book{Bohrs.1967, 
	keywords = {Bucher},	
   author = {B{\"o}hrs, Hermann}, 
   year = {1967}, 
   title = {Arbeitsstudien in der Betriebswirtschaft}, 
   address = {Wiesbaden, s.l.}, 
   publisher = {{Gabler Verlag}} 
} 

@book{Bohrs.1970, 
	keywords = {Bucher},	
	author = {B{\"o}hrs, Hermann}, 
	year = {1970}
	title = {Was soll man machen?}, 
	address = {Wiesbaden, s.l.}, 
	publisher = {{Gabler Verlag}} 
} 

@article{Drees.1980, 
	keywords = {Artikel},
	author = {Drees, Gerhard and Sommer, Hans and Eckert, Gerhard}, 
	year = {1980}, 
	title = {Zweckm{\"a}{\ss}iger Einsatz von Turmdrehkranen auf Hochbaustellen}, 
	pages = {822--843}, 
	number = {12}, 
	journal = {Baumaschine + Bautechnik} 
	}
\end{filecontents} 


\documentclass[ 
%   paper=A4,      Voreinstellung 
   pagesize=auto, 
   twoside=false,             
%   fontsize=11pt, Voreinstellung 
   BCOR=12mm,             
   headsepline,               
   headings=normal,             
   parskip=half,               
   captions=tableheading,         
]{scrbook} 
\usepackage[ngerman]{babel}           
\usepackage[utf8]{inputenc}       
\usepackage[T1]{fontenc}           
\usepackage{lmodern, textcomp}             
\addtokomafont{disposition}{\rmfamily}   
\usepackage{microtype}               
\usepackage{setspace}             
\onehalfspacing             
\usepackage{blindtext} 

\usepackage[autostyle]{csquotes} % geändert 
\usepackage[ 
   isbn=false, 
%    natbib=true, % Brauchst Du das wirklich? 
   style=authoryear-icomp, % geändert 
   backend=bibtex, 
   firstinits=true, 
   ibidpage=true, 
]{biblatex} 

\addbibresource{\jobname.bib} 

%%% Anpassung des Layouts des Literaturverzeichnis  %%% 
%Komma nach Autor entfernen 
\renewcommand*{\nameyeardelim}{\addspace}   
%Komma statt Punkt   
\renewcommand*{\newunitpunct}{\addcomma\space}   
%Doppelpunkt statt Komma hinter Autoren 
%\renewcommand{\labelnamepunct}{\addcolon\space}     
% Jahr in Zitaten in Klammern 
\renewbibmacro*{cite:labelyear+extrayear}{% 
   \iffieldundef{labelyear} 
   {} 
   {\printtext[bibhyperref]{% 
         \mkbibparens{% <-- NEU 
            \printfield{labelyear}% 
            \printfield{extrayear}}}}} 
%Komma vor Verlagssblock
\renewbibmacro*{publisher+location+date}{% 
	\printlist{location}% 
	\setunit*{\addcomma\space}% 
	\printlist{publisher}% 
	\setunit*{\addcomma\space}% 
	\usebibmacro{date}% 
	\newunit}
%Fettdruck der Autoren (inkl. Jahr und Doppelpunkt)
\usepackage{xpatch} 
\xpretobibmacro{author}{\mkbibbold\bgroup}{}{} 
\xapptobibmacro{author}{\egroup}{}{} 
\renewcommand*{\labelnamepunct}{\mkbibbold{\addcolon\space}}
% Trennung der Autoren mittels ";" ohne "und"
\renewcommand*{\multinamedelim}{\addsemicolon\space} 
\renewcommand*{\finalnamedelim}{\multinamedelim}
% Sortierung der Autoren Namen: Nachname - Vorname
\DeclareNameFormat{sortname}{% 
	\ifnum\value{listcount}=1\relax 
	\iffirstinits 
	{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
	{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
	\ifblank{#3#5} 
	{} 
	{\usebibmacro{name:revsdelim}}% 
	\else 
	\iffirstinits 
	{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} 
	{\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}% 
	\fi 
	\usebibmacro{name:andothers}}

\begin{document} 

An dieser Stelle wird {\huge \cite{Drees.1980}} aufgeführt.\newline
Der Test geht weiter mit {\huge \cite{Drees.1980}}. Und ein weiteres Mal wird auf {\huge \cite{Drees.1980}} verwiesen.

An dieser Stelle sollen zwei Werke eines Autors in das Literaturverzeichnis aufgenommen werden: Nummer eins als \cite{Bohrs.1967} und Nummer zwei als \cite{Bohrs.1970}


%\setlength{\bibitemsep}{1em} 
%\printbibliography   
\setlength{\bibitemsep}{1em} 
\printbibheading[title=Quellenverzeichnis]
\printbibliography[keyword=Bucher,heading=subbibliography,title={Monographien, Sammelwerke}]
\printbibliography[keyword=Artikel,heading=subbibliography,title={Artikel in Fachzeitschrift}]  
\end{document}
1. Kann ich mehrere Autoren innerhalb des Fließtextes mit einem "und" und bei mehreren Autoren mit Komma trennen, im Lit.verzeichnis aber weiterhin mit Semikolon und "und"?
2. Wie kann ich es vermeiden, dass im Fließtext die Quellenangabe durch ein ebd. erfolgt?
3. Ist es möglich den Namen eines Autors auch bei seinem zweiten Werk im Verzeichnis auszuschreiben?

Vielen Dank für eure Hilfe.

Gruß
pauabaer

von pauabaer » Mo 4. Apr 2016, 22:09

Besten Dank! Genau wie ich mir das vorgestellt habe.

von Gast » Mo 4. Apr 2016, 08:21

Du bekommst bei von biblatex automatisch erzeugten Fußnoten immer einen abschließenden Punkt, wenn der weg soll, dann brauchst Du
\renewcommand{\bibfootnotewrapper}[1]{%
  \bibsentence#1}
Zwischen dem "S." und der Seitenzahl ist ein Abstand und der gehört da eigentlich auch hin, "S.9" ohne Leerraum wird gemeinhin als falsch betrachtet. Du kannst den PLatz mit dem Befehl \ppspace verändern, wenn Du beispielsweise ein dünneres Leerzeichen möchtest, kannst Du
\renewcommand*{\ppspace}{\addnbthinspace}
Den Leerraum vor dem "f."/"ff." kontrollierst Du analog mit \sqspace.

von pauabaer » So 3. Apr 2016, 22:44

Guten Abend nochmal.

Eine Frage ist mir noch gekommen, weil mir aufgefallen ist, dass wenn ich im Text zitiere und im Befehl
\footcite[vgl.][9]{Bohrs.1967}
statt
\footcite[vgl.][9\psq]{Bohrs.1967}
angebe, sprich keine Folgeseiten mit angebe, dann gibt mir biblatex ein Punkt hinter der Seitenangabe aus.
Kann man diesen entfernen? Sodass das Ergebnis dann wie folgt aussehen würde?
vgl. Böhrs (1967), S.9
Dabei ist mir aufgefallen, dass ein gewisser Abstand zwischen dem "S." und der Ziffer steht. Ließe sich der auch anpassen?

Gruß
pauabaer

von pauabaer » So 3. Apr 2016, 10:19

Erneut danke.
Hab mir nochmal den übergeordneten Leitfaden zur Erstellung wissenschaftlicher Arbeiten meiner Uni angesehen und auch hier steht, dass erst ab mehr als drei Autoren das et al. verwendet werden soll. Also lasse ich Biblatex dort freier Hand. Von daher werde ich auch erstmal nicht mit den max/minbibnames spielen :)

Das mit den Initialen werde ich mir überlegen. Ohne sieht es in der Zitationsebene wahrlich sauberer aus.

Danke für den Vorschlag von musicman. Das werde ich mir mal anschauen und implementieren.

Somit sind all meine Fragen geklärt.
Ich danke euch allen! Ihr habt mir sehr geholfen! :)

Schönen Sonntag noch!
Gruß
pauabaer

von Gast » So 3. Apr 2016, 08:20

Eigentlich hat biblatex eine ziemliche coole Automatik, die selbst entscheidet, ob es sinnvoll ist, den Vornamen oder Initialen mit anzugeben. Wenn Du das nicht möchtest, sollte mit Deinen Einstellungen (firstinits=true bzw. giveninits=true)
\DeclareNameAlias{labelname}{given-family}
reichen, in Versionen < 3.3 muss das \DeclareNameAlias{labelname}{first-last} lauten.

Mit maxcitenames und mincitenames kannst Du kontrollieren, wie viele Namen in den Zitaten angezeigt werden, grob werden immer mindestens mincitenames und höchstens maxcitenames Namen angezeigt. Es gibt da aber ein paar Extraregeln, die komisches Aussehen verhindern und Ambiguitäten vermeiden sollen.
Unabhängig davon gibt es in der Bibliographie max/minbibnames.

Ich habe jetzt kein Codebeispiel dazu, da ich nicht verstehe, was bei Dir mit zwei Autoren passieren soll. Soll es "Elk und Uthor" oder "Elk et al." heißen (letzteres wird im Allgemeinen für falsch gehalten, da "et al." [et alii, et aliae] eigentlich für die Auslassung mehrerer Namen steht. Warum sollte man außerdem einen Namen durch "et al." ersetzten? Da kann man ihn ja gleich hinschreiben!)? Und wie ist es dann bei drei Namen? Soll "Elk, Uthor and Geer" zu "Elk et al" werden?
Vielleicht probierst Du es zunächst mit maxcitenames=2, maxbibnames=999, aus und spielst dann mit den anderen Parametern rum, bis es Dir gefällt.

Wenn das erste Zitat anders sein soll, dann kannst Du diese Lösung von musicman bei TeX.SX nehmen.

Nach oben