如何在 BibTeX 中获取自定义引用类型?

如何在 BibTeX 中获取自定义引用类型?

我想在准备的论文中引用一部电影。格式是 APA,因此(根据这个文件)文中的引用应为“(Mulcahy,1986)”,参考文献本身应显示为

穆尔卡希,R.(导演)。(1986)高地人. 佳能影片。

我正在使用 BibDesk 来管理我的参考文献,但似乎没有任何电影条目类型。目前,我可以通过将其输入为书籍、Cannon Films出版商和{Mulcahy, R. (Director).}作者来实现所需的效果。文本中的引用显示为“(Mulcahy, R. (Director)., 1986)”,但我可以通过输入“ (Mulcahy \citeyear{MUL86})”来实现正确的外观。

然而,这显然是一种黑客行为,我想知道是否有“正确的方法”来做我在这里尝试做的事情。

答案1

主 BibTeX 样式文件识别一种名为 的“catch-all”条目类型@misc。它似乎可以用于“movie”类型的条目。

如果你使用书目样式apalike,你会得到这个输出:

在此处输入图片描述

\RequirePackage{filecontents}
\documentclass{article} 
\begin{filecontents*}{\jobname.bib}
@misc{mulcahy86,
 author  = "Mulcahy, R. {\relax (Director)}", % don't abbreviate "Director"...
 year    = 1986,
 title   = "Highlander",
 howpublished = "Cannon Films",
}
\end{filecontents*}
\bibliographystyle{apalike} % select your preferred bibliography style here
\usepackage{natbib}
\begin{document}
\citet{mulcahy86}
\bibliography{\jobname}
\end{document}

或者,如果您使用apa文档类(它提供自己的书目样式),您将得到以下内容:

在此处输入图片描述

\RequirePackage{filecontents}
\documentclass{apa} 
\begin{filecontents*}{\jobname.bib}
@misc{mulcahy86,
 author  = "Mulcahy, Russell {\relax (Director)}",
 year    = 1986,
 title   = "Highlander",
 howpublished = "Cannon Films",
}
\end{filecontents*}
\usepackage{natbib}
\begin{document}
\citet{mulcahy86}
\bibliography{\jobname}
\end{document}

答案2

改用 Biblatex 可能比您想象的要简单得多。至少比用其他方法修复这个问题要简单得多。

这是使用的示例biblatex-apa。我必须添加几行说明在电影引用中应使用导演作为作者。否则,这是不合常规的。我添加了选项以获取您可能习惯的natbib相同命令。\citep

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa, natbib]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{apamovie.bib}

\DeclareLabelname[movie]{
  \field{director}
}

\begin{document}
I've read a book \citep{book}.
I've seen a movie \citep{highlander}.

\printbibliography
\end{document}

围兜文件:

@Book{book,
  author =   {A. U. Thor},
  title =    {My first book},
  publisher =    {Methuen},
  year =     1999}

@movie{highlander,
  title =        {Highlander},                  
  director =     {Mulcahy, Russell},
  year =         {1986},
  publisher =    {Cannon Films},                  
}

在此处输入图片描述

答案3

使用角色怎么样?

该答案基于[https://tex.stackexchange.com/a/579758/14628][1]。

\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa, natbib]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{\jobname.bib}

\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{book,
  author = {A. U. Thor},
  title = {My first book},
  publisher = {Methuen},
  year = {1999}
}
@book{highlander,
  title = {Highlander},
  author = {Mulcahy, Russell},             
  author+an:role = {1=director},
  year = {1986},
  publisher = {Twentieth Century Fox},                  
}
\end{filecontents*}

\begin{document}
I've read a book \cite{book}.
I've seen a movie \citep{highlander}.

\printbibliography
\end{document}

相关内容