我尝试在 Overleaf 中使用 xr 包并在引用文件中设置自定义字体。但是,一旦我在引用文件中加载 fontspec 包,xr 包就无法再识别引用。
为了证实这一点,我打开了背面网站通过点击“在 Overleaf 中打开一个示例”在最终项目下。然后我添加了
\usepackage{fontspec}
在下面
\documentclass{article}
对于 File2.tex,使用 XeLaTeX 作为编译器重新编译 File2.tex 两次和 File1.tex 两次,结果显示 ?? 而不是引用号,并出现警告
参考第 1 页上的“label1”未定义
xr 包和 fontspec 之间是否存在干扰?还是我忽略了什么?
答案1
如果file2.tex
需要使用fontspec
,那么也需要使用xelatex
或lualatex
才能编译时不出现错误。
即使您的项目设置为使用 XeLaTeX 或 LuaLaTeX,当 file2.tex 被编译为外部文档时,也会latexmkrc
使用文件中设置的内容,而不是实际项目的编译器设置。
要解决此问题,请编辑latexmkrc
项目中的文件以注释掉第 11 行,并根据需要取消注释 XeLaTeX(第 17 行)或 LuaLaTeX(第 20 行)。例如,要使用 XeLaTeX 而不是 pdfLaTeX 编译外部文档:
add_cus_dep( 'tex', 'aux', 0, 'makeexternaldocument' );
sub makeexternaldocument {
# if the dependency isn't one of the files that this latexmk run will consider, process it
# without this test, we would get an infinite loop!
if (!($root_filename eq $_[0]))
{ # PLEASE ENABLE ONLY ONE OF THE FOLLOWING
# DEPENDING ON THE ENGINE YOU'RE USING
# FOR PDFLATEX
# system( "latexmk -pdf \"$_[0]\"" );
# FOR LATEX+DVIPDF
# system( "latexmk \"$_[0]\"" );
# FOR XELATEX
system( "latexmk -xelatex \"$_[0]\"" );
# FOR LUALATEX
# system( "latexmk -lualatex \"$_[0]\"" );
}
}