\thefield、entrykey 和 \xifinlist

\thefield、entrykey 和 \xifinlist

我尝试\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}

解决我的问题。

相关内容