[Tex/LaTex] Adapting typesetting of editor field information in verbose-style

biblatex

I need my footnotes and bibliography entries look a certain way.
I am almost there but I have a problem with how the editor of an edited book / incollection looks like. Currently, it looks like this in the footnote:

Brian Smith, ‘How to do it’ in Big Book of Knowledge, ed. by Tony Riley (Oxford: Oxford University Press, 2012), pp. 12–34.

and this in the bibliography:

Smith, Brian, ‘How to do it’ in Big Book of Knowledge, ed. by Tony Riley (Oxford: Oxford University Press, 2012), pp. 12–34.

What I need it to read is:

Smith, Brian, ‘How to do it’ in Tony Riley (ed.), Big Book of Knowledge (Oxford: Oxford University Press, 2012), pp. 12–34.

So how do I adapt the verbose-style that it reads "… Tony Riley (ed.)" instead of "ed. by Tony Riley"?

Additionally, that the editor comes after "in", i.e. before the title of the book. ("in Tony Riley (ed.), The Big Book of Knowledge" instead of "in The Big Book of Knowledge, ed. by Tony Riley")?

PS: This is my little example:

\documentclass[paper=a4,fontsize=12pt]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Smith2012,
    Address = {Oxford},
    Author = {Brian Smith},
    Booktitle = {Big Book of Knowledge},
    Editor = {Tony Riley},
    Pages = {12-34},
    Publisher = {Oxford University Press},
    Title = {How to do it},
    Year = {2012}}
\end{filecontents}

\usepackage[style=verbose-trad3, 
natbib=true,
sortcites=true, 
block=space, 
isbn=false, 
url=false, 
doi=false, 
dashed=false, 
dateabbrev=false,
backend=biber,
bibencoding=utf8,
]{biblatex}

\renewcommand{\footcite}{\cite}
\usepackage[ngerman,british]{babel}
\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=english,english=british]{csquotes}


\renewcommand*{\cite}{\autocite}
\renewcommand*{\newunitpunct}{\addcomma\space}


\usepackage{biblatex}
\renewbibmacro{in:}{%
\ifentrytype{article}{space}{%
\nopunct
\printtext{\bibstring{in}\nopunct\addspace}}}



\renewbibmacro*{publisher+location+date}{%
\nopunct% ADDED
\printtext[parens]{% ADDED
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
}
\newunit}

\addbibresource{\jobname.bib}

\begin{document}
This is an example sentence.\cite{Smith2012}

\printbibliography

\end{document}

Best Answer

First, compiling your document I get an error:

! Package biblatex Error: 'backend' is load-time only option.

You should move backend=biber, bibencoding=utf8, to the package options.

To swap the appearance of editor and booktitle, you have to alter the definitions of incollection, inbook, etc. This shouldn't be too hard, you'll find them in the file biblatex.def.

Then you need to redefine the bibmacro byeditor+others to get something like "John Doe (ed.)". The following code, redefining bibmacro byeditor+others, works for your example, though you might run in some problems with other editortypes:

\documentclass[paper=a4,fontsize=12pt]{scrartcl}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{Smith2012,
    Address = {Oxford},
    Author = {Brian Smith},
    Booktitle = {Big Book of Knowledge},
    Editor = {Tony Riley},
    Pages = {12-34},
    Publisher = {Oxford University Press},
    Title = {How to do it},
    Year = {2012}}
\end{filecontents}

\usepackage[style=verbose-trad3, 
natbib=true,
sortcites=true, 
block=space, 
isbn=false, 
url=false, 
doi=false, 
dashed=false, 
dateabbrev=false,
backend=biber,
bibencoding=utf8,
]{biblatex}

\renewcommand{\footcite}{\cite}
\usepackage[ngerman,british]{babel}
\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=english,english=british]{csquotes}

\renewcommand*{\cite}{\autocite}
\renewcommand*{\newunitpunct}{\addcomma\space}

\usepackage{biblatex}
\renewbibmacro{in:}{%
\ifentrytype{article}{space}{%
\nopunct
\printtext{\bibstring{in}\nopunct\addspace}}}

\renewbibmacro*{publisher+location+date}{%
\nopunct% ADDED
\printtext[parens]{% ADDED
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
}
\newunit}

\renewbibmacro*{byeditor+others}{%
  \ifnameundef{editor}
    {}
    {\ifnamesequal{author}{editor}
      {\bibnamedash}
      {\printnames{editor}}%
     \addspace
     \mkbibparens{\usebibmacro{editorstrg}}%
     \clearname{editor}}
    {}}

\addbibresource{\jobname.bib}

\begin{document}
This is an example sentence.\cite{Smith2012}

\printbibliography

\end{document}
Related Question