更改参考文献中的日期格式

更改参考文献中的日期格式

我仍在努力按照我所在部门的标准格式化我的参考文献。我目前正在尝试更改日期格式,但失败了。

我需要:

30. Sept. 2003.

然而,我所做的一切似乎都没有任何影响。附件是 MWE:

\documentclass[a4paper,12pt]{article}
\usepackage{xpatch}
\usepackage{polyglossia}
\setmainlanguage[variant=british]{english}
\usepackage{fontspec,xltxtra,xunicode}
\usepackage{csquotes}
\usepackage{url}
\usepackage[style=authoryear-ibid,backend=biber,doi=false,isbn=false,url=false,autolang=hyphen]{biblatex}
     \addbibresource{Merkliste.bib}
     \renewcommand*{\postnotedelim}{\addcolon\space}
     \renewbibmacro{in:}{\ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}
    \renewcommand*{\intitlepunct}{\addspace}
     \renewcommand{\bibpagespunct}{\ifentrytype{incollection}{\addperiod\addspace}{\addcolon\addspace}}

\DeclareFieldFormat
  [online]
  {url}{{#1}}
\DeclareFieldFormat
  [online]
  {title}{\mkbibquote{#1\isdot}}
\xpatchbibmacro{title}{\printfield[titlecase]{subtitle}}%
{\printfield[titlecase]{subtitle}\ifentrytype{online}{\addperiod}{}}%
{}{}%
\DeclareFieldFormat{urldate}{#1}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\DeclareFieldFormat{pages}{#1}
%% Here are my tries.
\xpatchbibmacro{url+urldate}{\printfield{urlyear}\mkbibmonth{\thefield{urlmonth}}{\thefield{urlday}}}{}{}
    \xpatchbibmacro{date+extrayear}{%
  \printtext[parens]%
}{%
  \setunit*{\addperiod\space}%
  \printtext%
}{}{}

\xpatchbibmacro{title}{\printfield[titlecase]{subtitle}}%
{\printfield[titlecase]{subtitle}\ifentrytype{article}{\addperiod}{}}%
{}{}%

\AtEveryBibitem{\clearlist{language}} % clears language
\AtEveryBibitem{\clearfield{note}}    % clears notes
\AtEveryBibitem{\clearfield{series}}   % clears Series
\AtEveryBibitem{\ifentrytype{book}{\clearfield{number}}{}}
\AtEveryBibitem{\ifentrytype{book}{\clearfield{pages}}{}}

\begin{document}
\nocite{*}. 
\printbibliography
\end{document}

和一个.bib-extract:

![@online{secretariat_a_la_politique_linguistique_quebec_dynamique_2014,
    Author = {{Secr{\'e}tariat {\`a} la politique linguistique Qu{\'e}bec}},
    Date-Modified = {2014-08-03 17:01:54 +0000},
    File = {Dynamique des langues en quelques chiffres \: Tableaux - Secr{\'e}tariat {\`a} la politique linguistique.pdf:/Users/Moritz/Desktop/Dynamique des langues en quelques chiffres \: Tableaux - Secr{\'e}tariat {\`a} la politique linguistique.pdf:application/pdf},
    Month = jul,
    Title = {La dynamique des langues en quelques chiffres : Tableaux},
    Urldate = {2014-07-28},
    Year = {2014}}][1]

这是我的不完美输出

答案1

Biblatex 提供了不同的选项来格式化日期。如果格式不是预定义的格式,则可以使用\DeclareFieldFormat提供现在的格式,在这种情况下,我们可以提供一种格式urldate

\DeclareFieldFormat{urldate}{%
  \thefield{urlday}\adddot\addspace%
  \mkbibmonth{\thefield{urlmonth}}\adddot\addspace%
  \thefield{urlyear}\isdot}

要使用月份的缩写版本,可以使用dateabbrev选项biblatex

在此处输入图片描述

答案2

biblatex使用多个日期字段。例如,我们希望重新格式化date字段的输出以及。幸运的是,通过或调用所有这些日期字段,所以这就是我们要查看的。我们还需要计算字段仅包含一年或日期范围的可能性,因此我们需要使用 if-then 结构。urldatebiblatex\mkbibdatelong\mkbibdateshortdate1986/1990

由于文档语言设置为英式英语,因此我们希望以 为基础british.lbx。它包含以下定义:

  \protected\def\mkbibdatelong#1#2#3{%
    \iffieldundef{#3}
      {}
      {\mkbibordinal{\thefield{#3}}%
       \iffieldundef{#2}{}{\nobreakspace}}%
    \iffieldundef{#2}
      {}
      {\mkbibmonth{\thefield{#2}}%
       \iffieldundef{#1}{}{\space}}%
    \stripzeros{\thefield{#1}}}%

我们需要将其复制到我们的序言中,并将其包含在\DefineBibliographyExtras{british}和的论点中:

  1. biblatex使用选项告诉我们想要使用更长的日期格式alldates=long
  2. 告诉biblatex使用选项缩写月份名称dateabbrev=true
  3. 删除日期字段中的字母序数(\mkbibordinal);
  4. 恢复\stripzeros先前由命令触发的\mkbibordinal
  5. 用 插入我们的标点序数\adddot

梅威瑟:

\documentclass[a4paper,12pt]{article}
\usepackage{polyglossia}
\setmainlanguage[variant=british]{english}
\usepackage{fontspec}
\usepackage{csquotes}
\usepackage[style=authoryear-ibid,doi=false,isbn=false,url=false,autolang=hyphen,alldates=long,dateabbrev=true]{biblatex}
 \addbibresource{Merkliste.bib}

\DefineBibliographyExtras{english}{%
    \protected\def\mkbibdatelong#1#2#3{%
    \iffieldundef{#3}
      {}
      {\stripzeros{\thefield{#3}}\adddot%
       \iffieldundef{#2}{}{\nobreakspace}}%
    \iffieldundef{#2}
      {}
      {\mkbibmonth{\thefield{#2}}%
       \iffieldundef{#1}{}{\space}}%
    \stripzeros{\thefield{#1}}}%
}

\begin{document}
\nocite{*}
\printbibliography
\end{document}

您会发现样本书目中的“July”并未缩写,因为四个字母的月份通常不缩写。

相关内容