diff options
author | Karl Berry <karl@freefriends.org> | 2024-08-20 19:32:12 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-08-20 19:32:12 +0000 |
commit | fe63c4e3772e6df81e35c9e19ab67001a35dc13e (patch) | |
tree | 1d57ebe4b7978f39f744b95932b00164361dbe0d /Master/texmf-dist/tex/latex/customenvs | |
parent | 91ea755522f6f395f46c132ab3480e4a67301fa0 (diff) |
customenvs (20aug24)
git-svn-id: svn://tug.org/texlive/trunk@72073 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/customenvs')
-rw-r--r-- | Master/texmf-dist/tex/latex/customenvs/customenvs.sty | 263 |
1 files changed, 262 insertions, 1 deletions
diff --git a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty index af81d0b88dd..535baa0f186 100644 --- a/Master/texmf-dist/tex/latex/customenvs/customenvs.sty +++ b/Master/texmf-dist/tex/latex/customenvs/customenvs.sty @@ -3,9 +3,10 @@ % source pencil...: CC-BY-SA 4.0 https://tex.stackexchange.com/questions/504092/replicating-a-fancy-bordered-text-style-in-latex/504145#504145 \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{customenvs}[2024/07/13 0.1.8 Custom classic environments] +\ProvidesPackage{customenvs}[2024/08/20 0.1.9 Custom classic environments] %====HISTORIQUE +% v 0.1.9 tkzBanner + tkzBannerTri + includegraphicsfill % v 0.1.8 Nutriscore % v 0.1.7 Style perso pour les vignettes % v 0.1.6 DisplaySkip patch + Patchs pas-tableur @@ -2107,4 +2108,264 @@ \end{tikzpicture}% } +%====vincludegraphics [fr] +\newlength{\tmp@includegraphics@vfill@offset} + +\defKV[vfillincludegphcs]{vOffset=\setlength\tmp@includegraphics@vfill@offset{#1},vCentrer=\def\tmpincludegpvcenter{#1}} +\setKVdefault[vfillincludegphcs]{vRemplir=false,vOffset=0pt,vCentrer=n} + +\NewDocumentCommand\InsererImage{ D<>{} O{} m }{% + \restoreKV[vfillincludegphcs]% + \setKV[vfillincludegphcs]{#1}% + \ifboolKV[vfillincludegphcs]{vRemplir}% + {% + \IfStrEqCase{\tmpincludegpvcenter}{% + {m}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}% + {h}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}\vfill}% + {b}{\vfill\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}% + {n}{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}% + }[{\includegraphics[height=\dimexpr\pagegoal-\pagetotal-\tmp@includegraphics@vfill@offset\relax,#2]{#3}}]% + }% + {% + \includegraphics[#2]{#3}% + }% +} + +%===tkzBanner mixte +\defKV[tkzBannerKeys]{% + maincolor=\def\tkzBannermaincol{#1} +} + +\setKVdefault[tkzBannerKeys]{% + height=2.1cm,% + width=\linewidth,% + collight=teal!25,% + colmedium=teal!75,% + coldark=teal,% + coltxt=white,% + fonttxt=\sffamily\bfseries,% + swap=false,% + maincolor={},% + num=true +} + +\NewDocumentCommand\tkzBanner{ O{} m m }{% + \noindent% + \restoreKV[tkzBannerKeys]% + \setKV[tkzBannerKeys]{#1}% + \pgfmathsetmacro{\tkzBannerscale}{\useKV[tkzBannerKeys]{width}/\linewidth}% + \begin{tikzpicture} + \IfEq{\tkzBannermaincol}{}% + {% + \tikzset{tkzbannerdark/.style={\useKV[tkzBannerKeys]{coldark}}} + \tikzset{tkzbannermedium/.style={\useKV[tkzBannerKeys]{colmedium}}} + \tikzset{tkzbannerlight/.style={\useKV[tkzBannerKeys]{collight}}} + }% + {% + \tikzset{tkzbannerdark/.style={\tkzBannermaincol}} + \tikzset{tkzbannermedium/.style={\tkzBannermaincol!75}} + \tikzset{tkzbannerlight/.style={\tkzBannermaincol!25}} + }% + %coordinates + \coordinate (tkzBanner-NW) at (0,{\useKV[tkzBannerKeys]{height}}) ; + \coordinate (tkzBanner-SW) at (0,0) ; + \coordinate (tkzBanner-NE) at ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}}) ; + \coordinate (tkzBanner-SE) at ({\useKV[tkzBannerKeys]{width}},0) ;% + %swap or note + \ifboolKV[tkzBannerKeys]{swap}% + {% + \coordinate (tkzBanner-A) at ($(tkzBanner-SE)!0.57!(tkzBanner-SW)$) ; + \coordinate (tkzBanner-B) at ($(tkzBanner-NE)!0.91!(tkzBanner-NW)$) ; + \coordinate (tkzBanner-C) at ($(tkzBanner-NE)!0.92!(tkzBanner-NW)$) ; + \coordinate (tkzBanner-D) at ($(tkzBanner-SE)!0.63!(tkzBanner-SW)$) ; + }% + {% + \coordinate (tkzBanner-A) at ($(tkzBanner-SW)!0.57!(tkzBanner-SE)$) ; + \coordinate (tkzBanner-B) at ($(tkzBanner-NW)!0.91!(tkzBanner-NE)$) ; + \coordinate (tkzBanner-C) at ($(tkzBanner-NW)!0.92!(tkzBanner-NE)$) ; + \coordinate (tkzBanner-D) at ($(tkzBanner-SW)!0.63!(tkzBanner-SE)$) ; + }% + %drawing + \fill[tkzbannerdark] (0,0) rectangle ({\useKV[tkzBannerKeys]{width}},{\useKV[tkzBannerKeys]{height}}); + \ifboolKV[tkzBannerKeys]{swap}% + {% + \fill[tkzbannerlight] (tkzBanner-A) to[bend left=8] (tkzBanner-B) -- (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- cycle ; + \fill[tkzbannermedium] (tkzBanner-C) to[bend right=7] (tkzBanner-D) -- (tkzBanner-SW) |- cycle ; + }% + {% + \fill[tkzbannerlight] (tkzBanner-A) to[bend right=8] (tkzBanner-B) -- (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- cycle ; + \fill[tkzbannermedium] (tkzBanner-C) to[bend left=7] (tkzBanner-D) -- (tkzBanner-SE) |- cycle ; + }% + %nodes + \ifboolKV[tkzBannerKeys]{swap}% + {% + \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NE) {\vphantom{qÉ}#2}; + \ifboolKV[tkzBannerKeys]{num}% + {% + \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SW) {\vphantom{qÉ}#3}; + }% + {}% + }% + {% + \ifboolKV[tkzBannerKeys]{num}% + {% + \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},above left,font={\useKV[tkzBannerKeys]{fonttxt}},scale={1.25*\tkzBannerscale}] at (tkzBanner-SE) {\vphantom{qÉ}#3}; + }% + {}% + \node[inner sep=2pt,text={\useKV[tkzBannerKeys]{coltxt}},below right,font={\useKV[tkzBannerKeys]{fonttxt}},scale={2*\tkzBannerscale}] at (tkzBanner-NW) {\vphantom{qÉ}#2}; + }% + \end{tikzpicture}% +} + +%====titre stylisé [fr], à voir avec part ?? +\newlength{\tmp@tkzbanner@autowidthtype} +\setlength\tmp@tkzbanner@autowidthtype{2.5em} +\newlength{\tmp@tkzbanner@autowidthnum} +\setlength\tmp@tkzbanner@autowidthnum{2em} +\newlength{\tmp@tkzbanner@marginoffsetbanner} +\setlength\tmp@tkzbanner@marginoffsetbanner{2pt} +\newlength{\tmp@tkzbanner@autowidth} +\setlength\tmp@tkzbanner@autowidth{2.5em} + +\defKV[tkzBannerpartKeys]{% + maincolor=\def\tkzBannermaintricol{#1},% + logo=\def\tkzBannermaintrilogo{#1},% + type=\def\tkzBannermaintritype{#1},% + blockwidth=\def\tkzBannermaintriblockwidth{#1},% + customtype=\def\tkzBannermaintritypelibre{#1} +} + +\setKVdefault[tkzBannerpartKeys]{% + height=2.5em,% + width=\linewidth,% + blockwidth=2.75em,% + collight=darkgray!25,% + colmedium=darkgray!50,% + coldark=darkgray,% + coltxt=white,% + fonttxt=\sffamily\bfseries,% + swap=false,% + maincolor={},% + logo={},% + type={},% + num=true, + dispblock=true,% + customtype={} +} + +\NewDocumentCommand\tkzBannerTri{ O{} m m }{% + %#1 := clés + %#2 := numéro + %#3 := titre + \noindent% + \restoreKV[tkzBannerpartKeys]% + \setKV[tkzBannerpartKeys]{#1}% + \pgfmathsetmacro{\tkzBannertriscale}{0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}% + \pgfmathsetmacro{\scaletypedoctribanner}{1.05*0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}% + \pgfmathsetmacro{\scaletypedoctribannernum}{2.5*0.75*\useKV[tkzBannerpartKeys]{height}/1.25cm}% + \pgfmathsetmacro{\tkzBannertriangle}{0.10*\useKV[tkzBannerpartKeys]{height}/\useKV[tkzBannerpartKeys]{width}}% + \IfEq{\tkzBannermaintriblockwidth}{auto}% + {% + \settowidth{\tmp@tkzbanner@autowidthtype}{\scalebox{\scaletypedoctribanner}[\scaletypedoctribanner]{\sffamily\bfseries\vphantom{qÉ}\tkzBannermaintritype}}% + \addtolength{\tmp@tkzbanner@autowidthtype}{4pt}% + \settowidth{\tmp@tkzbanner@autowidthnum}{\scalebox{\scaletypedoctribannernum}[\scaletypedoctribannernum]{\sffamily\bfseries\vphantom{qÉ}00}}% + \addtolength{\tmp@tkzbanner@autowidthnum}{4pt}% + \pgfmathsetlength{\tmp@tkzbanner@autowidth}{max(\tmp@tkzbanner@autowidthtype,\tmp@tkzbanner@autowidthnum)}% + }% + {% + \setlength\tmp@tkzbanner@autowidth{\tkzBannermaintriblockwidth}% + }% + \begin{tikzpicture} + \IfEq{\tkzBannermaintricol}{}% + {% + \tikzset{tkzbannertridark/.style={\useKV[tkzBannerpartKeys]{coldark}}} + \tikzset{tkzbannertrimedium/.style={\useKV[tkzBannerpartKeys]{colmedium}}} + \tikzset{tkzbannertrilight/.style={\useKV[tkzBannerpartKeys]{collight}}} + }% + {% + \tikzset{tkzbannertridark/.style={\tkzBannermaintricol}} + \tikzset{tkzbannertrimedium/.style={\tkzBannermaintricol!50}} + \tikzset{tkzbannertrilight/.style={\tkzBannermaintricol!25}} + }% + %coordinates + \coordinate (tkzBannerTri-NW) at (0,{\useKV[tkzBannerpartKeys]{height}}) ; + \coordinate (tkzBannerTri-SW) at (0,0) ; + \coordinate (tkzBannerTri-NE) at ({\useKV[tkzBannerpartKeys]{width}},{\useKV[tkzBannerpartKeys]{height}}) ; + \coordinate (tkzBannerTri-SE) at ({\useKV[tkzBannerpartKeys]{width}},0) ;% + \coordinate (tkzBannerTri-SWd) at ($(tkzBannerTri-SW)!0.05!(tkzBannerTri-NW)$) ;% + \coordinate (tkzBannerTri-SEd) at ($(tkzBannerTri-SE)!0.15!(tkzBannerTri-NE)$) ;% + %drawing & shadow + \fill[lightgray!75] ([yshift=-1pt]tkzBannerTri-SWd) -- ([yshift=-1pt]tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ; + \ifboolKV[tkzBannerpartKeys]{swap}% + {% + \fill[white] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ; + \draw[line width=1pt,tkzbannertridark] ([shift={(0.5pt,-0.5pt)}]tkzBannerTri-NW) -| ([shift={(-0.5pt,0)}]tkzBannerTri-SEd) -- (tkzBannerTri-SWd) ; + }% + {% + \fill[tkzbannertrimedium] (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ; + }% + \ifboolKV[tkzBannerpartKeys]{dispblock}% + {% + \begin{scope} + \clip ($(tkzBannerTri-SW)!0.0375!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1375!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ; + %light + \fill[tkzbannertrilight] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ; + \end{scope} + \begin{scope} + \clip ($(tkzBannerTri-SW)!0.025!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ; + %medium + \fill[tkzbannertrimedium] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth+\tmp@tkzbanner@marginoffsetbanner},0) -- (tkzBannerTri-SW) -- cycle ; + \end{scope} + \begin{scope} + \clip ($(tkzBannerTri-SW)!0.0125!(tkzBannerTri-NW)$) -- ($(tkzBannerTri-SE)!0.1125!(tkzBannerTri-NE)$) -- (tkzBannerTri-NE) -| cycle ; + %dark + \fill[tkzbannertridark] (tkzBannerTri-NW) --++ ({\tmp@tkzbanner@autowidth},0) -- ({\tmp@tkzbanner@autowidth+1em},{0.5*\useKV[tkzBannerpartKeys]{height}}) -- ({\tmp@tkzbanner@autowidth},0) -- (tkzBannerTri-SW) -- cycle ; + \IfEq{\tkzBannermaintritypelibre}{}% + {% + \ifboolKV[tkzBannerpartKeys]{num}% + {% + \IfEq{\tkzBannermaintritype}{}% + {% + \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#2}; + }% + {% + \node[inner sep=2pt,below=1pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={1.05*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritype}; + \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.425*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#2}; + }% + }% + {}% + }% + {% + \node[inner sep=2pt,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({0.5*\tmp@tkzbanner@autowidth},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintritypelibre}; + }% + \end{scope} + }% + {}% + %nodes + \begin{scope} + \clip (tkzBannerTri-SWd) -- (tkzBannerTri-SEd) -- (tkzBannerTri-NE) -| cycle ; + \ifboolKV[tkzBannerpartKeys]{swap}% + {% + \node[inner sep=2pt,right,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3}; + %logo + \IfEq{\tkzBannermaintrilogo}{}% + {}% + {% + \node[inner sep=2pt,left,text=\tkzBannermaintricol,font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintrilogo}; + }% + }% + {% + \node[inner sep=2pt,right,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.75*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\tmp@tkzbanner@autowidth+2*\tmp@tkzbanner@marginoffsetbanner+1.25em},{0.5*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}#3}; + %logo + \IfEq{\tkzBannermaintrilogo}{}% + {}% + {% + \node[inner sep=2pt,left,text={\useKV[tkzBannerpartKeys]{coltxt}},font={\useKV[tkzBannerpartKeys]{fonttxt}},scale={2.5*\tkzBannertriscale},rotate={atan(\tkzBannertriangle)}] at ({\useKV[tkzBannerpartKeys]{width}},{0.55*\useKV[tkzBannerpartKeys]{height}}) {\vphantom{qÉ}\tkzBannermaintrilogo}; + }% + }% + \end{scope} + \end{tikzpicture}% +} + + \endinput
\ No newline at end of file |