# Shortauthor and authoryear-icomp: Use full author name for first citation like apa style

I am using the authoryear-icomp biblatex style. For some publications by institutions with long names, I would like to use shortauthor. However, the style authoryear-icomp simply uses shortauthor from the first citation onwards, like so:

I would like it to work as it does in style=apa, which uses the full author name for the first citation and introduces the short name in square brackets, which it then uses for all further citations (even for other publications of the same author).

This is the output if I change the style to apa:

Is there any way to achieve this behaviour with authoryear-icomp?

This is the MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage[style=authoryear-icomp, % alternatively: style=apa
bibstyle=authoryear,
autocite=inline,
backend=biber
]
{biblatex}

\usepackage{filecontents}

\begin{filecontents*}{testbib.bib}

@online{test1,
author = {{Institution Long Name}},
shortauthor = {ILN},
title = {Test title},
year = {2020}
}

@online{test2,
author = {{Institution Long Name}},
shortauthor = {ILN},
title = {Another test title},
year = {2020}
}

\end{filecontents*}

\begin{document}

Citation number one \autocite{test1}.

Citation number two \autocite{test1}.

Third citation with a different publication by the same author \autocite{test2}.

\end{document}

• Have a look at tex.stackexchange.com/q/449052/35864. Jan 8, 2020 at 7:20
• I made sure my answer to tex.stackexchange.com/q/449052/35864 works again and I checked that it also works with style=authoryear-icomp,. So I suggest you check out tex.stackexchange.com/a/449082/35864 because as I understand it your question is pretty much answered by the solution there. Jan 9, 2020 at 20:14
• Thanks. I haven't been able to try it yet, but from what I understand of the code, it uses the author field and divides it in long and short name parts. My whole bib file, however, uses the shortauthor field, so I imagine it would not work 'out of the box' without adapting my bib? Jan 10, 2020 at 8:44

You can do something like this - I took some code from APA style. You may need to make this more in line with cite from the authoryear-icomp style for more general use but this gets you what you want as a start:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

\usepackage[style=authoryear-icomp, % alternatively: style=apa
bibstyle=authoryear,
autocite=inline,
backend=biber
]
{biblatex}

\usepackage{filecontents}

\begin{filecontents*}{testbib.bib}

@online{test1,
author = {{Institution Long Name}},
shortauthor = {ILN},
title = {Test title},
year = {2020}
}

@online{test2,
author = {{Institution Long Name}},
shortauthor = {ILN},
title = {Another test title},
year = {2020}
}

\end{filecontents*}

\makeatletter
\DeclareCiteCommand{\parencite}[\mkbibparens]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{metacite}%
\usebibmacro{cite:post}}
{}
{\usebibmacro{cite:postnote}}

\newbibmacro*{cite:post}{%
\xifinlist{\thefield{fullhash}}{\cbx@names}
{}

\global\let\cbx@names\@empty
\def\cbx@ifnamesaved{%
\xifinlist{\thefield{fullhash}}{\cbx@names}
{\@firstoftwo}
{\@secondoftwo}}

\newbibmacro*{metacite}{%
\ifnameundef{shortauthor}
{\usebibmacro{cite}}
{\usebibmacro{sacite}}}

\newbibmacro*{sacite}{%
\cbx@ifnamesaved
{\printnames{shortauthor}}
{\printnames{author}%
\setunit{\printdelim{nameyeardelim}}%
\savefield{namehash}{\cbx@lasthash}%
\savefield{labelyear}{\cbx@lastyear}%
\setunit{\multicitedelim}}

\makeatother

\begin{document}

Citation number one \autocite{test1}.

Citation number two \autocite{test1}.

Third citation with a different publication by the same author \autocite{test2}.

\end{document}


• This works great for the initial citation! I just realized, however, that the subsequent citations only show shortauthor and not the year (e.g., "2020b") --- which is probably what you referred to when you said further adjustments might be necessary. I've taken a long look at the cbx file, but have to admit I'm rather overwhelmed. Could you point me to where to go from here? Jan 18, 2020 at 17:52
• My mistake - I have corrected the sacite macro above.
– PLK
Jan 18, 2020 at 18:26