diff options
Diffstat (limited to 'macros/latex/contrib')
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 Binary files differindex 570da16429..a5ea91e9c6 100644 --- a/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf +++ b/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf Binary files differindex 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 diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf Binary files differindex 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 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 Binary files differindex f6810908fa..0a70f5903c 100644 --- a/macros/latex/contrib/beamer/doc/beameruserguide.pdf +++ b/macros/latex/contrib/beamer/doc/beameruserguide.pdf 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 Binary files differindex 59e01cf487..45271b09d6 100644 --- a/macros/latex/contrib/codedescribe/doc/codedescribe.pdf +++ b/macros/latex/contrib/codedescribe/doc/codedescribe.pdf 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 Binary files differindex 953c8df90c..a163c9956c 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf 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 Binary files differindex 0fca353cfc..6d9fd2c03e 100644 --- a/macros/latex/contrib/overpic/overpic.pdf +++ b/macros/latex/contrib/overpic/overpic.pdf diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf Binary files differindex b13797000f..62ee043d52 100644 --- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf +++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf 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 Binary files differindex 7928e78fef..9a4c081b3e 100644 --- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf +++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf 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 Binary files differindex f9dab08c08..d4922e2b96 100644 --- a/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf +++ b/macros/latex/contrib/todonotes/examples/alterAppearenceOfListOfTodos.pdf diff --git a/macros/latex/contrib/todonotes/examples/externalize.pdf b/macros/latex/contrib/todonotes/examples/externalize.pdf Binary files differindex 0da152998f..d0c2842ac6 100644 --- a/macros/latex/contrib/todonotes/examples/externalize.pdf +++ b/macros/latex/contrib/todonotes/examples/externalize.pdf diff --git a/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf b/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf Binary files differindex 47387ae6a4..6cda699d0c 100644 --- a/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf +++ b/macros/latex/contrib/todonotes/examples/saveColorByUsingLayers.pdf 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 Binary files differindex e3558ce6e9..ff99fd94fc 100644 --- a/macros/latex/contrib/todonotes/todonotes.pdf +++ b/macros/latex/contrib/todonotes/todonotes.pdf |