BibLaTeX:在 2021 年《金融杂志》书目样式中引用两位作者有时会显示不正确的结果

BibLaTeX:在 2021 年《金融杂志》书目样式中引用两位作者有时会显示不正确的结果

当我使用来自 https://tex.stackexchange.com/questions/379901/biblatex-how-to-match-the-journal-of-finance-bibliographic-style 的 biblatex 模板时,我有两个问题。

  1. 例如,当我想引用一篇有两位作者的文章时,有时会显示不正确的结果

P. Jain 和 S. Jain (2019)。

正确的结果应该是

耆那教与耆那教 (2019)。

但是这种情况很少发生,所以我不确定触发机制。

  1. 我的引用 ( /parencite) 中年份没有括号。

(夏普,1964 年)。

我希望正确的结果是

(夏普,(1964))。

我如何更改我的 biblatex 设置?

\usepackage{csquotes} 
\usepackage[style=authoryear, 
backend=biber, 
giveninits=true,
uniquelist = false, 
uniquename=init,
isbn=false, 
maxcitenames=3,
dashed=false, 
maxbibnames=999,
doi=false,
url=false]{biblatex}
\addbibresource{Auto Rebalance_ref.bib} %Imports bibliography file
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\labelnamepunct}{\addspace}

\DeclareFieldFormat
  [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  {title}{#1}
\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}

\renewbibmacro*{in:}{%
  \ifentrytype{article}
    {\setunit{\addcomma\space}}
    {\printtext{\bibstring{in}\intitlepunct}}}

\DeclareFieldFormat{journaltitlecase}{#1}

\renewbibmacro*{journal}{%
  \ifboolexpr{
    test {\iffieldundef{journaltitle}}
    and
    test {\iffieldundef{journalsubtitle}}
  }
    {}
    {\printtext[journaltitle]{%
       \printfield[journaltitlecase]{journaltitle}%
       \setunit{\subtitlepunct}%
       \printfield[journaltitlecase]{journalsubtitle}}}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\DeclareFieldFormat[article,periodical]{volume}{\mkbibbold{#1}}% volume of a journal
\DeclareFieldFormat{pages}{#1}

@article{jain2019can,
  title = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}? The {{Need}} to {{Account}} for {{Covariance Misspecification}}},
  shorttitle = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}?},
  author = {Jain, Prayut and Jain, Shashi},
  date = {2019-09},
  journaltitle = {Risks},
  volume = {7},
  number = {3},
  pages = {74},
  publisher = {{Multidisciplinary Digital Publishing Institute}},
  urldate = {2021-09-28},
  issue = {3},
  langid = {english}
}

@article{dai2002efficient,
  title = {Efficient, Exact Algorithms for Asian Options with Multiresolution Lattices},
  author = {Dai, Tian-Shyr and Lyuu, Yuh-Dauh},
  date = {2002-05-01},
  journaltitle = {Review of Derivatives Research},
  shortjournal = {Review of Derivatives Research},
  volume = {5},
  number = {2},
  pages = {181--203},
  urldate = {2021-10-13},
  langid = {english}
}

答案1

在此处输入图片描述

使用

  • uniquename=false防止在标签中排版作者唯一姓名的首字母
  • giveninits=true允许在参考书目中使用给定的首字母
  • \DeclareInnerCiteDelims{cite}{\bibopenparen}{\bibcloseparen}全年定制括号

平均能量损失

\begin{filecontents*}{Auto Rebalance_ref.bib}
    @article{jain2019can,
        title = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}? The {{Need}} to {{Account}} for {{Covariance Misspecification}}},
        shorttitle = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}?},
        author = {Jain, Prayut and Jain, Shashi},
        date = {2019-09},
        journaltitle = {Risks},
        volume = {7},
        number = {3},
        pages = {74},
        publisher = {{Multidisciplinary Digital Publishing Institute}},
        urldate = {2021-09-28},
        issue = {3},
        langid = {english}
    }
\end{filecontents*}

\documentclass{book}

\usepackage{csquotes} 
\usepackage[style=ext-authoryear,uniquename=false,giveninits=true]{biblatex}
\addbibresource{Auto Rebalance_ref.bib}

\DeclareInnerCiteDelims{cite}{\bibopenparen}{\bibcloseparen}

\begin{document}
    
    \cite{jain2019can}
    
    \printbibliography[heading=subbibliography]
    
\end{document}

编辑

在此处输入图片描述

为了允许自定义括号\parencite,您可能需要按如下方式重新定义它

\DeclareInnerCiteDelims{parencite}{\bibopenparen}{\bibcloseparen}
\DeclareOuterCiteDelims{parencite}{\bibopenparen}{\bibcloseparen}

parentracker选项(true默认情况下)会跟踪嵌套的括号和方括号,并在检测到类似类型的嵌套括号和方括号时自动更改它们。这种默认行为是可取的,因为引用变得更具可读性。但是,如果您仍希望标签和年份的括号仍然嵌套,则需要parentheses=false在加载时设置biblatex

\begin{filecontents*}{Auto Rebalance_ref.bib}
    @article{jain2019can,
        title = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}? The {{Need}} to {{Account}} for {{Covariance Misspecification}}},
        shorttitle = {Can {{Machine Learning}}-{{Based Portfolios Outperform Traditional Risk}}-{{Based Portfolios}}?},
        author = {Jain, Prayut and Jain, Shashi},
        date = {2019-09},
        journaltitle = {Risks},
        volume = {7},
        number = {3},
        pages = {74},
        publisher = {{Multidisciplinary Digital Publishing Institute}},
        urldate = {2021-09-28},
        issue = {3},
        langid = {english}
    }
\end{filecontents*}

\documentclass{book}

\usepackage{nicematrix}

\usepackage{csquotes} 
\usepackage[
style=ext-authoryear,uniquename=false,giveninits=true,
parentracker=false]{biblatex}
\addbibresource{Auto Rebalance_ref.bib}

\DeclareInnerCiteDelims{cite}{\bibopenparen}{\bibcloseparen}
\DeclareOuterCiteDelims{cite}{\bibopenbracket}{\bibclosebracket}

\DeclareInnerCiteDelims{parencite}{\bibopenparen}{\bibcloseparen}
\DeclareOuterCiteDelims{parencite}{\bibopenparen}{\bibcloseparen}

\begin{document}

\begin{NiceTabular}{c l}
    
    \cite{jain2019can} & with \verb|\cite|
    \\

    \parencite{jain2019can} & with \verb|\parencite|
    \\
            
\end{NiceTabular}

\printbibliography[heading=subbibliography]
    
\end{document}

相关内容