如何制作一份在论文中引用(\citep
, \citet
)正常但最后没有参考书目的文件?
我想出了一个糟糕的解决方案,因为它破坏了我的makefile
。
latex file.tex
bibtex file
# comment out \bibliography{} command
latex file.tex
同样,有没有办法生成不带文本的参考书目?我又想出了一个解决方案:.tex
用命令填充一个空白文件\nocite{}
。但是,这很麻烦,因为我必须手动同步两个文件(当有分页符时,搜索正则表达式\citep{author1, author2}
会非常麻烦……)。
答案1
你的第二个要求很简单:使用\nocite{*}
。这将产生完整的参考书目,无论实际引用了哪些参考书目条目。
答案2
使用\usepackage{bibentry}
然后 而不是\bibliography{}
使用\nobibliography{}
。
例如
\nobibliography{/Users/Thomas/Dropbox/bibliography.bib}
答案3
您可以定义一个保存框并将\bibliography
命令放入保存框中。
以下是一个小例子:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{test,
author={Name},
title={TITLE},
year={2011},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{plainnat}
\begin{document}
\cite{test}
\newsavebox\mytempbib
\savebox\mytempbib{\parbox{\textwidth}{\bibliography{test}}}
\end{document}
注意:如果您正在使用,biblatex
则不需要此类黑客攻击。
编辑
针对我的回答,我有一个小问题。你对允许用户打印参考书目的小包装有什么看法?
这是我的第一次尝试:
%% Copyright (C) 2011 by Marco Daniel
\ProvidesPackage{nobibprint}[2011/10/12 v0.1 nobibprint]
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}
\define@boolkey{nobibprint.sty}[nobib@]{hide}{}
\ExecuteOptionsX{hide=true}
\ProcessOptionsX
\newsavebox\nobib@tempbox
\ifnobib@hide
\AtBeginDocument{%
\let\nobib@bibliography@orig\bibliography
\def\bibliography#1{%
\savebox\nobib@tempbox{%
\parbox{\linewidth}{%
\nobib@bibliography@orig{#1}%
}%
}%
}%
}
\fi
\endinput
现在简单使用:
\usepackage{nobibprint}
或者:
\usepackage[hide=true]{nobibprint}%default
或者
\usepackage[hide=false]{nobibprint}
答案4
只需使用比布拉特克斯及其natbib
兼容性选项。
\documentclass{article}
\usepackage[style=authoryear,natbib=true]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text \citep{A01}.
% \printbibliography
\end{document}