检查 bib 环境是否已定义

检查 bib 环境是否已定义

我正在使用\defbibenvironment这样的代码命令

\defbibenvironment{numbered+bold}{...}

后来用于

\printbibliography[env=numbered+bold, heading=none, resetnumbers=true]

然而,如果第一个没有定义,则会\printbibliography失败。

我希望代码能够进行故障保存,因此检查环境是否已定义。这意味着我正在寻找类似

\IfElseBibEnvironmentDefined{numbered+bold}
{\printbibliography[env=numbered+bold, heading=none, resetnumbers=true]}
{Error: environment numbered+bold not defined}

问题是如何检查这个环境。

答案1

\defbibenvironment{foo}定义一个名为的宏

\blx@env@foo

所以你可以

\ifcsdef{blx@env@numbered+bold}
  {\printbibliography[env=numbered+bold, heading=none, resetnumbers=true]}
  {Error: environment numbered+bold not defined}

当然你可以定义一个宏:

\newcommand{\IfDefinedBibEnvironment}[1]{\ifcsdef{blx@env@#1}}

然后你可以用

\IfDefinedBibEnvironment{numbered+bold}
  {\printbibliography[env=numbered+bold, heading=none, resetnumbers=true]}
  {Error: environment numbered+bold not defined}

相关内容