为了写一篇论文,我必须将我的整个 Tex 文件设置为德语。我在 Windows 上使用 MikTex 2.9。除脚注和参考书目中不同作者姓名之间的“and”外,所有作品。
我已经尝试了推荐的解决方案,通过查看文件来更改此问题.bst
,但不起作用。FUNCTION {format.lab.names}
在我的文件中不存在,我找到的唯一位置" and "
是FUNCTION {output:write:list}
似乎不正确,而且当我在那里更改它时也不起作用。我检查了整个文件,但找不到任何可能合适的函数代码。
我在 中进行了更改,biblatex.bst
因为在.bst
文件夹 (MixTex/bibtex/bst) 中,它是唯一与我的代码相关的文件夹。没有natbib.bst
,authoryear.bst
或 ,biber.bst
就像 stackexchange 中其他解决方案中描述的那样。
也许我拿错了.bst
文件?或者我已经做了一些修改,改变了 .bst 代码?
我也尝试了\renewcommand*{\betweenauthors}{\und}
序言中的选项,但它也不起作用。
我只需要对一个家庭作业进行这种更改,因此一个简单的(可能有点粗糙的)修复就可以了。这是我的最小工作示例(希望它不会太长):
\documentclass[12pt, listof=totoc, bibliography=totoc]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[style=authoryear-icomp, natbib=true, bibencoding = utf8, maxbibnames=10,
maxcitenames=3, isbn=false, backend=biber, dashed=false,
firstinits=true, uniquename=init, sorting=nyt]{biblatex}
\addbibresource{Minimalbeispiel_German.bib}
\DeclareNameFormat{labelname}{
\usebibmacro{name:last-first}{#1}{#4}{#5}{#8}
\usebibmacro{name:andothers}}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{%
\printtext[parens]{% <- space
\printfield{labelyear}%
\printfield{extrayear}}}}}
\renewbibmacro{in:}{%
\ifentrytype{article}{%
\setunit{\addsemicolon\space}%
\printtext{\bibstring{in}\intitlepunct}%
}{%
\printtext{\bibstring{in}\intitlepunct}%
}%
}
%usepackage{germbib}
\usepackage{chngcntr} \counterwithout{footnote}{chapter}
\setlength{\bibhang}{1cm} % Einzug der umgebrochenen Zeile
\setlength{\bibitemsep}{0.5cm} % Abstand zw. Literaturangaben
\DeclareNameAlias{sortname}{last-first} %% erst Nachname, dann Vorname
\renewcommand*{\labelnamepunct}{\addcolon\space} % Doppelpunkt nach dem letzten Namen
\renewcommand*{\multinamedelim}{\addsemicolon\space} %% Trenner zwischen den Namen ein Semikolon
\renewcommand*{\finalnamedelim}{\space~and~\space} %% Trenner zwischen den Namen ein Semikolon
%\renewcommand*{\betweenauthors}{\und}
\renewbibmacro*{bbx:editor}[1]{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\usebibmacro{bbx:dashcheck}
{\bibnamedash}
{\printnames{editor}%
\setunit{\space}%
\usebibmacro{bbx:savehash}}%
\usebibmacro{#1}%
\clearname{editor}%
\setunit{\addspace}}%
{\global\undef\bbx@lasthash
\usebibmacro{labeltitle}%
\setunit*{\addspace}}%
\usebibmacro{date+extrayear}}
\AtEveryBibitem{%
\ifentrytype{misc}{%
\clearfield{note}%
\clearfield{type}% %hier einfach auflisten was nicht erscheinen soll
}%
}
\AtEveryBibitem{%
\ifentrytype{electronic}{%
\clearfield{note}%
\clearfield{type}%
}%
}
\AtEveryBibitem{%
\ifentrytype{book}{%
\clearfield{note}%
\clearfield{url}%
}%
}
\DeclareNameAlias{editor}{sortname}
\begin{document}
Some Text\footcite[Vgl.][S. 30]{Example2012} and then even more text\footcite[Vgl.][S. 30]{Doe2013}. And continuing with other text\footcite[Vgl.][S. 30]{Professor2000} and more words\footcite[][S. 30]{Professor2000}.
\printbibliography
\end{document}
以及与之配套的.bib
文件:Minimalbeispiel_German.bib
\begin{bibliography}
@ELECTRONIC{Example2012,
title = {The Top 100},
year = {2012},
url = {http://somepage.de/uploads/files/fd3323c9a2.pdf},
month = {9},
day = {25},
editor = {Webeditor, Mike},
type = {Whitepaper},
lastchecked = {2013-07-01},
urldate = {2013-07-01},
}
@BOOK{Doe2013,
author = {Doe, John and Smith, Jane and Jamesson, James},
title = {The Quintessence of Everything},
publisher = {Springer},
year = {2010},
address = {New York, London},
}
@unpublished{Professor2000,
author = {Jackson, Jack},
title = {Book from my Professor},
year = {2000},
month = {6},
type = {Seminar Book},
note = {Seminar Book},
timestamp = {2013-07-18}
}
\end{bibliography}
答案1
biblatex
不再真正使用.bst
文件,现在重要的文件是biblatex
(.bbx
参考书目)、.cbx
(引文)、.dbx
(数据模型)和.lbx
(本地化)。你可以说
\DeclareDelimFormat{finalnamedelim}{\addspace\bibstring{and}\space}
在序言中,biblatex
提供了“和”的翻译,因此只需使用。但in\bibstring{and}
的原始定义是finalnamedelim
biblatex.def
\DeclareDelimFormat{finalnamedelim}{%
\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}%
\addspace\bibstring{and}\space}
其中\finalandcomma
,德语为空。这意味着标准定义将为您提供相同的输出,而您实际上根本不需要重新定义finalnamedelim
。
文件中不需要\begin{bibliography}
和,事实上,我很惊讶你没有抱怨(我收到了类似的警告)。\end{bibliography}
.bib
biber
20 characters of junk seen at toplevel
编辑:针对biblatex
3.8 及以上版本进行了现代化处理。请注意,问题中的代码适用于biblatex
3.3 之前的版本(Biblatex 3.3 名称格式),并且许多其他习语现在可以被更优雅的技术所取代。