From c7f2ac98fdc24c818454625f7cc94ec92da59939 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 31 Jan 2023 20:50:15 +0000 Subject: tangramtikz (31jan23) git-svn-id: svn://tug.org/texlive/trunk@65697 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/tangramtikz/TangramTikz.sty | 264 ++++++++++++++++++++- 1 file changed, 263 insertions(+), 1 deletion(-) (limited to 'Master/texmf-dist/tex/latex/tangramtikz') diff --git a/Master/texmf-dist/tex/latex/tangramtikz/TangramTikz.sty b/Master/texmf-dist/tex/latex/tangramtikz/TangramTikz.sty index 90e772d99ce..412b477de92 100644 --- a/Master/texmf-dist/tex/latex/tangramtikz/TangramTikz.sty +++ b/Master/texmf-dist/tex/latex/tangramtikz/TangramTikz.sty @@ -3,7 +3,9 @@ % Inspiration....: https://tex.stackexchange.com/questions/407449/typesetting-tangram-figures-in-latex \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{TangramTikz}[2023/01/22 v0.1.0 Tangram Puzzles with TikZ] +\ProvidesPackage{TangramTikz}[2023/01/31 v0.1.2 Tangram Puzzles with TikZ] +% 0.1.2 Ajout de modèles +% 0.1.1 Ajout de modèles % 0.1.0 Version initiale + quelques modèles %------Packages utiles @@ -407,6 +409,236 @@ }% } +%the rabbit / le lapin (0.1.1) +\NewDocumentCommand\TangramRabbit{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({-sqrt(2)},{-sqrt(2)}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({0},{-0.5}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-sqrt(2)},{-2}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({0},{0}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({0.2},{1}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({0.2},{1}){TangPara} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({-sqrt(2)},{-sqrt(2)}){TangGrandTri} + \PieceTangram[#2]({0},{-0.5}){TangPetTri} + \PieceTangram[#2]({-sqrt(2)},{-2}){TangPetTri} + \PieceTangram[#2]({0},{0}){TangCar} + \PieceTangram[#2]({0.2},{1}){TangMoyTri} + \PieceTangram[#2]({0.2},{1}){TangPara} + }% +} + +%the plane / l'avion (0.1.1) +\NewDocumentCommand\TangramPlane{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{2}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({2},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({2+0.5*sqrt(2)},{-0.5*sqrt(2)}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({2},{0}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({-1},{-0.75}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-1},{-0.75}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({sqrt(2)-2},{0.25}){TangMoyTri} + }% + {% + \PieceTangram[#2]({0},{2}){TangGrandTri} + \PieceTangram[#2]({2},{0}){TangGrandTri} + \PieceTangram[#2]({2+0.5*sqrt(2)},{-0.5*sqrt(2)}){TangPetTri} + \PieceTangram[#2]({2},{0}){TangPara} + \PieceTangram[#2]({-1},{-0.75}){TangCar} + \PieceTangram[#2]({-1},{-0.75}){TangPetTri} + \PieceTangram[#2]({sqrt(2)-2},{0.25}){TangMoyTri} + }% +} + +%the rooster / le coq (0.1.1) +\NewDocumentCommand\TangramRooster{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({2},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{-1}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({1.6},{-0.4}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({-2},{1}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({1},{0}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({1+sqrt(2)},{1}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({-2},{1}){TangPara} + }% + {% + \PieceTangram[#2]({2},{0}){TangGrandTri} + \PieceTangram[#2]({0},{-1}){TangGrandTri} + \PieceTangram[#2]({1.6},{-0.4}){TangPetTri} + \PieceTangram[#2]({-2},{1}){TangMoyTri} + \PieceTangram[#2]({1},{0}){TangCar} + \PieceTangram[#2]({1+sqrt(2)},{1}){TangPetTri} + \PieceTangram[#2]({-2},{1}){TangPara} + }% +} + +%the jogger / le coureur (0.1.1) +\NewDocumentCommand\TangramJogger{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({sqrt(2)},{-sqrt(2)}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({-1},{1}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({sqrt(2)-1},{1}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({0},{-sqrt(2)}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({0.9},{-sqrt(2)-0.9}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({-sqrt(2)-1},{-sqrt(2)-1}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-sqrt(2)-0.5},{-sqrt(2)-0.5}){TangPetTri} + }% + {% + \PieceTangram[#2]({sqrt(2)},{-sqrt(2)}){TangGrandTri} + \PieceTangram[#2]({-1},{1}){TangGrandTri} + \PieceTangram[#2]({sqrt(2)-1},{1}){TangCar} + \PieceTangram[#2]({0},{-sqrt(2)}){TangMoyTri} + \PieceTangram[#2]({0.9},{-sqrt(2)-0.9}){TangPetTri} + \PieceTangram[#2]({-sqrt(2)-1},{-sqrt(2)-1}){TangPara} + \PieceTangram[#2]({-sqrt(2)-0.5},{-sqrt(2)-0.5}){TangPetTri} + }% +} + +%the dancer / le danseur (0.1.1) +\NewDocumentCommand\TangramDancer{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({3.5},{3.5}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({1.5},{3.5}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({2},{2}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({0.5},{0}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({2},{1.5}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({2.5},{0}){TangPetTri} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({3.5},{3.5}){TangGrandTri} + \PieceTangram[#2]({1.5},{3.5}){TangCar} + \PieceTangram[#2]({2},{2}){TangPara} + \PieceTangram[#2]({0.5},{0}){TangPetTri} + \PieceTangram[#2]({2},{1.5}){TangMoyTri} + \PieceTangram[#2]({2.5},{0}){TangPetTri} + }% +} + +%the camel / le chameau (0.1.1) +\NewDocumentCommand\TangramCamel{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({-2},{0}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-2},{0}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({0},{0}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0.5*sqrt(2)},{0.5*sqrt(2)}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({sqrt(2)},{0.25+sqrt(2)}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({1+0.5*sqrt(2)},{1.5*sqrt(2)-0.25}){TangPetTri} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({-2},{0}){TangMoyTri} + \PieceTangram[#2]({-2},{0}){TangPetTri} + \PieceTangram[#2]({0},{0}){TangCar} + \PieceTangram[#2]({0.5*sqrt(2)},{0.5*sqrt(2)}){TangGrandTri} + \PieceTangram[#2]({sqrt(2)},{0.25+sqrt(2)}){TangPara} + \PieceTangram[#2]({1+0.5*sqrt(2)},{1.5*sqrt(2)-0.25}){TangPetTri} + }% +} + +%the flamingo / le flamant rose (0.1.2) +\NewDocumentCommand\TangramFlamingo{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({0},{0}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({-0.5*sqrt(2)},{0.5*sqrt(2)}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({0},{sqrt(2)}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-1.5},{-1.5}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({-1.5-0.35},{-1.5-sqrt(2)+0.35}){TangPetTri} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({0},{0}){TangCar} + \PieceTangram[#2]({-0.5*sqrt(2)},{0.5*sqrt(2)}){TangPara} + \PieceTangram[#2]({0},{sqrt(2)}){TangMoyTri} + \PieceTangram[#2]({-1.5},{-1.5}){TangPetTri} + \PieceTangram[#2]({-1.5-0.35},{-1.5-sqrt(2)+0.35}){TangPetTri} + }% +} + +%the heart / le coeur (0.1.2) +\NewDocumentCommand\TangramHeart{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({3*sqrt(2)},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({0},{0}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({1.5*sqrt(2)},{0.5*sqrt(2)}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({2*sqrt(2)},{-sqrt(2)}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({2*sqrt(2)},{0}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({1.5*sqrt(2)},{-0.5*sqrt(2)}){TangCar} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({3*sqrt(2)},{0}){TangGrandTri} + \PieceTangram[#2]({0},{0}){TangPara} + \PieceTangram[#2]({1.5*sqrt(2)},{0.5*sqrt(2)}){TangPetTri} + \PieceTangram[#2]({2*sqrt(2)},{-sqrt(2)}){TangMoyTri} + \PieceTangram[#2]({2*sqrt(2)},{0}){TangPetTri} + \PieceTangram[#2]({1.5*sqrt(2)},{-0.5*sqrt(2)}){TangCar} + }% +} + +%the giraffe / la girafe (0.1.2) +\NewDocumentCommand\TangramGiraffe{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({0},{0}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({0.5*sqrt(2)},{-0.5*sqrt(2)}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({sqrt(2)},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({0.5*sqrt(2)},{1.5*sqrt(2)}){TangPara} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({sqrt(2)},{2*sqrt(2)}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({2*sqrt(2)},{1.5*sqrt(2)}){TangMoyTri} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({0},{0}){TangPetTri} + \PieceTangram[#2]({0.5*sqrt(2)},{-0.5*sqrt(2)}){TangCar} + \PieceTangram[#2]({sqrt(2)},{0}){TangGrandTri} + \PieceTangram[#2]({0.5*sqrt(2)},{1.5*sqrt(2)}){TangPara} + \PieceTangram[#2]({sqrt(2)},{2*sqrt(2)}){TangPetTri} + \PieceTangram[#2]({2*sqrt(2)},{1.5*sqrt(2)}){TangMoyTri} + }% +} + +%the horse / le cheval (0.1.2) +\NewDocumentCommand\TangramHorse{ s O{TangPuzz} }{%*=colorcorrection,[key for pic] + \IfBooleanTF{#1}% + {% + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({0},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[1]}]({2},{0}){TangGrandTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({2+0.5*sqrt(2)},{-0.5*sqrt(2)}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[3]}]({0},{-2.5}){TangPetTri} + \PieceTangram[TangSol={\TanGListeCouleurs[4]}]({0},{0}){TangCar} + \PieceTangram[TangSol={\TanGListeCouleurs[2]}]({0},{1}){TangMoyTri} + \PieceTangram[TangSol={\TanGListeCouleurs[5]}]({-sqrt(2)},{-sqrt(2)}){TangPara} + }% + {% + \PieceTangram[#2]({0},{0}){TangGrandTri} + \PieceTangram[#2]({2},{0}){TangGrandTri} + \PieceTangram[#2]({2+0.5*sqrt(2)},{-0.5*sqrt(2)}){TangPetTri} + \PieceTangram[#2]({0},{-2.5}){TangPetTri} + \PieceTangram[#2]({0},{0}){TangCar} + \PieceTangram[#2]({0},{1}){TangMoyTri} + \PieceTangram[#2]({-sqrt(2)},{-sqrt(2)}){TangPara} + }% +} + %macros for tangram creation / commandes pour créer le tangram \NewDocumentCommand\TangramTikzCreateEN{ m }{% \readlist*\TanGListeCouleurs{\TangColors}% @@ -493,6 +725,36 @@ %DOG \IfStrEq{#3}{Dog}{\TangramTikzCreateEN{\TangramDog}}{}% \IfStrEq{#3}{Chien}{\TangramTikzCreateFR{\TangramDog}}{}% + %RABBIT + \IfStrEq{#3}{Rabbit}{\TangramTikzCreateEN{\TangramRabbit}}{}% + \IfStrEq{#3}{Lapin}{\TangramTikzCreateFR{\TangramRabbit}}{}% + %FLIGHT + \IfStrEq{#3}{Plane}{\TangramTikzCreateEN{\TangramPlane}}{}% + \IfStrEq{#3}{Avion}{\TangramTikzCreateFR{\TangramPlane}}{}% + %ROOSTER + \IfStrEq{#3}{Rooster}{\TangramTikzCreateEN{\TangramRooster}}{}% + \IfStrEq{#3}{Coq}{\TangramTikzCreateFR{\TangramRooster}}{}% + %JOGGER + \IfStrEq{#3}{Jogger}{\TangramTikzCreateEN{\TangramJogger}}{}% + \IfStrEq{#3}{Coureur}{\TangramTikzCreateFR{\TangramJogger}}{}% + %DANCER + \IfStrEq{#3}{Dancer}{\TangramTikzCreateEN{\TangramDancer}}{}% + \IfStrEq{#3}{Danseur}{\TangramTikzCreateFR{\TangramDancer}}{}% + %CAMEL + \IfStrEq{#3}{Camel}{\TangramTikzCreateEN{\TangramCamel}}{}% + \IfStrEq{#3}{Chameau}{\TangramTikzCreateFR{\TangramCamel}}{}% + %FLAMINGO + \IfStrEq{#3}{Flamingo}{\TangramTikzCreateEN{\TangramFlamingo}}{}% + \IfStrEq{#3}{Flamant}{\TangramTikzCreateFR{\TangramFlamingo}}{}% + %HEART + \IfStrEq{#3}{Heart}{\TangramTikzCreateEN{\TangramHeart}}{}% + \IfStrEq{#3}{Coeur}{\TangramTikzCreateFR{\TangramHeart}}{}% + %GIRAFFE + \IfStrEq{#3}{Giraffe}{\TangramTikzCreateEN{\TangramGiraffe}}{}% + \IfStrEq{#3}{Girafe}{\TangramTikzCreateFR{\TangramGiraffe}}{}% + %HORSE + \IfStrEq{#3}{Horse}{\TangramTikzCreateEN{\TangramHorse}}{}% + \IfStrEq{#3}{Cheval}{\TangramTikzCreateFR{\TangramHorse}}{}% \end{tikzpicture}% } -- cgit v1.2.3