Compilateur LaTeX en ligne
www.cpierquet.fr
fichiers/test/tcboxornements.tex
↓ télécharger
%!TEX pdflatex

\documentclass{article}
\usepackage{tcolorbox}
\usepackage{simplekv}
\tcbuselibrary{skins}
\usepackage{lipsum}

\makeatletter
\newlength\tikz@border@ornements@linewidth
\newlength\tikz@border@ornements@size

\newcommand\inttikzorncorner[2]{%
	\begin{scope}[line width=\tikz@border@ornements@linewidth,shift={(#1)},#2,tcboxornements@color,transform shape]
		\draw (0,\tikz@border@ornements@size) -- (0,0.1\tikz@border@ornements@size) -- (0.2\tikz@border@ornements@size,0.1\tikz@border@ornements@size) rectangle++ (-0.1\tikz@border@ornements@size,0.1\tikz@border@ornements@size) |- (\tikz@border@ornements@size,0) ;
		\draw (0.04\tikz@border@ornements@size,0.04\tikz@border@ornements@size) rectangle (0.26\tikz@border@ornements@size,0.26\tikz@border@ornements@size) ;
		\draw (0.04\tikz@border@ornements@size,0.35\tikz@border@ornements@size) -- (0.04\tikz@border@ornements@size,0.85\tikz@border@ornements@size) ;
		\draw (0.35\tikz@border@ornements@size,0.04\tikz@border@ornements@size) -- (0.85\tikz@border@ornements@size,0.04\tikz@border@ornements@size) ;
	\end{scope}
}

\tcbset{tikz bordures ornements/.style={%
		enhanced,%
		frame empty,
		boxsep=0.26\tikz@border@ornements@size,
		top=0.15mm,left=0.15mm,right=0.15mm,bottom=0.15mm,
		opacityfill=0,%
		finish unbroken={%
			\ifboolKV[tcboxornements]{alt deco}%
			{%
				\draw[line width=\tikz@border@ornements@linewidth,tcboxornements@color!25,opacity=0.5] ([shift={(0.26\tikz@border@ornements@size,0.26\tikz@border@ornements@size)}]frame.south west) rectangle ([shift={(-0.26\tikz@border@ornements@size,-0.26\tikz@border@ornements@size)}]frame.north east) ;
			}%
			{}%
			\begin{scope}
				\clip ([xshift=-0.5\tikz@border@ornements@linewidth,yshift=-0.5\tikz@border@ornements@linewidth]frame.south west) -- ([xshift=-0.5\tikz@border@ornements@linewidth]frame.west) -- ([yshift=-0.5\tikz@border@ornements@linewidth]frame.south) -- cycle ;
				\inttikzorncorner{frame.south west}{}
			\end{scope}
			\begin{scope}
				\clip ([xshift=-0.5\tikz@border@ornements@linewidth,yshift=0.5\tikz@border@ornements@linewidth]frame.north west) -- ([xshift=-0.5\tikz@border@ornements@linewidth]frame.west) -- ([yshift=0.5\tikz@border@ornements@linewidth]frame.north) -- cycle ;
				\inttikzorncorner{frame.north west}{yscale=-1}
			\end{scope}
			\begin{scope}
				\clip ([xshift=0.5\tikz@border@ornements@linewidth,yshift=0.5\tikz@border@ornements@linewidth]frame.north east) -- ([xshift=0.5\tikz@border@ornements@linewidth]frame.east) -- ([yshift=0.5\tikz@border@ornements@linewidth]frame.north) -- cycle ;
				\inttikzorncorner{frame.north east}{scale=-1}
			\end{scope}
			\begin{scope}
				\clip ([xshift=0.5\tikz@border@ornements@linewidth,yshift=-0.5\tikz@border@ornements@linewidth]frame.south east) -- ([xshift=0.5\tikz@border@ornements@linewidth]frame.east) -- ([yshift=-0.5\tikz@border@ornements@linewidth]frame.south) -- cycle ;
				\inttikzorncorner{frame.south east}{xscale=-1}
			\end{scope}
		}
	},
}

\defKV[tcboxornements]{%
	size deco=\setlength\tikz@border@ornements@size{#1},%
	color deco=\colorlet{tcboxornements@color}{#1}
}
\setKVdefault[tcboxornements]{%
	size deco=1.5cm,%
	color deco={black},%
	alt deco=false
}

\NewDocumentEnvironment{tcboxornements}{ O{} m }%
{%
	\restoreKV[tcboxornements]%
	\setKV[tcboxornements]{#1}%
	\setlength\tikz@border@ornements@linewidth{0.015\tikz@border@ornements@size}%
	\tcolorbox[tikz bordures ornements,#2]
}%
{%
	\endtcolorbox%
}%

\makeatother

\begin{document}

\begin{tcboxornements}{}
\lipsum[1][1-4]
\end{tcboxornements}

\begin{tcboxornements}[alt deco]{}
\lipsum[1][1-4]
\end{tcboxornements}

\begin{tcboxornements}[color deco=red!50!black]{}
\lipsum[2][1]
\end{tcboxornements}


\end{document}