我不想让引用键显示在文档中以查找缺失的参考文献,而只想显示 [?],就像使用默认 bibtex 而不使用 biblatex 时的情况一样。这种行为让我抓狂,因为它搞乱了所有格式(尤其是表格中的格式)。我想专注于写作,稍后再处理错误的引用。
这个问题与
并且其 MWE 可以使用。然而,正如之前指出的,我想文本中的问号反而引用键以免弄乱格式(缺少引用)。
答案1
自 3.12 版本以来,biblatex
已有半内部宏\abx@missing@entry
,可以按如下方式重新定义
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\def\abx@missing@entry#1{\abx@missing{??}}
\makeatother
\begin{document}
\cite{sigfridsson,appleby}
\printbibliography
\end{document}
的默认定义\abx@missing@entry
是
\def\abx@missing@entry#1{%
\abx@missing{#1}}
在哪里#1
未知的 entrykey 在https://github.com/plk/biblatex/commit/8df18a8725f8ba150c142443f64024c7ad8966c6
对于旧版本,biblatex
您可以使用
\makeatletter
\def\blx@citeadd#1{%
\ifcsdef{blx@keyalias@\the\c@refsection @#1}
{\edef\blx@realkey{\csuse{blx@keyalias@\the\c@refsection @#1}}}
{\def\blx@realkey{#1}}%
\expandafter\blx@getrefcontext\expandafter{\blx@realkey}% needed for \ifdata
\expandafter\blx@citation\expandafter{\blx@realkey}\blx@msg@cundefon
\expandafter\blx@ifdata\expandafter{\blx@realkey}
{\advance\blx@tempcnta\@ne
\listeadd\blx@tempa{\blx@realkey}}
{\ifnum\blx@tempcntb>\z@\multicitedelim\fi
\expandafter\abx@missing\expandafter{??}%<- the change is here
\advance\blx@tempcntb\@ne}}
\makeatother