使用 pgfkeys 写入新环境的条件

使用 pgfkeys 写入新环境的条件

我正在用 LaTeX 编写一个新环境,其中pgfkeys使用包来提供关键接口。

源代码:

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{noteframe}[2023/01/01 Version 1.0]

\RequirePackage{tikz}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage[most]{tcolorbox}

\pgfkeys{
    /noteframe/.is family,
    /noteframe,
    default/.style = {
        color = cyan,
        frame = one
    },
    color/.store in = \boxcolor,
    frame/. store in = \boxframe
}

\newenvironment{noteframe}[1][]{
    \pgfkeys{/noteframe, default, #1}
    \begin{tcolorbox}[
        enhanced,
        boxrule = 0pt,
        frame hidden,
        \if\boxframe = one,
        borderline west = {3pt}{0pt}{\boxcolor!85!black},
        \fi,
        \if\boxframe = two,
        borderline west = {3pt}{0pt}{\boxcolor!85!black},
        borderline east = {3pt}{0pt}{\boxcolor!85!black},
        \fi,
        colback = \boxcolor!10!white,
        sharp corners
    ]}
{\end{tcolorbox}}

目的:使用下面的命令创建彩色框。

\begin{noteframe}[color=cyan, frame=one] %%% By default, color is cyan, and frame is one.
                                         %%% Color can be chosen from xcolor name, frame 
                                         %   has options of {one, two, zero}. 
    What happened here?
\end{noteframe}

当我使用选项运行上述命令时,[color=cyan, frame=one]LaTeX 应该会生成一个彩色框,其一侧位于框的左侧: 一

当我使用选项运行上述命令时,[color=orange, frame=two]LaTeX 应该会生成一个彩色框,其一侧位于框的左侧: 二

当我使用选项运行上述命令时,[color=Lavender, frame=zero]LaTeX 应该会生成一个彩色框,其一侧位于框的左侧: 零

有人能帮我检查一下源代码frame=zero以上?即使我声明或,我的代码也只能生成 tcolorbox 的两行版本(框左侧和右侧的行)frame=one

提前感谢您的帮助:)

相关内容