根据剑桥语法,最常见的日期写法如下:
1993 年 1 月 20 日
并不是
1993 年 1 月 20 日
但是,“th”仍然默认由 biber+biblatex 产生:
\documentclass[british]{article}
\usepackage{babel}
\usepackage[backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{mybook,
author = {Author},
date = {1993-01-20},
title = {Wonderful Tiny Fact (WTF)}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{mybook}
\printbibliography
\end{document}
虽然我并不反对或赞成在“Jan”后面使用句号,但我认为使用“th”与最普遍的风格背道而驰。除了上述语法链接外,请参阅巴斯大学的编辑风格,其中明确禁止这样做。我的英国英语老师也明确认为这是错误的。
当然,可能有一个技术解决方案来省略“th”(见LaTeX 中的日期格式为正文)。
如何省略参考书目中的日期后缀(“st”、“nd”和“th”)?
目前默认打印“th”的设置实际上可以归类为错误吗?
答案1
设置dateabbrev=false
选项以使用 January 而不是 Jan。澳大利亚风格不使用序数。因此,我们可以从 australian.lbx 复制日期定义,如下所示:
\documentclass[british]{article}
\usepackage{babel}
% dateabbrev=false will stop abbreviation of months
\usepackage[backend=biber,dateabbrev=false]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{mybook,
author = {Author},
date = {1993-01-20},
title = {Wonderful Tiny Fact (WTF)}
}
\end{filecontents}
\addbibresource{\jobname.bib}
% Taken from australian.lbx which does not use ordinal numbers
\DefineBibliographyExtras{british}{%
\protected\def\mkbibdatelong#1#2#3{%
\iffieldundef{#3}
{}
{\stripzeros{\thefield{#3}}%
\iffieldundef{#2}{}{\nobreakspace}}%
\iffieldundef{#2}
{}
{\mkbibmonth{\thefield{#2}}%
\iffieldundef{#1}{}{\space}}%
\iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\stripzeros{\thefield{#1}}}}%
\protected\def\mkbibseasondateshort#1#2{%
\mkbibseason{\thefield{#2}}%
\iffieldundef{#1}{}{\space}%
\mkyearzeros{\thefield{#1}}}%
\protected\def\mkbibseasondatelong#1#2{%
\mkbibseason{\thefield{#2}}%
\iffieldundef{#1}{}{\space}%
\mkyearzeros{\thefield{#1}}}%
}
\pagestyle{empty}
\begin{document}
\cite{mybook}
\printbibliography
\end{document}