所以我已经大致满足了论文的正式要求。现状已完整地附在 MWE 中。它基本上包含了我在这个网站上要求的花絮。
需要修复一些与源无关的事情:
参考文献中作者后面的逗号应该省略。
所有姓名的顺序都应为姓氏在前,但这在参考文献和参考书目中不起作用,该顺序仅适用于名字。
参考文献中的名称没有用 分隔
/
(目前是and
)。
由于我自己获得了-keylast visit
的工作位urlseen
(这对于我对 biblatex 的了解来说非常重要),我认为只剩下与源相关的一些内容收藏中/诉讼中来源(这些出版物都应该按照这一样式定义进行格式化)。
以下元素的顺序应如下(未提及的元素应保持原样):
文章标题
“在:”
编辑姓名,按姓氏从前到后的顺序排列,名字以首字母缩写
“(編輯)”或“(編輯)”
论文集标题/合集标题/主标题
诉讼编号,如果有
论文集版本,如果高于 1
出版商所在地
页面
现状如下:
Brandt, A. von/E. Hoffmann (1987):
11 世纪至 1448 年位于中心的北欧各州,载于:欧洲的顶部和中部,Seibt,F./Smith,J. (编辑),第 4 版,《欧洲历史手册》,第 13 期。 2,Klett-Cotta,斯图加特,第 884-917 页。
它应该是这样的一个例子:
Brandt,A. von / Hoffmann,E. (1987):
位于中心的北欧各州,从 11 世纪到 1448 年,载于:欧洲最高和最低时期,载于:Seibt,F./Smith,J. (编辑):《欧洲历史手册》,第 13 期。 2,第 4 版,Klett-Cotta,斯图加特,第 884-917 页。
平均能量损失
\documentclass[
12pt,
a4paper
]
{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[
language=auto,
style=authoryear-ibid,
backend=bibtex,
hyperref=true,
isbn=false,
doi=false,
citereset=chapter,
maxcitenames=3,
dashed=false,
sorting=nyt,
firstinits=true,
ibidtracker=true,
maxbibnames=99
]{biblatex}
\usepackage{xpatch}
%% comma after every item for bibiliography entries
\renewcommand*{\newunitpunct}{\addcomma\space}
%% parentheses around year in references
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{%
\printtext[bibhyperref]{%
\printtext[parens]{%
\printfield{labelyear}%
\printfield{extrayear}}}}}
%% correct order of publisher and location
\renewbibmacro*{publisher+location+date}{%
\newunit
\printlist{publisher}%
\newunit
\printlist{location}%
\newunit}
%% right order of words 'volume' und 'issue' with comma in front
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+eid}
\setunit{\addcomma\space}% THIS LINE CHANGED to add comma
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
%taken from standard.bbx
\renewbibmacro*{issue+date}{%
\printtext{% REMOVED parenthesis here
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}}%
\newunit}
%% bold bibliography "label" followed by colon and linebreak
\renewbibmacro*{begentry}{\mkbibbold\bgroup}
\xapptobibmacro{date+extrayear}{\addcolon\egroup}{}{}
\renewcommand*{\labelnamepunct}{\par\nobreak}
%% linebreak before URLs and colon before date of last visit
\xpretobibmacro{url+urldate}{\setunit{\newunitpunct\par\nobreak}}{}{}
\DefineBibliographyStrings{english}{%
urlseen = {last visit\addcolon}
}
%% colon before date of last visit
\DeclareFieldFormat{urldate}{\mkbibparens{\bibstring{urlseen}\addcolon\space#1}}
%% no indent
\setlength{\bibhang}{0pt}
%% one empty line between to bib-entries
\setlength{\bibitemsep}{\baselineskip} %% \baselineskip gibt hier an, dass Zeilenabstand unterhalb des Absatzes der dokumentweite Abstand ist
%% ``(editor)'' or ``(editors)''
\renewbibmacro*{byeditor+others}{%
\ifnameundef{editor}
{}
{\printnames[byeditor]{editor}%
\setunit{\addspace}%
\usebibmacro{byeditor+othersstrg}%
\clearname{editor}%
\newunit}%
\usebibmacro{byeditorx}%
\usebibmacro{bytranslator+others}}
\xpatchbibmacro{byeditor+othersstrg}{\printtext}{\printtext[parens]}{}{}
%% ``(editor)'' or ``(editors)'' instead of ``(ed. by)''
\DefineBibliographyStrings{english}{%
byeditor = {editor},%
byeditor = {editors},%
issue = {\lowercase{i}ss\adddot},%
}
%% all titles in references in normal formatting
\DeclareFieldFormat*{citetitle}{#1\isdot}
%% annul format of any title whatsoever in bibliography and add comma+space
\DeclareFieldFormat*{title}{#1\addcomma\addspace}
%% Format von Titeln als ganz normal!
\DeclareFieldFormat*{booktitle}{#1\addcomma\addspace}
\DeclareFieldFormat*{journaltitle}{#1\addcomma\addspace}
\DeclareFieldFormat*{issuetitle}{#1\addcomma\addspace}
\DeclareFieldFormat*{maintitle}{#1\addcomma\addspace}
\DeclareFieldFormat*{proceedingstitle}{#1\addcomma\addspace}
\DeclareFieldFormat*{collectiontitle}{#1\addcomma\addspace}
%new
\DeclareFieldFormat*{volume}{\bibstring{volume}~#1\space}
\DeclareFieldFormat*{issue}{\bibstring{issue}~#1}
\DeclareFieldFormat*{number}{\bibstring{number}~#1} %comment to leave number as before
\DeclareFieldFormat*{series}{{#1}\addcomma\space} %comment to leave number as before
%% Names: Lastname, Firstname
\DeclareNameAlias{default}{last-first}
\AtBeginBibliography{%
%% only slash signs between authors
\renewcommand{\multinamedelim}{\addslash}
\renewcommand{\finalnamedelim}{\addslash}
%% only slash signs between multiple locations
\renewcommand{\multilistdelim}{\addslash}
\renewcommand{\finallistdelim}{\addslash}
}
\begin{filecontents*}{lit.bib}
@InCollection{brandt,
options = {useprefix=false},
hyphenation = {german},
author = {von Brandt, Ahasver and Hoffmann, Erich},
editor = {Seibt, Ferdinand and Smith, John},
title = {Die nordischen L{\"a}nder von der Mitte des 11.~Jahrhunderts bis 1448},
booktitle = {Europa im Hoch- und Sp{\"a}tmittelalter},
series = {Handbuch der europ{\"a}ischen Geschichte},
number = {2},
edition = {4},
publisher = {Klett-Cotta},
location = {Stuttgart},
date = {1987},
pages = {884--917}
}
\end{filecontents*}
\addbibresource{lit.bib}
\begin{document}
\chapter{References}
\begin{itemize}
\item Something for the one \verb+InCollection+.\footcite[See][p. 5--11]{brandt}
%\item For the \verb+book+-type.\footcite[See][p. 2]{cicero}
%\item For the source type \verb+online+.\footcite[See][]{itzhaki}
%\item For the \verb+article+: Some word.\footcite[See][p. 70]{gillies}
\end{itemize}
\printbibliography
\end{document}
答案1
对于名称列表格式,请添加到您的序言中:
\DeclareNameAlias{sortname}{last-first}
书目驱动程序\printfield{edition}
直接发出。将打印推迟到系列/编号字段之后的一种简单方法是清除edition
它并在稍后恢复它。以下代码演示了这种方法。它也可以添加到您的序言中。
\AtEveryBibitem{%
\iffieldequalstr{edition}{1}
{\clearfield{edition}}
{\savefield*{edition}{\savededition}%
\clearfield{edition}}}
\renewbibmacro*{series+number}{%
\restorefield{edition}{\savededition}
\printfield{series}%
\setunit*{\addspace}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{edition}%
\newunit}
如果您只想推迟打印@incollection
和@inproceedings
条目类型,请使用此钩子:
\AtEveryBibitem{%
\iffieldequalstr{edition}{1}
{\clearfield{edition}}
{\ifboolexpr{ test {\ifentrytype{proceedings}} or test {\ifentrytype{incollection}} }
{\savefield*{edition}{\savededition}%
\clearfield{edition}}
{}}}