两个参考书目:一个用于正文,一个用于附录

两个参考书目:一个用于正文,一个用于附录

我有一份手稿,其结构如下:

Main Text
Bibliography
Appendix

但是,有些引文只在附录中引用,它们出现在主参考书目中。我想将我的参考书目分成两个不同的部分,这样论文的结构就会像这样:

Main Text
Bibliography for Main Text
Appendix
Bibliography for Appendix

我目前正在使用 bibtex 和单个 .bib 文件,并使用创建参考书目

\bibliographystyle {someBibStyleFile}
\bibliography {bibFileName}

我对一种方法感兴趣,该方法可以将我的单个参考书目拆分为主要参考书目和附录参考书目,同时对文档的其余部分进行最少的更改。我知道这biblatex比 bibtex 更强大,但我还没有准备好在该项目截止日期之前进行切换。有许多相关的具有多个部分类型的参考书目问题,但我没有看到一个涵盖这种情况的问题。

答案1

这是带有软件包的解决方案biblatex。下面展示了如何操作。确保bibtex在所有辅助文件、所有*[0-9]-blx.aux文件上运行。

\documentclass{article}

\usepackage{filecontents}
\usepackage{biblatex}

\begin{filecontents}{myrefs.bib}
@Book{Knuth:1990,
    author    = {Knuth, Donald E.},
    title     = {The {\TeX}book},
    year      = {1990},
    isbn      = {0-201-13447-0},
    publisher = {Addison\,\textendash\,Wesley},
}

@Book{Lamport:94,
    author    = {Lamport, Leslie},
    title     = {\LaTeX: A Document Preparation System},
    year      = {1994},
    isbn      = {0-021-52983-1},
    publisher = {Addison\,\textendash\,Wesley},
}
\end{filecontents}

\addbibresource{myrefs.bib}
\begin{document}

\section{First}
    {\LaTeX} is aTuring-complete
    (procedural) markup language and
    typesetting processor~\parencite{Lamport:94}.


\printbibliography
\appendix
\section{Second}
\begin{refsection}
   The ultimate reference of {\TeX} is~\parencite{Knuth:1990}.
\printbibliography[heading=subbibliography]
\end{refsection}

\end{document}

示例输出

答案2

multibib可以定义多个 bib。

\RequirePackage{filecontents}
\begin{filecontents}{myrefs.bib}
@Book{Knuth:1990,
    author    = {Knuth, Donald E.},
    title     = {The {\TeX}book},
    year      = {1990},
    isbn      = {0-201-13447-0},
    publisher = {Addison\,\textendash\,Wesley},
}

@Book{Lamport:94,
    author    = {Lamport, Leslie},
    title     = {{\LaTeX}: A Document Preparation System},
    year      = {1994},
    isbn      = {0-021-52983-1},
    publisher = {Addison\,\textendash\,Wesley},
}
\end{filecontents}

\documentclass{article}
\usepackage{multibib}
\newcites{latex}{\LaTeX-Literature}%  \citelatex, \nocitelatex, ...

\begin{document}

\section{First}
  \citelatex{Lamport:94} wrote \LaTeX.

\bibliographystylelatex{alpha}
\bibliographylatex{myrefs}

\appendix
\section{Second}
   The ultimate reference~\cite{Knuth:1990}

\bibliographystyle{plain}
\bibliography{myrefs}

\end{document}

\newcites{suffix}{heading}可以定义特殊宏。示例必须使用

pdflatex <file>
bibtex <file>.aux
bibtex latex.aux
pdflatex <file>

每个额外的围兜都需要单独bibtex运行,并且可以有不同的围兜样式:

在此处输入图片描述

答案3

您可以使用bibunits包并按如下方式构建文档

\documentclass{book}
\usepackage{bibunits}

\defaultbibliography{<bib-file>}
\defaultbibliographystyle{<preferred bib style>}

\begin{document}
\begin{bibunit}
Main Text
\putbib
\end{bibunit}

\begin{bibunit}
Appendix
\putbib
\end{bibunit}
\end{document}

答案4

另一个可能的解决方案是简单地分别编译正文和附录,然后在后端附加它们。执行此操作的基本脚本如下所示:

latex body.tex
bibtex body.aux
latex body.tex
latex body.tex
dvips -P pdf body.dvi
ps2pdf body.ps

latex appendix.tex
bibtex appendix.aux
latex body.tex
latex body.tex
dvips -P pdf appendix.dvi
ps2pdf appendix.ps    

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=main.pdf body.pdf appendix.pdf

在这种情况下,您需要用适当的前言、\begin{document}和包围您的 appendix.tex \end{document}

最后一个命令(通过 Ghostscript 附加)取自排名第二的答案这里。你需要latex至少跑三次,正如解释的那样这里

我编写的(经常使用的)精简脚本可以在 GitHub 上找到,您可以从 Linux 终端运行该脚本这里。它还有一些附加功能(语法检查、删除临时 LaTeX 编译文件等)。基本语法是combiner body.tex appendix.tex master.pdf

相关内容