Anordnung von INCOLLECTION voellig veraendern

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


julesneu
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Fr 26. Apr 2013, 15:00

Anordnung von INCOLLECTION voellig veraendern

Beitrag von julesneu »

Hallo zusammen,

ein Journal benoetigt eine bestimmte Reihenfolge. Ich arbeite bisher sehr gut mit backend=bibtex8 unter biblatex, da mir der komplette Umstieg auf biber noch nicht gelungen ist (hakt irgendwie), kann ich nicht so einfach auf einen anderen Stil umsteigen, der das moeglicherweise hinbekommt.

Die Beschreibungen der Anforderungen und meines Problems findet sich in dem MWE. Suche und und herumprobieren mit einzelnen Codeschnipseln hat leider nichts gebracht.
\documentclass[oneside, 12pt,a4paper]{scrartcl}	   
\usepackage[english]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\begin{filecontents}{\jobname.bib}
@INCOLLECTION{Ajzen1993,
  author = {Ajzen, Icek},
  title = {Attitude Theory and the Attitude-Behavior Relation},
  booktitle = {New Directions in attitude measurement},
  publisher = {de Gruyter},
  year = {1993},
  editor = {Krebs, Dietmar and Schmidt, Peter},
  pages = {41-57},
}
@INCOLLECTION{Alber2001,
  author = {Alber, Jens},
  title = {Hat sich der Wohlfahrtsstaat als soziale Ordnung bewährt?},
  booktitle = {Die Beste aller Welten.},
  publisher = {Springer},
  year = {2001},
  editor = {Karl-Ullrich Mayer},
  pages = {59-111},
}
\end{filecontents}
\usepackage[%bibencoding=utf8,
backend=bibtex8,
style=authoryear]{biblatex}
\addbibresource{\jobname}
\DeclareFieldFormat[incollection]{title}{#1}
\DefineBibliographyStrings{english}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 editor = {Ed\adddot},
 editors ={Eds\adddot},
 byeditor = {Ed\adddot},
}
%%%Schreibweise, so dass die Editoren in Klammern stehen
\usepackage{xpatch}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}
%%%%%immer Name, Vorname
\DeclareNameFormat{editor}{%
  \iffirstinits
    {\usebibmacro{name:last-fist}{#1}{#4}{#5}{#7}}
    {\usebibmacro{name:last-first}{#1}{#3}{#5}{#7}}%
  \usebibmacro{name:andothers}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Schiebt das (Ed.) hinter die Herausgebernamen
\renewbibmacro*{byeditor+others}{%
 \ifnameundef{editor}
   {}
    {\printnames[byeditor]{editor}%
     \setunit{\addspace}%
     \usebibmacro{byeditor+othersstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Buchtitel nach den Herausgebernamen
\renewbibmacro*{maintitle+booktitle}{%
  \iffieldundef{maintitle}
    {}
    {\usebibmacro{maintitle}%
     \newunit\newblock
     \iffieldundef{volume}
       {}
       {\printfield{volume}%
        \printfield{part}%
        \setunit{\space}}}% hier
 %\usebibmacro{booktitle}%
  \newunit}
	
%\makeatletter                       %DIESE BEFEHLSFOLGE ENTFERNT DAS IN:, Ich brauche aber In ohne Doppelpunkt 
%\renewbibmacro*{in:}{%
%\def\tempb{incollection}
%\ifx\abx@field@entrytype\tempb
%  \else%
%  \printtext{%
%    \bibstring{in}\intitlepunct}
% \fi
%}
%\makeatother


\begin{document}  

Wenn ich \textcite{Ajzen1993} zitiere und dann auch noch andere Sammelbandeintraege bemuehe \parencite{Alber2001}, stellt sich folgendes Problem.\\

Ich benoetige folgende Darstellunge der:\\
\\
Ajzen, Icek (1993). Attitude Theory and the Attitude-Behavior Relation. In D.
Krebs and P. Schmidt (Ed.) \textit{New Directions in attitude measurement}. de Gruyter, pp. 41-57.\\
Alber, Jens (2001). Hat sich der Wohlfahrtsstaat als soziale Ordnung bewährt? In K.-
U. Mayer (Ed.) \textit{Die Beste aller Welten}. Springer, pp. 59-111.\\ \\

Habe das einfach mal so hingeschrieben. Der author-year Stil sortiert Incollection normal ja so: 'title.' IN: 'Booktitle.' Ed. by 'Editor',
	
\begin{enumerate}
	\item Ich muss aber den Herausgebernamen vor den Buchtitel ziehen
	\item das Ed. in Klammern hinter den Herausgeber ziehen
	\item und letztlich nocht 'IN:' durch 'In' ersetzen
	\item Vornamen der Herausgeber abgekuerzt
\end{enumerate}

2. gelingt mir komplett (siehe oben), aber bei Umsetzung von 1. geht mir der Buchtitel vollends verloren. 3. finde ich nichts, da alles Threads sich immer nur um die Beseitigung von 'In:' drehen, nie will jemand nur den : entfernen. 4. Gelingt mir bisher auch nur fuer die Autoren, nie fuer Herausgeber.\\
\\
Hier unten die bisherige Situation, bei der der Buchtitel verschwindet. 

\printbibliography
\end{document}

Fuer Nachfragen stehe ich gerne bereit.
Danke fuer eure Ideen,

julesneu
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Fr 26. Apr 2013, 15:00

Beitrag von julesneu »

Hat denn niemand eine Idee oder einen Vorschlag?

Habe ich das Problem moeglicherweise nicht präzise genug beschrieben.

Viele Dank fuer alle Bemuehungen im Voraus

julesneu
Forum-Anfänger
Forum-Anfänger
Beiträge: 16
Registriert: Fr 26. Apr 2013, 15:00

3. und 4. geloest, 1. und 2. noch offen

Beitrag von julesneu »

Durch lange Herumprobieren bin ich zu den Loesungen schrittweise gekommen

zu 3. Den Doppelpunkt und Kleinschreibung des n in 'In' konnte ich durch Erweiterung der Angaben, die das 'IN:' in bei @article eliminiert, ebenfalls anpassen.
\makeatletter \addspace VOR JOURNALTITLE
\renewbibmacro*{in:}{
\def\tempb{article}
\ifx\abx@field@entrytype\tempb
  \else%
   \printtext{In}
 \fi
}
\makeatother
zu 4.
Die Paketoptionen zu biblatex hatte ich etwas außer Acht gelassen, die notwendige Abkuerzung der Vornamen auch bei Herausgebernamen kann wie folgt erfolgen ermoeglicht.
\usepackage[
firstinits=true,
uniquename=init]{biblatex}
Somit veraendert sich das MWE wie folgt, es ist nun sehr viel knapper.
\documentclass[oneside, 12pt,a4paper]{scrartcl}      
\usepackage[english]{babel}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\begin{filecontents}{\jobname.bib}
@INCOLLECTION{Ajzen1993,
  author = {Ajzen, Icek},
  title = {Attitude Theory and the Attitude-Behavior Relation},
  booktitle = {New Directions in attitude measurement},
  publisher = {de Gruyter},
  year = {1993},
  editor = {Krebs, Dietmar and Schmidt, Peter},
  pages = {41-57},
}
@INCOLLECTION{Alber2001,
  author = {Alber, Jens},
  title = {Hat sich der Wohlfahrtsstaat als soziale Ordnung bewährt?},
  booktitle = {Die Beste aller Welten.},
  publisher = {Springer},
  adress = {Hamburg}
	year = {2001},
  editor = {Karl-Ullrich Mayer},
  pages = {59-111},
}
\end{filecontents}
\usepackage[%bibencoding=utf8,
backend=bibtex8,
style=authoryear,
firstinits=true,
uniquename=init,
]{biblatex}
\addbibresource{\jobname}
\DeclareFieldFormat[incollection]{title}{#1}
\DefineBibliographyStrings{english}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 editor = {Ed\adddot},
 editors ={Eds\adddot},
 byeditor = {Ed\adddot},
}
\DeclareFieldFormat{pages}{#1}
\usepackage{xpatch}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}%%%Editoren in Klammern 
\DeclareNameAlias{sortname}{last-first}%%%%%immer Name, Vorname
\DeclareNameAlias{default}{last-first}%%%%%%auch bei Herausgebern 

\makeatletter                       %%%%%%%%'IN:' vor journaltitle  fällt raus, sonst ueberall 'In'
\renewbibmacro*{in:}{
\def\tempb{article}
\ifx\abx@field@entrytype\tempb
  \else%
   \printtext{In}
 \fi
}
\makeatother

\renewbibmacro*{byeditor+others}{%%%%%%%%%%%(Ed.) hinter dem Herausgebernamen
  \ifnameundef{editor}
    {}
    {\printnames[byeditor]{editor}%
     \setunit{\addspace}%
     \usebibmacro{byeditor+othersstrg}%
     \clearname{editor}%
     \newunit}%
  \usebibmacro{byeditorx}%
  \usebibmacro{bytranslator+others}}
	
\begin{document}  

Wenn ich \textcite{Ajzen1993} zitiere und dann auch noch andere Sammelbandeintraege bemuehe \parencite{Alber2001}, stellt sich folgendes Problem. Das Verzeichnis sieht so aus:\\

\printbibliography

Ich benoetige aber folgende Darstellunge der:\\
\\
Ajzen, Icek (1993). Attitude Theory and the Attitude-Behavior Relation. In Krebs, D. and Schmidt, P. (Ed.), \textit{New Directions in attitude measurement}. de Gruyter, 41-57.\\
Alber, Jens (2001). Hat sich der Wohlfahrtsstaat als soziale Ordnung bewährt? In K.-
U. Mayer (Ed.), \textit{Die Beste aller Welten}. Springer, 59-111.\\ \\

Die Unterschiede sind also: 
   
\begin{enumerate}
   \item Ich muss den Herausgebernamen samt der Klammer mit (Ed.) vor den Buchtitel ziehen, der author-year Stil sortiert Incollection normal ja so: 'title.' IN: 'Booktitle.' Ed. by 'Editor'
  \item  nur hinter dem (Ed.) soll das Trennungszeichen ein Komma sein, nur dort
\end{enumerate}

\end{document} 

Vieleicht hat dieses Mal jemand einen Vorschlag parat.
Danke

Antworten