我想引用第一手资料中的参考文献,该参考文献已经是第二手资料中的引用。据我所知,我必须同时注明引用作者和引文的原作者。
引文如下:
“[...]对软件的内部结构进行改变,使其更容易理解,修改起来更便宜,而不会改变其可观察的行为。”
我在克里夫斯基的书中读到过,重构模式,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
.bib
natbib
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
命令。