重新格式化书目输出

重新格式化书目输出

我使用的biblatex-bath样式经过一些初步帮助修改后,效果很好。但是,我现在需要修改带有字段的作品的格式化书目输出translator.bib条目为:

@book{luther_collected_2018,
title = {The Collected Works of Martin Luther: Theological Writings, 
            Sermons \& Hymns: The Ninety-five Theses, The Bondage of the Will, 
            The Catechism},
url = {www.scribd.com},
publisher = {e-artnow},
author = {Luther, M.},
translator = {Jacobs, C.M. and Cole, H. and Bente, F. and Dau, W.H.T. 
          and Reu, J.M. and Buchheim, C.A. and Grignon, R.S. and Lenker, J.N. 
          and Hotten, John and Steinhaeuser, A T W and Gillett, E H 
          and Bell, Henry and Massie, Richard and Reynolds, William M 
          and Fox, William Johnson},
date = {2018} }

其输出结果为:

Luther, M. (2018)。《马丁·路德文集:神学著作、布道和赞美诗:九十五条论纲、意志的束缚、教义问答》(C. Jacobs、H. Cole、F. Bente、W. Dau、J. Reu、C. Buchheim、R. Grignon、J. Lenker、J. Hotten、ATW Steinhaeuser、EH Gillett、H. Bell、R. Massie、WM Reynolds 和 WJ Fox 译)。e-artnow。[在线] 可在以下网址获取:www.scribd.com。

然而我需要的输出是:

Luther, M. (2018)。《马丁·路德文集:神学著作、布道和赞美诗:九十五条论纲、意志的束缚、教义问答》。译者:C. Jacobs、H. Cole、F. Bente、W. Dau、J. Reu、C. Buchheim、R. Grignon、J. Lenker、J. Hotten、ATW Steinhaeuser、EH Gillett、H. Bell、R. Massie、WM Reynolds 和 WJ Fox。e-artnow。[在线] 可从以下网址获取:www.scribd.com。

我的 MWE 是:

\documentclass[a4paper, british, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=bath, backend=biber]{biblatex}
\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
\DeclareFieldFormat{datelabel}{\mkbibparens{#1}}
\renewbibmacro*{isonline}{}

\DefineBibliographyStrings{english}{
urlfrom = {available at},
}

\DeclareFieldFormat{url}{%
\bibsentence\bibstring[\mkbibbrackets]{online}%
\addspace
\bibsentence\bibstring{urlfrom}%
\addcolon\space
\url{#1}}
\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\space#1}}

\bibliography{zotero.bib}
\begin{document}
\textcite{luther_collected_2018}
\printbibliography[title=Bibliography]
\end{document}

任何帮助都将不胜感激。谢谢

答案1

翻译器周围的括号是 的一个显式特性biblatex-bath。在这方面,标准样式更接近您想要的输出。

我们可以改变这两个 bibmacros bytranslatorbytranslator+others以便它们的定义从bath.bbx第220-228行第 247-257 页) 再次更接近于biblatex.def2645-26502666-2674)。

\documentclass[a4paper, british, 12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=bath, backend=biber]{biblatex}

\DeclareDelimFormat[bib]{nameyeardelim}{\addspace}
\DeclareFieldFormat{datelabel}{\mkbibparens{#1}}
\renewbibmacro*{isonline}{}

\DefineBibliographyStrings{english}{
  urlfrom = {available at},
}

\DeclareFieldFormat{url}{%
  \bibsentence\bibstring[\mkbibbrackets]{online}%
  \addspace
  \bibsentence\bibstring{urlfrom}%
  \addcolon\space
  \url{#1}}

\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\space#1}}

\renewbibmacro*{bytranslator}[1][bytranslator]{%
  \ifnameundef{translator}
    {}
    {\bibstring{bytranslator}%
     \setunit{\addspace}%
     \printnames[#1]{translator}%
     \clearname{translator}}}

\renewbibmacro*{bytranslator+others}[1][bytranslator]{%
  \ifnameundef{translator}
    {}
    {\usebibmacro{bytranslator+othersstrg}%
     \setunit{\addspace}%
     \printnames[#1]{translator}%
     \clearname{translator}%
     \newunit}%
  \usebibmacro{withothers}}

\begin{filecontents}{\jobname.bib}
@book{luther_collected_2018,
  author     = {Luther, M.},
  title      = {The Collected Works of {Martin Luther}: Theological Writings, 
                Sermons \& Hymns: The Ninety-five Theses, The Bondage of the Will, 
                The Catechism},
  translator = {Jacobs, C.M. and Cole, H. and Bente, F. and Dau, W.H.T. 
                and Reu, J.M. and Buchheim, C.A. and Grignon, R.S. and Lenker, J.N. 
                and Hotten, John and Steinhaeuser, A T W and Gillett, E H 
                and Bell, Henry and Massie, Richard and Reynolds, William M 
                and Fox, William Johnson},
  publisher  = {e-artnow},
  date       = {2018},
  url        = {http://example.com/~joerg/collected.pdf},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\begin{document}
\textcite{luther_collected_2018,cicero,aristotle:physics}
\printbibliography
\end{document}

Luther, M. (2018)。马丁·路德文集:神学著作、布道和赞美诗:九十五条论纲、意志的束缚、教义问答。译者:C. Jacobs、H. Cole、F. Bente、W. Dau、J. Reu、C. Buchheim、R. Grignon、J. Lenker、J. Hotten、ATW Steinhaeuser、EH Gillett、H. Bell、R. Massie、WM Reynolds 和 WJ Fox。e-artnow。[在线] 可从以下网址获取:http://example.com/~joerg/collected.pdf。


请注意,你可以用花括号将标题的某些部分括起来,以免发生大写更改。因此,你可以这样写

title      = {The Collected Works of {Martin Luther}: Theological Writings, 
              Sermons \& Hymns: The Ninety-five Theses, The Bondage of the Will, 
              The Catechism},

确保马丁·路德不会以“马丁·路德”的名字出现。我不太确定标题中其他名字的大写状态(《九十五条论纲》、《意志的束缚》、《教义问答》),也许它们也需要保护。

如果要完全关闭句子大小写,请添加

\DeclareFieldFormat{sentencecase}{#1}
\DeclareFieldFormat{midsentencecase}{#1}

到您的文档中。


如果你想看

被某某人翻译

而不是缩写

译者

你有两个选择。

  1. biblatex使用选项加载abbreviate=false,。这将导致 bibstring 使用长格式(例如“translated”而不是“trans。”),但可能会对您的参考书目产生比这一个短语更多的影响。

  2. 仅重新定义相关的 bibstring

    \makeatletter
    \DefineBibliographyStrings{english}{%
      bytranslator = {translated \lbx@lfromlang\ by},
    }
    \makeatother
    

    biblatex也支持“组合角色”,因此你可能也需要更改它们。请参阅english.lbx了解更多字符串和定义。请注意,中的字符串定义\DefineBibliographyStrings只能有一种形式。

相关内容