我正在尝试使用带有引用样式的提案文档类authoryear
,但是由于某种原因,我无法使其工作。
我在用着
\documentclass[12pt, style=authoryear]{proposal}
它只是忽略了样式命令。我愿意接受任何可行的建议,
防止
biblatex
包在提案文档类中加载,然后手动加载它。(我不断收到包冲突和未定义选项错误)以某种方式将适当的样式命令传递给
biblatex
。将当前的 [NamYY] 引用样式重新定义为 (名称, 年份)。
答案1
免责声明这个答案只是关于
proposal
的加载biblatex
。下面包含的“MWE”不是有效文档proposal
,但使用该类的最小文档似乎需要比普通文档类多得多的内容,我无法让它轻松工作。另请参阅提案文件类问题。
proposal.cls
负载biblatex
\RequirePackage[hyperref=auto,style=alphabetic,defernumbers=true,backend=bibtex,backref=true,firstinits=true,maxbibnames=6]{biblatex}[2010/11-19]
并且没有类选项或其他类提供的技巧来阻止它这样做。
不幸的是,该style
选项是必须在加载时设置的少数选项之一,并且以后biblatex
不能被或朋友覆盖。\ExecuteBibliographyOptions
该包scrlfile
提供了一些不错的工具来阻止包被加载。事实证明,仅仅阻止biblatex
加载是不够的,我们还需要暂时禁用一些biblatex
命令,因为该类会直接使用它们。
然后我们就可以继续装载了biblatex
。
然后按照 MWE 演示其如何工作。
% stop class from loading biblatex
\RequirePackage{scrlfile}
\PreventPackageFromLoading{biblatex}
% the class uses biblatex commands,
% make them no-ops
\long\def\defbibheading#1#2{}
\def\DeclareBibliographyCategory#1{}
\documentclass[english]{proposal}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
% make sure biblatex can define the no-ops
\usepackage{etoolbox}
\undef\defbibheading
\undef\DeclareBibliographyCategory
% load biblatex
\UnPreventPackageFromLoading{biblatex}
\usepackage[style=authoryear, backend=biber]{biblatex}
% repeat class code with no-oped commands
\makeatletter
\defbibheading{empty}{}
\DeclareBibliographyCategory{featured}
\defbibheading{warnpubs}{\section*{\prop@warnpubs@title}%
\@ifundefined{prop@gen@pubspages}
{\@latex@warning{No publication pages specified;
use the pubspage key in the proposal environment!}}
{\prop@warnpubs@message%
\@for\@I:=\prop@gen@pubspages\do{\par\noindent\csname\@I\endcsname}}}
\makeatother
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{sigfridsson}
\printbibliography
\end{document}
如果您确实想使用该类proposal
,我建议您与维护者联系并要求他们简化更改biblatex
加载选项的操作。这里建议的解决方案相当混乱。