根据给定的样式格式化注释字段给定的日期

根据给定的样式格式化注释字段给定的日期

我的 biblio.bib 中有以下条目:

@article{author1:2015,
  author={author1 and author2,
  title={Something good},
  journal={A very good journal},
  year=2015,
  month=jun,
  volume=26,
  pages={20--30},
  number=6,
  issn={1111-1111},
  note={Published online in December 2013},
}

以及以下 MWE:

\documentclass{article}

\usepackage[backend=bibtex,style=ieee]{biblatex}
\addbibresource{biblio.bib}

\begin{document}

From a very good journal~\cite{author1:2015}.

\printbibliography

\end{document}

问题是:我可以note根据用于字段month和的样式来格式化字段中的月份和年份year吗?

答案1

在 biblatex 中,注释字段是一个“文字字段”,即“按原样打印”。您可以使用 \DeclareFieldFormat 为整个字段设置样式,但您(通常)不能对字段内的元素进行操作。

这是一个基本的解决方案。

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@preamble{ "\providecommand{\mystring}[2]{#1 and #2}" }
@article{author1:2015,
  author={author1 and author2},
  title={Something good},
  journal={A very good journal},
  year=2015,
  month=jun,
  volume=26,
  pages={20--30},
  number=6,
  issn={1111-1111},
  orignote={Published online in December 2013},
  note={Published online in \mystring{Dec.}{2013}},
}
\end{filecontents}

\usepackage[T1]{fontenc}
\usepackage[backend=bibtex,style=ieee]{biblatex}
\addbibresource{biblio.bib}

% \newcommand\mystring[2]{Actually do #2 and #1}
\begin{document}

From a very good journal~\cite{author1:2015}.

\printbibliography

\end{document}

\providecommand如果未定义任何内容,则会提供一个命令,因此您可以根据\newcommand需要在序言中使用它(它将首先被看到)。

此解决方案的要点是,您可以provide在文件中以基本格式列出每个月的命令列表.bib,然后.tex在需要时在单个文件中重新定义它们。实际上,这并不好看,但note以这种方式使用该字段(在我看来)从一开始就不符合最佳实践。(每个人都知道,两个技巧可以让它变得正确。)

我相信\DeclareSourcemap解决方案是可行的,但最近我没有时间去实现它。如果没有其他人这样做,我可能会尝试在下个月(晚些时候)重新审视这个答案。请注意,这需要使用 Biber 而不是 BibTeX。

相关内容