使用 biblatex 无法正确呈现引文

使用 biblatex 无法正确呈现引文

$\cite{}\ 和 $\citep{}$ 的年份括号引用无法正确显示,并出现Undefined control sequence错误。我该如何让其正常工作并正确格式化?

\documentclass{paper} 
\usepackage[style=authoryear]{biblatex}
\addbibresource{bibliog.bib}

\begin{document}

This should be Giorgi (2002): \cite{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002): \citep{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002, Blodgett et al. 2008): \citep{Giorgi:WsBBLFIL,Blodgett:2008jg}\\
This is a book: \citep{Glesne:r1QiTFGB}

\printbibliography    
\end{document}

书目目录

@article{Giorgi:WsBBLFIL,
author = {Giorgi, Amedeo},
title = {{The Question of Validity in Qualitative Research}},
journal = {Journal of Phenomenological Psychology},
year = {2002},
volume = {33},
number = {1},
pages = {1--18},
month = mar
}

@article{Blodgett:2008jg,
author = {Blodgett, Jeffrey G and Bakir, Aysen and Rose, Gregory M},
title = {{A test of the validity of Hofstede's cultural framework}},
journal = {Journal of Consumer Marketing},
year = {2008},
volume = {25},
number = {6},
pages = {339--349},
month = sep
}

@book{Glesne:r1QiTFGB,
author = {Glesne, Corrine and Peshkin, Alan},
title = {{Becoming qualitative researchers : an introduction}},
publisher = {White Plains, N.Y. : Longman},
year = {1992}
}

答案1

显然这符合你的要求:

在此处输入图片描述

手册中写道biblatex:“这些(\cite\Cite命令)是裸引用命令。它们打印引用而不添加任何附加内容(例如括号)”,因此您可能应该使用\citet

要更改名称年份分隔符,您必须重新定义\nameyeardelim

\DeclareDelimFormat{nameyeardelim}{\addspace}

要更改多作者分隔符,请重新定义\multicitedelim

\renewcommand*{\multicitedelim}{\addcomma\space}

它应该可以工作。

\RequirePackage{filecontents}
\begin{filecontents}{bibliog.bib}
@article{Giorgi:WsBBLFIL,
author = {Giorgi, Amedeo},
title = {{The Question of Validity in Qualitative Research}},
journal = {Journal of Phenomenological Psychology},
year = {2002},
volume = {33},
number = {1},
pages = {1--18},
month = mar
}

@article{Blodgett:2008jg,
author = {Blodgett, Jeffrey G and Bakir, Aysen and Rose, Gregory M},
title = {{A test of the validity of Hofstede's cultural framework}},
journal = {Journal of Consumer Marketing},
year = {2008},
volume = {25},
number = {6},
pages = {339--349},
month = sep
}

@book{Glesne:r1QiTFGB,
author = {Glesne, Corrine and Peshkin, Alan},
title = {{Becoming qualitative researchers : an introduction}},
publisher = {White Plains, N.Y. : Longman},
year = {1992}
}
\end{filecontents}
\documentclass{paper} 
\usepackage[style=authoryear,natbib=true,citestyle=authoryear,maxcitenames=2]{biblatex}
\addbibresource{bibliog.bib}

\DeclareDelimFormat{nameyeardelim}{\addspace}
\renewcommand*{\multicitedelim}{\addcomma\space}

\begin{document}

This should be Giorgi (2002): \citet{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002): \citep{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002, Blodgett et al. 2008): \citep{Giorgi:WsBBLFIL,Blodgett:2008jg}\\
This is a book: \citep{Glesne:r1QiTFGB}

\printbibliography
\end{document}

答案2

正如评论中所建议的,natbib=true可以使用natbib引用命令。此代码还演示了如何使用 Biblatex 自己的命令来实现相同的结果。

\textcite\autocite依赖于样式。因此,如果您需要除 之外的其他内容authoryear,格式将相应地进行调整。\parencite逻辑性较差,外观标记较多。

我还调整了引用标签中使用的标点符号和名称数量。此外,我还更正了文件.bib。虽然这里的问题没有导致您询问的任何问题,但它们确实导致了一些不一致,并会在其他情况下导致问题。

\begin{filecontents}{\jobname1.bib}
@article{Giorgi:WsBBLFIL,
author = {Giorgi, Amedeo},
title = {The Question of Validity in Qualitative Research},
journal = {Journal of Phenomenological Psychology},
year = {2002},
volume = {33},
number = {1},
pages = {1--18},
month = mar
}

@article{Blodgett:2008jg,
author = {Blodgett, Jeffrey G and Bakir, Aysen and Rose, Gregory M},
title = {A Test of the Validity of {Hofstede}'s Cultural Framework},
journal = {Journal of Consumer Marketing},
year = {2008},
volume = {25},
number = {6},
pages = {339--349},
month = sep
}

@book{Glesne:r1QiTFGB,
author = {Glesne, Corrine and Peshkin, Alan},
title = {Becoming Qualitative Researchers: An Introduction},
address = {White Plains, N.Y.},
publisher= {Longman},
year = {1992}
}
\end{filecontents}

\documentclass{paper} 
\usepackage[style=authoryear,natbib=true,maxcitenames=1]{biblatex}
\addbibresource{\jobname1.bib}
\renewcommand*{\multicitedelim}{\addcomma\space}% corrected in light of moewe's comment
\DeclareDelimFormat{nameyeardelim}{\space}
\begin{document}

This should be Giorgi (2002): \textcite{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002): \autocite{Giorgi:WsBBLFIL}, \parencite{Giorgi:WsBBLFIL} or, with the \verb|natbib=true| option, \citep{Giorgi:WsBBLFIL}\\
This should be (Giorgi 2002, Blodgett et al. 2008): \citep{Giorgi:WsBBLFIL,Blodgett:2008jg}\\
This is a book: \citep{Glesne:r1QiTFGB}

\printbibliography    
\end{document}

输出:引文和参考书目

相关内容