根据 pgfpackages 的选项有条件地包含一行

根据 pgfpackages 的选项有条件地包含一行

我正在尝试设计一个小包,主要用于测试目的。目前该包如下所示:

% eqbox.sty
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{eqbox}[2019/01/01 Boxed Equations]

\RequirePackage{xcolor}
\RequirePackage{pgfopts}
\RequirePackage{amsmath}
\RequirePackage{fancybox}
\RequirePackage[most]{tcolorbox}

\pgfkeys{
    /eqbox/.cd,
    colframe/.store in = \colframe,
    colframe = black,
    colback/.store in = \colback,
    colback = white,
    shadow/.store in = \shadow,
    shadow = undefined,
}
\ProcessPgfPackageOptions{/eqbox}

\tcbset{
    highlight math style={
        enhanced,
        sharp corners,
        breakable,
        colframe=\colframe,
        colback=\colback,
\ifx\undefined\shadow
\else
        shadow={2pt}{-2pt}{0mm}{\shadow},
\fi
        boxrule=0.4pt,
        boxsep = 3pt,
        left = 0pt,
        right = 0pt,
        top = 0pt,
        bottom = 0pt
    }
}

我可以尝试这样使用它:

\documentclass[letterpaper, 11pt, onecolumn]{article}

\usepackage{lipsum}
\usepackage{eqbox}

\begin{document}
\lipsum[1]
\begin{equation}
\tcbhighmath{x^2 + 3}
\end{equation}
\lipsum[1]
\end{document}

但是它不起作用。我的目的是:

  • 默认情况下\usepackage{eqbox}不提供任何阴影
  • 如果用户写下方程式\usepackage[shadow=blue]{eqbox},则将其放在带有蓝色阴影的框中

如何让它工作?(我想我不知道如何使用它\ifx来让它工作)

编辑:我也尝试过:

\ifdefined\shadow
        shadow={2pt}{-2pt}{0mm}{\shadow},
\fi

但它也不起作用

相关内容