有些资助机构要求将主要提案和参考文献分开提交 pdf 文件。我猜,在 Word 中这样操作会更容易:-)
在 LaTeX 中,可以创建一个 PDF 文件,然后使用pdftk
或其他工具将其拆分。但是,创建两个单独的 PDF 文件是一种直接的方法:一个包含正文(带有正确的引用信息),另一个包含所有参考文献列表。我理解,这至少需要编译两个单独的.tex
文件。没关系。我只是不想使用其他工具(在所有合作者的所有计算机上安装可能很棘手,等等)。
下面是一个可供玩的 MWE:
\begin{filecontents}{test.bib}
@ARTICLE{author,
title={A sample article},
author={Random Author},
journal={Random journal},
volume = {10},
year = {2000},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\begin{document}
As shown by \citet{author}, using references can be interesting
\newpage
\bibliographystyle{apalike}
\bibliography{test}
\end{document}
答案1
以下是一些使用两个.tex
文件的技巧。首先使用atbegshi
并丢弃参考书目,然后将其添加到第二个文件中。以下是命名的,例如test.tex
\begin{filecontents}{testttt.bib}
@ARTICLE{author,
title={A sample article},
author={Random Author},
journal={Random journal},
volume = {10},
year = {2000},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\usepackage{atbegshi}
\begin{document}
As shown by \citet{author}, using references can be interesting
\newpage
\AtBeginShipout{%
\AtBeginShipoutDiscard
}
\bibliographystyle{apalike}
\bibliography{testttt}
\end{document}
这不会产生参考书目。
现在创建一个名为reference.tex
以下内容的新文件
\documentclass{article}
\usepackage{natbib}
\begin{document}
\bibliographystyle{apalike}
\input{test.bbl} %% watch out for the same name
\end{document}
这将给你
如果您想要一个.tex
文件,我们可以使事情变得更加复杂;-) 以下是test.tex
将为您提供两个 pdf 文件的文件——test.pdf
包含提案和reference.pdf
参考资料。
\documentclass{article}
\usepackage{natbib}
\usepackage{atbegshi}
\usepackage{filecontents}
\begin{filecontents*}{reference.tex}
\documentclass{article}
\usepackage{natbib}
\begin{document}
\bibliographystyle{apalike}
\input{test.bbl} %% watch out for the same name
\end{document}
\end{filecontents*}
\begin{filecontents*}{testttt.bib}
@ARTICLE{author,
title={A sample article},
author={Random Author},
journal={Random journal},
volume = {10},
year = {2000},
}
\end{filecontents*}
\immediate\write18{pdflatex reference}
\begin{document}
As shown by \citet{author}, using references can be interesting
\newpage
\AtBeginShipout{%
\AtBeginShipoutDiscard
}
\bibliographystyle{apalike}
\bibliography{testttt}
\end{document}
但是,如果页码需要连续,最好pdfpages
按照 cfr 的建议使用。
答案2
也许最简单的方法是正常编译 PDF,然后使用 2 个包装器pdfpages
生成 2 个 PDF。以下假设您的主要文章是,main.tex
因此main.pdf
编译时会产生:
\begin{filecontents}{\jobname.bib}
@ARTICLE{author,
title={A sample article},
author={Random Author},
journal={Random journal},
volume = {10},
year = {2000},
}
\end{filecontents}
\begin{filecontents}{body.tex}
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=1]{main}
\end{document}
\end{filecontents}
\begin{filecontents}{biblio.tex}
\documentclass{article}
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=2]{main}
\end{document}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\begin{document}
As shown by \citet{author}, using references can be interesting
\newpage
\pagenumbering{arabic}% comment out for continuous numbering
\bibliographystyle{apalike}
\bibliography{\jobname}
\end{document}
以下是正文:
及参考文献:
答案3
这是一种方法的骨架,可以使用一个简单的 Makefile 进行优化。
我本以为它可以与--jobname=
switch 一起使用,但这似乎让它尝试加载新的 jobname.aux
文件。因此,您可以使用--output-directory=
转储新文件无那里的参考书目。
% filename.tex
\RequirePackage{etoolbox}% <-- to make the command line stuff more readable
\providebool{NObib}
% \newif\ifNObib
% \NObibtrue
\ifNObib
\def\printthebib{\relax}
\else
\def\printthebib{\newpage\bibliographystyle{apalike}\bibliography{\jobname}}
\fi
\begin{filecontents}{\jobname.bib}
@ARTICLE{author,
title={A sample article},
author={Random Author},
journal={Random journal},
volume = {10},
year = {2000},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\begin{document}
As shown by \citet{author}, using references can be interesting
% \newpage
% \bibliographystyle{apalike}
% \bibliography{\jobname}
\printthebib
\end{document}
正常编译。当你想生成这两个文件时,使用:
pdflatex filename.tex && pdflatex --output-directory=nobibdir "\newif\ifNObib\NObibtrue\input{filename}"
(nobibdir
您创建的子目录在哪里。无 bib 版本的 PDF 将放在那里。)
一句警告:您必须删除.aux
输出目录中生成的文件。否则,在后续运行中,书目信息将丢失。可能是这样的:
pdflatex filename.tex && pdflatex --output-directory=nobibdir "\newif\ifNObib\NObibtrue\input{filename}" && rm -v nobibdir/filename.aux