稍微修改 biblatex 中的样式

稍微修改 biblatex 中的样式

编辑:我尝试制作 MWE,希望这样是正确的。如果不行,请告诉我!

.tex 文档:

\documentclass[a4paper,12pt]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{url}
\usepackage{csquotes}

\usepackage[
    backend=biber,
    style=authoryear,
    bibstyle=authortitle,
    sortlocale=de_DE,
    natbib=true,
    url=true, 
    doi=true,
    eprint=false
]{biblatex}

\DefineBibliographyStrings{german}{% 
urlseen = {Stand:}, 
}

\renewbibmacro*{cite}{% 
  \iffieldundef{shorthand} 
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} 
       {\usebibmacro{cite:label}% 
        \setunit{\addspace}} 
       {\printnames{labelname}% 
        \setunit{\addspace}% 
        \ifnamesequal{labelname}{editor} 
          {\printtext[parens]{\usebibmacro{editorstrg}}} 
          {}% 
        \setunit{\nameyeardelim}}% 
     \ifentrytype{online} 
     {\setunit{\addcomma\space}% 
        \usebibmacro{urldate}
     \ifnameundef{labelname}
       {\setunit{\addcomma\space}% 
        \usebibmacro{url}
        } 
       {}} }
    {\usebibmacro{cite:shorthand}}}   

\addbibresource{MWE.bib} 

\begin{document}

This is cited from a book \footcite[Vgl.][32\psq]{fritzsch}

This is cited from a website \footcite[Vlg.][]{paulip}

\printbibliography 

\end{document}

.bib 文档:

@Online{paulip,
  title   = {Pauli-Prinzip},
  url     = {http://www.chemie.de/lexikon/Pauli-Prinzip.html},
  urldate = {2018-08-12},
}

@Book{fritzsch,
  author    = {Harald Fritzsch},
  title     = {Elementarteilchen - Bausteine der Materie},
  year      = {2004},
  publisher = {Verlag C.H. Beck},
  location  = {München},
}

我正在使用 biblatex,但在按照要求引用时遇到了一些问题。

有三件事我需要改变,但我完全不知道该如何做。

  1. “renewbibmacro” 代码片段(当我想在作者未知的情况下显示 URL 和 URL 在引文中出现的日期时,我在网上找到了它)也改变了年份,导致书籍条目中突然不再显示年份,这并不是有意为之。书籍引文应如下所示:

在此处输入图片描述

  1. 我希望“Stand: urldate”显示在 url 后面,并且尽可能用方括号 [] 表示,而不是用圆括号 () 表示

  2. 我需要做什么才能使参考书目中的姓氏和名字不被逗号分隔,并且名字后面有一个逗号而不是句号?含义而不是

    “Fritzsch,Harald。Elementarteilchen - Bausteine der Materie。慕尼黑:Verlag CH Beck,2004 年。”

    这是

    “Fritzsch Harald,《Elementarteilchen - Bausteine der Materie》。慕尼黑:Verlag CH Beck,2004 年。”

答案1

您可能想尝试以下步骤。

家庭和名字之间的逗号用 控制\revsdnamepunct,标签/排序名称和标题之间的逗号用 控制nametitledelim

我已经cite根据 中的当前定义对 bibmacro 重新定义进行了现代化authoryear.cbx。与原始定义的唯一区别是添加了块

     \ifboolexpr{test {\ifnameundef{labelname}} and test {\ifentrytype{online}}}
       {\setunit{\addcomma\space}%
        \usebibmacro{url+urldate}}
       {}

@online打印不带(作者/标签)名称的条目的 URL 和访问日期。

\DeclareFieldFormat{urldate}位负责处理方括号。将新定义与原始定义进行比较biblatex.def

s\DeclareLabeldate确保urldate不会用于填充用于引用的标签日期并抑制条目的“nd”/nodate 字符串@online

\documentclass[a4paper,12pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{url}
\usepackage{csquotes}

\usepackage[
    backend=biber,
    citestyle=authoryear,
    bibstyle=authortitle,
    sorting=nyt,
    eprint=false
]{biblatex}

\renewcommand*{\revsdnamepunct}{}
\renewcommand*{\mkbibnamefamily}{\textsc}
\DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}

\DeclareDelimFormat{nameyeardelim}{\addcomma\space}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
       {\printnames{labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
     \usebibmacro{cite:labeldate+extradate}%
     \ifboolexpr{test {\ifnameundef{labelname}} and test {\ifentrytype{online}}}
       {\setunit{\addcomma\space}%
        \usebibmacro{url+urldate}}
       {}}
    {\usebibmacro{cite:shorthand}}}

\DefineBibliographyStrings{german}{%
  urlseen = {Stand},
}

\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\addcolon\space#1}}

\DeclareLabeldate{%
  \field{date}
  \field{year}
  \field{eventdate}
  \field{origdate}
  \literal{nodate}
}

\DeclareLabeldate[online]{%
  \field{date}
  \field{year}
  \field{eventdate}
  \field{origdate}
}

%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@online{paulip,
  title   = {Pauli-Prinzip},
  url     = {http://www.chemie.de/lexikon/Pauli-Prinzip.html},
  urldate = {2018-08-12},
}
@book{fritzsch,
  author    = {Harald Fritzsch},
  title     = {Elementarteilchen},
  subtitle  = {Bausteine der Materie},
  year      = {2004},
  publisher = {Verlag C.H. Beck},
  location  = {München},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
This is cited from a book \footcite[Vgl.][32\psq]{fritzsch}

This is cited from a website \footcite[Vlg.][]{paulip}

\printbibliography
\end{document}

Vgl. Fritzsch,2004,S. 32 f.//Vlg. Pauli-Prinzip,网址:http://www.chemie.de/lexikon/Pauli-Prinzip.html [截止日期:2018 年 8 月 12 日]。

相关内容