Biblatex:如何在參考書目中獲得完整的名字?

Biblatex:如何在參考書目中獲得完整的名字?

我希望 BibLaTeX 在文本中引用時不顯示任何名字或縮寫。但我想在參考書目中有完整的名字。據我所知,這可以透過 來實現giveninits=false。但這個指令根本不影響引用風格。

我這樣設定 BibLaTeX:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[
backend=biber,
style=apa,
maxcitenames = 2,
mincitenames = 1,
uniquename = false,
uniquelist = false,
maxbibnames = 99,
apamaxprtauth=99,
giveninits=false
]{biblatex}
\DeclareLanguageMapping{english}{english-apa}
\usepackage{filecontents}

\begin{filecontents*}{test.bib}
@article{marquard1975,
    author = {Donald W.   Marquardt  and  Ronald D.   Snee},
    title = {Ridge Regression in Practice},
    journal = {American Statistician},
    volume = {29},
    number = {1},
    pages = {3-20},
    year  = {1975},
    publisher = {Taylor & Francis},
}
}
\end{filecontents*}

\addbibresource{test.bib}

\begin{document}
\title{asdf}
\author{myself}
\date{\today}
\maketitle

TEST \cite{marquard1975}


\printbibliography
\end{document}

我得到的是(文本引用很好,參考書目不行)

測試 Marquardt 和 Snee,1975

參考

馬夸特,DW 和斯尼,RD (1975)。嶺回歸的實踐。美國統計學家,29(1),3-20。

我想得到什麼:

測試 Marquardt 和 Snee,1975

參考

唐納德·W·馬夸特和羅納德·D·斯尼 (1975)。嶺回歸的實踐。美國統計學家,29(1),3-20。

答案1

正如評論中所提到的,APA 風格要求將名字縮寫為縮寫,並且僅將全名添加在(方括號)中,以防縮寫不明確。biblatex-apa盡可能落實這項要求。由於這非常棘手,因此正常選項giveninits無法按預期使用biblatex-apa.這類似於(max|min)(bib|cite)?names選項無法按預期工作的情況。

您必須重新定義兩個名稱 bibmacros 才能取得全名,一個用於按given-family順序排列的名稱,另一個用於family-given.原始定義可以在 中找到apa.bbx,我們只刪除了 \ifthenelse{\value{uniquename}>1}測試並確保使用\mkbibnamegiven{#2}而不是列印完整的給定名稱\mkbibnamegiven{#3}

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[
  backend=biber,
  style=apa,
  uniquename = false,
  uniquelist = false,
  apamaxprtauth=99,
  giveninits=false,
]{biblatex}


% argument meanings from apa.bbx
% #1 = family name
% #2 = given name
% #3 = given name (initials)
% #4 = name prefix
% #5 = name suffix

\renewbibmacro*{name:apa:family-given}[5]{%
  \ifuseprefix
    {\usebibmacro{name:delim:apa:family-given}{#4#1}%
     \usebibmacro{name:hook}{#4#1}%
     \ifdefvoid{#4}{}{%
       \mkbibnameprefix{#4}\isdot%
       \ifprefchar{}{\bibnamedelimc}}%
     \mkbibnamefamily{#1}\isdot%
     \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}
    {\usebibmacro{name:delim:apa:family-given}{#1}%
     \usebibmacro{name:hook}{#1}%
     \mkbibnamefamily{#1}\isdot
     \ifboolexpe{%
       test {\ifdefvoid{#2}}
       and
       test {\ifdefvoid{#4}}}
       {}
       {\revsdnamepunct}%
     \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
     \ifdefvoid{#4}{}{%
       \bibnamedelimc\mkbibnameprefix{#4}%
       \ifprefchar{}{\bibnamedelimc}}%
\ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}}

\renewbibmacro*{name:apa:given-family}[5]{%
  \usebibmacro{name:delim}{#2#4#1#5}%
  \usebibmacro{name:hook}{#2#4#1#5}%
  \ifdefvoid{#2}{}{\mkbibnamegiven{#2}\isdot%
                   \bibnamedelimd}%
  \ifdefvoid{#4}{}{%
    \mkbibnameprefix{#4}\isdot
    \ifprefchar{}{\bibnamedelimc}}%
  \mkbibnamefamily{#1}\isdot%
  \ifdefvoid{#5}{}{\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}


\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{marquard1975,
  author  = {Donald W. Marquardt and Ronald D. Snee},
  title   = {Ridge Regression in Practice},
  journal = {American Statistician},
  volume  = {29},
  number  = {1},
  pages   = {3-20},
  year    = {1975},
}
\end{filecontents*}

\addbibresource{\jobname.bib}

\begin{document}
TEST \cite{marquard1975}

\printbibliography
\end{document}

唐納德·W·馬夸特和羅納德·D·斯尼 (1975)。嶺回歸的實踐。美國統計學家,29(1), 3–20。

請注意,&inpublisher = {Taylor & Francis},應轉義為\&。這裡沒有錯誤,因為biblatex沒有打印spublisher的字段@article,但最好記住&正確對待。

相關內容