使用 windycity (biblatex) 定制编辑器类型?

使用 windycity (biblatex) 定制编辑器类型?

我在用windycity,我有一部作品,有一位作者和一位审校者。我可以添加一个editor字段,但是有没有办法自定义输出,使其显示为revised byandrev.而不是edited byand ed.

这里有一个非常类似的问题biblatex-chicago,但这对我来说似乎不起作用。我猜想它们的内部结构在这方面有所不同。

梅威瑟:

\documentclass[12pt,letterpaper]{article}

\usepackage[style=windycity,backend=biber]{biblatex}
\addbibresource{jobname.bib}

\begin{filecontents}{jobname.bib}
@book{ dyer-apology-crito-2007,
    author = {Louis Dyer},
    title = {Plato's Apology and Crito},
    editora = {Thomas Day Seymour}, % This may be the wrong approach.
    editoratype = {reviser}, % This may be the wrong approach.
    publisher = {Aristide D. Caratzas},
    year = {2007},
    address = {New Rochelle, NY},
    keywords = {commentary,apology,crito,phaedo},
}
\end{filecontents}

\begin{document}
Blah, blah, blah.\footcite[][15]{dyer-apology-crito-2007}

\printbibliography
\end{document}

答案1

中的编辑器处理windycity与其他biblatex样式实现的有很大不同。特别windycity是使用一组复杂的规则来确定显示哪些编辑器(哪种类型),请参阅§3.编辑、翻译和编译者文档windycity

以下内容增加了对 的支持reviser,但是它使用标准biblatex方法来处理这些感觉不太正确的事情。

\documentclass[12pt]{article}

\usepackage[style=windycity, backend=biber]{biblatex}

\newbibmacro{reviser}{%
  \iffieldequalstr{editortype}{reviser}
    {\ifnameundef{editor}
       {}
       {\newunit
        \usebibmacro{bytypestrg}{editor}{editor}%
        \setunit{\addspace}%
        \printnames[byeditor]{editor}%
        \newunit}}
    {}}

\renewbibmacro*{edcombos+etc}{%
  \togglefalse{noed}%
  \togglefalse{notrans}%
  \usebibmacro{test:ed}%
  \usebibmacro{test:trans}%
  \iftoggle{noed}
    {}
    {\usebibmacro{edcombos}%
     \usebibmacro{pluga+etc}}%
  \usebibmacro{reviser}}

\begin{filecontents}[force]{\jobname.bib}
@book{dyer-apology-crito-2007,
  author      = {Louis Dyer},
  title       = {Plato's Apology and Crito},
  editor      = {Thomas Day Seymour},
  editortype  = {reviser},
  publisher   = {Aristide D. Caratzas},
  year        = {2007},
  address     = {New Rochelle, NY},
  keywords    = {commentary,apology,crito,phaedo},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Blah, blah, blah.\footcite[][15]{dyer-apology-crito-2007}

\printbibliography
\end{document}

戴尔,路易斯。柏拉图的申辩和克里托。托马斯·戴·西摩修订。纽约州新罗谢尔:阿里斯蒂德·D·卡拉扎斯出版社,2007 年。

如果《芝加哥格式手册》书目样式允许修订,那么我建议您在以下网址打开功能请求:https://github.com/brianchase/windycity/issues

答案2

在 GitHub 上,作者windycity建议使用字段来处理这个问题note。为了让这个过程更顺畅一些,他建议如下

在 american-windycity.lbx 中,向 \DeclareBibliographyStrings 添加类似以下内容:

revisedby     = {{revised by}{rev\adddot}},

在同一个文件中,您还需要添加一个前置声明:

\NewBibliographyString{revisedby}

然后我们可以note像这样使用该字段:

note = {\bibstring{revisedby} Thomas Day Seymour}

这将在参考书目和注释中产生所需的结果。

作者说他可能会更新windycity以包括revisedby,所以整个问题很快就会变得毫无意义。

更新:作者windycity 已添加reviser为内置编辑器角色,就像compiler或一样translator。更新尚未到达 CTAN,但如果您想立即使用它,您可以轻松地将文件复制到本地。这意味着今后您不必使用该note字段。您只需执行以下操作:

@book{ dyer-apology-crito-2007,
    author = {Louis Dyer},
    title = {Plato's Apology and Crito},
    shorttitle = {Apology and Crito},
    editor = {Thomas Day Seymour},
    editortype = {reviser},
    publisher = {Aristide D. Caratzas},
    year = {2007},
    address = {New Rochelle, NY},
    keywords = {commentary,apology,crito,phaedo},
}

相关内容