Bibulous 无法识别所包含文件中的引用

Bibulous 无法识别所包含文件中的引用

我正在使用嗜酒创建可自定义围兜样式的工具(另见创建干净、简单的自定义 bistyle

也就是说,此工具使用替代命令来解析 *.bib 文件并创建 *.bbl 文件。它不使用自定义模板文件,而是bibtex %.aux使用 python 样式的宏。然后,*.tex 文档的编译过程遵循标准的众所周知的过程:/path/to/bibulous.py %.auxtemplates.bstPdfLaTeX + Bibulous + PdfLaTeX (x2) + View Pdf

虽然这在简单示例中运行良好,但在使用\include{...}命令处理更复杂的文档结构时,我遇到了问题。\cite{...}主 *.tex 文件中的参考文献可以正常识别并包含在参考书目中,但包含的 *.tex 文件中的参考文献无法正确识别:Citation [...] on page [...] undefined如下面的最小工作示例所示。

有没有关于如何使用 bibulous 和包含的 *.tex 文件的想法,这根本不应该是一个罕见的情况,而是一种常见的做法!?


这个 MWE 需要 4 个文件 + 吸水宏

MWE.tex           %main *.tex file
templates.bst     %template file for bibulous formatting
bibl.bib          %bib file with entries
sub.tex           %a *.tex file included via \include{sub}
bibulous.py       %file from the bibulous tool used as bibtex command

主 *.tex 文件MWE.tex

\documentclass[a4paper,11pt]{report}

\begin{document}
  %Adding this line recognizes all entries in the *.bib 
  %file and creates Bibliography entries, but this is not 
  %safe when adding new references
  %\nocite{*}

  %This reference works fine
  Reference in main MWE.tex file \cite{Lorem}

  %include file sub.tex with another \cite{...} command
  \include{sub}

  %create bibliogpaphy from bibl.bib file
  \bibliography{bibl}{}
  \bibliographystyle{templates} %use templates.bst bibulous template file

\end{document}

\include{}命令要包含的第二个 *.tex 文件sub.tex

%this reference is not recognized properly
Reference in included sub.tex \cite{Ipsum}

示例书目数据库 bibl.bib

@entry{Lorem,
    title     = {Lorem},
    author    = {A. Lorem},
    year      = {2015},
    publisher = {Lorem Journal}
}

@entry{Ipsum,
    title     = {Ipsum},
    author    = {B. Ipsum},
    year      = {2015},
    publisher = {Ipsum Journal}
}

bibulous 使用的书目格式的示例模板文件templates.bst

TEMPLATES:
entry = <au>, \textit{<title>}, <publisher>, <year>

答案1

*.aux我添加了文件解析器递归调用自身的功能,以便它能够捕获使用 TeX\include命令插入的文本。更新后的bibulous.py文件现在可以在项目网站并适用于此处给出的 MWE。

[该答案是从其中一条评论转化而来的。]

相关内容