我正在用 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
。
提前感谢您的帮助:)