是否可以使用命令指定引用样式?(例如\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
我不完全确定你打算做的事是不是一个好主意,因为如果选项与包一起列出,就更容易看到发生了什么,但如果你真的想这样做,你有两个选择。(双关语)。
- 将所有选项作为全局选项传递给
\documentclass
默认情况下,全局选项(即命令中给出的选项\documentclass
)将可用于任何已加载的包,因此只要没有冲突的包选项,您就可以将您的biblatex
选项(或任何其他选项)作为全局选项传递。这并不适用于所有包选项。
- 使用
\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
,,bibstyle
citestyle
natbib
mcite
因此对于这些选项,没有办法加载包然后设置选项。