[Tex/LaTex] New command to create a new type of citation

biblatexcapitalizationciting

I defined a new command to an specific type of citation:

\newcommand{\apud}[4]{\citeauthor{#1} \mkbibparens{\citeyear{#1},\space{#2} apud \cite{#3},\space{#4}}}

That produce this output:

Carnap (1935, p. 30 apud Hempel, 1983, p. 20)

I want one additional thing: that the name of the last author appear in upper case, to produce:

Carnap (1935, p. 30 apud HEMPEL, 1983, p. 20)

Or is there a more elegant way to do this?

MWE:

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{CARNAP1935,
Address = {London},
Author = {Carnap, Rudolf},
Publisher = {Kegan Paul, Trench, Trubner \& Co.},
Title = {Philosophy and Logical Syntax},
Year = {1935}}


@incollection{HEMPEL1983,
Author = {Hempel, Carl Gustav},
Booktitle = {Physics, Philosophy and Psychoanalysis},
Editor = {Cohen, R.S. and Laudan, L.},
Pages = {73-100},
Publisher = {Springer Netherlands},
Series = {Boston Studies in the Philosophy of Science},
Title = {Valuation and Objectivity in Science},
Volume = {76},
Year = {1983},
}

\end{filecontents*}

\documentclass[12pt,a4paper]{memoir}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[citestyle=authoryear,bibstyle=authortitle,backend=biber]{biblatex}
\addbibresource{\jobname.bib}


\newcommand{\apud}[4]{\citeauthor{#1} \mkbibparens{\citeyear{#1},\space{#2} apud \cite{#3},\space{#4}}}

\begin{document}

\apud{CARNAP1935}{p. 30}{HEMPEL1983}{p. 20}

\printbibliography

\end{document}

Best Answer

Instead of converting to uppercase you could use smallcaps:

\newcommand{\apud}[4]{\citeauthor{#1} \mkbibparens{\citeyear{#1},\space{#2} apud \textsc{\cite{#3}},\space{#4}}}

enter image description here

As kerning of uppercase letters is a somewhat special thing, smallcaps may be the more elegant solution.

Related Question