[Tex/LaTex] biblatex: How to remove the comma before ed./eds.

biblatexpunctuationsuperscripts

How can I remove the comma before ed. or eds. and put this abbreviation in parentheses? I'm using biblatex.

For example this reference:

Dozy, Reinhart, ed.: Supplément aux dictionnaires arabes. 3rd ed. 2
vols. Leiden: Brill, 1967.

should look like this:

Dozy, Reinhart (ed.): Supplément aux dictionnaires arabes. 3rd ed. 2
vols. Leiden: Brill, 1967.

Moreover, I would like to have the "rd" of "3rd edition" in superscript. Is this possible?

EDIT: Here is a minimal example (with lockstep's solution for superscripts inluded, sorry for not having given an example the last time):

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[a4paper,12pt,final, oneside]{memoir}


% ********************************************************************
% Biblatex + Bibliography
% ********************************************************************

\usepackage[style=authortitle-ibid, sorting=nty, hyperref=auto]{biblatex}
\usepackage[english=british]{csquotes}
\bibliography{Bibliography}
\defbibheading{prim}{\subsection*{{Primary Sources}}}
\defbibheading{sec}{\subsection*{{Secondary Sources}}}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}}
\DeclareFieldFormat{postnote}{#1}%%keine Anzeige von S.
\renewcommand{\labelnamepunct}{\addcolon\addspace} %%Doppelpunkt nach Autor

%Serientitel in Klammern und nach der bibliographischen Angabe
\renewbibmacro*{series+number}{}
\renewbibmacro*{publisher+location+date}{%
 \printlist{location}%
  \iflistundef{publisher}%
   {\setunit*{\space}}%
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
    \setunit*{\addcomma\space}%
  \printfield{year}%
  \setunit*{\space}%
  \iffieldundef{series}%
    {}%
    {\printtext[brackets]{%
      =\addnbspace%
      \printfield{series}%
      \setunit*{\addspace}%
      \printfield{number}}}%
 \newunit}


%%Ed. in parenthesis
\renewbibmacro*{editor}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
%     \setunit{\addcomma\space}% DELETED
%     \usebibmacro{editorstrg}% DELETED
     \setunit{\addspace}% ADDED
     \printtext[parens]{\usebibmacro{editorstrg}}% ADDED
     \clearname{editor}}
    {}}

\renewbibmacro*{editor+others}{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\printnames{editor}%
%     \setunit{\addcomma\space}% DELETED
%     \usebibmacro{editor+othersstrg}% DELETED
     \setunit{\addspace}% ADDED
     \printtext[parens]{\usebibmacro{editor+othersstrg}}% ADDED
     \clearname{editor}}
    {}}


%Superscript for cardinal numbers before edition
\usepackage[super]{nth}
\AtBeginDocument{\renewcommand*{\mkbibordinal}[1]{\nth{#1}}}

\begin{document}

\printbibliography[heading=prim, keyword=prim, nottype=reference]
\printbibliography[heading=sec, notkeyword=prim, nottype=reference]


\end{document}

Best Answer

Since you did not provide a minimal example, I'm assuming the default numeric style.

EDIT: Minimal exampe changed to style autortitle & friends.

\documentclass{article}

\usepackage[style=authortitle-ibid]{biblatex}

\makeatletter
\renewbibmacro*{bbx:editor}[1]{%
  \ifboolexpr{
    test \ifuseeditor
    and
    not test {\ifnameundef{editor}}
  }
    {\usebibmacro{bbx:dashcheck}
       {\bibnamedash}
       {\printnames{editor}%
%   \setunit{\addcomma\space}% DELETED
    \setunit{\addspace}% ADDED
    \usebibmacro{bbx:savehash}}%
%     \usebibmacro{#1}% DELETED
     \printtext[parens]{\usebibmacro{#1}}% ADDED
     \clearname{editor}}
    {\global\undef\bbx@lasthash}}
\makeatother

\usepackage[super]{nth}
\AtBeginDocument{\renewcommand*{\mkbibordinal}[1]{\nth{#1}}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@collection{A01,
  editor = {Author, A.},
  year = {2001},
  title = {Alpha},
  edition = {3},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

\printbibliography

\end{document}