summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex')
-rw-r--r--Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex115
1 files changed, 113 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex b/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
index 0ae20f54e75..ad7e495f044 100644
--- a/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
+++ b/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
@@ -1,7 +1,8 @@
%%%
% Geometrie
%%%
-\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments"}%
+\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments",Clip,Cadres=false,Epaisseur=1,Pointilles=false,Ombre=false,Couleur=black,Ecart=2,ModeleCouleur=5}%
+\defKV[Geometrie]{Cadre=\setKV[Geometrie]{Cadres}\setKV[Geometrie]{Clip=false}}%
\ifluatex%
\NewDocumentEnvironment{Geometrie}{o +b}{%
@@ -9,10 +10,31 @@
\setKV[Geometrie]{#1}%
\mplibforcehmode%
\begin{mplibcode}
- % input PfCMPFr;
+ defaultcolormodel := \useKV[Geometrie]{ModeleCouleur};
+
+ vardef rounded_corners expr p =
+ for i=1 upto length p:
+ subpath (i-15/16, i-1/16) of p ..
+ endfor cycle
+ enddef;
+ %
+ boolean Clip,Cadres,Pointilles,Ombre;
+ Clip=\useKV[Geometrie]{Clip};
+ Cadres=\useKV[Geometrie]{Cadres};
+ Pointilles=\useKV[Geometrie]{Pointilles};
+ Ombre=\useKV[Geometrie]{Ombre};
+ Epaisseur=\useKV[Geometrie]{Epaisseur};
+ bboxmargin:=\useKV[Geometrie]{Ecart};
+ color CouleurCadre;
+ CouleurCadre=\useKV[Geometrie]{Couleur};
pair Coinbg,Coinhd;
+ if Clip:
Coinbg=\useKV[Geometrie]{CoinBG};
Coinhd=\useKV[Geometrie]{CoinHD};
+ else:
+ Coinbg=(-1000,-1000);
+ Coinhd=(1000,1000);
+ fi;
if \useKV[Geometrie]{TypeTrace}="Instruments":
typetrace:="normal";
elseif \useKV[Geometrie]{TypeTrace}="MainLevee":
@@ -29,6 +51,43 @@
_tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
_tfig:=2*_tfig;
#2%
+ %%
+ if Cadres:
+ string Cadre;
+ Cadre=\useKV[Geometrie]{Cadre};
+
+ picture P; P = currentpicture;
+
+ if Cadre<>"aucun":
+ if Cadre="rectangle":
+ if Ombre:
+ fill bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw bbox P;
+ drawoptions();
+ draw P;
+ else:
+ if Ombre:
+ fill rounded_corners bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill rounded_corners bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw rounded_corners bbox P;
+ drawoptions();
+ draw P;
+ fi;
+ fi;
+ fi;
\end{mplibcode}
}{}%
\else
@@ -36,6 +95,21 @@
\useKVdefault[Geometrie]%
\setKV[Geometrie]{#1}%
\begin{mpost}[mpsettings={%
+ vardef rounded_corners expr p =
+ for i=1 upto length p:
+ subpath (i-15/16, i-1/16) of p ..
+ endfor cycle
+ enddef;
+ %
+ boolean Clip,Cadres,Pointilles,Ombre;
+ Clip=\useKV[Geometrie]{Clip};
+ Cadres=\useKV[Geometrie]{Cadres};
+ Pointilles=\useKV[Geometrie]{Pointilles};
+ Ombre=\useKV[Geometrie]{Ombre};
+ Epaisseur=\useKV[Geometrie]{Epaisseur};
+ bboxmargin:=\useKV[Geometrie]{Ecart};
+ color CouleurCadre;
+ CouleurCadre=\useKV[Geometrie]{Couleur};
pair Coinbg,Coinhd;
Coinbg=\useKV[Geometrie]{CoinBG};
Coinhd=\useKV[Geometrie]{CoinHD};
@@ -56,6 +130,43 @@
_tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
_tfig:=2*_tfig;
#2%
+ %%
+ if Cadres:
+ string Cadre;
+ Cadre=\useKV[Geometrie]{Cadre};
+
+ picture P; P = currentpicture;
+
+ if Cadre<>"aucun":
+ if Cadre="rectangle":
+ if Ombre:
+ fill bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw bbox P;
+ drawoptions();
+ draw P;
+ else:
+ if Ombre:
+ fill rounded_corners bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill rounded_corners bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw rounded_corners bbox P;
+ drawoptions();
+ draw P;
+ fi;
+ fi;
+ fi;
\end{mpost}
}{}%
\fi% \ No newline at end of file