根据 .bib 文件中的自定义标签自定义引用格式

根据 .bib 文件中的自定义标签自定义引用格式

首先:我会尽力自己做这件事。我可能会失败,但至少我尝试过了 :)

如果你查看我的发帖历史,你会发现我(被迫)创建了自己的 APA 风格。我的大学对此非常严格,如果你违反了他们的引用规则,就会被扣分……在我目前论文的草稿会议期间,有人指出我存在这样的缺陷。

我想在我的论文中使用这本书。正如您所见,书中提到了 APA 格式,所以这应该很容易……

RIS

然而,这本书创作于 1947 年,但它是 1626 年文本的一个版本。因此,我们必须使用特殊发明的大学格式:

编辑(编)(年份)。作者。标题。(版本)。地点:出版商。

Meertens,PJ,NB Tenhaef 和 A​​. Komter-Kuipers(编辑)(1942 年)。阿德里安努斯·瓦莱里乌斯 (Adrianus Valerius)。 荷兰纪念教堂。阿姆斯特丹:wereldbibliotheek。

它甚至变得更好 :( - 如果你指向由其中一位编辑(Meertens)撰写的章节(Adrianus 的生活),它也应该成为参考书目中的条目:

AUTHOR_OF_CHAPTER(年份)。'TITLE_OF_CHAPTER'。在:WORK_ABOVE

Meertens,PJ(1942 年)。 《阿德里安努斯的生活》。引自:Meertens,PJ,NB Tenhaef 和 A​​. Komter-Kuipers(编辑)(1942 年)。阿德里安努斯·瓦莱里乌斯 (Adrianus Valerius)。 荷兰纪念教堂。阿姆斯特丹:wereldbibliotheek。

然而,这本!不应与多位作者的书混淆。注意(完全没有)区别 :/

篡位者

这本书的正确引文是

作者(年份)。标题。 (版). 地点: 出版商。

Absillis, K.、Jaspers, J. 和 Van Hoof, S. (2000 年)。篡夺者:篡夺奴隶。绅士:学术出版社。

Jaspers, J. (2000)。“某些章节”。收录于:Absillis, K.、Jaspers, J. 和 Van Hoof, S。(红色的。)。 (2000)。篡夺者:篡夺奴隶。绅士:学术出版社。

第一的:简单的问题

  • 3de ed. 应该变成 (3e dr.) << 其中 e 是上标。
  • 'title' 应该使用单引号,而不是双引号- 找到了(未反映在 MWE 上方的屏幕截图中)

现在:主要问题= 关于参考书目的最后两个条目。

我如何让 biblatex 区分这两种不同类型的 @book?我可以编写一个宏来检查

  • 本书有一位作者和一位(或多位)编辑 => 必须是类型 1,请相应格式化
  • 本书只有作者 => 必须是类型 2,相应格式
  • 这本书只有 editoros => zotero 将其变成 @collection,所以这超出了这个问题的范围,因为这是关于 @books 的。

工作示例:

平均能量损失

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{refs.bib}
@book{ValeriusNederlandtschegedenckclanck1942,
    langid = {dutch},
    location = {{Amsterdam}},
    title = {Nederlandtsche gedenck-clanck},
    pagetotal = {287},
    publisher = {{Wereldbibliotheek}},
    date = {1942},
    author = {Valerius, Adrianus},
    editor = {Meertens, Pieter Jacobus and Tenhaeff, Nicolaas Bernardus and Komter-Kuipers, Aafke}
}

@incollection{MeertensAdriaenValeriusleven1942,
    langid = {dutch},
    location = {{Amsterdam}},
    title = {Adriaen Valerius' leven en werken},
    booktitle = {Nederlandtsche gedenck-clanck},
    publisher = {{Wereldbibliotheek}},
    date = {1942},
    pages = {V-XXII},
    author = {Meertens, Pieter Jacobus},
    editor = {Meertens, Pieter Jacobus and Tenhaeff, Nicolaas Bernardus and Komter-Kuipers, Aafke}
}

@book{Usurpator-book-1,
    location = {{Gent}},
    title = {De Manke Usurpator},
    isbn = {978-90-382-2005-5},
    pagetotal = {1234},
    publisher = {{Academia press}},
    date = {2012},
    author = {Absillis, Kevin},
    edition = {1}
}

@book{Usurpator-book-2,
    location = {{Gent}},
    title = {De Manke Usurpator},
    isbn = {978-90-382-2005-5},
    pagetotal = {1234},
    publisher = {{Academia press}},
    date = {2012},
    author = {Absillis, Kevin and Jaspers, Jürgen},
    edition = {2}
}

@book{Usurpator-book-3,
    location = {{Gent}},
    title = {De Manke Usurpator},
    isbn = {978-90-382-2005-5},
    pagetotal = {1234},
    publisher = {{Academia press}},
    date = {2012},
    author = {Absillis, Kevin and Jaspers, Jürgen and Van Hoof, Sarah},
    edition = {3}
}

@incollection{Usurpator-book-3-chapter,
    langid = {dutch},
    location = {{Gent}},
    title = {Some Chapter},
    booktitle = {De Manke Usurpator},
    publisher = {{Academia press}},
    date = {2012},
    pages = 123-145,
    author = {Absillis, Kevin},
    bookauthor = {Absillis, Kevin and Jaspers, Jürgen and Van Hoof, Sarah},
    edition = {3}
}

\end{filecontents*}

\usepackage[dutch]{babel}               % Nederlands
\usepackage[autostyle]{csquotes}        % Context sensitive quotation facilities

\usepackage[bibstyle=authoryear,citestyle=authoryear,giveninits=true,maxnames=3,doi=false,isbn=false,dashed=false,backend=biber]{biblatex}
\addbibresource{refs.bib}

\DeclareDelimFormat{finalnamedelim}{\addspace\&\space}    % Multiple authors? => &

    % Bold Author and Year

\DeclareFieldFormat{bold}{\mkbibbold{#1}}

\renewbibmacro*{author}{%
    \printtext[bold]{%
        \ifboolexpr{
            test \ifuseauthor
            and
            not test {\ifnameundef{author}}
        }
        {\usebibmacro{bbx:dashcheck}
            {\bibnamedash}
            {\usebibmacro{bbx:savehash}%
                \printnames{author}%
                \iffieldundef{authortype}
                {\setunit{\printdelim{nameyeardelim}}}
                {\setunit{\printdelim{authortypedelim}}}}%
            \iffieldundef{authortype}
            {}
            {\usebibmacro{authorstrg}%
                \setunit{\printdelim{nameyeardelim}}}}%
        {\global\undef\bbx@lasthash
            \usebibmacro{labeltitle}%
            \setunit*{\printdelim{nonameyeardelim}}}%
        \usebibmacro{date+extradate}}}
    
    
    \renewbibmacro{in:}{%
    \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}


% article number must be between parenthesis

\renewbibmacro*{volume+number+eid}{%
    \printfield{volume}%
    %  \setunit*{\adddot}% DELETED
    \setunit*{\addnbspace}% NEW (optional); there's also \addnbthinspace
    \printfield{number}%
    \setunit{\addcomma\space}%
    \printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

    % please don't put p. before pagenumbers

\DeclareFieldFormat[incollection]{pages}{#1}        
\DeclareFieldFormat[article]{pages}{#1}

\AtEveryBibitem{%
    \clearlist{language}%
    \clearfield{pagetotal}%
}

\begin{document}

\section{Valerius}

let me quote this old text by \citeauthor{ValeriusNederlandtschegedenckclanck1942} - which was edited by \citename{ValeriusNederlandtschegedenckclanck1942}{editor}

\citeauthor{MeertensAdriaenValeriusleven1942} wrote an introduction for that text, you know!

\section{Usurpator}

\begin{itemize}  
    \item \cite{Usurpator-book-1} 
    \item \cite{Usurpator-book-2} 
    \item \cite{Usurpator-book-3}
    \item \cite{Usurpator-book-3-chapter}
\end{itemize}

\setquotestyle{british} % easiest way for single quotes
\printbibliography 
\end{document}

答案1

@book虽然我仍然认为,在几乎所有情况下, s 加上 seditor和s的期望风格author都是完全奇怪的,但在某些情况下,人们可能希望强调作品的编辑或翻译,而不是实际作者(古典文本的翻译或大量编辑、评论和注释的作品)。在这些情况下,人们可以使用useauthor=false将作者移到标题之后的选项,并将editor或提升translator到主要位置(参见butler_frankenstein_1998下面取自哪种 bibtex 样式首先列出书籍编辑器?,并aristotle:physics取自萨姆卡特回答引用译者的话),则在标题后面会提到被降级的作者。

我知道你的ValeriusNederlandtschegedenckclanck1942情况比较特殊。1626 年 Valerius 的原作本身就已经存在界限,无法确定它是一部@bookValerius 的作品author还是一部@collectionValerius 的作品editor。将更多后期版本的编辑者加入其中并不能让情况变得更简单。

但我仍然认为,即使在这种情况下,将author/editor直接放在年份和标题之间也很奇怪,而且我认为没有必要为这个我认为不成熟的临时要求重写样式。请注意,在所需的输出中,不可能看出“Adrianus Valerius”是原始作者/编辑,相反,名字似乎是标题的一部分。这就是我要利用的:如果样式指南将名称的格式与标题完全一致,我们只需将名称添加到字段title即可完成。

对于此特定条目,您还想将编辑者标签从“red.”更改为“ed.”,这可以通过字段实现editortype。我们可以通过定义三个 bibstring (单数)、(复数形式)和(“edited by ...”形式)并赋予它们所需的值来定义一种新的“编辑者类型” specialed(您可以查看dutch.lbx其他类型是否更合适)。然后,您可以将该字段添加到所有编辑者为“ed.”而不是“red.”的作品。specialedspecialedsbyspecialededitortype = {specialed},


阅读后请注意https://www.academiapress.be/nl/producten/nederlandse-taal-en-letterkund/de-manke-usurpator我会将Usurpatores 归类为@collection而不是@book。要求

Absillis, K.、Jaspers, J. 和 Van Hoof, S. (2000 年)。篡夺者:篡夺奴隶。绅士:学术出版社。

Jaspers, J. (2000)。“某些章节”。收录于:Absillis, K.、Jaspers, J. 和 Van Hoof, S. (red.)。(2000)。篡夺者:篡夺奴隶。绅士:学术出版社。

在这方面有点不一致。我原本以为 Absillis, Jaspers & Van Hoof 在两种情况下都是“红色”的,或者根本不是。在完整作品和章节之间更改这一点似乎非常不一致。


一般来说,crossref更频繁地使用可能会对您有好处。

在大多数情况下,@collection和之间的差异@book很小:唯一的大差异是@collection将忽略任何author。同样@inbook,和@incollection非常相似。选择“正确”的类型通常更多地是语义问题和拥有“良好”的数据库的问题,而不是输出结果不同的问题。如果您对和应用更改,@collection通常@incollection它们可以一对一地映射到和的更改@book,并且@inbook通常最好在那里也应用这些更改以避免不一致。

就您在问题中提到的情况而言,我同意 Zotero 的启发式方法,即将一本有编辑但没有作者的“书”归类为 是有意义的@collection。偶尔可能会有例外,但作为经验法则,它相当可靠。


我会尝试以下

\documentclass{article}
\usepackage[dutch]{babel}
\usepackage[autostyle]{csquotes}

\usepackage[style=authoryear, backend=biber,
  giveninits=true, uniquename=init, maxnames=3, dashed=false,
  doi=false, isbn=false]{biblatex}

\DeclareDelimFormat{finalnamedelim}{\addspace\&\space} 


\letbibmacro*{author:unwrapped}{author}
\renewbibmacro{author}{%
  \printtext[bold]{\usebibmacro{author:unwrapped}}}

\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}

\letbibmacro*{editor:unwrapped}{editor}
\renewbibmacro{editor}{%
  \printtext[bold]{\usebibmacro{editor:unwrapped}}%
  \ifuseeditor{\clearname{editor}}{}}

\letbibmacro*{editor+others:unwrapped}{editor+others}
\renewbibmacro{editor+others}{%
  \printtext[bold]{\usebibmacro{editor+others:unwrapped}}%
  \ifuseeditor{\clearname{editor}}{}}

\DeclareFieldAlias{translatortype}{editortype}
\DeclareDelimAlias{translatortypedelim}{editortypedelim}

\letbibmacro*{translator:unwrapped}{translator}
\renewbibmacro{translator}{%
  \printtext[bold]{\usebibmacro{translator:unwrapped}}%
  \ifusetranslator{\clearname{translator}}{}}

\letbibmacro*{translator+others:unwrapped}{translator+others}
\renewbibmacro{translator+others}{%
  \printtext[bold]{\usebibmacro{translator+others:unwrapped}}%
  \ifusetranslator{\clearname{translator}}{}}

\NewBibliographyString{specialed,specialeds,byspecialed}
\DefineBibliographyStrings{dutch}{
  specialed   = {ed\adddot},
  specialeds  = {ed\adddot},
  byspecialed = {geredigeerd door},% wat gaan we hier doen?
  edition     = {dr\adddot},
}

% maar: https://taaladvies.net/taal/advies/vraag/2/
% "De achtervoegsels -ste, -de en -e staan op dezelfde hoogte als het getal."
\DefineBibliographyExtras{dutch}{%
  \protected\def\mkbibordinal#1{\stripzeros{#1}\textsuperscript{e}}%
}
\DeclareFieldFormat{edition}{%
  \mkbibparens{%
    \ifinteger{#1}
      {\mkbibordedition{#1}\addnbthinspace\bibstring{edition}}
      {#1\isdot}}}

\renewbibmacro{in:}{%
  \ifentrytype{article}
    {}
    {\printtext{\bibstring{in}\intitlepunct}}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  %  \setunit*{\adddot}% DELETED
  \setunit*{\addnbspace}% NEW (optional); there's also \addnbthinspace
  \printfield{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}

\DeclareFieldFormat{pages}{#1}        

\AtEveryBibitem{%
  \clearlist{language}%
  \clearfield{pagetotal}}

\DeclareQuoteStyle{dutch}
  {\textquoteleft}
  {\textquoteright}
  [0.05em]
  {\textquotedblleft}
  {\textquotedblright}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@collection{ValeriusNederlandtschegedenckclanck1942,
  langid    = {dutch},
  location  = {Amsterdam},
  title     = {Adrianus Valerius. Nederlandtsche gedenck-clanck},
  pagetotal = {287},
  publisher = {Wereldbibliotheek},
  date      = {1942},
  editor    = {Meertens, Pieter Jacobus and Tenhaeff, Nicolaas Bernardus and Komter-Kuipers, Aafke},
  editortype = {specialed},
}
@incollection{MeertensAdriaenValeriusleven1942,
  title     = {Adriaen Valerius' leven en werken},
  date      = {1942},
  pages     = {V-XXII},
  author    = {Meertens, Pieter Jacobus},
  crossref  = {ValeriusNederlandtschegedenckclanck1942},
}
@collection{Usurpator-book-1,
  location  = {Gent}, 
  title     = {De Manke Usurpator},
  isbn      = {978-90-382-2005-5},
  pagetotal = {1234},
  publisher = {{Academia press}},
  date      = {2012},
  editor    = {Absillis, Kevin},
  edition   = {1}
}
@collection{Usurpator-book-2,
  location  = {{Gent}},
  title     = {De Manke Usurpator},
  isbn      = {978-90-382-2005-5},
  pagetotal = {1234},
  publisher = {{Academia press}},
  date      = {2012},
  editor    = {Absillis, Kevin and Jaspers, Jürgen},
  edition   = {2}
}
@collection{Usurpator-book-3,
  location  = {Gent},
  title     = {De Manke Usurpator},
  isbn      = {978-90-382-2005-5},
  pagetotal = {1234},
  publisher = {{Academia press}},
  date      = {2012},
  editor    = {Absillis, Kevin and Jaspers, Jürgen and Van Hoof, Sarah},
  edition   = {3}
}
@incollection{Usurpator-book-3-chapter,
  title      = {Some Chapter},
  pages      = {123-145},
  author     = {Absillis, Kevin},
  crossref   = {Usurpator-book-3},
}
@book{butler_frankenstein_1998,
  address    = {Oxford and New York},
  series     = {Oxford world's classics},
  title      = {Frankenstein, or, {The} modern {Prometheus}},
  subtitle   = {the 1818 text},
  isbn       = {978-0-19-283366-2},
  publisher  = {Oxford University Press},
  author     = {Shelley, Mary Wollstonecraft},
  editor     = {Butler, Marilyn},
  year       = {1998},
  options    = {useauthor=false},
}
@book{aristotle:physics,
  options    = {useauthor=false,usetranslator=true},
  author       = {Aristotle},
  title        = {Physics},
  date         = 1929,
  translator   = {Wicksteed, P. H. and Cornford, F. M.},
  publisher    = {G. P. Putnam},
  location     = {New York},
  keywords     = {primary},
  langid       = {english},
  langidopts   = {variant=american},
  shorttitle   = {Physics},
  annotation   = {A \texttt{book} entry with a \texttt{translator} field},
}
\end{filecontents*}
\addbibresource{\jobname.bib}

\begin{document}
\section{Valerius}

let me quote this old text by \citeauthor{ValeriusNederlandtschegedenckclanck1942} which was edited by \citename{ValeriusNederlandtschegedenckclanck1942}{editor}.

\citeauthor{MeertensAdriaenValeriusleven1942} wrote an introduction for that text, you know!

\section{Usurpator}
\begin{itemize}  
    \item \cite{Usurpator-book-1} 
    \item \cite{Usurpator-book-2} 
    \item \cite{Usurpator-book-3}
    \item \cite{Usurpator-book-3-chapter}
\end{itemize}

\section{Oter examples}
\cite{aristotle:physics,butler_frankenstein_1998}

\printbibliography 
\end{document}

Absillis, K. (red.) (2012a)。De Manke Usurpator。第一版。Gent: Academia press。//Absillis, K. (2012b)。“某些章节”。在:De Manke Usurpator。Red。作者:K. Absillis, J. Jaspers & S. Van Hoof。第三版。Gent: Academia press,123–145。//Absillis, K. & J. Jaspers (red.) (2012)。De Manke Usurpator。第二版。Gent: Academia press。//Absillis, K., J. Jaspers & S. Van Hoof (red.) (2012)。De Manke Usurpator。第三版。Gent: Academia press。//Butler, M. (red.) (1998)。Frankenstein, or, The modern Prometheus。1818 年文本。由 MW Shelley 负责。牛津世界经典著作。牛津和纽约:牛津大学出版社。//Meertens,PJ(1942 年)。 “阿德里安·瓦莱里乌斯的生活和工作”。出处:阿德里安努斯·瓦莱里乌斯。荷兰纪念钟。撰稿人:PJ Meertens、NB Tenhaeff 和 A​​. Komter-Kuipers。阿姆斯特丹:Wereldbibliotheek,V–XXII。//Meertens,PJ,NB Tenhaeff 和 A​​. Komter-Kuipers(编辑)(1942)Adrianus Valerius。荷兰纪念钟。阿姆斯特丹:Wereldbibliotheek.//Wicksteed,PH & FM Cornford(vert.)(1929 年)。物理。门亚里士多德。纽约:GP Putnam。

相关内容