我正在尝试为我的文档类创建自己的颜色主题。目前我的解决方案是使用类参数:
\DeclareOption{colour-theme-formal}{
\definecolor{soft}{gray}{0.75}
\definecolor{glow}{RGB}{001,176,236}
\definecolor{canvas}{RGB}{200,100,100}
\definecolor{prime}{RGB}{255,100,100}
}
\DeclareOption{colour-theme-vibrant}{
\definecolor{soft}{gray}{0.75}
\definecolor{glow}{RGB}{001,176,236}
\definecolor{canvas}{RGB}{255,100,100}
\definecolor{prime}{RGB}{255,100,100}
}
因此,在设置我的文档时我会执行以下操作:
\documentclass[a4paper,11pt,margin,line,colour-theme-vibrant]{jackstyle}
这工作得很好,但我需要的是一些可以动态改变的东西,而不是作为文档参数。
例如,最好使用命令在任何时候在我喜欢的样式之间进行切换,例如:
\usetheme{colour-theme-vibrant}
任何帮助都将不胜感激。
答案1
在类中,在声明选项之前,添加
\newcommand{\jackclass@definetheme}[2]{\@namedef{jack@theme@#1}{#2}}
\newcommand{\usetheme}[1]{\@nameuse{jack@theme@#1}}
\jackclass@definetheme{colour-theme-formal}{%
\definecolor{soft}{gray}{0.75}%
\definecolor{glow}{RGB}{001,176,236}%
\definecolor{canvas}{RGB}{200,100,100}%
\definecolor{prime}{RGB}{255,100,100}%
}
\jackclass@definetheme{colour-theme-vibrant}{%
\definecolor{soft}{gray}{0.75}%
\definecolor{glow}{RGB}{001,176,236}%
\definecolor{canvas}{RGB}{255,100,100}%
\definecolor{prime}{RGB}{255,100,100}%
}
\DeclareOption{colour-theme-formal}{\usetheme{colour-theme-formal}}
\DeclareOption{colour-theme-vibrant}{\usetheme{colour-theme-vibrant}}
然后,您可以使用\usetheme{...}
任何您喜欢的位置,或者使用类选项(或两者)。