自定义 BibLaTeX:在参考书目中自动生成 NN/OV(无作者)和 nd/oJ(无日期)(字母动词样式)

自定义 BibLaTeX:在参考书目中自动生成 NN/OV(无作者)和 nd/oJ(无日期)(字母动词样式)

我如何定制BibLaTeX,以便获得以下内容?:

  • 我的参考书目中的 NN(或 OV)当我的 .bib 文件中没有给出作者时
  • 在我的参考书目中排名第 nd (或 oJ)当我的 .bib 文件中没有给出年份时

因此,当没有给出作者和/或日期时,我希望“NN(或 OV)”和“nd(或 oJ)”在我的参考书目和我的引文中显示为 OV/OJ。

因此,当作者和日期都缺失时,就像在这个例子中一样......

@book{book05,
title = {Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land},
publisher = {Edition Stadt-Entwicklung},
location = {Dortmund}
}

...我的参考书目中的结果应该是这样的(当然取决于我定义的参考书目风格)...

原版:计划、土地、开发:关于对城市和土地进行开发的官方行动。多特蒙德:Stadt-Entwicklung 版,oJ

我的引用中的结果应该是:

[NNnd] 或 [OVOJ]


\documentclass[12pt,a4paper,twoside,openright]{report}

%Schriftart Arial - ACHTUNG: Compile with XeLaTeX (not PDFLaTeX)!
\usepackage{fontspec}
\defaultfontfeatures{Scale = MatchLowercase}
\setmainfont{Arial}[Scale = 1.0]

%Seitenlayout
\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry} %showframe

%Deutsche Umlaute, Englisch
\usepackage[main=ngerman, english]{babel}

%Anführungszeichen
\usepackage[german=quotes]{csquotes}

%Literaturverzeichnis
\usepackage[style       = alphabetic-verb,
            backend     = biber,
            maxbibnames     = 2,
            minbibnames     = 2,
            maxalphanames   = 1,
            minalphanames   = 1,
            useeditor       = false,
            giveninits      = true
            ]{biblatex}

%Name, V.
\DeclareNameAlias{default}{family-given} 

%Doppelpunkt nach letztem Verfasser
\renewcommand*{\labelnamepunct}{\addcolon\addspace} 

%Änderungen von Strings
\DefineBibliographyStrings{ngerman}{
                andothers={et\addabbrvspace al\adddot}, %et al.
                urlseen = {Abruf\addcolon} %Anpassung in "Abruf:" bei URLs
                }

%Kapitälchen Nachame und Vorname von Autoren in Bibliography
\renewcommand*{\mkbibnamefamily}[1]{\ifmknamesc{\textsc{#1}}{#1}}
\renewcommand*{\mkbibnamegiven}[1]{\ifmknamesc{\textsc{#1}}{#1}}
\def\ifmknamesc{%
  \ifboolexpr{ test {\ifcurrentname{author}}
               or ( test {\ifnameundef{author}} and test {\ifcurrentname{editor}} )                    }}

%Komma bei mehreren Quellen
\renewcommand*{\multicitedelim}{\addcomma\space}

%Semikolon bei mehreren Autoren
\renewcommand*{\multinamedelim}{\addsemicolon\space}
\renewcommand*{\finalnamedelim}{\addsemicolon\space}

%Formatierung von Regular Types
\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished,suppbook,suppcollection,suppperiodical]
  {title}{\textit{#1\isdot}}

%Formatierung bei mehreren Autoren
\renewcommand*{\labelalphaothers}{}



\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@misc{ruhr,
  author = {{Regionalverband Ruhr}},
  title = {Marketingstrategie 2017-2022 der Ruhr Tourismus GmbH},
  year = {2017},
  keywords = {nosc}
}
@book{book05,
title = {Planen, Steuern, Entwickeln: über den Beitrag öffentlicher Akteure zur Entwicklung von Stadt und Land},
publisher = {Edition Stadt-Entwicklung},
location = {Dortmund}
}
\end{filecontents*}


\addbibresource{\jobname.bib}
\usepackage{citeall}

\begin{document}

\citeall
\printbibliography[heading=bibintoc, title={Literaturverzeichnis}] 

\end{document}

答案1

感谢 Mensch 和 moewe 的回答,我同意在我的 bib 条目中使用author={N.N.}year = {n.d.},因为它只会在 JabRef 中引发警告,但除此之外,它还会在我的文档(参考书目和引文)中为我提供正确的条目。

相关内容