在单独编译的子文件中使用 bib2gls

在单独编译的子文件中使用 bib2gls

我正在尝试使用glossaries-extra带有record(使用bib2gls)选项的包来获取长文档中的符号列表,其中可以使用该包单独编译每个章节subfiles

我的文件夹如下所示:

  • 主文本
  • 符号.bib
  • 部分:
    • 第一章.tex

这是我的 MWE:

  • main文档
\documentclass{article}
\usepackage{subfiles}
\usepackage[record]{glossaries-extra}

\GlsXtrLoadResources[src={symbols}]

\begin{document}
    \section{Main document}

    Here is some main text. I can reference \gls{test}.

    \subfile{./sections/chap1.tex}
\end{document}
  • symbols.bib例子 :
@symbol{test,
    name = {test},
    description = {symbol description}
}
  • chapter1子文件:
\documentclass[../main.tex]{subfiles}
\begin{document}
\section{Section 1}

I want to reference \gls{test}, it will print fine in main file but I will only get ?? in subfile when compiled individually.
\end{document}

编译主文件的方法是,在每个文件保存后执行以下操作:

pdflatex main
bib2gls main
pdflatex main

这里两个引用都打印正确,这是有道理的,因为主文件将包含子文件并且知道在哪里.bib,但是当我这样做时:

cd sections/
pdflatex chapter1
bib2gls chapter1
pdflatex chapter1

我收到一条错误消息,说找不到.bib,并且 pdf 将打印 ?? 而不是符号。

我的问题是:有没有办法.bib在每个子文件中指定访问路径?

这样,我就可以chapter1.glstex在sections /文件夹中生成一个,并且我猜它会正确引用符号。

提前感谢您的回答。

答案1

来自子文件包的文档,第 3.2 节

3.2 修复路径

每当 LaTeX 或外部程序的错误消息表明无法找到文件时,原因可能是必须通过不同的路径来解决丢失的文件,具体取决于排版的文件。在这种情况下,将命令应用于文件\subfix或路径名可能会有所帮助。示例:[...]

在你的情况下,抱怨在处理时bib2glg找不到。要修复它,请使用symbols.bibchap1

\GlsXtrLoadResources[src={\subfix{symbols}}]

main.tex;注意添加的\subfix

相关内容