![如何在 BibTeX 中获取自定义引用类型?](https://linux22.com/image/287709/%E5%A6%82%E4%BD%95%E5%9C%A8%20BibTeX%20%E4%B8%AD%E8%8E%B7%E5%8F%96%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%95%E7%94%A8%E7%B1%BB%E5%9E%8B%EF%BC%9F.png)
我想在准备的论文中引用一部电影。格式是 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}