如何在 biblatex 中使用多个相关字段(翻译和多卷)?

如何在 biblatex 中使用多个相关字段(翻译和多卷)?

考虑以下 MWE

\documentclass[ngerman]{scrartcl}
\usepackage{filecontents,babel}
\begin{filecontents*}{\jobname.bib}
@MvBook{Ohnefalsch-Richter1893-0,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Kypros, die Bibel und Homer},
  year        = {1893},
  volumes     = {2},
  publisher   = {A. Asher und Co.},
  location    = Berlin,
  keywords    = {abbreviation, MOR},
  related     = {Ohnefalsch-Richter1893-1,Ohnefalsch-Richter1893-2},
  relatedtype = {multivolume},
  shortauthor = {MOR},
}


@Book{Ohnefalsch-Richter1893-1,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Text},
  maintitle   = {Kypros, die Bibel und Homer},
  volume      = {1},
  publisher   = {A. Asher und Co.},
  location    = Berlin,
  crossref    = {Ohnefalsch-Richter1893-0},
  keywords    = {abbreviation, MOR},
  options     = {skipbib},
  shortauthor = {MOR},
  shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}


@Book{Ohnefalsch-Richter1893-2,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Tafeln},
  maintitle   = {Kypros, die Bibel und Homer},
  volume      = {2},
  publisher   = {A. Asher und Co.},
  location    = Berlin,
  crossref    = {Ohnefalsch-Richter1893-0},
  keywords    = {abbreviation, MOR},
  options     = {skipbib},
  shortauthor = {MOR},
  shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}

@MvBook{Ohnefalsch-Richter1893,
  author       = {Ohnefalsch-Richter, Max},
  title        = {Kypros, the Bible and Homer},
  year         = {1893},
  subtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  titleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  volumes      = {2},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  location     = London,
  keywords     = {abbreviation, MOR},
  shortauthor = {MOR},
  related      = {Ohnefalsch-Richter1893-0},
  relatedtype  = {translationof},
  related     = {Ohnefalsch-Richter1893d,Ohnefalsch-Richter1893a},
  relatedtype = {multivolume},
}


@Book{Ohnefalsch-Richter1893d,
  author       = {Ohnefalsch-Richter, Max},
  maintitle        = {Kypros, the Bible and Homer},
  mainsubtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  maintitleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  title = {Text},
  volume       = {1},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  location     = London,
  options     = {skipbib},
  keywords     = {abbreviation, MOR},
  crossref    = {Ohnefalsch-Richter1893},
  shortauthor = {MOR},
    shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}


@Book{Ohnefalsch-Richter1893a,
  author       = {Ohnefalsch-Richter, Max},
  maintitle        = {Kypros, the Bible and Homer},
  mainsubtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  maintitleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  title = {Plates},
  volume       = {2},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  crossref    = {Ohnefalsch-Richter1893},
  location     = London,
  options     = {skipbib},
  keywords     = {abbreviation, MOR},
  shortauthor = {MOR},
    shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}

\end{filecontents*}
\usepackage[backend=biber,style=archaeologie]{biblatex}
\addbibresource{\jobname.bib}
 \AtEveryBibitem{\clearfield{doi}}
\DeclareDataInheritance{mvbook}{book}{
  \noinherit{year}
}

\begin{document}
  \nocite{*}
  \printbibliography
\end{document}

但是我得到了想要的结果:

在此处输入图片描述

由于和的第一条条目被覆盖,因此中的资料Ohnefalsch-Richter1893缺失。relatedrelatedtype

我希望获得Ohnefalsch-Richter1893翻译信息也是一本多卷书。

答案1

一个(不太理想的)解决方法是向您的 bib 文件中添加另一个虚拟条目用于翻译,然后将其与您的卷相关联。

像这样:

\documentclass[ngerman]{scrartcl}
\usepackage{filecontents,babel}
\begin{filecontents*}{\jobname.bib}
@MvBook{Ohnefalsch-Richter1893-0,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Kypros, die Bibel und Homer},
  year        = {1893},
  volumes     = {2},
  publisher   = {A. Asher und Co.},
  location    = {Berlin},
  keywords    = {abbreviation, MOR},
  related     = {Ohnefalsch-Richter1893-1,Ohnefalsch-Richter1893-2},
  relatedtype = {multivolume},
  shortauthor = {MOR},
}

@Book{Ohnefalsch-Richter1893-1,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Text},
  maintitle   = {Kypros, die Bibel und Homer},
  volume      = {1},
  publisher   = {A. Asher und Co.},
  location    = {Berlin},
  crossref    = {Ohnefalsch-Richter1893-0},
  keywords    = {abbreviation, MOR},
  options     = {skipbib},
  shortauthor = {MOR},
  shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}

@Book{Ohnefalsch-Richter1893-2,
  author      = {Ohnefalsch-Richter, Max},
  title       = {Tafeln},
  maintitle   = {Kypros, die Bibel und Homer},
  volume      = {2},
  publisher   = {A. Asher und Co.},
  location    = {Berlin},
  crossref    = {Ohnefalsch-Richter1893-0},
  keywords    = {abbreviation, MOR},
  options     = {skipbib},
  shortauthor = {MOR},
  shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}

@MvBook{Ohnefalsch-Richter1893-trans,
  title       = {\mkbibemph{Kypros, die Bibel und Homer}},
  location    = {Berlin},
  year        = {1893},
  related     = {Ohnefalsch-Richter1893d,Ohnefalsch-Richter1893a},
  relatedtype = {multivolume},
  options     = {skipbib}
}

@MvBook{Ohnefalsch-Richter1893,
  author       = {Ohnefalsch-Richter, Max},
  title        = {Kypros, the Bible and Homer},
  year         = {1893},
  subtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  titleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  volumes      = {2},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  location     = {London},
  keywords     = {abbreviation, MOR},
  shortauthor = {MOR},
  related      = {Ohnefalsch-Richter1893-trans},
  relatedstring = {translationof}
}

@Book{Ohnefalsch-Richter1893d,
  author       = {Ohnefalsch-Richter, Max},
  maintitle        = {Kypros, the Bible and Homer},
  mainsubtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  maintitleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  title = {Text},
  volume       = {1},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  location     = {London},
  options     = {skipbib},
  keywords     = {abbreviation, MOR},
  crossref    = {Ohnefalsch-Richter1893},
  shortauthor = {MOR},
    shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}

@Book{Ohnefalsch-Richter1893a,
  author       = {Ohnefalsch-Richter, Max},
  maintitle        = {Kypros, the Bible and Homer},
  mainsubtitle     = {Oriental Civilisation, Art and Religion in Ancient Times},
  maintitleaddon   = {Elucidated by the Author’s own Researches and Excavations During Twelve Years Work in Cyprus},
  title = {Plates},
  volume       = {2},
  publisher    = {Asher},
  language     = {english},
  origlanguage = {german},
  crossref    = {Ohnefalsch-Richter1893},
  location     = {London},
  options     = {skipbib},
  keywords     = {abbreviation, MOR},
  shortauthor = {MOR},
    shorthand   = {\printnames{shortauthor}\nameyeardelim\entrydata{\thefield{crossref}}{\printlabeldateextra}|\printfield{volume}},
}
\end{filecontents*}
\usepackage[backend=biber,style=archaeologie]{biblatex}
\addbibresource{\jobname.bib}
 \AtEveryBibitem{\clearfield{doi}}
\DeclareDataInheritance{mvbook}{book}{
  \noinherit{year}
}
\begin{document}
  \nocite{*}
  \printbibliography
\end{document}

在此处输入图片描述

相关内容