biblatex:将 addtocategory 和 nocite 合并为一个命令

biblatex:将 addtocategory 和 nocite 合并为一个命令

我正在使用这个答案中发布的解决方案:
https://tex.stackexchange.com/a/21891/8569
重要的片段是:

\addtocategory{important}{walley00}\nocite{walley00}
\addtocategory{important}{walley91}\nocite{walley91}
\printbibliography[title={Important},category=important]

相反,我更喜欢这样的新命令:

\addtocategoryNoCi{important}{walley00,walley91}
\printbibliography[title={Important},category=important]

效果应该是一样的。所以,我想我只需要定义一个新的/自定义的命令,接受以逗号分隔的 bibtex 键列表作为输入,但我需要一些帮助...

答案1

由于和都\addtocategory可以\nocite接受逗号分隔的值,因此您可以使用

\newcommand*{\addtocategoryNoCi}[1]{\addtocategory{important}{#1}\nocite{#1}}

如果你想把类别作为参数,你需要

\newcommand*{\addtocategoryNoCi}[2]{\addtocategory{#1}{#2}\nocite{#2}}

如果两个命令之一不能接受逗号分隔的值列表,你可以使用

\makeatletter
\newcommand*{\addtocategoryNoCi@i}[2]{\addtocategory{#1}{#2}\nocite{#2}}
\newcommand*{\addtocategoryNoCi}[1]{%
  \forcsvlist{\addtocategoryNoCi@i{#1}}}
\makeatother

相关内容