书目样式 DIN 1505 T2

书目样式 DIN 1505 T2

我正在尝试适应德国书目规范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}

在此处输入图片描述

这是我根据自己理解的内容即兴编写的。如果有一些不必要的命令,请随意编辑答案。

相关内容