biblatex-philosophy 无法处理 relatedtype

biblatex-philosophy 无法处理 relatedtype

biblatex-philosophyas 选项传递给biblatexgerman作为主语言,一切都很好——只要 biblatex 不遇到relatedtype = {reprint}= {reprintin}。它插入translationas-string,这是完全不合适的。

如果hyphenation = {german},则在前两个条目中,它会打印“übers. als”(translatedas-string);如果hyphenation = {english},则接下来的两个条目中,它会首先打印reprint-string,然后打印translationas-string(可能取自 )german.lbx。如果translationas根本没有定义,它只会打印翻译以粗体显示。

\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[main=ngerman,german,italian,english]{babel}
\usepackage{csquotes,hyperref}
\usepackage[style=philosophy-modern,sortlocale=auto,sorting=nyvt,
            backend=biber,autolang=hyphen]{biblatex}
\makeatletter
\begin{filecontents*}{reprintbib.bib}
@Article{Bruns:Attische,
      author =   {Ivo Bruns},
       title =   {Attische Liebestheorien etc.},
  hyphenation=   {german},
journaltitle = {Neue Jahrb{\"{u}}cher etc.},
       year =    1900,
     volume =    3,
      pages =    {17-37},
    related =    {Bruns:Attische2},
relatedtype =    {reprintin}
}

 @InBook{Bruns:Attische2,
      options =      {skipbib},
        title =      {Attische Liebestheorien},
   hyphenation=      {german},
          year =     1905,
       author =      {Ivo Bruns},
    booktitle =      {Vortr{\"{a}}ge und Aufs{\"{a}}tze},
    bookauthor =     {Ivo Bruns},
     publisher =     {Beck'sche Verlagsbuchhandlung},
      location =     {N{\"{o}}rdlingen},
       chapter =     6,
         pages =     {118-53}
}

  @Article{Burkert:Ursprung,
      author =   {Walter Burkert},
       title =   {Platon oder Pythagoras?},
  hyphenation=   {english},
  journaltitle = {Hermes},
         year =  1960,
       volume =  88,
        pages =  {159-77},
     related =   {Burkert:Schriften3},
     relatedtype =  {reprint}
}

@Book{Burkert:Schriften3,
  author =   {Walter Burkert},
  gender =   {sm},
  options=   {dataonly},
  title =    {Mystica, Orphica, Pythagorica},
  hyhenation = {english},
  year =     2006,
 editor =    {Fritz Graf},
maintitle =  {Kleine Schriften},
  volume =   3,
publisher =  {Vandenhoeck {\&} Ruprecht},
 location =  {G{\"{o}}ttingen},
  chapter =  14,
   pages =   {217-35}
}
\end{filecontents*}
\makeatother
\addbibresource{reprintbib.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}

伊沃·布伦斯

1900 年《Attische Liebestheorien et.》新年鉴等,3,页 17–37;卓越。也[应该死亡。也作]“Attische Liebestheorien”,载于Vorträge und Aufsätze,Beck'sche Verlagsbuchhandlung,Nördlingen 1905,Kap. 6,第118-53页。

沃尔特·伯克特
1960 “柏拉图或毕达哥拉斯?”, Hermes, 88,第 159–77 页;死亡。卓越。也[应该死亡。在仅有的]Kleine Schriften,Bd. 3:米斯蒂卡、奥菲卡、毕达哥里斯卡、hrsg。 von Fritz Graf,Vandenhoeck & Ruprecht,哥廷根 2006,Kap. 14,第217-35页。

答案1

德语文件缺少 的翻译reprintin,因此我们需要提供

\NewBibliographyString{reprintin}
\DefineBibliographyStrings{german}{%
  reprintin       =  {Nachdr. in}}

如果relatedtype字符串未知,则不会打印(没有粗体键警告您这一点)。

但如果不存在,则会biblatex-philsophy自动打印。你可以使用以下方法关闭此功能:translationasrelatedstring

\renewbibmacro*{related:default}[1]{%
  \togglefalse{cbx:scauthorscite}%
  \togglefalse{bbx:annotation}%
  \setunit{\addspace}%
  \ifentrytype{article}{}{%horrible trick
    \renewcommand*{\mkpureparens}{\unspace\addsemicolon\space}%
    \renewcommand*{\mkbibbrackets}{\unspace\addsemicolon\space}}%
  \relatedcite{\thefield{related}}}

和(抱歉,很长)

\DeclareBibliographyDriver{article}{%
  \renewbibmacro*{related:default}[1]{%
    \togglefalse{cbx:scauthorscite}%
    \togglefalse{bbx:annotation}%
    \setunit{\addspace}%
    \relatedcite{\thefield{related}}}%
  \usebibmacro{bibindex}%
  \usebibmacro{begentry}%
  \usebibmacro{author/translator+others}%
  \setunit{\labelnamepunct}\newblock
  \usebibmacro{title}%
  \newunit
  \printlist{language}%
  \newunit\newblock
  \usebibmacro{byauthor}%
  \newunit\newblock
  \usebibmacro{bytranslator+others}%
  \newunit\newblock
  \printfield{version}%
  \newunit\newblock
  \iftoggle{bbx:inbeforejournal}{\usebibmacro{in:}}{}%
  \usebibmacro{journal+issuetitle}%
  \newunit\newblock
  \usebibmacro{byeditor+others}%
  \newunit\newblock
  \usebibmacro{note+pages}%
  \newunit\newblock
  \iftoggle{bbx:isbn}
    {\printfield{issn}}
    {}%
  \newunit\newblock
  \usebibmacro{doi+eprint+url}%
  \newunit\newblock
  \usebibmacro{addendum+pubstate:article-inbook-incoll}%MOD
  \newblock
  \iftoggle{bbx:related}
    {\ifdefstring{\bbx@relatedformat}{semicolon}{\setunit{\addsemicolon\space}}%
    {\setunit{\unspace\space}}%horrible trick
    \usebibmacro{related:init}%
     \usebibmacro{related}}%
    {}%
  \newunit\newblock
  \usebibmacro{pageref}%
  \usebibmacro{finentry}}

biblatex-philosophy文档只是顺便提到了这种行为

相关条目前面是 TranslationAs 字符串,对于意大利语文档,默认为“trad.it.”;对于英语文档,默认为“trans.as”。如果您想要更改它,请使用该relatedstring字段。

因此“官方”biblatex-philsophy方式是给出relatedtypeas relatedstring,并且它也可以这样工作。

@Article{Bruns:Attische,
  author        = {Ivo Bruns},
  title         = {Attische Liebestheorien etc.},
  hyphenation   = {german},
  journaltitle  = {Neue Jahrb{\"{u}}cher etc.},
  year          = 1900,
  volume        = 3,
  pages         = {17-37},
  related       = {Bruns:Attische2},
  relatedstring = {reprintin},
}

当然,如果可以工作的话会更好一些relatedtype,因为relatedstring我们只控制介绍字符串,而同时relatedtype允许对输出进行细粒度的控制。

相关内容