biblatex:程序变更

biblatex:程序变更

我很想改变 的参考书目表示@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 页

  1. 现在,首先我想将年份放在括号中,就像期刊文章那样。我试过了,\DeclareFieldFormat[inproceedings]{year}{(#1)}但什么也没改变。
  2. 其次,我想摆脱出版商和地址(或者可能只是地址,我需要看看它提供了什么......)。
  3. 顺便问一下,也许你还可以告诉我如何隐藏期刊文章中打印的月份。谢谢。

- - - - -编辑 - - - - - - -

以下是 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因为locationpublisher都是文字列表。

相关内容