我正在尝试创建一个类似 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
default
3.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
并将all
option 传递给,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}