平均能量损失

平均能量损失

我正在使用大学提供的用于论文排版的自定义类。该类会自动在文档中包含 BibTex 引用。我想修改该类以使其与 BibLaTex 兼容。在该类中,.bib 文件路径通过命令从文档传递到类。问题是 BibLaTeX 命令\addbibresource{}无法将变量作为其输入进行处理。有关更多详细信息,请参阅下面的 MWE。

在处理变量之前,是否有一个命令可以用来扩展它\addbibresource{}

平均能量损失

主要文件

\documentclass{test}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}

\ConfigurationDocument{fichiers-references = {references.bib}}

\begin{document}
\cite{franssila_introduction_2010}
\printbibliography
\end{document}

测试.cls

\RequirePackage{expl3}
\ProvidesExplClass{test}{2018/09/26}{2.0}{MWE}

\tl_new:N \g_fichiers_references_tl

\LoadClass[letterpaper,12pt]{book}
\RequirePackage{xparse,etoolbox}
\RequirePackage[backend=biber, style=ieee, citestyle=ieee, url=false]{biblatex}

\DeclareDocumentCommand \ConfigurationDocument { m }
{ \keys_set:nn { udes-genie-these } { #1 } }

\keys_define:nn {udes-genie-these}
{
    fichiers-references .tl_gset:N = \g_fichiers_references_tl,
    fichiers-references .value_required:n = true,
}

\addbibresource{\g_fichiers_references_tl}

参考文献.bib

@book{franssila_introduction_2010,
        location = {Chichester, {UK}},
        edition = {2e édition},
        title = {Introduction to microfabrication},
        publisher = {Wiley},
        author = {Franssila, Sami},
        date = {2010}
    }

错误信息

! Undefined control sequence.
<argument> \g 
              _fichiers_references_tl
l.21 \addbibresource{\g_fichiers_references_tl}

答案1

我建议使用clist作为参考而不是tl变量。

然后您可以使用\clist_map_function:NN \g_fichiers_references_clist \addbibresource内部\ConfigurationDocument来添加每个书目资源。

这样做的好处是您可以在同一个键中添加多个引用:

\ConfigurationDocument{fichiers-references = {references.bib, biblatex-exmaples.bib}}

因此test.cls变成:

\RequirePackage{expl3}
\ProvidesExplClass{test}{2018/09/26}{2.0}{MWE}

\clist_new:N \g_fichiers_references_clist

\LoadClass[letterpaper,12pt]{book}
\RequirePackage{xparse}
\RequirePackage[backend=biber, style=ieee, citestyle=ieee, url=false]{biblatex}

\DeclareDocumentCommand \ConfigurationDocument { m }
{
  \keys_set:nn { udes-genie-these } { #1 }
  \clist_map_function:NN \g_fichiers_references_clist \addbibresource
}

\keys_define:nn {udes-genie-these}
{
    fichiers-references .clist_gset:N = \g_fichiers_references_clist,
    fichiers-references .value_required:n = true,
}

相关内容