Overleaf 中的 fontspec 和 xr 包不兼容

Overleaf 中的 fontspec 和 xr 包不兼容

我尝试在 Overleaf 中使用 xr 包并在引用文件中设置自定义字体。但是,一旦我在引用文件中加载 fontspec 包,xr 包就无法再识别引用。

为了证实这一点,我打开了背面网站通过点击“在 Overleaf 中打开一个示例”在最终项目下。然后我添加了

\usepackage{fontspec}

在下面

\documentclass{article}

对于 File2.tex,使用 XeLaTeX 作为编译器重新编译 File2.tex 两次和 File1.tex 两次,结果显示 ?? 而不是引用号,并出现警告

参考第 1 页上的“label1”未定义

xr 包和 fontspec 之间是否存在干扰?还是我忽略了什么?

答案1

如果file2.tex需要使用fontspec,那么也需要使用xelatexlualatex才能编译时不出现错误。

即使您的项目设置为使用 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]\"" );
   }
}

相关内容