我的 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。