summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-07 03:01:57 +0000
committerNorbert Preining <norbert@preining.info>2024-01-07 03:01:57 +0000
commitaba7fb229e902758b312ecec84ab6f485c89ba66 (patch)
treec19cf7164b430c1d344ad913c8dc44f5ace262b7 /macros/latex
parent949a85bb8707bf1aaa2b23b018e24d5001d38e52 (diff)
CTAN sync 202401070301
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/beamer/CHANGELOG.md14
-rw-r--r--macros/latex/contrib/beamer/base/beamer.cls4
-rw-r--r--macros/latex/contrib/beamer/base/beamerarticle.sty4
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseboxes.sty3
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasecolor.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasecompatibility.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasefont.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseframe.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseframesize.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty6
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasemodes.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasenavigation.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasenavigationsymbols.tex2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasenotes.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaseoverlay.sty14
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasesection.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasetoc.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty2
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty11
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty14
-rw-r--r--macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdfbin345372 -> 254519 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdfbin547778 -> 430783 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdfbin434214 -> 368272 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-animations.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-color.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-compatibility.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-elements.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-fonts.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-frames.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-guidelines.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-installation.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-interaction.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-introduction.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-localstructure.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex4
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-notes.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-overlays.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-solutions.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-tutorial.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-workflow.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beameruserguide.pdfbin2221482 -> 2193534 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beameruserguide.tex6
-rw-r--r--macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex2
-rw-r--r--macros/latex/contrib/codedescribe/README.md8
-rw-r--r--macros/latex/contrib/codedescribe/doc/codedescribe.pdfbin251836 -> 252057 bytes
-rw-r--r--macros/latex/contrib/codedescribe/doc/codedescribe.tex12
-rw-r--r--macros/latex/contrib/codedescribe/latex/codedescribe.sty12
-rw-r--r--macros/latex/contrib/codedescribe/latex/codelisting.sty58
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx40
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin590446 -> 590460 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex24
-rw-r--r--macros/latex/contrib/overpic/overpic.dtx33
-rw-r--r--macros/latex/contrib/overpic/overpic.pdfbin404377 -> 405917 bytes
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin9706655 -> 9752363 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCAutonomie.tex2
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCAN.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalisson.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCartographie.tex17
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCible.tex12
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCConversion.tex99
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDistributivite.tex39
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCEquationModeleBarre.tex301
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGeometrie.tex115
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLego.tex34
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex166
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex7
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulArt.tex16
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex599
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex32
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPropor.tex5
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCPythagore.tex14
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex69
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReperage.tex321
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex37
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex33
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCScratch.tex32
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex13
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSolides.tex71
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex19
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCThales.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCTrio.tex91
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty79
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp28
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp41
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin1450770 -> 1462171 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex4
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty3
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex19
-rw-r--r--macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex48
-rw-r--r--macros/latex/contrib/todonotes/README2
-rw-r--r--macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdfbin66201 -> 66197 bytes
-rw-r--r--macros/latex/contrib/todonotes/examples/externalize.pdfbin29245 -> 29245 bytes
-rw-r--r--macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdfbin26849 -> 26849 bytes
-rw-r--r--macros/latex/contrib/todonotes/todonotes.dtx17
-rw-r--r--macros/latex/contrib/todonotes/todonotes.pdfbin356267 -> 356764 bytes
113 files changed, 2311 insertions, 469 deletions
diff --git a/macros/latex/contrib/beamer/CHANGELOG.md b/macros/latex/contrib/beamer/CHANGELOG.md
index 0683e90c84..b6f5cde29e 100644
--- a/macros/latex/contrib/beamer/CHANGELOG.md
+++ b/macros/latex/contrib/beamer/CHANGELOG.md
@@ -8,6 +8,17 @@ a major and minor version only.
## [Unreleased]
+## [v3.71]
+
+### Changed
+
+- scale height of tree and split headlines with fontsize of `section in head/foot`
+
+### Fixed
+
+- ensure that shadows of rounded blocks use proper black for their shadow
+- using correct template for `\structure` in article mode (see #862)
+
## [v3.70]
### Added
@@ -243,7 +254,8 @@ a major and minor version only.
- Support for `noxcolor` with `beamerarticle` (see #483)
- Treatment of mixed overlay/alert specifications
-[Unreleased]: https://github.com/josephwright/beamer/compare/v3.70...HEAD
+[Unreleased]: https://github.com/josephwright/beamer/compare/v3.71...HEAD
+[v3.71]: https://github.com/josephwright/beamer/compare/v3.70...v3.71
[v3.70]: https://github.com/josephwright/beamer/compare/v3.69...v3.70
[v3.69]: https://github.com/josephwright/beamer/compare/v3.68...v3.69
[v3.68]: https://github.com/josephwright/beamer/compare/v3.67...v3.68
diff --git a/macros/latex/contrib/beamer/base/beamer.cls b/macros/latex/contrib/beamer/base/beamer.cls
index 3f6bdde044..5b50af3cf9 100644
--- a/macros/latex/contrib/beamer/base/beamer.cls
+++ b/macros/latex/contrib/beamer/base/beamer.cls
@@ -3,7 +3,7 @@
% Copyright 2011--2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020--2023 by Joseph Wright, samcarter
+% Copyright 2020--2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -13,7 +13,7 @@
% See the file LICENSE.md for more details.
\ProvidesClass{beamer}
- [2023/05/15 v3.70 A class for typesetting presentations]
+ [2024/01/06 v3.71 A class for typesetting presentations]
% Setup modes and check for article option
% Also loads packages required by both beamer and beamerarticle
diff --git a/macros/latex/contrib/beamer/base/beamerarticle.sty b/macros/latex/contrib/beamer/base/beamerarticle.sty
index f065fe0fb4..49274c1c1d 100644
--- a/macros/latex/contrib/beamer/base/beamerarticle.sty
+++ b/macros/latex/contrib/beamer/base/beamerarticle.sty
@@ -3,7 +3,7 @@
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020--2023 by Joseph Wright, samcarter
+% Copyright 2020--2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -13,7 +13,7 @@
% See the file LICENSE.md for more details.
\ProvidesPackage{beamerarticle}
- [2023/05/15 v3.70 beamer input in article mode]
+ [2024/01/06 v3.71 beamer input in article mode]
% Setup modes and check for article option
% Also loads packages required by both beamer and beamerarticle
diff --git a/macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty b/macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty
index ff90d3e7b5..00b36f68d3 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseauxtemplates.sty
@@ -3,7 +3,7 @@
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021--2023 by Joseph Wright, samcarter
+% Copyright 2021--2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaseboxes.sty b/macros/latex/contrib/beamer/base/beamerbaseboxes.sty
index 77c97593a4..678f55c18d 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseboxes.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseboxes.sty
@@ -1,7 +1,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2020--2022 by Joseph Wright, samcarter
+% Copyright 2020--2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -186,6 +186,7 @@
\begin{pgfpicture}{0bp}{0bp}{0bp}{0bp}
\ifbmb@shadow%
\begin{pgfscope}
+ \pgfsetfillcolor{beamer@safeblack}%
\pgfpathrectangle{\pgfpoint{0bp}{-7bp}}
{\pgfpoint{\bmb@boxwidth+8bp}{\bmb@boxheight+6bp}}
\pgfsetfading{bmb@shadowmask\the\bmb@boxwidth\the\bmb@boxheight}{%
diff --git a/macros/latex/contrib/beamer/base/beamerbasecolor.sty b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
index c15372756b..25611bdc0f 100644
--- a/macros/latex/contrib/beamer/base/beamerbasecolor.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2022,2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasecompatibility.sty b/macros/latex/contrib/beamer/base/beamerbasecompatibility.sty
index 99c2af31ba..fb7a47515e 100644
--- a/macros/latex/contrib/beamer/base/beamerbasecompatibility.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasecompatibility.sty
@@ -3,7 +3,7 @@
% Copyright 2011,2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017-2020 by Louis Stuart, Joseph Wright
-% Copyright 2020--2022 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasefont.sty b/macros/latex/contrib/beamer/base/beamerbasefont.sty
index c85ef322fd..b90ad0b2af 100644
--- a/macros/latex/contrib/beamer/base/beamerbasefont.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasefont.sty
@@ -3,7 +3,7 @@
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaseframe.sty b/macros/latex/contrib/beamer/base/beamerbaseframe.sty
index 5d9f649422..b88adaa9fc 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseframe.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseframe.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2011--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2022,2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty b/macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty
index 8d8ff8829f..f1174e2fde 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseframecomponents.sty
@@ -3,7 +3,7 @@
% Copyright 2011--2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaseframesize.sty b/macros/latex/contrib/beamer/base/beamerbaseframesize.sty
index 71b0901280..4a84db69ee 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseframesize.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseframesize.sty
@@ -1,7 +1,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2011,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2022 by Joseph Wright, samcarter
+% Copyright 2022-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty b/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
index 5aa681f16a..1ae6917b8d 100644
--- a/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
@@ -1,7 +1,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010,2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020--2023 by Joseph Wright, samcarter
+% Copyright 2020--2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -86,8 +86,8 @@
{\usebeamertemplate{alerted text end}}{\color{.}}{}\ignorespaces}{\ifhmode\unskip\fi\end{altenv}}
\newenvironment<>{structureenv}{\begin{altenv}#1%
- {\usebeamercolor[fg]{structure}\usebeamerfont{structure}\usebeamertemplate{structure text begin}}
- {\usebeamertemplate{structure text end}}{\color{.}}{}\ignorespaces}{\ifhmode\unskip\fi\end{altenv}}
+ {\usebeamercolor[fg]{structure}\usebeamerfont{structure}\usebeamertemplate{structure begin}}
+ {\usebeamertemplate{structure end}}{\color{.}}{}\ignorespaces}{\ifhmode\unskip\fi\end{altenv}}
\newcommand<>{\alert}[1]{\begin{alertenv}#2\relax#1\end{alertenv}}
\newcommand<>{\structure}[1]{\begin{structureenv}#2\relax#1\end{structureenv}}
diff --git a/macros/latex/contrib/beamer/base/beamerbasemodes.sty b/macros/latex/contrib/beamer/base/beamerbasemodes.sty
index a3895f0fa1..0c10a31fa7 100644
--- a/macros/latex/contrib/beamer/base/beamerbasemodes.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasemodes.sty
@@ -3,7 +3,7 @@
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasenavigation.sty b/macros/latex/contrib/beamer/base/beamerbasenavigation.sty
index 0ba8359d58..708b4ecf69 100644
--- a/macros/latex/contrib/beamer/base/beamerbasenavigation.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasenavigation.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2022 by Joseph Wright, samcarter
+% Copyright 2022-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasenavigationsymbols.tex b/macros/latex/contrib/beamer/base/beamerbasenavigationsymbols.tex
index b2edab5727..5107bf6322 100644
--- a/macros/latex/contrib/beamer/base/beamerbasenavigationsymbols.tex
+++ b/macros/latex/contrib/beamer/base/beamerbasenavigationsymbols.tex
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2022 by Joseph Wright, samcarter
+% Copyright 2022-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasenotes.sty b/macros/latex/contrib/beamer/base/beamerbasenotes.sty
index 40becf251d..a3265adf4b 100644
--- a/macros/latex/contrib/beamer/base/beamerbasenotes.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasenotes.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbaseoverlay.sty b/macros/latex/contrib/beamer/base/beamerbaseoverlay.sty
index b1e89005ce..76f1acaac5 100644
--- a/macros/latex/contrib/beamer/base/beamerbaseoverlay.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaseoverlay.sty
@@ -1,7 +1,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010--2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2022 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -653,10 +653,10 @@
% Insert area
%
\newenvironment{overlayarea}[2]{%
- \beamer@animht=#1\relax
- \beamer@animwd=#2\relax
- \setbox\beamer@areabox=\vbox to\beamer@animwd\bgroup
- \strut\begin{minipage}[t]{\beamer@animht}%
+ \beamer@animwd=#1\relax
+ \beamer@animht=#2\relax
+ \setbox\beamer@areabox=\vbox to\beamer@animht\bgroup
+ \strut\begin{minipage}[t]{\beamer@animwd}%
% Make the minipage behave like the main part of the slide
\normalfont
\raggedright
@@ -664,8 +664,8 @@
{%
\end{minipage}\endgraf\vfil
\egroup
- \wd\beamer@areabox=\beamer@animht
- \ht\beamer@areabox=\beamer@animwd
+ \wd\beamer@areabox=\beamer@animwd
+ \ht\beamer@areabox=\beamer@animht
\dp\beamer@areabox=0pt %
\box\beamer@areabox
}
diff --git a/macros/latex/contrib/beamer/base/beamerbasesection.sty b/macros/latex/contrib/beamer/base/beamerbasesection.sty
index 7e6167051d..a25986bcff 100644
--- a/macros/latex/contrib/beamer/base/beamerbasesection.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasesection.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasetoc.sty b/macros/latex/contrib/beamer/base/beamerbasetoc.sty
index 2263b66f25..5994ae8dc5 100644
--- a/macros/latex/contrib/beamer/base/beamerbasetoc.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasetoc.sty
@@ -2,7 +2,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty b/macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty
index d3796b0f02..10a881c465 100644
--- a/macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasetwoscreens.sty
@@ -1,7 +1,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2017 by Joseph Wright
-% Copyright 2020 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty b/macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty
index d2e868c577..3344ca9944 100644
--- a/macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty
+++ b/macros/latex/contrib/beamer/base/themes/color/beamercolorthemedefault.sty
@@ -1,7 +1,7 @@
% Copyright 2007 by Till Tantau
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017--2018 by Louis Stuart, Joseph Wright
-% Copyright 2022 by Joseph Wright, samcarter
+% Copyright 2022-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty b/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty
index b2cf119c87..aaca567400 100644
--- a/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty
+++ b/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemedefault.sty
@@ -1,7 +1,7 @@
% Copyright 2007 by Till Tantau
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021,2023 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty b/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty
index 41ef33c53b..0f756e97f5 100644
--- a/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty
+++ b/macros/latex/contrib/beamer/base/themes/inner/beamerinnerthemeinmargin.sty
@@ -1,6 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2020,2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty
index 5df57f1130..e88a71fa27 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemedefault.sty
@@ -1,7 +1,7 @@
% Copyright 2007 by Till Tantau
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2019--2022 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty
index baa4d3da7d..5a1d41d2b5 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeinfolines.sty
@@ -1,7 +1,7 @@
% Copyright 2007 by Till Tantau
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021,2023 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty
index 0ff584812e..684e3dbc51 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemeshadow.sty
@@ -1,6 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2019,2020,2022 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty
index dff5a8b4ef..76bde65a4b 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesidebar.sty
@@ -1,7 +1,7 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021,2022 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty
index edc656553b..802867b48c 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothbars.sty
@@ -1,6 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2019,2021,2023 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty
index cf00c87712..fb924dd26e 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesmoothtree.sty
@@ -1,6 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2019,2021 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
index 765cb828a6..20940b7584 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
@@ -1,5 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
+% Copyright 2023-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -28,12 +29,14 @@
\defbeamertemplate*{headline}{split theme}
{%
\leavevmode%
+ {\usebeamerfont{section in head/foot}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{section in head/foot}%
\insertsectionnavigationhorizontal{.5\paperwidth}{\hskip0pt plus1filll}{}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex]{subsection in head/foot}%
+ \usebeamerfont{subsection in head/foot}%
\insertsubsectionnavigationhorizontal{.5\paperwidth}{}{\hskip0pt plus1filll}%
- \end{beamercolorbox}%
+ \end{beamercolorbox}}%
}
\else
@@ -41,6 +44,7 @@
\defbeamertemplate*{headline}{split theme}
{%
\leavevmode%
+ {\usebeamerfont{section in head/foot}%
\@tempdimb=2.4375ex%
\ifnum\beamer@subsectionmax<\beamer@sectionmax%
\multiply\@tempdimb by\beamer@sectionmax%
@@ -50,12 +54,13 @@
\ifdim\@tempdimb>0pt%
\advance\@tempdimb by 1.825ex%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{section in head/foot}%
- \vbox to\@tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
+ \vbox to\@tempdimb{\vfil\usebeamerfont{section in head/foot}\insertsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\@tempdimb]{subsection in head/foot}%
- \vbox to\@tempdimb{\vfil\insertsubsectionnavigation{.5\paperwidth}\vfil}%
+ \vbox to\@tempdimb{\vfil\usebeamerfont{subsection in head/foot}\insertsubsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
\fi%
+ }%
}
\fi
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty
index cc0ab51000..67e233d3ef 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty
@@ -1,5 +1,6 @@
% Copyright 2007 by Till Tantau
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
+% Copyright 2023-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -20,13 +21,14 @@
{%
\begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{upper separation line head}
\end{beamercolorbox}
+ {\usebeamerfont{title in head/foot}%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}
- \usebeamerfont{title in head/foot}\insertshorttitle
- \end{beamercolorbox}
+ \insertshorttitle
+ \end{beamercolorbox}}
+ {\usebeamerfont{section in head/foot}%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{section in head/foot}
- \usebeamerfont{section in head/foot}%
\ifbeamer@tree@showhooks
\setbox\beamer@tempbox=\hbox{\insertsectionhead}%
\ifdim\wd\beamer@tempbox>1pt%
@@ -37,10 +39,10 @@
\hskip6pt%
\fi%
\insertsectionhead
- \end{beamercolorbox}
+ \end{beamercolorbox}}
+ {\usebeamerfont{subsection in head/foot}%
\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
leftskip=.3cm,rightskip=.3cm plus1fil]{subsection in head/foot}
- \usebeamerfont{subsection in head/foot}%
\ifbeamer@tree@showhooks
\setbox\beamer@tempbox=\hbox{\insertsubsectionhead}%
\ifdim\wd\beamer@tempbox>1pt%
@@ -51,7 +53,7 @@
\hskip12pt%
\fi%
\insertsubsectionhead
- \end{beamercolorbox}
+ \end{beamercolorbox}}
\begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{lower separation line head}
\end{beamercolorbox}
}
diff --git a/macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty b/macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty
index 836d8b3aad..a6a3da25e6 100644
--- a/macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty
+++ b/macros/latex/contrib/beamer/base/themes/theme/beamerthemeSingapore.sty
@@ -1,5 +1,5 @@
% Copyright 2007 by Till Tantau
-% Copyright 2023 by Joseph Wright, samcarter
+% Copyright 2023-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf b/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
index 570da16429..a5ea91e9c6 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
index 4321ccb202..8e4ef61204 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
index 0b4caa9dfa..a426bc70a0 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerug-animations.tex b/macros/latex/contrib/beamer/doc/beamerug-animations.tex
index 7c2573a207..0f5a560ed9 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-animations.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-animations.tex
@@ -4,7 +4,7 @@
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2019--2021 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-color.tex b/macros/latex/contrib/beamer/doc/beamerug-color.tex
index 98db7ab323..037239cc5a 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-color.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-color.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2020 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex b/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
index 2283ef5fef..7a3cf2c5ae 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
@@ -4,7 +4,7 @@
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-elements.tex b/macros/latex/contrib/beamer/doc/beamerug-elements.tex
index 1ac0f0f19a..62bb0636ce 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-elements.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-elements.tex
@@ -3,7 +3,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2014,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-fonts.tex b/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
index 2e8a9fc055..087ff9a310 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2021,2023 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-frames.tex b/macros/latex/contrib/beamer/doc/beamerug-frames.tex
index 23d3bbb32c..34b206e8df 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-frames.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-frames.tex
@@ -4,7 +4,7 @@
% Copyright 2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2021-2023 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex b/macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex
index b932184e56..eff5591601 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-globalstructure.tex
@@ -3,7 +3,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021,2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-guidelines.tex b/macros/latex/contrib/beamer/doc/beamerug-guidelines.tex
index 9d04aa43ab..fa8f66c258 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-guidelines.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-guidelines.tex
@@ -3,7 +3,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-installation.tex b/macros/latex/contrib/beamer/doc/beamerug-installation.tex
index 914d15688a..71fa2b41f9 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-installation.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-installation.tex
@@ -3,7 +3,7 @@
% Copyright 2010,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-interaction.tex b/macros/latex/contrib/beamer/doc/beamerug-interaction.tex
index 1cab0cbd57..8fbdda940d 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-interaction.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-interaction.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-introduction.tex b/macros/latex/contrib/beamer/doc/beamerug-introduction.tex
index bba0f4329b..feae40d9cd 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-introduction.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-introduction.tex
@@ -4,7 +4,7 @@
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2018 by Louis Stuart, Joseph Wright
-% Copyright 2020,2021,2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex b/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
index 71b73f653a..577c17dc16 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
@@ -4,7 +4,7 @@
% Copyright 2012--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2019,2021-2023 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex b/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
index 8e688f9622..2ecd14c5ac 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
@@ -4,7 +4,7 @@
% Copyright 2012,2014,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2019,2021 by Joseph Wright, samcarter
+% Copyright 2019-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -168,7 +168,7 @@ The following workflow steps are optional, but they can simplify the creation of
\begin{itemize}
\item
- In the main file |main.tex|, delete the first line, which sets the document class.
+ In the main file |main.tex|, delete the first line, which sets the document class. In case the article version is used as a starting point, also remove |\usepackage{beamerarticle}|.
\item
Create a file named, say, |main.beamer.tex| with the following content:
diff --git a/macros/latex/contrib/beamer/doc/beamerug-notes.tex b/macros/latex/contrib/beamer/doc/beamerug-notes.tex
index 00c20b5f7e..3316b50835 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-notes.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-notes.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-overlays.tex b/macros/latex/contrib/beamer/doc/beamerug-overlays.tex
index d65a68eba0..3b2a012cc9 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-overlays.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-overlays.tex
@@ -3,7 +3,7 @@
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2011--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2022,2023 by Joseph Wright, samcarter
+% Copyright 2022-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-solutions.tex b/macros/latex/contrib/beamer/doc/beamerug-solutions.tex
index 199583282b..b0436585dc 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-solutions.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-solutions.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-tutorial.tex b/macros/latex/contrib/beamer/doc/beamerug-tutorial.tex
index 55413b9685..5a9a87b020 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-tutorial.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-tutorial.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010,2011,2013,2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2018 by Louis Stuart, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex b/macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex
index f886517e43..19b889a204 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-twoscreens.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2020 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beamerug-workflow.tex b/macros/latex/contrib/beamer/doc/beamerug-workflow.tex
index b20a22a368..29001a3fb6 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-workflow.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-workflow.tex
@@ -2,7 +2,7 @@
% Copyright 2003--2007 by Till Tantau
% Copyright 2010 by Vedran Mileti\'c
% Copyright 2011--2013,2015 by Vedran Mileti\'c, Joseph Wright
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/beameruserguide.pdf b/macros/latex/contrib/beamer/doc/beameruserguide.pdf
index f6810908fa..0a70f5903c 100644
--- a/macros/latex/contrib/beamer/doc/beameruserguide.pdf
+++ b/macros/latex/contrib/beamer/doc/beameruserguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beameruserguide.tex b/macros/latex/contrib/beamer/doc/beameruserguide.tex
index 79b6c2008b..bbd05b38e7 100644
--- a/macros/latex/contrib/beamer/doc/beameruserguide.tex
+++ b/macros/latex/contrib/beamer/doc/beameruserguide.tex
@@ -3,7 +3,7 @@
% Copyright 2011--2015 by Vedran Mileti\'c, Joseph Wright
% Copyright 2016 by Joseph Wright
% Copyright 2017,2018 by Louis Stuart, Joseph Wright
-% Copyright 2020--2023 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
@@ -14,7 +14,7 @@
\documentclass{ltxdoc}
-\def\beamerugversion{3.70}
+\def\beamerugversion{3.71}
\def\beamerugpgfversion{3.1.7}
\def\beamerugxcolorversion{2.00}
@@ -26,7 +26,7 @@
\usepackage{pifont}
\usepackage{makeidx}
\usepackage{pgf,xcolor}
-\AddToHook{package/hyperref/after}{\hypersetup{pdfborder={0 0 0},bookmarksnumbered}}
+\usepackage[pdfborder={0 0 0},bookmarksnumbered]{hyperref}
\usepackage[left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry}
\usepackage{translator}
\usepackage{tikz}
diff --git a/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex b/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex
index 0c1c4c317e..3606068256 100644
--- a/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex
+++ b/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-foils.tex
@@ -1,5 +1,5 @@
% Copyright 2007 by Till Tantau
-% Copyright 2021 by Joseph Wright, samcarter
+% Copyright 2021-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex b/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex
index a386b4781b..f1844f86f7 100644
--- a/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex
+++ b/macros/latex/contrib/beamer/doc/emulation-examples/beamerexample-prosper.tex
@@ -1,5 +1,5 @@
% Copyright 2007 by Till Tantau
-% Copyright 2020,2021 by Joseph Wright, samcarter
+% Copyright 2020-2024 by Joseph Wright, samcarter
%
% This file may be distributed and/or modified
%
diff --git a/macros/latex/contrib/codedescribe/README.md b/macros/latex/contrib/codedescribe/README.md
index 2ef3da2514..218cb14202 100644
--- a/macros/latex/contrib/codedescribe/README.md
+++ b/macros/latex/contrib/codedescribe/README.md
@@ -52,7 +52,7 @@ Please do not use the issue page for generic help on how to use the package.
* git: https://github.com/alceu-frigeri/codedescribe
-------------
-Copyright 2023 by Alceu Frigeri
+Copyright 2023-present by Alceu Frigeri
This work may be distributed and/or modified under the
conditions of
@@ -87,7 +87,11 @@ The Current Maintainer of this work is Alceu Frigeri
## Changelog
-* Version 1.2 (this)
+* Version 1.3 (this)
+ - Added \tsresult, a command to just show the result of a stored code (codelisting specific).
+
+
+* Version 1.2
- Added of format key: basicstyle
* Version 1.1
diff --git a/macros/latex/contrib/codedescribe/doc/codedescribe.pdf b/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
index 59e01cf487..45271b09d6 100644
--- a/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
+++ b/macros/latex/contrib/codedescribe/doc/codedescribe.pdf
Binary files differ
diff --git a/macros/latex/contrib/codedescribe/doc/codedescribe.tex b/macros/latex/contrib/codedescribe/doc/codedescribe.tex
index 93d26b249c..94e9dd8ba4 100644
--- a/macros/latex/contrib/codedescribe/doc/codedescribe.tex
+++ b/macros/latex/contrib/codedescribe/doc/codedescribe.tex
@@ -2,7 +2,7 @@
% !TEX ext = --interaction=nonstopmode --enable-etex --enable-write18
% !BIB program = none
%%%==============================================================================
-%% Copyright 2023 by Alceu Frigeri
+%% Copyright 2023-present by Alceu Frigeri
%%
%% This work may be distributed and/or modified under the conditions of
%%
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version 1.1 (2023/05/16)
+%% This is version {1.3} (2023/05/16)
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -67,7 +67,7 @@ This doc regards to \tsobj[pkg]{codedescribe} version \PkgInfo{codedescribe}{ver
\section{codelisting Package}
It requires two packages: \tsobj[pkg]{listings,scontents}, defines an environment: \tsobj[env]{codestore} and
- 2 main commands: \tsobj[code]{\tscode,\tsdemo} and 1 auxiliary command: \tsobj{\setcodekeys}.
+ 3 main commands: \tsobj[code]{\tscode,\tsdemo,\tsresult} and 1 auxiliary command: \tsobj{\setcodekeys}.
\subsection{In Memory Code Storage}
Thanks to \tsobj[pkg]{scontents} (\tsobj[pkg]{expl3} based) it's possible to store \LaTeX~ code snippets in a \tsobj[pkg]{expl3} key.
@@ -96,14 +96,18 @@ All \tsobj[code]{\tscode,\tsdemo} commands create a local group in which the \t
\end{tsremark}
\end{codedescribe}
-\begin{codedescribe}{\tscode*,\tsdemo*}
+\begin{codedescribe}[code,new=2024-01-06]{\tscode*,\tsdemo*,\tsresult*}
\begin{codesyntax}%
\tsmacro{\tscode*}[code-keys]{st-name}
\tsmacro{\tsdemo*}[code-keys]{st-name}
+ \tsmacro{\tsresult*}[code-keys]{st-name}
\end{codesyntax}
\tsmacro{\tscode}{} just typesets \tsobj[meta]{st-name} (the key-name created with \tsobj[env]{stcode}), in verbatim mode with syntax highlight. The non-star version centers it and use just half of the base line. The star version uses the full text width.
\tsmacro{\tsdemo*}{} first typesets \tsobj[meta]{st-name}, as above, then it \emph{executes} said code. The non-start versions place them side-by-side, whilst the star versions places one following the other.
+
+(new) \tsmacro{\tsresult*}{} only \emph{executes} said code. The non-start versions centers it and use just half of the base line, whilst the star versions uses the full text width.
+
\end{codedescribe}
diff --git a/macros/latex/contrib/codedescribe/latex/codedescribe.sty b/macros/latex/contrib/codedescribe/latex/codedescribe.sty
index aa4b61ad5d..05058dc183 100644
--- a/macros/latex/contrib/codedescribe/latex/codedescribe.sty
+++ b/macros/latex/contrib/codedescribe/latex/codedescribe.sty
@@ -1,5 +1,5 @@
%%%==============================================================================
-%% Copyright 2023 by Alceu Frigeri
+%% Copyright 2023-present by Alceu Frigeri
%%
%% This work may be distributed and/or modified under the conditions of
%%
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.2} {2023/11/18}
+%% This is version {1.3} {2024/01/06}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -22,8 +22,8 @@
\ProvidesExplPackage
{codedescribe}
- {2023/11/18}
- {1.2}
+ {2024/01/06}
+ {1.3}
{LaTeX Code Description/Documentation}
%%%%%%%
@@ -36,8 +36,8 @@
{
name .code:n = {codedescribe} ,
prefix .code:n = {codedesc} ,
- date .code:n = {2023/11/18} ,
- version .code:n = {1.2} ,
+ date .code:n = {2024/01/06} ,
+ version .code:n = {1.3} ,
description .code:n = {\LaTeX~Code~Description/Documentation}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
diff --git a/macros/latex/contrib/codedescribe/latex/codelisting.sty b/macros/latex/contrib/codedescribe/latex/codelisting.sty
index b4a939034d..fa54237963 100644
--- a/macros/latex/contrib/codedescribe/latex/codelisting.sty
+++ b/macros/latex/contrib/codedescribe/latex/codelisting.sty
@@ -1,5 +1,5 @@
%%%==============================================================================
-%% Copyright 2023 by Alceu Frigeri
+%% Copyright 2023-present by Alceu Frigeri
%%
%% This work may be distributed and/or modified under the conditions of
%%
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.2} {2023/11/18}
+%% This is version {1.3} {2024/01/06}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/codedescribe
@@ -22,8 +22,8 @@
\ProvidesExplPackage
{codelisting}
- {2023/11/18}
- {1.2}
+ {2024/01/06}
+ {1.3}
{LaTeX Code Listing}
%%%%%%%
@@ -36,8 +36,8 @@
{
name .code:n = {codelisting} ,
prefix .code:n = {codelist} ,
- date .code:n = {2023/11/18} ,
- version .code:n = {1.2} ,
+ date .code:n = {2024/01/06} ,
+ version .code:n = {1.3} ,
description .code:n = {\LaTeX~Code~Listing}
}
\cs_if_exist:NF \__codedesc_pkg_info:nn
@@ -689,6 +689,52 @@
\cs_new_eq:NN \tsdemo \typesetdemo
+
+
+\NewDocumentCommand{\typesetresult}{sO{}mO{1ex}}
+ {
+ \__codedesc_set_textcolwidth:
+ \group_begin:
+ \par\setlength\parindent{0pt}
+ \bool_if:nTF {#1}
+ { % full width
+ \dim_set:Nn \l__codedesc_width_dim {\l__codedesc_textcolwidth_dim}
+ \tl_set:Nn \l__codedesc_rule_in_tl {\__codedesc_rule:n {\l__codelist_ruleheight_tl}}
+ \dim_set:Nn \l__codedesc_offset_dim {0pt}
+ }
+ { % half width
+ \dim_set:Nn \l__codedesc_width_dim {0.5\l__codedesc_textcolwidth_dim}
+ \tl_set:Nn \l__codedesc_rule_in_tl {\__codedesc_rule:n {\l__codelist_ruleheight_tl}}
+ \dim_set:Nn \l__codedesc_offset_dim {0.5\l__codedesc_width_dim}
+ }
+
+ \vcoffin_set:Nnn \__codelist_demo_label_coffin {\l__codedesc_width_dim}
+ {
+ \raggedright
+ \l__codelist_resultprefix_tl
+ }
+ \vcoffin_set:Nnn \__codelist_demo_coffin {\l__codedesc_width_dim}
+ {
+ \l__codedesc_rule_in_tl
+ \group_begin:\vspace*{0.5\baselineskip}%\vspace*{-1ex}
+ \setlength\parindent{\l__codelist_demo_parindent_dim}
+ \getstored{#3}%\vspace*{-1ex}
+ \group_end:
+ \l__codedesc_rule_in_tl
+ }
+
+ \coffin_join:NnnNnnnn
+ \__codelist_demo_label_coffin {l}{b}
+ \__codelist_demo_coffin {l}{t}
+ {0pt}{-1ex}
+ \coffin_typeset:Nnnnn \__codelist_demo_label_coffin {l}{t}{\l__codedesc_offset_dim}{0pt}
+ \vspace*{\baselineskip}
+ \par
+ \group_end:
+ }
+
+\cs_new_eq:NN \tsresult \typesetresult
+
%%%
%%% Using scontents package !!!!
%%%
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 4dd844a0d3..a0727bfa7d 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -15,7 +15,7 @@
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2024/01/05}{2024B}
+\ProvidesExplClass{easybook}{2024/01/06}{2024C}
{Easily typesetting Chinese theses or books}
\bool_set_false:N \l__eb_compile_draft_bool
@@ -28,29 +28,29 @@
\keys_define:nn { easybook }
{
- newline .code:n = \bool_set_true:N \l__eb_title_newline_bool,
- scheme .code:n = \eb_put_ctexbook:n { scheme = #1 },
- enmode .meta:n = { newline,scheme = plain },
- font .choices:nn =
+ newline .code:n = \bool_set_true:N \l__eb_title_newline_bool,
+ scheme .code:n = \eb_put_ctexbook:n { scheme = #1 },
+ enmode .meta:n = { newline,scheme = plain },
+ font .choices:nn =
{ noto,times,times*,ebgaramond,libertine,palatino,auto }
{ \tl_set:Nn \l__eb_font_value_tl {#1} },
- font .value_required:n = true,
- font .initial:n = auto,
- cjkfont .code:n = \eb_put_ctexbook:n { fontset = #1 },
- mathfont .tl_set:N = \l__eb_mathfont_value_tl,
- mathfont .initial:n = times,
- paper .code:n = \PassOptionsToPackage{#1}{geometry},
+ font .value_required:n = true,
+ font .initial:n = auto,
+ cjkfont .code:n = \eb_put_ctexbook:n { fontset = #1 },
+ mathfont .tl_set:N = \l__eb_mathfont_value_tl,
+ mathfont .initial:n = times,
+ paper .code:n = \PassOptionsToPackage{#1}{geometry},
class .choice:,
- class .value_required:n = true,
- class/book .code:n = { },
- class/article .code:n =
+ class .value_required:n = true,
+ class/book .code:n = { },
+ class/article .code:n =
{
\bool_set_false:N \l__eb_class_mode_book_bool
\eb_put_ctexbook:n { oneside }
},
- config .clist_gset:N = \g__eb_config_file_clist,
- floatpage .bool_set:N = \l__eb_float_page_bool,
- theorem .bool_set:N = \l__eb_theorem_support_bool,
+ config .clist_gset:N = \g__eb_config_file_clist,
+ floatpage .bool_set:N = \l__eb_float_page_bool,
+ theorem .bool_set:N = \l__eb_theorem_support_bool,
unknown .code:n = \clist_gput_right:NV \g__eb_doc_options_clist \CurrentOption
}
@@ -237,7 +237,6 @@
tocdepth = \bool_if:NTF \l__eb_class_mode_book_bool { 1 } { 2 },
part =
{
- pagestyle = empty,
format = \color{ctex@frame}\sffamily\Huge,
nameformat = { },
titleformat = { },
@@ -250,7 +249,6 @@
},
chapter =
{
- % pagestyle = fancy,
format =
{
\color{ctex@frame}\sffamily\LARGE
@@ -304,7 +302,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e,etoolbox}
-\ProvidesExplPackage{easybase}{2024/01/04}{2024A}
+\ProvidesExplPackage{easybase}{2024/01/06}{2024C}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2330,7 +2328,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/05}{2024B}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/01/06}{2024C}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 953c8df90c..a163c9956c 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index e3c4306e2c..ed546c4946 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024B,
- date = 2024/01/05,
+ version = v2024C,
+ date = 2024/01/06,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -634,13 +634,13 @@
模块 \module*{hdrset} 设置的命令由 \pkg*{fancyhdr} 宏包提供支持。标题标记由标签和标题组成,选项中参数 \code{\#1} 代表当前章、节或小节的标题。在 \cls*{book} 模式时使用标题标记选项 \option{chap-mark} 和 \option{sec-mark},在 \cls*{article} 模式时使用 \option{sec-mark} 和 \option{subsec-mark} 选项,这与标准文档类的行为一致。重新设置标题标记选项时标记大小写选项 \option{uppercase} 会失效。
\begin{options}
\keyval{chap-mark}{标题标记}
- 标题标记命令 \cs*{chaptermark} 的内容,包括了标签选项 \option{chap-label} 的内容。
+ \code{chapter} 级别标题标记的内容,包含了标签选项 \option{chap-label} 和章标题 \code{\#1}。
\keyval{sec-mark}{标题标记}
- 标题标记命令 \cs*{sectionmark} 的内容,包括了标签选项 \option{sec-label} 的内容。
+ \code{section} 级别标题标记的内容,包含了标签选项 \option{sec-label} 和节标题 \code{\#1}。
\keyval{subsec-mark}{标题标记}
- 标题标记命令 \cs*{subsectionmark} 的内容,包括了标签选项 \option{subsec-label} 的内容。
+ \code{subsection} 级别标题标记的内容,包含了标签选项 \option{subsec-label} 和小节标题 \code{\#1}。
\kvsplit-{chap-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{1em}}
- 标题标记命令 \cs*{chaptermark} 内容的标签(标题有编号时)。比标题标记选项更常用,可选参数是对应章编号计数器值的输出命令,必选参数是编号与标题之间的距离命令:
+ \code{chapter} 级别标题标记的标签(标题有编号时)。比标题标记选项更常用,可选参数是对应章编号计数器值的输出命令,必选参数是编号与标题之间的距离命令:
\begin{ctexexam}
\ebhdrset
{
@@ -649,9 +649,9 @@
}
\end{ctexexam}
\kvsplit-{sec-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
- 标题标记命令 \cs*{sectionmark} 内容的标签,用法与 \option{chap-label} 类似。
+ \code{section} 级别标题标记的标签,用法与 \option{chap-label} 类似。
\kvsplit-{subsec-label}{\oarg{编号输出命令}\marg{距离命令}}\Default{\cs*{hspace}\Marg{0.5em}}
- 标题标记命令内容 \cs*{subsectionmark} 的标签,用法与 \option{chap-label} 类似。
+ \code{subsection} 级别标题标记的标签,用法与 \option{chap-label} 类似。
\keyval{headrule}{横线命令}
绘制页眉横线的选项,可以使用 \cs*{hrule} 或下述 \cs{markrule} 等画线命令来绘制横线。
\keyval{footrule}{横线命令}
@@ -659,15 +659,15 @@
\keyval{footnoterule}{横线命令}
绘制脚注横线的选项,可以使用 \cs*{hrule} 或下述 \cs{markrule} 等画线命令来绘制横线。
\keyval{headrulewd}{刚性长度}\Default{0.5pt}
- 页眉横线默认的粗细。
+ 页眉横线默认的粗细,使用 \option{headrule} 选项绘制横线后失效。
\keyval{footnoterulewd}{刚性长度}\Default{0.5pt}
- 脚注横线默认的粗细。
+ 脚注横线默认的粗细,使用 \option{footnoterule} 选项绘制横线后失效。
\end{options}
\begin{commands}\noitemsep
\command{fancyhead}[\oarg{位置}\marg{内容}]\default{}
\command{fancyfoot}[\oarg{位置}\marg{内容}]
- 使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时为了显示正确的页面,在导言区时需要在页面边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
+ 为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
\end{commands}
\begin{commands}\noitemsep
@@ -1336,7 +1336,7 @@
\shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。}
\shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。}
\shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs*{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。}
- \shortversion{v = 2024B,date = 2024/01/05,changes = 核对依赖宏包的更新改动,优化使用手册的内容细节。}
+ \shortversion{v = 2024C,date = 2024/01/06,changes = 核对依赖宏包的更新改动,优化使用手册的内容细节。}
\end{changelog}
\nocite{*}
diff --git a/macros/latex/contrib/overpic/overpic.dtx b/macros/latex/contrib/overpic/overpic.dtx
index 4961b179eb..2ac63e69b2 100644
--- a/macros/latex/contrib/overpic/overpic.dtx
+++ b/macros/latex/contrib/overpic/overpic.dtx
@@ -19,7 +19,7 @@
%
%<*package>
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{overpic}[2024/01/04 2.0 picture overlays (RN)]
+\ProvidesPackage{overpic}[2024/01/06 2.1 picture overlays (RN)]
%</package>
%
%<*driver>
@@ -58,7 +58,7 @@
%</driver>
% \fi
%
-% \CheckSum{178}
+% \CheckSum{199}
%
% \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
@@ -289,7 +289,7 @@
}
% \end{macrocode}
% \end{macro}
-% \changes{2.0}{2024/01/01}{Use a separate namespace for the keys to avoid
+% \changes{2.0}{2024/01/04}{Use a separate namespace for the keys to avoid
% unfavorable influence on \cmd\includegraphics.}
% \begin{macro}{\OVP@calc@rel}
% Some calculations in rel mode. The bigger value of width or height
@@ -323,6 +323,25 @@
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphicx}}
\ExecuteOptions{percent}
\ProcessOptions
+\AtBeginDocument{%
+ \@ifpackageloaded{xkeyval}{%
+ \def\OVP@setkeys@relaxed{%
+ \let\OVP@setkeys\setkeys
+ \def\setkeys{\OVP@setkeys*}
+ }
+ \def\OVP@setkeys@strict{%
+ \let\setkeys\OVP@setkeys
+ }
+ }{%
+ \def\OVP@setkeys@relaxed{%
+ \let\OVP@KV@errx\KV@errx
+ \let\KV@errx\@gobble
+ }
+ \def\OVP@setkeys@strict{%
+ \let\KV@errx\OVP@KV@errx
+ }
+ }
+}
\newsavebox\OVP@box
% \end{macrocode}
%
@@ -331,20 +350,20 @@
% \changes{1.2}{2018/09/02}{Wrong place of \cmd\setkeys
% (bug report from 'aminophen')}
% \changes{2.0}{2024/01/04}{Better key handling}
+% \changes{2.1}{2024/01/06}{Consideration of xkeyval's \cmd\setkeys}
% \begin{macrocode}
\newenvironment{overpic}[2][]{%
- \let\OVP@temp=\KV@errx
% \end{macrocode}
% Silently ignore unknown keys.
% \begin{macrocode}
- \let\KV@errx\@gobble
+ \OVP@setkeys@relaxed
\sbox\OVP@box{\includegraphics[#1]{#2}}%
\count@=\z@ \OVP@gridfalse
\setkeys{OVP}{#1}%
% \end{macrocode}
-% Reset to previous state.
+% Stop ignoring unknown keys.
% \begin{macrocode}
- \let\KV@errx\OVP@temp
+ \OVP@setkeys@strict
\OVP@picture{#1}%
}{\endpicture}
% \end{macrocode}
diff --git a/macros/latex/contrib/overpic/overpic.pdf b/macros/latex/contrib/overpic/overpic.pdf
index 0fca353cfc..6d9fd2c03e 100644
--- a/macros/latex/contrib/overpic/overpic.pdf
+++ b/macros/latex/contrib/overpic/overpic.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index b13797000f..62ee043d52 100644
--- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
index 85f4d39112..b75161ffcc 100644
--- a/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCAutonomie.tex
@@ -4,7 +4,7 @@
\newcommand\Autonomie[3][]{%
\useKVdefault[Autonomie]%
\setKV[Autonomie]{#1}%
- \setsepchar[*]{§*/}%
+ \setsepchar[*]{§*/}\reademptyitems%
\readlist*\ListeAutoQ{#2}%
% \setsepchar{§}
% \readlist*\ListeAutoR{#3}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCAN.tex b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
index 5334568dff..acb5e28388 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCAN.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCAN.tex
@@ -81,7 +81,6 @@
\readlist*\ListePetitsObjetsCAN{bonbons,billes,biscuits,gommes,clous,vis}
\readlist*\ListeFruitsCAN{pommes,poires,abricots,cerises,fraises,framboises,noix,pêches,nectarines,myrtilles,oranges,mandarines}
\readlist*\ListeSommetsCAN{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}
-
\newcommand\ExtraitPetitsObjets[1]{%
\xdef\CANSGFoo{}%
\foreachitem\compteur\in\ListePetitsObjetsCAN{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
index eb1a55e768..81464aa744 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
@@ -113,7 +113,12 @@
\mplibnumbersystem{double}%
\mplibforcehmode%
\begin{mplibcode}%
+ defaultcolormodel := \useKV[ClesCalculatrice]{ModeleCouleur};
input PfCCalculatrice;
+ if defaultcolormodel=7:
+ cmykcolor coulprint;
+ coulprint=0.2(0,0,0,1);
+ fi;
LargeurEcran:=\useKV[ClesCalculatrice]{Largeur};
boolean Calcul;
Calcul=\useKV[ClesCalculatrice]{Calcul};
@@ -128,7 +133,7 @@
\fi%
}%
-\setKVdefault[ClesCalculatrice]{Ecran=false,NbLignes=0,BL=0.775,Largeur=120,Calcul=false,Impression=false}%
+\setKVdefault[ClesCalculatrice]{ModeleCouleur=5,Ecran=false,NbLignes=0,BL=0.775,Largeur=120,Calcul=false,Impression=false}%
\newcommand\Calculatrice[2][]{%
\setstackgap{L}{\useKV[ClesCalculatrice]{BL}\baselineskip}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
index 60c424bdff..929b1fb28e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
@@ -1,7 +1,7 @@
%%%
% Calisson
%%%
-\setKVdefault[Calisson]{Taille=3,Solution=false,Rayon=5cm,Couleur=red}%
+\setKVdefault[Calisson]{Taille=3,Solution=false,Rayon=5cm,Couleur=red,CouleurTrace=black}%
\def\UpdatetoksCalissong#1\nil{\addtotok\tokcalissonlistetracesg{,"#1"}}%
\def\UpdatetoksCalissongDepart#1\nil{\addtotok\tokcalissonlistetracesg{"#1"}}%
@@ -143,8 +143,10 @@
boolean Solution;
Solution:=\useKV[Calisson]{Solution};
%
- color CouleurSolution;
+ color CouleurSolution,CouleurTrace;
CouleurSolution:=\useKV[Calisson]{Couleur};
+ CouleurTrace:=\useKV[Calisson]{CouleurTrace};
+ %
%
Rayon=\useKV[Calisson]{Rayon};
Taille=\useKV[Calisson]{Taille};
@@ -219,12 +221,14 @@
Depla:=Hor;
%
vardef LesTracesg(text t)=
+ drawoptions(withcolor CouleurTrace);
trace polygone(A,B,C,D,E,F) withpen pencircle scaled 2;
for k=1 upto 2*Taille-1:
trace (point(k*length Gauche/(2*Taille)) of Gauche)--(point(k*length Droit/(2*Taille)) of Droit) dashed evenly;
trace (point(k*length Haut/(2*Taille)) of Haut)--(point(k*length Bas/(2*Taille)) of Bas) dashed evenly;
trace (point(k*length TopGauche/(2*Taille)) of TopGauche)--(point(k*length BasDroit/(2*Taille)) of BasDroit) dashed evenly;
endfor;
+ drawoptions(withcolor CouleurTrace);
n:=0;
for p_=t:
n:=n+1;
@@ -236,7 +240,7 @@
fi;
if (Retiens="0") or (Retiens="f"):
elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurTrace;
elseif Retiens="s":
if Solution:
trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
@@ -263,7 +267,7 @@
% fill ((fullcircle scaled 3mm) shifted M[n]);
if (Retiens="0") or (Retiens="f"):
elseif Retiens="t":
- trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;
+ trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurTrace;
elseif Retiens="s":
if Solution:
trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2 withcolor CouleurSolution;
diff --git a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
index a2bccc2321..53ffa097d8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCartographie.tex
@@ -1,7 +1,7 @@
%%%
% Cartographie
%%%
-\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2}
+\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur}
\defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}}
\defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}}
\defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}}
@@ -135,6 +135,7 @@
% \mplibforcehmode
\begin{mplibcode}
input PfCMonde;
+ defaultcolormodel:=\useKV[Cartographie]{ModeleCouleur};
string arborescence;
arborescence:=\useKV[Cartographie]{Arborescence};
LargeurCadre=\useKV[Cartographie]{Largeur};
@@ -147,6 +148,19 @@
Impression=\useKV[Cartographie]{Impression};
VillesSup=\useKV[Cartographie]{VillesSup};
Codes=\useKV[Cartographie]{Codes};
+ if defaultcolormodel=7:
+ cmykcolor couleurfond,white,payscolor,couleurfleuve;
+ couleurfond=\useKV[Cartographie]{CouleurFond};
+ white=(0,0,0,1);
+ payscolor=white;
+ couleurfleuve=white;
+ if Impression:
+ noncolore:=true;
+ payscolor:=0.15white;
+ couleurfond:=(0,0,0,0);
+ couleurfleuve:=couleurfond;
+ fi;
+ else:
couleurfond:=\useKV[Cartographie]{CouleurFond};
if Impression:
noncolore:=true;
@@ -154,6 +168,7 @@
couleurfond:=white;
couleurfleuve:=couleurfond;
fi;
+ fi;
capitales:=\useKV[Cartographie]{Capitales};
All:=\useKV[Cartographie]{All};
Europe:=\useKV[Cartographie]{Europe};
diff --git a/macros/latex/contrib/profcollege/latex/PfCCible.tex b/macros/latex/contrib/profcollege/latex/PfCCible.tex
index f59ec3d593..d29fdccf9d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCible.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCible.tex
@@ -13,10 +13,10 @@
\toklisteciblea{}%
\xdef\PfCNombreZone{0}%
\ifboolKV[Cible]{Flechettes}{}{%
- \setsepchar{,}%
- \readlist*\PfCListeCible{#2}%
- \foreachitem\compteur\in\PfCListeCible{\expandafter\UpdatetoksCibleA\compteur\nil}%
- \xdef\PfCNombreZone{\PfCListeCiblelen}%
+ \setsepchar{,}%
+ \readlist*\PfCListeCible{#2}%
+ \foreachitem\compteur\in\PfCListeCible{\expandafter\UpdatetoksCibleA\compteur\nil}%
+ \xdef\PfCNombreZone{\PfCListeCiblelen}%
}%
\BuildCible{\the\toklisteciblea}%
}%
@@ -127,7 +127,6 @@
\end{mplibcode}
\else
\begin{mpost}[mpsettings={Rayon=\useKV[Cible]{RayonBase};Ecart=\useKV[Cible]{Ecart};boolean Flechettes,Impression;Flechettes=\useKV[Cible]{Flechettes};Impression=\useKV[Cible]{Impression};NombreCercles=\PfCNombreZone;}]
-
vardef affichage(text t)=
pair O;
O=u*(5,5);
@@ -210,7 +209,8 @@
n:=0;
for p_=t:
n:=n+1;
- label(LATEX("\bfseries "&p_),E[n]);
+ % label(LATEX("\noexpand\bfseries "&p_),E[n]);
+ label(LATEX(p_),E[n]);
endfor;
enddef;
diff --git a/macros/latex/contrib/profcollege/latex/PfCConversion.tex b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
new file mode 100644
index 0000000000..670e5ca28f
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
@@ -0,0 +1,99 @@
+\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Complete=40pt}
+\defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}
+\defKV[ClesConversion]{Capa=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Capas}}
+
+\NewDocumentCommand\ChoixUniteD{m}{%
+ \IfStrEqCase{#1}{%
+ {G}{\DeclareSIUnit{\TempoPrefixeD}{\giga}\xdef\ExposantD{9}}%
+ {M}{\DeclareSIUnit{\TempoPrefixeD}{\mega}\xdef\ExposantD{6}}%
+ {t}{\DeclareSIUnit{\TempoPrefixeD}{\tonne}\xdef\ExposantD{6}}%
+ {q}{\DeclareSIUnit{\TempoPrefixeD}{\quintal}\xdef\ExposantD{5}}%
+ {k}{\DeclareSIUnit{\TempoPrefixeD}{\kilo}\xdef\ExposantD{3}}%
+ {h}{\DeclareSIUnit{\TempoPrefixeD}{\hecto}\xdef\ExposantD{2}}%
+ {da}{\DeclareSIUnit{\TempoPrefixeD}{\deca}\xdef\ExposantD{1}}%
+ {u}{\DeclareSIUnit{\TempoPrefixeD}{}\xdef\ExposantD{0}}%
+ {d}{\DeclareSIUnit{\TempoPrefixeD}{\deci}\xdef\ExposantD{-1}}%
+ {c}{\DeclareSIUnit{\TempoPrefixeD}{\centi}\xdef\ExposantD{-2}}%
+ {m}{\DeclareSIUnit{\TempoPrefixeD}{\milli}\xdef\ExposantD{-3}}%
+ {µ}{\DeclareSIUnit{\TempoPrefixeD}{\micro}\xdef\ExposantD{-6}}%
+ {n}{\DeclareSIUnit{\TempoPrefixeD}{\nano}\xdef\ExposantD{-9}}%
+ }%
+}%
+
+\NewDocumentCommand\ChoixUniteA{m}{%
+ \IfStrEqCase{#1}{%
+ {G}{\DeclareSIUnit{\TempoPrefixeA}{\giga}\xdef\ExposantA{9}}%
+ {M}{\DeclareSIUnit{\TempoPrefixeA}{\mega}\xdef\ExposantA{6}}%
+ {t}{\DeclareSIUnit{\TempoPrefixeA}{\tonne}\xdef\ExposantA{6}}%
+ {q}{\DeclareSIUnit{\TempoPrefixeA}{\quintal}\xdef\ExposantA{5}}%
+ {k}{\DeclareSIUnit{\TempoPrefixeA}{\kilo}\xdef\ExposantA{3}}%
+ {h}{\DeclareSIUnit{\TempoPrefixeA}{\hecto}\xdef\ExposantA{2}}%
+ {da}{\DeclareSIUnit{\TempoPrefixeA}{\deca}\xdef\ExposantA{1}}%
+ {u}{\DeclareSIUnit{\TempoPrefixeA}{}\xdef\ExposantA{0}}%
+ {d}{\DeclareSIUnit{\TempoPrefixeA}{\deci}\xdef\ExposantA{-1}}%
+ {c}{\DeclareSIUnit{\TempoPrefixeA}{\centi}\xdef\ExposantA{-2}}%
+ {m}{\DeclareSIUnit{\TempoPrefixeA}{\milli}\xdef\ExposantA{-3}}%
+ {µ}{\DeclareSIUnit{\TempoPrefixeA}{\micro}\xdef\ExposantA{-6}}%
+ {n}{\DeclareSIUnit{\TempoPrefixeA}{\nano}\xdef\ExposantA{-9}}%
+ }%
+}%
+
+\NewDocumentCommand\Convertir{somm}{%
+ \useKVdefault[ClesConversion]%
+ \setKV[ClesConversion]{#2}%
+ \StrBefore{#3}{>}[\PrefixeDepart]
+ \StrBehind{#3}{>}[\PrefixeArrivee]
+ \ChoixUniteD{\PrefixeDepart}%
+ \ChoixUniteA{\PrefixeArrivee}%
+ \ifboolKV[ClesConversion]{Aire}{%
+ \DeclareSIUnit{\TempoAvant}{\square}%
+ \DeclareSIUnit{\TempoBase}{\meter}
+ \xdef\PfCConvExposant{2}
+ }{\ifboolKV[ClesConversion]{Vol}{%
+ \DeclareSIUnit{\TempoAvant}{\cubic}%
+ \DeclareSIUnit{\TempoBase}{\meter}
+ \xdef\PfCConvExposant{3}
+ }{%
+ \DeclareSIUnit{\TempoAvant}{}%
+ \xdef\PfCConvExposant{1}
+ }%
+ }%
+ \ifboolKV[ClesConversion]{Masses}{%
+ \DeclareSIUnit{\TempoBase}{\gram}%
+ }{}%
+ \ifboolKV[ClesConversion]{Longueur}{%
+ \DeclareSIUnit{\TempoBase}{\meter}%
+ }{}%
+ \ifboolKV[ClesConversion]{Capas}{%
+ \DeclareSIUnit{\TempoBase}{\liter}%
+ }{}%
+ \ensuremath{
+ \IfBooleanTF{#1}{%
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \SI{#4}{\TempoAvant\TempoPrefixeD\TempoBase}
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ =
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \PointsSuspension{\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}}~\si{\TempoAvant\TempoPrefixeA\TempoBase}
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ }{%
+ \ifboolKV[ClesConversion]{Sans}{%
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \SI{#4}{\TempoAvant\TempoPrefixeD\TempoBase}
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ =
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \num{\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}}~\pointilles[25pt]
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ }{%
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \SI{#4}{\TempoAvant\TempoPrefixeD\TempoBase}
+ \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ =
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
+ \SI{\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}}{\TempoAvant\TempoPrefixeA\TempoBase}
+ \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
index 29207b0373..27922bdd03 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinerRatio.tex
@@ -1,7 +1,7 @@
%%%
% Lien : ratio
%%%
-\setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15}
+\setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15,ModeleCouleur=5}
\newcommand\MPTest[9][]{%
% #2 : Longueur de la barre unit\'e
@@ -12,7 +12,8 @@
% #7 \`a #9: Couleurs de remplissage
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesRatio]{ModeleCouleur};
vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
pair A,B,C,D;
A=u*(1,1);
@@ -172,7 +173,8 @@
% #7 \`a #9: Couleurs de remplissage
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesRatio]{ModeleCouleur};
vardef RatioTrois(expr long)(text t)=%longueur de la barre / quantit\'e \`a partager / textepart :) / t le ratio
pair A,B,C,D;
A=u*(1,1);
diff --git a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
index db36fa7d34..1e8f371cdf 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDistributivite.tex
@@ -36,7 +36,7 @@
\newcounter{NbCalculDistri}%Pour compter combien de distributivit\'e il
% y a dans un "seul calcul".
-\setcounter{NbCalculDistri}{0}
+\setcounter{NbCalculDistri}{1}
\setKVdefault[ClesDistributivite]{Cours=false,Etape=1,Lettre=x,Lettrea=a,Lettreb=b,Lettrec=c,Lettred=d,Fleches=false,AideMul=false,Reduction=false,AideAdda=false,AideAddb=false,CouleurAide=red,CouleurFH=blue,CouleurFB=red,Somme=false,Difference=false,RAZ=false,Oppose=false,All=false,NomExpression=A,Fin=4,Numerique=false,Remarquable=false,Echange=0,Tuile=false,Vide=false,Reperes=false,Impression=false,Tableau=false}%,AideAdd=false:inutile ?
\defKV[ClesDistributivite]{CouleurReduction=\colorlet{DCReduction}{#1}\setKV[ClesDistributivite]{Reduction}}%
@@ -434,16 +434,18 @@
\setKV[ClesDistributivite]{#1}%On lit les arguments optionnels
\def\LETTRE{\useKV[ClesDistributivite]{Lettre}}%
\ensuremath{%
- % partie du x^2
- \xintifboolexpr{#2==0}{}{\xintifboolexpr{#2==1}{}{\xintifboolexpr{#2==-1}{-}{\num{#2}}}\LETTRE^2}%
- % partie du x
- \xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}\xintifboolexpr{#3==1}{}{\num{#3}}}{%
- \xintifboolexpr{#2==0}{\xintifboolexpr{#3==-1}{-}{\num{#3}}}{\xintifboolexpr{#3==-1}{-}{-\num{\fpeval{abs(#3)}}}}%
- }\LETTRE}%
- % partie du nombre
- \xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{}{+}}{+}\num{#4}}{%
- \xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}}%
- %
+% \xintifboolexpr{\fpeval{#2}==0 'and' \fpeval{#3}==0 'and' \fpeval{#4}==0}{0}{%
+ % partie du x^2
+ \xintifboolexpr{#2==0}{}{\xintifboolexpr{#2==1}{}{\xintifboolexpr{#2==-1}{-}{\num{#2}}}\LETTRE^2}%
+ % partie du x
+ \xintifboolexpr{#3==0}{}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}\xintifboolexpr{#3==1}{}{\num{#3}}}{%
+ \xintifboolexpr{#2==0}{\xintifboolexpr{#3==-1}{-}{\num{#3}}}{\xintifboolexpr{#3==-1}{-}{-\num{\fpeval{abs(#3)}}}}%
+ }\LETTRE}%
+ % partie du nombre
+ \xintifboolexpr{#4==0}{}{\xintifboolexpr{#4>0}{\xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{}{+}}{+}\num{#4}}{%
+ \xintifboolexpr{#2==0}{\xintifboolexpr{#3==0}{\num{#4}}{-\num{\fpeval{abs(#4)}}}}{-\num{\fpeval{abs(#4)}}}}}%
+ %
+% }%
}%
}%
@@ -465,7 +467,7 @@
\ifboolKV[ClesDistributivite]{Cours}{%
\ensuremath{%
\xintifboolexpr{#2==0}{%
- }{\xintifboolexpr{#3==0}{}{(}}\xintifboolexpr{#2==0}{\Tikzmark{}}{\Tikzmark{\useKV[ClesDistributivite]{Lettrea}}}
+ }{\xintifboolexpr{#3==0}{}{(}}\xintifboolexpr{#2==0}{\Tikzmark{}}{\Tikzmark{\useKV[ClesDistributivite]{Lettrea}}}%
\ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}%
\xintifboolexpr{#3==0}{\Tikzmark{}}{\xintifboolexpr{#3>0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#3<0}{-}{}}\Tikzmark{\useKV[ClesDistributivite]{Lettreb}}}%
\ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{)}}{}%
@@ -483,12 +485,12 @@
\xintifboolexpr{\Multi==0}{%
\xintifboolexpr{#4<0}{)}{\xintifboolexpr{#5<0}{)}{}}}{)}%
%
- =
+ =%
%
\xdef\Multi{\fpeval{#2*#4}}%
\xintifboolexpr{\Multi==0}{}{%
\xintifboolexpr{#2<0}{(-}{}\useKV[ClesDistributivite]{Lettrea}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(-}{}\useKV[ClesDistributivite]{Lettrec}\xintifboolexpr{#4<0}{)}{}%
- }
+ }%
\xdef\Multij{\fpeval{#2*#5}}%
\xintifboolexpr{\Multij==0}{}{%
\xintifboolexpr{\Multi==0}{}{+}%
@@ -615,6 +617,7 @@
}{%
% Etape 1
\xintifboolexpr{\useKV[ClesDistributivite]{Etape}==1}{%
+ %cpt=\theNbCalculDistri%
\xintifboolexpr{#2==0}{%
}{\xintifboolexpr{#3==0}{}{(}}\Tikzmark{\Affichage[#1]{0}{#2}{0}}%
\ifboolKV[ClesDistributivite]{AideAdda}{\mathcolor{DCAide}{+(}}{}%
@@ -645,6 +648,7 @@
}{}
% Etape 2
\xintifboolexpr{\useKV[ClesDistributivite]{Etape}==2}{%
+ %cpt=\theNbCalculDistri%
\xdef\Multi{\fpeval{#2*#4}}%
\xintifboolexpr{\Multi==0}{}{%
\xintifboolexpr{#2<0}{(}{}\Affichage[#1]{0}{#2}{0}\xintifboolexpr{#2<0}{)}{}\times\xintifboolexpr{#4<0}{(}{}\Affichage[#1]{0}{#4}{0}\xintifboolexpr{#4<0}{)}{}%
@@ -666,7 +670,9 @@
}{}%
% Etape 3
\xintifboolexpr{\useKV[ClesDistributivite]{Etape}==3}{%
+ %cpt=\theNbCalculDistri%
\stepcounter{NbCalculDistri}%
+ %--cpt=\theNbCalculDistri%
\xdef\Multi{\fpeval{#2*#4}}%
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
@@ -683,9 +689,12 @@
\xintifboolexpr{\Multik==0}{}{\xintifboolexpr{\Multil==0}{\xintifboolexpr{#2==0}{}{+}}{\xintifboolexpr{#2==0}{}{+}}\xintifboolexpr{\Multik<0}{(}{}\Affichage{0}{\Multik}{0}\xintifboolexpr{\Multik<0}{)}{}}%
}%
\xintifboolexpr{\Multil==0}{}{+}\xintifboolexpr{\Multil<0}{(}{}\Affichage{0}{0}{\Multil}\xintifboolexpr{\Multil<0}{)}{}%
+ \ifboolKV[ClesDistributivite]{Somme}{\xdef\SommeA{\fpeval{\SommeA+#2*#4}}\xdef\SommeB{\fpeval{\SommeB+#2*#5+#3*#4}}\xdef\SommeC{\fpeval{\SommeC+#3*#5}}}{}%
+ \ifboolKV[ClesDistributivite]{Difference}{\xdef\SommeA{\fpeval{\SommeA-#2*#4}}\xdef\SommeB{\fpeval{\SommeB-#2*#5-#3*#4}}\xdef\SommeC{\fpeval{\SommeC-#3*#5}}}{}%
}{}%
% Etape 4
\xintifboolexpr{\useKV[ClesDistributivite]{Etape}==4}{%
+ %cpt=\theNbCalculDistri%
\xdef\Multi{\fpeval{#2*#4}}%
\xdef\Multij{\fpeval{#2*#5}}%
\xdef\Multik{\fpeval{#3*#4}}%
@@ -705,7 +714,7 @@
}{%
\xintifboolexpr{\theNbCalculDistri>1}{\xintifboolexpr{\Multi<0}{(\Affichage{\Multi}{0}{0})}{\Affichage{\Multi}{0}{0}}}{\Affichage{\Multi}{0}{0}}%
\xintifboolexpr{\Multim==0}{}{%
- \xintifboolexpr{\Multim>0}{\ifnum\Multi>0\relax{}+\fi\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}%
+ \xintifboolexpr{\Multim>0}{\ifnum\fpeval{abs(\Multi)}>0\relax{}+\fi\Affichage{0}{\Multim}{0}}{-\Affichage{0}{\fpeval{-\Multim}}{0}}%
}%
\xintifboolexpr{\Multil==0}{}{\xintifboolexpr{\Multil<0}{-\Affichage{0}{0}{\fpeval{-\Multil}}}{+\Affichage{0}{0}{\Multil}}}%
}
diff --git a/macros/latex/contrib/profcollege/latex/PfCEquationModeleBarre.tex b/macros/latex/contrib/profcollege/latex/PfCEquationModeleBarre.tex
new file mode 100644
index 0000000000..2ee6dbd678
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCEquationModeleBarre.tex
@@ -0,0 +1,301 @@
+% Licence : Released under the LaTeX Project Public License v1.3c
+% or later, see http://www.latex-project.org/lppl.txtf
+\newtoks\TestEquaMBarreH%
+\newtoks\TestEquaMBarreB%
+
+\def\UpdateToksBarreH#1\nil{\addtotok\TestEquaMBarreH{#1}}%
+\def\UpdateToksBarreB#1\nil{\addtotok\TestEquaMBarreB{#1}}%
+
+\newcommand\EquaBaseMBarre[5][]{%type ax=d ou b=cx
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifnum\fpeval{#2}=0\relax
+ \ifnum\fpeval{#4}=0\relax
+ \textbf{??}%% il manque un paramètre
+ \else
+ \xintifboolexpr{\fpeval{#4}==0}{%
+ \xintifboolexpr{\fpeval{#3}==0}{%
+ L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{\fpeval{#3}}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{\fpeval{#3}==0}{L'équation $0=\num{\fpeval{#4}}\times\useKV[ClesEquation]{Lettre}$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ \TestEquaMBarreB{white}%
+ \TestEquaMBarreH{}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#4}}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{white,#4,"\num{\fpeval{#3}}"}\nil%
+ % % Le tok H est \the\TestEquaMBarreH.%
+ % % \\Le tok B est \the\TestEquaMBarreB.%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+ \ifnum\fpeval{#4}=1\relax
+ \else
+ \bigskip%
+
+ \PfCMPDessineModelBarreNonHomogene{white,1,"$\num{\fpeval{#3}}/\num{\fpeval{#4}}$"}{white,1,"$x$"}{}%
+ \SSimpliTest{\fpeval{#3}}{\fpeval{#4}}%
+ \ifthenelse{\boolean{Simplification}}{\bigskip%
+
+ \PfCMPDessineModelBarreNonHomogene{white,1,"\PGCD{\fpeval{#3}}{\fpeval{#4}}\ifnum\fpeval{abs(\pgcd)}=\fpeval{#4}\relax{}\num{\fpeval{#3/#4}}\else\num{\fpeval{#3/\pgcd}}/\num{\fpeval{#4/\pgcd}}\fi"}{white,1,"$x$"}{}%
+ }{}%
+ \fi
+ }%
+ }%
+ \fi%
+ \else%
+ % si non, on est dans le cas ax=d
+ \xintifboolexpr{\fpeval{#2}==0}{%
+ \xintifboolexpr{\fpeval{#5}==0}{%
+ L'équation $0\times\useKV[ClesEquation]{Lettre}=0$ a une infinité de solutions.}{L'équation $0\times\useKV[ClesEquation]{Lettre}=\num{\fpeval{#5}}$ n'a aucune solution.}%
+ }{%\else
+ \xintifboolexpr{\fpeval{#5}==0}{L'équation $\num{\fpeval{#2}}\times\useKV[ClesEquation]{Lettre}=0$ a une unique solution : $\useKV[ClesEquation]{Lettre}=0$.}{%\else
+ % \begin{center}
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreB{white,#2,"\num{\fpeval{#5}}"}\nil%
+ % Le tok H est \the\TestEquaMBarreH.%
+ % \\Le tok B est \the\TestEquaMBarreB.%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+ \ifnum\fpeval{#2}=1\relax%
+ \else
+ \bigskip%
+
+ \PfCMPDessineModelBarreNonHomogene{white,1,"$x$"}{white,1,"$\num{\fpeval{#5}}/\num{\fpeval{#2}}$"}{}%
+ \SSimpliTest{\fpeval{#5}}{\fpeval{#2}}%
+ \ifthenelse{\boolean{Simplification}}{\bigskip
+
+ \PfCMPDessineModelBarreNonHomogene{white,1,"$x$"}{white,1,"\PGCD{\fpeval{#5}}{\fpeval{#2}}\ifnum\fpeval{abs(\pgcd)}=\fpeval{#2}\relax{}\num{\fpeval{#5/#2}}\else\num{\fpeval{#5/\pgcd}}/\num{\fpeval{#2/\pgcd}}\fi"}{}%
+ }{}%
+ \fi
+ }%
+ }%
+ \fi%
+}%
+
+\newcommand\EquaDeuxMBarre[5][]{%type ax+b=d ou b=cx+d$
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \ifnum\fpeval{#2}=0\relax%On échange en faisant attention à ne pas boucler : c doit être non vide
+ % cas b=cx+d
+ \xintifboolexpr{\fpeval{#4}==0}{%
+ \xintifboolexpr{\fpeval{#3}==\fpeval{#5}}{%b=d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ a une infinité de solutions.%
+ }{%b<>d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{\fpeval{#3}==0}{%ax+b=d
+ \EquaBaseMBarre[#1]{0}{\fpeval{-#5}}{\fpeval{#4}}{0}%
+ }{%ax+b=d$ Ici
+ % \begin{center}
+ \TestEquaMBarreB{white}%
+ \TestEquaMBarreH{}%
+ \xintFor* ##1 in{\xintSeq{1}{#4}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreB{,white,2.5,"\num{\fpeval{#5}}"}\nil%
+ \expandafter\UpdateToksBarreH{white,#4+2.5,"\num{\fpeval{#3}}"}\nil%
+ % Le tok H est \the\TestEquaMBarreH.%
+ % \\Le tok B est \the\TestEquaMBarreB.%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \bigskip%
+
+ \PfCMPDessineModelBarreNonHomogene{white,#4,"\num{\fpeval{#3-#5}}",white,2.5,"\num{\fpeval{#5}}"}{\the\TestEquaMBarreB}{#4}%
+
+ \bigskip
+
+ \EquaBaseMBarre{0}{(#3-(#5))}{#4}{0}%
+ }%
+ }%
+ \else%cas ax+b=d
+ \xintifboolexpr{\fpeval{#2}==0}{%
+ \xintifboolexpr{\fpeval{#3}==\fpeval{#5}}{%b=d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ a une infinité de solutions.%
+ }{%b<>d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ n'a aucune solution.%
+ }%
+ }{%ELSE
+ \xintifboolexpr{\fpeval{#3}==0}{%ax+b=d
+ \EquaBaseMBarre[#1]{#2}{0}{0}{#5}%
+ }{%ax+b=d$ Ici
+% % \begin{center}
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{,white,2.5,"\num{\fpeval{#3}}"}\nil%
+ \expandafter\UpdateToksBarreB{white,#2+2.5,"\num{\fpeval{#5}}"}\nil%
+% % Le tok H est \the\TestEquaMBarreH.%
+% % \\Le tok B est \the\TestEquaMBarreB.%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \bigskip%
+
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{white,#2,"\num{\fpeval{#5-#3}}",white,2.5,"\num{\fpeval{#3}}"}{#2}%
+%
+ \bigskip
+
+ \EquaBaseMBarre{#2}{0}{0}{(#5-(#3))}%
+ }%
+ }%
+ \fi%
+}%
+
+\newcommand\EquaTroisMBarre[5][]{%ax+b=cx ou ax=cx+d
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \ifnum\fpeval{#3}=0\relax%on inverse en faisant attention à la boucle #3<->#5
+ \ifnum\fpeval{#5}=0\relax%
+ %% paramètre oublié
+ \else
+ \EquaTroisMBarre[#1]{#4}{#5}{#2}{0}%
+ \fi
+ \else
+ \xintifboolexpr{\fpeval{#2}==0}{%b=cx
+ \EquaBaseMBarre[#1]{#4}{0}{0}{#3}
+ }{%
+ \xintifboolexpr{\fpeval{#4}==0}{%ax+b=0
+ \EquaDeuxMBarre[#1]{#2}{#3}{0}{0}
+ }{%ax+b=cx
+ \xintifboolexpr{\fpeval{#2}==\fpeval{#4}}{%
+ \xintifboolexpr{\fpeval{#3}==0}{%ax=ax
+ L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ a une infinité de solutions.%
+ }{%ax+b=ax
+ L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}$ n'a aucune solution.%
+ }
+ }{%% Cas délicat
+ \xintifboolexpr{\fpeval{#2}>\fpeval{#4}}{%ax+b=cx avec a>c
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{white}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{,white,2.5,"\num{\fpeval{#3}}"}\nil%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#4}}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreB{,white,#2-#4+2.5,"0"}\nil%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{#4}%
+
+ \EquaDeuxMBarre{(#2-#4)}{#3}{0}{0}
+ }{%ax+b=cx avec a<c % Autre cas délicat
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{white}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{,white,#4-#2,"\num{\fpeval{#3}}"}\nil%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#4}}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+% \expandafter\UpdateToksBarreB{,white,#2-#4+2.5,"0"}\nil%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{#2}%
+
+ \EquaDeuxMBarre{0}{#3}{(#4-#2)}{0}
+ }%
+ }%
+ }%
+ }%
+ \fi
+}%
+
+\newcommand\ResolEquationMBarre[5][]{%
+ \useKVdefault[ClesEquation]%
+ \setKV[ClesEquation]{#1}%
+ \setKV[ClesEquation]{Fleches=false,FlecheDiv=false,Terme=false,Decomposition=false}
+ \xintifboolexpr{#2==0}{%
+ \xintifboolexpr{#4==0}{%
+ \xintifboolexpr{#3==#5}{%b=d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\num{\fpeval{#3}}=\num{\fpeval{#5}}$ n'a aucune solution.%
+ }%
+ }%
+ {%0x+b=cx+d$
+ \EquaDeuxMBarre[#1]{#4}{#5}{#2}{#3}%
+ }%
+ }{%
+ \xintifboolexpr{#4==0}{%ax+b=0x+d
+ \EquaDeuxMBarre[#1]{#2}{#3}{0}{#5}%
+ }
+ {%ax+b=cx+d$
+ \xintifboolexpr{#3==0}{%
+ \xintifboolexpr{#5==0}{%ax=cx
+ \EquaTroisMBarre[#1]{#2}{0}{#4}{0}%
+ }%
+ {%ax=cx+d
+ \EquaTroisMBarre[#1]{#4}{#5}{#2}{0}%
+ }%
+ }%
+ {\xintifboolexpr{#5==0}{%ax+b=cx
+ \EquaTroisMBarre[#1]{#2}{#3}{#4}{0}%
+ }%
+ {%ax+b=cx+d -- ici
+ \xintifboolexpr{#2==#4}{%
+ \xintifboolexpr{#3==#5}{%b=d
+ L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ a une infinité de solutions.}%
+ {%b<>d
+ L'équation $\xintifboolexpr{#2==1}{}{\num{#2}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#3>0}{+\num{#3}}{-\num{\fpeval{0-#3}}}=\xintifboolexpr{#4==1}{}{\num{#4}}\useKV[ClesEquation]{Lettre}\xintifboolexpr{#5>0}{+\num{#5}}{-\num{\fpeval{0-#5}}}$ n'a aucune solution.%
+ }%
+ }{%
+ %% Cas délicat
+ \xintifboolexpr{#2>#4}{%ax+b=cx+d avec a>c
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{white}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{,white,2.5,"\num{\fpeval{#3}}"}\nil%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#4}}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreB{,white,#2-#4+2.5,"\num{\fpeval{#5}}"}\nil%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{#4}%
+
+ \EquaDeuxMBarre{(#2-(#4))}{#3}{0}{#5}
+ }{%ax+b=cx+d avec a<c % Autre cas délicat
+ \TestEquaMBarreH{white}%
+ \TestEquaMBarreB{white}%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#4}}}\do{%
+ \expandafter\UpdateToksBarreB{,1}\nil%
+ \expandafter\UpdateToksBarreB{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreB{,white,2.5,"\num{\fpeval{#5}}"}\nil%
+ \xintFor* ##1 in{\xintSeq{1}{\fpeval{#2}}}\do{%
+ \expandafter\UpdateToksBarreH{,1}\nil%
+ \expandafter\UpdateToksBarreH{,"$x$"}\nil%
+ }%
+ \expandafter\UpdateToksBarreH{,white,#4-#2+2.5,"\num{\fpeval{#3}}"}\nil%
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{}%
+
+ \PfCMPDessineModelBarreNonHomogene{\the\TestEquaMBarreH}{\the\TestEquaMBarreB}{#2}%
+
+ \EquaDeuxMBarre{0}{#3}{(#4-(#2))}{#5}
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
index 0ae20f54e7..ad7e495f04 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGeometrie.tex
@@ -1,7 +1,8 @@
%%%
% Geometrie
%%%
-\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments"}%
+\setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments",Clip,Cadres=false,Epaisseur=1,Pointilles=false,Ombre=false,Couleur=black,Ecart=2,ModeleCouleur=5}%
+\defKV[Geometrie]{Cadre=\setKV[Geometrie]{Cadres}\setKV[Geometrie]{Clip=false}}%
\ifluatex%
\NewDocumentEnvironment{Geometrie}{o +b}{%
@@ -9,10 +10,31 @@
\setKV[Geometrie]{#1}%
\mplibforcehmode%
\begin{mplibcode}
- % input PfCMPFr;
+ defaultcolormodel := \useKV[Geometrie]{ModeleCouleur};
+
+ vardef rounded_corners expr p =
+ for i=1 upto length p:
+ subpath (i-15/16, i-1/16) of p ..
+ endfor cycle
+ enddef;
+ %
+ boolean Clip,Cadres,Pointilles,Ombre;
+ Clip=\useKV[Geometrie]{Clip};
+ Cadres=\useKV[Geometrie]{Cadres};
+ Pointilles=\useKV[Geometrie]{Pointilles};
+ Ombre=\useKV[Geometrie]{Ombre};
+ Epaisseur=\useKV[Geometrie]{Epaisseur};
+ bboxmargin:=\useKV[Geometrie]{Ecart};
+ color CouleurCadre;
+ CouleurCadre=\useKV[Geometrie]{Couleur};
pair Coinbg,Coinhd;
+ if Clip:
Coinbg=\useKV[Geometrie]{CoinBG};
Coinhd=\useKV[Geometrie]{CoinHD};
+ else:
+ Coinbg=(-1000,-1000);
+ Coinhd=(1000,1000);
+ fi;
if \useKV[Geometrie]{TypeTrace}="Instruments":
typetrace:="normal";
elseif \useKV[Geometrie]{TypeTrace}="MainLevee":
@@ -29,6 +51,43 @@
_tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
_tfig:=2*_tfig;
#2%
+ %%
+ if Cadres:
+ string Cadre;
+ Cadre=\useKV[Geometrie]{Cadre};
+
+ picture P; P = currentpicture;
+
+ if Cadre<>"aucun":
+ if Cadre="rectangle":
+ if Ombre:
+ fill bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw bbox P;
+ drawoptions();
+ draw P;
+ else:
+ if Ombre:
+ fill rounded_corners bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill rounded_corners bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw rounded_corners bbox P;
+ drawoptions();
+ draw P;
+ fi;
+ fi;
+ fi;
\end{mplibcode}
}{}%
\else
@@ -36,6 +95,21 @@
\useKVdefault[Geometrie]%
\setKV[Geometrie]{#1}%
\begin{mpost}[mpsettings={%
+ vardef rounded_corners expr p =
+ for i=1 upto length p:
+ subpath (i-15/16, i-1/16) of p ..
+ endfor cycle
+ enddef;
+ %
+ boolean Clip,Cadres,Pointilles,Ombre;
+ Clip=\useKV[Geometrie]{Clip};
+ Cadres=\useKV[Geometrie]{Cadres};
+ Pointilles=\useKV[Geometrie]{Pointilles};
+ Ombre=\useKV[Geometrie]{Ombre};
+ Epaisseur=\useKV[Geometrie]{Epaisseur};
+ bboxmargin:=\useKV[Geometrie]{Ecart};
+ color CouleurCadre;
+ CouleurCadre=\useKV[Geometrie]{Couleur};
pair Coinbg,Coinhd;
Coinbg=\useKV[Geometrie]{CoinBG};
Coinhd=\useKV[Geometrie]{CoinHD};
@@ -56,6 +130,43 @@
_tfig:=if (xb-xa)>(yb-ya): (xb-xa) else: (yb-ya) fi;
_tfig:=2*_tfig;
#2%
+ %%
+ if Cadres:
+ string Cadre;
+ Cadre=\useKV[Geometrie]{Cadre};
+
+ picture P; P = currentpicture;
+
+ if Cadre<>"aucun":
+ if Cadre="rectangle":
+ if Ombre:
+ fill bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw bbox P;
+ drawoptions();
+ draw P;
+ else:
+ if Ombre:
+ fill rounded_corners bbox P shifted (3,-3) withcolor 3/4[CouleurCadre,white];
+ unfill rounded_corners bbox P;
+ fi;
+ if Pointilles:
+ drawoptions(dashed evenly withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ else:
+ drawoptions(withpen pencircle scaled Epaisseur withcolor CouleurCadre;);
+ fi;
+ draw rounded_corners bbox P;
+ drawoptions();
+ draw P;
+ fi;
+ fi;
+ fi;
\end{mpost}
}{}%
\fi% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCLego.tex b/macros/latex/contrib/profcollege/latex/PfCLego.tex
index fb18636d62..f4b0fbd65c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLego.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLego.tex
@@ -1,7 +1,7 @@
%%%
% Lego
%%%
-\setKVdefault[Lego]{Couleur=LightSteelBlue,Unite=8,Diviseur=2,Perso=false,Plaque=false}%
+\setKVdefault[Lego]{Echelle=1,Couleur=LightSteelBlue,Unite=8,Diviseur=2,Perso=false,Plaque=false,Largeura=2,Largeurb=2,Unique=false}%
\defKV[Lego]{ListePerso=\setKV[Lego]{Perso}\xdef\PfCFooLegoListePerso{#1}}%
\NewDocumentCommand\ChoixCouleur{m}{%
@@ -21,7 +21,11 @@
\NewDocumentCommand\Lego{o}{%
\useKVdefault[Lego]%
\setKV[Lego]{#1}%
- \xdef\PfCNbCouleurs{\fpeval{floor(\useKV[Lego]{Unite}/\useKV[Lego]{Diviseur})}}%
+ \xintifboolexpr{\useKV[Lego]{Unite}==1}{%
+ \xdef\PfCNbCouleurs{1}%
+ }{%
+ \xdef\PfCNbCouleurs{\fpeval{floor(\useKV[Lego]{Unite}/\useKV[Lego]{Diviseur})}}%
+ }%
\ChoixCouleur{\PfCNbCouleurs}%
\ifboolKV[Lego]{Perso}{%
\BuildBarreLego{\FooCouleur}{\PfCFooLegoListePerso}%
@@ -34,8 +38,11 @@
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}
- boolean Plaque;
+ boolean Plaque,Unique;
Plaque=\useKV[Lego]{Plaque};
+ Unique=\useKV[Lego]{Unique};
+
+ Echelle=\useKV[Lego]{Echelle};
input PfCLego;
%
@@ -59,7 +66,8 @@
ChoixCouleur(#1);
%
Longueur=\useKV[Lego]{Unite};
- Largeur=2;
+ Largeura=\useKV[Lego]{Largeura};
+ Largeurb=\useKV[Lego]{Largeurb};
Diviseur=\useKV[Lego]{Diviseur};
color BriqueUnite;
BriqueUnite=\useKV[Lego]{Couleur};
@@ -71,25 +79,31 @@
lego_height_old:=lego_height;
lego_height:=lego_thickness;
TR:=(0,1,0);
- Lego_box(2*Longueur,4*Largeur,Gold);
+ Lego_box(2*Longueur,4*Largeura,Gold);
TR:=(0,0,0);
lego_height:=lego_height_old;
fi;
- Lego_box(Longueur,Largeur,BriqueUnite);
+ Lego_box(Longueur,Largeura,BriqueUnite);
+ if Unique=false:
if Perso:
Somme=0;
ListePerso(#2);
for k=0 upto (nbperso-1):
- TR:=(0.5*(Longueur-Diviseurs[k]-Somme),2,0);
- Lego_box(Diviseurs[k],2,Brique[k]);
+ TR:=(0.5*(Longueur-Diviseurs[k]-Somme),Largeura+0.5*(Largeurb-Largeura),0);
+ Lego_box(Diviseurs[k],Largeurb,Brique[k]);
Somme:=Somme+2*Diviseurs[k];
endfor;
else:
for k=0 upto ((Longueur div Diviseur)-1):
- TR:=(0.5*(Longueur-Diviseur)-k*Diviseur,2,0);
- Lego_box(Diviseur,2,Brique[k]);
+ TR:=(0.5*(Longueur-Diviseur)-k*Diviseur,Largeura+0.5*(Largeurb-Largeura),0);
+ Lego_box(Diviseur,Largeurb,Brique[k]);
endfor;
fi;
+ fi;
+ picture RetiensLego;
+ RetiensLego=currentpicture;
+ currentpicture:=nullpicture;
+ draw RetiensLego scaled Echelle;
\end{mplibcode}
\else
\begin{mpost}
diff --git a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
index 38c3915888..a05ae0075b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCModeleBarre.tex
@@ -1,8 +1,10 @@
%%%
% Modele en barre
%%%
-\setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation={0},Homogene=false}%Separation pour conserver le lien avec les équations.
+\setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation={0},Homogene=false,Multiplicatif=false,MultiplicatifH=false,MultiplicatifB=false}%Separation pour conserver le lien avec les équations.
\defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}%
+\defKV[ClesModeleBarre]{AccoladesH=\setKV[ClesModeleBarre]{MultiplicatifH}\setKV[ClesModeleBarre]{Multiplicatif}}%
+\defKV[ClesModeleBarre]{AccoladesB=\setKV[ClesModeleBarre]{MultiplicatifB}\setKV[ClesModeleBarre]{Multiplicatif}}%
\newtoks\toklistemodelbarresup%
\def\UpdateListeModelBarreSup#1\nil{\addtotok\toklistemodelbarresup{#1,}}%
@@ -10,6 +12,10 @@
\def\UpdateListeModelBarreInf#1\nil{\addtotok\toklistemodelbarreinf{#1,}}%
\newtoks\toklistemodelbarresep%
\def\UpdateListeModelBarreSep#1\nil{\addtotok\toklistemodelbarresep{#1,}}%
+\newtoks\toklistemodelbarreaccosup%
+\def\UpdateListeModelBarreAccoSup#1\nil{\addtotok\toklistemodelbarreaccosup{#1,}}%
+\newtoks\toklistemodelbarreaccoinf%
+\def\UpdateListeModelBarreAccoInf#1\nil{\addtotok\toklistemodelbarreaccoinf{#1,}}%
\newcommand\ModeleBarre[3][]{%
% #1 options
@@ -42,7 +48,36 @@
\ifboolKV[ClesModeleBarre]{Homogene}{%
\PfCMPDessineModelBarre{\the\toklistemodelbarresup}{\the\toklistemodelbarreinf}%
}{%
- \PfCMPDessineModelBarreNonHomogene{\the\toklistemodelbarresup}{\the\toklistemodelbarreinf}{\the\toklistemodelbarresep}%
+ \ifboolKV[ClesModeleBarre]{Multiplicatif}{%
+ %
+ \toklistemodelbarreaccosup{}%
+ \toklistemodelbarreaccoinf{}%
+ \ifboolKV[ClesModeleBarre]{MultiplicatifH}{%
+ \xdef\PfCListeAccoladesH{\useKV[ClesModeleBarre]{AccoladesH}}%
+ \setsepchar{\\/ }%
+ \readlist\ListeModeleBarreAccoSup{\PfCListeAccoladesH}%
+ \foreachitem\compteur\in\ListeModeleBarreAccoSup{%
+ \foreachitem\valeur\in\ListeModeleBarreAccoSup[\compteurcnt]{%
+ \expandafter\UpdateListeModelBarreAccoSup\valeur\nil%
+ }%
+ }%
+ % Les accolades hautes sont \the\toklistemodelbarreaccosup.\\
+ }{}%
+ \ifboolKV[ClesModeleBarre]{MultiplicatifB}{%
+ \xdef\PfCListeAccoladesB{\useKV[ClesModeleBarre]{AccoladesB}}%
+ \setsepchar{\\/ }%
+ \readlist\ListeModeleBarreAccoInf{\PfCListeAccoladesB}%
+ \foreachitem\compteur\in\ListeModeleBarreAccoInf{%
+ \foreachitem\valeur\in\ListeModeleBarreAccoInf[\compteurcnt]{%
+ \expandafter\UpdateListeModelBarreAccoInf\valeur\nil%
+ }%
+ }%
+ % Les accolades basses sont \the\toklistemodelbarreaccoinf.\\
+ }{}%
+ \PfCMPDessineModelBarreNonHomogeneMultiplicatif{\the\toklistemodelbarresup}{\the\toklistemodelbarreinf}{\the\toklistemodelbarresep}{\the\toklistemodelbarreaccosup}{\the\toklistemodelbarreaccoinf}%
+ }{%
+ \PfCMPDessineModelBarreNonHomogene{\the\toklistemodelbarresup}{\the\toklistemodelbarreinf}{\the\toklistemodelbarresep}%
+ }%
}%
}%
@@ -163,6 +198,133 @@
\end{mplibcode}
}%
+\def\PfCMPDessineModelBarreAccoladeCode{%
+}%
+
+\newcommand\PfCMPDessineModelBarreNonHomogeneMultiplicatif[5]{%
+ \ifluatex%
+ \mplibforcehmode%
+ \begin{mplibcode}
+ \PfCMPDessineModelBarreNHCode
+ \PfCMPDessineModelBarreBriqueCode
+ % \PfCMPDessineModelBarreAccoladeCode
+
+ vardef TraceAccoH(text t)=
+ pair PfCAccoPtH[];
+ numeric etape,ProporHauteur;
+ etape:=0;
+ ProporHauteur:=1;
+ numeric decaetape[][];
+ string toto;
+ numeric n;
+ n=0;
+ for p_=t:
+ n:=n+1;
+ if (n mod 3)=1:
+ etape:=etape+1;
+ decaetape[etape][1]=p_;
+ fi;
+ if (n mod 3)=2:
+ decaetape[etape][2]=p_;
+ fi;
+ if (n mod 3)=0:
+ toto:=p_;
+ if substring(1,2) of toto="*":
+ ltoto=length toto;
+ ProporHauteur:=scantokens(substring(0,1) of toto)+1;
+ toto:=substring(2,ltoto) of toto;
+ else:
+ ProporHauteur:=1;
+ fi;
+ PfCAccoPtH[1]:=(0,ProporHauteur*Hauteur) shifted(VecteurDepla*(decaetape[etape][1]-1));
+ PfCAccoPtH[2]:=PfCAccoPtH[1] shifted(VecteurDepla*decaetape[etape][2]);
+ if ProporHauteur>1:
+ draw PfCAccoPtH[1]--(PfCAccoPtH[1] shifted(0,-(ProporHauteur-1)*Hauteur)) dashed evenly;
+ draw PfCAccoPtH[2]--(PfCAccoPtH[2] shifted(0,-(ProporHauteur-1)*Hauteur)) dashed evenly;
+ fi;
+ label(TEX("$\overbrace{\hbox to"&decimal(abs(PfCAccoPtH[1]-PfCAccoPtH[2]))&"pt{\PfCTBstrut}}^{"&toto&"}$"),1/2[PfCAccoPtH[1],PfCAccoPtH[2]]);
+ fi;
+ endfor;
+ enddef;
+ %
+ vardef TraceAccoB(text t)=
+ pair PfCAccoPtB[];
+ numeric etape,ProporHauteur;
+ etape:=0;
+ ProporHauteur:=1;
+ numeric decaetape[][];
+ string toto;
+ numeric n;
+ n=0;
+ for p_=t:
+ n:=n+1;
+ if (n mod 3)=1:
+ etape:=etape+1;
+ decaetape[etape][1]=p_;
+ fi;
+ if (n mod 3)=2:
+ decaetape[etape][2]=p_;
+ fi;
+ if (n mod 3)=0:
+ toto:=p_;
+ if substring(1,2) of toto="*":
+ ltoto=length toto;
+ ProporHauteur:=scantokens(substring(0,1) of toto)+1;
+ toto:=substring(2,ltoto) of toto;
+ else:
+ ProporHauteur:=1;
+ fi;
+ PfCAccoPtB[1]:=(0,-ProporHauteur*Hauteur) shifted(VecteurDepla*(decaetape[etape][1]-1));
+ PfCAccoPtB[2]:=PfCAccoPtB[1] shifted(VecteurDepla*decaetape[etape][2]);
+ if ProporHauteur>1:
+ draw PfCAccoPtB[1]--(PfCAccoPtB[1] shifted(0,(ProporHauteur-1)*Hauteur)) dashed evenly;
+ draw PfCAccoPtB[2]--(PfCAccoPtB[2] shifted(0,(ProporHauteur-1)*Hauteur)) dashed evenly;
+ fi;
+ label(TEX("$\underbrace{\hbox to"&decimal(abs(PfCAccoPtB[1]-PfCAccoPtB[2]))&"pt{\PfCTBstrut}}_{"&toto&"}$"),1/2[PfCAccoPtB[1],PfCAccoPtB[2]]);
+ fi;
+ endfor;
+ enddef;
+
+ Longueur:=\useKV[ClesModeleBarre]{Largeur};
+ Hauteur:=\useKV[ClesModeleBarre]{Hauteur};
+ u:=Longueur;
+
+ toto(#1);
+ tata(#2);
+
+ pair VecteurDepla;
+ VecteurDepla=(Longueur,0);
+
+ numeric MBnbdepla;
+ MBnbdepla=0;
+ for k=1 upto MBnbcolsup:
+ for l=1 upto MBnbinfosup[k]:
+ trace Brique(MBColSup[k],MBnbcasessup[k][l])(MBTextcasessup[k][l]) shifted(MBnbdepla*VecteurDepla);
+ MBnbdepla:=MBnbdepla+MBnbcasessup[k][l];
+ endfor;
+ endfor;
+
+ MBnbdepla:=0;
+ for k=1 upto MBnbcolinf:
+ for l=1 upto MBnbinfoinf[k]:
+ trace Brique(MBColInf[k],MBnbcasesinf[k][l])(MBTextcasesinf[k][l]) shifted(MBnbdepla*VecteurDepla+(0,-Hauteur));
+ if MBnbcasesinf[k][l]<0:
+ for j=1 upto (abs(MBnbcasesinf[k][l])-1):
+ trace ((0,0)--(0,Hauteur)) shifted((MBnbdepla+j)*VecteurDepla+(0,-Hauteur)) withcolor black;
+ endfor;
+ fi;
+ MBnbdepla:=MBnbdepla+abs(MBnbcasesinf[k][l]);
+ endfor;
+ endfor;
+
+ Separation(#3);
+
+ TraceAccoH(#4);
+ TraceAccoB(#5);
+ \end{mplibcode}%
+ \fi
+}
+
\def\PfCMPDessineModelBarreNHCode{%
numeric MBnbcolinf;%compte combien de couleurs
MBnbcolinf=0;
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
index 6a638a7c93..0929b76197 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCodes.tex
@@ -9,19 +9,20 @@
\setsepchar[*]{§*/}%
\readlist*\ListeMotsCodes{#2}%
\xdef\ListeMotsCodesPas{\fpeval{\ListeMotsCodeslen/\useKV[MotsCodes]{Colonnes}}}%
- \begin{NiceTabular}{*{\fpeval{\useKV[MotsCodes]{Colonnes}}}{>{\centering\arraybackslash}m{\useKV[MotsCodes]{Largeur}}}}[color-inside]
+ % \begin{NiceTabular}{*{\fpeval{\useKV[MotsCodes]{Colonnes}}}{>{\centering\arraybackslash}m{\useKV[MotsCodes]{Largeur}}}}[color-inside]
+ \begin{NiceTabular}{*{\fpeval{\useKV[MotsCodes]{Colonnes}}}{m{\useKV[MotsCodes]{Largeur}}}}[color-inside]
\xintFor* ##1 in {\xintSeq {1}{\ListeMotsCodesPas}}\do{%
\xintFor* ##2 in {\xintSeq {1}{\fpeval{\useKV[MotsCodes]{Colonnes}}}}\do{%
\xintifForFirst{}{&}\Block[draw=black]{4-1}{}%
}\\
\xintFor* ##2 in {\xintSeq {1}{\fpeval{\useKV[MotsCodes]{Colonnes}}}}\do{%
- \xintifForFirst{}{&}\ListeMotsCodes[\fpeval{(##1-1)*\useKV[MotsCodes]{Colonnes}+##2},1]
+ \xintifForFirst{}{&}\Block{}{\ListeMotsCodes[\fpeval{(##1-1)*\useKV[MotsCodes]{Colonnes}+##2},1]}
}\\
\xintFor* ##2 in {\xintSeq {1}{\fpeval{\useKV[MotsCodes]{Colonnes}}}}\do{%
\xintifForFirst{}{&}%
}\\
\xintFor* ##2 in {\xintSeq {1}{\fpeval{\useKV[MotsCodes]{Colonnes}}}}\do{%
- \xintifForFirst{}{&}\textbf{\Large\ListeMotsCodes[\fpeval{(##1-1)*\useKV[MotsCodes]{Colonnes}+##2},2]}
+ \xintifForFirst{}{&}\Block{}{\textbf{\Large\ListeMotsCodes[\fpeval{(##1-1)*\useKV[MotsCodes]{Colonnes}+##2},2]}}
}\\
}%
\end{NiceTabular}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
index 601d6e52f1..27156c00b7 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulArt.tex
@@ -44,9 +44,9 @@
\xdef\PfCFooRetiensCible{\useKV[TabMul]{Cible}}%
\readlist*\PfCListeDesNombresCibles{\PfCFooRetiensCible}%
\xintFor* ##2 in{\xintSeq{1}{\PfCListeDesNombresCibleslen}}\do{%
- \PfCListeDiviseurs{\PfCListeDesNombresCibles[##2]}%
+ \PfCListeDiviseursInfDix{\PfCListeDesNombresCibles[##2]}%
\setsepchar{,}\ignoreemptyitems%
- \readlist*\PfCTabMulDiviseursCible{\PfCListeDiviseursRetour}%
+ \readlist*\PfCTabMulDiviseursCible{\PfCListeDiviseursInfDixRetour}%
\xdef\PfCFooListePdtCible{$1\times\num{\PfCListeDesNombresCibles[##2]}$,$\num{\PfCListeDesNombresCibles[##2]}\times1$}%
\xintFor* ##1 in {\xintSeq{1}{\PfCNbDiviseurs}}\do{%
\xdef\PfCFooListePdtCible{\PfCFooListePdtCible,$\num{\PfCTabMulDiviseursCible[##1]}\times\num{\fpeval{\PfCListeDesNombresCibles[##2]/\PfCTabMulDiviseursCible[##1]}}$,$\num{\fpeval{\PfCListeDesNombresCibles[##2]/\PfCTabMulDiviseursCible[##1]}}\times\num{\PfCTabMulDiviseursCible[##1]}$}%
@@ -92,11 +92,11 @@
\ifboolKV[TabMul]{Enonce}{%
\begin{enumerate}
\xintFor* ##1 in {\xintSeq{1}{\PfCCompteurX}}\do{%
- \PfCListeDiviseurs{\PfCListeProduits[##1]}%
+ \PfCListeDiviseursInfDix{\PfCListeProduits[##1]}%
\ifnum\PfCNbDiviseurs>1\relax
- \MelangeListe{\PfCListeDiviseursRetour}{1}%
+ \MelangeListe{\PfCListeDiviseursInfDixRetour}{1}%
\else
- \xdef\faa{\PfCListeDiviseursRetour}
+ \xdef\faa{\PfCListeDiviseursInfDixRetour}
\fi
\ignoreemptyitems
\readlist*\PfCListeDiviseurChoisi{\faa}%
@@ -126,18 +126,18 @@
\reademptyitems%
}%
-\NewDocumentCommand\PfCListeDiviseurs{m}{%
+\NewDocumentCommand\PfCListeDiviseursInfDix{m}{%
\ifnum#1<10\relax
\xdef\PfCLimiteDiv{#1}
\else
\xdef\PfCLimiteDiv{10}
\fi
- \xdef\PfCListeDiviseursRetour{}
+ \xdef\PfCListeDiviseursInfDixRetour{}
\xdef\PfCNbDiviseurs{}
\xintFor* ##2 in {\xintSeq{2}{\PfCLimiteDiv}}\do{%
\modulo{#1}{##2}\relax
\ifnum\remainder=0\relax
- \xdef\PfCListeDiviseursRetour{\PfCListeDiviseursRetour ##2,}%
+ \xdef\PfCListeDiviseursInfDixRetour{\PfCListeDiviseursInfDixRetour ##2,}%
\xdef\PfCNbDiviseurs{\fpeval{\PfCNbDiviseurs+1}}%
\fi
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
index 7fdeb47dec..64c196d992 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
@@ -1,7 +1,7 @@
%%%
% Fonction
%%%
-\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false,Catmull=false,Splines=false,Epaisseur=1,Couleur=black,CouleurTrace=black,PointsCourbe=true,Codes=false,Origine={(0,0)},Vide=false}
+\setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false,Catmull=false,Splines=false,Lagrange=false,Epaisseur=1,Couleur=black,CouleurTrace=black,PointsCourbe=true,Codes=false,Origine={(0,0)},Vide=false}
\defKV[ClesFonction]{Traces=\setKV[ClesFonction]{Codes}}%
\newtoks\toklistePtsFn%pour la discipline
@@ -42,6 +42,13 @@
\toklistePtsFn{}%
\setsepchar[*]{§*/}%\ignoreemptyitems%
\readlist*\ListePoints{#2}%
+ \ifboolKV[ClesFonction]{Lagrange}{
+ \xdef\PfCFooListePoints{}%
+ \foreachitem\compteur\in\ListePoints{%
+ \xdef\PfCFooListePoints{\PfCFooListePoints (\ListePoints[\compteurcnt,2],\ListePoints[\compteurcnt,3]),}%
+ }%
+ \MPLagrange{\PfCFooListePoints}{\useKV[ClesFonction]{PasX}}{\useKV[ClesFonction]{PasY}}{\useKV[ClesFonction]{UniteX}}{\useKV[ClesFonction]{UniteY}}%
+ }{%
\ifboolKV[ClesFonction]{Splines}{%
\xdef\PfCFooListePoints{}%
\foreachitem\compteur\in\ListePoints{%
@@ -70,6 +77,7 @@
\MPCourbeNew{\PfCFooListePoints}%
}%
}%
+ }
}{%
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeFonction{#2}%
@@ -265,6 +273,226 @@
}
}%
+\def\MPLagrangeCode{%
+ path Cb[];
+ %
+ boolean PointsCourbe,Code,Prolonge;
+ PointsCourbe=\useKV[ClesFonction]{PointsCourbe};
+ Code=\useKV[ClesFonction]{Codes};
+ Prolonge:=\useKV[ClesFonction]{Prolonge};
+ color CoulTrace;
+ CoulTrace:=\useKV[ClesFonction]{CouleurTrace};
+ Epaisseur:=\useKV[ClesFonction]{Epaisseur};
+ %
+ vardef EffectuerTraces=
+ \useKV[ClesFonction]{Traces};
+ enddef;
+%
+ def enplace=
+ xscaled X.u yscaled Y.u
+ enddef;
+ %
+ vardef placepoint(expr q,r)=
+ (q,r)*cm enplace
+ enddef;
+ %
+ def replace=
+ xscaled (1/X.u) yscaled (1/Y.u)
+ enddef;
+%
+ def retrouvecoord(expr p)=%
+ (p/cm) replace
+ enddef;
+ %
+% nbpoints:=100;
+ %
+ vardef intersectioncourbes(expr aa,bb)=
+ pair pti[];
+ nbpoints:=100;
+ n:=0;
+ for k=0 upto nbpoints-1:
+ if ((subpath(k/nbpoints*length aa,(k+1)/nbpoints*length aa) of aa) intersectiontimes bb)<>(-1,-1):
+ n:=n+1;
+ pti[n]:=(subpath(k/nbpoints*length aa,(k+1)/nbpoints*length aa) of aa) intersectionpoint bb;
+ fi;
+ endfor;
+ enddef;
+ %
+ vardef IntersectionCourbes(expr aa,bb)=
+ pair pti[];
+ numeric vali[];
+ n:=0;
+ for k=0 upto 100:
+ if ((subpath(k/100*length aa,(k+1)/100*length aa) of aa) intersectiontimes bb)<>(-1,-1):
+ n:=n+1;
+ vali[n]:=k;
+ message("vali : "&decimal(vali[n]));
+ pti[n]:=(subpath(k/100*length aa,(k+1)/100*length aa) of aa) intersectionpoint bb;
+ fi;
+ endfor;
+ enddef;
+ %
+ vardef courbe[](expr a,b,nb)(text texte)=
+ path PfCCb;
+ for i:=0 upto nb :
+ x@[i]:=(a+i*(b-a)/nb);
+ x:=x@[i];
+ y@[i]:=texte;
+% if y@[i]>MaxY:
+% MaxY:=y@[i];
+% fi;
+% if y@[i]<MinY:
+% MinY:=y@[i];
+% fi;
+ endfor ;
+ Cb@:=placepoint(x@.0,y@.0)
+ for i:=1 upto nb :
+ ..placepoint(x@[i],y@[i])
+ endfor;
+ PfCCb=Cb@;
+ PfCCb
+enddef;
+}
+
+\def\MPLagrange#1#2#3#4#5{
+ % #1 la liste des points
+ % #2: pas en x
+ % #3: pas en y
+ % #4: unit\'e en x
+ % #5: unit\'e en y
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ \MPLagrangeCode
+
+ pair M[];%Les points de passage
+ pair N[][];%Les points conservés pour les calculs.
+ numeric nbm;%Le nombre de points de passage;
+
+vardef Lagrange(expr valeur)(text t)=
+ save Lagpt;
+ numeric Lagpt;
+ nbm:=0;
+ for p_=t:
+ nbm:=nbm+1;
+ endfor;
+ nbpoints:=0;
+ for p_=t:
+ nbpoints:=nbpoints+1;
+ M[nbpoints]:=p_;
+ endfor;
+ for k=1 upto nbm:
+ nbpoints:=0;
+ for l=1 upto nbm:
+ if l<>k:
+ nbpoints:=nbpoints+1;
+ N[k][nbpoints]:=M[l];
+ fi;
+ endfor;
+ endfor;
+ Lagpt=0;
+ for k=1 upto nbm:
+ ImagePoly:=for l=1 upto (nbm-1):(xpart(M[k])-xpart(N[k][l]))* endfor 1;
+ Lagpt:=Lagpt+((ypart(M[k])/ImagePoly)*for l=1 upto (nbm-1):(valeur-xpart(N[k][l]))* endfor 1);
+ endfor;
+ Lagpt
+ enddef;
+
+x.u:=#2;
+ y.u:=#3;
+ X.u:=#4;
+ Y.u:=#5;
+ %
+ MinX=999;
+ MaxX=-999;
+ MinY=999;
+ MaxY=-999;
+ %
+ nbpointsLg=0;
+ for p_=#1:
+ nbpointsLg:=nbpointsLg+1;
+ M[nbpointsLg]:=p_;
+ endfor;
+ for k=1 upto nbpointsLg:
+ if xpart(M[k])<MinX:
+ MinX:=xpart(M[k]);
+ fi;
+ if xpart(M[k])>MaxX:
+ MaxX:=xpart(M[k]);
+ fi;
+ if ypart(M[k])<MinY:
+ MinY:=ypart(M[k]);
+ fi;
+ if ypart(M[k])>MaxY:
+ MaxY:=ypart(M[k]);
+ fi;
+ endfor;
+ if MaxY<1:
+ MaxY:=2;
+ fi;
+ if MinY>-1:
+ MinY:=-2;
+ fi;
+ if MinY<0:
+ if MinY<>ceiling(MinY):
+ MinY:=ceiling(MinY)-1;
+ fi;
+ fi;
+ if MinX<0:
+ if MinX<>ceiling(MinX):
+ MinX:=ceiling(MinX)-1;
+ fi;
+ fi;
+ if MaxY<>ceiling(MaxY):
+ MaxY:=ceiling(MaxY);
+ fi;
+ if MaxX<>ceiling(MaxX):
+ MaxX:=ceiling(MaxX);
+ fi;
+ if MaxX<1:
+ MaxX:=1;
+ fi;
+ if MaxY<1:
+ MaxY:=1;
+ fi;
+ if Prolonge:
+ draw courbe1(MinX-1,MaxX+1,25,Lagrange(x)(#1)) withpen pencircle scaled Epaisseur withcolor CoulTrace;
+ else:
+ draw courbe1(MinX,MaxX,25,Lagrange(x)(#1)) withpen pencircle scaled Epaisseur withcolor CoulTrace;
+ fi;
+ path cadreexterieur;
+ cadreexterieur=(((MinX-1)*X.u*cm,(floor(MinY)-1)*Y.u*cm)--((MaxX+1)*X.u*cm,(floor(MinY)-1)*Y.u*cm)--((MaxX+1)*X.u*cm,(floor(MaxY)+1)*Y.u*cm)--((MinX-1)*X.u*cm,(floor(MaxY)+1)*Y.u*cm)--cycle);
+ clip currentpicture to cadreexterieur;
+ picture RetiensCourbe;
+ RetiensCourbe=currentpicture;
+ currentpicture:=nullpicture;
+ for k=(floor(MinY)-1) step y.u until (floor(MaxY)+1):
+ draw cm*((MinX-1)*X.u,k*Y.u)--cm*((MaxX+1)*X.u,k*Y.u) withcolor 0.75white;
+ endfor;
+ for k=MinX-1 step x.u until MaxX+1:
+ draw cm*(k*X.u,(floor(MinY)-1)*Y.u)--cm*(k*X.u,(floor(MaxY)+1)*Y.u) withcolor 0.75white;
+ endfor;
+ draw RetiensCourbe;
+ if PointsCourbe:
+ for k=1 upto nbpointsLg:
+ fill cercles(placepoint(xpart(M[k]),ypart(M[k])),0.5mm);
+ endfor;
+ fi;
+ drawarrow (0,(floor(MinY)-1)*Y.u*cm)--(0,(floor(MaxY)+1)*Y.u*cm);
+ drawarrow ((MinX-1)*X.u*cm,0)--((MaxX+1)*X.u*cm,0);
+ %
+ label.llft(TEX("O"),(0,0));
+ dotlabel.bot(TEX("1"),cm*X.u*(1,0));
+ dotlabel.lft(TEX("1"),cm*Y.u*(0,1));
+ if Code:
+ EffectuerTraces;
+ fi;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
+}%
+
\def\MPSplineCode{%
boolean PointsCourbe,Code,Prolonge;
PointsCourbe=\useKV[ClesFonction]{PointsCourbe};
@@ -328,6 +556,369 @@
endfor --placepoint(xuno,yuno);
Spline
enddef;
+ %
+ path Cb[];
+ vardef courbe[](expr a,b,nb)(text texte)=
+ path PfCCb;
+ for i:=0 upto nb :
+ x@[i]:=(a+i*(b-a)/nb);
+ x:=x@[i];
+ y@[i]:=texte;
+% if y@[i]>MaxY:
+% MaxY:=y@[i];
+% fi;
+% if (y@[i]/(Y.u*cm))<MinY:
+% MinY:=y@[i];
+% fi;
+ endfor ;
+ Cb@:=placepoint(x@.0,y@.0)
+ for i:=1 upto nb :
+ ..placepoint(x@[i],y@[i])
+ endfor;
+ PfCCb=Cb@;
+ PfCCb
+ enddef;
+ %
+ pair M[];%Les points de passage
+ pair N[][];%Les points conservés pour les calculs.
+ numeric nbm;%Le nombre de points de passage;
+ %
+vardef Lagrange(expr valeur)(text t)=
+ save Lagpt;
+ numeric Lagpt;
+ nbm:=0;
+ for p_=t:
+ nbm:=nbm+1;
+ endfor;
+ nbpoints:=0;
+ for p_=t:
+ nbpoints:=nbpoints+1;
+ M[nbpoints]:=p_;
+ endfor;
+ for k=1 upto nbm:
+ nbpoints:=0;
+ for l=1 upto nbm:
+ if l<>k:
+ nbpoints:=nbpoints+1;
+ N[k][nbpoints]:=M[l];
+ fi;
+ endfor;
+ endfor;
+ Lagpt=0;
+ for k=1 upto nbm:
+ ImagePoly:=for l=1 upto (nbm-1):(xpart(M[k])-xpart(N[k][l]))* endfor 1;
+ Lagpt:=Lagpt+((ypart(M[k])/ImagePoly)*for l=1 upto (nbm-1):(valeur-xpart(N[k][l]))* endfor 1);
+ endfor;
+ Lagpt
+ enddef;
+ vardef SplinePointsDeux(text t)=
+ pair Xxn[],Ffn[],Ddn[];%Xn abscisse,ordonnée D : dérivé g,dérivée d
+ nbsplined=0;
+ for p_=t:
+ nbsplined:=nbsplined+1;
+ if (nbsplined mod 2)=1:
+ Xxn[(nbsplined div 2)+1]=p_;
+ Ffn[(nbsplined div 2)+1]=cm*(X.u*xpart(p_),Y.u*ypart(p_));
+ else:
+ Ddn[(nbsplined div 2)]=p_
+ fi;
+ endfor;
+ enddef;
+}
+
+\def\MPLagrangeDouble#1#2#3#4#5#6{
+ % #1 la liste des points
+ % #2 la deuxième liste de points
+ % #3: pas en x
+ % #4: pas en y
+ % #5: unit\'e en x
+ % #6: unit\'e en y
+ \ifluatex
+ \mplibforcehmode
+ \mplibnumbersystem{double}
+ \begin{mplibcode}
+ \MPLagrangeCode
+
+ pair M[];%Les points de passage
+ pair N[][];%Les points conservés pour les calculs.
+ numeric nbm;%Le nombre de points de passage;
+
+ vardef Lagrange(expr valeur)(text t)=
+ save Lagpt;
+ numeric Lagpt;
+ nbm:=0;
+ for p_=t:
+ nbm:=nbm+1;
+ endfor;
+ nbpoints:=0;
+ for p_=t:
+ nbpoints:=nbpoints+1;
+ M[nbpoints]:=p_;
+ endfor;
+ for k=1 upto nbm:
+ nbpoints:=0;
+ for l=1 upto nbm:
+ if l<>k:
+ nbpoints:=nbpoints+1;
+ N[k][nbpoints]:=M[l];
+ fi;
+ endfor;
+ endfor;
+ Lagpt=0;
+ for k=1 upto nbm:
+ ImagePoly:=for l=1 upto (nbm-1):(xpart(M[k])-xpart(N[k][l]))* endfor 1;
+ Lagpt:=Lagpt+((ypart(M[k])/ImagePoly)*for l=1 upto (nbm-1):(valeur-xpart(N[k][l]))* endfor 1);
+ endfor;
+ Lagpt
+ enddef;
+
+ x.u:=#3;
+ y.u:=#4;
+ X.u:=#5;
+ Y.u:=#6;
+ %
+ MinY=-10;%999;
+ MaxY=10;%-999;
+ %
+ MaxX=7;
+ MinX=-7;
+ %
+ draw courbe1(-7,7,100,Lagrange(x)(#1)) withpen pencircle scaled Epaisseur withcolor CoulTrace;
+ draw courbe2(-7,7,100,Lagrange(x)(#2)) withpen pencircle scaled Epaisseur dashed dashpattern(on4 off2) withcolor CoulTrace;
+ % Détermination des MinY et MaxY
+ MinY:=Lagrange(MinX)(#1);
+ for k=0 upto 100:
+ if Lagrange(MinX+(k/100)*(MaxX-MinX))(#1)<MinY:
+ MinY:=Lagrange(MinX+(k/100)*(MaxX-MinX))(#1);
+ fi;
+ endfor;
+ for k=0 upto 100:
+ if Lagrange(MinX+(k/100)*(MaxX-MinX))(#2)<MinY:
+ MinY:=Lagrange(MinX+(k/100)*(MaxX-MinX))(#2);
+ fi;
+ endfor;
+ MaxY:=Lagrange(MinX)(#1);
+ for k=0 upto 100:
+ if Lagrange(MinX+(k/100)*(MaxX-MinX))(#1)>MaxY:
+ MaxY:=Lagrange(MinX+(k/100)*(MaxX-MinX))(#1);
+ fi;
+ endfor;
+ for k=0 upto 100:
+ if Lagrange(MinX+(k/100)*(MaxX-MinX))(#2)>MaxY:
+ MaxY:=Lagrange(MinX+(k/100)*(MaxX-MinX))(#2);
+ fi;
+ endfor;
+ if MinY>0:
+ MinY:=-1;
+ fi;
+ if MaxY<0:
+ MaxY:=1;
+ fi;
+ path cadreexterieur;
+ % cadreexterieur=(((MinX)*X.u*cm,(floor(MinY)-1)*Y.u*cm)--((MaxX)*X.u*cm,(floor(MinY)-1)*Y.u*cm)--((MaxX)*X.u*cm,(floor(MaxY)+1)*Y.u*cm)--((MinX)*X.u*cm,(floor(MaxY)+1)*Y.u*cm)--cycle);
+ cadreexterieur=(((MinX)*X.u*cm,(floor(MinY))*Y.u*cm)--((MaxX)*X.u*cm,(floor(MinY))*Y.u*cm)--((MaxX)*X.u*cm,(ceiling(MaxY))*Y.u*cm)--((MinX)*X.u*cm,(ceiling(MaxY))*Y.u*cm)--cycle);
+ clip currentpicture to cadreexterieur;
+ picture RetiensCourbe;
+ RetiensCourbe=currentpicture;
+ currentpicture:=nullpicture;
+ for k=(floor(MinY)) step y.u until (ceiling(MaxY)):
+ draw cm*((MinX)*X.u,k*Y.u)--cm*((MaxX)*X.u,k*Y.u) withcolor 0.75white;
+ endfor;
+ for k=MinX step x.u until MaxX:
+ draw cm*(k*X.u,(floor(MinY))*Y.u)--cm*(k*X.u,(ceiling(MaxY))*Y.u) withcolor 0.75white;
+ endfor;
+ draw RetiensCourbe;
+% if PointsCourbe:
+% for k=1 upto nbpointsLg:
+% fill cercles(placepoint(xpart(M[k]),ypart(M[k])),0.5mm);
+% endfor;
+% fi;
+ drawarrow (0,(floor(MinY))*Y.u*cm)--(0,(ceiling(MaxY))*Y.u*cm);
+ drawarrow ((MinX)*X.u*cm,0)--((MaxX)*X.u*cm,0);
+ %
+ label.llft(TEX("O"),(0,0));
+ dotlabel.bot(TEX("1"),cm*X.u*(1,0));
+ dotlabel.lft(TEX("1"),cm*Y.u*(0,1));
+ if Code:
+ EffectuerTraces;
+ fi;
+ %draw cadreexterieur withpen pencircle scaled 2;
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
+}%
+
+\def\MPSplineDouble#1#2#3#4#5#6{%
+ % #1 la liste des points
+ % #2 la deuxième liste de points
+ % #3: pas en x
+ % #4: pas en y
+ % #5: unit\'e en x
+ % #6: unit\'e en y
+ \ifluatex
+ \mplibforcehmode
+ \begin{mplibcode}
+ \MPSplineCode;
+
+ x.u:=#3;
+ y.u:=#4;
+ X.u:=#5;
+ Y.u:=#6;
+
+ pair Xn[][],Fn[][],Dn[][];%Xn abscisse,ordonnée D : dérivé g,dérivée d
+
+ numeric N[];
+
+ NbTotalSpline=0;
+
+ vardef PointsSplines(text t)=
+ n:=0;
+ NbTotalSpline:=NbTotalSpline+1;
+ for p_=t:
+ n:=n+1;
+ if (n mod 2)=1:
+ Xn[NbTotalSpline][(n div 2)+1]=p_;
+ Fn[NbTotalSpline][(n div 2)+1]=cm*(X.u*xpart(p_),Y.u*ypart(p_));
+ else:
+ Dn[NbTotalSpline][(n div 2)]=p_
+ fi;
+ endfor;
+ N[NbTotalSpline]:=n div 2;
+ enddef;
+
+ PointsSplines(#1);
+ PointsSplines(#2);
+
+ if Prolonge:
+ debutbalai=2;
+ else:
+ debutbalai=1;
+ fi;
+
+ vardef DeterminationMinMax(expr nbs)=
+ finbalai:=N[nbs];
+ Minx[nbs]=999;
+ Maxx[nbs]=-999;
+ Miny[nbs]=999;
+ Maxy[nbs]=-999;
+ for k=debutbalai upto finbalai:
+ if xpart(Xn[nbs][k])<Minx[nbs]:
+ Minx[nbs]:=xpart(Xn[nbs][k]);
+ fi;
+ if xpart(Xn[nbs][k])>Maxx[nbs]:
+ Maxx[nbs]:=xpart(Xn[nbs][k]);
+ fi;
+ if ypart(Xn[nbs][k])<Miny[nbs]:
+ Miny[nbs]:=ypart(Xn[nbs][k]);
+ fi;
+ if ypart(Xn[nbs][k])>Maxy[nbs]:
+ Maxy[nbs]:=ypart(Xn[nbs][k]);
+ fi;
+ endfor;
+ enddef;
+
+ DeterminationMinMax(1);
+ DeterminationMinMax(2);
+
+ if Minx[1]<Minx[2]:
+ MinX:=Minx[2];
+ else:
+ MinX:=Minx[1];
+ fi;
+
+ if Maxx[1]<Maxx[2]:
+ MaxX:=Maxx[1];
+ else:
+ MaxX:=Maxx[2];
+ fi;
+
+ if Miny[1]<Miny[2]:
+ MinY:=Miny[1];
+ else:
+ MinY:=Miny[2];
+ fi;
+
+ if Maxy[1]<Maxy[2]:
+ MaxY:=Maxy[2];
+ else:
+ MaxY:=Maxy[1];
+ fi;
+
+ if MaxY<1:
+ MaxY:=2;
+ fi;
+ if MinY>-1:
+ MinY:=-2;
+ fi;
+ if MinY<0:
+ if MinY<>ceiling(MinY):
+ MinY:=ceiling(MinY)-1;
+ fi;
+ fi;
+ if MinX<0:
+ if MinX<>ceiling(MinX):
+ MinX:=ceiling(MinX)-1;
+ fi;
+ fi;
+ if MaxY<>ceiling(MaxY):
+ MaxY:=ceiling(MaxY);
+ fi;
+ if MaxX<>ceiling(MaxX):
+ MaxX:=ceiling(MaxX);
+ fi;
+ if MinX<0:
+ else:
+ MinX:=-1;
+ fi;
+ if MaxX<1:
+ MaxX:=1;
+ fi;
+ if MaxY<1:
+ MaxY:=1;
+ fi;
+ %
+ path cadreexterieur;
+ cadreexterieur=(((MinX)*X.u*cm,(MinY-1)*Y.u*cm)--((MaxX)*X.u*cm,(MinY-1)*Y.u*cm)--((MaxX)*X.u*cm,(MaxY+1)*Y.u*cm)--((MinX)*X.u*cm,(MaxY+1)*Y.u*cm)--cycle);
+ path SplineRecap[][],CourbeTotale[];
+ for r=1 upto 2:
+ for l=1 upto N[r]-1:
+ SplineRecap[r][l]=SplineCubique(xpart(Xn[r][l]),ypart(Xn[r][l]),xpart(Xn[r][l+1]),ypart(Xn[r][l+1]),ypart(Dn[r][l]),xpart(Dn[r][l+1]));
+ endfor;
+ CourbeTotale[r]=SplineRecap[r][1] for l=2 upto N[r]-1:..SplineRecap[r][l] endfor;
+ endfor;
+ draw CourbeTotale[1] withpen pencircle scaled Epaisseur withcolor CoulTrace;
+ draw CourbeTotale[2] withpen pencircle scaled Epaisseur dashed dashpattern(on4 off 2) withcolor CoulTrace;
+ %
+ if PointsCourbe:
+ for k=debutbalai upto finbalai:
+ fill cercles(Fn[1][k],0.5mm);
+ fill cercles(Fn[2][k],0.5mm);
+ endfor;
+ fi;
+ %
+ clip currentpicture to cadreexterieur;
+ picture RetiensCourbe;
+ RetiensCourbe=currentpicture;
+ currentpicture:=nullpicture;
+ for k=MinY step y.u until MaxY:
+ draw cm*((MinX)*X.u,k*Y.u)--cm*((MaxX)*X.u,k*Y.u) withcolor 0.75white;
+ endfor;
+ for k=MinX step x.u until MaxX:
+ draw cm*(k*X.u,(MinY-1)*Y.u)--cm*(k*X.u,(MaxY+1)*Y.u) withcolor 0.75white;
+ endfor;
+ drawarrow (0,(MinY-1)*Y.u*cm)--(0,(MaxY+1)*Y.u*cm);
+ drawarrow ((MinX)*X.u*cm,0)--((MaxX)*X.u*cm,0);
+ %
+ draw RetiensCourbe;
+ label.llft(btex O etex,(0,0));
+ dotlabel.bot(btex 1 etex,cm*X.u*(1,0));
+ dotlabel.lft(btex 1 etex,cm*Y.u*(0,1));
+ if Code:
+ EffectuerTraces;
+ fi;
+ trace cadreexterieur withcolor 0.75white;
+ \end{mplibcode}
+\fi
}
\def\MPSpline#1#2#3#4#5{%
@@ -337,7 +928,7 @@
% #4: unit\'e en x
% #5: unit\'e en y
\ifluatex
- \mplibforcehmode
+ \mplibforcehmode
\begin{mplibcode}
\MPSplineCode;
@@ -405,6 +996,10 @@
if MaxX<>ceiling(MaxX):
MaxX:=ceiling(MaxX);
fi;
+ if MinX<0:
+ else:
+ MinX:=-1;
+ fi;
if MaxX<1:
MaxX:=1;
fi;
diff --git a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
index f15a0b9827..a864165fba 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNumerationsAnciennes.tex
@@ -1,13 +1,21 @@
-\NewDocumentCommand\Chinoise{m}{%
- \BuildNumerationChinoise{#1}%
+\setKVdefault[NumerationAncienne]{Couleur=black}%
+
+\NewDocumentCommand\Chinoise{om}{%
+ \useKVdefault[NumerationAncienne]%
+ \setKV[NumerationAncienne]{#1}%
+ \BuildNumerationChinoise{#2}%
}%
-\NewDocumentCommand\Maya{m}{%
- \BuildNumerationMaya{#1}%
+\NewDocumentCommand\Maya{om}{%
+ \useKVdefault[NumerationAncienne]%
+ \setKV[NumerationAncienne]{#1}%
+ \BuildNumerationMaya{#2}%
}%
-\NewDocumentCommand\Babylone{m}{%
- \BuildNumerationBabylone{#1}%
+\NewDocumentCommand\Babylone{om}{%
+ \useKVdefault[NumerationAncienne]%
+ \setKV[NumerationAncienne]{#1}%
+ \BuildNumerationBabylone{#2}%
}%
\NewDocumentCommand\BuildNumerationChinoise{m}{%
@@ -15,7 +23,9 @@
\mplibnumbersystem{double}%
\mplibforcehmode
\begin{mplibcode}
- drawoptions(withpen pencircle scaled 1.5);
+ color CouleurTrace;
+ CouleurTrace=\useKV[NumerationAncienne]{Couleur};
+ drawoptions(withpen pencircle scaled 1.5 withcolor CouleurTrace);
ecart:=0.15u;
vardef Chiffre(expr t,a)=
picture Chinois;
@@ -94,7 +104,9 @@
\mplibnumbersystem{double}%
\mplibforcehmode
\begin{mplibcode}
- drawoptions(withpen pencircle scaled 1.5);
+ color CouleurTrace;
+ CouleurTrace=\useKV[NumerationAncienne]{Couleur};
+ drawoptions(withpen pencircle scaled 1.5 withcolor CouleurTrace);
%
picture MayaZero;
MayaZero=image(
@@ -170,7 +182,9 @@
\mplibforcehmode%
\begin{mplibcode}
u:=8mm;
- drawoptions(withpen pencircle scaled 1.5);
+ color CouleurTrace;
+ CouleurTrace=\useKV[NumerationAncienne]{Couleur};
+ drawoptions(withpen pencircle scaled 1.5 withcolor CouleurTrace);
%
picture Chevron,Clou;
Chevron=image(%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPropor.tex b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
index 0933a3e460..1e6526f41b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPropor.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPropor.tex
@@ -10,6 +10,7 @@
\def\Buildtabpropor{%
\setcounter{NbProporG}{0}%
\setcounter{NbProporD}{0}%
+ \colorlet{FondGrandeur}{\useKV[ClesPropor]{CouleurTab}}
\renewcommand{\arraystretch}{\useKV[ClesPropor]{Stretch}}%
\ifboolKV[ClesPropor]{Vertical}{%
\begin{tabular}{c|*{2}{>{\centering\arraybackslash}p{\useKV[ClesPropor]{Largeur}}|}c}%
@@ -26,8 +27,8 @@
}{%
\tabtoksa{}\tabtoksb{}%
\ifboolKV[ClesPropor]{Simple}{}{%
- \tabtoksa{\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurA}}%
- \tabtoksb{\cellcolor{\useKV[ClesPropor]{CouleurTab}}\useKV[ClesPropor]{GrandeurB}}%
+ \tabtoksa{\cellcolor{FondGrandeur}\useKV[ClesPropor]{GrandeurA}}%
+ \tabtoksb{\cellcolor{FondGrandeur}\useKV[ClesPropor]{GrandeurB}}%
}%
\ifboolKV[ClesPropor]{Math}{%
\foreachitem\compteur\in\ListeValeur{\expandafter\Updatetoksmath\compteur\nil}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
index d63849f613..fa6b138d6f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCPythagore.tex
@@ -1,7 +1,7 @@
%%%
% Le th\'eor\`eme de Pythagore
%%%
-\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,Perso=false,AllPerso=false,SansMots=false,Decalage=5mm}%
+\setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,Perso=false,AllPerso=false,SansMots=false,Decalage=5mm,ModeleCouleur=5}%
\defKV[ClesPythagore]{ValeurA=\setKV[ClesPythagore]{EnchaineA}}%
\defKV[ClesPythagore]{ValeurB=\setKV[ClesPythagore]{EnchaineB}}%
\defKV[ClesPythagore]{ValeurC=\setKV[ClesPythagore]{EnchaineC}}%
@@ -21,6 +21,8 @@
\ifluatex
\mplibforcehmode%
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesPythagore]{ModeleCouleur};
+
u:=\useKV[ClesPythagore]{Echelle};
pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
O=u*(2.5,2.5);
@@ -88,6 +90,7 @@
draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
draw D--E--F;
+ numeric decalage;
decalage=3mm;
if (#4<#5) or (#4=#5) :
if ypart(B)>ypart(O) :
@@ -124,7 +127,8 @@
% #7 angle de rotation de la figure
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesPythagore]{ModeleCouleur};
u:=\useKV[ClesPythagore]{Echelle};
decalage=\useKV[ClesPythagore]{Decalage};
pair A,B,C,O,D,E,F;%B est le sommet de l'angle droit
@@ -165,7 +169,8 @@
C:=C rotatedabout(O,#7);
draw A{dir(angle(B-A)+5)}..B{dir(angle(B-A)+5)};
draw B{dir(angle(C-B)+5)}..C{dir(angle(C-B)+5)};
- draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ draw C{dir(angle(A-C)+5)}..A{dir(angle(A-C)+5)};
+ numeric decalage;
decalage=3mm;
label(LATEX("\num{#4}"),O+decalage*(unitvector(O-B)));
label(LATEX("\num{#5}"),1/2[C,B]+decalage*(unitvector(1/2[C,B]-O)));
@@ -186,7 +191,8 @@
% #6 angle de rotation de la figure
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesPythagore]{ModeleCouleur};
u:=\useKV[ClesPythagore]{Echelle};
pair A,B,C,O,D,E,F,L[],M[],N[];%B est le sommet de l'angle droit
O=u*(2.5,2.5);
diff --git a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
index fa35906ead..9745bb144c 100644
--- a/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCQuestionsRelier.tex
@@ -2,8 +2,46 @@
% R\'eponses \`a relier
%%%
\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black}%
+\defKV[ClesRelie]{Graine=\PfCGraineAlea{#1}}%
-\newcommand\Relie[2][]{%
+\NewDocumentCommand\Relie{som}{%
+ \useKVdefault[ClesRelie]%
+ \setKV[ClesRelie]{#2}%
+ \colorlet{PfCRelieCouleurTrace}{\useKV[ClesRelie]{Couleur}}%
+ \setsepchar[*]{,*/}\reademptyitems%
+ \readlist*\ListeRelie{#3}%
+ \ignoreemptyitems%
+ \IfBooleanTF{#1}{%
+ \buildtabrelieauto%
+ %\par
+ \ifboolKV[ClesRelie]{Solution}{%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{%
+ \itemtomacro\PfCListeReponsesMelangees[##1]\PfCNumReponses%
+ \itemtomacro\ListeRelie[\PfCNumReponses,1]\untest%
+ % Le test est \untest\\
+ \ifx\bla\untest\bla%
+ \else
+ \tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-\PfCNumReponses) -- (RelieD-##1);}%
+ \fi
+ }%
+ }{%
+ }%
+ }{%
+ \buildtabrelie%
+ \ifboolKV[ClesRelie]{Solution}{%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{%
+ \itemtomacro\ListeRelie[##1,1]\untest%
+ \ifx\bla\untest\bla%
+ \else%
+ \tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-##1) -- (RelieD-\ListeRelie[##1,3]);}%
+ \fi
+ }%
+ }{%
+ }%
+ }%
+}%
+
+\newcommand\Relieold[2][]{%
\useKVdefault[ClesRelie]%
\setKV[ClesRelie]{#1}%
\setsepchar[*]{,*/}\reademptyitems%
@@ -44,17 +82,32 @@
\setcounter{NbRelie}{0}%
}%
-\def\buildtabrelieold{%
+\def\buildtabrelieauto{%
\setcounter{NbRelie}{0}%
+ \xdef\PfCFooListeNbQ{1}%
+ \xintFor* ##1 in{\xintSeq{2}{\ListeRelielen}}\do{%
+ \xdef\PfCFooListeNbQ{\PfCFooListeNbQ,##1}%
+ }%
+ \setsepchar{,}\ignoreemptyitems%
+ \MelangeListe{\PfCFooListeNbQ}{\ListeRelielen}%
+ \setsepchar{,}\ignoreemptyitems%
+ \readlist*\PfCListeReponsesMelangees{\faa}%
\renewcommand{\arraystretch}{\useKV[ClesRelie]{Stretch}}%
\begin{tabular}{p{\useKV[ClesRelie]{LargeurG}}cp{\useKV[ClesRelie]{Ecart}}>{\tikz[remember
- picture,baseline]{\node[name=RelieD-\theNbRelie]{\Large\textbullet};}}cp{\useKV[ClesRelie]{LargeurD}}}%
- \xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{\ListeRelie[##1,1]\itemtomacro\ListeRelie[##1,1]\untest%
-\ifx\bla\untest\bla%
- \uppercase{&}\stepcounter{NbRelie}%
+ picture]{\node[name=RelieD-\theNbRelie,inner
+ sep=0pt]{};\fill[] (RelieD-\theNbRelie) circle[radius=1.5pt]}}cp{\useKV[ClesRelie]{LargeurD}}}%
+ \xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{
+ \ListeRelie[##1,1]\itemtomacro\ListeRelie[##1,1]\untest%
+ \ifx\bla\untest\bla%
+ \uppercase{&}\stepcounter{NbRelie}\tikz[remember
+ picture,overlay]{\node[name=RelieG-\theNbRelie,inner
+ sep=0pt]{};}
\else
- \uppercase{&}\stepcounter{NbRelie}\tikz[remember picture,baseline]{\node[name=RelieG-\theNbRelie]{\Large\textbullet};}
-\fi&&&\ListeRelie[##1,2]\\}%
+ \uppercase{&}\stepcounter{NbRelie}\tikz[remember
+ picture,overlay]{\node[name=RelieG-\theNbRelie,inner
+ sep=0pt]{};\fill[]
+ (RelieG-\theNbRelie) circle[radius=1.5pt];}
+ \fi&&&\itemtomacro\PfCListeReponsesMelangees[##1]\PfCNumReponses\ListeRelie[\PfCNumReponses,2]\\}%
\end{tabular}%
\setcounter{NbRelie}{0}%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
index 6ab6ebf847..4c116cff67 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
@@ -1,7 +1,7 @@
%%%
% Reperage
%%%
-\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageUnites=true,MarquePrimaire=true,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,ValeurMiny=-4000,ValeurMaxy=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp",Niveaux=false,Decale=false,Tiret=false,Cadre=false}
+\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageUnites=true,MarquePrimaire=true,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,ValeurMiny=-4000,ValeurMaxy=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp",Niveaux=false,Decale=false,Tiret=false,Cadre=false,ModeleCouleur=5,EchelleCroix=1,CouleurCroix=black}
\defKV[ClesReperage]{Traces=\setKV[ClesReperage]{Code}}%
\defKV[ClesReperage]{Niveau=\setKV[ClesReperage]{Etages=#1}\setKV[ClesReperage]{Niveaux}}%
% ValeurOrigine permet de faire des morceaux de demi-droite gradu\'ee en passant par droite :)
@@ -53,6 +53,13 @@
\mplibnumbersystem{double}%
\mplibforcehmode%
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
+
+ if defaultcolormodel=7:
+ cmykcolor black;
+ black=(0,0,0,1);
+ fi;
+
input PfCSolid;
% Pour convertir les (Long,lat) données en degrés en (Long,lat) données en radians
vardef ConvDeg(expr fa,fl)=
@@ -235,7 +242,13 @@
\def\MPEspaceSphere#1#2{%
\ifluatex
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
+ if defaultcolormodel=7:
+ cmykcolor white,blanc;
+ white=(0,0,0,1);
+ blanc=(0,0,0,0);
+ fi;
typetrace:="3D";
typerepre:="persp";
anglephi:=\useKV[ClesReperage]{AnglePhi};
@@ -425,136 +438,142 @@
\def\MPEspacePave#1#2#3#4#5#6#7#8#9{%
\ifluatex%
\mplibforcehmode%
- \begin{mplibcode}
- typetrace:="3D";
- typerepre:="persp";
- Figure(-20u,-20u,20u,20u);
- Initialisation(1500,30,20,abs(#9));
- %marque_r:=marque_r/2;
- marque_p:="plein";
- color A,B,C,D,E,F,G,H,M[],N[];
- draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
- if #9>0:
- drawarrow Projette(A)--Projette(1.5[D,A]);
- drawarrow Projette(C)--Projette(1.5[D,C]);
- drawarrow Projette(E)--Projette(1.5[D,E]);
- label.top(btex $x$ etex,Projette(1.5[D,A]));
- label.top(btex $y$ etex,Projette(1.5[D,C]));
- label.top(btex $z$ etex,Projette(1.5[D,E]));
- label.ulft(btex 1 etex,Projette((1/#2)[D,A]));
- label.bot(btex 1 etex,Projette((1/#4)[D,C]));
- label.lft(btex 1 etex,Projette((1/#6)[D,E]));
- for k=1 upto (#2):
- pointe((k/#2)[D,A]);
- endfor;
- for k=1 upto (#4):
- pointe((k/#4)[D,C]);
- endfor;
- for k=1 upto (#6):
- pointe((k/#6)[D,E]);
- endfor;
- else:
- drawarrow Projette(D)--Projette(1.5[A,D]) dashed evenly;
- drawarrow Projette(B)--Projette(1.5[A,B]);
- drawarrow Projette(F)--Projette(1.5[A,F]);
- label.lrt(btex $x$ etex,Projette(1.5[A,D]));
- label.top(btex $y$ etex,Projette(1.5[A,B]));
- label.top(btex $z$ etex,Projette(1.5[A,F]));
- label.ulft(btex 1 etex,Projette((1/#2)[A,D]));
- label.bot(btex 1 etex,Projette((1/#4)[A,B]));
- label.lft(btex 1 etex,Projette((1/#6)[A,F]));
- for k=1 upto (#2):
- pointe((k/#2)[A,D]);
- endfor;
- for k=1 upto (#4):
- pointe((k/#4)[A,B]);
- endfor;
- for k=1 upto (#6):
- pointe((k/#6)[A,F]);
- endfor;
- fi;
- vardef tata(text t)=
- n:=1;%pour compter combien de points
- k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonn\'ee
- m:=0;%pour garder l'altitude
- if #8>0:
- for p_=t:
- if (n mod 4)=1:
- k:=p_;
- fi;
- if (n mod 4)=2:
- l:=p_;
- fi;
- if (n mod 4)=3:
- m:=p_;
- fi;
- if (n mod 4)=0:
- M[n]=(k/#2)[D,A]+(l/#4)*(C-D)+(m/#6)*(E-D);
- N[n]=(k/#2)[D,A]+(l/#4)*(C-D);
- if (#8>1):
- label.top(TEX(p_),Projette(M[n]));
- pointe(M[n]);
- fi;
- if (#8=1) or (#8=3) :
- drawoptions(dashed evenly withcolor gris);
- draw segment(M[n],(0,0,bluepart(M[n])));
- draw segment(M[n],N[n]);
- draw segment(N[n],(redpart(M[n]),0,0));
- draw segment(N[n],(0,greenpart(M[n]),0));
- drawoptions();
- fi;
- fi;
- n:=n+1;
- endfor;
- fi;
- enddef;
- vardef toto(text t)=
- n:=1;%pour compter combien de points
- k:=0;%pour garder l'abscisse
- l:=0;%pour garder l'ordonn\'ee
- m:=0;%pour garder l'altitude
- if #8>0:
- for p_=t:
- if (n mod 4)=1:
- k:=p_;
- fi;
- if (n mod 4)=2:
- l:=p_;
- fi;
- if (n mod 4)=3:
- m:=p_;
- fi;
- if (n mod 4)=0:
- % message("je suis ici : "&p_);
- M[n]=(k/#2)[A,D]+(l/#4)*(B-A)+(m/#6)*(F-A);
- N[n]=(k/#2)[A,D]+(l/#4)*(B-A);
- if (#8>1):
- label.top(TEX(p_),Projette(M[n]));
- pointe(M[n]);
- fi;
- if (#8=1) or (#8=3) :
- drawoptions(dashed evenly withcolor gris);
- draw segment(M[n],A+(0,0,bluepart(M[n])));
- draw segment(M[n],N[n]);
- draw segment(N[n],A+(l/#4)*(B-A));
- draw segment(N[n],A+(k/#2)*(D-A));
- drawoptions();
- fi;
- fi;
- n:=n+1;
- endfor;
- fi;
- enddef;
- if #9>0:
- tata(#7);
- else:
- toto(#7);
- fi;
- draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
- if \useKV[ClesReperage]{Code}:
- \useKV[ClesReperage]{Traces}
- fi;
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
+ if defaultcolormodel=7:
+ cmykcolor CoulTrace,gris;
+ CoulTrace=(0,0,0,1);
+ gris=0.1(0,0,0,1);
+ fi;
+ typetrace:="3D";
+ typerepre:="persp";
+ Figure(-20u,-20u,20u,20u);
+ Initialisation(1500,30,20,abs(#9));
+ % marque_r:=marque_r/2;
+ marque_p:="plein";
+ color A,B,C,D,E,F,G,H,M[],N[];
+ draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
+ if #9>0:
+ drawarrow Projette(A)--Projette(1.5[D,A]);
+ drawarrow Projette(C)--Projette(1.5[D,C]);
+ drawarrow Projette(E)--Projette(1.5[D,E]);
+ label.top(btex $x$ etex,Projette(1.5[D,A]));
+ label.top(btex $y$ etex,Projette(1.5[D,C]));
+ label.top(btex $z$ etex,Projette(1.5[D,E]));
+ label.ulft(btex 1 etex,Projette((1/#2)[D,A]));
+ label.bot(btex 1 etex,Projette((1/#4)[D,C]));
+ label.lft(btex 1 etex,Projette((1/#6)[D,E]));
+ for k=1 upto (#2):
+ pointe((k/#2)[D,A]);
+ endfor;
+ for k=1 upto (#4):
+ pointe((k/#4)[D,C]);
+ endfor;
+ for k=1 upto (#6):
+ pointe((k/#6)[D,E]);
+ endfor;
+ else:
+ drawarrow Projette(D)--Projette(1.5[A,D]) dashed evenly;
+ drawarrow Projette(B)--Projette(1.5[A,B]);
+ drawarrow Projette(F)--Projette(1.5[A,F]);
+ label.lrt(btex $x$ etex,Projette(1.5[A,D]));
+ label.top(btex $y$ etex,Projette(1.5[A,B]));
+ label.top(btex $z$ etex,Projette(1.5[A,F]));
+ label.ulft(btex 1 etex,Projette((1/#2)[A,D]));
+ label.bot(btex 1 etex,Projette((1/#4)[A,B]));
+ label.lft(btex 1 etex,Projette((1/#6)[A,F]));
+ for k=1 upto (#2):
+ pointe((k/#2)[A,D]);
+ endfor;
+ for k=1 upto (#4):
+ pointe((k/#4)[A,B]);
+ endfor;
+ for k=1 upto (#6):
+ pointe((k/#6)[A,F]);
+ endfor;
+ fi;
+ vardef tata(text t)=
+ n:=1;%pour compter combien de points
+ k:=0;%pour garder l'abscisse
+ l:=0;%pour garder l'ordonn\'ee
+ m:=0;%pour garder l'altitude
+ if #8>0:
+ for p_=t:
+ if (n mod 4)=1:
+ k:=p_;
+ fi;
+ if (n mod 4)=2:
+ l:=p_;
+ fi;
+ if (n mod 4)=3:
+ m:=p_;
+ fi;
+ if (n mod 4)=0:
+ M[n]=(k/#2)[D,A]+(l/#4)*(C-D)+(m/#6)*(E-D);
+ N[n]=(k/#2)[D,A]+(l/#4)*(C-D);
+ if (#8>1):
+ label.top(TEX(p_),Projette(M[n]));
+ pointe(M[n]);
+ fi;
+ if (#8=1) or (#8=3) :
+ drawoptions(dashed evenly withcolor gris);
+ draw segment(M[n],(0,0,bluepart(M[n])));
+ draw segment(M[n],N[n]);
+ draw segment(N[n],(redpart(M[n]),0,0));
+ draw segment(N[n],(0,greenpart(M[n]),0));
+ drawoptions();
+ fi;
+ fi;
+ n:=n+1;
+ endfor;
+ fi;
+ enddef;
+ vardef toto(text t)=
+ n:=1;%pour compter combien de points
+ k:=0;%pour garder l'abscisse
+ l:=0;%pour garder l'ordonn\'ee
+ m:=0;%pour garder l'altitude
+ if #8>0:
+ for p_=t:
+ if (n mod 4)=1:
+ k:=p_;
+ fi;
+ if (n mod 4)=2:
+ l:=p_;
+ fi;
+ if (n mod 4)=3:
+ m:=p_;
+ fi;
+ if (n mod 4)=0:
+ % message("je suis ici : "&p_);
+ M[n]=(k/#2)[A,D]+(l/#4)*(B-A)+(m/#6)*(F-A);
+ N[n]=(k/#2)[A,D]+(l/#4)*(B-A);
+ if (#8>1):
+ label.top(TEX(p_),Projette(M[n]));
+ pointe(M[n]);
+ fi;
+ if (#8=1) or (#8=3) :
+ drawoptions(dashed evenly withcolor gris);
+ draw segment(M[n],A+(0,0,bluepart(M[n])));
+ draw segment(M[n],N[n]);
+ draw segment(N[n],A+(l/#4)*(B-A));
+ draw segment(N[n],A+(k/#2)*(D-A));
+ drawoptions();
+ fi;
+ fi;
+ n:=n+1;
+ endfor;
+ fi;
+ enddef;
+ if #9>0:
+ tata(#7);
+ else:
+ toto(#7);
+ fi;
+ draw Pave(A,B,C,D,E,F,G,H)(#1,#3,#5);
+ if \useKV[ClesReperage]{Code}:
+ \useKV[ClesReperage]{Traces}
+ fi;
\end{mplibcode}
\else
\begin{mpost}[mpsettings={input PfCGeometrie;}]
@@ -719,6 +738,7 @@
% #5 : liste des points pour les string
\ifluatex
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
boolean Tiret,Code,AffichageGrad,Cadre;
Tiret=\useKV[ClesReperage]{Tiret};
Code=\useKV[ClesReperage]{Code};
@@ -1236,6 +1256,7 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
maxx:=0;
minx:=4000;
unitex:=\useKV[ClesReperage]{Unitex}*cm;
@@ -1251,6 +1272,13 @@
AffichageUnites=\useKV[ClesReperage]{AffichageUnites};
MarquePrimaire=\useKV[ClesReperage]{MarquePrimaire};
Decale=\useKV[ClesReperage]{Decale};
+ if defaultcolormodel=7:
+ cmykcolor CouleurCroix;
+ else:
+ color CouleurCroix;
+ fi;
+ CouleurCroix=\useKV[ClesReperage]{CouleurCroix};
+ EchelleCroix=\useKV[ClesReperage]{EchelleCroix};
numeric valeur[];
vardef titi(text t)=
n:=0;
@@ -1321,7 +1349,7 @@
endfor;
fi;
% marquage des points
- m_c:=m_c*3;
+ m_c:=m_c*3/EchelleCroix;
marque_p:="croix";
labeloffset:=labeloffset*3;
if AffichageUnites:
@@ -1346,7 +1374,9 @@
label.top(TEX(p_),unitp*(valeur[n],0));
fi;
if p_<>"":
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
fi;
endfor;
fi;
@@ -1358,7 +1388,9 @@
if substring(1,2) of p_="*":
ACoord:=scantokens(substring(0,1) of p_);
if ACoord=4:
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
elseif ACoord=3:
if Decale:
drawarrow (unitp*valeur[n],-7mm if (n mod 2)=0:-5mm fi)--(unitp*valeur[n],-3mm);
@@ -1379,17 +1411,23 @@
fi;
fi;
labeloffset:=Labeloffset;
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
elseif ACoord=2:
if ((ValeurUnitex*valeur[n]) mod pasx)<>0:
label.bot(TEX("\footnotesize$\frac{\num{\fpeval{"&decimal(ValeurOrigine*pasx)&"+"&decimal(ValeurUnitex-ValeurOrigine)&"*"&decimal(valeur[n])&"}}}{\num{"&decimal(pasx)&"}}$"),unitp*(valeur[n],0));
else:
label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurUnitex)&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0));
fi;
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
elseif ACoord=1:
label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0));
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
fi;
else:
if AffichageCoord=4:
@@ -1415,7 +1453,9 @@
fi;
fi;
labeloffset:=Labeloffset;
+ drawoptions(withcolor CouleurCroix);
pointe(unitp*(valeur[n],0));
+ drawoptions();
fi;
elseif AffichageCoord=2:
if p_<>"":
@@ -1424,12 +1464,16 @@
else:
label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-ValeurOrigine)&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0));
fi;
- pointe(unitp*(valeur[n],0));
+ drawoptions(withcolor CouleurCroix);
+ pointe(unitp*(valeur[n],0));
+ drawoptions();
fi;
elseif AffichageCoord=1:
if p_<>"":
label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0));
- pointe(unitp*(valeur[n],0));
+ drawoptions(withcolor CouleurCroix);
+ pointe(unitp*(valeur[n],0));
+ drawoptions();
fi;
fi;
fi;
@@ -1599,6 +1643,7 @@
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
maxx:=0;
minx:=4000;
unitex:=\useKV[ClesReperage]{Unitex}*cm;
@@ -1973,6 +2018,7 @@ label.lft(LATEX("\noexpand\footnotesize\noexpand\SI{\noexpand\fpeval{"&decimal(V
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
maxx:=0;
minx:=4000;
unitex:=\useKV[ClesReperage]{Unitex}*cm;
@@ -2159,6 +2205,11 @@ label.lft(LATEX("\noexpand\footnotesize\noexpand\SI{\noexpand\fpeval{"&decimal(V
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur};
+ if defaultcolormodel=7:
+ cmykcolor white;
+ white=(0,0,0,1);
+ fi;
unitex:=\useKV[ClesReperage]{Unitex}*cm;
pasx:=10;
unitp:=unitex/pasx;
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
index dbd54d1857..4ac96a74e6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterTableur.tex
@@ -1,7 +1,7 @@
%%%
% Tableur
%%%
-\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false}%
+\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0}%
%Idee de P. Nuns
\defKV[Tableur]{Couleur=\setKV[Tableur]{Selection}}%
%
@@ -9,7 +9,8 @@
%Bas\'e sur un code de Christian T\'ell\'ech\'ea.
\newcount\cntlin%
\newcount\cntcol%
-
+\newcount\Affichecntcol%
+\newcount\Affichecntlin%
\makeatletter%
\newtoks\t@b%
\long\def\ifremain@lines#1\\#2\@nil{%
@@ -28,13 +29,21 @@
\newlength\PfCTableurLargeurUn%
\newlength\PfCTableurLargeur%
-%\RequirePackage{printlen}
-
\newenvironment{Tableur}[1][]{%
\useKVdefault[Tableur]%
\setKV[Tableur]{#1}%
\setlength{\PfCTableurLargeurUn}{\fpeval{\useKV[Tableur]{LargeurUn}}pt}%
\setlength{\PfCTableurLargeur}{\fpeval{\useKV[Tableur]{Largeur}}pt}%
+ \ifnum\useKV[Tableur]{DebutColonnes}=0\relax
+ \Affichecntcol\z@%
+ \else
+ \Affichecntcol=\number\numexpr\useKV[Tableur]{DebutColonnes}-1%
+ \fi
+ \ifnum\useKV[Tableur]{DebutLignes}=0\relax
+ \Affichecntlin\z@%
+ \else
+ \Affichecntlin=\number\numexpr\useKV[Tableur]{DebutLignes}-1%
+ \fi
\ttfamily%
\newcolumntype{A}{>{\centering\arraybackslash}m{\PfCTableurLargeurUn}}%
\newcolumntype{B}{>{\centering\arraybackslash}m{\PfCTableurLargeur}}%
@@ -50,12 +59,13 @@
\t@b{%
\begin{NiceTabular}{%
>{%
- \global\cntcol\z@\global\advance\cntlin\@ne%
+ \global\cntcol\z@
+ \global\advance\cntlin\@ne%
\centering\arraybackslash%
\ifnum\cntlin>\@ne%
\ifboolKV[Tableur]{Selection}{%
- \xintifboolexpr{\cntlin>\useKV[Tableur]{Ligne} && \cntlin<\fpeval{\useKV[Tableur]{Ligne}+\useKV[Tableur]{PasL}+1}}{\textcolor{white}{\number\numexpr\cntlin-1\relax}}{\number\numexpr\cntlin-1\relax}%
- }{\number\numexpr\cntlin-1\relax}\fi}%
+ \xintifboolexpr{\cntlin>\useKV[Tableur]{Ligne} && \cntlin<\fpeval{\useKV[Tableur]{Ligne}+\useKV[Tableur]{PasL}+1}}{\textcolor{white}{\fpeval{\cntlin+\Affichecntlin-1}}}{\fpeval{\cntlin+\Affichecntlin-1}}%
+ }{\fpeval{\cntlin+\Affichecntlin-1}}\fi}%
wc{20pt}A*{\fpeval{\useKV[Tableur]{Colonnes}-1}}{B}}[hvlines,color-inside]%
\CodeBefore
% on colorie en gris toute la première ligne
@@ -80,23 +90,24 @@
}%
\Body
%
- }%
+ }%
\loop%
\ifnum\cntcol<\useKV[Tableur]{Colonnes}%
- \advance\cntcol\@ne%
+ \advance\cntcol\@ne%
+ \advance\Affichecntcol\@ne%
\addtot@b{&}%
% modif by Pascal Nuns
\ifboolKV[Tableur]{Selection}{%
\ifnum\cntcol>\fpeval{\useKV[Tableur]{Colonne}-1}%
\ifnum\cntcol<\fpeval{\useKV[Tableur]{Colonne}+\useKV[Tableur]{PasC}}%
- \edftot@b{{\noexpand\textcolor{white}{\noexpand\bfseries\@Alph{\the\cntcol}}}}%
+ \edftot@b{{\noexpand\textcolor{white}{\noexpand\bfseries\@Alph{\the\Affichecntcol}}}}%
\else%
- \edftot@b{\@Alph{\the\cntcol}}%
+ \edftot@b{\@Alph{\the\Affichecntcol}}%
\fi%
\else%
- \edftot@b{\@Alph{\the\cntcol}}%
+ \edftot@b{\@Alph{\the\Affichecntcol}}%
\fi%
- }{\edftot@b{\@Alph{\the\cntcol}}}%
+ }{\edftot@b{\@Alph{\the\Affichecntcol}}}%
% fin de modif
\repeat%
\addtot@b{\\&}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
index b88aa3d582..a5ce8ebf63 100644
--- a/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCResoudreEquation.tex
@@ -1,7 +1,7 @@
%%%
% Equations
%%%
-\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false}
+\setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,ModeleBarre=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false}
\newcommand\rightcomment[4]{%
\begin{tikzpicture}[remember picture,overlay]
@@ -148,7 +148,8 @@
\input{PfCEquationComposition2}%
\input{PfCEquationPose1}%
\input{PfCEquationSymbole1}%
-\input{PfCEquationLaurent1}
+\input{PfCEquationLaurent1}%
+\input{PfCEquationModeleBarre}%
\newcommand\ResolEquation[5][]{%
\useKVdefault[ClesEquation]%
@@ -166,20 +167,24 @@
\ifboolKV[ClesEquation]{Verification}{%
\Verification[#1]{#2}{#3}{#4}{#5}%
}{%
- \ifboolKV[ClesEquation]{Symbole}{%
- \ResolEquationSymbole[#1]{#2}{#3}{#4}{#5}%
+ \ifboolKV[ClesEquation]{ModeleBarre}{%
+ \ResolEquationMBarre[#1]{#2}{#3}{#4}{#5}%
}{%
- \ifboolKV[ClesEquation]{Laurent}{%
- \ResolEquationLaurent[#1]{#2}{#3}{#4}{#5}%
+ \ifboolKV[ClesEquation]{Symbole}{%
+ \ResolEquationSymbole[#1]{#2}{#3}{#4}{#5}%
}{%
- \ifboolKV[ClesEquation]{Terme}{%
- \ResolEquationTerme[#1]{#2}{#3}{#4}{#5}%
- }{\ifboolKV[ClesEquation]{Composition}{%
- \ResolEquationComposition[#1]{#2}{#3}{#4}{#5}%
- }{\ifboolKV[ClesEquation]{Pose}{%
- \ResolEquationL[#1]{#2}{#3}{#4}{#5}%
- }{%
- \ResolEquationSoustraction[#1]{#2}{#3}{#4}{#5}%
+ \ifboolKV[ClesEquation]{Laurent}{%
+ \ResolEquationLaurent[#1]{#2}{#3}{#4}{#5}%
+ }{%
+ \ifboolKV[ClesEquation]{Terme}{%
+ \ResolEquationTerme[#1]{#2}{#3}{#4}{#5}%
+ }{\ifboolKV[ClesEquation]{Composition}{%
+ \ResolEquationComposition[#1]{#2}{#3}{#4}{#5}%
+ }{\ifboolKV[ClesEquation]{Pose}{%
+ \ResolEquationL[#1]{#2}{#3}{#4}{#5}%
+ }{%
+ \ResolEquationSoustraction[#1]{#2}{#3}{#4}{#5}%
+ }%
}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCScratch.tex b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
index 3f1e8679d2..0315d8d3a8 100644
--- a/macros/latex/contrib/profcollege/latex/PfCScratch.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCScratch.tex
@@ -11,7 +11,7 @@
\def\barre{\vrule height2.1ex depth.9ex width0pt}%
\def\demibarre{\vrule height1.4ex depth.6ex width0pt}%
-\setKVdefault[Scratch]{Impression=false,Numerotation=false,Echelle=1,Naturel=false}%
+\setKVdefault[Scratch]{ModeleCouleur=5,Impression=false,Numerotation=false,Echelle=1,Naturel=false}%
\ifluatex
\NewDocumentEnvironment{Scratch}{o +b}{%
@@ -19,17 +19,25 @@
\setKV[Scratch]{#1}%
\mplibforcehmode%
\ifboolKV[Scratch]{Naturel}{}{\myfontScratch}%
- \begin{mplibcode}%
- boolean Naturel;
- Naturel=\useKV[Scratch]{Naturel};
- if Naturel: input PfCPseudo; print:=true; else: input PfCScratch; print:=\useKV[Scratch]{Impression}; fi;
- NumeroteLignes:=\useKV[Scratch]{Numerotation};%
- #2%
- picture recap;%
- recap:=currentpicture scaled \useKV[Scratch]{Echelle};%
- currentpicture:=nullpicture;%
- draw recap;%
- \end{mplibcode}%
+ \begin{mplibcode}%
+ defaultcolormodel:=\useKV[Scratch]{ModeleCouleur};
+ boolean Naturel;
+ Naturel=\useKV[Scratch]{Naturel};
+ if Naturel: input PfCPseudo; print:=true; else: input PfCScratch; print:=\useKV[Scratch]{Impression}; fi;
+ NumeroteLignes:=\useKV[Scratch]{Numerotation};%
+ if defaultcolormodel=7:
+ cmykcolor white,White,CoulLignes;
+ coefprint:=1-coefprint;
+ White=(0,0,0,1);
+ white=(0,0,0,0);
+ CoulLignes=(0,0,0,1);
+ fi;
+ #2%
+ picture recap;%
+ recap:=currentpicture scaled \useKV[Scratch]{Echelle};%
+ currentpicture:=nullpicture;%
+ draw recap;%
+ \end{mplibcode}%
}{}
\else%
\NewDocumentEnvironment{Scratch}{o +b}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
index 3e2aa47db9..bea6d2d688 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSimplifierFraction.tex
@@ -316,4 +316,17 @@
\tofrac{#1/#2}
\fi
}%
+}%
+
+\NewDocumentCommand\LesDiviseursCommuns{mm}{%
+ \xdef\PfCListeDivComAvant{1}%
+ \xintFor* ##2 in {\xintSeq{2}{#1}}\do{%
+ \modulo{#1}{##2}\relax
+ \ifnum\remainder=0\relax%
+ \modulo{#2}{##2}\relax
+ \ifnum\remainder=0\relax%
+ \xdef\PfCListeDivComAvant{\PfCListeDivComAvant,##2}%
+ \fi%
+ \fi%
+ }%
}% \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCSolides.tex b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
index 0dfa500bf1..9da7bce259 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSolides.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSolides.tex
@@ -844,6 +844,74 @@
\fi
}
+%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand\MPSolideDemiSphere[3]{%
+ \ifluatex
+ \mplibnumbersystem{double}
+ \mplibforcehmode
+ \begin{mplibcode}
+ boolean NommeSommets,Code,Sections,Axes,RemplisSection;
+ NommeSommets=\useKV[ClesSolides]{Sommets};
+ Code=\useKV[ClesSolides]{Code};
+ Axes:=\useKV[ClesSolides]{Axes};
+ %Initialisation
+ PfCRho=\useKV[ClesSolides]{Rho};
+ PfCPhi=0;%\useKV[ClesSolides]{Phi};
+ PfCTheta=10;%\useKV[ClesSolides]{Theta};
+ PfCDistance=\useKV[ClesSolides]{Distance};
+ anglerotationx=\useKV[ClesSolides]{Anglex};
+ rayonsphere=\useKV[ClesSolides]{RayonSphere};
+
+ color PfCOutColor;
+ PfCOutColor=\useKV[ClesSolides]{Couleur};
+ input PfCSolid;
+
+ Figure(-10u,-10u,10u,10u);
+ Initialisation(PfCRho,PfCPhi,PfCTheta,PfCDistance);
+ typetrace:="3D";
+ typerepre:="persp";
+ eclairage:=false;
+ nb:=24;%36
+ subh:=36;%
+ incolor:=white;
+ outcolor:=white;%PfCOutColor;
+ % Ferme1:=false;
+ creux:=true;
+ angx:=anglerotationx;
+ Objetdemispherebasse1("R="&decimal(rayonsphere));
+ % traits:=false;
+ AffichageObjet1;
+ color Sommet[],SommetN,SommetS,SommetB;
+ Sommet1=(0,0,0);
+ Sommet2=(0,rayonsphere,0);
+ Sommet3=(-rayonsphere,0,0);
+ Sommet4=(0,0,rayonsphere);
+ SommetN=Sommet4;
+ SommetS=(0,0,-rayonsphere);
+ SommetB=(rayonsphere,0,0);
+ Sommet2:=RotXYZ(Sommet2);
+ Sommet3:=RotXYZ(Sommet3);
+ Sommet4:=RotXYZ(Sommet4);
+ SommetN:=RotXYZ(SommetN);
+ SommetS:=RotXYZ(SommetS);
+ SommetB:=RotXYZ(SommetB);
+
+ fill Cercles((0,0,0),(0,1,0),(0,0,0),(0,1,0),(-1,0,0)) withcolor white;
+ trace Cercles((0,0,0),(0,1,0),(0,0,0),(0,1,0),(-1,0,0));
+
+ DefinirSommets(#1);
+
+ if Code:
+ \useKV[ClesSolides]{Traces};
+ fi;
+
+ \end{mplibcode}
+ \mplibnumbersystem{scaled}
+ \fi
+}
+%%%
+
+
\def\UpdatetoksSolide#1\nil{\addtotok\toksolidelistesommets{"#1",}}
\newtoks\toksolidelistesommets%
\newtoks\toksolidelistepointssections%
@@ -876,6 +944,9 @@
{sphere}{%
\MPSolideSphere{\useKV[ClesSolides]{ListeSommets}}{\the\toksolidelistesommets}{\useKV[ClesSolides]{PointsSection}}%
}%
+ {demisphere}{%
+ \MPSolideDemiSphere{\useKV[ClesSolides]{ListeSommets}}{\the\toksolidelistesommets}{\useKV[ClesSolides]{PointsSection}}%
+ }%
{boule}{%
\MPSolideSphere{\useKV[ClesSolides]{ListeSommets}}{\the\toksolidelistesommets}{\useKV[ClesSolides]{PointsSection}}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 3be43cc34d..0fc78fb757 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -26,7 +26,9 @@ Representation=false,%
%Pour les barres horizontales
Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0,%Grille est dispo
% Pour les histogrammes
-Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
+Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1,%
+% Pour la quadri...
+ModeleCouleur=5%
}%
% compl\'ements
%\defKV[ClesStat]{ListeHachures=\setKV[ClesStat]{Hachures}}%
@@ -305,6 +307,7 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
\ifluatex%
\mplibforcehmode%
\begin{mplibcode}%
+ defaultcolormodel := \useKV[ClesStat]{ModeleCouleur};
\NewMPDiagBarreHorCode%
vardef TraceDiag=
if Grille:
@@ -536,6 +539,8 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesStat]{ModeleCouleur};
+
\MPStatNewCode
%
vardef Test(expr nb)=
@@ -935,6 +940,8 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
\ifluatex
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesStat]{ModeleCouleur};
+
\NewMPStatCirculaireCodeQ
% DebutAngle=\useKV[ClesStat]{DebutAngle};
if Inverse=false:
@@ -1358,6 +1365,8 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
% \mplibnumbersystem{double}
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesStat]{ModeleCouleur};
+
maxx:=-infinity;
minx:=infinity;
maxy:=-infinity;
@@ -1815,13 +1824,13 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
\[
\num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}.%
\]}{%
\[
\num{\ListeComplete[1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{3}}\do{%
+\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}}+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
+\num{\ListeComplete[##1,2]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}%
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}.%
\]%
}%
}{}%
@@ -2001,7 +2010,7 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
\[
\ifnum\ListeComplete[1,2]=1\else\num{\ListeComplete[1,2]}\times\fi\num{\ListeComplete[1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}\xintFor* ##1 in {\xintSeq {2}{\ListeCompletelen}}\do{%
+\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}.
\]
}{%
\[
@@ -2009,7 +2018,7 @@ Histogramme=false,UniteAire=1,MemeAmpli,DepartHisto=1%
+\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
}+\dots\xintFor* ##1 in {\xintSeq {\ListeCompletelen-1}{\ListeCompletelen}}\do{%
+\ifnum\ListeComplete[##1,2]=1\else\num{\ListeComplete[##1,2]}\times\fi\num{\ListeComplete[##1,1]}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
- }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}
+ }=\num{\SommeDonnees}\ifboolKV[ClesStat]{Concret}{~\text{\useKV[ClesStat]{Unite}}}{}.
\]
}%
}{}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCThales.tex b/macros/latex/contrib/profcollege/latex/PfCThales.tex
index 1b8ed8a5ba..47aabb47da 100644
--- a/macros/latex/contrib/profcollege/latex/PfCThales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCThales.tex
@@ -8,7 +8,7 @@
\ppcm=\numexpr#1*#2/\pgcd\relax%
}%
-\setKVdefault[ClesThales]{Calcul=true,Droites=false,Propor=false,Segment=false,Figure=false,FigureSeule=false,Figurecroisee=false,FigurecroiseeSeule=false,Angle=0,Precision=2,Entier=false,Unite=cm,Reciproque=false,Produit=false,ChoixCalcul=0,Simplification,Redaction=false,Remediation=false,Echelle=1cm,Perso=false,CalculsPerso=false,IntroCalculs,CouleursNum=false,CouleursDen=false}
+\setKVdefault[ClesThales]{Calcul=true,Droites=false,Propor=false,Segment=false,Figure=false,FigureSeule=false,Figurecroisee=false,FigurecroiseeSeule=false,Angle=0,Precision=2,Entier=false,Unite=cm,Reciproque=false,Produit=false,ChoixCalcul=0,Simplification,Redaction=false,Remediation=false,Echelle=1cm,Perso=false,CalculsPerso=false,IntroCalculs,CouleursNum=false,CouleursDen=false,ModeleCouleur=5}
\defKV[ClesThales]{CouleurNum=\setKV[ClesThales]{CouleursNum}}
\defKV[ClesThales]{CouleurDen=\setKV[ClesThales]{CouleursDen}}
@@ -26,6 +26,7 @@
% \mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
u:=\useKV[ClesThales]{Echelle};
boolean CouleursNum,CouleursDen;
CouleursNum=\useKV[ClesThales]{CouleursNum};
@@ -177,6 +178,7 @@
\mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
u:=\useKV[ClesThales]{Echelle};
pair A,B,C,M,N,O;%
%On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
@@ -261,6 +263,7 @@
\mplibforcehmode
\mplibcodeinherit{enable}
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
u:=\useKV[ClesThales]{Echelle};
boolean CouleursNum,CouleursDen;
CouleursNum=\useKV[ClesThales]{CouleursNum};
@@ -434,6 +437,7 @@
\mplibforcehmode
\mplibcodeinherit{enable}
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
u:=\useKV[ClesThales]{Echelle};
pair A,B,C,M,N,O;%
O=(2.5u,2.5u);
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
index e562486a58..c31076e010 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrigonometrie.tex
@@ -6,6 +6,7 @@
% \mplibcodeinherit{enable}
\mplibforcehmode
\begin{mplibcode}
+ defaultcolormodel := \useKV[ClesTrigo]{ModeleCouleur};
u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
% On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
@@ -210,7 +211,8 @@
\ifluatex
\mplibcodeinherit{enable}
\mplibforcehmode
- \begin{mplibcode}
+ \begin{mplibcode}
+ defaultcolormodel := \useKV[ClesTrigo]{ModeleCouleur};
u:=\useKV[ClesTrigo]{Echelle};
pair A,B,C,O,I,D,E,F;%
% On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
@@ -347,7 +349,7 @@
\fi
}
-\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,ValeurExacte=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm}%
+\setKVdefault[ClesTrigo]{Angle=0,Propor=false,Figure=false,FigureSeule=false,ValeurExacte=false,Precision=2,Unite=cm,Sinus=false,Cosinus=false,Tangente=false,Perso=false,Echelle=1cm,ModeleCouleur=5}%
\newcommand\RedactionTrigo{}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCTrio.tex b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
index e847c48aff..11355d5d79 100644
--- a/macros/latex/contrib/profcollege/latex/PfCTrio.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCTrio.tex
@@ -1,7 +1,7 @@
\newlength\PfCTrioHauteur%
\newcounter{PfCTrioLettre}%
-\setKVdefault[Trio]{Largeur=15pt,Graines=false,Repere=false,Cibles=false,Ligne=1,Colonne=1,Vide=false,VideRepere=false}%
+\setKVdefault[Trio]{Largeur=15pt,Graines=false,Repere=false,Cibles=false,Ligne=1,Colonne=1,Vide=false,VideRepere=false,Relatifs=false,Ecole=false}%
\defKV[Trio]{Graine=\setKV[Trio]{Graines}}%
\defKV[Trio]{Cible=\setKV[Trio]{Cibles}}%
@@ -22,10 +22,19 @@
\useKVdefault[Trio]%
\setKV[Trio]{#1}%
\ifboolKV[Trio]{Graines}{\PfCGraineAlea{\useKV[Trio]{Graine}}}{}%
- \ifboolKV[Trio]{Repere}{\xdef\PfCTrioNbCases{8}}{\xdef\PfCTrioNbCases{7}}%
+ \ifboolKV[Trio]{Ecole}{\xdef\PfCTrioMaxA{5}\xdef\PfCTrioMaxB{3}}{\xdef\PfCTrioMaxA{7}\xdef\PfCTrioMaxB{5}}
+ \ifboolKV[Trio]{Repere}{\xdef\PfCTrioNbCases{\fpeval{\PfCTrioMaxA+1}}}{\xdef\PfCTrioNbCases{\PfCTrioMaxA}}%
% On définit la liste de nombres
- \xdef\PfCTrioFoo{1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9}%
- \MelangeListe{\PfCTrioFoo}{49}%
+ \ifboolKV[Trio]{Relatifs}{%
+ \xdef\PfCTrioFoo{-4,-4,-4,-4,-4,-3,-3,-3,-3,-3,-3,-2,-2,-2,-2,-2,-2,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4}%
+ }{%
+ \ifboolKV[Trio]{Ecole}{%
+ \xdef\PfCTrioFoo{1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5}%
+ }{%
+ \xdef\PfCTrioFoo{1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9}%
+ }%
+ }%
+ \ifboolKV[Trio]{Ecole}{\MelangeListe{\PfCTrioFoo}{25}}{\MelangeListe{\PfCTrioFoo}{49}}%
\setsepchar{,}\ignoreemptyitems%
\readlist*\PfCTrioMelange{\faa}%
\reademptyitems%
@@ -39,11 +48,11 @@
\xdef\PfCTrioAjout{0}
}%
% Calculs des horizontaux
- \xintFor* ##2 in{\xintSeq{1}{7}}\do{%
- \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+2}]}%
+ \xintFor* ##2 in{\xintSeq{1}{\PfCTrioMaxA}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{\PfCTrioMaxB}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -60,11 +69,11 @@
\xintBreakFor}{}%
}%
% Calculs des verticaux
- \xintFor* ##2 in{\xintSeq{1}{7}}\do{%
- \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
+ \xintFor* ##2 in{\xintSeq{1}{\PfCTrioMaxA}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{\PfCTrioMaxB}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1)+##2}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1+1)+##2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -81,11 +90,11 @@
\xintBreakFor}{}%
}%
% Calculs des diag positives (descendantes)
- \xintFor* ##2 in{\xintSeq{1}{5}}\do{%
- \xintFor* ##1 in{\xintSeq{1}{5}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2)+##1+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2+1)+##1+2}]}%
+ \xintFor* ##2 in{\xintSeq{1}{\PfCTrioMaxB}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{\PfCTrioMaxB}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2+1)+##1+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -106,11 +115,11 @@
\xintBreakFor}{}%
}%
% Calculs des diagonale négatives (montantes)
- \xintFor* ##2 in{\xintSeq{1}{5}}\do{%
- \xintFor* ##1 in{\xintSeq{2}{6}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1-1)+##2+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1-2)+##2+2}]}%
+ \xintFor* ##2 in{\xintSeq{1}{\PfCTrioMaxB}}\do{%
+ \xintFor* ##1 in{\xintSeq{2}{\fpeval{\PfCTrioMaxB+1}}}\do{%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-2)+##2+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -134,15 +143,15 @@
}{}%
\Body
\ifboolKV[Trio]{Repere}{%
- \rule{0pt}{\PfCTrioHauteur}\Block[fill=gray!15]{}{}\xintFor* ##1in{\xintSeq{1}{7}}\do{%
+ \rule{0pt}{\PfCTrioHauteur}\Block[fill=gray!15]{}{}\xintFor* ##1in{\xintSeq{1}{\PfCTrioMaxA}}\do{%
&\Block[fill=gray!15]{}{\stepcounter{PfCTrioLettre}\Alph{PfCTrioLettre}}%
}\\
}{}%
- \xintFor* ##1 in{\xintSeq{1}{7}}\do{%
+ \xintFor* ##1 in{\xintSeq{1}{\PfCTrioMaxA}}\do{%
\rule{0pt}{\PfCTrioHauteur}%
\ifboolKV[Trio]{Repere}{\Block[fill=gray!15]{}{##1}}{}%
- \ifboolKV[Trio]{Repere}{&}{}\xintFor* ##2 in{\xintSeq{1}{7}}\do{%
- \xintifForFirst{}{&}\Block{}{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
+ \ifboolKV[Trio]{Repere}{&}{}\xintFor* ##2 in{\xintSeq{1}{\PfCTrioMaxA}}\do{%
+ \xintifForFirst{}{&}\Block{}{\num{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2}]}}%
}\\
}%
\end{NiceTabular}%
@@ -165,9 +174,9 @@
% Calculs des horizontaux
\xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Ligne}}}{\fpeval{\useKV[Trio]{Ligne}+2}}}\do{%
\xintFor* ##1 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}}}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2-1)+##1+2}]}%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -186,9 +195,9 @@
% Calculs des verticaux
\xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}+2}}}\do{%
\xintFor* ##1 in{\xintSeq{\useKV[Trio]{Ligne}}{\useKV[Trio]{Ligne}}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1)+##2}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1+1)+##2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
|| \fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -207,9 +216,9 @@
% Calculs des diag positives (descendantes)
\xintFor* ##2 in{\xintSeq{\useKV[Trio]{Ligne}}{\useKV[Trio]{Ligne}}}\do{%
\xintFor* ##1 in{\xintSeq{\useKV[Trio]{Colonne}}{\useKV[Trio]{Colonne}}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##2-1)+##1}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##2)+##1+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##2+1)+##1+2}]}%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2-1)+##1}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2)+##1+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##2+1)+##1+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -232,9 +241,9 @@
% Calculs des diagonale négatives (montantes)
\xintFor* ##2 in{\xintSeq{\useKV[Trio]{Colonne}}{\useKV[Trio]{Colonne}}}\do{%
\xintFor* ##1 in{\xintSeq{\fpeval{\useKV[Trio]{Ligne}}}{\fpeval{\useKV[Trio]{Ligne}}}}\do{%
- \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{7*(##1+1)+##2}]}%
- \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{7*(##1)+##2+1}]}%
- \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{7*(##1-1)+##2+2}]}%
+ \xdef\PfCTrioNombreA{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1+1)+##2}]}%
+ \xdef\PfCTrioNombreB{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1)+##2+1}]}%
+ \xdef\PfCTrioNombreC{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2+2}]}%
\xintifboolexpr{\fpeval{\PfCTrioNombreA*\PfCTrioNombreB+\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreA*\PfCTrioNombreB-\PfCTrioNombreC}==\useKV[Trio]{Cible}%
||\fpeval{\PfCTrioNombreB*\PfCTrioNombreC+\PfCTrioNombreA}==\useKV[Trio]{Cible}%
@@ -266,7 +275,7 @@
\rule{0pt}{\PfCTrioHauteur}%
\ifboolKV[Trio]{Repere}{\Block[fill=gray!15]{}{\ifboolKV[Trio]{VideRepere}{}{##1}}}{}%
\ifboolKV[Trio]{Repere}{&}{}\xintFor* ##2 in{\xintSeq{\fpeval{\useKV[Trio]{Colonne}}}{\fpeval{\useKV[Trio]{Colonne}+2}}}\do{%
- \xintifForFirst{}{&}\Block{}{\ifboolKV[Trio]{Vide}{}{\PfCTrioMelange[\fpeval{7*(##1-1)+##2}]}}%
+ \xintifForFirst{}{&}\Block{}{\ifboolKV[Trio]{Vide}{}{\num{\PfCTrioMelange[\fpeval{\PfCTrioMaxA*(##1-1)+##2}]}}}%
}\\
}%
\end{NiceTabular}%
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index 18b287fba4..5b62dc03b7 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2023/11/14}%
+\def\filedate{2023/12/01}%
\let\PfCfiledate\filedate%
-\def\fileversion{0.99-z-w}%
+\def\fileversion{0.99-z-y}%
\let\PfCfileversion\fileversion%
\ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
@@ -68,16 +68,10 @@
\else%
\if@shellescape%
\RequirePackage[shellescape,latex]{gmp}%inclusion de figures metapost "à la volée"%
-\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}%
-\usempxclass{article}%
-\usempxpackage{ProfCollege}%
-\usempxpackage[utf8]{inputenc}%
-\usempxpackage[T1]{fontenc}%
-\usempxpackage{fourier}%
-\usempxpackage[french]{babel}%
-\usempxpackage{pifont}%
\else%
+%
\RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"%
+\fi%
\gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}}%
\usempxclass{article}%
\usempxpackage{ProfCollege}%
@@ -87,7 +81,6 @@
\usempxpackage[french]{babel}%
\usempxpackage{pifont}%
\fi%
-\fi%
\RequirePackage{xintexpr}%
\RequirePackage{listofitems}%
@@ -176,6 +169,10 @@
}%
}%
+\NewDocumentCommand\NumS{m}{%
+ \xintifboolexpr{#1==0}{}{\xintifboolexpr{#1>0}{+\num{#1}}{\num{#1}}}
+}%
+
\newcounter{Marque}
\NewDocumentCommand\AffichageTab{O{x}mmm}{%
@@ -225,7 +222,7 @@
\fi%
}%
%encadrer avec des "sommets arrondis"
-\newsavebox{\logobox}%
+%\newsavebox{\logobox}%
\newcommand\Logo[2]{%
\setbox1=\hbox{\includegraphics[scale=#2]{#1}}%
@@ -248,6 +245,59 @@
\end{tikzpicture}%
}%
+\makeatletter
+\def\Suspensionfill{%
+\leavevmode
+\cleaders \hb@xt@\LongBoitePoint{\ldotp}\hfill
+\kern\z@}
+\makeatother
+
+\newlength{\LongBoitePoint}
+
+\NewDocumentCommand\PointsSuspensionold{sm}{%
+ \setbox2=\hbox{\ldotp}%
+ \setlength{\LongBoitePoint}{\wd2}%
+ \IfBooleanTF{#1}{%
+ \Suspensionfill%
+ }{%
+ \setbox1=\hbox{#2}%
+ \StrLen{#2}[\LongueurPoints]%
+ \ifmmode%
+ \mathinner{%
+ \xintFor* ##1 in {\xintSeq{1}{\LongueurPoints}}\do{%
+ \ldotp%
+ }%
+ }%
+ \else%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{round(\wd1/\wd2)}}}\do{%
+ \ldotp%
+ }%
+ \fi%
+ }%
+}%
+
+\NewDocumentCommand\PointsSuspension{m}{%
+ \setbox2=\hbox{\ldotp}%
+ \setlength{\LongBoitePoint}{\wd2}%
+ \ifx\bla#1\bla%
+ \Suspensionfill%
+ \else%
+ \setbox1=\hbox{#1}%
+ \StrLen{#1}[\LongueurPoints]%
+ \ifmmode%
+ \mathinner{%
+ \xintFor* ##1 in {\xintSeq{1}{\LongueurPoints}}\do{%
+ \ldotp%
+ }%
+ }%
+ \else%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{round(\wd1/\wd2)}}}\do{%
+ \ldotp%
+ }%
+ \fi%
+ \fi%
+}%
+
\makeatletter%
\NewDocumentCommand\Dotfill{}{%
\leavevmode%
@@ -263,8 +313,8 @@
}%
\NewDocumentCommand\Lignespointilles{m}{%
- \xintifboolexpr{#1>1}{%
- \xintFor* ##1 in {\xintSeq {1}{#1}}\do{%
+ \xintifboolexpr{\fpeval{#1}>1}{%
+ \xintFor* ##1 in {\xintSeq {1}{\fpeval{#1}}}\do{%
\pointilles\par%
}%
}{}%
@@ -660,6 +710,7 @@
\readlist*\ListeMateriaux{aluminium/'/2.7,chêne/e~/0.69,bouleau/e~/0.65,sapin/e~/0.45,polystyrène/e~/1.04,porcelaine/la/2.5,acier/'/7.85,cuivre/e~/8.92,fer/e~/7.86,or/'/19.3,argent/'/10.5,bronze/e~/8.4,plomb/e~/11.35,marbre/e~/2.75,laiton/e~/7.3,titane/e~/4.5,PVC/e~/1.38}
\setsepchar{,}
+\input{PfCConversion}
\input{PfCCritere}
\input{PfCLego}
\input{PfCJeton}
diff --git a/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
index 28252f90bf..c308ec750c 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
@@ -30,6 +30,9 @@ nblignes:=0;
boolean print;
print:=false;
+color coulprint;
+coulprint=0.8white;
+
color CouleurEcran;
CouleurEcran=(107/255,148/255,107/255);
@@ -177,8 +180,8 @@ vardef LCD(text nt)(text rep)(expr NB)=
nblignes:=nblignes+1;
path Ecran;
Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ fill Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
if length(nt)>0:
for k=0 upto length(nt)-1:
BlocAffichage;
@@ -187,13 +190,13 @@ vardef LCD(text nt)(text rep)(expr NB)=
fi;
for k=1 upto NB:
Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(k+nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ fill Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
endfor;
nblignes:=nblignes+NB+1;
Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
- fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
- draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
+ fill Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
+ draw Ecran withcolor if print=true:coulprint else:CouleurEcran fi;
if Calcul:
string toto;
toto=decimal(rep);
@@ -207,4 +210,17 @@ vardef LCD(text nt)(text rep)(expr NB)=
fi;
enddef;
+def tand(expr nbang)=sind(nbang)/cosd(nbang)enddef;
+
+vardef arcsind(expr x)=%Définition mathématique en degré
+ angle((sqrt(1-x**2),x))
+enddef;
+
+vardef arccosd(expr x)=%Définition mathématique en degré
+ angle((x,sqrt(1-x**2)))
+enddef;
+
+vardef arctand(expr x)=arcsind(x/(1++x))
+enddef;
+
endinput;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index bada2c141a..7ec73e648c 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -523,6 +523,45 @@ vardef marquedemidroite(expr aa,bb)=
tr
enddef;
+vardef marque_para(expr dd,ee,pa)=
+ save im;
+ picture im;
+ pair kk,ll,mn,mo;
+ kk=point(pa*length dd) of dd;
+ ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+ mn=iso(kk,ll);
+ mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+ im=image(
+ drawarrow mo--kk;
+ drawarrow symetrie(mo,mn)--ll;
+ label(btex // etex,mn);
+ );
+ im
+enddef;
+
+vardef marque_Para(text totem)(expr dd,ee,pa)=
+ save im;
+ picture im;
+ pair kk,ll,mn,mo;
+ kk=point(pa*length dd) of dd;
+ ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
+ mn=iso(kk,ll);
+ mo=(mn--kk) intersectionpoint cercles(mn,3mm);
+ im=image(
+ drawarrow (mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm);
+ drawarrow symetrie((mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm),mn);
+ trace cercles(mn,3mm);
+ for p_=totem:
+ if p_="":
+ label(btex // etex ,mn);
+ else:
+ label(btex ? etex,mn);
+ fi;
+ endfor;
+ );
+ im
+enddef;
+
%------------------------------------------------
% Transformations
%------------------------------------------------
@@ -1349,7 +1388,7 @@ vardef Equerre(expr dte,drte,perpe,sens)=
pair CentreE;
CentreE=CentreCercleI(perpen,ptt,pttt);
$=image(
- fill (perpen--ptt--pttt--cycle) withcolor 0.9*white;
+ fill (perpen--ptt--pttt--cycle) withcolor gris;
draw perpen--ptt--pttt--cycle;
draw codeperp(ptt,perpen,pttt,5);
fill homothetie(polygone(perpen,ptt,pttt),CentreE,0.6) withcolor white;
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 7928e78fef..9a4c081b3e 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 806a31ab3b..afc99386a3 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -5,8 +5,8 @@
% arara: lualatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)')
\documentclass[a4paper,french,11pt]{article}
-\def\PLversion{3.01b}
-\def\PLdate{2 janvier 2024}
+\def\PLversion{3.01c}
+\def\PLdate{4 janvier 2024}
\usepackage{amsfonts}
\usepackage{ProfLycee}
\useproflyclib{piton,minted,pythontex,ecritures}
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index d1c9f5a086..402bc94a18 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,8 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2024/01/02 3.01b Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2024/01/04 3.01c Aide pour l'utilisation de LaTeX en lycee]
+% 3.01c Ajout des splines en mode génération (sans forcément tracer)
% 3.01b Ajout de la division euclidienne + correction du bugs mineurs
% 3.01a Ajout des courbes ECC/FCC + paramètres par interpolation
% 3.00g Amélioration de la marge Gauche dans le PseudoCode
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex
index ca64c0ac40..fedb4bfcfc 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-complexes.tex
@@ -1,5 +1,5 @@
% proflycee-tools-complexes.tex
-% Copyright 2023 Cédric Pierquet
+% Copyright 2023 Cédric Pierquet (expérimental)
% Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
\NewDocumentCommand\PartieReelle{ D<>{} m O{\PartReRes} }{%
@@ -59,14 +59,27 @@
\PartieReelle{#3}[\tmpreB]%
\PartieImaginaire{#2}[\tmpimA]%
\PartieImaginaire{#3}[\tmpimB]%
- \xdef\tmpreCalc{(\tmpreA)+(\tmpreB)}%
+ %\xdef\tmpreCalc{(\tmpreA)+(\tmpreB)}%
\xdef\xinttmpreCalc{\xinteval{(\tmpreA)+(\tmpreB)}}%
- \xdef\tmpimCalc{(\tmpimA)+(\tmpimB)}%
+ %\xdef\tmpimCalc{(\tmpimA)+(\tmpimB)}%
\xdef\xinttmpimCalc{\xinteval{(\tmpimA)+(\tmpimB)}}%
%\xinttmpreCalc\text{ et }\xinttmpimCalc.
\AffComplexe[#1]%
}
+\NewDocumentCommand\DifferenceComplexes{ O{} m m }{%
+ \PartieReelle{#2}[\tmpreA]%
+ \PartieReelle{#3}[\tmpreB]%
+ \PartieImaginaire{#2}[\tmpimA]%
+ \PartieImaginaire{#3}[\tmpimB]%
+ %\xdef\tmpreCalc{(\tmpreA)-(\tmpreB)}%
+ \xdef\xinttmpreCalc{\xinteval{(\tmpreA)-(\tmpreB)}}%
+ %\xdef\tmpimCalc{(\tmpimA)-(\tmpimB)}%
+ \xdef\xinttmpimCalc{\xinteval{(\tmpimA)-(\tmpimB)}}%
+ %\xinttmpreCalc\text{ et }\xinttmpimCalc.
+ \AffComplexe[#1]%
+}
+
\NewDocumentCommand\ProduitComplexes{ O{} m m }{%
\PartieReelle{#2}[\tmpreA]%
\PartieReelle{#3}[\tmpreB]%
diff --git a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
index f6695cacd2..c7208604bf 100644
--- a/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
+++ b/macros/latex/contrib/proflycee/tex/proflycee-tools-graphiques.tex
@@ -86,6 +86,54 @@
}%
}
+%générer les splines
+\defKV[genspline]{%
+ NumDebut=\def\tmpsplinenumdeb{#1},%
+ NumFin=\def\tmpsplinenumfin{#1}
+}
+
+\setKVdefault[genspline]{%
+ NumDebut=1,%
+ NumFin=dernier
+}
+
+\NewDocumentCommand\GenereSplineTikz{ D<>{} m O{\CourbeSplineTikz} }{%
+ %1=liste
+ %2=num point début
+ %3=num point fin
+ \useKVdefault[genspline]%
+ \setKV[genspline]{#1}%
+ \setsepchar[.]{§./}%
+ \readlist*\SPLlistepoints{#2}%
+ %les données
+ \xintifboolexpr{\tmpsplinenumdeb < 1}{\def\tmpsplinenumdeb{1}}{}%
+ \IfStrEq{\tmpsplinenumfin}{dernier}{\def\tmpsplinenumfin{\SPLlistepointslen}}{}%
+ \xintifboolexpr{\tmpsplinenumfin > \SPLlistepointslen}{\def\tmpsplinenumfin{\SPLlistepointslen}}{}%
+ \extractcoeff{\SPLcoeffs}{\tmpsplinenumdeb}%
+ %nb de calculs
+ \def\SPLnbsplines{\inteval{\tmpsplinenumfin-1}}%
+ %extraction des coordonnées
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xa%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\ya%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimea%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xb%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\yb%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimeb%
+ \xdef#3{(\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb)}%
+ \foreach \i in {\tmpsplinenumdeb,...,\SPLnbsplines}{%
+ %extraction des coeffs de compensation
+ \extractcoeff{\SPLcoeffs}{\i}%
+ \def\j{\inteval{\i+1}}%
+ \itemtomacro\SPLlistepoints[\i,1]\xa%
+ \itemtomacro\SPLlistepoints[\i,2]\ya%
+ \itemtomacro\SPLlistepoints[\i,3]\fprimea%
+ \itemtomacro\SPLlistepoints[\j,1]\xb%
+ \itemtomacro\SPLlistepoints[\j,2]\yb%
+ \itemtomacro\SPLlistepoints[\j,3]\fprimeb%
+ \xdef#3{#3 ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb)}%
+ }%
+}
+
%splines en tikz avec ..controls
\defKV[spline]{%
Epaisseur=\def\SPLepaisseur{#1},%
diff --git a/macros/latex/contrib/todonotes/README b/macros/latex/contrib/todonotes/README
index 5d85a836b3..48682f2881 100644
--- a/macros/latex/contrib/todonotes/README
+++ b/macros/latex/contrib/todonotes/README
@@ -1,7 +1,7 @@
todonotes
=========
-The package lets the user mark things to do later, in a simple and
+The package lets the user mark things to do later, in a simple
and visually appealing way. The package takes several options to
enable customization / finetuning of the visual appearance.
diff --git a/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf b/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf
index f9dab08c08..d4922e2b96 100644
--- a/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf
+++ b/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf
Binary files differ
diff --git a/macros/latex/contrib/todonotes/examples/externalize.pdf b/macros/latex/contrib/todonotes/examples/externalize.pdf
index 0da152998f..d0c2842ac6 100644
--- a/macros/latex/contrib/todonotes/examples/externalize.pdf
+++ b/macros/latex/contrib/todonotes/examples/externalize.pdf
Binary files differ
diff --git a/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf b/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf
index 47387ae6a4..6cda699d0c 100644
--- a/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf
+++ b/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf
Binary files differ
diff --git a/macros/latex/contrib/todonotes/todonotes.dtx b/macros/latex/contrib/todonotes/todonotes.dtx
index d9ddd09a35..4de9d5bc84 100644
--- a/macros/latex/contrib/todonotes/todonotes.dtx
+++ b/macros/latex/contrib/todonotes/todonotes.dtx
@@ -20,14 +20,14 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{todonotes}
%<*package>
- [2023/01/31 v1.1.6 Todonotes source and documentation.]
+ [2024/01/05 v1.1.7 Todonotes source and documentation.]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{wrapfig}
\usepackage[colorlinks, linkcolor=black, urlcolor=blue]{hyperref}
-\usepackage[colorinlistoftodos, loadshadowlibrary]{todonotes}[2023/01/31]
+\usepackage[colorinlistoftodos, loadshadowlibrary]{todonotes}[2024/01/05]
\usepackage{amsmath}
\usepackage{setspace}
\usepackage{soul}
@@ -45,7 +45,7 @@
%</driver>
% \fi
%
-% \CheckSum{760}
+% \CheckSum{766}
%
% \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
@@ -216,6 +216,8 @@
% \changes{1.1.6}{2023/01/31}{Fix issue 64 by adding the command definetodostyle and
% the format option to the todo and missingfigure commands.
% Pull request by rzach.}
+% \changes{1.1.7}{2024/01/05}{Fix issue 73 by providing default values for parameters
+% needed to typeset the list of todos.}
% \GetFileInfo{todonotes.dtx}
%
% \DoNotIndex{\newcommand,\newenvironment}
@@ -1383,7 +1385,7 @@
%
% Identifies the package and loads the packages dependences.
% \begin{macrocode}
-\ProvidesPackage{todonotes}[2023/01/31]
+\ProvidesPackage{todonotes}[2024/01/05]
\RequirePackage{ifthen}
\RequirePackage{xkeyval}
\RequirePackage{xcolor}
@@ -1518,6 +1520,13 @@ prior to loading the todonotes package.} \else\fi%
\@todonotes@SetMissingFigureDown{saknas}%
}
% \end{macrocode}
+% Define parameters for the list of todo if they are not defined by
+% the current document class.
+% \begin{macrocode}
+\providecommand{\@tocrmarg}{2.55em}
+\providecommand{\@dotsep}{4.5}
+\providecommand{\@pnumwidth}{1.55em}
+% \end{macrocode}
% Create a counter, for storing the number of inserted todos.
% \begin{macrocode}
\newcounter{@todonotes@numberoftodonotes}
diff --git a/macros/latex/contrib/todonotes/todonotes.pdf b/macros/latex/contrib/todonotes/todonotes.pdf
index e3558ce6e9..ff99fd94fc 100644
--- a/macros/latex/contrib/todonotes/todonotes.pdf
+++ b/macros/latex/contrib/todonotes/todonotes.pdf
Binary files differ