我正在使用该authoryear
样式,并且希望我的文章的 bib 条目符合以下模式:
作者姓氏,作者名字的首字母:文章标题,在:期刊标题,卷数,发行量/两位数年份,页数
例子:
Mock, T. (2006): 媒介是什么?, 载于:Publizistik, Jg. 51,重量 2/06,页 183-200
我试图通过以下两行代码来实现这一点:
\DeclareFieldFormat*{volume}{Jg.\adddot\space#1\addcomma}
\DeclareFieldFormat*{number}{\space Heft\space#1\addslash\printfield{year}}
问题是,它\printfield{year}
当然会打印出 .bib 文件中条目的四位数年份。
有什么方法可以缩短年份以仅保留最后两位数字?
提前致谢。
干杯。
编辑:我看到了这个问题仅显示 Biblatex 引文中的最后两年数字,但在尝试了一些方法之后,我发现所提出的解决方案仅适用于文本,而不适用于DeclareFieldFormat
。
我尝试使用
\DeclareFieldFormat{shortyear}{\mkbibshortyear#1}
\def\mkbibshortyear#1#2#3#4{#3#4}
\newrobustcmd*{\shortyear}{%
\AtNextCite{\DeclareFieldAlias{year}{shortyear}}%
\printfield{year}}
首先然后
\DeclareFieldFormat*{number}{\space Heft\space#1\addslash\printfield{\shortyear{year}}}
但它没有作用。
梅威瑟:
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=authoryear-icomp,%
dashed=false,%
sorting=nyvt,%
autocite=footnote,%
autopunct=true,%
backrefstyle=three+,%
isbn=false,%
doi=false,%
pagetracker=true,%
useprefix=true,%
uniquename=init,%
firstinits=true,%
maxcitenames=2,%
]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{art.2015,
author = {Some Author},
year = {2015},
journaltitle = {Some Journal},
title = {Some Article},
volume = {51},
number = {2}
pages = {123-456}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\renewcommand*{\nameyeardelim}{\addcomma\space}
\renewcommand*{\labelnamepunct}{\addcolon\space}
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\multinamedelim}
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{labelname}{last-first}
\DeclareFieldFormat{title}{#1}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{shortyear}{\mkbibshortyear#1}
\def\mkbibshortyear#1#2#3#4{#3#4}
\newrobustcmd*{\shortyear}{%
\AtNextCite{\DeclareFieldAlias{year}{shortyear}}%
\printfield{year}}
\DeclareFieldFormat*{number}{\space Heft\space#1\addslash\shortyear{year}}
\begin{document}
Some Text \autocite{art.2015}
\printbibliography
\end{document}
答案1
你应该使用来自链接问题的声明:
\DeclareFieldFormat{shortyear}{\mkbibshortyear#1}
\def\mkbibshortyear#1#2#3#4{#3#4}
然后将数字格式的定义更改为:
\DeclareFieldFormat*{number}{\space Heft\space#1\addslash\printfield[shortyear]{year}}