Circledsteps 给出错误“xcolor 选项冲突”

Circledsteps 给出错误“xcolor 选项冲突”

考虑:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{menukeys}
\usepackage{circledsteps}
\begin{document}
    test
\end{document}

在 TeXLive 2017(Ubuntu 18.04 及其衍生产品中的标准发行版)中将失败

! LaTeX Error: Option clash for package xcolor.

并按下H错误,我们有:

? H
The package 'xcolor' has already been loaded with options:
  [table].
There has now been an attempt to load it with no options. 
[...]

发生了什么事?我认为加载没有选项的包(就像加载到 中一样circledsteps.sty)应该总是可以的 --- 它只会继承已经指定的包。

答案1

如果可以的话,正如 Bernard 在评论中注意到的那样,更新你的发行版 --- 该代码片段在 TeXLive 2019 中没有问题。

否则,问题就在于包menukeys使用了catoptions包;该包改变了包加载的行为。

一个可能的解决方法是David Carlisle 在聊天中温和地建议,并由我自己实现(所以所有的责任都在我身上):

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[table]{xcolor}
\usepackage{menukeys}
% ugly and dangerous workaround. Based on https://chat.stackexchange.com/transcript/message/53685426#53685426, all the blame @Rmano
\makeatletter
\@ifpackageloaded{catoptions}{%
    \expandafter\let\csname [email protected]\endcsname\relax}{}
\makeatother
\usepackage{circledsteps}
\begin{document}
    test
\end{document}

相关内容