使用 BibTeX 引用

使用 BibTeX 引用

我想引用第一手资料中的参考文献,该参考文献已经是第二手资料中的引用。据我所知,我必须同时注明引用作者和引文的原作者。

引文如下:

“[...]对软件的内部结构进行改变,使其更容易理解,修改起来更便宜,而不会改变其可观察的行为。”

我在克里夫斯基的书中读到过,重构模式,2005 年。它最初由 Fowler 于重构:改进现有代码的设计,1999年。

在文中引用,我会写类似这样的内容:

重构是“……”[Fowler 1999 由 Kerievsky 2005 引用]。

这是一个最小的工作示例,仅将两个引用放在括号中:

\documentclass{memoir}    
\usepackage{natbib}    
\begin{document}

According to Martin Fowler, refactoring is ``a change made to the internal
structure of software to make it easier to understand and cheaper to modify
without changing its observable behavior''~\cite{Fow:1999,Ker:2005}.

\bibliographystyle{unsrt}
\bibliography{references}

\end{document}

使用 BibTeX,这不再那么简单了。我使用数字来引用,并在附录中打印参考书目。使用 BibTeX 引用引文的最佳实践解决方案是什么?

答案1

为了便于讨论,我假设您的文件中有带有键Ker:2005和的条目,分别指向 Kerievsky 和 ​​Fowler 的作品。假设您使用引文管理包,您可以按如下方式进行。Fow:1999.bibnatbib

  • natbib使用选项square(在括号引用周围生成方括号)和numbers(生成数字样式的引用)加载包。

  • \citep使用和的组合\citealp来创建所需的引用:

    Refactoring is "..." \citep[][cited by \citealp{Ker:2005}]{Fow:1999}.
    

如果这个语法看起来有点难以记住,您可能需要定义一个名为\citeprimsec序言中的宏:

\newcommand{\citeprimsec}[2]{\citep[][cited by \citealp{#2}]{#1}}

并将其用作文档正文

Refactoring is "..." \citeprimsec{Fow:1999}{Ker:2005}.

宏的名称有望使第一个参数应该是主引用的键,而其第二个参数应该是次要引用的键。


附录:我刚刚注意到你的评论不是使用natbib。好吧,natbib在序言中添加要加载的软件包列表应该不是什么大问题。只需确保使用选项square和加载它numbers。您无需修改​​任何现有\cite命令。

相关内容