我尝试\thefield
与 结合使用\xifinlist
。这适用于除 之外的所有字段entrykey
。
参见此 MWE
\documentclass{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
@book{CPG,
title={CPG},
}
\end{filecontents}
\listadd{\toto}{CPG}
\renewbibmacro{begentry}{
\xifinlist{\thefield{entrykey}}{\toto}{oui}{non}
\xifinlist{\thefield{title}}{\toto}{oui}{non}
}
\begin{document}
\nocite{CPG}
\printbibliography
\end{document}
我预计第一个测试的结果会是“oui”,但结果却是“non”。
任何想法?
答案1
问题在于 biblatex 对 entrykey 字段进行了去标记化。
所以
\documentclass{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{\jobname.bib}
\begin{filecontents}{\jobname.bib}
@book{CPG,
title={CPG},
}
\end{filecontents}
\listeadd{\toto}{\detokenize{CPG}}
\renewbibmacro{begentry}{
\xifinlist{\thefield{entrykey}}{\toto}{oui}{non}
\xifinlist{\thefield{title}}{\toto}{oui}{non}
}
\begin{document}
\nocite{CPG}
\printbibliography
\end{document}
解决我的问题。