无需调用 xcolor 包两次即可使用颜色名称

无需调用 xcolor 包两次即可使用颜色名称

我已经看到我不能两次要求一个包。我怎样才能有一个选项来激活颜色名称的可用性

\RequirePackage[dvipsnames*,svgnames,x11names]{xcolor}

但是如果缺少该选项,样式文件将使用它

 \RequirePackage{xcolor}

答案1

有很多方法。使用经典选项或选择您选择的键值接口。以下是expl3

\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesPackage{veak}[veak v0.1]
\ExplSyntaxOn
\keys_define:nn { veak }
{
  colour ~ names .bool_set:N = \l_veak_colour_names_bool,
  colour ~ names .default:n = true,
  colour ~ names .initial:n = false,
}
\ProcessKeyOptions { veak }
\bool_if:NTF \l_veak_colour_names_bool
{
  \RequirePackage[svgnames,x11names,dvipsnames]{xcolor}
}{
  \RequirePackage{xcolor}
}
\ExplSyntaxOff
\endinput

答案2

一种方法是条件性地调用命令

\PassOptionsToPackage{dvipsnames*,svgnames,x11names}{xcolor}

在加载包之前。它还允许您组合多个选项,从而将不同的选项添加到xcolor。此技术对于修复.cls文件内的选项冲突也很有用。

相关内容