我正在调试一个(非常大的).bib
文件。为此,我想在运行以下源文件时一次读取 bib 文件的块(例如,前 n 行):
\documentclass{article}
\usepackage{biblatex}
\addbibresource{my-large-bib-file.bib}
\begin{document}
\nocite{*}
\end{document}
我知道我可以删除最后 N 行,然后手动粘贴部分内容,但是有没有办法通过biber
源文件中的命令来执行此操作?我查看了biblatex
文档的第 3.7.1 节,但没有看到相关选项addbibresource
(或其他命令)。
答案1
这是使用 的答案knitr
。它假定所有条目的右括号都在一行上。如果您的 bib 文件是用 UTF8 编写的,您可能需要更改编码设置。
<<>>=
n <- 1000
bib <- readLines("bibliography.bib", n = n)
while (tail(bib, 1) != "}"){
n <- n + 1
bib <- readLines("bibliography.bib", n = n)
}
writeLines(bib, "temp.bib")
@
\addtobibliography{temp.bib
}
答案2
许多关于使用 LaTeX 处理长文本的介绍都建议将源代码分成几部分,然后将它们包含在“主”文档中。主文档中的包含列表可以根据需要进行各种注释。我就是为我自己的 bib 文件这样做的,尽管在我的情况下,它们已经按主题进行了拆分。对于您的情况,有一些 Unix 命令可以将文件拆分成几部分(名称各不相同)。找到其中一个并砍掉它!