我很想改变 的参考书目表示@inproceedings
。我使用 biblatex 而不使用 biber(因为我无法让 biber 工作),我的参考书目定义目前如下:
\usepackage[style=alphabetic,maxbibnames=99,sorting=anyt,firstinits=true,url=false,doi=false]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand{\labelalphaothers}{}
\renewcommand{\labelnamepunct}{\addcolon\space}
\renewbibmacro{in:}{}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{title}{\enquote{\textsl{#1}}}
\DeclareFieldFormat*{volume}{\textbf{#1}}
\renewbibmacro*{volume+number+eid}{\printfield{volume}}
\AtEveryBibitem{\clearfield{issn}}
这对于期刊和书籍来说基本有效,但论文集看起来并不像我想要的那样。典型的条目如下:
@inproceedings{Wilis2001,
address = {Les Ulis, France},
author = {Wills, A.},
booktitle = {JDN 9 – Neutrons et Magn\'{e}tisme},
doi = {10.1051/jp4:2001906},
file = {:D\:/NP430 MasterThesis/Bibliography/2001_JDN9_Wills_Magnetic structures and their determination.pdf:pdf},
issn = {1155-4339},
pages = {133--158},
publisher = {EDP Sciences},
title = {{Magnetic structures and their determination using group theory}},
url = {http://www.edpsciences.org/10.1051/jp4:2001906},
year = {2001}
}
我得到了这样的信息:
答:遗嘱:“磁结构及其利用群论的确定“,JDN 9 - 中子和磁性,Les Ulis,法国:EDP Sciences,2001 年,第 133-158 页
- 现在,首先我想将年份放在括号中,就像期刊文章那样。我试过了,
\DeclareFieldFormat[inproceedings]{year}{(#1)}
但什么也没改变。 - 其次,我想摆脱出版商和地址(或者可能只是地址,我需要看看它提供了什么......)。
- 顺便问一下,也许你还可以告诉我如何隐藏期刊文章中打印的月份。谢谢。
- - - - -编辑 - - - - - - -
以下是 MWE:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[backend=biber,style=alphabetic,maxbibnames=99,sorting=anyt,firstinits=true,url=false,doi=false]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand{\labelalphaothers}{}
\renewcommand{\labelnamepunct}{\addcolon\space}
\renewbibmacro{in:}{}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat*{title}{\enquote{\textsl{#1}}}
\DeclareFieldFormat*{volume}{\textbf{#1}}
\renewbibmacro*{volume+number+eid}{\printfield{volume}}
\AtEveryBibitem{\clearfield{issn}}
\DeclareFieldFormat[inproceedings]{booktitle}{Conference: #1}
\DeclareFieldFormat[inproceedings]{date}{\ifbibliography{\mkbibparens{#1}}{#1}}
\AtEveryBibitem{%
\ifentrytype{article}
{\clearfield{month}%
\clearfield{day}}
{}%
\ifentrytype{inproceedings}
{\clearlist{address}
\clearfield{month}
}
{}}
\begin{filecontents}{\jobname.bib}
@inproceedings{Wilis2001,
address = {Les Ulis, France},
author = {Wills, A.},
booktitle = {JDN 9 -- Neutrons et Magn\'{e}tisme},
doi = {10.1051/jp4:2001906},
file = {:D\:/NP430 MasterThesis/Bibliography/2001_JDN9_Wills_Magnetic structures and their determination.pdf:pdf},
issn = {1155-4339},
pages = {133--158},
month = {July},
publisher = {EDP Sciences},
title = {{Magnetic structures and their determination using group theory}},
url = {http://www.edpsciences.org/10.1051/jp4:2001906},
year = {2001}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
如您所见,我设法让 biber 正常工作(简单的更新可以创造奇迹……)。但我仍然无法访问年份,即使
\DeclareFieldFormat[inproceedings]{date}{\ifbibliography{\mkbibparens{#1}}{#1}}
另外,我可以删除出版商和月份的建议等等,\clearfields
但不能删除地址......
答案1
标准书目驱动程序会打印日期\printdate
和朋友。因此,您必须更改date
格式:
\DeclareFieldFormat[inproceedings]{date}{\ifbibliography{\mkbibparens{#1}}{#1}}
biblatex 1.7 版添加了日期格式功能,但它在英文文档中无法使用。这是由于已知错误在英语本地化模块 (english.lbx) 中。要修复此问题(以及其他一些 1.7 版错误),您可以升级到biblatex 2.0.此测试版本需要比伯 1.0backend
并且该选项的默认设置为biber
。要改用 bibtex,请添加backend=bibtex
到 biblatex 加载时选项设置中。或者,您可以使用错误修复文档在 biblatex 的“caretaker”github repo 中。
您可以使用和朋友隐藏参考书目中的数据\clearfield
。有几个问题已经涵盖了这个主题。以下是一个例子。
\AtEveryBibitem{%
\ifentrytype{article}
{\clearfield{month}%
\clearfield{day}}
{}%
\ifentrytype{inproceedings}
{\clearlist{publisher}%
\clearlist{location}}
{}}
字段address
是 的别名location
,因此我们location
改为抑制。我们使用\clearlist
因为location
和publisher
都是文字列表。