答案1
将以下内容添加到您的序言中。
\makeatletter
\newbibmacro*{cite:reinit}{%
\ifnumequal{\value{citecount}}{1}{}{\setcounter{cbx@tempcntb}{0}}}
\makeatother
\newtoggle{cite:comp}
\AtEveryCitekey{\iftoggle{cite:comp}{}{\usebibmacro{cite:reinit}}}
\toggletrue{cite:comp}
在表格环境中,你可以使用以下方法禁用紧凑引用:
\togglefalse{cite:comp}
答案2
Numeric-comp 似乎包含一些相当复杂的东西,而且它不是我通常的狩猎场,但我认为这会起作用。
我所做的是创建一个新的引用命令(\citeu
用于“引用未压缩”):带有的引用\cite
按正常方式压缩;带有的引用\citeu
未压缩,但仍按顺序排序。(事实上,它们的宏只是取自“普通”numeric.cbx
样式。)
为了获得更清晰的界面,您可能希望为您的表格设置一个环境(当然,在一个组内)let\cite\citeu
。
(MWE 很大程度上...借用了...您所引用的答案)。
\documentclass{article}
\usepackage[backend=biber,style=numeric-comp]{biblatex}
\newbibmacro*{cite:uncomp}{%
\printtext[bibhyperref]{%
\printfield{prefixnumber}%
\printfield{labelnumber}%
\ifbool{bbx:subentry}
{\printfield{entrysetcount}}
{}}}
\DeclareCiteCommand{\citeu}[\mkbibbrackets]
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:uncomp}}
{\multicitedelim}
{\usebibmacro{postnote}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{knuth:ct:b}
\cite{sigfridsson}
\cite{worman}
\cite{almendro}
\cite{kowalik}
\cite{loh}
\cite{worman, kowalik,loh,almendro,knuth:ct:b}
\citeu{worman, kowalik,loh,almendro,knuth:ct:b}
\printbibliography
\end{document}