如何在提案文档类中使用作者年份引用样式?

如何在提案文档类中使用作者年份引用样式?

我正在尝试使用带有引用样式的提案文档类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加载选项的操作。这里建议的解决方案相当混乱。

相关内容