创建包含参考书目的单独 pdf 文件

创建包含参考书目的单独 pdf 文件

有些资助机构要求将主要提案和参考文献分开提交 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

相关内容