我希望url
使用该authoryear
样式打印字段,但仅限于@MISC
条目类型。
我的解决方法是style=authoryear, url=false
在包选项中设置,并将条目的字段设置为title
等于。在这个特定情况下,这对我来说没问题,因为条目的并不重要,但我想知道是否有更好的方法来做到这一点。url
@MISC
title
@MISC
- url
>title
通过以下前言代码实现
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map[overwrite]{
\pertype{misc}
\step[fieldsource=url]
\step[fieldset=title, origfieldval]
}
}
}
答案1
0. 使用@online
代替@misc
无论全局选项设置如何,条目@online
类型始终显示字段。url
url
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, url=false]{biblatex}
\begin{filecontents}{\jobname.bib}
@online{bronto,
author = {Anne Elk},
title = {Towards a Unified Theory on Brontosauruses},
date = {1972-11-16},
url = {http://example.edu/~elk/bronto.pdf},
urldate = {2015-09-07},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{bronto}
\printbibliography
\end{document}
1. 设置url
每个类型的选项(biblatex
3.15 及以上版本)
自biblatex
3.15 起,您可以url
在标准样式中设置每种类型的选项(https://github.com/plk/biblatex/pull/1000),因此您可以url
全局禁用,但重新启用它@misc
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear, url=false]{biblatex}
\ExecuteBibliographyOptions[misc]{url=true}
\begin{filecontents}{\jobname.bib}
@misc{bronto,
author = {Anne Elk},
title = {Towards a Unified Theory on Brontosauruses},
date = {1972-11-16},
url = {http://example.edu/~elk/bronto.pdf},
urldate = {2015-09-07},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{bronto}
\printbibliography
\end{document}
url
2.使用sourcemap删除字段
此解决方案不使用该url
选项。相反,它会删除除源映射之外的所有类型的url
和字段。urldate
@misc
优点是该字段实际上永远消失了,并且不再用于生成标签数据(例如标签日期)。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\pernottype{misc}
\step[fieldset=url, null]
\step[fieldset=urldate, null]
}
}
}
\begin{filecontents}{\jobname.bib}
@misc{bronto,
author = {Anne Elk},
title = {Towards a Unified Theory on Brontosauruses},
date = {1972-11-16},
url = {http://example.edu/~elk/bronto.pdf},
urldate = {2015-09-07},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\autocite{bronto}
\printbibliography
\end{document}
在所有情况下,输出将是