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

\documentclass{article}
\usepackage{customenvs}
\usepackage[scaled=0.925]{cabin}

%====BOX NUMBER
\newlength\tmpheightboxnumber
\newlength\tmpshadowoffsetboxnumber
\newlength\tmpwidthboxnumber

\defKV[TikzBoxNumber]{%
	bg color=\colorlet{bgboxnumber}{#1},%
	shadow color=\colorlet{shadowboxnumber}{#1},%
	font=\def\fontboxnumber{#1},%
	shadow offset=\setlength\tmpshadowoffsetboxnumber{#1},%
	num color=\colorlet{numboxnumber}{#1},%
}

\setKVdefault[TikzBoxNumber]{%
	bg color=darkgray,%
	shadow color=gray,%
	font=\bfseries,%
	shadow=true,%
	shadow offset=0.25pt,%
	num color=white,%
	width auto=true
}

\NewDocumentCommand\tkzboxnumber{ O{} m }{%
	\restoreKV[TikzBoxNumber]%
	\setKV[TikzBoxNumber]{#1}%
	{%
		\fontboxnumber%
		\getwideststring{0,1,2,3,4,5,6,7,8,9}%
		\xdef\tmplennumberbox{\xintfloateval{trunc(log10(#2),0)+1}}%
		\setlength\tmpwidthboxnumber{\tmplennumberbox\tmpwideststring}%
		\settoheight\tmpheightboxnumber{\hbox{0123456789}}%
		\begin{tikzpicture}[baseline=(char.base)]
			\ifboolKV[TikzBoxNumber]{width auto}%
			{\node[inner sep=0pt] (char) {\vphantom{0123456789}\makebox[\tmpwidthboxnumber][c]{#2}} ;}%
			{\node[inner sep=0pt] (char) {\vphantom{0123456789}#2} ;}%
			\useasboundingbox ([xshift=-0.5mm]char.west)--([xshift=-0.5mm,yshift=-0.15mm]char.south west)--([xshift=0.5mm,yshift=-0.5mm]char.south east)--([xshift=0.5mm,yshift=0.5mm]char.north east)--([xshift=-0.5mm,yshift=0.15mm]char.north west)--cycle;
			\ifboolKV[TikzBoxNumber]{shadow}%
			{%
				\filldraw[rounded corners=0.15\tmpheightboxnumber,shadowboxnumber,opacity=0.75] ([xshift=-0.5mm+\tmpshadowoffsetboxnumber,yshift=-\tmpshadowoffsetboxnumber]char.west)--([xshift=-0.5mm+\tmpshadowoffsetboxnumber,yshift=-0.15mm-\tmpshadowoffsetboxnumber]char.south west)--([xshift=0.5mm+\tmpshadowoffsetboxnumber,yshift=-0.5mm-\tmpshadowoffsetboxnumber]char.south east)--([xshift=0.5mm+\tmpshadowoffsetboxnumber,yshift=0.5mm-\tmpshadowoffsetboxnumber]char.north east)--([xshift=-0.5mm+\tmpshadowoffsetboxnumber,yshift=0.15mm-\tmpshadowoffsetboxnumber]char.north west)--cycle;
			}%
			{}%
			\filldraw[rounded corners=0.15\tmpheightboxnumber,bgboxnumber] ([xshift=-0.5mm]char.west)--([xshift=-0.5mm,yshift=-0.15mm]char.south west)--([xshift=0.5mm,yshift=-0.5mm]char.south east)--([xshift=0.5mm,yshift=0.5mm]char.north east)--([xshift=-0.5mm,yshift=0.15mm]char.north west)--cycle;
			\ifboolKV[TikzBoxNumber]{shadow}%
			{%
				\ifboolKV[TikzBoxNumber]{width auto}%
				{\draw[shadowboxnumber,opacity=0.75] ([xshift=\tmpshadowoffsetboxnumber,yshift=-\tmpshadowoffsetboxnumber]char) node[inner sep=0pt] {\vphantom{0123456789}\makebox[\tmpwidthboxnumber][c]{#2}} ;}
				{\draw[shadowboxnumber,opacity=0.75] ([xshift=\tmpshadowoffsetboxnumber,yshift=-\tmpshadowoffsetboxnumber]char) node[inner sep=0pt] {\vphantom{0123456789}#2} ;}
			}%
			{}%
			\draw[numboxnumber] (char) node[inner sep=0pt] {\vphantom{0123456789}\makebox[\tmpwidthboxnumber][c]{#2}} ;
		\end{tikzpicture}%
	}%
}

\usepackage{lipsum}
\setlength\parindent{0pt}

\begin{document}

\setKVdefault[TikzBoxNumber]{font=\bfseries\sffamily}

{\tkzboxnumber{1}}~\lipsum[1][1]\par

{\tkzboxnumber[width auto=false]{1}}~\lipsum[1][1]\par

{\tkzboxnumber{2}}~\lipsum[1][1]\par

{\tkzboxnumber{3}}~\lipsum[1][1]\par

{\tkzboxnumber[num color=yellow]{4}}~\lipsum[1][1]\par

$\ldots$

{\tkzboxnumber{11}}~\lipsum[1][1]\par


{\tkzboxnumber{77}}~\lipsum[1][1]\par

$\ldots$

{\tkzboxnumber{222}}~\lipsum[1][1]\par

{\tkzboxnumber{697}}~\lipsum[1][1]\par

{\tkzboxnumber[width auto=false]{697}}~\lipsum[1][1]\par

{\tkzboxnumber{800}}~\lipsum[1][1]\par

$\ldots$

{\tkzboxnumber{1564}}~\lipsum[1][1]\par

{\tkzboxnumber[width auto=false]{1564}}~\lipsum[1][1]\par

{\tkzboxnumber{2009}}~\lipsum[1][1]\par

{\tkzboxnumber{7124}}~\lipsum[1][1]\par

\end{document}