我正在尝试使用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 修复路径
每当 LaTeX 或外部程序的错误消息表明无法找到文件时,原因可能是必须通过不同的路径来解决丢失的文件,具体取决于排版的文件。在这种情况下,将命令应用于文件
\subfix
或路径名可能会有所帮助。示例:[...]
在你的情况下,抱怨在处理时bib2glg
找不到。要修复它,请使用symbols.bib
chap1
\GlsXtrLoadResources[src={\subfix{symbols}}]
在main.tex
;注意添加的\subfix
。