0

In biblatex, when no citestring is provided in a cite command, the package prints . I want to re-define this string. However, I have not found a documented command or option to do this.

In biblatex.sty this string is defined in line 11413:

\def\abx@warn@emptycite@print@text{%
  \textless empty citation\textgreater}

How can I redfine this? I have tried it as follows with no effect:

\def\abx@warn@emptycite@print@text{%
  New String}

Since I am not familiar with the correct syntax; what would be the correct way to do this?

EDIT: A MWE is this:

\documentclass{article}
\usepackage{biblatex}

%% Redefining does not work. \def\abx@warn@emptycite@print@text{% New String}

\begin{document} This is an empty citation \cite{}. \end{document} ``

  • Please add a short, but compilable test file which allows us to reproduce the problem. It should include a class, the necessary packages and a document environment. – samcarter_is_at_topanswers.xyz Jan 12 '24 at 11:40
  • If you (re)define commands with an @ (at) symbol in the name you need to put \makeatletter before it and \makeatother after, so in this case \makeatletter \def\abx@warn@emptycite@print@text{New String} \makeatother. Note that this may not be the full solution, if you provide a short compilable test file then we can try it out. – Marijn Jan 12 '24 at 11:54
  • @Marijn Thank you! I missed that. This is already the working solution. If you add it as an answer I can mark it as answered :) – SensorGate Jan 12 '24 at 12:47
  • Let's close it as a duplicate of our canonical makeatletter question. Of course the question itself is different but the answer applies, as it states "In practical terms, if you need to modify a package internal macro that contains the @ symbol in its name, you will need to surround your modifications by these commands". – Marijn Jan 12 '24 at 13:59

0 Answers0