包括翻译作品的原始标题(biblatex-chicago)

包括翻译作品的原始标题(biblatex-chicago)

我使用biblatex-chicago并拥有大量翻译作品的书目条目,这些条目使用字段OrigtitleOriglocationOrigpublisher来引用原文。这些是标准 biblatex字段,但biblatex-chicago具有不同的机制,要求将原文列为单独的条目。

我希望解决这个问题,因为我真的不需要原始内容的单独列表,并且不想更改我的数据库。

关于如何调整设置以获得以下输出(CMoS 14.109)的任何建议......

克劳德·列维-斯特劳斯。(1964)1968。 生食与熟食:神话学,第 1 卷。 译者:约翰和多琳·韦特曼。纽约:Harper & Row。原版为《Le Cru et le cuit》(巴黎:Librairie Plon)。

...有了这个MWE:

% !TEX TS-program = xelatexmk
\documentclass{report}
\usepackage{fontspec}

\usepackage{polyglossia}
\setdefaultlanguage{english}
\usepackage[autostyle=true]{csquotes} % 
\usepackage[authordate, backend=biber,%
    bookpages=false, isbn=false, doi=false, numbermonth=false,%
    longcrossref=true,% 
    cmsdate=both]%
    {biblatex-chicago}
\DeclareLanguageMapping{american}{cms-american}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{levi-strauss1968,
    Address = {New York},
    Author = {Lévi-Strauss, Claude},
    Origlocation = {Paris},
    Origpublisher = {Librairie Plon},
    Origtitle = {{Le Cru et le cuit}},
    Origyear = {1964},
    Publisher = {Harper \& Row},
    Title = {The Raw and the Cooked: Mythologiques, Vol. 1},
    Translator = {Weightman, {John and Doreen}},
    Year = {1968}}
\end{filecontents}
\addbibresource{\jobname.bib}

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

非常感激!

答案1

您可以使用biblatex的相关功能。为此,您可以使用 选项为原始作品创建单独的条目dataonly,因此它不会出现在参考书目本身中。然后,您可以使用related = {levi-strauss1964}, relatedtype = {origpubas},或从翻译中引用原始作品relatedtype = {translationof},

@book{levi-strauss1968,
    address     = {New York},
    author      = {Lévi-Strauss, Claude},
    publisher   = {Harper \& Row},
    title       = {The Raw and the Cooked: Mythologiques, Vol. 1},
    translator  = {Weightman, {John and Doreen}},
    year        = {1968},
    related     = {levi-strauss1964},
    relatedtype = {origpubas},% or: translationof
}
@book{levi-strauss1964,
    Author    = {Lévi-Strauss, Claude},
    location  = {Paris},
    publisher = {Librairie Plon},
    title     = {{Le Cru et le cuit}},
    year      = {1964},
    options   = {dataonly},
}

请注意,这甚至是标准的方式biblatex,因为默认情况下所有orig...字段都会被忽略。


或者,您可以重新定义origpubl+loc+year宏来打印更多信息。

\renewbibmacro*{origpubl+loc+year}{% 16th ed.
  \ifboolexpr{not test {\iflistundef{origlocation}}
              or not test {\iflistundef{origpublisher}}
              or not test  {\iflistundef{origtitle}}}
  {\bibstring{origpubas}%
   \setunit{\addspace}%
   \printfield[title]{origtitle}%
   \setunit{\addspace}%
   \ifboolexpr{not test {\iflistundef{origlocation}} or not test {\iflistundef{origpublisher}}}
     {\printtext[parens]{%
        \printlist{origlocation}%
        \iflistundef{origpublisher}%
          {\setunit*{\addcomma\addspace}}%
          {\setunit*{\addcolon\addspace}}%
        \printlist{origpublisher}}}
     {}}
  {}}

或者你把整个东西稍微移动一下

\renewbibmacro*{origpubl+loc+year}{}

\renewbibmacro*{originally+published+as}{% Punctuation fix now in 
  \iffieldundef{userf}%                  \origfullcite for 0.8e. 
  {\iffieldundef{reprinttitle}%
    {\ifboolexpr{not test {\iflistundef{origlocation}}
          or not test {\iflistundef{origpublisher}}
          or not test  {\iflistundef{origtitle}}}
       {\bibstring{origpubas}%
        \setunit{\addspace}}
       {}%
     \printfield[title]{origtitle}%
     \setunit{\addspace}%
     \ifboolexpr{not test {\iflistundef{origlocation}} or not test {\iflistundef{origpublisher}}}
       {\printtext[parens]{%
          \printlist{origlocation}%
          \iflistundef{origpublisher}%
            {\setunit*{\addcomma\addspace}}%
            {\setunit*{\addcolon\addspace}}%
          \printlist{origpublisher}}}
        {}}
    {\usebibmacro{begrelated}%
      \bibstring{reprintfrom}% ?
      \origpublcite{\thefield{reprinttitle}}%
      \usebibmacro{endrelated}%
      \newunit}}%
  {\usebibmacro{begrelated}%
    \iffieldundef{origlanguage}%
    {\bibstring{origpub}%
      \origfullcite{\thefield{userf}}%
      \usebibmacro{endrelated}%
      \newunit}%
    {\iftoggle{cms@postposit}%
      {\bibstring{origedition}%
        \setunit{\addspace}%
        \printfield[edlang]{origlanguage}%
        \addcolon%
        \origfullcite{\thefield{userf}}%
        \usebibmacro{endrelated}%
        \newunit}%
      {\printfield[edlang]{origlanguage}%
        \setunit{\addspace}%
        \bibstring{origedition}%
        \origfullcite{\thefield{userf}}%
        \usebibmacro{endrelated}%
        \newunit}}}}

相关内容