在 biblatex windycity 样式 reflist 环境中删除月份周围的空括号

在 biblatex windycity 样式 reflist 环境中删除月份周围的空括号

对于我的论文,我需要在脚注中添加参考文献,并按日期排序参考书目。为了实现这一点,我从 biblatex-chicago 切换到 biblatex 中的 windycity 样式。这对于注释本身来说很好,但我的参考书目中出现了一些空括号。我发现这是因为我的一些参考文献的日期有月份和日期,但我date=year在序言中设置了。空括号通常会括住月份。我怎样才能从日期中删除所有月份和日期,而无需更改我的 .bib 文件。

这是我的 MWE:

\documentclass{article}
\usepackage[reflist=true, style=windycity, date=year]{biblatex}
\bibliography{biblatex-examples}
\begin{document}
    Date with month: \cite{shore}
    
    Date without month: \cite{doody}
    
    \printbibliography
\end{document}

在此处输入图片描述

答案1

windycity基本上是在假设您从未明确将日期格式设置为 的情况下运行的year。以下是尝试了解windycity日期格式。我们用测试替换 中对month( \iffieldundef{month})的所有测试,这也考虑了输出格式。issue+month+etc\ifdatehasyearonlyprecision{}date

\documentclass{article}
\usepackage[reflist=true, style=windycity, date=year]{biblatex}
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{issue+month+etc}[1]{%
  \iffieldundef{year}
    {\ifdatehasyearonlyprecision{}
       {}
       {\setunit{\space}%
        \printtext[parens]{\printdate}}}
    {\ifboolexpr{ test {\iffieldundef{volume}}
                  and test {\iffieldundef{number}}}
       {\iffieldundef{journal}
          {}
          {\setunit{\addcomma\space}}%
        \ifdatehasyearonlyprecision{}
          {\usebibmacro{issue+season+year}}%
          {\usebibmacro{reflist+year+day}%
           \printdate}}%
       {\ifdatehasyearonlyprecision{}
          {\setunit{\space}%
           \usebibmacro{reflist+issue+season}}%
          {\ifstrequal{#1}{noparens}
             {\usebibmacro{reflist+year+day}%
              \newunit
              \printdate}%
             {\usebibmacro{reflist+year+day}%
              \setunit{\space}%
              \printtext[parens]{\printdate}}}}}}

\begin{document}
  Date with month: \cite{shore}

  Date without month: \cite{doody}

  \printbibliography
\end{document}

Shore, Bradd。1991 年。“两次出生,一次受孕:意义建构与文化认知。”《美国人类学家》,新系列,93,第 1 期:9-27。

我不会称其为错误,因为对于实现特定指南规则的样式来说,仅在其默认设置下按预期工作是完全合法的,但你可以 ping 作者windycity通过以下方式联系作者:https://github.com/brianchase/windycity/issues并要求为各种选项提供新功能/支持...date

答案2

moewe 的答案设法去掉了括号,但它仍然保留了那些有月份的项目和那些完成的项目的风格差异。我想简单的解决方案可能是使用以下命令从每个 bib 项目中移除月份和日期

\AtEveryBibitem{%
    \clearfield{doi}%
    \clearfield{month}%
    \clearfield{day}}

这似乎可以提供我想要的输出。我为什么要使用它?

相关内容