生成包含多个独立(且分离)出版物集的文档的简便方法

生成包含多个独立(且分离)出版物集的文档的简便方法

我正在制作简历,我想添加我的出版物列表。但是,.bib每种出版物我都有一个不同的文件(因为我试图添加与国际出版物分开的书籍章节、与会议出席分开的章节等)。每个文件bib在主简历文件中都有自己的部分供他们查看。

我这样做的方法是为每个创建一个单独的小脚本bib,例如下面这个(还有 4 个这样的脚本)

\documentclass[letterpaper]{article}
\usepackage[latin1]{inputenc}

\begin{document}
\bibliographystyle{ieeetr}
\nocite{*}
\bibliography{myintpubs}
\end{document}

它不仅生成 pdf 文档,还生成一个.bbl文件。因此,我手动编译每个小脚本(针对我要分离的每种出版物各一个),并将生成的.bbl文件输入到主 pdf 的各自部分中。像这样:

\begin{rSection}{International Journal Publications}
\begingroup
\renewcommand{\section}[2]{}
\input{./makerefen2/intpub_makeref.bbl}
\endgroup
\end{rSection}

{\bf Talks and presentations}\\
\begingroup
\renewcommand{\section}[2]{}
\input{./makerefen/talk_makeref.bbl}
\endgroup

然后我编译主 pdf,一切就都正常了。问题是,这样做效率很低,因为对于我所做的每项更改,我都必须执行pdflatexbibtexpdflatex只是为了生成.bbls(针对每个bib文件),然后才编译主 pdf。

我确信有更好的方法可以做到这一点。也许使用biblatex而不是bibtex。所以我的问题是:有什么更干净、更好的方法可以做到这一点?

PS:这与问题(我相信这个问题的答案也适用于此),但我根本无法重现这一点。

答案1

使用biblatexbiber 您无需经历使用不同.bib文件的麻烦。按出版物类型(条目类型)过滤书目列表非常容易。

你可以这样做

\printbibliography[type=article,title={Articles in peer-review journals}]
\printbibliography[type=book,title={Books}]
\printbibliography[nottype=book,nottype=article,title={Other stuff I did}]

并会完成它。

请注意,您不仅可以通过 过滤参考书目type,还可以从文档本身keywords.bib动态使用文件和类别,以及使用 bibfilters 进行其他更复杂的过滤。

如果您愿意,您仍然可以使用此方法。只需.bib使用 加载所有文件即可\addbibresource

也可以看看按参考文献类型划分参考书目


但您也可以使用仅依赖于.bib文件分离的方法。(如果您需要比仅按条目类型进行更细粒度的分离,并且已经.bib为此任务设置了文件,则这种方法特别有用。)

为此,我们在加载label每个文件时为其分配一个:.bib\addbibresource

\addbibresource[label=books]{mybib-books.bib} 
\addbibresource[label=articles]{mybib-articles.bib} 

然后我们使用refsections 来分隔参考书目,每个引用部分都会获得.bib通过其标签标识的文件之一。

\begin{refsection}[books]
\nocite{*}
\printbibliography[title={Books}]
\end{refsection}

\begin{refsection}[articles]
\nocite{*}
\printbibliography[title={Articles}]
\end{refsection}

将打印两个书目。第一个来自mybib-books.bib(用books标签标识),第二个来自mybib-articles.bib(用标识articles)。

\documentclass[british]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear,backend=biber]{biblatex}

\usepackage{filecontents}
\begin{filecontents*}{\jobname-books.bib}
@book{book1,
  author = {Anne Uthor},
  title = {My First Book},
  date = {2010},
}
@book{book2,
  author = {Anne Uthor},
  title = {My Second Book},
  date = {2010},
}
\end{filecontents*}
\begin{filecontents*}{\jobname-articles.bib}
@article{article1,
  author = {Anne Uthor},
  title = {My First Article},
  journal = {Best Journal Ever},
  date = {2012},
}
@book{article2,
  author = {Anne Uthor},
  title = {My Second Article},
  journal = {Journal of Articles},
  date = {2013},
}
\end{filecontents*}

\addbibresource[label=books]{\jobname-books.bib} 
\addbibresource[label=articles]{\jobname-articles.bib} 

\begin{document}
\begin{refsection}[books]
\nocite{*}
\printbibliography[title={Books}]
\end{refsection}
\begin{refsection}[articles]
\nocite{*}
\printbibliography[title={Articles}]
\end{refsection}
\end{document}

相关内容