我认为使用相同选项加载两次包不会导致选项冲突,但在以下简单示例中仍然出现冲突:
\documentclass{article}
\RequirePackage[patch]{kvoptions}
\RequirePackage[patch]{kvoptions}
\begin{document}
Hello World!
\end{document}
这是一个 MnWE,我真正想要实现的是创建两个像这样的依赖类:
我的类名.cls
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{myclass}[2012/05/24 v1.0 My Class]
\RequirePackage[patch]{kvoptions}
\endinput
另一个类.cls
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{anotherclass}[2012/05/24 v1.0 Another Class]
\RequirePackage[patch]{kvoptions}
% I need to use some features of `kvoptions` here
\LoadClass{myclass}
\endinput
测试.tex
\documentclass{anotherclass}
\begin{document}
Hello World!
\end{document}
版本信息
- 它适用于LaTeX2e <2005/12/01>(TeXLive 安装于 2009 年)
- 它不适用于LaTeX2e <2011/06/27>(TeXLive 安装于 2012 年)
答案1
使用
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{myclass}[2012/05/24 v1.0 My Class]
\PassOptionsToPackage{patch}{kvoptions}
\RequirePackage{kvoptions}
\endinput
和你的例子一样:
\PassOptionsToPackage{patch}{kvoptions}
\documentclass{article}
\RequirePackage{kvoptions}
\RequirePackage{kvoptions}
\begin{document}
Hello World!
\end{document}
答案2
文档kvoptions
说,在第 12 页
• 自 2008/10/18 起,v3.0 软件包 kvoptions-patch 可用。必须使用软件包 kvoptions 之前的选项补丁。我认为,作为独立软件包 kvoptions-patch 的解决方案更简洁,并避免了选项冲突。
因此使用
\RequirePackage{kvoptions-patch}
\RequirePackage{kvoptions}