需要帮助创建 tcolorbox(如手册中的那个)

需要帮助创建 tcolorbox(如手册中的那个)

我正在尝试创建一个类似 3.40 版手册中提到的 tcolorbox:

在此处输入图片描述

我尝试通过查看源代码来弄清楚设置,源代码可在此处找到:

https://www.ctan.org/tex-archive/macros/latex/contrib/tcolorbox

到目前为止,我还不能使用提取的设置创建 MWE,但它们似乎太复杂了,无法仅绘制一个框:

  \documentclass[10pt]{book}

  \def\tcb@layer@pushup{%
  \tcb@count@boxes%
  \global\advance\tcolorbox@number by -1\relax%
  \stepcounter{tcblayer}%
  \ifnum\c@tcblayer>1%
    \tcbset{breakable@true/.code=}%
  \else%
    \ifinner\ifhmode\tcbset{breakable@true/.code=}\fi\fi%
  \fi%
  \ifnum\c@tcblayer>\tcb@managed@layers@max%
    \tcbset{every box on higher layers}%
    \tcbset{every box on higher layers/.code=}%
  \else%
    \tcbset{every box on layer \number\c@tcblayer}%
    \tcbset{every box on layer \number\c@tcblayer/.code=}%
  \fi%
  \addtocounter{tcblayer}{-1}%
}

\tcbset{
  docexample/.style={colframe=ExampleFrame,colback=ExampleBack,
    before skip=\medskipamount,after skip=\medskipamount,
    fontlower=\footnotesize},
  index default settings/.style={index actual={@},index quote={"},index level={!}},
  index german settings/.style={index actual={=},index quote={!},index level={>}},
  english language/.code={\tcbset{doclang/.cd,
    color=color,colors=Colors,
    counter=counter,counters=Counters,
    environment content=environment content,
    environment=environment,environments=Environments,
    index=Index,
    key=key,keys=Keys,
    length=length,lengths=Lengths,
    new=New,
    pageshort={P.},
    updated=Updated,
    value=value,values=Values}},
}

 \def\dispListing{\tcb@layer@pushup\tcbset{docexample}\begingroup\tcbwritetemp}

\def\enddispListing{%
  \endtcbwritetemp\endgroup%
  \begin{tcolorbox}%
  \tcb@doc@usetemplisting%
  \end{tcolorbox}%
}

\begin{dispListing}
Hello World
\end{dispListing}

有人可以建议我一种更简单的方法来绘制类似的盒子吗?

答案1

default3.40 版的代码框tcolorbox与上一个 3.93 版不同。我不知道如何获取 3.40 版的代码来深入研究,所以我尝试做了类似的事情。希望对您有所帮助。

OP 框有一个基于固定图像的框架,看起来像是 的旋转 blueshade.png版本tcolorbox

在此处输入图片描述

因为我不知道如何旋转它frame style image,所以结果不一样。

在此处输入图片描述

\documentclass[tikz,border=2mm]{standalone} 
\usepackage[most]{tcolorbox}

\begin{document}

\newtcolorbox{mybox}{colback=blue!25!black!15, enhanced, frame style image=blueshade.png, drop fuzzy shadow}

\begin{mybox}
This is a \textbf{tcolorbox}.
\end{mybox}
\end{document}

更新

感谢 Christian Hupfer 提供了 3.40 版本的链接,我找到了默认代码框的定义方式。在这种情况下,svgnames必须将 option 传递给xcolor并将alloption 传递给,tcolorbox因为color 在其库ExampleBack中定义:documentation

\PassOptionsToPackage{svgnames}{xcolor}
\documentclass[tikz,border=2mm]{standalone} 
\usepackage[all]{tcolorbox}

\begin{document}

\newtcolorbox{mybox}{colback=Navy!5!ExampleBack, enhanced, 
    frame style ={fill stretch image*={angle=180,origin=c}{blueshade.png},         
          fill image opacity=0.75}, 
    drop fuzzy shadow}

\begin{mybox}
This is a \textbf{tcolorbox}.
\end{mybox}
\end{document}

在此处输入图片描述

相关内容