在序言中的 \usepackage{biblatex} 后指定引用样式

在序言中的 \usepackage{biblatex} 后指定引用样式

是否可以使用命令指定引用样式?(例如\ExecuteBibliographyOptions{...}

我把所有内容\usepackage{...}放在一个文件中,将设置放在另一个文件中。但我做不到:

\ExecuteBibliographyOptions{style=numeric-comp}

因为它会出现以下错误:

! Package keyval Error: style undefined.

梅威瑟:

\documentclass{scrbook}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @misc{K1, author={A 1}, title={T 1}}
    @misc{K2, author={A 2}, title={T 2}}
    @misc{K3, author={A 3}, title={T 3}}
\end{filecontents}
\usepackage{biblatex}
\ExecuteBibliographyOptions{%
    backend = biber,
    %style = numeric-comp,   <---   this fails!
}
\addbibresource{\jobname.bib}
\begin{document}
Some text \cite{K1, K2, K3}.
\printbibliography%
\end{document}

使用\usepackage[style=numeric-comp]{biblatex}效果很好,但我想在另一个文件(在序言中)中设置样式。我找不到如何操作,或者至少确认这是不可能的。

我也尝试过citestyle=numeric-comp,结果是一样的。

提前致谢!


更新

这个想法是将文档的整个前言分成多个文件,因为这很长(这是我的毕业论文)。我是这样分发的(它们是更多文件):

文件:Settings/Packages.tex

%[...more packages...]
\usepackage{biblatex}   % space for a brief description
%[...more packages...]

文件:Settings/Config.tex

%[...more configs...]
\ExecuteBibliographyOptions{%
    backend = biber,
    sortcites = true,
}
%[...more configs...]

文件:Main.tex

\documentclass{scrbook}
\input{Settings/Packages}
\input{Settings/Config}
%[...more inputs...]
\loadglsentries{Glossary.tex}
\addbibresource{Bibliography.bib}
\begin{document}
\include{Chapters/Chapter1}
%[...more chapters...]
\end{document}

所以我需要style在之后应用\usepackage,因为许多其他包都是通过这种方式制作的(koma-script、glossaries、amsmath、graphicx、PGF-TikZ、siunitx、hyperref 等)。

答案1

我不完全确定你打算做的事是不是一个好主意,因为如果选项与包一起列出,就更容易看到发生了什么,但如果你真的想这样做,你有两个选择。(双关语)。

  1. 将所有选项作为全局选项传递给\documentclass

默认情况下,全局选项(即命令中给出的选项\documentclass)将可用于任何已加载的包,因此只要没有冲突的包选项,您就可以将您的biblatex选项(或任何其他选项)作为全局选项传递。这并不适用于所有包选项。

  1. 使用\PassOptionsToPackage

对于更细粒度的方法,您可以使用\PassOptionsToPackage命令您加载该包。

以下是此技术的一个例子。在此示例中,我故意使用了backend=bibtex选项,因为它不是 中的默认选项biblatex。在您的示例代码中,仅显示该选项有效。

您还可以看到命令放置的效果。如果您biblatex先加载然后执行,\PassOptionsToPackage该选项将无法正常工作。(请确保在测试时每次运行之间backend删除所有文件。).aux

% !BIB TS-program = bibtex

\documentclass[]{scrbook}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
    @misc{K1, author={A 1}, title={T 1}}
    @misc{K2, author={A 2}, title={T 2}}
    @misc{K3, author={A 3}, title={T 3}}
\end{filecontents}
\PassOptionsToPackage{style=numeric-comp,backend=bibtex}{biblatex}

\usepackage{biblatex}

\addbibresource{\jobname.bib}
\begin{document}
Some text \cite{K1, K2, K3}.
\printbibliography%
\end{document}

具体来说,对于biblatex选项来说不是加载包后可以加载它们。文档的第 3.1.1 节biblatex列出了以下选项必须在包加载时加载(即使用命令\usepackage或按上述方式传递):

  • backend
  • style,,bibstylecitestyle
  • natbib
  • mcite

因此对于这些选项,没有办法加载包然后设置选项。

相关内容