编辑:我尝试制作 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,但在按照要求引用时遇到了一些问题。
有三件事我需要改变,但我完全不知道该如何做。
- “renewbibmacro” 代码片段(当我想在作者未知的情况下显示 URL 和 URL 在引文中出现的日期时,我在网上找到了它)也改变了年份,导致书籍条目中突然不再显示年份,这并不是有意为之。书籍引文应如下所示:
我希望“Stand: urldate”显示在 url 后面,并且尽可能用方括号 [] 表示,而不是用圆括号 () 表示
我需要做什么才能使参考书目中的姓氏和名字不被逗号分隔,并且名字后面有一个逗号而不是句号?含义而不是
“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}