summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex-jura2.tex12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdfbin366760 -> 379303 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.bbx9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.cbx24
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-jura2/mylit.bib4
-rw-r--r--macros/latex/contrib/eolang/DEPENDS.txt7
-rw-r--r--macros/latex/contrib/eolang/LICENSE.txt21
-rw-r--r--macros/latex/contrib/eolang/README.md29
-rw-r--r--macros/latex/contrib/eolang/cactus.pdfbin0 -> 47687 bytes
-rw-r--r--macros/latex/contrib/eolang/eolang.dtx415
-rw-r--r--macros/latex/contrib/eolang/eolang.ins55
-rw-r--r--macros/latex/contrib/eolang/eolang.pdfbin0 -> 533580 bytes
-rw-r--r--macros/latex/contrib/eolang/main.bib26
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin930967 -> 948293 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex796
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty106
16 files changed, 1171 insertions, 333 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex-jura2.tex b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex-jura2.tex
index 7ccc9891cc..eb1f03c4d6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex-jura2.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex-jura2.tex
@@ -21,7 +21,6 @@
\usepackage{tgtermes}
\usepackage[scale=0.85]{tgheros}
-
% Juristische Kurzgliederung
\renewcommand\thesection {\Roman{section}.}
\renewcommand\thesubsection {\arabic{subsection}.}
@@ -35,13 +34,10 @@
% Großes Fußnotenzahlen in der Fußnote
\deffootnote{2em}{2.5em}{\makebox[2em][l]{\thefootnotemark}}
-
\newcommand\fnurl[1]{\footnote{\url{#1}}}
-
\newenvironment{MyMinted}{\VerbatimEnvironment\begin{minted}[frame=single, breaklines=true, breaksymbolleft=\textcolor{red}{\tiny\ensuremath{\hookrightarrow}}, fontsize=\small]{tex}}{\end{minted}}
-
\usepackage[%
style = jura2,%
backend = biber,%
@@ -51,7 +47,7 @@
minnames = 4,%
articlein = false,%
%innamebeforetitle = true,
- date = comp,%short
+ date = comp,%comp,long,
urldate = comp,
dateabbrev = true,
useprefix = true,%
@@ -64,7 +60,7 @@
\addbibresource{mylit.bib}
\title{Das \texttt{biblatex-jura2} Paket}
-\subtitle{v0.4, August 2020}
+\subtitle{v0.5, Oktober 2022}
\author{\texttt{biblatex-jura2(a)gmx.net}}
\date{}
@@ -558,7 +554,7 @@ Schließlich können auch Entscheidungen, die mit den Namen der Parteien bezeich
aktenzeichen = {C-208/00},
datenbank = {juris},
ecli = {ECLI:EU:C:2002:632},
- kurzname = {Überseering},
+ entscheidungsname = {Überseering},
}
@jurisdiction{64387.01,
gericht = {EGMR},
@@ -566,7 +562,7 @@ Schließlich können auch Entscheidungen, die mit den Namen der Parteien bezeich
entscheidungsdatum = {2005-02-10},
aktenzeichen = {Nr.~64387/01},
ecli = {ECLI:CE:ECHR:2005:0210JUD006438701},
- kurzname = {Uhl/Deutschland},
+ entscheidungsname = {Uhl/Deutschland},
}
\end{MyMinted}
Das ergibt dann diese\footcite[Rn.~52]{c208.00} Fußnoten.\footcite[Rn.~27]{64387.01} Wer möchte macht das auch mit \emph{Reiten im Walde}.\footcite[Rn.~54]{1bvr921.85} Auch die Ziterweise des Bundesverfassungsgerichts, die neuerdings amtliche Sammlung und Randnummer angeben, lässt sich abbilden.\footcite[(341 f.) Rn. 268]{1bvr2821.11}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf
index d26d623d85..110f237181 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.bbx
index 44dd2e6100..01abf07f14 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.bbx
@@ -1,4 +1,4 @@
-\ProvidesFile{biblatex-jura2.bbx}[2020/08/19 v0.4]
+\ProvidesFile{biblatex-jura2.bbx}[2022/10/19 v0.5]
% biblatex-jura2 is released under the LaTeX Project Public License v1.3c or later.
\RequireBibliographyStyle{ext-authortitle-ibid}
@@ -321,8 +321,11 @@
%%% editor für incollection nicht kursiv
\DeclareNameWrapperFormat{sortnamenorm}{\mkbibemph{#1}}
-\DeclareNameAlias[incollection]{editor}{sortname}
-\DeclareNameWrapperAlias[incollection]{editor}{sortnamenorm}
+\DeclareNameAlias[incollection]{byeditor}{sortname}
+\DeclareNameWrapperAlias[incollection]{byeditor}{sortnamenorm}
+
+%%%Alle Namen fett
+%\renewcommand*\mkbibcompletename[1]{\mkbibbold{#1}}
\newtoggle{tnbcbx@fshowcited}
\DeclareEntryOption[boolean]{fshowcited}[true]{\settoggle{tnbcbx@fshowcited}{#1}}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.cbx
index 00f193c671..e8bb8def0c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/jura2.cbx
@@ -1,4 +1,4 @@
-\ProvidesFile{biblatex-jura2.cbx}[2020/08/19 v0.4]
+\ProvidesFile{biblatex-jura2.cbx}[2022/10/19 v0.5]
% biblatex-jura2 is released under the LaTeX Project Public License v1.3c or later.
\RequireCitationStyle{ext-authortitle-ibid}
@@ -88,6 +88,25 @@
%%% Namen sortiert als Nachname, Vorname
\DeclareNameAlias{sortname}{family-given}
+%%%Datum kurz ohne Leerstellen
+\DefineBibliographyExtras{ngerman}{%
+ \protected\def\mkbibdateshort#1#2#3{%
+ \iffieldundef{#3}
+ {}
+ {\mkdayzeros{\thefield{#3}}%
+ \iffieldundef{#2}{}{\adddot}}%
+ \iffieldundef{#2}
+ {}
+ {\mkmonthzeros{\thefield{#2}}%
+ \iffieldundef{#1}{}{\adddot}}%
+ \iffieldbibstring{#1}%
+ {\bibstring{\thefield{#1}}}%
+ {\dateeraprintpre{#1}\mkyearzeros{\thefield{#1}}}}%
+}
+
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Änderungen betr. 'book'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -204,7 +223,6 @@
%%% Titel ohne Anführungszeichen
\DeclareFieldFormat[incollection]{citetitle}{\normalfont{#1}}
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Änderungen betr. 'online' und andere
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -236,7 +254,7 @@
% Entfernen für Verwendung der ECLI
%\iffieldundef{usere}{}{\addspace\mkbibbrackets{\printfield{usere}}}%
\iffieldundef{userf}{}{\addcomma\addspace\printfield{userf}}%
- \addspace\textendash%
+ \addcomma\addspace%\textendash%
\iffieldundef{userc}{}{\addspace\printfield{userc}}%
\iffieldundef{userd}{}{\addspace\printfield{userd}}%
}}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/mylit.bib b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/mylit.bib
index db98f7cf9f..f794f08c5d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/mylit.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/mylit.bib
@@ -232,7 +232,8 @@
booktitle = {Infrastruktur-Recht: Festschrift für Wilfried Erbguth zum 70. Geburtstag},
title = {Ein ausgedachter Artikel zum Infrastukturrecht},
author = {van Laack, Hemd and de Beer, Diamant and Mitautor, Vorname},
- editor = {Sabine Schlacke and Guy Beaucamp and Mathias Schubert},
+ %editor = {\mkbibemph{Sabine Schlacke, Guy Beaucamp und Mathias Schubert}},
+ editor = {Schlacke, Sabine and Beaucamp, Guy and Schubert, Mathias},
address = {Berlin},
publisher = {Duncker \& Humblot},
year = {2019},
@@ -245,6 +246,7 @@
title = {Unvernunft als Zurechnungskriterium in den \enquote{Retter\-fällen}},
author = {Beckemper, Katharina},
booktitle = {Strafrecht als Scientia Universalis -- Festschrift für Claus Roxin zum 80. Geburtstag},
+ %editor = {\mkbibemph{Heinrich Manfred}},
editor = {Manfred, Heinrich},
year = {2011},
pages = {397-411},
diff --git a/macros/latex/contrib/eolang/DEPENDS.txt b/macros/latex/contrib/eolang/DEPENDS.txt
new file mode 100644
index 0000000000..ae6ed34e0b
--- /dev/null
+++ b/macros/latex/contrib/eolang/DEPENDS.txt
@@ -0,0 +1,7 @@
+hard stmaryrd
+hard amsmath
+hard amsfonts
+hard iexec
+hard pgf
+hard fancyvrb
+hard pgfopts \ No newline at end of file
diff --git a/macros/latex/contrib/eolang/LICENSE.txt b/macros/latex/contrib/eolang/LICENSE.txt
new file mode 100644
index 0000000000..bd949ffdab
--- /dev/null
+++ b/macros/latex/contrib/eolang/LICENSE.txt
@@ -0,0 +1,21 @@
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/eolang/README.md b/macros/latex/contrib/eolang/README.md
new file mode 100644
index 0000000000..740df01a47
--- /dev/null
+++ b/macros/latex/contrib/eolang/README.md
@@ -0,0 +1,29 @@
+[![l3build](https://github.com/yegor256/eolang.sty/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/eolang.sty/actions/workflows/l3build.yml)
+[![CTAN](https://img.shields.io/ctan/v/eolang.sty)](https://ctan.org/pkg/eolang.sty)
+[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/eolang.sty/blob/master/LICENSE.txt)
+
+This LaTeX package helps you write 𝜑-calculus formulas and
+[SODG](https://github.com/objectionary/sodg) graphs
+for [EO](https://www.eolang.org) programming language.
+
+First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+from [CTAN](https://ctan.org/pkg/eolang)
+and then use in the preamble:
+
+```tex
+\documentclass{article}
+\usepackage{eolang}
+\begin{document}
+\begin{phiquation}
+x -> [
+ \varphi -> |foo|(5),
+ y -> [ \lambda -> M_1 ]].
+\end{phiquation}
+\end{document}
+```
+
+If you want to contribute yourself, make a fork, then create a branch,
+then run `l3build ctan` in the root directory.
+It should compile everything without errors. If not, submit an issue and wait.
+Otherwise, make your changes and then run `l3build ctan` again. If the build is
+still clean, submit a pull request.
diff --git a/macros/latex/contrib/eolang/cactus.pdf b/macros/latex/contrib/eolang/cactus.pdf
new file mode 100644
index 0000000000..f42d027a49
--- /dev/null
+++ b/macros/latex/contrib/eolang/cactus.pdf
Binary files differ
diff --git a/macros/latex/contrib/eolang/eolang.dtx b/macros/latex/contrib/eolang/eolang.dtx
new file mode 100644
index 0000000000..b10f1a8c35
--- /dev/null
+++ b/macros/latex/contrib/eolang/eolang.dtx
@@ -0,0 +1,415 @@
+% \iffalse meta-comment
+% (The MIT License)
+%
+% Copyright (c) 2021-2022 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+% \fi
+
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+
+% \GetFileInfo{eolang.dtx}
+% \DoNotIndex{\endgroup,\begingroup,\let,\else,\s,\n,\r,\\,\1,\fi}
+
+% \iffalse
+%<*driver>
+\ProvidesFile{eolang.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{eolang}
+%<*package>
+[2022-10-20 0.0.1 Formulas and Graphs for EO Programming Language]
+%</package>
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[maxnames=1,minnames=1,maxbibnames=1,natbib=true,citestyle=authoryear,bibstyle=authoryear,doi=false,url=false,isbn=false,isbn=false]{biblatex}
+\addbibresource{main.bib}
+\usepackage[tt=false, type1=true]{libertine}
+\usepackage{microtype}
+\usepackage{graphicx}
+\usepackage[runs=1,dtx]{docshots}
+\docshotPrerequisite{eolang.sty}
+\usepackage{eolang}
+\usepackage{href-ul}
+\PageIndex
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{eolang.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+
+% \title{\includegraphics[height=1in]{cactus.pdf} \\ |eolang|: \LaTeX{} Package \\ for Formulas and Graphs \\ of EO Programming Language \\ and $\varphi$-calculus\thanks{The sources are in GitHub at \href{https://github.com/yegor256/eolang.sty}{yegor256/eolang.sty}}}
+% \author{Yegor Bugayenko \\ \texttt{yegor256@gmail.com}}
+% \date{\filedate, \fileversion}
+%
+% \maketitle
+%
+% \textbf{NB!}
+% You must run \TeX{} processor with |--shell-escape| option
+% and you must have \href{https://www.perl.org}{Perl} installed.
+
+% \section{Introduction}
+%
+% This package helps you print formulas of $\varphi$-calculus,
+% which is a formal foundation of \href{https://www.eolang.org}{EO}
+% programming language. The calculus was introduced by \citet{bugayenko2021eolang}
+% and later formalized by \citet{kudasov2021}. Here is how you render
+% a simple expression:
+% \begin{docshot}
+% \documentclass{article}
+% \pagestyle{empty}
+% \usepackage{eolang}
+% \begin{document}
+% \begin{phiquation*}
+% a -> [
+% b -> [ c -> |x|(56),
+% \rho -> |hello|(\xi),
+% \Delta ~> |01-FE-C3| ]],
+
+% x -> [ \lambda ~> M_1 ].
+% \end{phiquation*}
+% \end{document}
+% \end{docshot}
+
+% \DescribeEnv{phiquation}
+% The environment |phiquation| lets you write a $\varphi$-calculus expressions
+% using simple plain-text notation, where:
+% \begin{itemize}\setlength\itemsep{0em}
+% \item ``|->|'' maps to ``$\mapsto$'' (|\mapsto|),
+% \item ``|~>|'' maps to ``$\mapstochar\dashrightarrow$'' (|\mapstochar\dashrightarrow|),
+% \item ``|[|'' maps to ``$\llbracket$'' (|\llbracket|),
+% \item ``|]|'' maps to ``$\rrbracket$'' (|\rrbracket|),
+% \item ``$\vert$|abc|$\vert$'' maps to ``\texttt{abc}'' (|\texttt{abc}|).
+% \end{itemize}
+
+% \DescribeMacro{\phiq}
+% The command |\phiq| lets you inline a $\varphi$-calculus expressions
+% using the same simple plain-text notation:
+% \begin{docshot}
+% \documentclass{article}
+% \usepackage[paperwidth=2in]{geometry}
+% \pagestyle{empty}
+% \usepackage{eolang}
+% \begin{document}
+% A simple object
+% \phiq{x -> [\varphi -> y]}
+% is a decorator of
+% the data object
+% \phiq{y -> [\Delta ~> 42]}.
+% \end{document}
+% \end{docshot}
+
+% \DescribeEnv{phigure}
+% The environment |phigure| allows you to draw a \href{https://github.com/objectionary/sodg}{SODG} graph:
+% \begin{docshot}
+% \documentclass{article}
+% \pagestyle{empty}
+% \usepackage{eolang}
+% \begin{document}
+% \begin{phigure}
+% v0
+% v1 xy:v0,-2,+1 data:|42|
+% v0->v1 a:$x$ rho
+% v2 xy:v0,+1,+1 atom:$\xi.x+1$
+% v1->v2 a:|hi| bend:-15
+% v2->v0 pi bend:10
+% \end{phigure}
+% \end{document}
+% \end{docshot}
+% The content of the environment is parsed line by line. Markers in each line are
+% separated by a single space. The first marker is either a unique name of a
+% vertex, like |v1| in the example above, or an edge, like |v0->v1|. All other markers are either
+% unary like |rho| or binary like |atom:$\xi.x+1$|. Binary markers have two
+% parts, separated by colon. The following markers are supported for a vertex:
+% \begin{itemize}\setlength\itemsep{0em}
+% \item ``|data:[<box>]|'' makes it a data vertex with an optional attached |<box>|,
+% \item ``|atom:[<box>]|'' makes it an atom with an optional attached |<box>|,
+% \item ``|box:<txt>|'' attaches a |<box>| to it,
+% \item ``|xy:<v>,<r>,<d>|'' places this vertex in a position relative to the vertex |<v>|,
+% shifting it right by |<r>| % and down by |<d>| centimetres.
+% \end{itemize}
+% The following markers are supported for an edge:
+% \begin{itemize}\setlength\itemsep{0em}
+% \item ``|rho|'' places a backward snake arrow to the edge,
+% \item ``|rrho|'' places a reverse |rho|,
+% \item ``|bend:<angle>|'' bend it right by the amount of |<angle>|,
+% \item ``|a:<txt>|'' attaches label |<txt>| to it,
+% \item ``|pi|'' makes it dotted, with $\pi$ label.
+% \end{itemize}
+
+% \StopEventually{}
+
+% \section{Implementation}
+
+% \changes{v0.0.1}{2022/10/05}{Initial version}
+
+% First, we include a few packages:
+% \begin{macrocode}
+\RequirePackage{stmaryrd}
+\RequirePackage{amsmath}
+\RequirePackage{amsfonts}
+\RequirePackage{iexec}
+\RequirePackage{fancyvrb}
+% \end{macrocode}
+
+% \begin{macro}{\eolang@env}
+% Then, we define |\eolang@env| supplementary command.
+% It is implemented with the help of |\iexec| from
+% \href{https://github.com/yegor256/iexec}{iexec} package:
+% \begin{macrocode}
+\makeatletter\newcommand\eolang@env[2]{
+ \iexec[trace]{
+ /bin/echo -n '\\begin{#1}\\begin{split} &';
+ /bin/echo -n '\detokenize{#2}'
+ | perl -pe 's/^\\r\\+//g'
+ | perl -pe 's/\\r\\+$//g'
+ | perl -pe 's/->/\\\\mapsto/g'
+ | perl -pe 's/\unexpanded{~}>/\\\\mapstochar\\\\dashrightarrow/g'
+ | perl -pe 's/\\|([^\\|]+)\\|/\\\\texttt{\\1}/g'
+ | perl -pe 's/\\[/\\\\llbracket/g'
+ | perl -pe 's/\\]/\\\\rrbracket/g'
+ | perl -pe 's/\\r\\r/\\\\\\\\ \&/g'
+ | perl -pe 's/\\r/\\\\\\\\[-4pt] \&/g'
+ | perl -pe 's/([^& ]) {2}([^ ])/\\1 \\2/g'
+ | perl -pe 's/ {2}/\\\\quad{}/g'
+ ;
+ /bin/echo -n '\\end{split}\\end{#1}\\endinput'
+ }%
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{phiquation}
+% Then, we define |phiquation| and |phiquation*| environments:
+% \begin{macrocode}
+\makeatletter
+\NewDocumentEnvironment{phiquation*}{b}{%
+ \eolang@env{equation*}{#1}
+}{}
+\NewDocumentEnvironment{phiquation}{b}{%
+ \eolang@env{equation}{#1}
+}{}
+\makeatother
+\AddToHook{env/phiquation*/begin}{\obeylines\obeyspaces}
+\AddToHook{env/phiquation/begin}{\obeylines\obeyspaces}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\phiq}
+% Then, we define |\phiq| command:
+% \begin{macrocode}
+\newcommand\phiq[1]{
+ \iexec[trace]{
+ /bin/echo -n '$';
+ /bin/echo -n '\detokenize{#1}'
+ | perl -pe 's/->/\\\\mapsto/g'
+ | perl -pe 's/\unexpanded{~}>/\\\\mapstochar\\\\dashrightarrow/g'
+ | perl -pe 's/\\[/\\\\llbracket/g'
+ | perl -pe 's/\\]/\\\\rrbracket/g'
+ ;
+ /bin/echo -n '$\\endinput'
+ }%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{Perl}
+% Then, create a Perl script:
+% \begin{macrocode}
+\begin{VerbatimOut}{\jobname.pl.eolang}
+$tex = $ARGV[0];
+$tex =~ s/^\s+|\s+$//g;
+$tex =~ s/(\\[a-zA-Z]+)\s+/\1/g;
+$tex =~ s/\r\s+/\r/g;
+$tex =~ s/\|([^\|]+)\|/\\texttt{\1}/g;
+my @cmds = split (/\r/g, $tex);
+print '\begin{phig}', "\n";
+foreach my $c (@cmds) {
+ my ($head, $tail) = split (/ /, $c, 2);
+ my %opts = {};
+ foreach my $p (split (/ /, $tail)) {
+ my ($q, $t) = split (/:/, $p);
+ $opts{$q} = $t;
+ }
+ if (index($head, '->') == -1) {
+ print '\node[';
+ if (exists $opts{'xy'}) {
+ my ($v, $right, $down) = split(/,/, $opts{'xy'});
+ print ',below right=';
+ print $down;
+ print 'cm and ';
+ print $right;
+ print 'cm of ';
+ print $v;
+ }
+ if (exists $opts{'data'}) {
+ print ',phi-data';
+ if (not $opts{'data'} eq '') {
+ $opts{'box'} = $opts{'data'};
+ }
+ } elsif (exists $opts{'atom'}) {
+ print ',phi-atom';
+ if (not $opts{'atom'} eq '') {
+ $opts{'box'} = $opts{'atom'};
+ }
+ } else {
+ print ',phi-object';
+ }
+ print ']';
+ print ' (', $head, ')';
+ print ' {$';
+ if ($head eq 'v0') {
+ print '\Phi';
+ } else {
+ print 'v_', substr($head, 1);
+ }
+ print '$}';
+ if (exists $opts{'box'}) {
+ print ' node[phi-box] at (';
+ print $head, '.south east) {';
+ print $opts{'box'}, '}';
+ }
+ } else {
+ print '\draw[';
+ if (exists $opts{'pi'}) {
+ print ',phi-pi';
+ if (not exists $opts{'a'}) {
+ $opts{'a'} = '$\pi$';
+ }
+ }
+ print ']';
+ my ($from, $to) = split (/->/, $head);
+ print ' (', $from, ') ';
+ if (exists $opts{'bend'}) {
+ print 'edge [bend right=', $opts{'bend'}, ']';
+ } else {
+ print '--';
+ }
+ if (exists $opts{'rho'} or exists $opts{'rrho'}) {
+ print ' pic[sloped,phi-rho]{parallel arrow={';
+ print '-' if not exists $opts{'rrho'};
+ print '0.3,-0.15}}';
+ }
+ if (exists $opts{'a'}) {
+ print ' node [phi-attr] {', $opts{'a'}, '}';
+ }
+ print ' (', $to, ')';
+ }
+ print ";\n";
+}
+print '\end{phig}', "\n", '\endinput';
+\end{VerbatimOut}
+\message{^^Jeolang: file with Perl script (\jobname.pl.eolang) saved^^J}%
+\iexec[trace,stdout=/dev/null]{
+ perl -pi -e 's/(\\\\[a-zA-Z])\\s+/\\1/g' \jobname.pl.eolang}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{phigure}
+% Then, we include |tikz| package and its libraries:
+% \begin{macrocode}
+\RequirePackage{tikz}
+ \usetikzlibrary{arrows}
+ \usetikzlibrary{shapes}
+ \usetikzlibrary{decorations}
+ \usetikzlibrary{decorations.pathmorphing}
+ \usetikzlibrary{intersections}
+ \usetikzlibrary{positioning}
+ \usetikzlibrary{backgrounds}
+ \usetikzlibrary{calc}
+ \usetikzlibrary{shapes.arrows}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{phig}
+% Then, we define internal environment |phig|:
+% \begin{macrocode}
+\newenvironment{phig}%
+ {\noindent\begin{tikzpicture}[
+ ->,>=stealth',node distance=0,thick,
+ pics/parallel arrow/.style={
+ code={\draw[-latex,phi-rho] (##1) -- (-##1);}}]}%
+ {\end{tikzpicture}}
+\tikzstyle{transforms} = [fill=white!80!black, single arrow,
+ minimum height=0.5cm, minimum width=0.5cm,
+ single arrow head extend=2mm]
+\tikzstyle{phi-thing} = [thick,inner sep=0pt,minimum height=2.4em,
+ draw,font={\small}]
+\tikzstyle{phi-object} = [phi-thing,circle]
+\tikzstyle{phi-data} = [phi-thing,regular polygon,
+ regular polygon sides=8]
+\tikzstyle{phi-empty} = [phi-object]
+\tikzstyle{phi-rho} = [draw,decorate,decoration={
+ snake,amplitude=.4mm,segment length=2mm,post length=1mm}]
+\tikzstyle{phi-pi} = [draw,dotted]
+\tikzstyle{phi-atom} = [phi-object,double]
+\tikzstyle{phi-box} = [xshift=-5pt,yshift=3pt,draw,fill=white,
+ rectangle,thin,minimum width=1.2em,anchor=north west,
+ font={\scriptsize}]
+\tikzstyle{phi-attr} = [midway,sloped,inner sep=0pt,
+ above=2pt,sloped/.append style={transform shape},
+ font={\scriptsize},color=black]
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{phigure}
+% Then, create a new environment |figure|, as suggested
+% \href{https://tex.stackexchange.com/questions/661056}{here}:
+% \begin{macrocode}
+\NewDocumentEnvironment{phigure}{b}{%
+ \catcode`\ =10 %
+ \catcode`\^^M=5 %
+ \iexec[trace,stdout=\jobname.tex.eolang]{
+ perl \jobname.pl.eolang '\detokenize{#1}'}%
+}{}
+\AddToHook{env/phigure/before}{\bgroup\obeylines\obeyspaces}
+\AddToHook{env/phigure/after}{\egroup}
+% \end{macrocode}
+% \end{macro}
+
+% \Finale
+
+%\clearpage
+
+% \printbibliography
+
+%\PrintChanges
+%\clearpage
+%\PrintIndex
diff --git a/macros/latex/contrib/eolang/eolang.ins b/macros/latex/contrib/eolang/eolang.ins
new file mode 100644
index 0000000000..4e11a335ff
--- /dev/null
+++ b/macros/latex/contrib/eolang/eolang.ins
@@ -0,0 +1,55 @@
+%% (The MIT License)
+%%
+%% Copyright (c) 2021-2022 Yegor Bugayenko
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%% of this software and associated documentation files (the 'Software'), to deal
+%% in the Software without restriction, including without limitation the rights
+%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%% copies of the Software, and to permit persons to whom the Software is
+%% furnished to do so, subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all
+%% copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+%% SOFTWARE.
+
+\input docstrip.tex
+\keepsilent
+\usedir{macros/latex/contrib/eolang}
+\preamble
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+\endpreamble
+\generate{\file{eolang.sty}{\from{eolang.dtx}{package}}}
+\obeyspaces
+\Msg{To finish the installation you have to move the ".sty"}
+\Msg{file into a directory searched by TeX. To produce the}
+\Msg{documentation run the file ".dtx" through LaTeX. If any}
+\Msg{questions, submit a new GitHub issue.}
+\endbatchfile
diff --git a/macros/latex/contrib/eolang/eolang.pdf b/macros/latex/contrib/eolang/eolang.pdf
new file mode 100644
index 0000000000..ba13e9dcb4
--- /dev/null
+++ b/macros/latex/contrib/eolang/eolang.pdf
Binary files differ
diff --git a/macros/latex/contrib/eolang/main.bib b/macros/latex/contrib/eolang/main.bib
new file mode 100644
index 0000000000..34ca47a8f2
--- /dev/null
+++ b/macros/latex/contrib/eolang/main.bib
@@ -0,0 +1,26 @@
+@misc{bugayenko2021eolang,
+ title={EOLANG and $\varphi$-calculus},
+ author={Yegor Bugayenko},
+ year={2021},
+ eprint={2111.13384},
+ archivePrefix={arXiv},
+ primaryClass={cs.PL}
+}
+
+@misc{bugayenko2022origins,
+ title={On the Origins of Objects by Means of Careful Selection},
+ author={Yegor Bugayenko},
+ year={2022},
+ eprint={2206.02585},
+ archivePrefix={arXiv},
+ primaryClass={cs.PL}
+}
+
+@misc{kudasov2021,
+ author = {Kudasov, Nikolai and Kim, Violetta},
+ title = {$\varphi$-calculus: a purely object-oriented calculus of decorated objects},
+ year = 2022,
+ eprint={2204.07454},
+ archivePrefix={arXiv},
+ primaryClass={cs.PL}
+}
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 0e377d341f..985f37eab3 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 25b0e9471c..be4ad40a07 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -33,6 +33,8 @@
\usepackage{graphics}
\usepackage{hvlogos}
\usepackage{simplekv}
+\usepackage{menukeys}
+\let\tab\relax
\usepackage{tabto}
\usepackage{pgf,pgfplots}
\pgfplotsset{
@@ -63,8 +65,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{1.3.5}
-\def\PLdate{17 Octobre 2022}
+\def\PLversion{1.3.6}
+\def\PLdate{18 Octobre 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -308,7 +310,7 @@ Le {package} \ctex{ProfLycee} charge les {packages} :
\item \ctex{xcolor} avec les options \textsf{[table,svgnames]} ;
\item \ctex{tikz}, \ctex{pgf}, \ctex{xfp} ;
\item \ctex{xparse}, \ctex{xkeyval}, \ctex{xstring}, \ctex{simplekv} ;
- \item \ctex{listofitems}, \ctex{xintexpr} et \ctex{xintbinhex} ;
+ \item \ctex{listofitems}, \ctex{xintexpr} , \ctex{xintbinhex} et \ctex{xintgcd};
\item \ctex{tabularray}, \ctex{fontawesome5}, \ctex{tcolorbox}.
\end{itemize}
\end{codeinfo}
@@ -354,11 +356,11 @@ Par défaut, \ctex{minted} est chargé et donc la compilation nécessite d'utili
\begin{codeinfo}
En compilant (notamment avec les packages \ctex{minted} et \ctex{pythontex}) on peut spécifier des répertoires particuliers pour les (ou des) fichiers auxiliaires.
-Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \ctex{minted} et \ctex{pythontex} dans un répertoire \textsf{build} du répertoire courant.
+Avec l'option \Cle{build}, l'utilisateur a la possibilité de placer les fichiers temporaires de \ctex{minted} et \ctex{pythontex} dans un répertoire \menu{build} du répertoire courant.
\smallskip
-Dans ce cas il vaut mieux créer au préalable le répertoire \textsf{build} avant de compiler un fichier !
+Dans ce cas il vaut mieux créer au préalable le répertoire \menu{build} avant de compiler un fichier !
\end{codeinfo}
\begin{codetex}[listing only]
@@ -509,7 +511,7 @@ Pour déclarer les paramètres :
\end{codetex}
\begin{codecles}
-Certains paramètres peuvent être gérés directement dans la commande \ctex{\textbackslash splinetikz} :
+Certains paramètres peuvent être gérés directement dans la commande \ctex{splinetikz} :
%
\begin{itemize}
\item la couleur de la courbe par la \textsf{clé} \Cle{couleur} ;\hfill{}défaut \Cle{red}
@@ -654,11 +656,11 @@ Le plus \og simple \fg{} est donc:
\subsection{Définitions}
\begin{codeidee}
-En parallèle de l'outil \ctex{\textbackslash splinetikz}, il existe l'outil \ctex{\textbackslash tangentetikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{\textbackslash splinetikz}.
+En parallèle de l'outil \ctex{splinetikz}, il existe l'outil \ctex{tangentetikz} qui va permettre de tracer des tangentes à l'aide de la liste de points précédemment définie pour l'outil \ctex{splinetikz}.
\smallskip
-NB : il peut fonctionner indépendamment de l'outil \ctex{\textbackslash splinetikz} puisque la liste des points de travail est gérée de manière autonome !
+NB : il peut fonctionner indépendamment de l'outil \ctex{splinetikz} puisque la liste des points de travail est gérée de manière autonome !
\end{codeidee}
\begin{codetex}[listing only]
@@ -1007,7 +1009,7 @@ Les \Cle{Clés} disponibles sont :
\subsection{La commande \og ligneCF \fg}
\begin{codeinfo}
-Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{\textbackslash ligneCF}.
+Une fois les paramètres déclarés, il faut créer les différentes lignes, grâce à la \ctex{ligneCF}.
\end{codeinfo}
\begin{codetex}[listing only]
@@ -1089,7 +1091,7 @@ Le package \ctex{listings} ne nécessite pas de compilation particulière, au co
\end{codeinfo}
\begin{codeinfo}
-Le style utilisé pour formater le code Python n'est pas modifiable. Il donne un rendu proche de celui des packages commes \ctex{pythontex} ou \ctex{minted}.
+Le style utilisé pour formater le code Python n'est pas modifiable. Il donne un rendu proche de celui des packages comme \ctex{pythontex} ou \ctex{minted}.
\smallskip
@@ -1099,7 +1101,7 @@ Donc, si plusieurs \textit{méthodes} sont utilisées pour insérer du code Pyth
\subsection{Présentation de code Python grâce à listings}
\begin{codeidee}
-L'environnement \ctex{\textbackslash envcodepython} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier.
+L'environnement \ctex{envcodepython} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier.
\end{codeidee}
\begin{codetex}[listing only]
@@ -1288,7 +1290,7 @@ Cela peut donner -- en tout cas -- des idées de personnalisation en ayant une b
\subsection{Présentation de code Python via pythontex}\label{pythontex}
\begin{codeidee}
-L'environnement \ctex{\textbackslash envcodepythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier.
+L'environnement \ctex{envcodepythontex} est donc lié à \ctex{pythontex} (chargé par \ctex{ProfLycee}, avec l'option \textit{autogobble}) permet de présenter du code python, dans une \ctex{tcolorbox} avec un style particulier.
\end{codeidee}
\begin{codetex}[listing only]
@@ -1346,7 +1348,7 @@ Pour celles et ceux qui ne sont pas à l'aise avec le {package} \ctex{pythontex}
\end{codeinfo}
\begin{codeidee}
-L'environnement \ctex{\textbackslash envcodepythonminted} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style (\textit{minted}) particulier.
+L'environnement \ctex{envcodepythonminted} permet de présenter du code python, dans une \ctex{tcolorbox} avec un style (\textit{minted}) particulier.
\end{codeidee}
\begin{codetex}[listing only]
@@ -1402,7 +1404,7 @@ Plusieurs \Cle{arguments} (optionnels) sont disponibles :
\begin{codeidee}
\ctex{pythontex} permet également de \textit{simuler} (en exécutant également !) du code python dans une \textit{console}.
-C'est l'environnement \ctex{\textbackslash envconsolepythontex} qui permet de le faire.
+C'est l'environnement \ctex{envconsolepythontex} qui permet de le faire.
\end{codeidee}
\begin{codetex}[listing only]
@@ -1470,7 +1472,7 @@ Le {package} \ctex{listings} permet d'insérer et de présenter du code, et avec
\subsection{Présentation de Pseudo-Code}
\begin{codeidee}
-L'environnement \ctex{\textbackslash envpseudocode} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}.
+L'environnement \ctex{envpseudocode} permet de présenter du (pseudo-code) dans une \ctex{tcolorbox}.
\end{codeidee}
\begin{codeinfo}
@@ -1555,7 +1557,7 @@ Il s'agit ici de présenter une version \og clé en main \fg{}.
\begin{codeinfo}
Le style \ctex{listings} utilisé par la commande a l'option \Cle{mathescape} activé, et accessible grâce aux délimiteurs \Cle{(*...*)}.
-Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{\textbackslash envpseudocode} (attention au fontes de rendu par contre !).
+Cela permet d'insérer du code \LaTeX{} dans l'environnement \ctex{envpseudocode} (attention au fontes de rendu par contre !).
\end{codeinfo}
\begin{codetex}[listing only]
@@ -2367,7 +2369,7 @@ La commande étant \og autonome \fg{}, elle va pouvoir être intégrée dans des
\end{codesortie}
\begin{codeinfo}
-IL existe également une commande auxiliaire, \ctex{PLreglinpts} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots
+Il existe également une commande auxiliaire, \ctex{PLreglinpts} pour afficher le nuage de points avec quelques options, dans un environnement \TikZ{} classique (sans \textsf{pgfplot})\ldots
\end{codeinfo}
\begin{codetex}[listing only]
@@ -2712,9 +2714,9 @@ Ces commande permet de tracer les graduations des axes, avec des \Cle{clés} ide
Il existe, de manière marginale, quelques commandes complémentaires qui ne seront pas trop détaillées mais qui sont présentes dans l'introduction :
\begin{itemize}
- \item \ctex{\textbackslash{}PLfenetre} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ;
- \item \ctex{\textbackslash{}PLfenetresimple} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
- \item \ctex{\textbackslash{}PLorigine} pour rajouter le libellé de l'origine si non affiché par les axes.
+ \item \ctex{PLfenetre} qui restreint les tracés à la fenêtre (utile pour des courbes qui \textit{débordent}) ;
+ \item \ctex{PLfenetresimple} qui permet d'automatiser le tracé des grilles/axes/graduations dans leurs versions par défaut, avec peu de paramétrages ;
+ \item \ctex{PLorigine} pour rajouter le libellé de l'origine si non affiché par les axes.
\end{itemize}
\end{codeinfo}
@@ -2739,7 +2741,7 @@ Il existe, de manière marginale, quelques commandes complémentaires qui ne ser
\end{codetex}
\begin{codecles}
-Cette commande, liée à la commande \ctex{\textbackslash{}PLreglin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes :
+Cette commande, liée à la commande \ctex{PLreglin} permet de représenter le nuage de points associé aux deux listes, avec les \Cle{clés} suivantes :
\begin{itemize}
\item \Cle{taille} qui est la taille des points du nuage ; \hfill~défaut \Cle{2pt}
@@ -2788,7 +2790,7 @@ Cette commande, liée à la commande \ctex{\textbackslash{}PLreglin} permet de r
\end{codetex}
\begin{codecles}
-Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{\textbackslash{}PLreglin}, avec les \Cle{clés} :
+Cette commande permet de rajouter le point moyen du nuage, calculé par la commande \ctex{PLreglin}, avec les \Cle{clés} :
\begin{itemize}
\item \Cle{police}, comme précédemment ; \hfill~défaut \Cle{\textbackslash{}normalsize\textbackslash{}normalfont} ;
@@ -3345,8 +3347,8 @@ Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et
Les \Cle{donnees} seront à préciser sous forme \ctex{<sommet1>/<proba1>/<position1>,<sommet2>/<proba2>/<position2>,...} avec comme \og sens de lecture \fg{} de la gauche vers la droite puis du haut vers le bas (on balaye les \textit{sous-arbres}), avec comme possibilités :
\begin{itemize}
- \item une donnée \Cle{<proba>} peut être laissée vide ;
- \item une donnée \Cle{<position>} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur).
+ \item une donnée \Cle{proba} peut être laissée vide ;
+ \item une donnée \Cle{position} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur).
\end{itemize}
\end{codeinfo}
@@ -3556,6 +3558,390 @@ Pour le moment, seules les lois (continues) exponentielles et normales sont disp
\newpage
+\part{Outils pour l'arithmétique}
+
+\section{Conversions binaire/hexadécimal/décimal}\label{conversions}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions :
+
+\begin{itemize}
+ \item décimal en binaire avec blocs de 4 chiffres en sortie ;
+ \item conversion binaire ou hexadécimal en décimal avec écriture polynomiale.
+\end{itemize}
+\end{codeidee}
+
+\begin{codeinfo}
+Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes !
+
+\smallskip
+
+Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation !
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+\xintDecToHex{100}
+\xintDecToBin{51}
+\xintHexToDec{A4C}
+\xintBinToDec{110011}
+\xintBinToHex{11111111}
+\xintHexToBin{ACDC}
+\xintCHexToBin{3F}
+\end{codetex}
+
+\begin{codesortie}
+\xintDecToHex{100}
+
+\xintDecToBin{51}
+
+\xintHexToDec{A4C}
+
+\xintBinToDec{110011}
+
+\xintBinToHex{11111111}
+
+\xintHexToBin{ACDC}
+
+\xintCHexToBin{3F}
+\end{codesortie}
+
+\subsection{Conversion décimal vers binaire}
+
+\begin{codetex}[listing only]
+\PLconvdecbin(*)[<clés>]{<nombre>}
+\end{codetex}
+
+\begin{codecles}
+Concernant la commande en elle même, peu de paramétrage :
+
+\begin{itemize}
+ \item la version \textit{étoilée} qui permet de ne pas afficher de zéros avant pour \og compléter \fg{} ;
+ \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
+ \item l'argument, mandataire, est le nombre entier à convertir.
+\end{itemize}
+
+Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la commande dans un environnement mathématique.
+
+\smallskip
+
+Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres.
+\end{codecles}
+
+\begin{codetex}[listing only]
+% Conversion avec affichage de la base et par bloc de 4
+$\PLconvdecbin{415}$
+% Conversion avec affichage de la base et sans forcément des blocs de 4
+$\PLconvdecbin*{415}$
+% Conversion sans affichage de la base et par bloc de 4
+$\PLconvdecbin[affbase=false]{415}$
+% Conversion sans affichage de la base et sans forcément des blocs de 4
+$\PLconvdecbin*[affbase=false]{415}$
+\end{codetex}
+
+\begin{codesortie}
+$\PLconvdecbin{415}$
+
+\smallskip
+
+$\PLconvdecbin*{415}$
+
+\smallskip
+
+$\PLconvdecbin[affbase=false]{415}$
+
+\smallskip
+
+$\PLconvdecbin*[affbase=false]{415}$
+\end{codesortie}
+
+\subsection{Conversion binaire vers hexadécimal}
+
+\begin{codeinfo}
+L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres :
+
+\begin{itemize}
+ \item la macro rajoute éventuellement les zéros pour compléter ;
+ \item elle découpe par blocs de 4 chiffres binaires ;
+ \item elle présente la conversion de chacun des blocs de 4 chiffres binaires ;
+ \item elle affiche la conversion en binaire.
+\end{itemize}
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+\PLconvbinhex[<clés>]{<nombre>}
+\end{codetex}
+
+\begin{codecles}
+Quelques \Cle{clés} sont disponibles pour cette commande :
+
+\begin{itemize}
+ \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true}
+ %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
+\end{itemize}
+
+Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
+\end{codecles}
+
+\begin{codetex}[listing only]
+%conversion avec détails et affichage de la base
+$\PLconvbinhex{110011111}$
+%conversion sans détails et affichage de la base
+$\PLconvbinhex[details=false]{110011111}$
+%conversion sans détails et sans affichage de la base
+$\PLconvbinhex[affbase=false,details=false]{110011111}$
+\end{codetex}
+
+\begin{codesortie}
+$\PLconvbinhex{110011111}$
+
+$\PLconvbinhex[details=false]{110011111}$
+
+$\PLconvbinhex[affbase=false,details=false]{110011111}$
+\end{codesortie}
+
+\pagebreak
+
+\subsection{Conversion binaire ou hexadécimal en décimal}
+
+\begin{codeinfo}
+L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale :
+
+\begin{itemize}
+ \item écrit la somme des puissances ;
+ \item convertir si besoin les \textit{chiffres} hexadécimal ;
+ \item peut ne pas afficher les monômes de coefficient 0.
+\end{itemize}
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+\PLconvtodec[<clés>]{<nombre>}
+\end{codetex}
+
+\begin{codecles}
+Quelques \Cle{clés} sont disponibles pour cette commande :
+
+\begin{itemize}
+ \item la clé \Cle{basedep} qui est la base de départ (2 ou 16 !) ; \hfill{}défaut \Cle{2}
+ \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{zeros} qui affiche les chiffres 0 dans la somme. \hfill{}défaut \Cle{true}
+\end{itemize}
+
+Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
+\end{codecles}
+
+\begin{codetex}[listing only]
+%conversion 16->10 avec détails et affichage de la base et zéros
+$\PLconvtodec[basedep=16]{19F}$
+%conversion 2->10 avec détails et affichage de la base et zéros
+$\PLconvtodec{110011}$
+%conversion 2->10 avec détails et affichage de la base et sans zéros
+$\PLconvtodec[zeros=false]{110011}$
+%conversion 16->10 sans détails et affichage de la base et avec zéros
+$\PLconvtodec[basedep=16,details=false]{AC0DC}$
+%conversion 16->10 avec détails et sans affichage de la base et sans zéros
+$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$
+\end{codetex}
+
+\begin{codesortie}
+$\PLconvtodec[basedep=16]{19F}$
+
+$\PLconvtodec{110011}$
+
+$\PLconvtodec[zeros=false]{110011}$
+
+$\PLconvtodec[basedep=16,details=false]{AC0DC}$
+
+$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$
+\end{codesortie}
+
+\newpage
+
+\section{Conversion \og présentée \fg{} d'un nombre en décimal}\label{convrestes}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque.
+
+\smallskip
+
+Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion.
+
+\smallskip
+
+La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+...
+\tikzstyle{every picture}+=[remember picture]
+...
+\end{codetex}
+
+\subsection{Code et clés}
+
+\begin{codetex}[]
+%conversion basique
+\PLconvDepuisDec{78}{2}
+\end{codetex}
+
+\begin{codeinfo}
+La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles.
+\end{codeinfo}
+
+\begin{codetex}[listing only]
+\PLconvDepuisDec[<options>]{<nombre en base 10>}{<base d'arrivée>}
+\end{codetex}
+
+\begin{codecles}
+Quelques options pour cette commande :
+
+\begin{itemize}
+ \item la clé \Cle{couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red}
+ \item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt}
+ \item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt}
+ \item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE}
+ \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{couleurres} pour afficher ou non la conversion en couleur (identique au rectangle). \hfill{}défaut \Cle{false}
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[listing only]
+%conversion avec changement de couleur
+\PLconvDepuisDec[couleur=DarkBlue]{45}{2}
+
+%conversion sans le rectangle
+Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
+
+%conversion avec gestion du decalh pour le placement précis du rectangle
+\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16}
+
+%conversion avec nœud personnalisé et réutilisation
+\PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
+\begin{tikzpicture}
+ \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
+\end{tikzpicture}
+\end{codetex}
+
+\begin{codesortie}
+\PLconvDepuisDec[couleur=DarkBlue]{45}{2}
+
+\medskip
+
+Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
+
+\medskip
+
+\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16}
+
+\medskip
+
+On obtient donc \PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
+\begin{tikzpicture}
+ \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
+\end{tikzpicture}
+
+\vspace{1.5cm}
+
+~
+\end{codesortie}
+
+\newpage
+
+\section{Algorithme d'Euclide pour le PGCD}\label{prespgcd}
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de proposer une \og présentation \fg{} de l'algorithme d'Euclide pour le calcul du PGCD de deux entiers.
+
+Le package \ctex{xintgcd} permet déjà de le faire, il s'agit ici de travailler sur la \textit{mise en forme} avec alignement des restes.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\PresentationPGCD[<options>]{a}{b}
+\end{codetex}
+
+\begin{codetex}[listing only]
+...
+\tikzstyle{every picture}+=[remember picture]
+...
+\PresentationPGCD{150}{27}
+\end{codetex}
+
+\begin{codesortie}
+\PresentationPGCD{150}{27}
+\end{codesortie}
+
+\begin{codeattention}
+La mise en valeur du dernier reste non nul est géré par du code \TikZ, en mode \ctex{overlay}, donc il faut bien penser à déclarer dans le préambule :
+
+\hspace{5mm}\ctex{\textbackslash{}tikzstyle\{every picture\}+=[remember picture]}
+\end{codeattention}
+
+\subsection{Options et clés}
+
+\begin{codecles}
+Quelques options disponibles pour cette commande :
+
+\begin{itemize}
+ \item la clé \Cle{Couleur} qui correspond à la couleur pour la mise en valeur ; \hfill{}défaut \Cle{red}
+ \item la clé \Cle{DecalRect} qui correspond à l'écartement du rectangle de mise en valeur ; \hfill{}défaut \Cle{2pt}
+ \item le booléen \Cle{Rectangle} qui gère l'affichage ou non du rectangle de mise ne valeur ; \hfill{}défaut \Cle{true}
+ \item la clé \Cle{Noeud} qui gère le préfixe du nom du nœud \TikZ{} du rectangle (pour exploitation ultérieure) ; \hfill{}défaut \Cle{FFF}
+ \item le booléen \Cle{CouleurResultat} pour mettre ou non en couleur de PGCD ; \hfill{}défaut \Cle{false}
+ \item le booléen \Cle{AfficheConclusion} pour afficher ou non la conclusion ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{AfficheDelimiteurs} pour afficher ou non les délimiteurs (accolade gauche et trait droit). \hfill{}défaut \Cle{true}
+\end{itemize}
+
+\medskip
+
+Le rectangle de mise en valeur est donc un nœud \TikZ{} qui sera nommé, par défaut \ctex{FFF1}.
+
+\medskip
+
+La présentation est dans un environnement \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas indispensables.
+\end{codecles}
+
+\begin{codetex}[]
+\PresentationPGCD[CouleurResultat]{150}{27}
+\end{codetex}
+
+\pagebreak
+
+\begin{codetex}[]
+\PresentationPGCD[CouleurResultat,Couleur=ForestGreen]{1250}{450}.
+
+\PresentationPGCD[CouleurResultat,Couleur=DarkBlue]{13500}{2500}.
+
+\PresentationPGCD[Rectangle=false]{420}{540}.
+
+\medskip
+
+D'après l'algorithme d'Euclide, on a $\left| \PresentationPGCD[Couleur=LightSkyBlue,AfficheConclusion=false,AfficheDelimiteurs=false]{123456789}{9876} \right.$
+\begin{tikzpicture}
+ \draw[overlay,LightSkyBlue,thick,<-] (FFF1.east) to[bend right] ++ (2cm,0.75cm) node[right] {dernier reste non nul} ;
+\end{tikzpicture}
+\end{codetex}
+
+\subsection{Compléments}
+
+\begin{codeinfo}
+La présentation des divisions euclidiennes est gérée par un tableau du type \ctex{array}, avec alignement vertical de symboles \ctex{=} et \ctex{+}.
+
+Par défaut, les délimiteurs choisis sont donc l'accolade gauche et le trait droit, mais la clé booléenne \Cle{AfficheDelimiteurs=false} permet de choisir des délimiteurs différents.
+\end{codeinfo}
+
+\begin{codetex}[]
+$\left[ \PresentationPGCD[AfficheConclusion=false,AfficheDelimiteurs=false]{1234}{5} \right]$
+\end{codetex}
+
+\newpage
+
\part{Outils divers et variés}
\section{Fractions, ensembles}
@@ -3578,7 +3964,7 @@ Peu d'options pour ces commandes :
\item le second, mandataire, est le \textsf{calcul} ou la \textsf{division} à convertir.
\end{itemize}
-À noter que la macro est dans un bloc \textsf{ensuremath} donc les \textsf{\$\ldots\$} ne sont pas nécessaires.
+À noter que la macro est dans un bloc \ctex{ensuremath} donc les \ctex{\$...\$} ne sont pas nécessaires.
\end{codecles}
\begin{codetex}[listing only]
@@ -3911,296 +4297,6 @@ En ce qui concerne les autres arguments :
\end{center}
\end{codesortie}
-\section{Conversions binaire/hexadécimal/décimal}\label{conversions}
-
-\subsection{Idée}
-
-\begin{codeidee}
-L'idée est de \textit{compléter} les possibilités offertes par le package \ctex{xintbinhex}, en mettant en forme quelques conversions :
-
-\begin{itemize}
- \item décimal en binaire avec blocs de 4 chiffres en sortie ;
- \item conversion binaire ou hexadécimal en décimal avec écriture polynomiale.
-\end{itemize}
-\end{codeidee}
-
-\begin{codeinfo}
-Le package \ctex{xintbinhex} est la base de ces macros, puisqu'il permet de faire des conversions directes !
-
-\smallskip
-
-Les macros présentées ici ne font que les intégrer dans un environnement adapté à une correction ou une présentation !
-\end{codeinfo}
-
-\begin{codetex}[listing only]
-\xintDecToHex{100}
-\xintDecToBin{51}
-\xintHexToDec{A4C}
-\xintBinToDec{110011}
-\xintBinToHex{11111111}
-\xintHexToBin{ACDC}
-\xintCHexToBin{3F}
-\end{codetex}
-
-\begin{codesortie}
-\xintDecToHex{100}
-
-\xintDecToBin{51}
-
-\xintHexToDec{A4C}
-
-\xintBinToDec{110011}
-
-\xintBinToHex{11111111}
-
-\xintHexToBin{ACDC}
-
-\xintCHexToBin{3F}
-\end{codesortie}
-
-\subsection{Conversion décimal vers binaire}
-
-\begin{codetex}[listing only]
-\PLconvdecbin(*)[<clés>]{<nombre>}
-\end{codetex}
-
-\begin{codecles}
-Concernant la commande en elle même, peu de paramétrage :
-
-\begin{itemize}
- \item la version \textit{étoilée} qui permet de ne pas afficher de zéros avant pour \og compléter \fg{} ;
- \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item l'argument, mandataire, est le nombre entier à convertir.
-\end{itemize}
-
-Le formatage est géré par \ctex{sinuitx}, le mieux est donc de positionner la commande dans un environnement mathématique.
-
-\smallskip
-
-Les nombres écrits en binaire sont, par défaut, présentés en bloc(s) de 4 chiffres.
-\end{codecles}
-
-\begin{codetex}[listing only]
-% Conversion avec affichage de la base et par bloc de 4
-$\PLconvdecbin{415}$
-% Conversion avec affichage de la base et sans forcément des blocs de 4
-$\PLconvdecbin*{415}$
-% Conversion sans affichage de la base et par bloc de 4
-$\PLconvdecbin[affbase=false]{415}$
-% Conversion sans affichage de la base et sans forcément des blocs de 4
-$\PLconvdecbin*[affbase=false]{415}$
-\end{codetex}
-
-\begin{codesortie}
-$\PLconvdecbin{415}$
-
-\smallskip
-
-$\PLconvdecbin*{415}$
-
-\smallskip
-
-$\PLconvdecbin[affbase=false]{415}$
-
-\smallskip
-
-$\PLconvdecbin*[affbase=false]{415}$
-\end{codesortie}
-
-\subsection{Conversion binaire vers hexadécimal}
-
-\begin{codeinfo}
-L'idée est ici de présenter la conversion, grâce à la conversion \og directe \fg{} par blocs de 4 chiffres :
-
-\begin{itemize}
- \item la macro rajoute éventuellement les zéros pour compléter ;
- \item elle découpe par blocs de 4 chiffres binaires ;
- \item elle présente la conversion de chacun des blocs de 4 chiffres binaires ;
- \item elle affiche la conversion en binaire.
-\end{itemize}
-\end{codeinfo}
-
-\begin{codetex}[listing only]
-\PLconvbinhex[<clés>]{<nombre>}
-\end{codetex}
-
-\begin{codecles}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true}
- %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
-\end{itemize}
-
-Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{codecles}
-
-\begin{codetex}[listing only]
-%conversion avec détails et affichage de la base
-$\PLconvbinhex{110011111}$
-%conversion sans détails et affichage de la base
-$\PLconvbinhex[details=false]{110011111}$
-%conversion sans détails et sans affichage de la base
-$\PLconvbinhex[affbase=false,details=false]{110011111}$
-\end{codetex}
-
-\begin{codesortie}
-$\PLconvbinhex{110011111}$
-
-$\PLconvbinhex[details=false]{110011111}$
-
-$\PLconvbinhex[affbase=false,details=false]{110011111}$
-\end{codesortie}
-
-\pagebreak
-
-\subsection{Conversion binaire ou hexadécimal en décimal}
-
-\begin{codeinfo}
-L'idée est ici de présenter la conversion, grâce à l'écriture polynômiale :
-
-\begin{itemize}
- \item écrit la somme des puissances ;
- \item convertir si besoin les \textit{chiffres} hexadécimal ;
- \item peut ne pas afficher les monômes de coefficient 0.
-\end{itemize}
-\end{codeinfo}
-
-\begin{codetex}[listing only]
-\PLconvtodec[<clés>]{<nombre>}
-\end{codetex}
-
-\begin{codecles}
-Quelques \Cle{clés} sont disponibles pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{basedep} qui est la base de départ (2 ou 16 !) ; \hfill{}défaut \Cle{2}
- \item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{zeros} qui affiche les chiffres 0 dans la somme. \hfill{}défaut \Cle{true}
-\end{itemize}
-
-Le formatage est toujours géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
-\end{codecles}
-
-\begin{codetex}[listing only]
-%conversion 16->10 avec détails et affichage de la base et zéros
-$\PLconvtodec[basedep=16]{19F}$
-%conversion 2->10 avec détails et affichage de la base et zéros
-$\PLconvtodec{110011}$
-%conversion 2->10 avec détails et affichage de la base et sans zéros
-$\PLconvtodec[zeros=false]{110011}$
-%conversion 16->10 sans détails et affichage de la base et avec zéros
-$\PLconvtodec[basedep=16,details=false]{AC0DC}$
-%conversion 16->10 avec détails et sans affichage de la base et sans zéros
-$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$
-\end{codetex}
-
-\begin{codesortie}
-$\PLconvtodec[basedep=16]{19F}$
-
-$\PLconvtodec{110011}$
-
-$\PLconvtodec[zeros=false]{110011}$
-
-$\PLconvtodec[basedep=16,details=false]{AC0DC}$
-
-$\PLconvtodec[zeros=false,basedep=16]{AC0DC}$
-\end{codesortie}
-
-\newpage
-
-\section{Conversion \og présentée \fg{} d'un nombre en décimal}\label{convrestes}
-
-\subsection{Idée}
-
-\begin{codeidee}
-L'idée est de proposer une \og présentation \fg{} par divisions euclidiennes pour la conversion d'un entier donné en base 10 dans une base quelconque.
-
-\smallskip
-
-Les commandes de la section précédente donne \textit{juste} les résultats, dans cette section il y a en plus la présentation de la conversion.
-
-\smallskip
-
-La commande utilise -- par défaut -- du code \TikZ{} en mode \ctex{overlay}, donc on pourra déclarer -- si ce n'est pas fait -- dans le préambule, la commande qui suit.
-\end{codeidee}
-
-\begin{codetex}[listing only]
-...
-\tikzstyle{every picture}+=[remember picture]
-...
-\end{codetex}
-
-\subsection{Code et clés}
-
-\begin{codetex}[]
-%conversion basique
-\PLconvDepuisDec{78}{2}
-\end{codetex}
-
-\begin{codeinfo}
-La \og tableau \fg, qui est géré par \ctex{array} est inséré dans un \ctex{ensuremath}, donc les \ctex{\$...\$} ne sont pas utiles.
-\end{codeinfo}
-
-\begin{codetex}[listing only]
-\PLconvDepuisDec[<options>]{<nombre en base 10>}{<base d'arrivée>}
-\end{codetex}
-
-\begin{codecles}
-Quelques options pour cette commande :
-
-\begin{itemize}
- \item la clé \Cle{couleur} pour la couleur du \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{red}
- \item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt}
- \item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt}
- \item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE}
- \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{couleurres} pour afficher ou non la conversion en couleur (identique au rectangle). \hfill{}défaut \Cle{false}
-\end{itemize}
-\end{codecles}
-
-\begin{codetex}[listing only]
-%conversion avec changement de couleur
-\PLconvDepuisDec[couleur=DarkBlue]{45}{2}
-
-%conversion sans le rectangle
-Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
-
-%conversion avec gestion du decalh pour le placement précis du rectangle
-\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16}
-
-%conversion avec nœud personnalisé et réutilisation
-\PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
-\begin{tikzpicture}
- \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
-\end{tikzpicture}
-\end{codetex}
-
-\begin{codesortie}
-\PLconvDepuisDec[couleur=DarkBlue]{45}{2}
-
-\medskip
-
-Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
-
-\medskip
-
-\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16}
-
-\medskip
-
-On obtient donc \PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
-\begin{tikzpicture}
- \draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
-\end{tikzpicture}
-
-\vspace{1.5cm}
-
-~
-\end{codesortie}
-
\newpage
\section{Style \og main levée \fg{} en \TikZ}\label{mainlevee}
@@ -4272,6 +4368,69 @@ Les valeurs \Cle{mainlevee=5mm et 0.6pt} donnent des résultats -- à mon sens -
\newpage
+\section{Écriture d'un trinôme, trinôme aléatoire}\label{trinome}
+
+
+\subsection{Idée}
+
+\begin{codeidee}
+L'idée est de proposer une commande pour écrire, sous forme développée réduite, un trinôme en fonction de ses coefficients $a$, $b$ et $c$ (avec $a\neq0$), avec la gestion des coefficients nuls ou égaux à $\pm1$.
+
+\smallskip
+
+En combinant avec le package \ctex{xfp} et fonction de générateur d'entiers aléatoires, on peut de ce fait proposer une commande pour générer aléatoirement des trinômes à coefficients entiers (pour des fiches d'exercices par exemple).
+
+\smallskip
+
+L'affichage des monômes est géré par le package \ctex{siunitx} et le tout est dans un environnement \ctex{ensuremath}.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+\EcritureTrinome[<options>]{a}{b}{c}
+\end{codetex}
+
+\begin{codetex}[]
+\EcritureTrinome{1}{7}{0}\\
+\EcritureTrinome{1.5}{7.3}{2.56}\\
+\EcritureTrinome{-1}{0}{12}\\
+\EcritureTrinome{-1}{-5}{0}
+\end{codetex}
+
+\subsection{Clés et options}
+
+\begin{codecles}
+Quelques clés et options sont disponibles :
+
+\begin{itemize}
+ \item la clé booléenne \Cle{Alea} pour autoriser les coefficients aléatoires (voir plus bas pour la syntaxe) ;\hfill{}défaut \Cle{false}
+ \item la clé booléenne \Cle{Anegatif} pour autoriser $a$ à être négatif.\hfill{}défaut \Cle{true}
+\end{itemize}
+\end{codecles}
+
+\begin{codeinfo}
+La clé \Cle{Alea} va modifier la manière de saisir les coefficients, il suffira dans ce cas de préciser les bornes, sous la forme \ctex{valmin,valmax}, de chacun des coefficients. C'est ensuite le package \ctex{xfp} qui va se charger de générer les coefficients.
+\end{codeinfo}
+
+\begin{codetex}[sidebyside]
+Avec $a$ entre 1 et 5 (et signe aléatoire) puis $b$ entre $-2$ et 7 puis $c$ entre $-10$ et 20 :
+
+$f(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
+$g(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$\\
+$h(x)=\EcritureTrinome[Alea]{1,5}{-5,5}{-10,10}$
+
+\medskip
+
+Avec $a$ entre 1 et 10 (forcément positif) puis $b$ entre $-2$ et 2 puis $c$ entre 0 et 4 :
+
+\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}
+
+\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}
+
+\EcritureTrinome[Alea,Anegatif=false]{1,10}{-2,2}{0,4}
+\end{codetex}
+
+\newpage
+
\part{Jeux et récréations}
\section{PixelART via un fichier csv, en \TikZ}\label{pixelart}
@@ -4336,7 +4495,6 @@ L'option \Cle{csvii} permet de passer l'appel au package en version \LaTeXe.
\begin{filecontents*}[overwrite]{basique.csv}
A,B,C,D
A,B,D,C
-B,A,C,D
B,A,D,C
C,A,B,D
\end{filecontents*}
@@ -4774,6 +4932,10 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\part{Historique}
+{\small \bverb|v1.3.6|~:~~~~Présentation de l'algorithme d'Euclide pour le PGCD (page \pageref{prespgcd})
+
+{\small \bverb| |~:~~~~Affichage d'un trinôme par coefficients, aléatoires ou non (page \pageref{trinome})
+
{\small \bverb|v1.3.5|~:~~~~Correction d'un bug avec la loi géométrique (page \pageref{calcprobas})
{\small \bverb|v1.3.4|~:~~~~Ajout de petits schémas, en \TikZ{}, de lois normales et exponentielles (page \pageref{schemasprobas})
@@ -4806,7 +4968,7 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
{\small \bverb|v1.2.1|~:~~~~Amélioration de la gestion du csv pour Pixelart
-{\small \bverb|v1.2 |~:~~~~Correction d'un méchant bug sur Pixelart
+{\small \bverb|v1.2.0|~:~~~~Correction d'un \textit{méchant} bug sur Pixelart
{\small \bverb|v1.1.9|~:~~~~Pixelart en \TikZ{} (page \pageref{pixelart})
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index b4651856e7..43391bc2b5 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}[2022/10/17 v1.3.5 - Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/10/18 v1.3.6 - Aide pour l'utilisation de LaTeX en lycee]
+% 1.3.6 Ajout d'un "générateur" de trinômes (ou mise en forme basique)
% 1.3.5 Correction de bugs sur les calculs de probas (loi géométrique)
% 1.3.4 Ajout des calculs de probas geomtriques et hypergeometriques + petits schémas probas
% 1.3.3 Ajout de commandes pour des arbres de probas classiques, en tikz
@@ -2989,4 +2990,107 @@
\end{tikzpicture}
}
+%===============TRINOMEALEA============== OK!
+\setKVdefault[trinomealea]{%
+ Alea=false,%
+ Anegatif=true
+}
+
+\NewDocumentCommand\EcritureTrinome{ O{} m m m }{%
+ \useKVdefault[trinomealea]%
+ \setKV[trinomealea]{#1}%
+ \ifboolKV[trinomealea]{Alea}%
+ {%
+ \xdef\Coeffa{\fpeval{randint(#2)}}\xdef\Coeffb{\fpeval{randint(#3)}}\xdef\Coeffc{\fpeval{randint(#4)}}%
+ \xdef\AleaSigneA{\fpeval{randint(1,2)}}%
+ \ifboolKV[trinomealea]{Anegatif}%
+ {\xintifboolexpr{\AleaSigneA == 1}{\def\TriSigneA{}}{\def\TriSigneA{-}}}%
+ {\def\TriSigneA{}}%forcément a>0
+ }%
+ {%
+ \xdef\Coeffa{#2}\xdef\Coeffb{#3}\xdef\Coeffc{#4}%
+ \def\TriSigneA{}%
+ }%
+ \def\TriPartieA{\num{\TriSigneA\Coeffa} x^2}%
+ \xintifboolexpr{\Coeffa == 1}%
+ {\def\TriPartieA{x^2}}{}%
+ \xintifboolexpr{\Coeffa == -1}%
+ {\def\TriPartieA{-x^2}}{}%
+ \def\TriPartieB{\num[print-implicit-plus]{\Coeffb}x}%
+ \xintifboolexpr{\Coeffb == 0}%
+ {\def\TriPartieB{}}{}%
+ \xintifboolexpr{\Coeffb == 1}%
+ {\def\TriPartieB{+x}}{}%
+ \xintifboolexpr{\Coeffb == -1}%
+ {\def\TriPartieB{-x}}{}%
+ \xintifboolexpr{\Coeffc == 0}%
+ {\def\TriPartieC{}}{\def\TriPartieC{\num[print-implicit-plus]{\Coeffc}}}%
+ %formatage
+ \ensuremath{\TriPartieA\TriPartieB\TriPartieC}%
+}
+
+
+%=================PRESPGCD=============== OK!
+\DeclareMathOperator{\PLpgcd}{PGCD}
+\defKV[prespgcd]{%
+ Couleur=\def\PLPGCDCouleur{#1},%
+ DecalRect=\def\PLPGCDDecal{#1},%
+ Noeud=\def\PLPGCDNoeud{#1}
+}
+
+\setKVdefault[prespgcd]{%
+ Couleur=red,%
+ DecalRect=2pt,%
+ Rectangle=true,%
+ Noeud=FFF,%
+ CouleurResultat=false,%
+ AfficheConclusion=true,%
+ AfficheDelimiteurs=true
+}
+
+\newcommand\PresentationPGCD[3][]{%
+ \useKVdefault[prespgcd]%
+ \setKV[prespgcd]{#1}%
+ \xdef\respgcd{\xinteval{gcd(#2,#3)}}
+ \xdef\ValA{#2}\xdef\ValB{#3}%on stocke les valeurs du départ
+ \ensuremath{%
+ \ifboolKV[prespgcd]{AfficheDelimiteurs}%
+ {\left\lbrace}%
+ {}%
+ \begin{array}{@{\,}r@{\;=\;}l@{\;+\;}r}
+ %1ère division
+ \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}
+ \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
+ \xintifboolexpr{\ValR == \respgcd}%
+ {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
+ {\num{\ValR}}%
+ \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
+ \whiledo {\ValR > 0}%
+ {%
+ \xdef\ValQ{\fpeval{trunc(\ValA/\ValB,0)}}\xdef\ValR{\fpeval{\ValA-\ValB*\ValQ}}%
+ \\%
+ \num{\ValA}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}%
+ \xintifboolexpr{\ValR == \respgcd}%
+ {\PLnoeud{\PLPGCDNoeud1}{\num{\ValR}}}%noeud si c'est le pgcd
+ {\num{\ValR}}%
+ \xdef\ValA{\ValB}\xdef\ValB{\ValR}%nouvelles valeurs
+ }%
+ \end{array}%
+ \ifboolKV[prespgcd]{AfficheDelimiteurs}%
+ {\right|}%
+ {}%
+ \ifboolKV[prespgcd]{AfficheConclusion}%
+ {%
+ \Rightarrow \PLpgcd\left(\num{#2}\mathpunct{};\num{#3}\right)=\ifboolKV[prespgcd]{CouleurResultat}{\mathcolor{\PLPGCDCouleur}{\num{\respgcd}}}{\num{\respgcd}}%
+ }%
+ {}%
+ }%
+ \ifboolKV[prespgcd]{Rectangle}%
+ {%
+ \begin{tikzpicture}
+ \draw[overlay,rounded corners=4pt,\PLPGCDCouleur,thick] ($(\PLPGCDNoeud1.north west)+(-\PLPGCDDecal,\PLPGCDDecal)$) rectangle ($(\PLPGCDNoeud1.south east)+(\PLPGCDDecal,-\PLPGCDDecal)$) ;
+ \end{tikzpicture}%
+ }{}%
+}
+
\endinput \ No newline at end of file