![书目样式 DIN 1505 T2](https://linux22.com/image/299912/%E4%B9%A6%E7%9B%AE%E6%A0%B7%E5%BC%8F%20DIN%201505%20T2.png)
我正在尝试适应德国书目规范DIN 1505 T2。
正如我在最小示例中所看到的,我几乎做到了:
\documentclass{article}
\usepackage{filecontents}
\usepackage[style=alphabetic,backend=biber,maxnames=99,maxalphanames=1, backref=false,firstinits=true,]{biblatex}
\DeclareNameAlias{default}{last-first}
\renewcommand*{\multinamedelim}{\addspace\addsemicolon\addspace}
\renewcommand*{\finalnamedelim}{\addspace\addsemicolon\addspace}
\renewcommand*{\multilistdelim}{\addspace\addsemicolon\addspace}
\renewcommand*{\finallistdelim}{\addspace\addsemicolon\addspace}
\renewcommand*{\labelnamepunct}{\addcolon\addspace}
\renewcommand*{\subtitlepunct}{\addspace\addcolon\addspace}
\renewcommand*{\finentrypunct}{}
\DeclareFieldFormat*{title}{\emph{#1}}
\DeclareFieldFormat*{subtitle}{\emph{#1}}
\DeclareFieldFormat*{booktitle}{\emph{#1}}
\DeclareFieldFormat*{booksubtitle}{\emph{#1}}
\DeclareFieldFormat*{journaltitle}{#1}
\DeclareFieldFormat[periodical]{issuetitle}{\emph{#1}}
\DeclareFieldFormat*{maintitle}{\emph{#1}}
\renewcommand*{\labelalphaothers}{}
\renewcommand*{\intitlepunct}{}
\DefineBibliographyStrings{german}{in={}}
\DefineBibliographyStrings{english}{in={}}
\begin{filecontents*}{\jobname.bib}
@ARTICLE{Sun,
author={Yanhua Sun and Yick-Sing Ho and Lie Yu},
journal={IEEE Transactions on Magnetics},
title={Dynamic Stiffnesses of Active Magnetic Thrust Bearing Including Eddy-Current Effects},
year={2009},
month={Jan},
volume={45},
number={1},
}
@book{Moon,
title={Field Theory Handbook},
author={Moon, P. and Spencer, D.E.},
year={1961},
location={Berlin, Heidelberg},
publisher={Springer}
}
\end{filecontents*}
\bibliography{\jobname.bib}
\begin{document}
\cite{Sun,Moon}
\printbibliography
\end{document}
这使:
我最后无法格式化的是序列期刊卷号月年对于期刊文章和地点-出版商-年份用于书籍。
目前看来
journal volume.number (month year)
但我需要它
journal volume.number, month year
我可以通过以下方式删除括号
\newbibmacro*{issue+date}{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
但我无法获得简单的逗号,
。如何在日期前添加逗号?
书籍也出现了类似的问题,我需要
location: publisher date
代替
location: publisher, date
在这种情况下,如何删除逗号?
答案1
我终于成功了。这三个宏是必需的:
为了journal volume.number, month year
% Comma before date; date not in parentheses
\renewbibmacro*{issue+date}{%
\setunit*{\addcomma\space}%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addcomma\addspace}%
\usebibmacro{date}}%
\newunit}
% Comma before and after journal volume
\renewbibmacro*{volume+number+eid}{%
\setunit*{\addcomma\space}%
\iffieldundef{eid}{
\printfield{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\newunit}%
{
\printfield{volume}%
\setunit*{\adddot}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}}
以及location: publisher date
% remove comma after publisher
\newbibmacro*{publisher+location+date}{%
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit*{\space}%
\usebibmacro{date}%
\newunit}
这是我根据自己理解的内容即兴编写的。如果有一些不必要的命令,请随意编辑答案。