如何访问包内部值?

如何访问包内部值?

请随意更改该问题的标题,因为我不确定它是否合适。

例如,我想绘制一条与标准框线厚度高度相同的规则tcolorbox

我查看了tcolorbox包代码,并假设该行leftrule/.store in=\kvtcb@left@rule对于我想要的东西来说是必不可少的。但如果我尝试

\documentclass{article}

\usepackage{tcolorbox}

\begin{document}

\noindent\rule{\textwidth}{\kvtcb@left@rule}

\end{document}

它不起作用并且 LaTeX 返回错误! Undefined control sequence.

所以我更普遍的问题是:我如何访问这样的包内部值以便在我的文档中使用它们?

答案1

可以使用包装器,至少对于某些键值,以防止\makeatletter...\makeatother每次都进行配对:

\documentclass{article}

\usepackage{tcolorbox}

\makeatletter
\newcommand{\accesstcb}[1]{%
  \csname kvtcb@#1\endcsname%
}
\makeatother

\begin{document}

\noindent\rule{\textwidth}{\accesstcb{left@rule}}

\end{document}

问题是,tcolorbox根据用途,内部值有一些不同的命名方案。

相关内容