我使用该subfiles
软件包将我正在处理的主要文档分成几个章节,这样我就不必每次都编译整个文档。
这意味着我不会在任何单独的章节文件中打印参考书目,而只会在主文件中打印。在编译单独的章节时,这会导致出现警告hyperref
,抱怨缺少参考书目,正如已经讨论过的这里。
hyperref=false
那里发布的解决方案是在加载时使用包选项biblatex
。这解决了章节文件中的问题,但现在我在主文件中没有链接。
所以我的问题是:有没有办法将主文件与其他文件区分开来,以便我可以使用如下代码:
\ifmaindocument{\usepackage[backend=biber]{biblatex}}
\ifsubdocument{\usepackage[backend=biber, hyperref=false]{biblatex}}
在序言中?
答案1
主文件和子文件之间的一个不同点是名称。假设你的主文件名为main.tex
:
\usepackage{xstring}
\IfEq{\jobname}{\detokenize{main}}{%
% stuff for main file
}{%
% stuff for subfile
}
答案2
您最新的问题给了我另一个不需要额外软件包的想法:
\makeatletter
\ifdefined\preamble@file
% stuff for the subfile
\else
% stuff for the main file
\fi
\makeatother