![Biblatex 和图书馆领域](https://linux22.com/image/347409/Biblatex%20%E5%92%8C%E5%9B%BE%E4%B9%A6%E9%A6%86%E9%A2%86%E5%9F%9F.png)
我有许多 Bibtex 数据库文件,正在更新其biblatex
格式。在 BibTeX 中,我创建了一个自定义图书馆字段,该字段以小写字母显示在书目条目的末尾。我通过创建新的书目样式来实现这一点。
我只想让图书馆字段出现在每个引用的末尾。我知道它可能在 262 页手册的某个地方,但坦率地说,即使对于使用 LaTeX 和 BibTeX 近 30 年的人来说,这本手册也相当难以理解(哦,这是一本很好的“快速入门”指南!)。任何关于如何快速轻松地做到这一点的指示都会受到欢迎。
我正在使用这种authoryear
风格。
答案1
使用标准样式,您只需添加一个调用即可将library
字段直接打印到宏中addendum+pubstate
\DeclareFieldFormat{library}{\textsc{call number}\addcolon\space#1}
\renewbibmacro*{addendum+pubstate}{%
\printfield{addendum}%
\newunit\newblock
\printfield{pubstate}%
\newunit\newblock
\printfield{library}}
平均能量损失
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{pennington1981,
editor = {Pennington, Kenneth},
title = {Johannis {Teutonici} apparatus glossarum in
{Compilationem} tertiam},
date = 1981,
volume = 1,
number = 3,
series = {Monumenta iuris canonici, Series A: Corpus glossatorum},
location = {Rome},
publisher = {Biblioteca apostolica vaticana},
library = {BV 104 .M81 ser.A v.3 t.1},
}
\end{filecontents*}
\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat{library}{\textsc{call number}\addcolon\space#1}
\renewbibmacro*{addendum+pubstate}{%
\printfield{addendum}%
\newunit\newblock
\printfield{pubstate}%
\newunit\newblock
\printfield{library}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
答案2
供(未来)参考,这种源映射相当简单。然而,Biber 是必需的。
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@Book{pennington1981,
editor = {Pennington, Kenneth},
title = {Johannis {Teutonici} apparatus glossarum in
{Compilationem} tertiam},
date = 1981,
volume = 1,
number = 3,
series = {Monumenta iuris canonici, Series A: Corpus glossatorum},
location = {Rome},
publisher = {Biblioteca apostolica vaticana},
library = {BV 104 .M81 ser.A v.3 t.1},
}
\end{filecontents*}
\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite]{
\step[fieldsource=library,]
\step[fieldset=addendum, fieldvalue={\textsc{call number:}~}]
\step[fieldset=addendum, origfieldval, append]
}
}
}
\begin{document}
\section{Publications}
\nocite{*}
\printbibliography
\end{document}