![我怎样才能随包裹提供参考书目文件?](https://linux22.com/image/471158/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E9%9A%8F%E5%8C%85%E8%A3%B9%E6%8F%90%E4%BE%9B%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我的问题是:我怎样才能随包裹提供参考书目文件?
更准确地说:我想编写一个specialBib.sty
包含自己的 bib-file 的包specialBibFile.bib
。如何让 biber 找到位于包目录内的 bib-file?
specialBib.sty
:
\ProvidesPackage{specialBib}
\RequirePackage{biblatex}
% Execute some special biblatex things
\addbibresource{specialBibFile.bib}
specialBibFile.bib
:
@misc{test-resource,
author = {Test Author},
title = {Test Title},
date = {2023-11-19},
}
这个包将位于 tex-tree 中:
/usr/local/texlive/2023/texmf-dist/tex/latex/includeSpecialBib/specialBib.sty
附上 bib 文件:
/usr/local/texlive/2023/texmf-dist/tex/latex/includeSpecialBib/specialBibFile.bib
然后下面的操作应该可以工作:
\documentclass{article}
\usepackage{specialBib}
\begin{document}
Citing a resource from the special bibliography: \cite{test-resource}
\printbibliography
\end{document}
为方便起见,该包的 MWE 如下filecontents
:
\ProvidesPackage{specialBib}
\RequirePackage{biblatex}
% Execute some special biblatex things
\RequirePackage{filecontents}
\begin{filecontents}{specialBibFile.bib}
@misc{test-resource,
author = {Test Author},
title = {Test Title},
date = {2023-11-19},
}
\end{filecontents}
\addbibresource{specialBibFile.bib}
答案1
为了比巴泰克斯,这些文件会被 latex 找到,$TEXINPUTS
因此您可以简单地将文件.bib
与包一起分发,它们位于相同的搜索路径上,因此.bib
如果包存在,就会找到它们,您不需要做任何特殊的事情。
在测试包时,您可以简单地将包和.bib
文件放入本地用户 tex-tree 中(例如~/texmf/tex/latex/yourpackage
),并在必要时使用更新文件名数据库mktexlsr
。
对于 bibtex,文件位于,$BIBINPUTS
因此您可以要求 texlive/miktex 分发 bib
texmf-dist/bibtex/bib/<yourpackage>/<yourbib.bib>.bib
例如,请参阅 IEEE bib 文件
/usr/local/texlive/2023/texmf-dist/bibtex/bib/ieeetran/IEEEabrv.bib