[Tex/LaTex] Different `andothers` expressions for `\textcite` and `\parencite`

biblatexmacros

Is it possible to have two different expressions for andothers, when using either in-text or parentheses citation with biblatex classes?

For instance, I would like to use "and others" in text (with \textcite) and "et al." in parentheses (with \parencite). Like so:

As presented by Yoon and others (2006), …

This has been previously presented (Yoon et al., 2006) …

It says in the manual (p. 103):

\textcitedelim

Similar to \multicitedelim, but used by \textcite and related commands
(§ 3.7.2). The default is a comma plus an interword space. The standard styles modify
this provisional definition to ensure that the delimiter before the final citation is the
localized term ‘and’, separated by interword spaces.

But I wasn't sure which styles were those or how they modify it.

I consulted questions and answers like Change last multicite delim only for textcite (only contrasting it to bibliography entries) and Switch conjunction in textcite, but couldn't make their solutions work for my needs.

Best Answer

Starting with version 3.4 of biblatex there is the concept of delimcontexts that are used to find out in what context (\parencite, \textcite, bibliography, text is printed), we can use that to determine of we are in a \textcite

\makeatletter
\newcommand\ifintextcite{\ifdefstring{\blx@delimcontext}{textcite}}
\makeatother

There is no need for patching the commands and a new toggle here.

We can then modify the andothers bibstring depending on that test

\DefineBibliographyStrings{german}{
  andothers = {\ifintextcite{and others}{et\addabbrvspace al\adddot}}
}

MWE

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

\usepackage[style=authoryear, backend=biber, sorting=none]{biblatex}

\addbibresource{biblatex-examples.bib}

\makeatletter
\newcommand\ifintextcite{\ifdefstring{\blx@delimcontext}{textcite}}
\makeatother

\DefineBibliographyStrings{german}{
  andothers = {\ifintextcite{and others}{et\addabbrvspace al\adddot}}
}


\begin{document}
   \textcite{aksin} \parencite{aksin}

   \printbibliography   
\end{document}