仅使用 `.bib` 文件中的选定行

仅使用 `.bib` 文件中的选定行

我正在调试一个(非常大的).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 命令可以将文件拆分成几部分(名称各不相同)。找到其中一个并砍掉它!

相关内容