我正在使用\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}