summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/association-matrix/association-matrix.pdfbin243321 -> 264256 bytes
-rw-r--r--macros/latex/contrib/association-matrix/association-matrix.sty79
-rw-r--r--macros/latex/contrib/association-matrix/association-matrix.tex59
-rw-r--r--macros/latex/contrib/debate/DEPENDS.txt3
-rw-r--r--macros/latex/contrib/debate/README.md3
-rw-r--r--macros/latex/contrib/debate/debate.dtx72
-rw-r--r--macros/latex/contrib/debate/debate.ins8
-rw-r--r--macros/latex/contrib/debate/debate.pdfbin328802 -> 289051 bytes
-rw-r--r--macros/latex/contrib/eolang/eolang.dtx63
-rw-r--r--macros/latex/contrib/eolang/eolang.pdfbin957255 -> 969068 bytes
-rw-r--r--macros/latex/contrib/huawei/huawei-cover-picture.pdfbin0 -> 253724 bytes
-rw-r--r--macros/latex/contrib/huawei/huawei.dtx216
-rw-r--r--macros/latex/contrib/huawei/huawei.pdfbin412294 -> 804104 bytes
-rw-r--r--macros/latex/contrib/iexec/README.md2
-rw-r--r--macros/latex/contrib/iexec/iexec.dtx6
-rw-r--r--macros/latex/contrib/iexec/iexec.pdfbin328403 -> 326484 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/README.md19
-rw-r--r--macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdfbin5663850 -> 6662060 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex221
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10AT.pngbin44247 -> 57196 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10C.pngbin42766 -> 6550 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10K.pngbin42360 -> 6515 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10P.pngbin47466 -> 8337 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10T.pngbin56973 -> 9148 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-11AT.pngbin37927 -> 55004 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-12AT.pngbin44818 -> 59829 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-13AT.pngbin44384 -> 65265 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-14AT.pngbin36795 -> 52917 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-15AT.pngbin45828 -> 61233 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-16AT.pngbin53425 -> 68221 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-17AT.pngbin49300 -> 64238 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-18AT.pngbin49989 -> 66932 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-19AT.pngbin43440 -> 58843 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-1AT.pngbin43799 -> 54608 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-20AT.pngbin43792 -> 56498 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-21AT.pngbin48089 -> 63853 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2AT.pngbin50287 -> 59695 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2C.pngbin27549 -> 3982 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2K.pngbin27207 -> 3885 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2P.pngbin29073 -> 4568 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2T.pngbin30579 -> 4837 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3AT.pngbin50104 -> 63032 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3C.pngbin30378 -> 4496 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3K.pngbin30138 -> 4369 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3P.pngbin31671 -> 5226 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3T.pngbin34899 -> 5583 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4AT.pngbin45425 -> 61773 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4C.pngbin28707 -> 4293 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4K.pngbin28936 -> 4236 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4P.pngbin31048 -> 5059 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4T.pngbin33487 -> 5569 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5AT.pngbin43095 -> 58625 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5C.pngbin30426 -> 4617 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5K.pngbin30600 -> 4552 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5P.pngbin34235 -> 5519 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5T.pngbin37424 -> 6160 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6AT.pngbin48338 -> 59895 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6C.pngbin31872 -> 5217 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6K.pngbin33157 -> 5008 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6P.pngbin37950 -> 6308 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6T.pngbin42512 -> 6865 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7AT.pngbin49002 -> 62153 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7C.pngbin30118 -> 5270 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7K.pngbin29190 -> 5059 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7P.pngbin36529 -> 6377 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7T.pngbin40463 -> 7024 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8AT.pngbin49112 -> 62990 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8C.pngbin37356 -> 5944 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8K.pngbin34636 -> 5742 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8P.pngbin41209 -> 7308 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8T.pngbin47785 -> 8152 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9AT.pngbin48783 -> 58278 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9C.pngbin37970 -> 6038 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9K.pngbin37475 -> 5961 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9P.pngbin43485 -> 7427 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9T.pngbin47633 -> 8140 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AC.pngbin22035 -> 3206 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AK.pngbin21913 -> 3099 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AP.pngbin23870 -> 3693 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AT.pngbin25708 -> 3880 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CC.pngbin38389 -> 55076 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CK.pngbin37673 -> 55019 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CP.pngbin41010 -> 59298 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CT.pngbin40689 -> 57354 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DC.pngbin38949 -> 51517 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DK.pngbin38448 -> 49058 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DP.pngbin38922 -> 52460 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DT.pngbin32924 -> 44217 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Dos.pngbin80226 -> 13810 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Exc.pngbin46165 -> 59732 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RC.pngbin42817 -> 54000 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RK.pngbin43865 -> 56080 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RP.pngbin38016 -> 47461 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RT.pngbin44231 -> 59599 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VC.pngbin46382 -> 56135 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VK.pngbin49967 -> 63167 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VP.pngbin49125 -> 56491 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VT.pngbin42304 -> 53517 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0B.pngbin0 -> 18565 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0J.pngbin0 -> 17202 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0R.pngbin0 -> 18850 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0V.pngbin0 -> 19036 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1B.pngbin0 -> 15439 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1J.pngbin0 -> 14420 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1R.pngbin0 -> 15864 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1V.pngbin0 -> 15926 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2B.pngbin0 -> 18072 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2J.pngbin0 -> 16733 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2R.pngbin0 -> 18350 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2V.pngbin0 -> 18621 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3B.pngbin0 -> 17594 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3J.pngbin0 -> 16278 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3R.pngbin0 -> 17851 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3V.pngbin0 -> 18077 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4B.pngbin0 -> 16432 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4J.pngbin0 -> 15177 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4R.pngbin0 -> 16737 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4V.pngbin0 -> 16962 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5B.pngbin0 -> 17926 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5J.pngbin0 -> 16611 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5R.pngbin0 -> 18289 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5V.pngbin0 -> 18463 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6B.pngbin0 -> 16961 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6J.pngbin0 -> 15679 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6R.pngbin0 -> 17243 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6V.pngbin0 -> 17439 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7B.pngbin0 -> 16703 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7J.pngbin0 -> 15546 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7R.pngbin0 -> 17086 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7V.pngbin0 -> 17239 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8B.pngbin0 -> 17900 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8J.pngbin0 -> 16498 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8R.pngbin0 -> 18128 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8V.pngbin0 -> 18357 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9B.pngbin0 -> 17003 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9J.pngbin0 -> 15702 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9R.pngbin0 -> 17298 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9V.pngbin0 -> 17468 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSB.pngbin0 -> 26231 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSJ.pngbin0 -> 23900 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSR.pngbin0 -> 26768 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSV.pngbin0 -> 27195 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-Dos.pngbin0 -> 19451 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2B.pngbin0 -> 21458 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2J.pngbin0 -> 19765 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2R.pngbin0 -> 21877 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2V.pngbin0 -> 22037 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P4.pngbin0 -> 25683 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTJ.pngbin0 -> 23467 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTR.pngbin0 -> 26061 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTV.pngbin0 -> 26507 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/Caj-Uno-Coul.pngbin0 -> 29329 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/Caj-Uno-PTB.pngbin0 -> 25529 bytes
-rw-r--r--macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty794
-rw-r--r--macros/latex/contrib/pdflscape/README.md12
-rw-r--r--macros/latex/contrib/pdflscape/pdflscape.dtx129
-rw-r--r--macros/latex/contrib/pdflscape/pdflscape.pdfbin299397 -> 323238 bytes
-rw-r--r--macros/latex/contrib/transparent/README.md21
-rw-r--r--macros/latex/contrib/transparent/transparent.dtx139
-rw-r--r--macros/latex/contrib/transparent/transparent.pdfbin266358 -> 281867 bytes
160 files changed, 1074 insertions, 772 deletions
diff --git a/macros/latex/contrib/association-matrix/association-matrix.pdf b/macros/latex/contrib/association-matrix/association-matrix.pdf
index fe97c4b971..d54eb3ea3b 100644
--- a/macros/latex/contrib/association-matrix/association-matrix.pdf
+++ b/macros/latex/contrib/association-matrix/association-matrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/association-matrix/association-matrix.sty b/macros/latex/contrib/association-matrix/association-matrix.sty
index 07b73659b6..f3b2c587a5 100644
--- a/macros/latex/contrib/association-matrix/association-matrix.sty
+++ b/macros/latex/contrib/association-matrix/association-matrix.sty
@@ -1,5 +1,5 @@
%% association-matrix.sty
-%% Copyright 2020 Whisperity
+%% Copyright 2020-2022 Whisperity
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
@@ -17,7 +17,7 @@
% and association-matrix.tex.
%
\NeedsTeXFormat{LaTeX2e}[2017/01/01]
-\ProvidesPackage{association-matrix}[2020/10/25 v1.0 Association matrix generator]
+\ProvidesPackage{association-matrix}[2022/10/29 v1.1 Association matrix generator]
\RequirePackage{etoolbox}
\RequirePackage{forloop}
@@ -25,8 +25,8 @@
\RequirePackage{textcomp}
\RequirePackage{xparse}
-\newrobustcmd{\amxDate}{2020/10/25}
-\newrobustcmd{\amxVersion}{1.0}
+\newrobustcmd{\amxDate}{2022/10/29}
+\newrobustcmd{\amxVersion}{1.1}
\ExplSyntaxOn
% (via http://tex.stackexchange.com/a/300215)
@@ -40,6 +40,62 @@
\ExplSyntaxOff
%%%
+%%% COMPATIBILITY SHIMS
+%%%
+
+%% Compatibility with the 'array' package, because we need to hand-craft the
+%% table's column specifiers. With the 'array' package changing the definition
+%% of 'tabular' to eagerly parse the specifier for what columns to make, the
+%% logic that built the "|c|c|c|..." sequence in conventional LaTeX broke.
+%%
+%% (via http://tex.stackexchange.com/a/199244)
+\newtoggle{amx@Compatibility@array}
+
+% In pure LaTeX, no compatibility needed because we can expand the tokens in
+% the 'tabular' specifier properly.
+\newenvironment{amx@Tabular}[0]{%
+ \begin{tabular}{|l|%
+ \egreg@Repeat[|]{\expandafter\theamx@ColumnCount}{c}%
+ |}%
+}{%
+ \end{tabular}%
+}%
+
+\@ifpackageloaded{array}{%
+ \global\toggletrue{amx@Compatibility@array}%
+ %
+ \newcolumntype{\amx@amx@Array@Expand}{}%
+ \long\@namedef{NC@rewrite@\string\amx@amx@Array@Expand}{\expandafter\NC@find}%
+ \newcommand{\amx@amx@Array@PreambleTrampoline}{}%
+ %
+ \renewenvironment{amx@Tabular}[0]
+ {%
+ % Creates "|l|c|c|c|c|..." sequence, one 'c' for each column.
+ \protected@edef\amx@amx@Array@PreambleTrampoline{|l|%
+ \egreg@Repeat[|]{\expandafter\theamx@ColumnCount}{c}%
+ |}%
+ \begin{tabular}{\amx@amx@Array@Expand\amx@amx@Array@PreambleTrampoline}
+ }{%
+ \end{tabular}
+ }%
+}{%
+ % Intentionally left empty, the default is good enough.
+}
+
+\newrobustcmd{\amx@CheckCompatibility}[0]{%
+ \@ifpackageloaded{array}{%
+ \iftoggle{amx@Compatibility@array}{%
+ % The compatibility was injected, thus no error needed.
+ }{%
+ \PackageError{association-matrix}{%
+ Package 'array' loaded after 'association-matrix' -- compatibility was not set up}{%
+ Make sure to load 'association-matrix' AFTER 'array' because a compatibility shim needs to be inserted for '\\amxgenerate' to work properly.
+ }%
+ }%
+ }{}%
+}
+
+%%%
%%% FIELDS, REPRESENTATION AND DEFINITION FUNCTIONS
%%%
@@ -79,7 +135,7 @@
%% Registers the row with the given key, and text.
\newrobustcmd{\amx@NewRow}[2]{%
\stepcounter{amx@RowCount}%
- %
+ %
\listcsgadd{amx@Rows}{#1}%
\expandafter\def\csname amx@Rows@\theamx@RowCount\endcsname{#1}%
\expandafter\def\csname amx@RowTexts@\theamx@RowCount\endcsname{#2}%
@@ -99,7 +155,7 @@
%% Registers the public with the given key, and body.
\newrobustcmd{\amx@NewColumn}[2]{%
\stepcounter{amx@ColumnCount}%
- %
+ %
\listcsgadd{amx@Cols}{#1}%
\expandafter\def\csname amx@Cols@\theamx@ColumnCount\endcsname{#1}%
\expandafter\def\csname amx@ColTexts@\theamx@ColumnCount\endcsname{#2}%
@@ -298,7 +354,7 @@
\global\togglefalse{amx@AreAnyHighlightSet}%
}{%
\global\toggletrue{amx@AreAnyHighlightSet}%
- %
+ %
% Set highlight for current row.
\ifthenelse{\equal{##1}{#1}}{%
\global\toggletrue{amx@IsCurrentRowHighlighted}%
@@ -311,15 +367,14 @@
\hline%
}%
%
- \begin{tabular}{|l|%
- \egreg@Repeat[|]{\expandafter\theamx@ColumnCount}{c}%
- |%
- }
+ \amx@CheckCompatibility{}%
+ %
+ \begin{amx@Tabular}
\hline
\amx@amx@RenderHeading \\
\hline
\forlistcsloop{\amx@amx@RowRenderHELPER}{amx@Rows}%
- \end{tabular}%
+ \end{amx@Tabular}%
}
\newrobustcmd{\amxgenerate}[1][0]{%
\amx@amx@MakeTabular{#1}%
diff --git a/macros/latex/contrib/association-matrix/association-matrix.tex b/macros/latex/contrib/association-matrix/association-matrix.tex
index bea65f80ce..39416dcc90 100644
--- a/macros/latex/contrib/association-matrix/association-matrix.tex
+++ b/macros/latex/contrib/association-matrix/association-matrix.tex
@@ -29,18 +29,18 @@
hidelinks, % disable link borders
%colorlinks=false, % false: boxed links; true: colored links
}
-\usepackage[capitalize]{cleveref}
+\usepackage{cleveref} % *MUST* be loaded *after* HyperRef.
\usepackage{minted}
\usemintedstyle{borland}
\setminted{autogobble}
\usepackage{xcolor}
\newrobustcmd{\release}[3]{%
- \subsection{\emph{#1}: \texttt{#2} - #3}\label{release-#2}%
+ \subsection{\emph{#1}: \texttt{#2} - #3}\label{release:#2}%
}
\newrobustcmd{\command}[3]{%
- \paragraph{\textsf{#1}} \textbf{\color{blue} \texttt{#2}}
+ \paragraph{\textsf{#1}} \textbf{\color{blue} \texttt{#2}}\label{command:#1}%
#3
}
@@ -90,7 +90,7 @@
\section{Introduction}\label{intro}
The \textsf{association-matrix} package allows the convenient creation of association matrices.
The package aims to automate the generation, without the user having to manually write the table's code and have to deal with the inefficiency of copy-pasting information.
-The package's interface is simple, the user needs to define the table's contents (\cref{define}) and then can generate the table (\cref{tablegen}).
+The package's interface is simple, the user needs to define the table's contents (\Cref{define}) and then can generate the table (\Cref{tablegen}).
Note that it is important to have \emph{every} necessary row entries and column headings defined \textbf{before} the first call to a table generation, otherwise, only a partial table will be generated.
@@ -101,7 +101,7 @@ Originally, the package \textsc{theses-vs-publications} had been devised, but th
Commonly, the dissertation's \emph{``Introduction''} and \emph{``Summary''} chapters will provide the full table.
In addition, at the end of each individual thesis chapters will provide a table with the current thesis's row in the table \emph{highlighted}.
-An example usage and association matrix is provided in \cref{example}.
+An example usage and association matrix is provided in \Cref{example}.
\subsection{Licence}
Copyright \textcopyright\ 2020 Whisperity.
@@ -110,7 +110,7 @@ Permission is granted to copy, distribute and\slash or modify this software unde
}
\subsection{Example}\label{example}
-The definitions (\cref{define}) should be done early in the document, but at least before the first table render (\cref{tablegen}) call.
+The definitions (\Cref{define}) should be done early in the document, but at least before the first table render (\Cref{tablegen}) call.
\immediate\openout\tempfile=assoc-mx-example.aux
\immediate\write\tempfile{\bslchar amxrow{association-matrix}{Association Matrices}}
@@ -183,10 +183,10 @@ The cells at the intersection of the row and the column will have a \textbullet{
Generates the full table incorporating the previously registered data.
Internally, a \texttt{tabular} environment is created with the table's data generated by the package.
It is the user's responsibility to wrap this into a floating \texttt{table}, if they so wish.
-
+
If \texttt{[<row>]} is given a row's \emph{key}, the row for that key will be \textbf{highlighted}.
Highlighting is done by typesetting the row's \emph{text} in \textbf{bold face}, and changing every \textbullet{} in the \emph{other} rows to \textopenbullet{}.
-
+
\begin{figure}[H]
\centering
\amxgenerate[latex]
@@ -231,7 +231,7 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\command{amxsetColumnHeading}{\bslchar amxsetColumnHeading\lbchar<render-command>\rbchar}{%
- Sets the rendered table's top row's cells to be rendered via passing the column heading's text (see \cref{query}) to the given \texttt{<render-command>}.
+ Sets the rendered table's top row's cells to be rendered via passing the column heading's text (see \Cref{query}) to the given \texttt{<render-command>}.
This command must be a command that takes \textbf{1} argument, defined by the user earlier.
\immediate\openout\tempfile=setcolheading-example.aux
@@ -242,9 +242,9 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\command{amxsetRowFormat}{\bslchar amxsetRowFormat(Highlighted)\lbchar<render-command>\rbchar}{%
- Sets the rendered table's left cells' to be rendered via passing the row's index and text (see \cref{query}) to the given \texttt{<render-command>}.
+ Sets the rendered table's left cells' to be rendered via passing the row's index and text (see \Cref{query}) to the given \texttt{<render-command>}.
This command must be a command that takes \textbf{2} arguments, defined by the user earlier.
- The \texttt{Highlighted} version sets the renderer for the highlighted row, if highlighted rendering (see \cref{tablegen}) is done.
+ The \texttt{Highlighted} version sets the renderer for the highlighted row, if highlighted rendering (see \Cref{tablegen}) is done.
\immediate\openout\tempfile=setrowformat-example.aux
\immediate\write\tempfile{\bslchar newcommand{\bslchar parenRow}[2]{(\hschar1) \bslchar emph{\hschar2}}}
@@ -287,10 +287,10 @@ All aspects on how the individual elements in the table are rendered can be cust
\command{amxReset}{\bslchar amxReset}{%
Clears \textbf{all} internal data structures and customisations for the package, allowing the user to later typeset a different, independent matrix.
- The previously defined entries are lost, and in case the ``previous'' matrix is needed, it must be set up again with a sequence of definition commands (see \cref{define}).
-
- For example, putting the code in \cref{example} and the one below into the same source file will create the smaller matrix at the second invocation of \texttt{\bslchar amxgenerate}.
-
+ The previously defined entries are lost, and in case the ``previous'' matrix is needed, it must be set up again with a sequence of definition commands (see \Cref{define}).
+
+ For example, putting the code in \Cref{example} and the one below into the same source file will create the smaller matrix at the second invocation of \texttt{\bslchar amxgenerate}.
+
\immediate\openout\tempfile=reset-example.aux
\immediate\write\tempfile{\bslchar amxReset}
\immediate\write\tempfile{\bslchar amxrow{sample}{Sample}}
@@ -298,11 +298,11 @@ All aspects on how the individual elements in the table are rendered can be cust
\immediate\write\tempfile{\bslchar amxassociate{x}{sample}}
\immediate\write\tempfile{\detokenize{\amxgenerate}}
\immediate\closeout\tempfile
-
+
\amxDisable
\input{reset-example.aux}
\amxEnable
-
+
\begin{figure}[H]
\centering
\inputminted{latex}{reset-example.aux}
@@ -311,6 +311,17 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\clearpage
+\section{Interaction \& compatibility with other packages}\label{compatibility}
+There are several packages that interact with commands in a way that interferes with the behaviour of \texttt{association-matrix}.
+When using such packages, \texttt{association-matrix} \textbf{must be loaded after} them.
+During the initialisation of \texttt{association-matrix}, compatibility is ensured by rewiring some of the logic.
+
+\begin{enumerate}
+ \item\label{compatibility:array} \texttt{array}:
+ Replaced the \texttt{tabular} environment's logic (used by \hyperref[command:amxgenerate]{\mintinline{latex}{\amxgenerate}}) by eagerly attempting to consume the number of columns to create, which was previously created by a macro locally.
+ The issue was fixed in \hyperref[release:v1.1]{release 1.1} by making sure that in presence of the \texttt{array} package, our package does the right thing.
+\end{enumerate}
+
\section{Development}
The development of \textsf{association-matrix} is done on GitHub: \url{http://github.com/whisperity/association-matrix}.
Please report issues and submit patches here.
@@ -320,6 +331,12 @@ Any new command or change should be supplemented with appropriate documentation,
If there is a discrepancy or regression in the looks of \emph{this document} that is not explained by the changes, it should be investigated!
\section{Changelog}\label{changelog}
+\release{2022/10/29}{v1.1}{Compatibility with \texttt{array}}
+\begin{itemize}
+ \item Fixed error message ``\texttt{Illegal pream-token: \`{}c' used}'' emitted by the \texttt{array} package by injecting a compatibility shim.
+ (See \cref{compatibility:array} in \Cref{compatibility}.)
+\end{itemize}
+
\release{2020/10/25}{v1.0}{Initial release}
\begin{itemize}
\item Basic functionality of defining entries, rendering tables, and customising the renderers are implemented.
@@ -330,12 +347,12 @@ If there is a discrepancy or regression in the looks of \emph{this document} tha
Whisperity. \textit{The \textsf{association-matrix} Package -- An easy and clear association matrix generator}.
Online, \url{http://ctan.org/pkg/association-matrix} (accessed 2020/10/25), 2020.
-\bibitem{latex}
-Leslie B.\ Lamport, Donald E.\ Knuth et al.
-\textit{\LaTeX{} -- A document preparation system}.
+\bibitem{latex}
+Leslie B.\ Lamport, Donald E.\ Knuth et al.
+\textit{\LaTeX{} -- A document preparation system}.
Online, \url{http://latex-project.org/} (accessed 2020/10/25), 1984.
-\bibitem{etoolbox}
+\bibitem{etoolbox}
Philipp Lehman, Joseph Wright.
\textit{The \textsf{etoolbox} Package -- An e-\TeX{} Toolbox for Class and Package Authors}
Online, \url{http://ctan.org/pkg/etoolbox} (accessed 2020/10/25), 2007.
diff --git a/macros/latex/contrib/debate/DEPENDS.txt b/macros/latex/contrib/debate/DEPENDS.txt
index 7a17e9bd3f..5fe392cce3 100644
--- a/macros/latex/contrib/debate/DEPENDS.txt
+++ b/macros/latex/contrib/debate/DEPENDS.txt
@@ -1,6 +1,3 @@
hard xkeyval
hard xcolor
hard tcolorbox
-hard pdfcol
-hard listings
-hard listingsutf8 \ No newline at end of file
diff --git a/macros/latex/contrib/debate/README.md b/macros/latex/contrib/debate/README.md
index ff457dfa4b..e8fd384132 100644
--- a/macros/latex/contrib/debate/README.md
+++ b/macros/latex/contrib/debate/README.md
@@ -20,8 +20,7 @@ than pears!
\end{document}
```
-The full example and all commands are available in the
-[`debate.tex`](https://github.com/yegor256/debate/blob/master/debate.tex) file.
+Otherwise, you can download [`eolang.sty`](https://raw.githubusercontent.com/yegor256/debate/gh-pages/debate/debate.sty) and add to your project.
If you want to contribute yourself, make a fork, then create a branch,
then run `make` in the root directory.
diff --git a/macros/latex/contrib/debate/debate.dtx b/macros/latex/contrib/debate/debate.dtx
index 955229ae6f..8e51f41e7a 100644
--- a/macros/latex/contrib/debate/debate.dtx
+++ b/macros/latex/contrib/debate/debate.dtx
@@ -50,16 +50,16 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{debate}
%<*package>
-[2022-10-03 0.2.0 Debates Between Reviewers]
+[2022-10-29 0.2.1 Debates Between Reviewers]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[tt=false, type1=true]{libertine}
-\usepackage{multicol}
\usepackage{debate}
\usepackage{href-ul}
-\usepackage{xcolor}
+\usepackage[dtx]{docshots}
\usepackage{microtype}
+\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}}
\PageIndex
\EnableCrossrefs
\CodelineIndex
@@ -78,46 +78,29 @@
%
% \maketitle
%
+% \textbf{NB!}
+% If you want to use |tcolorbox| package, make sure you include
+% |debate| first.
+
% \section{Introduction}
%
% This package helps you organize debates between a few people
% right inside your documents:
-% \begin{multicols}{2}
-% \raggedcolumns
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass{article}
-\usepackage[T1]{fontenc}
-\usepackage{debate}
-\begin{document}
-I think apples are tastier
-\debate[Jeff]{I don't think it's true!}
-\debate[Anna]{It is indeed true!}
-than pears!
-
-And I don't want to argue with me.
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
-%
-% \columnbreak
-%
-% I think apples are tastier
-% \debate[Jeff]{I don't think it's true!}
-% \debate[Anna]{It is indeed true!}
-% than pears!
-%
-% And I don't want to argue with me.
-% \end{multicols}
-
-% \textbf{NB!}
-% If you want to use |tcolorbox| package, make sure you include
-% |debate| first.
+% \begin{docshot}
+% \documentclass{article}
+% \usepackage{debate}
+% \usepackage[paperwidth=3in]{geometry}
+% \pagestyle{empty}
+% \begin{document}\noindent
+% Never argue with stupid people,
+% \debate[Jeff]{I disagree!}
+% \debate[Anna]{I won't argue...}
+% they will drag you down to their
+% level and then beat you with
+% experience -- \emph{Mark Twain}
+% \end{document}
+% \end{docshot}
% \section{Package Options}
@@ -156,13 +139,18 @@ And I don't want to argue with me.
#1%
\else%
{%
- \begin{tcolorbox}[frame hidden,sharp corners,enhanced,borderline west={1pt}{0pt}{red},interior hidden,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,beforeafter skip balanced=0pt]
+ \begin{tcolorbox}[frame hidden,sharp corners,
+ enhanced,borderline west={1pt}{0pt}{red},
+ interior hidden,boxsep=0pt,left=0pt,right=0pt,
+ top=0pt,bottom=0pt,beforeafter skip balanced=0pt]
\sffamily\color{gray}%
\raggedright%
- \addtolength\leftskip{18pt}\setlength\parskip{0pt}\setlength\parindent{0pt}%
+ \addtolength\leftskip{18pt}%
+ \setlength\parskip{0pt}%
+ \setlength\parindent{0pt}%
\textcolor{red}{\bfseries\scshape #1}: #2
- \end{tcolorbox}
- \vspace{-\parskip}
+ \end{tcolorbox}%
+ \vspace{-\parskip}%
}%
\fi%
}\makeatother
diff --git a/macros/latex/contrib/debate/debate.ins b/macros/latex/contrib/debate/debate.ins
index b1e10ebfcf..7de3f64cb6 100644
--- a/macros/latex/contrib/debate/debate.ins
+++ b/macros/latex/contrib/debate/debate.ins
@@ -48,8 +48,8 @@ SOFTWARE.
\endpreamble
\generate{\file{debate.sty}{\from{debate.dtx}{package}}}
\obeyspaces
-\Msg{*** To finish the installation you have to move the ".sty"}
-\Msg{*** file into a directory searched by TeX. To produce the}
-\Msg{*** documentation run the file ".dtx" through LaTeX. If any}
-\Msg{*** questions, submit a new GitHub issue.}
+\Msg{To finish the installation you have to move the ".sty"}
+\Msg{file into a directory searched by TeX. To produce the}
+\Msg{documentation run the file ".dtx" through LaTeX. If any}
+\Msg{questions, submit a new GitHub issue.}
\endbatchfile
diff --git a/macros/latex/contrib/debate/debate.pdf b/macros/latex/contrib/debate/debate.pdf
index 336aed0d9f..9c1e94a16b 100644
--- a/macros/latex/contrib/debate/debate.pdf
+++ b/macros/latex/contrib/debate/debate.pdf
Binary files differ
diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx
index c277d02c14..65e87c220a 100644
--- a/macros/latex/contrib/eolang/eolang.dtx
+++ b/macros/latex/contrib/eolang/eolang.dtx
@@ -50,7 +50,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{eolang}
%<*package>
-[2022-10-27 0.1.0 Formulas and Graphs for EO Programming Language]
+[2022-10-29 0.2.0 Formulas and Graphs for EO Programming Language]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -104,7 +104,7 @@
% ^ !-> $.b,
% b -> [[ c -> |fn|(56),
% @ -> |hello|($),
-% \Delta ..> |01-FE-C3| ]]]],\\
+% \Delta ..> 01-FE-C3 ]]]],\\
% x -> [[ \alpha_0 -> ? ]].
% \end{phiquation*}
% \end{document}
@@ -170,9 +170,9 @@
% \begin{document}
% \begin{sodg}
% v0
-% v1 xy:v0,-2,+1 data:|42|
+% v1 xy:v0,-2,+1 data:42
% v0->v1 a:$x$ rho
-% v2 xy:v0,+1,+1 atom:$\xi.x+1$
+% v2 xy:v0,+1,+1 atom:\xi.x+1
% v1->v2 a:|hi| bend:-15
% v2->v0 pi bend:10
% \end{sodg}
@@ -184,8 +184,8 @@
% unary like |rho| or binary like |atom:$\xi.x+1$|. Binary markers have two
% parts, separated by colon. The following markers are supported for a vertex:
% \begin{itemize}\setlength\itemsep{0em}
-% \item ``|data:[<box>]|'' makes it a data vertex with an optional attached |<box>|,
-% \item ``|atom:[<box>]|'' makes it an atom with an optional attached |<box>|,
+% \item ``|data:[<box>]|'' makes it a data vertex with an optional attached |<box>| (the content of the box may only be numeric data),
+% \item ``|atom:[<box>]|'' makes it an atom with an optional attached |<box>| (the content of the box is a math formula),
% \item ``|box:<txt>|'' attaches a |<box>| to it,
% \item ``|xy:<v>,<r>,<d>|'' places this vertex in a position relative to the vertex |<v>|,
% shifting it right by |<r>| % and down by |<d>| centimetres.
@@ -201,10 +201,11 @@
% \DescribeMacro{\eolang}
% \DescribeMacro{\phic}
+% \DescribeMacro{\xmir}
% There is also a no-argument command |\eolang| to help you print the name of
% \eolang{} language. It understands |anonymous| mode of \href{https://ctan.org/pkg/acmart}{acmart} and prints itself
% differently, to double-blind your paper. There is also |\phic| command to print
-% the name of \phic{}, also sensitive to |anonymous| mode.
+% the name of \phic{}, also sensitive to |anonymous| mode. The macro |\xmir| prints "XMIR".
% \begin{docshot}
% \documentclass[anonymous]{acmart}
% \thispagestyle{empty}
@@ -212,8 +213,9 @@
% \begin{document}
% In our research we use \eolang{}, \\
% an experimental object-oriented \\
-% dataflow language, and \phic{}, \\
-% its formal foundation.
+% dataflow language, \phic{}, \\
+% as its formal foundation, and \xmir{} \\
+% --- its XML-based presentation.
% \end{document}
% \end{docshot}
@@ -258,8 +260,8 @@
% \begin{document}
% \begin{phiquation*}
% \dfrac \
-% {x->[[@->y]] \quad y->[[z->|42|]]} \
-% {x.z -> |42|} \
+% {x->[[@->y]] \quad y->[[z->42]]} \
+% {x.z -> 42} \
% \text{\sffamily R1}
% \end{phiquation*}
% \end{document}
@@ -358,6 +360,7 @@
% \changes{0.0.2}{2022/10/21}{New symbol added for basket slots}
% \changes{0.0.2}{2022/10/21}{Parsing of symbols ``@,'' ``\^{},'' and ``\&'' enabled (varphi, rho, and sigma)}
% \changes{0.1.0}{2022/10/26}{A new Perl script "eolang-phi.pl" added for parsing of phi expressions.}
+% \changes{0.2.0}{2022/10/29}{Numbers automatically render as "texttt". No need to use vertical bars around them anymore.}
% Then, we create a Perl script for |phiquation| processing:
% \begin{macrocode}
\makeatletter
@@ -388,6 +391,7 @@ if ($env ne 'phiq') {
$tex =~ s/\s+\\\n\s*//g;
$tex =~ s/\\\\\n/\n\n/g;
}
+$tex =~ s/([\s,>\(])([0-9A-F][0-9A-F-]*)/\1|\2|/g;
$tex =~ s/\?/\\varnothing{}/g;
$tex =~ s/@/\\varphi{}/g;
$tex =~ s/&/\\sigma{}/g;
@@ -476,6 +480,7 @@ print '\endinput', "\n";
% \begin{macro}{eolang-sodg.pl}
% \changes{0.0.2}{2022/10/24}{The Perl file now has a fixed name, which doesn't depend on the name of the TeX job. This file may be shared among jobs, no need to make it uniquely named.}
% \changes{0.1.0}{2022/10/26}{There are two Perl scripts now: one for phiquation, another one for sodg.}
+% \changes{0.2.0}{2022/10/28}{The content of "atom" and "data" boxes is parsed automatically as formulas and numbers, respectively.}
% Then, we create a Perl script for |sodg| graphs processing:
% \begin{macrocode}
\makeatletter
@@ -521,12 +526,20 @@ foreach my $c (@cmds) {
if (exists $opts{'data'}) {
print ',phi-data';
if (not $opts{'data'} eq '') {
- $opts{'box'} = $opts{'data'};
+ my $d = $opts{'data'};
+ if (index($d, '|') == -1) {
+ $d = '\texttt{' . $d . '}';
+ }
+ $opts{'box'} = $d;
}
} elsif (exists $opts{'atom'}) {
print ',phi-atom';
if (not $opts{'atom'} eq '') {
- $opts{'box'} = $opts{'atom'};
+ my $a = $opts{'atom'};
+ if (index($a, '$') == -1) {
+ $a = '$' . $a . '$';
+ }
+ $opts{'box'} = $a;
}
} else {
print ',phi-object';
@@ -650,30 +663,46 @@ print '\end{phicture}', "\n", '\endinput';
% \end{macro}
% \begin{macro}{\eolang}
+% Then, we define a simple supplementary command to help you print \eolang{}, the name of our language.
% \changes{0.1.0}{2022/10/25}{New command "eolang" added to print the name of the language in both
% normal and anonymous mode of "acmart"}
% \begin{macrocode}
-\makeatletter\newcommand\eolang{%
+\newcommand\eolang{%
\ifdefined\anon%
\anon[XYZ]{{\sffamily EO}}%
\else%
{\sffamily EO}%
\fi%
-}\makeatother
+}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\phic}
+% Then, we define a simple supplementary command to help you print \phic{}, the name of our formal apparatus.
% \changes{0.1.0}{2022/10/25}{New command "phic" prints the name of $\varphi$-calculus in both
% normal and anonymous mode of "acmart"}
% \begin{macrocode}
-\makeatletter\newcommand\phic{%
+\newcommand\phic{%
\ifdefined\anon%
\anon[$\alpha$-calculus]{$\varphi$-calculus}%
\else%
$\varphi$-calculus%
\fi%
-}\makeatother
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\xmir}
+% Then, we define a simple supplementary command to help you print \xmir{}, the name of our XML-based format of program representation.
+% \changes{0.2.0}{2022/10/28}{New command "xmir" prints XMIR in both normal and anonymous mode of "acmart"}
+% \begin{macrocode}
+\newcommand\xmir{%
+ \ifdefined\anon%
+ \anon[XML']{XMIR}%
+ \else%
+ XMIR%
+ \fi%
+}
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf
index 7bc0280478..e2b1d20e83 100644
--- a/macros/latex/contrib/eolang/eolang.pdf
+++ b/macros/latex/contrib/eolang/eolang.pdf
Binary files differ
diff --git a/macros/latex/contrib/huawei/huawei-cover-picture.pdf b/macros/latex/contrib/huawei/huawei-cover-picture.pdf
new file mode 100644
index 0000000000..6717a9ff35
--- /dev/null
+++ b/macros/latex/contrib/huawei/huawei-cover-picture.pdf
Binary files differ
diff --git a/macros/latex/contrib/huawei/huawei.dtx b/macros/latex/contrib/huawei/huawei.dtx
index fdb272a996..d9fa5fa2a9 100644
--- a/macros/latex/contrib/huawei/huawei.dtx
+++ b/macros/latex/contrib/huawei/huawei.dtx
@@ -50,13 +50,17 @@
%<class>\NeedsTeXFormat{LaTeX2e}
%<class>\ProvidesClass{huawei}
%<*class>
-[2022-10-14 0.14.2 Template for Huawei Documents]
+[2022-10-29 0.14.3 Template for Huawei Documents]
%</class>
%<*driver>
\documentclass{ltxdoc}
\usepackage[tt=false, type1=true]{libertine}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
+\usepackage{microtype}
+\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}}
+\usepackage[dtx,margin=0,log,nocrop]{docshots}
+\docshotPrerequisite{huawei-cover-picture.pdf}
\usepackage{href-ul}
\PageIndex
\EnableCrossrefs
@@ -83,19 +87,12 @@
% style elegant enough both for management and technical
% papers. To use the class you simply mention its name
% in the preamble:
-%
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass{huawei}
-\begin{document}
-Hello, world!
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
+% \begin{docshot}
+% \documentclass{huawei}
+% \begin{document}
+% Hello, world!
+% \end{document}
+% \end{docshot}
% We recommend you to use
% |latexmk| to compile your |.tex| files to |.pdf|.
@@ -132,7 +129,6 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
% by |pdflatex| during the compilation. You don't need to commit
% them to your repository, since they are temporary and will
% be generated again when you compile your document.
-
% In order to compile the document, just say |latexmk| on the command line.
% \section{Class Options}
@@ -142,68 +138,64 @@ $pdflatex = 'pdflatex %O --shell-escape %S';
% the layout of your document:
% \DescribeMacro{landscape}
-% makes the document in landscape format, also changing the size
-% of the paper to 16x9 inches (the default page size is
-% \href{https://en.wikipedia.org/wiki/Paper_size}{A4}),
-% making it perfect for presentations.
+% The option |landscape| makes the document in landscape format, also changing the size
+% of the paper to 16x9 inches (the default page size is
+% \href{https://en.wikipedia.org/wiki/Paper_size}{A4}),
+% making it perfect for presentations.
% \DescribeMacro{dark}
-% Turns on a dark layout, where the page color is black and the text
+% The option |dark| turns on a dark layout, where the page color is black and the text
% is white.
% \DescribeMacro{slides}
-% makes all headers a bit larger, assuming that the document
-% is in the landscape mode and being presented as a slide deck.
+% The option |slides| makes all headers a bit larger, assuming that the document
+% is in the landscape mode and being presented as a slide deck.
% \DescribeMacro{nocover}
-% avoid printing the cover images on the first page by the
-% |\PrintTitlePage| command.
+% The option |nocover|, if it's present, avoids printing the cover images on the first page by the
+% |\PrintTitlePage| command.
% \DescribeMacro{anonymous}
-% removes the name of the author everywhere, including the bottom
-% of the page, where the author's name stays next to the name of the
-% company.
+% The |anonymous| removes the name of the author everywhere, including the bottom
+% of the page, where the author's name stays next to the name of the
+% company.
% \DescribeMacro{nobrand}
-% avoid mentioning the brand of Huawei anywhere
-% in the document and removes the logo too.
+% The option |nobrand| avoids mentioning the brand of Huawei anywhere
+% in the document and removes the logo too.
% \DescribeMacro{nosecurity}
-% avoids mentioning the level of security at the right top
-% corner of the document and also avoids showing the ID of the author
-% where it usually is visible.
+% The option |nosecurity| avoids mentioning the level of security at the right top
+% corner of the document and also avoids showing the ID of the author
+% where it usually is visible.
% \DescribeMacro{nodate}
-% don't show the date and time at the bottom of each page,
-% where they usually are rendered in ISO~8601 format.
+% The option |nodate| doesn't show the date and time at the bottom of each page,
+% where they usually are rendered in ISO~8601 format.
% \DescribeMacro{nopaging}
-% avoids page numbers at the bottom of each page.
+% The option |nopaging| avoids page numbers at the bottom of each page.
% \DescribeMacro{authordraft}
-% prints a big ``It's a draft'' message across each page.
+% The option |authordraft| prints a big ``It's a draft'' message across each page.
% \section{Preamble}
% In the preamble you can specify meta information about the document,
% such as its title or author's name, here is how:
-
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass{huawei}
-\renewcommand*\thetitle{Making Compression 15\% Faster}
-\renewcommand*\thesubtitle{Technical Report}
-\renewcommand*\theauthor{Yegor Bugayenko}
-\begin{document}
-\maketitle
-Hello, world!
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
+% \begin{docshot}
+% \documentclass{huawei}
+% \renewcommand*
+% \thetitle{15\% Faster Algorithm}
+% \renewcommand*
+% \thesubtitle{Technical Report}
+% \renewcommand*
+% \theauthor{Yegor Bugayenko}
+% \begin{document}
+% \maketitle
+% Hello, world!
+% \end{document}
+% \end{docshot}
% It's recommended to use |\renewcommand*| instead of
% |\renewcommand| in order to let \LaTeX{} catch you
@@ -241,23 +233,53 @@ Hello, world!
% Inside the document body you can use these commands:
% \DescribeMacro{\PrintFirstPage}
-% |\PrintFirstPage|
-% prints the first page of a project charter or a similar landscape documents,
-% placing the image |front-image.pdf| on the front (the file should be present
-% in the current dir. If you don't have the front image file, just leave
-% the first argument empty.
+% It is recommended to use |\PrintFirstPage| for rendering the first
+% page in landscape document, for example a project charter.
+% The only argument of the commmand is the name of an image to render at the
+% right bottom corner. You can omit the name and just call the command with
+% an empty argument. In this case the default image will be rendered, a pretty
+% good looking one:
+% \begin{docshot}
+% \documentclass[landscape]{huawei}
+% \renewcommand*
+% \thetitle{Perpetum Mobile}
+% \renewcommand*
+% \theauthor{Yegor Bugayenko}
+% \begin{document}
+% \PrintFirstPage{}
+% \end{document}
+% \end{docshot}
% \DescribeMacro{\PrintLastPage}
-% |\PrintLastPage|
-% prints the last page of a project charter or a similar landscape document.
+% |\PrintLastPage| prints the last page of a project charter or a similar landscape document:
+% \begin{docshot}
+% \documentclass[landscape]{huawei}
+% \begin{document}
+% \PrintLastPage{}
+% \end{document}
+% \end{docshot}
% \DescribeMacro{\PrintThankYouPage}
-% |\PrintThankYouPage|
-% prints the last page with a "Thank You" message in the center.
+% |\PrintThankYouPage| prints the last page with a "Thank You" message in the center.
+% \begin{docshot}
+% \documentclass[landscape,dark]{huawei}
+% \begin{document}
+% \PrintThankYouPage{}
+% \end{document}
+% \end{docshot}
% \DescribeMacro{\PrintDisclaimer}
-% |\PrintDisclaimer|
-% prints a paragraph at the bottom of the page with a standard disclaimer.
+% |\PrintDisclaimer| prints a paragraph at the bottom of the page with a standard disclaimer:
+% \begin{docshot}
+% \documentclass{huawei}
+% \begin{document}
+% \section{Introduction}
+% Hello, world!
+% \subsection{More Details}
+% Hello again!
+% \PrintDisclaimer
+% \end{document}
+% \end{docshot}
% \section{Best Practices}
@@ -275,51 +297,36 @@ Hello, world!
% In the landscape format it's recommended to use two columns, for better
% readability of the text. Here is how:
-
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass{huawei}
-\begin{document}
-\newpage
-\begin{multicols}{2}
-\section*{First}
-Here goes the first column content.
-\columnbreak
-\section*{Second}
-Here goes the second column content.
-\end{multicols}
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
+% \begin{docshot}
+% \documentclass[landscape]{huawei}
+% \begin{document}
+% \newpage
+% \begin{multicols}{2}
+% \section*{First}
+% Here goes the first column content.
+% \columnbreak
+% \section*{Second}
+% Here goes the second column content.
+% \end{multicols}
+% \end{document}
+% \end{docshot}
% \subsection{Crumbs}
% When you need to put many small information pieces into one page,
% we recommend you to use ``crumbs'':
-
-%\iffalse
-%<*verb>
-%\fi
-\begin{verbatim}
-\documentclass{huawei}
-\begin{document}
-\newpage
-\section*{Project Details}
-\begin{multicols}{2}
-\raggedright
-\PrintCrumb{Budget}{\$100K}
-
-\PrintCrumb{Duration}{5 months}
-\end{multicols}
-\end{document}
-\end{verbatim}
-%\iffalse
-%</verb>
-%\fi
+% \begin{docshot}
+% \documentclass{huawei}
+% \begin{document}
+% \newpage
+% \section*{Project Details}
+% \begin{multicols}{2}
+% \raggedright
+% \PrintCrumb{Budget}{\$100K}
+% \PrintCrumb{Duration}{5 months}
+% \end{multicols}
+% \end{document}
+% \end{docshot}
% \StopEventually{}
@@ -402,6 +409,7 @@ Here goes the second column content.
\RequirePackage{enumitem}
\setlist{nosep}
\RequirePackage{microtype}
+\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}}
\RequirePackage{wrapfig}
\RequirePackage{lastpage}
\RequirePackage{tikz}
diff --git a/macros/latex/contrib/huawei/huawei.pdf b/macros/latex/contrib/huawei/huawei.pdf
index 404d6a0722..f9612c0073 100644
--- a/macros/latex/contrib/huawei/huawei.pdf
+++ b/macros/latex/contrib/huawei/huawei.pdf
Binary files differ
diff --git a/macros/latex/contrib/iexec/README.md b/macros/latex/contrib/iexec/README.md
index 018bf2a764..93f1afce39 100644
--- a/macros/latex/contrib/iexec/README.md
+++ b/macros/latex/contrib/iexec/README.md
@@ -18,6 +18,8 @@ Today is \iexec{date +\%e-\%b-\%Y | tr -d '\\n'}.
\end{document}
```
+Otherwise, you can download [`iexec.sty`](https://raw.githubusercontent.com/yegor256/iexec/gh-pages/iexec/iexec.sty) and add to your project.
+
The full example and all commands are available in the
[`iexec.pdf`](https://ftp.agdsn.de/pub/mirrors/latex/dante/macros/latex/contrib/iexec/iexec.pdf) file.
diff --git a/macros/latex/contrib/iexec/iexec.dtx b/macros/latex/contrib/iexec/iexec.dtx
index 0ee16eed8f..4657100fa0 100644
--- a/macros/latex/contrib/iexec/iexec.dtx
+++ b/macros/latex/contrib/iexec/iexec.dtx
@@ -50,12 +50,13 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{iexec}
%<*package>
-[2022-10-25 0.11.2 Inputable Shell Executions]
+[2022-10-29 0.11.3 Inputable Shell Executions]
%</package>
%<*driver>
\documentclass{ltxdoc}
\usepackage[tt=false, type1=true]{libertine}
\usepackage{microtype}
+\AddToHook{env/verbatim/begin}{\microtypesetup{protrusion=false}}
\usepackage{xcolor}
\usepackage[dtx]{docshots}
\usepackage{iexec}
@@ -349,6 +350,7 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
% \changes{0.9.0}{2022/10/15}{The option "stderr" was introduced, allowing redirection of stderr to a file. Without this option specified, stderr will go to stdout.}
% \changes{0.11.0}{2022/10/22}{The file with exit code now contains just numbers, without end of line.}
% \changes{0.11.1}{2022/10/23}{When exit code is printed to the file, we add percentchar at the end of line in order to avoid extra space when reading it back.}
+% \changes{0.11.3}{2022/10/29}{Bug fixed, because of which we had an extra leading space.}
% \begin{macrocode}
\def\iexec@cmd{(#2)
\ifdefined\iexec@append>\fi>
@@ -451,7 +453,7 @@ This file won't be deleted: \iexec[stdout=me.txt]{whoami}.
\fi%
\fi%
\fi\fi%
- \endgroup
+ \endgroup%
}\makeatother
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/iexec/iexec.pdf b/macros/latex/contrib/iexec/iexec.pdf
index 1e6394be47..73c3374ae6 100644
--- a/macros/latex/contrib/iexec/iexec.pdf
+++ b/macros/latex/contrib/iexec/iexec.pdf
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/README.md b/macros/latex/contrib/jeuxcartes/README.md
index bcfb5270a1..ec61e08005 100644
--- a/macros/latex/contrib/jeuxcartes/README.md
+++ b/macros/latex/contrib/jeuxcartes/README.md
@@ -1,9 +1,10 @@
-JeuxCartes is a package with playing cards.
---------------------------------------------------
-JeuxCartes est un package avec des cartes à jouer.
---------------------------------------------------
-Author : Cédric Pierquet
-email : cpierquet@outlook.fr
-Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
-Poker cards Image's Licence : LGPL-2.1 license https://github.com/htdebeer/SVG-cards
-Tarot cards Image's Licence : Public Domain https://freesvg.org/ \ No newline at end of file
+JeuxCartes is a package with playing cards.
+--------------------------------------------------
+JeuxCartes est un package avec des cartes à jouer.
+--------------------------------------------------
+Author : Cédric Pierquet
+email : cpierquet@outlook.fr
+Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
+Poker cards Image's Licence : LGPL-2.1 license, https://github.com/htdebeer/SVG-cards
+Tarot cards Image's Licence : Public Domain, https://freesvg.org/
+Uno cards Image's Licence : Public Domain, https://alexder.itch.io/uno-card-game-asset-pack \ No newline at end of file
diff --git a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
index 7cf0434497..13458c708b 100644
--- a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
+++ b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
index 159fe3412f..07e617d605 100644
--- a/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
+++ b/macros/latex/contrib/jeuxcartes/doc/JeuxCartes-doc.tex
@@ -52,8 +52,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\TPversion{0.1.2}
-\def\TPdate{26 Octobre 2022}
+\def\TPversion{0.1.3}
+\def\TPdate{28 Octobre 2022}
\usepackage[most]{tcolorbox}
\usepackage[outputdir=build]{minted}
@@ -102,8 +102,8 @@
\begin{tabular}{c}
\lstinline!JeuxCartes!\\
\\
- Des cartes de poker ou de tarot, \\
- simples ou en \textit{mains}, \\
+ Des cartes de Poker ou de Tarot ou de Uno, \\
+ simples ou en \textit{mains} ou en \textit{mini}, \\
avec possibilité de tirage aléatoire.
\end{tabular}
\end{center}
@@ -128,7 +128,7 @@
\thispagestyle{empty}
-{\Large {\bfseries Résumé} : Quelques commandes pour afficher des cartes à jouer, de type Poker ou Tarot}
+{\Large $\blacktriangleright$~~Quelques commandes pour afficher des cartes à jouer, de type Poker/Tarot/Uno}
\medskip
@@ -143,7 +143,7 @@ Une commande pour des cartes en version \og miniatures \fg{} (individuelle, main
\vspace{0.5cm}
\begin{center}
- \CartesJeu[Eventail,EspH=0,EspV=0.1]{7K § 8P § DT § AP § 10C § AC § 8T § 2K § VC}\hspace{0.5cm}\CartesJeu[TypeJeu=Tarot,EspH=0.85,EspV=0.2]{Exc § 1AT § CC § 8T § 2K § 5AT § 2AT § DP § 7T § 10C § 19AT § VP}
+ \MainCartesJeu[Eventail,EspH=0,EspV=0.1]{7K § 8P § DT § AP § 10C § AC § 8T § 2K § VC}\hspace{0.5cm}\MainCartesJeu[TypeJeu=Tarot,EspH=0.85,EspV=0.2]{Exc § 1AT § CC § 8T § 2K § 5AT § 2AT § DP § 7T § 10C § 19AT § VP}
\end{center}
\hfill{}\textit{Merci aux membres du groupe \faFacebook{} du \og Coin \LaTeX{} \fg{} pour leur aide et leurs idées !}
@@ -181,6 +181,11 @@ Une commande pour des cartes en version \og miniatures \fg{} (individuelle, main
\vfill~
\part{Historique}
+
+{\small \bverb|v0.1.3|~:~~~~Ajout de cartes Uno (CC1.0 par AlexDer) + modification des commandes + rami
+
+{\small \bverb| |~:~~~~Amélioration de la qualité des cartes de Tarot (sans augmenter la taille)
+
{\small \bverb|v0.1.2|~:~~~~Modification du nom (et de la source) des images de Tarot (CC0)
{\small \bverb|v0.1.1|~:~~~~Ajout de commandes pour des mini-cartes
@@ -204,7 +209,8 @@ Les cartes sont des images :
%
\begin{itemize}
\item les cartes type \textsf{Poker} sont sous licence LGPL, \copyright{}2005, de David Bellot, via \url{https://github.com/htdebeer/SVG-cards} ;
- \item les cartes type \textsf{Tarot} sous licence CC0, du site \url{https://freesvg.org}.
+ \item les cartes type \textsf{Tarot} sous licence CC0, du site \url{https://freesvg.org} ;
+ \item les cartes type \textsf{Uno} (édité par Mattel\texttrademark) sous licence CC0, du site \url{https://alexder.itch.io/uno-card-game-asset-pack}.
\end{itemize}
\end{codeidee}
@@ -278,21 +284,60 @@ Autant que faire se peut, des exemples/illustrations/remarques seront proposés
Les \textsf{codes} seront présentés dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faCode} Code \LaTeX}, si possible avec la \textsf{sortie} dans la même boîte, et sinon la \textsf{sortie} sera visible dans des \textsf{boîtes} \textcolor{red!75!black}{{\small \faArrowAltCircleRight[regular]} Sortie \LaTeX}. Les \textsf{clés} ou \textsf{options} seront présentées dans des \textsf{boîtes} \textcolor{ForestGreen}{{\small \faPaperclip} Clés}.
\end{codeinfo}
+\subsection{Liste des commandes et jeux disponibles}
+
+\begin{codeinfo}
+Les \textit{Jeux} disponibles sont :
+
+\begin{itemize}
+ \item \Cle{Poker}, \Cle{Tarot} et \Cle{Uno} pour l'affichage des cartes ;
+ \item \Cle{Poker}, \Cle{Tarot}, \Cle{Bataille}, \Cle{Rami}, \Cle{Belote} et \Cle{Uno} pour les mains aléatoires.
+\end{itemize}
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+%Affichage d'une seule carte (mode image pure ou mode tikz)
+\AffCarteJeu[...]{...}
+
+%Affichage en mode côte à côte de plusieurs cartes
+\AffCartesJeu[...]{...}
+
+%Affichage en main de plusieurs cartes (éventail possible)
+\MainCartesJeu[...]{...}
+
+%Affichage en main de cartes aléatoires (éventail possible)
+\MainCartesJeuAleatoire[...]{...}
+
+%affichage d'une mini-carte (mode 'inline')
+\AffMiniCarteJeu[...]{...}
+
+%affichage d'une main de mini-cartes (mode 'inline')
+\MainMiniCartesJeu[...]{...}
+
+%affichage d'une main de mini-cartes aléatoires (mode 'inline')
+\MainMiniCartesJeuAleatoire[...]{...}
+\end{codetex}
+
+\pagebreak
+
\part{Les commandes}
-\section{La commande simple \og CarteJeu \fg}
+\section{Les commandes simples \og AffCarteJeu \fg{} et \og AffCartesJeu \fg}
\subsection{Introduction}
\begin{codeinfo}
-La commande \ctex{AffCarteJeu} affiche une carte, avec un système de clés/options
+La commande \ctex{AffCarteJeu} affiche une carte, avec un système de clés/options.
+
+La commande \ctex{AffCartesJeu} affiche une liste de cartes ne mode \textit{côte à côte}, avec un système de clés/options.
\end{codeinfo}
\begin{codetex}[]
\AffCarteJeu{VP}\AffCarteJeu{10K}\AffCarteJeu{AC}\AffCarteJeu{DosBleu}\AffCarteJeu{DT}\\ \\
\AffCarteJeu[TypeJeu=Tarot]{VP}\AffCarteJeu[TypeJeu=Tarot]{Dos}
\AffCarteJeu[TypeJeu=Tarot]{Exc}\AffCarteJeu[TypeJeu=Tarot]{1AT}
-\AffCarteJeu[TypeJeu=Tarot]{10K}\AffCarteJeu[TypeJeu=Tarot]{18AT}
+\AffCarteJeu[TypeJeu=Tarot]{10K}\AffCarteJeu[TypeJeu=Tarot]{18AT}\\ \\
+\AffCartesJeu[TypeJeu=Uno]{P4 § PTR § Coul § 7B § 8V}
\end{codetex}
\subsection{Noms de cartes}
@@ -320,6 +365,19 @@ est fixé suivant le modèle suivant (typiquement \texttt{<hauteur>.<couleur>} )
\item \texttt{Exc}, \texttt{1AT}, \texttt{2AT}, \ldots, \texttt{20T}, \texttt{21AT}\dotfill\Cle{Atouts}
\item \texttt{Dos}\dotfill\Cle{Dos}
\end{itemize}
+ \item cartes de Uno :
+ \begin{itemize}
+ \item \texttt{0B}, \texttt{1B}, \ldots, \texttt{8B}, \texttt{9B}\dotfill\Cle{Bleu}
+ \item \texttt{0R}, \texttt{1R}, \ldots, \texttt{8R}, \texttt{9R}\dotfill\Cle{Rouge}
+ \item \texttt{0J}, \texttt{1J}, \ldots, \texttt{8J}, \texttt{9J}\dotfill\Cle{Jaune}
+ \item \texttt{0V}, \texttt{1V}, \ldots, \texttt{8V}, \texttt{9V}\dotfill\Cle{Vert}
+ \item \texttt{P2B}, \texttt{P2R}, \texttt{P2B}, \texttt{P2J}, \texttt{P2V}\dotfill\Cle{+2}
+ \item \texttt{PTB}, \texttt{PTR}, \texttt{PTB}, \texttt{PTJ}, \texttt{PTV}\dotfill\Cle{PasseTour}
+ \item \texttt{CSB}, \texttt{CSR}, \texttt{CSB}, \texttt{CSJ}, \texttt{CSV}\dotfill\Cle{ChangeSens}
+ \item \texttt{P4}\dotfill\Cle{+4}
+ \item \texttt{Coul}\dotfill\Cle{JokerCouleur}
+ \item \texttt{Dos}\dotfill\Cle{Dos}
+ \end{itemize}
\end{itemize}
\end{codeinfo}
@@ -327,6 +385,7 @@ est fixé suivant le modèle suivant (typiquement \texttt{<hauteur>.<couleur>} )
\begin{codetex}[listing only]
\AffCarteJeu[options]{<carte>}
+\AffCartesJeu[options]{<liste de cartes>}
\end{codetex}
\begin{codecles}
@@ -334,7 +393,7 @@ Concernant les \Cle{options} :
\begin{itemize}
\item la clé \Cle{Hauteur} correspond à la hauteur voulue, en cm, de la carte ; \hfill{}défaut \Cle{4.25}
- \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot}) pour spécifier les cartes à utiliser ; \hfill{}défaut \Cle{Poker}
+ \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Uno}) pour spécifier les cartes à utiliser ; \hfill{}défaut \Cle{Poker}
\item la clé \Cle{Rotation} pour une éventuelle rotation de la carte ; \hfill{}défaut \Cle{0}
\item la clé \Cle{AlignementV} pour l'alignement vertical (lié à \ctex{raisebox} ou à \TikZ) ; \hfill{}défaut \Cle{0.5}
\item le booléen \Cle{Tikz} pour préciser que la carte est \textit{autonome}, dans un environnement \ctex{tikzpicture} ; \hfill{}défaut \Cle{false}
@@ -364,19 +423,12 @@ Il est à noter que la commande (en \textit{interne}) est liée à un \textit{so
\begin{codetex}[]
En mode normal, \AffCarteJeu{VP} ou \AffCarteJeu[AlignementV=0]{DosRouge} ou
-\AffCarteJeu[AlignementV=1]{10K} ou \AffCarteJeu[TypeJeu=Tarot,AlignementV=0.33,Rotation=25]{10AT}.
-
-\smallskip
-
-En mode \TikZ, \AffCarteJeu[Hauteur=2.75,Tikz]{VP}
-ou \AffCarteJeu[Hauteur=2.75,AlignementV=0,Tikz]{DosVert}
-ou \AffCarteJeu[Hauteur=2.75,AlignementV=1,Tikz]{10K}
-ou \AffCarteJeu[Hauteur=2.75,TypeJeu=Tarot,AlignementV=0.33,Rotation=-25]{10AT}.
-
-\smallskip
-
-On obtient la main \AffCarteJeu[Hauteur=2]{VP}\AffCarteJeu[Hauteur=2]{10K}
-\AffCarteJeu[Hauteur=2]{AK}\AffCarteJeu[Hauteur=2]{JN}\AffCarteJeu[Hauteur=2]{7P}.
+\AffCarteJeu[AlignementV=1]{10K} ou \AffCarteJeu[TypeJeu=Tarot,AlignementV=0.33,Rotation=25]{10AT}.\\ \\
+En mode \TikZ, \AffCarteJeu[Hauteur=2,Tikz]{VP}
+ou \AffCarteJeu[Hauteur=2,AlignementV=0,Tikz]{DosVert}
+ou \AffCarteJeu[Hauteur=2,AlignementV=1,Tikz]{10K}
+ou \AffCarteJeu[Hauteur=2,TypeJeu=Tarot,AlignementV=0.33,Rotation=-25]{10AT}.\\ \\
+On obtient la main \AffCartesJeu[Hauteur=2,TypeJeu=Uno]{9B § 8R § P2J § P4 § 0J § CSR § PTJ}.
\end{codetex}
\section{Main de cartes}
@@ -392,7 +444,7 @@ Les commandes pour créer des \textit{mains} sont obligatoirement liées à des
\end{codeattention}
\begin{codetex}[listing only]
-\CartesJeu[options]{<liste de cartes>}
+\MainCartesJeu[options]{<liste de cartes>}
\end{codetex}
\subsection{Clés et options}
@@ -408,7 +460,7 @@ Les \Cle{options} sont les suivantes :
\begin{itemize}
\item la clé \Cle{Hauteur} correspond à la hauteur voulue, en cm, des cartes ; \hfill{}défaut \Cle{4.25}
- \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot}) pour spécifier les cartes à utiliser ; \hfill{}défaut \Cle{Poker}
+ \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Uno}) pour spécifier les cartes à utiliser ; \hfill{}défaut \Cle{Poker}
\item la clé \Cle{EspH} correspond à coefficient d'espacement horizontal (\textit{proche} du cm en taille réelle) entre les cartes ; \hfill{}défaut \Cle{1}
\item la clé \Cle{EspH} correspond à coefficient d'espacement vertical (\textit{proche} du cm en taille réelle) entre les cartes ; \hfill{}défaut \Cle{0}
\item le booléen \Cle{Eventail} pour une présentation en éventail ; \hfill{}défaut \Cle{false}
@@ -418,9 +470,9 @@ Les \Cle{options} sont les suivantes :
\end{codecles}
\begin{codetex}[]
-\CartesJeu{7K § 8P § DT § AC}
-~ou \CartesJeu[Eventail,EspH=0,EspV=0.1]{7K § 8P § DT § AC}
-~ou \CartesJeu[Eventail,EspH=0.5]{7K § 8P § DT § AC}
+\MainCartesJeu{7K § 8P § DT § AC}
+~ou \MainCartesJeu[Eventail,EspH=0,EspV=0.1]{7K § 8P § DT § AC}
+~ou \MainCartesJeu[Eventail,EspH=0.5]{7K § 8P § DT § AC}
\end{codetex}
\begin{codeinfo}
@@ -436,23 +488,23 @@ Les exemples proposés dans cette documentation permettent de se rendre compte d
\end{codeinfo}
\begin{codetex}[]
-\CartesJeu[TypeJeu=Tarot]%
- {Exc § 1AT § CC § 8T § 2K § 5AT § 2AT § DP § 7T § 10C § 19AT § VP}
+\MainCartesJeu[TypeJeu=Uno,EspH=1.75]%
+ {9B § P4 § P2J § 1R § 7R § PTV § 2J § 5J § 9B § PTR § 5V}
\smallskip
-\CartesJeu[TypeJeu=Tarot,EspH=1,EspV=-0.15,Hauteur=2.25]%
+\MainCartesJeu[TypeJeu=Tarot,EspH=1,EspV=-0.15,Hauteur=2.25]%
{Exc § 1AT § CC § 8T § 2K § 5AT § 2AT § DP § 7T § 10C § 19AT § VP}
\smallskip
-Ça c'est une belle poignée ! \CartesJeu[Eventail,Hauteur=3,TypeJeu=Tarot,EspH=0,EspV=0.1]%
+Ça c'est une belle poignée ! \MainCartesJeu[Eventail,Hauteur=3,TypeJeu=Tarot,EspH=0,EspV=0.1]%
{Exc § 1AT § 2AT § 3AT § 4AT § 5AT § 6AT § %
10AT § 11AT § 15AT § 16AT § 19AT § 20AT § 21AT}
\smallskip
-Et un chien qui en a : \CartesJeu[Eventail,Hauteur=2,TypeJeu=Tarot,EspH=0.5,EspV=0.15,Rotation=20]%
+Et un chien qui en a : \MainCartesJeu[Eventail,Hauteur=2,TypeJeu=Tarot,EspH=0.5,EspV=0.15,Rotation=20]%
{DK § 10AT § 16AT § VP § 1AT}
\end{codetex}
@@ -467,13 +519,13 @@ L'idée est ici de proposer une commande, similaire à la précédente, mais qui
\end{codeidee}
\begin{codetex}[listing only]
-\CartesJeuAleatoire[<options>]{<nombre de cartes>}
+\MainCartesJeuAleatoire[<options>]{<nombre de cartes>}
\end{codetex}
\begin{codetex}[]
-Voilà de quoi d'obtenir une main aléatoire de Poker :
+Voilà de quoi obtenir une main aléatoire de Poker :
-\CartesJeuAleatoire{5}
+\MainCartesJeuAleatoire{5}
\end{codetex}
\subsection{Clés et options}
@@ -483,7 +535,7 @@ Les \Cle{options} sont les suivantes :
\begin{itemize}
\item la clé \Cle{Hauteur} correspond à la hauteur voulue, en cm, des cartes ; \hfill{}défaut \Cle{4.25}
- \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Belote} ou \Cle{Bataille}) ; \hfill{}défaut \Cle{Poker}
+ \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Belote} ou \Cle{Bataille} ou \Cle{Rami} ou \Cle{Uno}) ; \hfill{}défaut \Cle{Poker}
\item la clé \Cle{EspH} correspond à coefficient d'espacement horizontal (\textit{proche} du cm en taille réelle) entre les cartes ; \hfill{}défaut \Cle{1}
\item la clé \Cle{EspH} correspond à coefficient d'espacement vertical (\textit{proche} du cm en taille réelle) entre les cartes ; \hfill{}défaut \Cle{0}
\item le booléen \Cle{Eventail} pour une présentation en éventail ; \hfill{}défaut \Cle{false}
@@ -507,24 +559,22 @@ En ce qui concerne les \textit{jeux} disponibles (non modifiables) :
\begin{codetex}[]
\textbf{\large Belote :} \\
-
-\CartesJeuAleatoire[Hauteur=2,TypeJeu=Belote]{8} ou \CartesJeuAleatoire[Hauteur=2,TypeJeu=Belote]{8}.\\
-
+\MainCartesJeuAleatoire[Hauteur=2.5,TypeJeu=Belote]{8} ou \MainCartesJeuAleatoire[Hauteur=2,TypeJeu=Belote]{8}.\\
\textbf{\large Poker :} \\
-
-\CartesJeuAleatoire[Hauteur=3,Eventail,EspH=0,EspV=0.1]{5} ou \CartesJeuAleatoire[Hauteur=3,Eventail,EspH=0,EspV=0.1]{5}.\\
-
+\MainCartesJeuAleatoire[Hauteur=2.5,Eventail,EspH=0,EspV=0.1]{5} ou \MainCartesJeuAleatoire[Hauteur=2.5,Eventail,EspH=0,EspV=0.1]{5}.\\
\textbf{\large Bataille :} \\
-
-\CartesJeuAleatoire[Hauteur=2.25,TypeJeu=Bataille]{27}\\
-
+\MainCartesJeuAleatoire[Hauteur=2.5,TypeJeu=Bataille]{27}\\
\textbf{\large Tarot :} \\
-
-\CartesJeuAleatoire[Hauteur=3.25,TypeJeu=Tarot]{10} ou~
-\CartesJeuAleatoire[Hauteur=3.25,Eventail,TypeJeu=Tarot,EspH=0,EspV=0.1]{10}
+\MainCartesJeuAleatoire[Hauteur=3.25,TypeJeu=Tarot]{10} ou~
+\MainCartesJeuAleatoire[Hauteur=3.25,Eventail,TypeJeu=Tarot,EspH=0,EspV=0.1]{10}.
\end{codetex}
-\pagebreak
+\begin{codetex}[]
+\textbf{\large Rami :} \\
+\MainCartesJeuAleatoire[Hauteur=3.75,TypeJeu=Rami]{15}\\
+\textbf{\large Uno :} \\
+\MainCartesJeuAleatoire[Hauteur=4,TypeJeu=Uno,Eventail,EspH=-0.1,Rotation=15,EspV=0.1]{7}
+\end{codetex}
\section{\textit{Mini}-Cartes}
@@ -539,13 +589,13 @@ Ces \textit{mini-}cartes sont des figures \TikZ, alignées verticalement sur leu
\end{codeidee}
\begin{codetex}[listing only]
-\MiniCarteJeu[<options>]{<carte>}
+\AffMiniCarteJeu[<options>]{<carte>}
\end{codetex}
\begin{codetex}[]
Si on met du texte sur la ligne du dessus, on peut voir le résultat.\\
-Voilà des exemples de mini-cartes, \MiniCarteJeu{7.K}\MiniCarteJeu{1.AT}\MiniCarteJeu{V.K}\MiniCarteJeu{10.C}, intégrables dans un paragraphe.\\
-Si on met du texte sur la ligne du dessous, on peut voir le résultat.
+Voilà des exemples de mini-cartes, \AffMiniCarteJeu{7.K}\AffMiniCarteJeu{1.AT}\AffMiniCarteJeu{V.K}\AffMiniCarteJeu{10.C}, intégrables dans un paragraphe.\\
+Si on met du texte sur la ligne du dessous, on peut voir le résultat.\\
\end{codetex}
\subsection{Noms des \textit{mini-}cartes}
@@ -561,6 +611,8 @@ Pour des raisons internes au code, les cartes doivent être saisies suivant la n
\item \texttt{J.N}, \texttt{J.R}\dotfill\Cle{Joker}
\item \texttt{Exc}, \texttt{1.AT}, \texttt{2.AT}, \ldots, \texttt{20.T}, \texttt{21.AT}\dotfill\Cle{Atouts}
\end{itemize}
+
+Par contre, il n'est pas prévu de \textit{mini-}cartes pour le Uno.
\end{codeinfo}
\begin{codeinfo}
@@ -579,9 +631,9 @@ Quelques \Cle{options} pour les \textit{mini-}cartes :
\end{codecles}
\begin{codetex}[]
-\foreach \EECARTE in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}{\MiniCarteJeu[Largeur=0.75cm]{\EECARTE.K}}\\
-\MiniCarteJeu[FondAtout=LightSkyBlue,Largeur=0.75cm]{Exc}%
-\foreach \EECARTE in {1,2,...,21}{\MiniCarteJeu[FondAtout=LightSkyBlue,Largeur=0.75cm]{\EECARTE.AT}}
+\foreach \EECARTE in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}{\AffMiniCarteJeu[Largeur=0.75cm]{\EECARTE.K}}\\
+\AffMiniCarteJeu[FondAtout=LightSkyBlue,Largeur=0.75cm]{Exc}%
+\foreach \EECARTE in {1,2,...,21}{\AffMiniCarteJeu[FondAtout=LightSkyBlue,Largeur=0.75cm]{\EECARTE.AT}}
\end{codetex}
\subsection{\textit{Mini}-Mains et \textit{mini}-mains aléatoires}
@@ -591,35 +643,38 @@ Comme pour les cartes \textit{classiques}, il existe deux commandes pour des \te
\end{codeidee}
\begin{codetex}[listing only]
-\MiniCartesJeu[<options>]{<liste de cartes>}
+\MainMiniCartesJeu[<options>]{<liste de cartes>}
-\MiniCartesJeuAleatoire[<options>]{<liste de cartes>}
+\MainMiniCartesJeuAleatoire[<options>]{<nb cartes>}
\end{codetex}
\begin{codecles}
Les \Cle{Clés} sont les mêmes que pour la commande individuelle, avec en plus :
\begin{itemize}
- \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Belote} ou \Cle{Bataille}). \hfill{}défaut \Cle{Poker}
+ \item la clé \Cle{TypeJeu} (parmi \Cle{Poker} ou \Cle{Tarot} ou \Cle{Belote} ou \Cle{Bataille} ou \Cle{Rami}). \hfill{}défaut \Cle{Poker}
\end{itemize}
\end{codecles}
\begin{codetex}[]
\textbf{\large Saisie de mains : }\\
-\MiniCartesJeu{7.K § A.P § D.T § V.K § 10.C § C.T} et~
-\MiniCartesJeu{Exc § 1.AT § C.C § 8.T § 2.K § 5.AT § 2.AT § D.P § 7.T § 10.C § 19.AT § V.P}\\
+\MainMiniCartesJeu{7.K § A.P § D.T § V.K § 10.C § C.T} et~
+\MainMiniCartesJeu{Exc § 1.AT § C.C § 8.T § 2.K § 5.AT § 2.AT § D.P § 7.T § 10.C § 19.AT § V.P}\\
\textbf{\large Poker : }\\
-\MiniCartesJeuAleatoire{5} ou \MiniCartesJeuAleatoire{5} ou \MiniCartesJeuAleatoire{5} ou \MiniCartesJeuAleatoire{5}.\\
+\MainMiniCartesJeuAleatoire{5} ou \MainMiniCartesJeuAleatoire{5} ou \MainMiniCartesJeuAleatoire{5} ou \MainMiniCartesJeuAleatoire{5}.\\
\textbf{\large Belote :}\\
-\MiniCartesJeuAleatoire[TypeJeu=Belote]{8} ou \MiniCartesJeuAleatoire[TypeJeu=Belote]{8} ou \MiniCartesJeuAleatoire[TypeJeu=Belote]{8}.\\
+\MainMiniCartesJeuAleatoire[TypeJeu=Belote]{8} ou \MainMiniCartesJeuAleatoire[TypeJeu=Belote]{8} ou \MainMiniCartesJeuAleatoire[TypeJeu=Belote]{8}.\\
\textbf{\large Bataille : }\\
-\MiniCartesJeuAleatoire[TypeJeu=Bataille]{12} ou \MiniCartesJeuAleatoire[TypeJeu=Bataille]{12}.\\
+\MainMiniCartesJeuAleatoire[TypeJeu=Bataille]{12} ou \MainMiniCartesJeuAleatoire[TypeJeu=Bataille]{12}.\\
\textbf{\large Tarot : }\\
-\MiniCartesJeuAleatoire[TypeJeu=Tarot]{10} ou \MiniCartesJeuAleatoire[TypeJeu=Tarot]{10}.
+\MainMiniCartesJeuAleatoire[TypeJeu=Tarot]{10} ou \MainMiniCartesJeuAleatoire[TypeJeu=Tarot]{10}.\\
+
+\textbf{\large Rami : }\\
+\MainMiniCartesJeuAleatoire[TypeJeu=Rami]{15} ou \MainMiniCartesJeuAleatoire[TypeJeu=Rami]{14}.
\end{codetex}
\pagebreak
@@ -651,33 +706,47 @@ Les \Cle{Clés} sont les mêmes que pour la commande individuelle, avec en plus
\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{#1T}}
-\AffCarteJeu[TypeJeu=Tarot,Hauteur=2]{Exc}%
+\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{Exc}%
\xintFor #1 in {1,2,3,4,5,6,7,8,9,10}\do{\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{#1AT}}%
-\AffCarteJeu[TypeJeu=Tarot,Hauteur=2]{Dos}
+\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{Dos}
\xintFor #1 in {11,12,13,14,15,16,17,18,19,20,21}\do{\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{#1AT}}%
\AffCarteJeu[TypeJeu=Tarot,Hauteur=1.75]{Dos}
\pagebreak
+\subsection{Cartes de Uno}
+
+\AffCartesJeu[TypeJeu=Uno,Hauteur=2]{0B § 1B § 2B § 3B § 4B § 5B § 6B § 7B § 8B § 9B § P2B § PTB § CSB}
+
+\AffCartesJeu[TypeJeu=Uno,Hauteur=2]{0R § 1R § 2R § 3R § 4R § 5R § 6R § 7R § 8R § 9R § P2R § PTR § CSR}
+
+\AffCartesJeu[TypeJeu=Uno,Hauteur=2]{0J § 1J § 2J § 3J § 4J § 5J § 6J § 7J § 8J § 9J § P2J § PTJ § CSJ}
+
+\AffCartesJeu[TypeJeu=Uno,Hauteur=2]{0V § 1V § 2V § 3V § 4V § 5V § 6V § 7V § 8V § 9V § P2V § PTV § CSV}
+
+\AffCartesJeu[TypeJeu=Uno,Hauteur=2]{P4 § Coul § Dos}
+
\subsection{MiniCartes}
-\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\MiniCarteJeu{#1.P}}
+\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\AffMiniCarteJeu{#1.P}}
-\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\MiniCarteJeu{#1.C}}
+\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\AffMiniCarteJeu{#1.C}}
-\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\MiniCarteJeu{#1.K}}
+\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\AffMiniCarteJeu{#1.K}}
-\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\MiniCarteJeu{#1.T}}
+\xintFor #1 in {2,3,4,5,6,7,8,9,10,V,C,D,R,A}\do{\AffMiniCarteJeu{#1.T}}
-\MiniCarteJeu{J.N}\MiniCarteJeu{J.R}
+\AffMiniCarteJeu{J.N}\AffMiniCarteJeu{J.R}
\medskip
-\MiniCarteJeu{Exc}%
-\xintFor #1 in {1,2,3,4,5,6,7,8,9,10}\do{\MiniCarteJeu{#1.AT}}
+\AffMiniCarteJeu{Exc}%
+\xintFor #1 in {1,2,3,4,5,6,7,8,9,10}\do{\AffMiniCarteJeu{#1.AT}}
+
+\xintFor #1 in {11,12,13,14,15,16,17,18,19,20,21}\do{\AffMiniCarteJeu{#1.AT}}%
-\xintFor #1 in {11,12,13,14,15,16,17,18,19,20,21}\do{\MiniCarteJeu{#1.AT}}%
+\pagebreak
\section{Carte simple dans un environnement \TikZ}
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10AT.png
index 99f8286180..ba302956ad 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10C.png
index 2b04117df5..9264e77c42 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10K.png
index 12971fcaab..0450435639 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10P.png
index 2c853b1758..4968d1649d 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10T.png
index a8a6bca4df..8526467433 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-10T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-11AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-11AT.png
index 9e8a68bb0d..b3b8133321 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-11AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-11AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-12AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-12AT.png
index 067a4f86ea..2838f0a478 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-12AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-12AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-13AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-13AT.png
index 6e5e238084..2193b662d9 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-13AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-13AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-14AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-14AT.png
index 2a2129b944..c1e6efb90d 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-14AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-14AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-15AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-15AT.png
index dfe28537f8..2e5600fa0a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-15AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-15AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-16AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-16AT.png
index 5e6677b910..3505b53c99 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-16AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-16AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-17AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-17AT.png
index 7520988052..08d0b4fb07 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-17AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-17AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-18AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-18AT.png
index 39bb7f054a..b43d654a3a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-18AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-18AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-19AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-19AT.png
index 74b6d63a3a..2bd5350cbb 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-19AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-19AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-1AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-1AT.png
index c597d451d8..b74bb13177 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-1AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-1AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-20AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-20AT.png
index c8f0e7c6e3..9360e74717 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-20AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-20AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-21AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-21AT.png
index 3f18693fdf..02561017d4 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-21AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-21AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2AT.png
index 565a8bba92..78a9ca74d1 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2C.png
index e0b4d2b05c..97b9c47962 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2K.png
index a86d518c93..39c83a2d32 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2P.png
index 4f91a036a9..3a6b4b329e 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2T.png
index a80c47b6dc..fc57bcf13c 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-2T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3AT.png
index cd0729efc7..5fa6cbd4cb 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3C.png
index a06a5d69a3..21c4a45ba6 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3K.png
index 2138f6a8d8..5f7d0adbdd 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3P.png
index 2869a70e19..b4ce45275c 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3T.png
index f5b7fce1f7..517cd6d297 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-3T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4AT.png
index 2c8b7392ef..29c7c0bfe2 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4C.png
index 19917255c8..e3465aa897 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4K.png
index 21b0a5f57e..c0aed66137 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4P.png
index b8ba63f36e..0292f4364c 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4T.png
index 5868cbdb0d..66c1d14703 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-4T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5AT.png
index aedb0c4399..ce0482b6ab 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5C.png
index ef87bf92a2..64b85578a8 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5K.png
index 9891e868a5..045c01969a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5P.png
index 35bf65c381..a7a3c0f224 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5T.png
index c700fe0215..79dfb5fd76 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-5T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6AT.png
index 63b302112b..eeeae64113 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6C.png
index 77c57f6362..aeecd1f277 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6K.png
index 30f171483a..1206bdbdd3 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6P.png
index f58346b8aa..6e1d4f2ab2 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6T.png
index 41fd9df936..d2548554ce 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-6T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7AT.png
index 48492d74fc..03cd40b414 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7C.png
index db5748f145..2f255dc627 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7K.png
index c308120066..7ef37eaba1 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7P.png
index d2dc30f935..d698af1992 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7T.png
index ce49ddd1a1..19a998cbaf 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-7T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8AT.png
index e8d50bf89f..6cdff476df 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8C.png
index 9db298531a..d31fc5c7c3 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8K.png
index ad2d973a57..f5545b20ef 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8P.png
index 4a4a763faa..f342067f6b 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8T.png
index 68c7761162..3c0c19850d 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-8T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9AT.png
index e07ae08c57..63786f8e83 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9C.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9C.png
index ad8d90b1cb..4e783343c0 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9C.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9C.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9K.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9K.png
index 300186f835..9ac4038970 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9K.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9K.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9P.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9P.png
index 510803578f..20a33a224d 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9P.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9P.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9T.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9T.png
index 2c5f6b7d5b..6d1952986e 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9T.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-9T.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AC.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AC.png
index 7ef4682fb0..b7da50fc3a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AC.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AC.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AK.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AK.png
index 8658a7417f..657811d3ed 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AK.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AK.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AP.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AP.png
index d9f37790b1..fa81068f40 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AP.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AP.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AT.png
index a5bb6ff59e..7c8e4c8fb8 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-AT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CC.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CC.png
index e4a74c9fa7..fb9c5c2b4c 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CC.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CC.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CK.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CK.png
index a16a9f4c3e..f091530e3a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CK.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CK.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CP.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CP.png
index 539819df05..d41eaee49b 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CP.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CP.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CT.png
index fc45c569af..319c8cedfb 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-CT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DC.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DC.png
index 3ea415980b..a7bc94d96a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DC.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DC.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DK.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DK.png
index 5f520f9867..01b22f76e7 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DK.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DK.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DP.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DP.png
index f5349b86e2..46fc995edc 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DP.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DP.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DT.png
index 220287bb72..9e9e390649 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-DT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Dos.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Dos.png
index 4cc36a5cf9..e4a2879a8c 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Dos.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Dos.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Exc.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Exc.png
index 560e1f1473..aeac134872 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Exc.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-Exc.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RC.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RC.png
index df94f090e4..9ff480cae2 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RC.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RC.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RK.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RK.png
index cdc8117c37..8beccf96b6 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RK.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RK.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RP.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RP.png
index 642d4756bc..8f08aaa8a8 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RP.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RP.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RT.png
index 307f0efabc..0be50e9f55 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-RT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VC.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VC.png
index ceacfaecfb..a88eccda7d 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VC.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VC.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VK.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VK.png
index bc5598bb00..20ae0918bc 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VK.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VK.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VP.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VP.png
index b2d53510f8..0f7d4cb104 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VP.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VP.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VT.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VT.png
index 73a743ad26..c1d2eb779a 100644
--- a/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VT.png
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Tarot-VT.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0B.png
new file mode 100644
index 0000000000..05114490eb
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0J.png
new file mode 100644
index 0000000000..f63aa68b1a
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0R.png
new file mode 100644
index 0000000000..3d8f05694b
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0V.png
new file mode 100644
index 0000000000..bbe8dd3f76
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-0V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1B.png
new file mode 100644
index 0000000000..098d378a31
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1J.png
new file mode 100644
index 0000000000..cff7c99e76
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1R.png
new file mode 100644
index 0000000000..8a65ad1afe
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1V.png
new file mode 100644
index 0000000000..d61972f03f
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-1V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2B.png
new file mode 100644
index 0000000000..ebc489c405
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2J.png
new file mode 100644
index 0000000000..b79a3df08f
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2R.png
new file mode 100644
index 0000000000..03580a3a18
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2V.png
new file mode 100644
index 0000000000..4b27640c31
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-2V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3B.png
new file mode 100644
index 0000000000..55c431c5d6
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3J.png
new file mode 100644
index 0000000000..cc3265aa7e
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3R.png
new file mode 100644
index 0000000000..1349bedbc7
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3V.png
new file mode 100644
index 0000000000..ba94e7ac2f
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-3V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4B.png
new file mode 100644
index 0000000000..6097938af6
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4J.png
new file mode 100644
index 0000000000..fb8d19f44b
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4R.png
new file mode 100644
index 0000000000..fea17c7b5b
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4V.png
new file mode 100644
index 0000000000..b8747e1b8e
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-4V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5B.png
new file mode 100644
index 0000000000..ef9452d2a3
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5J.png
new file mode 100644
index 0000000000..5efda76b2d
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5R.png
new file mode 100644
index 0000000000..5d049fba70
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5V.png
new file mode 100644
index 0000000000..fd7ae1198b
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-5V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6B.png
new file mode 100644
index 0000000000..dff139e926
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6J.png
new file mode 100644
index 0000000000..14253e13d7
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6R.png
new file mode 100644
index 0000000000..be16264dba
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6V.png
new file mode 100644
index 0000000000..1ab72d0001
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-6V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7B.png
new file mode 100644
index 0000000000..2bb2077e0c
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7J.png
new file mode 100644
index 0000000000..d9baae1f9f
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7R.png
new file mode 100644
index 0000000000..697ae9b95c
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7V.png
new file mode 100644
index 0000000000..3df2c4822e
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-7V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8B.png
new file mode 100644
index 0000000000..2ad5440780
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8J.png
new file mode 100644
index 0000000000..9ae59a01a7
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8R.png
new file mode 100644
index 0000000000..fb410389ab
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8V.png
new file mode 100644
index 0000000000..412cb7a8f6
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-8V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9B.png
new file mode 100644
index 0000000000..f303c104a1
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9J.png
new file mode 100644
index 0000000000..db8fa3d2b9
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9R.png
new file mode 100644
index 0000000000..489c8aaab1
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9V.png
new file mode 100644
index 0000000000..1c3f7380d9
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-9V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSB.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSB.png
new file mode 100644
index 0000000000..c3a02a5a97
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSB.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSJ.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSJ.png
new file mode 100644
index 0000000000..541cffa530
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSJ.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSR.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSR.png
new file mode 100644
index 0000000000..e215095337
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSR.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSV.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSV.png
new file mode 100644
index 0000000000..1792f42e63
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-CSV.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-Dos.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-Dos.png
new file mode 100644
index 0000000000..62451d6c4a
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-Dos.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2B.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2B.png
new file mode 100644
index 0000000000..54f6070d30
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2B.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2J.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2J.png
new file mode 100644
index 0000000000..730cd6a886
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2J.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2R.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2R.png
new file mode 100644
index 0000000000..180c597c57
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2R.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2V.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2V.png
new file mode 100644
index 0000000000..0a9fa5b96b
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P2V.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P4.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P4.png
new file mode 100644
index 0000000000..dc30b311ac
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-P4.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTJ.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTJ.png
new file mode 100644
index 0000000000..1077bd10dc
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTJ.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTR.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTR.png
new file mode 100644
index 0000000000..c79f71ab6a
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTR.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTV.png b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTV.png
new file mode 100644
index 0000000000..8f71738c1d
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/CaJ-Uno-PTV.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-Coul.png b/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-Coul.png
new file mode 100644
index 0000000000..6ff22574f7
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-Coul.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-PTB.png b/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-PTB.png
new file mode 100644
index 0000000000..d5822926cd
--- /dev/null
+++ b/macros/latex/contrib/jeuxcartes/tex/Caj-Uno-PTB.png
Binary files differ
diff --git a/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty b/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
index 5dfd0b5a03..26c2741e4b 100644
--- a/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
+++ b/macros/latex/contrib/jeuxcartes/tex/JeuxCartes.sty
@@ -1,368 +1,428 @@
-% Author : C. Pierquet
-% licence : Released under the LaTeX Project Public License v1.3c
-% or later, see http://www.latex-project.org/lppl.txtf
-% Poker cards Image's Licence : LGPL-2.1 license https://github.com/htdebeer/SVG-cards
-% Tarot cards Image's Licence : Public Domain https://freesvg.org/deck-of-french-tarot-playing-cards
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{JeuxCartes}[2022/10/26 v0.1.2 Jeux de cartes]
-% 0.1.2 Modification du nom (et de la source) des images de Tarot (CC0)
-% 0.1.1 Ajout de commandes pour des mini-cartes
-% 0.1 Version initiale
-
-%------Packages utiles
-\RequirePackage{graphicx}
-\RequirePackage[table,svgnames]{xcolor}
-\RequirePackage{tikz}
-\RequirePackage{pgf,pgffor}
-\RequirePackage{xfp}
-\RequirePackage{listofitems}
-\RequirePackage{xstring}
-\RequirePackage{xparse}
-\RequirePackage{simplekv}
-\RequirePackage{xinttools}
-\RequirePackage{randomlist}
-\RequirePackage{pifont}
-%librairies tikz
-\usetikzlibrary{calc,scopes}
-%images venant de https://github.com/htdebeer/SVG-cards
-%images venant de https://freesvg.org/deck-of-french-tarot-playing-cards
-
-%------Commande en ligne (includegraphics) via raisebox/rotatebox ou tikz
-\defKV[AffCarteJeu]{%
- Hauteur=\def\AffCarteJeuHauteur{#1},%
- DecalageX=\def\AffCarteJeuDecalageX{#1},%
- DecalageY=\def\AffCarteJeuDecalageY{#1},%
- Rotation=\def\AffCarteJeuRotation{#1},%
- AlignementV=\def\AffCarteJeuAlignementV{#1},%
- TypeJeu=\def\AffCarteJeuType{#1}
-}
-\setKVdefault[AffCarteJeu]{%
- Hauteur=4.25,%
- Tikz=false,%pour placer la commande dans un environnement tikz ou en raisebox,
- TikzAutonome=true,%pour déjà mettre l'image dans du tikz
- DecalageX=0,%
- DecalageY=0,%
- Rotation=0,%
- AlignementV=0.5,%
- TypeJeu=Poker
-}
-
-\NewDocumentCommand\AffCarteJeu{ O{} m }{%1=options,2=cartenommée
- \useKVdefault[AffCarteJeu]%
- \setKV[AffCarteJeu]{#1}%
- %cas poker
- \IfStrEq{\AffCarteJeuType}{Poker}%poker
- {\def\CartePrefixe{CaJ-Poker-}}{}%
- \IfStrEq{\AffCarteJeuType}{Tarot}%tarot
- {\def\CartePrefixe{CaJ-Tarot-}}{}%
- %transformation valign en tikz
- \def\OptionTikzCBB{current bounding box.center}%
- \IfStrEq{\AffCarteJeuAlignementV}{0}%
- {\def\OptionTikzCBB{current bounding box.south}}{}%
- \IfStrEq{\AffCarteJeuAlignementV}{1}%
- {\def\OptionTikzCBB{current bounding box.north}}{}%
- %affichage
- \ifboolKV[AffCarteJeu]{Tikz}%
- {%
- \ifboolKV[AffCarteJeu]{TikzAutonome}%
- {%
- {\tikz[baseline=(\OptionTikzCBB)] \draw (\AffCarteJeuDecalageX,\AffCarteJeuDecalageY) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=\AffCarteJeuRotation] {\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}} ;}%
- }%
- {%
- \begin{scope}[shift={(\AffCarteJeuDecalageX,\AffCarteJeuDecalageY)}]%
- \draw (0,0) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=\AffCarteJeuRotation] {\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}} ;%
- \end{scope}%
- }%
- }%
- {%
- \rotatebox[origin=c]{\AffCarteJeuRotation}{\raisebox{-\AffCarteJeuAlignementV\height}{\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}}}%
- }%
-}
-
-%------commande main cartes
-\defKV[AffMainCartes]{%
- Hauteur=\def\MainHauteur{#1},%
- EspH=\def\MainDecalH{#1},%
- EspV=\def\MainDecalV{#1},%
- Rotation=\def\MainRotation{#1},%
- TypeJeu=\def\MainJeuType{#1},%
- AlignementV=\def\MainAlignementV{#1}
-}
-\setKVdefault[AffMainCartes]{%
- Hauteur=4.25,%
- EspH=1,%
- EspV=0,%
- Rotation=10,%
- Eventail=false,%
- TypeJeu=Poker,%
- AlignementV=0.5
-}
-
-\NewDocumentCommand\CartesJeu{ O{} m }{%1=options,2=listecartes
- \useKVdefault[AffMainCartes]%
- \setKV[AffMainCartes]{#1}%
- %calculs et traitement des variables
- \ignoreemptyitems%
- \setsepchar{§}%
- \readlist*\ListeCartesMain{#2}%
- \def\NbCartesMain{\ListeCartesMainlen}%nbcartes
- \IfStrEq{\MainJeuType}{Poker}%poker
- {\def\HauteurGenerique{8.5}\def\CarteMainPrefixe{CaJ-Poker-}}{}%
- \IfStrEq{\MainJeuType}{Tarot}%tarot
- {\def\HauteurGenerique{5.5}\def\CarteMainPrefixe{CaJ-Tarot-}}{}%
- \def\EchelleCarteDecalage{\fpeval{\MainHauteur/\HauteurGenerique}}%
- %transformation valign en tikz
- \def\OptionTikzCBB{current bounding box.center}%
- \IfStrEq{\MainAlignementV}{0}%
- {\def\OptionTikzCBB{current bounding box.south}}{}%
- \IfStrEq{\MainAlignementV}{1}%
- {\def\OptionTikzCBB{current bounding box.north}}{}%
- %environnement tikzpicture
- \begin{tikzpicture}[baseline=(\OptionTikzCBB)]%
- \foreach \i in {1,2,...,\ListeCartesMainlen}{%
- \itemtomacro\ListeCartesMain[\i]\CarteMain%
- \ifboolKV[AffMainCartes]{Eventail}%
- {%
- \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
- \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
- \def\DecAngleMain{\fpeval{0.5*\NbCartesMain*\MainRotation}}%
- \AffCarteJeu[TypeJeu=\MainJeuType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageY=\MainOffset,DecalageX=\SecondOffset,Rotation={\DecAngleMain-(\i-1)*\MainRotation}]{\CarteMain}%
- }%
- {%
- \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
- \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
- \AffCarteJeu[TypeJeu=\MainJeuType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageX=\MainOffset,DecalageY=\SecondOffset]{\CarteMain}%
- }%
- }%finpour
- \end{tikzpicture}%
-}
-
-%------commande main aléatoire
-\defKV[AffMainAleaCartes]{%
- Hauteur=\def\MainHauteur{#1},%
- EspH=\def\MainDecalH{#1},%
- EspV=\def\MainDecalV{#1},%
- Rotation=\def\MainRotation{#1},%
- TypeJeu=\def\MainJeuType{#1},%
- AlignementV=\def\MainAlignementV{#1}
-}
-\setKVdefault[AffMainAleaCartes]{%
- Hauteur=4.25,%
- EspH=1,%
- EspV=0,%
- Rotation=10,%
- Eventail=false,%
- TypeJeu=Poker,%
- AlignementV=0.5
-}
-
-\xdef\CartesJeuPoker{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK}%
-\xdef\CartesJeuBelote{7P,8P,9P,10P,VP,DP,RP,AP,7T,8T,9T,10T,VT,DT,RT,AT,7C,8C,9C,10C,VC,DC,RC,AC,7K,8K,9K,10K,VK,DK,RK,AK}%
-\xdef\CartesJeuBataille{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK,JN,JR}%
-\xdef\CartesJeuTarot{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,CP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,CT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,CC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,CK,DK,RK,AK,1AT,2AT,3AT,4AT,5AT,6AT,7AT,8AT,9AT,10AT,11AT,12AT,13AT,14AT,15AT,16AT,17AT,18AT,19AT,20AT,21AT,Exc}%
-\NewList{CartesJeuMelange}
-
-\NewDocumentCommand\CartesJeuAleatoire{ O{} m }{%1=options,2=nbcartes
- \useKVdefault[AffMainAleaCartes]%
- \setKV[AffMainAleaCartes]{#1}%
- %calculs et traitement des variables
- \IfStrEq{\MainJeuType}{Poker}%poker
- {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,52-#2)}}}{}%
- \IfStrEq{\MainJeuType}{Bataille}%bataille
- {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,54-#2)}}}{}%
- \IfStrEq{\MainJeuType}{Belote}%poker
- {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,32-#2)}}}{}%
- \IfStrEq{\MainJeuType}{Tarot}%tarot
- {\def\HauteurGenerique{6.375}\def\CarteMainType{Tarot}\xdef\CarteDebutRand{\fpeval{randint(0,78-#2)}}}{}%
- %échelle relative des cartes
- \def\EchelleCarteDecalage{\fpeval{\MainHauteur/\HauteurGenerique}}%
- %transformation valign en tikz
- \def\OptionTikzCBB{current bounding box.center}%
- \IfStrEq{\MainAlignementV}{0}%
- {\def\OptionTikzCBB{current bounding box.south}}{}%
- \IfStrEq{\MainAlignementV}{1}%
- {\def\OptionTikzCBB{current bounding box.north}}{}%
- %melange du jeu
- \ClearList{CartesJeuMelange}%
- \IfStrEq{\MainJeuType}{Poker}%si c'est le poker
- {%
- \xintFor* ##1 in {\xintCSVtoList{\CartesJeuPoker}}%
- \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MainJeuType}{Bataille}%si c'est la bataille
- {%
- \xintFor* ##1 in {\xintCSVtoList{\CartesJeuBataille}}%
- \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MainJeuType}{Belote}%si c'est le poker
- {%
- \xintFor* ##1 in {\xintCSVtoList{\CartesJeuBelote}}%
- \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MainJeuType}{Tarot}%si c'est le tarot
- {%
- \xintFor* ##1 in {\xintCSVtoList{\CartesJeuTarot}}%
- \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
- }%
- {}%
- %environnement tikzpicture
- \begin{tikzpicture}[baseline=(\OptionTikzCBB)]%
- \foreach \i in {1,2,...,#2}{%
- \GetItem{CartesJeuMelange}{\inteval{\CarteDebutRand+\i-1}}{CarteMainChoisie}%
- %\itemtomacro\ListeCartesMain[\i]\CarteMain%
- \ifboolKV[AffMainAleaCartes]{Eventail}%
- {%
- \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
- \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
- \def\DecAngleMain{\fpeval{0.5*#2*\MainRotation}}%
- \AffCarteJeu[TypeJeu=\CarteMainType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageY=\MainOffset,DecalageX=\SecondOffset,Rotation={\DecAngleMain-(\i-1)*\MainRotation}]{\CarteMainChoisie}%
- }%
- {%
- \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
- \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
- \AffCarteJeu[TypeJeu=\CarteMainType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageX=\MainOffset,DecalageY=\SecondOffset]{\CarteMainChoisie}%
- }%
- }%finpour
- \end{tikzpicture}%
-}
-
-%------commande mini-cartes
-\defKV[AffMiniCartes]{%
- Largeur=\def\MiniCarteLargeur{#1},
- FondAtout=\def\MiniCarteFondAtout{#1}
-}
-\setKVdefault[AffMiniCartes]{%
- Largeur=0.55cm,%
- FondAtout=PeachPuff
-}
-
-\NewDocumentCommand\MiniCarteJeu{ O{} m }{%1=options,2=nbcartes
- \useKVdefault[AffMiniCartes]%
- \setKV[AffMiniCartes]{#1}%
- %découpage de l'argument
- \StrCut{#2}{.}\csVal\csCplt%
- %couleur de fond
- \def\csFond{White}%
- \def\csCoul{black}%
- %le cas du 10.11...21
- \IfStrEq{\csVal}{10}{\def\csVal{\scalebox{0.5}[1]{10}}}{}%
- \IfStrEq{\csVal}{11}{\def\csVal{\scalebox{0.5}[1]{11}}}{}%
- \IfStrEq{\csVal}{12}{\def\csVal{\scalebox{0.5}[1]{12}}}{}%
- \IfStrEq{\csVal}{13}{\def\csVal{\scalebox{0.5}[1]{13}}}{}%
- \IfStrEq{\csVal}{14}{\def\csVal{\scalebox{0.5}[1]{14}}}{}%
- \IfStrEq{\csVal}{15}{\def\csVal{\scalebox{0.5}[1]{15}}}{}%
- \IfStrEq{\csVal}{16}{\def\csVal{\scalebox{0.5}[1]{16}}}{}%
- \IfStrEq{\csVal}{17}{\def\csVal{\scalebox{0.5}[1]{17}}}{}%
- \IfStrEq{\csVal}{18}{\def\csVal{\scalebox{0.5}[1]{18}}}{}%
- \IfStrEq{\csVal}{19}{\def\csVal{\scalebox{0.5}[1]{19}}}{}%
- \IfStrEq{\csVal}{20}{\def\csVal{\scalebox{0.5}[1]{20}}}{}%
- \IfStrEq{\csVal}{21}{\def\csVal{\scalebox{0.5}[1]{21}}}{}%
- %le cas du Excuse
- \IfStrEq{#2}{Exc}%
- {\def\csSymb{\ding{168}}\def\csCoul{blue}%
- \def\csVal{\scalebox{0.33}[1]{EXC}}}{}%
- %le cas du Joker
- \IfStrEq{\csVal}{J}%
- {\def\csSymb{\ding{166}}\def\csVal{\scalebox{0.5}[1]{JO}}}{}%
- %si c'est un coeur
- \IfStrEq{\csCplt}{C}%
- {\def\csSymb{\ding{170}}\def\csCoul{red}}{}%
- %si c'est un carreau
- \IfStrEq{\csCplt}{K}%
- {\def\csSymb{\ding{169}}\def\csCoul{red}}{}%
- %si c'est un coeur
- \IfStrEq{\csCplt}{P}%
- {\def\csSymb{\ding{171}}}{}%
- %si c'est un trèfle
- \IfStrEq{\csCplt}{T}%
- {\def\csSymb{\ding{168}}}{}%
- %si c'est un atout 68
- \IfStrEq{\csCplt}{AT}%
- {\def\csFond{\MiniCarteFondAtout}\def\csSymb{\ding{88}}}{}%
- %si c'est un rouge
- \IfStrEq{\csCplt}{R}%
- {\def\csCoul{red}}{}%
- %minicarte
- \tikz[baseline=(char.base)]\node[anchor=north west,line width=0.7pt,draw=Gray,rectangle,rounded corners,inner sep=1.6pt,fill=\csFond,text=\csCoul,font=\ttfamily,minimum width=\MiniCarteLargeur](char){\csVal\scalebox{0.75}[0.75]{\csSymb}};%
-}
-
-%------commande mini-main-cartes
-\defKV[AffMiniMainCartes]{%
- Largeur=\def\MiniMainLargeur{#1},%
- FondAtout=\def\MiniMainFondAtout{#1}
-}
-\setKVdefault[AffMiniMainCartes]{%
- Largeur=0.55cm,%
- FondAtout=PeachPuff
-}
-
-\NewDocumentCommand\MiniCartesJeu{ O{} m }{%1=options,2=liste
- \useKVdefault[AffMiniMainCartes]%
- \setKV[AffMiniMainCartes]{#1}%
- \ignoreemptyitems%
- \setsepchar{§}%
- \readlist*\MiniCartesMain{#2}%
- \foreachitem\MiniCarteAffich\in\MiniCartesMain{%
- \MiniCarteJeu[FondAtout=\MiniMainFondAtout,Largeur=\MiniMainLargeur]{\MiniCarteAffich}%
- }%
-}
-
-%------commande mini-main aléatoire
-\defKV[MiniMainAleaCartes]{%
- Largeur=\def\MiniMainAleaLargeur{#1},%
- TypeJeu=\def\MiniMainAleaType{#1},%
- FondAtout=\def\MiniMainAleaFondAtout{#1}
-}
-\setKVdefault[MiniMainAleaCartes]{%
- Largeur=0.55cm,%
- TypeJeu=Poker,%
- FondAtout=PeachPuff
-}
-
-\xdef\MiniCartesJeuPoker{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K}%
-\xdef\MiniCartesJeuBelote{7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K}%
-\xdef\MiniCartesJeuBataille{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K,J.N,J.R}%
-\xdef\MiniCartesJeuTarot{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,C.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,C.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,C.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,C.K,D.K,R.K,A.K,1.AT,2.AT,3.AT,4.AT,5.AT,6.AT,7.AT,8.AT,9.AT,10.AT,11.AT,12.AT,13.AT,14.AT,15.AT,16.AT,17.AT,18.AT,19.AT,20.AT,21.AT,Exc}%
-\NewList{MiniCartesJeuMelange}
-
-\NewDocumentCommand\MiniCartesJeuAleatoire{ O{} m }{%1=options,2=nbcartes
- \useKVdefault[MiniMainAleaCartes]%
- \setKV[MiniMainAleaCartes]{#1}%
- %melange du jeu
- \ClearList{MiniCartesJeuMelange}%
- \IfStrEq{\MiniMainAleaType}{Poker}%si c'est le poker
- {%
- \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuPoker}}%
- \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MiniMainAleaType}{Bataille}%si c'est la bataille
- {%
- \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuBataille}}%
- \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MiniMainAleaType}{Belote}%si c'est le poker
- {%
- \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuBelote}}%
- \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
- }%
- {}%
- \IfStrEq{\MiniMainAleaType}{Tarot}%si c'est le tarot
- {%
- \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuTarot}}%
- \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
- }%
- {}%
- %création de la main
- \foreach \i in {1,2,...,#2}{%
- \GetItem{MiniCartesJeuMelange}{\inteval{\i-1}}{MiniCarteMainChoisie}%
- \MiniCarteJeu[FondAtout=\MiniMainAleaFondAtout,Largeur=\MiniMainAleaLargeur]{\MiniCarteMainChoisie}%
- }%finpour
-}
-
+% Author : C. Pierquet
+% licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+% Poker cards Image's Licence : LGPL-2.1 license https://github.com/htdebeer/SVG-cards
+% Tarot cards Image's Licence : Public Domain https://freesvg.org/deck-of-french-tarot-playing-cards
+% Uno cards Image's Licence : CC1.0 https://alexder.itch.io/uno-card-game-asset-pack
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{JeuxCartes}[2022/10/28 v0.1.3 Jeux de cartes]
+% 0.1.3 Ajout de cartes Uno (CC1.0 par AlexDer) + modification des commandes + rami
+% Amélioration de la qualité des cartes de Tarot (sans augmenter la taille)
+% 0.1.2 Modification du nom (et de la source) des images de Tarot (CC0)
+% 0.1.1 Ajout de commandes pour des mini-cartes
+% 0.1 Version initiale
+
+%------Packages utiles
+\RequirePackage{graphicx}
+\RequirePackage[table,svgnames]{xcolor}
+\RequirePackage{tikz}
+\RequirePackage{pgffor}
+\RequirePackage{xfp}
+\RequirePackage{listofitems}
+\RequirePackage{xstring}
+\RequirePackage{xparse}
+\RequirePackage{simplekv}
+\RequirePackage{xinttools}
+\RequirePackage{randomlist}
+\RequirePackage{pifont}
+%librairies tikz
+\usetikzlibrary{calc,scopes}
+%images venant de https://github.com/htdebeer/SVG-cards
+%images venant de https://freesvg.org/deck-of-french-tarot-playing-cards
+%images venant de https://alexder.itch.io/uno-card-game-asset-pack
+
+%------Commande en ligne (includegraphics) via raisebox/rotatebox ou tikz
+\defKV[AffCarteJeu]{%
+ Hauteur=\def\AffCarteJeuHauteur{#1},%
+ DecalageX=\def\AffCarteJeuDecalageX{#1},%
+ DecalageY=\def\AffCarteJeuDecalageY{#1},%
+ Rotation=\def\AffCarteJeuRotation{#1},%
+ AlignementV=\def\AffCarteJeuAlignementV{#1},%
+ TypeJeu=\def\AffCarteJeuType{#1}
+}
+\setKVdefault[AffCarteJeu]{%
+ Hauteur=4.25,%
+ Tikz=false,%pour placer la commande dans un environnement tikz ou en raisebox,
+ TikzAutonome=true,%pour déjà mettre l'image dans du tikz
+ DecalageX=0,%
+ DecalageY=0,%
+ Rotation=0,%
+ AlignementV=0.5,%
+ TypeJeu=Poker
+}
+
+\NewDocumentCommand\AffCarteJeu{ O{} m }{%1=options,2=cartenommée
+ \useKVdefault[AffCarteJeu]%
+ \setKV[AffCarteJeu]{#1}%
+ %cas poker
+ \IfStrEq{\AffCarteJeuType}{Poker}%poker
+ {\def\CartePrefixe{CaJ-Poker-}}{}%
+ %cas tarot
+ \IfStrEq{\AffCarteJeuType}{Tarot}%tarot
+ {\def\CartePrefixe{CaJ-Tarot-}}{}%
+ %cas tarot
+ \IfStrEq{\AffCarteJeuType}{Uno}%tarot
+ {\def\CartePrefixe{CaJ-Uno-}}{}%
+ %transformation valign en tikz
+ \def\OptionTikzCBB{current bounding box.center}%
+ \IfStrEq{\AffCarteJeuAlignementV}{0}%
+ {\def\OptionTikzCBB{current bounding box.south}}{}%
+ \IfStrEq{\AffCarteJeuAlignementV}{1}%
+ {\def\OptionTikzCBB{current bounding box.north}}{}%
+ %affichage
+ \ifboolKV[AffCarteJeu]{Tikz}%
+ {%
+ \ifboolKV[AffCarteJeu]{TikzAutonome}%
+ {%
+ {\tikz[baseline=(\OptionTikzCBB)] \draw (\AffCarteJeuDecalageX,\AffCarteJeuDecalageY) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=\AffCarteJeuRotation] {\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}} ;}%
+ }%
+ {%
+ \begin{scope}[shift={(\AffCarteJeuDecalageX,\AffCarteJeuDecalageY)}]%
+ \draw (0,0) node[above right=0pt,inner sep=0pt,outer sep=0pt,rotate=\AffCarteJeuRotation] {\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}} ;%
+ \end{scope}%
+ }%
+ }%
+ {%
+ \rotatebox[origin=c]{\AffCarteJeuRotation}{\raisebox{-\AffCarteJeuAlignementV\height}{\includegraphics[height=\AffCarteJeuHauteur cm]{\CartePrefixe#2}}}%
+ }%
+}
+
+%------commande main simple (cartes côte à côte)
+\defKV[AffMainSimpleCartes]{%
+ Hauteur=\def\MainSimpleHauteur{#1},%
+ TypeJeu=\def\MainSimpleJeuType{#1}
+}
+\setKVdefault[AffMainSimpleCartes]{%
+ Hauteur=4.25,%
+ TypeJeu=Poker
+}
+
+\NewDocumentCommand\AffCartesJeu{ O{} m }{%1=options,2=listecartes
+ \useKVdefault[AffMainSimpleCartes]%
+ \setKV[AffMainSimpleCartes]{#1}%
+ %calculs et traitement des variables
+ \setsepchar{§}%
+ \readlist*\ListeCartesMain{#2}%
+ \def\NbCartesMain{\ListeCartesMainlen}%nbcartes
+ %main côte à côte
+ \foreach \i in {1,2,...,\ListeCartesMainlen}{%
+ \itemtomacro\ListeCartesMain[\i]\CarteMain%
+ \AffCarteJeu[TypeJeu=\MainSimpleJeuType,Hauteur=\MainSimpleHauteur]{\CarteMain}%
+ }%
+}
+
+%------commande main cartes
+\defKV[AffMainCartes]{%
+ Hauteur=\def\MainHauteur{#1},%
+ EspH=\def\MainDecalH{#1},%
+ EspV=\def\MainDecalV{#1},%
+ Rotation=\def\MainRotation{#1},%
+ TypeJeu=\def\MainJeuType{#1},%
+ AlignementV=\def\MainAlignementV{#1}
+}
+\setKVdefault[AffMainCartes]{%
+ Hauteur=4.25,%
+ EspH=1,%
+ EspV=0,%
+ Rotation=10,%
+ Eventail=false,%
+ TypeJeu=Poker,%
+ AlignementV=0.5
+}
+
+\NewDocumentCommand\MainCartesJeu{ O{} m }{%1=options,2=listecartes
+ \useKVdefault[AffMainCartes]%
+ \setKV[AffMainCartes]{#1}%
+ %calculs et traitement des variables
+ \ignoreemptyitems%
+ \setsepchar{§}%
+ \readlist*\ListeCartesMain{#2}%
+ \def\NbCartesMain{\ListeCartesMainlen}%nbcartes
+ \IfStrEq{\MainJeuType}{Poker}%poker
+ {\def\HauteurGenerique{8.5}\def\CarteMainPrefixe{CaJ-Poker-}}{}%
+ \IfStrEq{\MainJeuType}{Tarot}%tarot
+ {\def\HauteurGenerique{5.5}\def\CarteMainPrefixe{CaJ-Tarot-}}{}%
+ \IfStrEq{\MainJeuType}{Uno}%uno
+ {\def\HauteurGenerique{8.5}\def\CarteMainPrefixe{CaJ-Uno-}}{}%
+ %echelle globale
+ \def\EchelleCarteDecalage{\fpeval{\MainHauteur/\HauteurGenerique}}%
+ %transformation valign en tikz
+ \def\OptionTikzCBB{current bounding box.center}%
+ \IfStrEq{\MainAlignementV}{0}%
+ {\def\OptionTikzCBB{current bounding box.south}}{}%
+ \IfStrEq{\MainAlignementV}{1}%
+ {\def\OptionTikzCBB{current bounding box.north}}{}%
+ %environnement tikzpicture
+ \begin{tikzpicture}[baseline=(\OptionTikzCBB)]%
+ \foreach \i in {1,2,...,\ListeCartesMainlen}{%
+ \itemtomacro\ListeCartesMain[\i]\CarteMain%
+ \ifboolKV[AffMainCartes]{Eventail}%
+ {%
+ \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
+ \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
+ \def\DecAngleMain{\fpeval{0.5*\NbCartesMain*\MainRotation}}%
+ \AffCarteJeu[TypeJeu=\MainJeuType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageY=\MainOffset,DecalageX=\SecondOffset,Rotation={\DecAngleMain-(\i-1)*\MainRotation}]{\CarteMain}%
+ }%
+ {%
+ \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
+ \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
+ \AffCarteJeu[TypeJeu=\MainJeuType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageX=\MainOffset,DecalageY=\SecondOffset]{\CarteMain}%
+ }%
+ }%finpour
+ \end{tikzpicture}%
+}
+
+%------commande main aléatoire
+\defKV[AffMainAleaCartes]{%
+ Hauteur=\def\MainHauteur{#1},%
+ EspH=\def\MainDecalH{#1},%
+ EspV=\def\MainDecalV{#1},%
+ Rotation=\def\MainRotation{#1},%
+ TypeJeu=\def\MainJeuType{#1},%
+ AlignementV=\def\MainAlignementV{#1}
+}
+\setKVdefault[AffMainAleaCartes]{%
+ Hauteur=4.25,%
+ EspH=1,%
+ EspV=0,%
+ Rotation=10,%
+ Eventail=false,%
+ TypeJeu=Poker,%
+ AlignementV=0.5
+}
+
+\xdef\CartesJeuPoker{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK}%
+\xdef\CartesJeuBelote{7P,8P,9P,10P,VP,DP,RP,AP,7T,8T,9T,10T,VT,DT,RT,AT,7C,8C,9C,10C,VC,DC,RC,AC,7K,8K,9K,10K,VK,DK,RK,AK}%
+\xdef\CartesJeuBataille{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK,JN,JR}%
+\xdef\CartesJeuRami{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK,JN,JR,2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,DK,RK,AK,JN,JR}%
+\xdef\CartesJeuTarot{2P,3P,4P,5P,6P,7P,8P,9P,10P,VP,CP,DP,RP,AP,2T,3T,4T,5T,6T,7T,8T,9T,10T,VT,CT,DT,RT,AT,2C,3C,4C,5C,6C,7C,8C,9C,10C,VC,CC,DC,RC,AC,2K,3K,4K,5K,6K,7K,8K,9K,10K,VK,CK,DK,RK,AK,1AT,2AT,3AT,4AT,5AT,6AT,7AT,8AT,9AT,10AT,11AT,12AT,13AT,14AT,15AT,16AT,17AT,18AT,19AT,20AT,21AT,Exc}%
+\xdef\CartesJeuUno{0B,1B,1B,2B,2B,3B,3B,4B,4B,5B,5B,6B,6B,7B,7B,8B,8B,9B,9B,PTB,PTB,CSB,CSB,P2B,P2B,0V,1V,1V,2V,2V,3V,3V,4V,4V,5V,5V,6V,6V,7V,7V,8V,8V,9V,9V,PTV,PTV,CSV,CSV,P2V,P2V,0J,1J,1J,2J,2J,3J,3J,4J,4J,5J,5J,6J,6J,7J,7J,8J,8J,9J,9J,PTJ,PTJ,CSJ,CSJ,P2J,P2J,0R,1R,1R,2R,2R,3R,3R,4R,4R,5R,5R,6R,6R,7R,7R,8R,8R,9R,9R,PTR,PTR,CSR,CSR,P2R,P2R,P4,P4,P4,P4,Coul,Coul,Coul,Coul}%
+\NewList{CartesJeuMelange}
+
+\NewDocumentCommand\MainCartesJeuAleatoire{ O{} m }{%1=options,2=nbcartes
+ \useKVdefault[AffMainAleaCartes]%
+ \setKV[AffMainAleaCartes]{#1}%
+ %calculs et traitement des variables
+ \IfStrEq{\MainJeuType}{Poker}%poker
+ {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,52-#2)}}}{}%
+ \IfStrEq{\MainJeuType}{Uno}%uno
+ {\def\HauteurGenerique{8.5}\def\CarteMainType{Uno}\xdef\CarteDebutRand{\fpeval{randint(0,108-#2)}}}{}%
+ \IfStrEq{\MainJeuType}{Bataille}%bataille
+ {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,54-#2)}}}{}%
+ \IfStrEq{\MainJeuType}{Belote}%poker
+ {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,32-#2)}}}{}%
+ \IfStrEq{\MainJeuType}{Rami}%rami
+ {\def\HauteurGenerique{8.5}\def\CarteMainType{Poker}\xdef\CarteDebutRand{\fpeval{randint(0,108-#2)}}}{}%
+ \IfStrEq{\MainJeuType}{Tarot}%tarot
+ {\def\HauteurGenerique{6.375}\def\CarteMainType{Tarot}\xdef\CarteDebutRand{\fpeval{randint(0,78-#2)}}}{}%
+ %échelle relative des cartes
+ \def\EchelleCarteDecalage{\fpeval{\MainHauteur/\HauteurGenerique}}%
+ %transformation valign en tikz
+ \def\OptionTikzCBB{current bounding box.center}%
+ \IfStrEq{\MainAlignementV}{0}%
+ {\def\OptionTikzCBB{current bounding box.south}}{}%
+ \IfStrEq{\MainAlignementV}{1}%
+ {\def\OptionTikzCBB{current bounding box.north}}{}%
+ %melange du jeu
+ \ClearList{CartesJeuMelange}%
+ \IfStrEq{\MainJeuType}{Poker}%si c'est le poker
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuPoker}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MainJeuType}{Bataille}%si c'est la bataille
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuBataille}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MainJeuType}{Rami}%si c'est le rami
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuRami}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MainJeuType}{Uno}%si c'est le uno
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuUno}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MainJeuType}{Belote}%si c'est le poker
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuBelote}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MainJeuType}{Tarot}%si c'est le tarot
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\CartesJeuTarot}}%
+ \do{\InsertRandomItem{CartesJeuMelange}{##1}}%
+ }%
+ {}%
+ %environnement tikzpicture
+ \begin{tikzpicture}[baseline=(\OptionTikzCBB)]%
+ \foreach \i in {1,2,...,#2}{%
+ \GetItem{CartesJeuMelange}{\inteval{\CarteDebutRand+\i-1}}{CarteMainChoisie}%
+ %\itemtomacro\ListeCartesMain[\i]\CarteMain%
+ \ifboolKV[AffMainAleaCartes]{Eventail}%
+ {%
+ \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
+ \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
+ \def\DecAngleMain{\fpeval{0.5*#2*\MainRotation}}%
+ \AffCarteJeu[TypeJeu=\CarteMainType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageY=\MainOffset,DecalageX=\SecondOffset,Rotation={\DecAngleMain-(\i-1)*\MainRotation}]{\CarteMainChoisie}%
+ }%
+ {%
+ \def\MainOffset{\fpeval{\EchelleCarteDecalage*\MainDecalH*(\i-1)}}%
+ \def\SecondOffset{\fpeval{\EchelleCarteDecalage*\MainDecalV*(\i-1)}}%
+ \AffCarteJeu[TypeJeu=\CarteMainType,Tikz,TikzAutonome=false,Hauteur=\MainHauteur,DecalageX=\MainOffset,DecalageY=\SecondOffset]{\CarteMainChoisie}%
+ }%
+ }%finpour
+ \end{tikzpicture}%
+}
+
+%------commande mini-cartes
+\defKV[AffMiniCartes]{%
+ Largeur=\def\MiniCarteLargeur{#1},
+ FondAtout=\def\MiniCarteFondAtout{#1}
+}
+\setKVdefault[AffMiniCartes]{%
+ Largeur=0.55cm,%
+ FondAtout=PeachPuff
+}
+
+\NewDocumentCommand\AffMiniCarteJeu{ O{} m }{%1=options,2=nbcartes
+ \useKVdefault[AffMiniCartes]%
+ \setKV[AffMiniCartes]{#1}%
+ %découpage de l'argument
+ \StrCut{#2}{.}\csVal\csCplt%
+ %couleur de fond
+ \def\csFond{White}%
+ \def\csCoul{black}%
+ %le cas du 10.11...21
+ \IfStrEq{\csVal}{10}{\def\csVal{\scalebox{0.5}[1]{10}}}{}%
+ \IfStrEq{\csVal}{11}{\def\csVal{\scalebox{0.5}[1]{11}}}{}%
+ \IfStrEq{\csVal}{12}{\def\csVal{\scalebox{0.5}[1]{12}}}{}%
+ \IfStrEq{\csVal}{13}{\def\csVal{\scalebox{0.5}[1]{13}}}{}%
+ \IfStrEq{\csVal}{14}{\def\csVal{\scalebox{0.5}[1]{14}}}{}%
+ \IfStrEq{\csVal}{15}{\def\csVal{\scalebox{0.5}[1]{15}}}{}%
+ \IfStrEq{\csVal}{16}{\def\csVal{\scalebox{0.5}[1]{16}}}{}%
+ \IfStrEq{\csVal}{17}{\def\csVal{\scalebox{0.5}[1]{17}}}{}%
+ \IfStrEq{\csVal}{18}{\def\csVal{\scalebox{0.5}[1]{18}}}{}%
+ \IfStrEq{\csVal}{19}{\def\csVal{\scalebox{0.5}[1]{19}}}{}%
+ \IfStrEq{\csVal}{20}{\def\csVal{\scalebox{0.5}[1]{20}}}{}%
+ \IfStrEq{\csVal}{21}{\def\csVal{\scalebox{0.5}[1]{21}}}{}%
+ %le cas du Excuse
+ \IfStrEq{#2}{Exc}%
+ {\def\csSymb{\ding{168}}\def\csCoul{blue}%
+ \def\csVal{\scalebox{0.33}[1]{EXC}}}{}%
+ %le cas du Joker
+ \IfStrEq{\csVal}{J}%
+ {\def\csSymb{\ding{166}}\def\csVal{\scalebox{0.5}[1]{JO}}}{}%
+ %si c'est un coeur
+ \IfStrEq{\csCplt}{C}%
+ {\def\csSymb{\ding{170}}\def\csCoul{red}}{}%
+ %si c'est un carreau
+ \IfStrEq{\csCplt}{K}%
+ {\def\csSymb{\ding{169}}\def\csCoul{red}}{}%
+ %si c'est un coeur
+ \IfStrEq{\csCplt}{P}%
+ {\def\csSymb{\ding{171}}}{}%
+ %si c'est un trèfle
+ \IfStrEq{\csCplt}{T}%
+ {\def\csSymb{\ding{168}}}{}%
+ %si c'est un atout 68
+ \IfStrEq{\csCplt}{AT}%
+ {\def\csFond{\MiniCarteFondAtout}\def\csSymb{\ding{88}}}{}%
+ %si c'est un rouge
+ \IfStrEq{\csCplt}{R}%
+ {\def\csCoul{red}}{}%
+ %minicarte
+ \tikz[baseline=(char.base)]\node[anchor=north west,line width=0.7pt,draw=Gray,rectangle,rounded corners,inner sep=1.6pt,fill=\csFond,text=\csCoul,font=\ttfamily,minimum width=\MiniCarteLargeur](char){\csVal\scalebox{0.75}[0.75]{\csSymb}};%
+}
+
+%------commande mini-main-cartes
+\defKV[AffMiniMainCartes]{%
+ Largeur=\def\MiniMainLargeur{#1},%
+ FondAtout=\def\MiniMainFondAtout{#1}
+}
+\setKVdefault[AffMiniMainCartes]{%
+ Largeur=0.55cm,%
+ FondAtout=PeachPuff
+}
+
+\NewDocumentCommand\MainMiniCartesJeu{ O{} m }{%1=options,2=liste
+ \useKVdefault[AffMiniMainCartes]%
+ \setKV[AffMiniMainCartes]{#1}%
+ \ignoreemptyitems%
+ \setsepchar{§}%
+ \readlist*\MiniCartesMain{#2}%
+ \foreachitem\MiniCarteAffich\in\MiniCartesMain{%
+ \AffMiniCarteJeu[FondAtout=\MiniMainFondAtout,Largeur=\MiniMainLargeur]{\MiniCarteAffich}%
+ }%
+}
+
+%------commande mini-main aléatoire
+\defKV[MiniMainAleaCartes]{%
+ Largeur=\def\MiniMainAleaLargeur{#1},%
+ TypeJeu=\def\MiniMainAleaType{#1},%
+ FondAtout=\def\MiniMainAleaFondAtout{#1}
+}
+\setKVdefault[MiniMainAleaCartes]{%
+ Largeur=0.55cm,%
+ TypeJeu=Poker,%
+ FondAtout=PeachPuff
+}
+
+\xdef\MiniCartesJeuPoker{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K}%
+\xdef\MiniCartesJeuBelote{7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K}%
+\xdef\MiniCartesJeuBataille{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K,J.N,J.R}%
+\xdef\MiniCartesJeuTarot{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,C.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,C.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,C.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,C.K,D.K,R.K,A.K,1.AT,2.AT,3.AT,4.AT,5.AT,6.AT,7.AT,8.AT,9.AT,10.AT,11.AT,12.AT,13.AT,14.AT,15.AT,16.AT,17.AT,18.AT,19.AT,20.AT,21.AT,Exc}%
+\xdef\MiniCartesJeuRami{2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K,J.N,J.R,2.P,3.P,4.P,5.P,6.P,7.P,8.P,9.P,10.P,V.P,D.P,R.P,A.P,2.T,3.T,4.T,5.T,6.T,7.T,8.T,9.T,10.T,V.T,D.T,R.T,A.T,2.C,3.C,4.C,5.C,6.C,7.C,8.C,9.C,10.C,V.C,D.C,R.C,A.C,2.K,3.K,4.K,5.K,6.K,7.K,8.K,9.K,10.K,V.K,D.K,R.K,A.K,J.N,J.R}%
+\NewList{MiniCartesJeuMelange}
+
+\NewDocumentCommand\MainMiniCartesJeuAleatoire{ O{} m }{%1=options,2=nbcartes
+ \useKVdefault[MiniMainAleaCartes]%
+ \setKV[MiniMainAleaCartes]{#1}%
+ %melange du jeu
+ \ClearList{MiniCartesJeuMelange}%
+ \IfStrEq{\MiniMainAleaType}{Poker}%si c'est le poker
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuPoker}}%
+ \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MiniMainAleaType}{Bataille}%si c'est la bataille
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuBataille}}%
+ \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MiniMainAleaType}{Belote}%si c'est le belote
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuBelote}}%
+ \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MiniMainAleaType}{Tarot}%si c'est le tarot
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuTarot}}%
+ \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
+ }%
+ {}%
+ \IfStrEq{\MiniMainAleaType}{Rami}%si c'est le rami
+ {%
+ \xintFor* ##1 in {\xintCSVtoList{\MiniCartesJeuRami}}%
+ \do{\InsertRandomItem{MiniCartesJeuMelange}{##1}}%
+ }%
+ {}%
+ %création de la main
+ \foreach \i in {1,2,...,#2}{%
+ \GetItem{MiniCartesJeuMelange}{\inteval{\i-1}}{MiniCarteMainChoisie}%
+ \AffMiniCarteJeu[FondAtout=\MiniMainAleaFondAtout,Largeur=\MiniMainAleaLargeur]{\MiniCarteMainChoisie}%
+ }%finpour
+}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/pdflscape/README.md b/macros/latex/contrib/pdflscape/README.md
index 89416f1b8d..bdbec6af7a 100644
--- a/macros/latex/contrib/pdflscape/README.md
+++ b/macros/latex/contrib/pdflscape/README.md
@@ -1,10 +1,16 @@
-# pdflscape
-
-pdflscape package for LaTeX
+# pdflscape package for LaTeX
+Version: 2022-10-28 v0.13
Package pdflscape adds PDF support to the
environment landscape of package lscape
by setting the PDF page attribute /Rotate.
+% Copyright (C)
+% 2001, 2004, 2006-2008 Heiko Oberdiek
+% 2016-2022 Oberdiek Package Support Group
+% https://github.com/ho-tex/pdflscape/issues
+
+## License
+LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/pdflscape/pdflscape.dtx b/macros/latex/contrib/pdflscape/pdflscape.dtx
index d85ffb9bcd..c0d45d9f67 100644
--- a/macros/latex/contrib/pdflscape/pdflscape.dtx
+++ b/macros/latex/contrib/pdflscape/pdflscape.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: pdflscape.dtx
-% Version: 2019/12/05 v0.12
+% Version: 2022-10-28 v0.13
% Info: Display of landscape pages in PDF
%
% Copyright (C)
% 2001, 2004, 2006-2008 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group
+% 2016-2022 Oberdiek Package Support Group
% https://github.com/ho-tex/pdflscape/issues
%
% This work may be distributed and/or modified under the
@@ -27,7 +27,8 @@
%
% This work consists of the main source file pdflscape.dtx
% and the derived files
-% pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv,
+% pdflscape.sty, pdflscape-nometadata, pdflscape.pdf,
+% pdflscape.ins, pdflscape.drv,
%
% Distribution:
% CTAN:macros/latex/contrib/pdflscape/pdflscape.dtx
@@ -61,6 +62,7 @@
%
% Installation:
% TDS:tex/latex/pdflscape/pdflscape.sty
+% TDS:tex/latex/pdflscape/pdflscape-nometadata.sty
% TDS:doc/latex/pdflscape/pdflscape.pdf
% TDS:source/latex/pdflscape/pdflscape.dtx
%
@@ -79,7 +81,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: pdflscape 2019/12/05 v0.12 Display of landscape pages in PDF (HO)}
+\Msg{* Package: pdflscape 2022-10-28 v0.13 Display of landscape pages in PDF (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -91,11 +93,11 @@
This is a generated file.
Project: pdflscape
-Version: 2019/12/05 v0.12
+Version: 2022-10-28 v0.13
Copyright (C)
2001, 2004, 2006-2008 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2022 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -116,7 +118,8 @@ https://github.com/ho-tex/pdflscape/issues
This work consists of the main source file pdflscape.dtx
and the derived files
- pdflscape.sty, pdflscape.pdf, pdflscape.ins, pdflscape.drv,
+ pdflscape.sty, pdflscape-nometadata.sty, pdflscape.pdf,
+ pdflscape.ins, pdflscape.drv,
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -125,7 +128,8 @@ and the derived files
\file{pdflscape.ins}{\from{pdflscape.dtx}{install}}%
\file{pdflscape.drv}{\from{pdflscape.dtx}{driver}}%
\usedir{tex/latex/pdflscape}%
- \file{pdflscape.sty}{\from{pdflscape.dtx}{package}}%
+ \file{pdflscape-nometadata.sty}{\from{pdflscape.dtx}{package}}%
+ \file{pdflscape.sty}{\from{pdflscape.dtx}{package-new}}%
}
\catcode32=13\relax% active space
@@ -136,6 +140,7 @@ and the derived files
\Msg{* file into a directory searched by TeX:}
\Msg{*}
\Msg{* pdflscape.sty}
+\Msg{* pdflscape-nometadata.sty}
\Msg{*}
\Msg{* To produce the documentation run the file `pdflscape.drv'}
\Msg{* through LaTeX.}
@@ -152,7 +157,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{pdflscape.drv}%
- [2019/12/05 v0.12 Display of landscape pages in PDF (HO)]%
+ [2022-10-28 v0.13 Display of landscape pages in PDF (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\usepackage{graphics}
@@ -167,7 +172,7 @@ and the derived files
% \GetFileInfo{pdflscape.drv}
%
% \title{The \xpackage{pdflscape} package}
-% \date{2019/12/05 v0.12}
+% \date{2022-10-28 v0.13}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/pdflscape/issues}}}
%
@@ -184,13 +189,21 @@ and the derived files
% \section{Documentation}
%
% \subsection{Supported drivers}
+%
+% If the PDF management is loaded by the use of \verb+\DocumentMetadata{}+ at
+% the beginning of the document, the engines and backends supported by \texttt{l3backend}
+% can be used. Driver options are passed to graphics and are typically only needed if
+% \LaTeX{} is used with \texttt{dvipdfmx}.
+%
+% Without the PDF management the following driver options can be used (many are
+% simply aliases to each other):
%
% \begin{itemize}
% \item \xoption{pdftex},\xoption{luatex}
% \item \xoption{dvips}, \xoption{dvipsone},
-% \xoption{pctex32}, \xoption{pctexps}
+% \xoption{pctexps}
% (and other drivers that provide a non-empty \cs{Gin@PS@raw})
-% \item \xoption{dvipdfm}
+% \item \xoption{dvipdfm}, \xoption{dvipdfmx}, \xoption{xetex}
% \end{itemize}
%
% \subsection{Caveat}
@@ -224,8 +237,55 @@ and the derived files
% }
%
% \section{Implementation}
+% \subsection{New version using the methods of the PDF management}
+% Identification
+% \begin{macrocode}
+%<*package-new>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{pdflscape}{2022-10-27}{0.13}
+ {Display of landscape pages in PDF}%
+% \end{macrocode}
+% Testing if the pdfmanagement is used
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2022-06-01}
+ {
+ \IfDocumentMetadataTF {}{\RequirePackageWithOptions{pdflscape-nometadata}}
+ \IfDocumentMetadataTF {}{\endinput}
+ }
+ {\RequirePackageWithOptions{pdflscape-nometadata}}
+% \end{macrocode}
+% Load lscape, but don't pass the \texttt{pdftex} option
+% as it would use \cs{pdfpageattr} which is incompatible with the pdf management.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphics}}
+\ProcessOptions
+\RequirePackage{lscape}
+% \end{macrocode}
+% this always turns in the same direction as the original code
+% of pdflscape does. left and right would need
+% \verb+\pdfmanagement_add:nnn{ThisPage}{Rotate}{..}+
+% on every page (e.g. in a shipout hook) and some option to control the wanted
+% orientation.
+
+% \begin{macrocode}
+\tl_new:N\g__pdflscape_saverotate_tl
+\hook_gput_code:nnn {env/landscape/begin}{pdflscape}
+ {
+ \pdfmanagement_get:nnN {Page}{Rotate}\l_tmpa_tl
+ \tl_gset_eq:NN\g__pdflscape_saverotate_tl\l_tmpa_tl
+ \clearpage
+ \pdfmanagement_add:nnn{Page}{Rotate}{90}
+ }
+\hook_gput_code:nnn {env/landscape/after}{pdflscape}
+ {
+ \quark_if_no_value:NTF\g__pdflscape_saverotate_tl
+ {\pdfmanagement_remove:nn{Page}{Rotate}}
+ {\pdfmanagement_add:nnx{Page}{Rotate}{\g__pdflscape_saverotate_tl}}
+ }
+%</package-new>
+% \end{macrocode}
%
-% \subsection{Package identification}
+% \subsection{Old version without the PDF management}
%
% \begin{macrocode}
%<*package>
@@ -233,8 +293,8 @@ and the derived files
% Package identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pdflscape}%
- [2019/12/05 v0.12 Display of landscape pages in PDF (HO)]
+\ProvidesPackage{pdflscape-nometadata}%
+ [2022-10-28 v0.13 Display of landscape pages in PDF (HO)]
% \end{macrocode}
%
% \subsection{Driver options}
@@ -452,19 +512,18 @@ and the derived files
% \begin{macrocode}
\def\PLS@temp{dvips}
\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
\let\PLS@AtBeginShipout\@empty
\def\PLS@AddRotate#1{%
\ifnum#1=0 %
\else
\def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
+ \global\setbox\ShipoutBox\vbox{%
\Gin@PS@raw{%
[{ThisPage}\string<\string</Rotate #1\string>\string>%
/PUT pdfmark%
}%
- \box\AtBeginShipoutBox
+ \box\ShipoutBox
}%
}%
\fi
@@ -478,16 +537,15 @@ and the derived files
% \begin{macrocode}
\def\PLS@temp{dvipdfm}
\ifx\PLS@temp\PLS@driver
- \RequirePackage{atbegshi}%
- \AtBeginShipout{\PLS@AtBeginShipout}%
+ \AddToHook{shipout/before}{\PLS@AtBeginShipout}%
\let\PLS@AtBeginShipout\@empty
\def\PLS@AddRotate#1{%
\ifnum#1=0 %
\else
\def\PLS@AtBeginShipout{%
- \global\setbox\AtBeginShipoutBox\vbox{%
+ \global\setbox\ShipoutBox\vbox{%
\special{pdf: put @thispage <</Rotate #1>>}%
- \box\AtBeginShipoutBox
+ \box\ShipoutBox
}%
}%
\fi
@@ -584,26 +642,6 @@ and the derived files
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `pdflscape'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/pdflscape.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{pdflscape.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip pdflscape.tds.zip -d ~/texmf|
-% \end{quote}
-%
% \subsection{Package installation}
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
@@ -620,6 +658,7 @@ and the derived files
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
% pdflscape.sty & tex/latex/pdflscape/pdflscape.sty\\
+% pdflscape-nometadata.sty & tex/latex/pdflscape/pdflscape-nometadata.sty\\
% pdflscape.pdf & doc/latex/pdflscape/pdflscape.pdf\\
% pdflscape.dtx & source/latex/pdflscape/pdflscape.dtx\\
% \end{tabular}^^A
@@ -798,6 +837,10 @@ and the derived files
% Documentation updates.
% \item \xpackage{iftex} package.
% \end{Version}
+% \begin{Version}{2022-10-28 v0.13}
+% \item Made the package compatible with the PDF management.
+% \item Removed the dependency to atbegshi.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/pdflscape/pdflscape.pdf b/macros/latex/contrib/pdflscape/pdflscape.pdf
index b94089a91e..ee0637ae40 100644
--- a/macros/latex/contrib/pdflscape/pdflscape.pdf
+++ b/macros/latex/contrib/pdflscape/pdflscape.pdf
Binary files differ
diff --git a/macros/latex/contrib/transparent/README.md b/macros/latex/contrib/transparent/README.md
index d45c0c1668..79df6a6bd8 100644
--- a/macros/latex/contrib/transparent/README.md
+++ b/macros/latex/contrib/transparent/README.md
@@ -1,8 +1,21 @@
-# transparent
+# transparent package for LaTeX
-transparent package for LaTeX
+Version: 2022-10-27 v1.5
-Since version 1.40 pdfTeX supports several color stacks. This
+pdfTeX and luatex supports several color stacks. This
package shows, how a separate color stack can be used for transparency,
-a property besides color.
+a property besides color, that works across page breaks.
+
+If the PDF management is used it can also be used with other engines
+but without support for page breaks.
+
+% Copyright (C)
+% 2007 Heiko Oberdiek
+% 2016-2022 Oberdiek Package Support Group
+% https://github.com/ho-tex/transparent/issues
+
+
+## License
+LATEX Project Public License, version 1.3c or later.
+
diff --git a/macros/latex/contrib/transparent/transparent.dtx b/macros/latex/contrib/transparent/transparent.dtx
index 1cfec67cf9..786ae2127a 100644
--- a/macros/latex/contrib/transparent/transparent.dtx
+++ b/macros/latex/contrib/transparent/transparent.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: transparent.dtx
-% Version: 2019/11/29 v1.4
+% Version: 2022-10-27 v1.5
% Info: Transparency via pdfTeX's color stack
%
% Copyright (C)
% 2007 Heiko Oberdiek
-% 2016-2019 Oberdiek Package Support Group 2018
+% 2016-2022 Oberdiek Package Support Group 2018
% https://github.com/ho-tex/transparent/issues
%
% This work may be distributed and/or modified under the
@@ -27,8 +27,8 @@
%
% This work consists of the main source file transparent.dtx
% and the derived files
-% transparent.sty, transparent.pdf, transparent.ins, transparent.drv,
-% transparent-example.tex.
+% transparent.sty, transparent-nometadata.sty, transparent.pdf,
+% transparent.ins, transparent.drv, transparent-example.tex.
%
% Distribution:
% CTAN:macros/latex/contrib/transparent/transparent.dtx
@@ -62,6 +62,7 @@
%
% Installation:
% TDS:tex/latex/transparent/transparent.sty
+% TDS:tex/latex/transparent/transparent-nometadata.sty
% TDS:doc/latex/transparent/transparent.pdf
% TDS:source/latex/transparent/transparent.dtx
%
@@ -80,7 +81,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: transparent 2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)}
+\Msg{* Package: transparent 2022-10-27 v1.5 Transparency via pdfTeX's color stack (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -92,11 +93,11 @@
This is a generated file.
Project: transparent
-Version: 2019/11/29 v1.4
+Version: 2022-10-27 v1.5
Copyright (C)
2007 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2022 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -117,8 +118,8 @@ https://github.com/ho-tex/transparent/issues
This work consists of the main source file transparent.dtx
and the derived files
- transparent.sty, transparent.pdf, transparent.ins, transparent.drv,
- transparent-example.tex.
+ transparent.sty, transparent-nometadata.sty, transparent.pdf,
+ transparent.ins, transparent.drv, transparent-example.tex.
\endpreamble
\let\MetaPrefix\DoubleperCent
@@ -127,13 +128,10 @@ and the derived files
\file{transparent.ins}{\from{transparent.dtx}{install}}%
\file{transparent.drv}{\from{transparent.dtx}{driver}}%
\usedir{tex/latex/transparent}%
- \file{transparent.sty}{\from{transparent.dtx}{package}}%
+ \file{transparent-nometadata.sty}{\from{transparent.dtx}{package}}%
+ \file{transparent.sty}{\from{transparent.dtx}{package-new}}%
\usedir{doc/latex/transparent}%
\file{transparent-example.tex}{\from{transparent.dtx}{example}}%
- \nopreamble
- \nopostamble
-% \usedir{source/latex/transparent/catalogue}%
-% \file{transparent.xml}{\from{transparent.dtx}{catalogue}}%
}
\catcode32=13\relax% active space
@@ -144,6 +142,7 @@ and the derived files
\Msg{* file into a directory searched by TeX:}
\Msg{*}
\Msg{* transparent.sty}
+\Msg{* transparent-nometadata.sty}
\Msg{*}
\Msg{* To produce the documentation run the file `transparent.drv'}
\Msg{* through LaTeX.}
@@ -160,7 +159,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{transparent.drv}%
- [2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)]%
+ [2022-10-27 v1.5 Transparency via pdfTeX's color stack (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -170,35 +169,20 @@ and the derived files
% \fi
%
%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
%
% \GetFileInfo{transparent.drv}
%
% \title{The \xpackage{transparent} package}
-% \date{2019/11/29 v1.4}
+% \date{2022-10-27 v1.5}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/transparent/issues}}}
%
% \maketitle
%
% \begin{abstract}
-% Since version 1.40 \pdfTeX\ supports several color stacks. This
+% \pdfTeX\ and lua\TeX{} supports several color stacks. This
% package shows, how a separate color stack can be used for transparency,
-% a property besides color.
+% a property besides color, that also works across page break.
% \end{abstract}
%
% \tableofcontents
@@ -207,12 +191,23 @@ and the derived files
%
% The package \xpackage{transparent} defines \cs{transparent} and
% \cs{texttransparent}. They are used like \cs{color} and \cs{textcolor}.
-% The first argument is the transparency value between 0 and 1.
-%
-% Because of the poor interface for page resources, there can be problems
-% with packages that also use \cs{pdfpageresources}.
-%
-% Example for usage:
+% The first argument is the transparency value between 0 and 1 where 0
+% is fully transparent and 1 is opaque.
+%
+% \section{Engine support}
+% If the PDF management is loaded by using \verb+\DocumentMetadata{}+ at the beginning
+% of the document the package makes use of \texttt{l3opacity} and
+% can be used with all engines supported by \texttt{l3backend}.
+% But only with \pdfTeX\ and lua\TeX{} the transparency will also work across page break.
+%
+%
+% Without the PDF management, the package works only with \pdfTeX\ and lua\TeX{}.
+% It then uses the original code by Heiko Oberdiek. It then uses the
+% primitive \cs{pdfpageresources} and can clash with other packages that also use
+% \cs{pdfpageresources}.
+%
+%
+% \section{Example for usage}
% \begin{macrocode}
%<*example>
\documentclass[12pt]{article}
@@ -241,14 +236,47 @@ Hello World
% }
%
% \section{Implementation}
-%
-% \subsection{Identification}
-%
+% \subsection{New version using the methods of the PDF management}
+% Identification
+% \begin{macrocode}
+%<*package-new>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\ProvidesExplPackage{transparent}{2022-10-27}{1.5}
+ {Transparency with color stacks}%
+% \end{macrocode}
+% Testing if the pdfmanagement is used
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2022-06-01}
+ {
+ \IfDocumentMetadataTF {}{\RequirePackage{transparent-nometadata}}
+ \IfDocumentMetadataTF {}{\endinput}
+ }
+ {\RequirePackage{transparent-nometadata}}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{l3opacity}
+
+\NewDocumentCommand{\transparent} { m }
+ {
+ \opacity_select:n{\fp_eval:n{ min(max(0,#1),1) } }
+ }
+
+\NewDocumentCommand{\texttransparent}{m m}
+ {
+ \mode_leave_vertical:
+ \group_begin:
+ \transparent{#1}
+ #2
+ \group_end:
+ }
+%</package-new>
+% \end{macrocode}
+% \subsection{Old version without the PDF management}
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{transparent}%
- [2019/11/29 v1.4 Transparency via pdfTeX's color stack (HO)]%
+\ProvidesPackage{transparent-nometadata}%
+ [2022-10-27 v1.5 Transparency via pdfTeX's color stack (HO)]%
% \end{macrocode}
%
% \subsection{Initial checks}
@@ -432,25 +460,6 @@ Hello World
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `transparent'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/transparent.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{transparent.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip transparent.tds.zip -d ~/texmf|
-% \end{quote}
%
% \subsection{Package installation}
%
@@ -468,6 +477,7 @@ Hello World
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
% transparent.sty & tex/latex/transparent/transparent.sty\\
+% transparent-nometadata.sty & tex/latex/transparent/transparent-nometadata.sty\\
% transparent.pdf & doc/latex/transparent/transparent.pdf\\
% transparent-example.tex & doc/latex/transparent/transparent-example.tex\\
% transparent.dtx & source/latex/transparent/transparent.dtx\\
@@ -603,6 +613,9 @@ Hello World
% \item
% Use \xpackage{iftex} package.
% \end{Version}
+% \begin{Version}{2022-10-27 v1.5}
+% \item Made the package compatible with the PDF management.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/transparent/transparent.pdf b/macros/latex/contrib/transparent/transparent.pdf
index 3eec17c736..bc7e6db6ed 100644
--- a/macros/latex/contrib/transparent/transparent.pdf
+++ b/macros/latex/contrib/transparent/transparent.pdf
Binary files differ