From b3bdf86b91849c38a256c86082770bf854db7610 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 21 Oct 2022 03:01:06 +0000 Subject: CTAN sync 202210210301 --- .../biblatex-jura2/biblatex-jura2.tex | 12 +- .../biblatex-jura2/biblatex_jura2.pdf | Bin 366760 -> 379303 bytes .../biblatex-contrib/biblatex-jura2/jura2.bbx | 9 +- .../biblatex-contrib/biblatex-jura2/jura2.cbx | 24 +- .../biblatex-contrib/biblatex-jura2/mylit.bib | 4 +- macros/latex/contrib/eolang/DEPENDS.txt | 7 + macros/latex/contrib/eolang/LICENSE.txt | 21 + macros/latex/contrib/eolang/README.md | 29 + macros/latex/contrib/eolang/cactus.pdf | Bin 0 -> 47687 bytes macros/latex/contrib/eolang/eolang.dtx | 415 ++++++++ macros/latex/contrib/eolang/eolang.ins | 55 ++ macros/latex/contrib/eolang/eolang.pdf | Bin 0 -> 533580 bytes macros/latex/contrib/eolang/main.bib | 26 + .../latex/contrib/proflycee/doc/ProfLycee-doc.pdf | Bin 930967 -> 948293 bytes .../latex/contrib/proflycee/doc/ProfLycee-doc.tex | 1028 +++++++++++--------- macros/latex/contrib/proflycee/tex/ProfLycee.sty | 106 +- 16 files changed, 1287 insertions(+), 449 deletions(-) create mode 100644 macros/latex/contrib/eolang/DEPENDS.txt create mode 100644 macros/latex/contrib/eolang/LICENSE.txt create mode 100644 macros/latex/contrib/eolang/README.md create mode 100644 macros/latex/contrib/eolang/cactus.pdf create mode 100644 macros/latex/contrib/eolang/eolang.dtx create mode 100644 macros/latex/contrib/eolang/eolang.ins create mode 100644 macros/latex/contrib/eolang/eolang.pdf create mode 100644 macros/latex/contrib/eolang/main.bib (limited to 'macros/latex') 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 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-jura2/biblatex_jura2.pdf 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 Binary files /dev/null and b/macros/latex/contrib/eolang/cactus.pdf 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} +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{eolang} +%<*package> +[2022-10-20 0.0.1 Formulas and Graphs for EO Programming Language] +% +%<*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} +% +% \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:[]|'' makes it a data vertex with an optional attached ||, +% \item ``|atom:[]|'' makes it an atom with an optional attached ||, +% \item ``|box:|'' attaches a || to it, +% \item ``|xy:,,|'' places this vertex in a position relative to the vertex ||, +% shifting it right by || % and down by || 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:|'' bend it right by the amount of ||, +% \item ``|a:|'' attaches label || 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 Binary files /dev/null and b/macros/latex/contrib/eolang/eolang.pdf 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 Binary files a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf and b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf 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{//,//,...} 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{} peut être laissée vide ; - \item une donnée \Cle{} 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,649 +3558,743 @@ Pour le moment, seules les lois (continues) exponentielles et normales sont disp \newpage -\part{Outils divers et variés} +\part{Outils pour l'arithmétique} -\section{Fractions, ensembles} +\section{Conversions binaire/hexadécimal/décimal}\label{conversions} -\subsection{Fractions}\label{convfrac} +\subsection{Idée} \begin{codeidee} -L'idée est d'obtenir une commande pour \textit{simplifier} un calcul sous forme de fraction irréductible. -\end{codeidee} - -\begin{codetex}[listing only] -\convertfraction[