平均能量损失

平均能量损失

我想问一下是否可以使用命令更改特定引文的entrykey \DeclareSourcemap。以下MWE对我来说不起作用。

\documentclass{article}
\usepackage[defernumbers=true,backend=biber,style=chem-acs,articletitle=true,doi=true]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{citea,
author = {McClane, John},
journal = {20th Century Fox},
pages = {1--10},
title = {{Die Hard}},
volume = {1},
year = {1988}
}
\end{filecontents}
\addbibresource{\jobname.bib}

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite]{
          \map{
      \perdatasource{mwe.bib}
      \step[fieldsource=entrykey, match=citea, replace=citeb]
       }
        }
}

\begin{document}
Yippee Ki Yay, motherf****r.\cite{citeb}
\printbibliography
\end{document}

更改 journal 字段是\step[fieldsource=journal, match=20th Century Fox, replace=The Walt Disney Company]可行的,但是对于 entrykey 字段似乎不起作用。有什么建议吗?

答案1

这是一个使用 的可能选项entryclone。然后我将其添加到dataonly的选项中,citea以确保它永远不会出现。(虽然我不清楚您的确切用例。)

请注意,您必须使用journaltitle而不是journal来完成这项工作。

你仍然需要\nocite{citea}。但无论如何,你必须这样做才能使源地图正常工作。

平均能量损失

\documentclass{article}
\usepackage[defernumbers=true,backend=biber,style=chem-acs,articletitle=true,doi=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{citea,
author = {McClane, John},
journaltitle = {20th Century Fox},
pages = {1--10},
title = {{Die Hard}},
volume = {1},
date = {1988}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite]{
    \map{
      \step[fieldsource=entrykey, match=citea, final]
      \step[entryclone={citeb}]
      \step[fieldset=options, fieldvalue={dataonly}]
    }
  }
}
\begin{document}
\nocite{citea}
Yippee Ki Yay, motherf****r.\cite{citeb}
\printbibliography
\end{document}

输出

相关内容