Ccool, extension LaTeX à vocation mathématique

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

Bonjour,

je signale une extension à LaTeX, nouvellement créée, pour rendre plus souple la création de commande destinées à la notation mathématique.
Doc anglais, mais des exemples (dont un en français), qui devraient permettre de surmonter la barrière du langage, le cas échéant.

J'ai coché « m'avertir ... » pour le cas où cela appellerait des questions.
Dernière modification par erw1 le dimanche 19 avril 2020, 06:24, modifié 2 fois.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 794
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Ccool, extension LaTeX à vocation mathématique

Message par un bon petit »

erw1 a écrit :je signale une extension à LaTeX, nouvellement créée, pour rendre plus souple la création de commande destinées à la notation mathématique.
Doc anglais, mais des exemples (dont un en français), qui devraient permettre de surmonter la barrière du langage, le cas échéant.
Vous venez de vous inscrire, je suppose, pour faire la pub pour votre package ccool que j'ai effectivement vu passer.

Vous veillerez à corriger le lien qui est donné qui ne pointe pas au bon endroit.

Désolé si je suis un peu critique, mais puisque vous sollicitez des avis, allons-y... Absolument rien n'est expliqué dans le manuel, il y a de vagues exemples avec du code très compliqué pour faire des choses très simples. J'ai bien essayé de comprendre 1 ou 2 minutes, et j'ai fermé et oublié.

erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Re: Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

"Vous venez de vous inscrire, je suppose, pour faire la pub pour votre package ccool que j'ai effectivement vu passer."

Vous êtes perspicace.

"Absolument rien n'est expliqué dans le manuel, il y a de vagues exemples avec du code très compliqué pour faire des choses très simples."

Je n'ai pas l'impression que ce commentaire procède d'un bon esprit, vu son décalage avec la réalité. Enfin, à chacun sa pub.

pzorba75
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 201
Inscription : mardi 20 août 2013, 04:50
Localisation : Paris

Re: Ccool, extension LaTeX à vocation mathématique

Message par pzorba75 »

erw1 a écrit : "Absolument rien n'est expliqué dans le manuel, il y a de vagues exemples avec du code très compliqué pour faire des choses très simples."
Sans avoir l'expérience ni le talent d'Unbonpetit, je suis du même avis sur la documentation du package ccool : illisible et incompréhensible.
On se lasse de tout, excepté d'apprendre.
Virgile

erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Re: Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

pzorba75 a écrit :Sans avoir l'expérience ni le talent d'Unbonpetit, je suis du même avis sur la documentation du package ccool : illisible et incompréhensible.

« Illisible », c'est paradoxal pour un document mis en page avec LaTeX... Manifestement ma présence dérange. Je tiens à assurer chacun que ce n'était pas mon intention. Ne voyant pas les choses s'améliorer, je tire à Unbonpetit, et à ses suiveurs, ma révérence, tout en gardant un oeil, pour le cas où un quelconque débordement appellerait des mesures, en soulignant que j'interviens sous mon nom propre.

PS: je demande aux modérateurs de bien vouloir clore cette discussion.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 794
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Ccool, extension LaTeX à vocation mathématique

Message par un bon petit »

erw1 a écrit :
pzorba75 a écrit :Manifestement ma présence dérange. Je tiens à assurer chacun que ce n'était pas mon intention. Ne voyant pas les choses s'améliorer, je tire à Unbonpetit, et à ses suiveurs, ma révérence, tout en gardant un oeil, pour le cas où un quelconque débordement appellerait des mesures, en soulignant que j'interviens sous mon nom propre.
Vous réagissez de la mauvaise façon. Vous devriez entendre ce qui est dit au lieu de penser que c'est une attaque ad hominem.

Le manuel d'un package ou d'une librairie (que ce soit LaTeX ou autre langage) doit faire l'objet d'une extrême attention, car c'est le manuel qui, s'il est bien fait, poussera les utilisateurs à adopter le package. Ensuite je suis d'accord, écrire du code est passionnant, et il n'y a rien de plus pénible que d'écrire un manuel, mais c'est un mal nécessaire.

Tant pis si vous ne voulez pas l'entendre, mais je vous le redis car j'ai été le relire : votre manuel est la pire publicité pour votre package, je vous assure qu'on ne comprend
  1. ni ce que fait votre package
  2. ni la syntaxe
  3. ni l'intérêt de l'utiliser.
Je suis désolé, mais lorsque je vois ceci, qui semble être la syntaxe avec laquelle on appelle la macro \Ccool
ccool1.png
c'est déjà extrêmement lourd, mais vous n'expliquez nulle part ce que sont tous ces paramètres. Vous vous contentez de donner un seul exemple sur leur valeur sans expliquer de façon claire et approfondie leur rôle ; cela vous est sans doute évident, mais ce n'est pas le cas des utilisateurs...

J'ai bien été voir les exemples de code donnés, en particulier celui en français que vous nous invitiez à aller lire. Tout d'abord, je n'ai pas compris pourquoi des lignes sont commentées. Bref, sans s'arrêter à ce détail, j'ai beaucoup de mal à admettre que pour produire
ccool2.png
il faille taper

Code : Tout sélectionner

\CcoolOption{ Write = \BooleanTrue }
\Ccool{ EvalAt = \CcoolLambda{(#1)}, ApplyOp =
\CcoolLambda[2]{#1[#2]} }
[Supposons une fonction $f\EvalAt{t}$, et \'etudions le probl\`eme
o\`u la fonctionnelle $\ApplyOp{S}{f}$ est donn\'ee par\dots]{}
\CcoolOption{ Write = \BooleanFalse }
alors que taper le code suivant donne exactement le même résultat

Code : Tout sélectionner

Supposons une fonction $f(t)$, et étudions le problème où la fonctionnelle $S[f]$ est donnée par \dots
Vous n'expliquez nulle part quel est l'intérêt d'utiliser votre package. Je suppose qu'il y en a un, mais il faut qu'il vaille la peine sinon, pourquoi se fatiguer à taper ce code compliqué pour produire cette sortie très simple.

En conclusion, vous devriez prendre en considération les remarques faites, et tenter de ré-écrire votre manuel afin de le rendre plus compréhensible.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: Ccool, extension LaTeX à vocation mathématique

Message par marco56 »

Apparemment, tu es vexé erw1 mais toutes les critiques données précédemment traduisent la réalité, quoi que tu puisses en penser : on ne comprend pas du tout l'intérêt de ton package et on ne comprend pas non plus comment l'utiliser.
Le premier point est une priorité...

erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Re: Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

mais lorsque je vois ceci, qui semble être la syntaxe avec laquelle on appelle la macro \Ccool c'est déjà extrêmement lourd
La complexité d'une syntaxe doit être mise en relation avec la complexité de ce qu'elle accomplit. La syntaxe s'appuie sur xparse, le remplacement de `\newcommand`. Elle aussi, elle est complexe (j'ai du écrire un antisèche, dispo sur github), mais ce doit être pour une bonne cause. Concernant `\Ccool`, il y a 9 paramètres. Seul un est obligatoire, noté `<kvl_1>`, votre photo d'écran est coupée juste avant cette indication. C'est pourtant par la qu'il faudrait commencer.

Ainsi que c'est dit en intro de la section II, Listing, il y a un tutoriel aux listings n°3-9, chacun accomplissant la même tâche. S'il ne fallait en consulter que trois, ce serait n°3, l'approche sans macro, n°4, l'approche standard avec macro, et n°5, l'approche avec `\Ccool`, à mon sens intuitive, et plus commode que n°4. Tout le reste est effectivement compliqué au premier abord, mais peut devenir utile à l'usage.
, mais vous n'expliquez nulle part ce que sont tous ces paramètres. Vous vous contentez de donner un seul exemple sur leur valeur sans expliquer de façon claire et approfondie leur rôle ; cela vous est sans doute évident, mais ce n'est pas le cas des utilisateurs...
C'est inexact, les paramètres sont décrits aux section I-2.1 à 2.9, et leur rôle indiqué par 'Semantics', soit dans leur rubrique propre quand ils agissent seuls, soit dans une autre, s'ils agissent de concert avec un autre argument (notamment `<kvl_1>`, à la section I-2.4, qui accomplit le principal effet de bord).
Tout d'abord, je n'ai pas compris pourquoi des lignes sont commentées.
Les lignes commentées sont le code d'un listing, à la suite duquel vient son exécution. C'est effectivement un défaut, mais mineur.
Bref, sans s'arrêter à ce détail, j'ai beaucoup de mal à admettre que pour produire ... alors que taper le code suivant donne exactement le même résultat
D'abord, on peut faire sauter la première et dernière ligne sans que ça modifie le résultat visible sur le listing. L'intérêt ne vient que dans le listing suivant, n°18. Cet enchaînement est annoncé dans l'intro de la section II. Je traduis: " les listings 13, 15, ..., sont des instructions de mise en page et de leur sauvegarde. Les listings 14, 17, ... régurgitent les instructions sauvées."

Ensuite l'investissement supplémentaire (en: "overhead"), par rapport à la version basique, s'amortit au fur et à mesure que l'on utilise (en: "expand") les macros ainsi créées. Pour l'illustrer il faudrait faire long, ce qui serait anti-tutoriel. Or, pour ce qui est de long, il y a dans la bibliographie une thèse en partie rédigée avec `\Ccool`.
Vous n'expliquez nulle part quel est l'intérêt d'utiliser votre package. Je suppose qu'il y en a un, mais il faut qu'il vaille la peine sinon, pourquoi se fatiguer à taper ce code compliqué pour produire cette sortie très simple.
Le résumé tente d'y répondre. D'abord, l'intérêt des macros est supposé admis: c'est le principe Ne Vous Répétez Pas. Je l'ai redit en intro de la section II: l'approche n°3 est susceptible de causer des erreurs, par ex. si l'on décide de changer le style appliqué aux nombre entiers ou réels (ctrl-c ctrl-v). En l'espèce, il faut séparer le concept (système de nombre), du style qui lui est appliqué. Ensuite, plusieurs indications sont fournies sur la versatilité de `\Ccool` comme générateur de macros (peut-être aurais-je du d'emblée utiliser cette expression), par exemple l'option de sérialiser les instructions.
En conclusion, vous devriez prendre en considération les remarques faites, et tenter de ré-écrire votre manuel afin de le rendre plus compréhensible.
Je le ferai (prendre en considération), et vous en remercie.

marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 864
Inscription : jeudi 25 novembre 2010, 22:10

Re: Ccool, extension LaTeX à vocation mathématique

Message par marco56 »

Et dit simplement, à quoi sert ton package ? Il est fait pour qui ?
Parce que je ne vois rien d'autre que des nouvelles commandes que tout le monde fait (macros) ?
Désolé, mais je ne comprends vraiment rien à ton truc. Sans parler de la syntaxe impossible à retenir mais j'imagine que tu n'avais pas le choix.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 794
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Ccool, extension LaTeX à vocation mathématique

Message par un bon petit »

erw1 a écrit :La complexité d'une syntaxe doit être mise en relation avec la complexité de ce qu'elle accomplit.
Sans doute, mais les explications fournies doivent être proportionnelles au carré de la complexité de la macro.
erw1 a écrit :La syntaxe s'appuie sur xparse, le remplacement de `\newcommand`. Elle aussi, elle est complexe (j'ai du écrire un antisèche, dispo sur github), mais ce doit être pour une bonne cause.
Votre argument est sans valeur : l'utilisateur final se fiche comme d'une guigne des rouages internes mis en oeuvre pour écrire une macro. Vous utilisez xparse ? Grand bien vous fasse, mais vous n'avez pas à imposer la syntaxe de cette usine à gaz à l'utilisateur final, surtout si vous ne l'expliquez pas ! Vous reconnaissez vous-même que la syntaxe est complexe puisqu'il vous faut des antisèches... Si vous attendez autant d'investissement de vos utilisateurs juste pour commencer à apprendre votre package, vous vous bercez de douces illusions. Si je me prends comme exemple (c'est un mauvais exemple, mais c'est le seul que j'ai), et bien, je programme tous les jours en TeX, je suis donc un utilisateur assez averti : je ne connais rien à latex3 et à sa syntaxe (et je vis très bien comme ça et souhaite absolument que cela continue). Si j'en crois les prérequis implicites que vous faites, cela me disqualifie donc pour comprendre votre manuel ?
erw1 a écrit :Concernant `\Ccool`, il y a 9 paramètres. Seul un est obligatoire, noté `<kvl_1>`, votre photo d'écran est coupée juste avant cette indication. C'est pourtant par la qu'il faudrait commencer.
Mais s'il y a 8 paramètre facultatifs, pourquoi diable n'utilisez-vous pas un système de clés/valeurs ??? C'est quand même plus lisible, plus compréhensible, plus répandu et donc, susceptible d'être compris par le plus grand nombre, non ?

Concernant ma capture d'écran, je ne voulais rien couper lors de ma capture d'écran. Je mets donc ci-dessous ce que dit le manuel de paramètre <kvl_1>
ccool3.png
Je suis désolé, mais vous ne dites PAS qu'il est obligatoire ! Par ailleurs, que signifie "Expans" ? Vous vous contenez de le faire pointer vers le code qui le définit. Code auquel on ne comprend rien. Pareil pour "Write" et "File" ! Je vous mets au défi de trouver quelqu'un qui y comprend quelque chose. Vous vous rendez compte du manque patent d'explications dans votre manuel ?
erw1 a écrit :Ainsi que c'est dit en intro de la section II, Listing, il y a un tutoriel aux listings n°3-9, chacun accomplissant la même tâche. S'il ne fallait en consulter que trois, ce serait n°3, l'approche sans macro, n°4, l'approche standard avec macro, et n°5, l'approche avec `\Ccool`, à mon sens intuitive, et plus commode que n°4. Tout le reste est effectivement compliqué au premier abord, mais peut devenir utile à l'usage.
Si ces exemples sont importants et aident à comprendre, expliquez-les en détail.

erw1 a écrit :
, mais vous n'expliquez nulle part ce que sont tous ces paramètres. Vous vous contentez de donner un seul exemple sur leur valeur sans expliquer de façon claire et approfondie leur rôle ; cela vous est sans doute évident, mais ce n'est pas le cas des utilisateurs...
C'est inexact, les paramètres sont décrits aux section I-2.1 à 2.9, et leur rôle indiqué par 'Semantics', soit dans leur rubrique propre quand ils agissent seuls, soit dans une autre, s'ils agissent de concert avec un autre argument (notamment `<kvl_1>`, à la section I-2.4, qui accomplit le principal effet de bord).
Nous n'avons pas la même définition de ce que signifie « expliquer ». Je suis désolé, mais pour moi, vous n'expliquez rien.
erw1 a écrit :Ensuite, plusieurs indications sont fournies sur la versatilité de `\Ccool` comme générateur de macros (peut-être aurais-je du d'emblée utiliser cette expression), par exemple l'option de sérialiser les instructions.
Ah !!! On progresse.
Donc, la macro \Ccool serait un générateur de macros ? C'est cool !
Mais pourquoi ne le dites-vous pas ???

Pourquoi n'inventez-vous pas un exemple (ou plusieurs) qui démontrent toute la puissance de ce concept ? C'est ainsi que vous pourriez convaincre des utilisateurs du bien fondé de recourir à vos macros.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Re: Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

Code : Tout sélectionner

Ah !!! On progresse.
Donc, la macro \Ccool serait un générateur de macros ? C'est cool !
Mais pourquoi ne le dites-vous pas ???
Angle mort (de ma part) = danger, que j'ai corrigé en priorité. Je vais étudier vos autres remarques. Merci encore!

erw1
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 18 avril 2020, 22:43

Re: Ccool, extension LaTeX à vocation mathématique

Message par erw1 »

Je rappelle que le paquet ccool avait été critiqué pour sa doc absconse, au point que l'on ne savait pas à quoi il servait. J'ai accepté ces critiques, et commencé par reformuler le résumé, et en proposer une version française:
L’extension ccool met à disposition une interface de type clé-valeur, \Ccool, destinée à faciliter la géneration de commandes. Les paramètres optionnels contrôlant le traitement de ces clé-valeur sont fixés par défaut pour répondre aux besoins courants. Ceci peut-être utilisé pour la command-isation des conventions de notation (\Reel\mathbb{R}), au point dans le document où elles sont introduites (“Soit R les nombres réels.”). Des commandes polymorphes peuvent être générées, en associant aux clés un paramètre (par exemple, une valeur pour le style typographique, une autre pour la description du concept associé). En option, les instructions passées à cette interface peuvent être sauvegardées, ce qui peut être utile pour la rédaction de documents faisant appel à des conventions typographiques communes.
Voici à présent la nouvelle description de \Ccool (traduit de l'anglais):
2.1 Fonctionalité de base
2.2 Traitement des valeurs
2.3 Ajouter à un crochet
2.4 Insérer les valeurs (dans le code source)
2.5 Tête
2.6 Queue
2.7 Paramétrisation des clés
2.8 Sérialiser
Et la première section:
\Ccool{clés-valeurs} crée pour chaque clé = val, la commande \clé, suivant l'algo suivant:
1) val\fonction{val}
2) \clé telle que \cléval
\fonction est contrôlé par l'option globale Inner. Par exemple, l'effet de bord de \Ccool{ Reel = \mathbb{R} } est de créer \Reel, tel que \Reel\mathbb{R}. Voir la fonctionnalité annexe \CcoolLambda pour permettre à \key de prendre des paramètres.
Toujours pour répondre à la critique d'opacité de la doc, les listings 2 à 6 font, comme indiqué dans leur intitulé, office de tutoriel.

Je ne crois pas productif de répondre point par point aux objections qui m'ont été faites puisque formulées sur la base d'une doc qui est de l'histoire ancienne. J'attendrai de nouvelles interrogations ou critiques, pour lesquelles je reste à disposition.