有条件地自动包含参考书目文件

有条件地自动包含参考书目文件

我有灵活的common.sty方式,我使用它是我所有的.tex论文(使用\input)来提供统一的格式等。

其中common.sty包括\addbibresource我在所有论文中经常使用的一般参考书目。

但另外,我希望自动包含某些论文的具体参考书目,即使不必在文件中明确说明.tex。具体来说,我希望文件my-funky-paper.bib自动包含在内,当且仅当这样的文件与my-funky-paper.tex文件位于同一目录中。

问题是我想要将执行此操作的代码放在文件中 common.sty

你能教我怎么做吗?这在我所知道的任何编程语言中都很容易做到,但在 Tex 中能做到吗?

答案1

这是一种实现此类\jobname.bib相关行为的可能方法\IfFileExists

请注意,将搜索整个 TeX 输入路径(例如,在 $TEXINPUTS 环境变量中可用),因此如果有两个或多个文件具有相同\jobname和相关.bib文件,则此过程可能会失败(即,它将使用找到的第一个文件 ;-))

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{mysophisticatedcommonstuff}

\RequirePackage{biblatex}% use with options
% More packages to be loaded

\IfFileExists{\jobname.bib}{%
  \addbibresource{\jobname.bib}% Please note that there is an optional argument to \addbibresource!
}{ \typeout{No \jobname.bib file found}}

% more stuff

\endinput

一些进口商文件:

\documentclass{article}

\usepackage{mysophisticatedcommonstuff}

\begin{document}
\end{document}

相关内容