使用 \ifdefined 在 \DeclareOption 内进行定义

使用 \ifdefined 在 \DeclareOption 内进行定义

我正在检查内部声明的命令\DeclareOption,但\ifdefined似乎没有按预期工作。这是一个 MWE:

% example23.sty
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{example23}[2023/01/01 Example package]
\RequirePackage{xcolor}

\definecolor{redcolor}{HTML}{ff0000}
\definecolor{bluecolor}{HTML}{0000ff}

\DeclareOption{red}{\gdef\red{1}}

\ifdefined\red
\newcommand{\mycolor}{redcolor}
\else
\newcommand{\mycolor}{bluecolor}
\fi

\ProcessOptions\relax
% main.tex
\documentclass{article}
\usepackage[red]{example23}

\begin{document}
Test text \textcolor{\mycolor}{test}.
\end{document}

输出:

输出

当我使用 导入包时\usepackage[red]{example23},我希望\red命令被定义并\mycolor设置为红色。我做错了什么?

请注意,这是一个 MWE,我实际上并没有使用它来改变颜色。

相关内容