\documentclass[a4paper]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[american]{babel} \usepackage{csquotes} \usepackage{verbatim} \usepackage[style=authortitle,backend=biber]{biblatex-ms} \addbibresource{biblatex-examples.bib} \setlength{\parindent}{0pt} \newcommand{\cmd}[1]{\texttt{\textbackslash #1}} \DeclareDelimFormat[bib]{space}{X} \DeclareDelimFormat[test]{space}{Y} \DeclareDelimFormat{testb}{B} \DeclareDelimFormat[testbcontext]{testb}{C} \DeclareDelimFormat{testc}{D} \DeclareDelimFormat[testccontext]{testc}{E} \makeatletter % Some of these tests generate definition warnins which we don't want in tests \def\blx@warn@delimdeclare#1#2{\relax} \makeatother \begin{document} \section*{Context-Sensitive Delimiters} Normal cite uses global delim definition with comma:\\\\ \cite{averroes/hannes}\\\\ Textual cite uses "textcite" context without comma:\\\\ \textcite{averroes/hannes}\\\\ Reset of global delimiter with traditional method:\\\\ \renewcommand*{\nametitledelim}{\addcomma\space} \cite{averroes/hannes}\\\\ Textual cite in "textcite" context is not reset:\\\\ \textcite{averroes/hannes}\\\\ \begingroup \def\addcomma{,} \let\space\textvisiblespace Invoke default delimiter in context-sensitive interface:\\ \printdelim{nametitledelim}\\\\ Invoke global delimiter via normal macro:\\ \nametitledelim\\\\ Invoke delimiter in context-sensitive interface with explicit context:\\\\ \printdelim[textcite]{nametitledelim}\\\\ \endgroup Default delimiter "testb":\\\\ \printdelim{testb}\\\\ Setting "testbcontext" with \cmd{delimcontext}:\\\\ \delimcontext{testbcontext}\printdelim{testb}\\\\ Redefine "testb" delim with starred version to remove all contexts:\\\\ \DeclareDelimFormat*{testb}{B} \printdelim{testb}\\\\ Check nesting\\\\ \begingroup \delimcontext{testccontext}\printdelim{testc}\\\\ \endgroup \printdelim{testc}\\\\ \printbibliography Reset the \cmd{space} command for this bibliography to use the context-sensitive interface. First we use the default "bib" context: \AtNextBibliography{\renewcommand*{\space}{\printdelim{space}}} \printbibliography Now use a custom context "test" and \cmd{space} expands to something different. Also, "nametitledelim" is back to default because we override the default "bib" context: \AtNextBibliography{\renewcommand*{\space}{\printdelim{space}}\delimcontext{test}} \printbibliography \end{document}