Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation (La)TeX avancée Discussion :

Calcul de PGCD


Sujet :

Programmation (La)TeX avancée

  1. #21
    Invité
    Invité(e)
    Citation Envoyé par Third Joker Voir le message
    Je ne vois pas où tu as vu que je chouinais.
    Pas toi, vous.
    Une fois, c'est pour se lamenter qu'il n'y ait pas de « tuto » (c'est quoi ce truc ?) pour apprendre à programmer en TeX. Ben non, y'a que dalle, c'est dégueulasse, y'a qu'à se jeter sous une voiture, tiens. Après c'est pour mes codes qui sont jugés trop peu intuitifs et que vous ne comprenez pas. Atteinte inacceptable au surmoi. Enfin, c'est le texbook qui n'a pas de version ebook. Non mais quel dépassé ce pauvre Knuth j'te jure : écrire des bouquins sur du papier ! Ah ah ah, c'est d'un absurde. À l'heure de la tendance chébran ultra-fun et méga-d'jeun's des tablettes/smartphones.

    Sans parler des Mp que je reçois sur la même tonalité...

    C'est un peu le bureau des pleurs. Je vais prendre le large quelques jours moi...

    Citation Envoyé par Third Joker Voir le message
    Cela dit, . Où est ce code source??
    Sur ton disque dur. Tu as le droit consulter le code source, de copier des portions de code pour les tester mais tu n'as pas le droit de le compiler (lire la licence) et d'obtenir un fichier dvi ou pdf et encore moins de lire ce fichier de sortie. C'est clair.

  2. #22
    Membre régulier
    unbonpetit, en ce qui concerne le lien que j'ai posté ce n'est pas moi qui l'ais compilé. C'est simplement la première chose qui apparaît sur google en tapant "textbook".

    D'autre part, si tu t'adressais à moi plus haut : je te demandais en PM où tu avais appris le TeX. Tu a bien du suivre un tutoriel ou un livre et donc quel(s) sont-ils ?

    Enfin je préfère un tutoriel ou un eBook en prenant des notes directement sur l'ordinateur mais cela ne signifie pas que je ne lis pas ou n'aime pas lire ou que je sois "chébran".

  3. #23
    Membre régulier
    Citation Envoyé par unbonpetit Voir le message
    Une fois, c'est pour se lamenter qu'il n'y ait pas de « tuto » (c'est quoi ce truc ?) pour apprendre à programmer en TeX.
    Il existe des tutoriaux pour la quasi totalité des langages de programmation existants. Il ne serait pas inimaginable qu'il en existe pour TeX. La question n'est donc pas illégitime, ni même l'envie de s'en servir pour faciliter son approche de TeX.


    Après c'est pour mes codes qui sont jugés trop peu intuitifs et que vous ne comprenez pas.
    J'ai parfois fait mention de leur opacité pour moi, et il m'est arrivé de demander des explications. Je ne me suis jamais plaint de leur complexité, ni demandé à ce que tu en fasse de plus simples et de plus intuitifs. La complexité de tes codes m'effraie autant qu'elle me ravi, et ça me pousse d'autant plus à persévérer pour les comprendre, même si parfois je me sens un peu découragé par l'ampleur de la tâche à accomplir pour y arriver.


    Enfin, c'est le texbook qui n'a pas de version ebook. Non mais quel dépassé ce pauvre Knuth j'te jure : écrire des bouquins sur du papier ! Ah ah ah, c'est d'un absurde. À l'heure de la tendance chébran ultra-fun et méga-d'jeun's des tablettes/smartphones.
    Je ne réponds même pas, ça ne me concerne pas.


    C'est un peu le bureau des pleurs. Je vais prendre le large quelques jours moi...
    Excuse-moi si ma (notre) mentalité ne te convient pas. Si nous "chouinons" trop à ton goût, tu fais quant à toi parfois preuve d'une condescendance de mauvais aloi. Autant tu es d'une aide indiscutable sur ce forum, et je te remercie encore pour les nombreux services que tu m'as rendus, autant tu n'en rates pas une pour nous plonger le nez dans notre ignorance naïve. Ce n'est pas ça qui encouragera les jeunes recrues à s'améliorer. J'ignore si tes mentors de l'époque ont fait de même, mais j'en doute.

  4. #24
    Invité
    Invité(e)
    Et bien, il y a de l'ambiance ici ! Excusez moi de vous déranger dans vos attaques personnelles mais je crois que xflr6 a raison : il vaut mieux présenter les étapes sous forme d'égalités. Ce que je souhaite (en plus de la solution que xflr6 propose), c'est que les signes "=" et "+" soit alignés les uns au dessous des autres. Comment faut-il modifier la macro de unbonpetit pour réaliser cela ?

    De plus, je vais encore vous embeter avec mes macros mais je dois souvent calculer les coefficients de bezout de 2 entiers. Or, je dois recourir à un outil externe à latex pour le faire et je me trompe (parfois) en les recopiant ce qui est assez genant. Comme l'algorithme permettant de trouve rces coefficients se rapporche de celui du calcul du pgcd, je voudrais savoir s'il serait possible à unbonpetit (ou un autre expert) d'écrire une macro \bezout qui admet 2 entiers et qui affiche l'identité de bezout, c'est à dire a*u + b*v = d, où d est le pgcd de a et b.

    Merci pour tout aide.

  5. #25
    Invité
    Invité(e)
    Citation Envoyé par joferry Voir le message
    les signes "=" et "+" soit alignés les uns au dessous des autres
    C'est possible, soit avec le package amsmath, soit carrément avec du tex pur comme dans le code que je propose. J'ai également aligné les signes "\times", j'ai trouvé ça plus esthétique, j'espère que j'ai bien fait.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    \documentclass{article}
    \makeatletter
    \newcount\cnt@a\newcount\cnt@b
    \def\PGCD#1#2{%
    	\bigbreak\hfill\vbox\bgroup\ifnum#1>#2\cnt@a#1\cnt@b#2\else\cnt@a#2\cnt@b#1\relax\fi
    	\halign\bgroup\hfil$##$&${}=\hfil##$&${}\times##$\hfil&${}+##$\hfil\cr\PGCD@i\crcr\egroup\egroup\hfill\kern\z@\bigbreak}
    \def\PGCD@i{\expandafter\PGCD@ii\expandafter{\number\expandafter\cnt@a\expandafter}\expandafter{\number\cnt@b}}
    \def\PGCD@ii#1#2{#1&\cnt@b#1 \global\divide\cnt@b#2 \number\cnt@b&\global\cnt@b\numexpr#1-#2*\cnt@b\relax\number\cnt@b\global\cnt@a#2 \cr\unless\ifnum\cnt@b=\z@\expandafter\PGCD@i\fi}
    \makeatother
    \begin{document}
    Calcul du PGCD : \PGCD{39}{15}% macro à inventer
    \bigskip
     
    Calcul du PGCD : \PGCD{1897}{879}
    \end{document}


    De plus, je vais encore vous embeter avec mes macros
    Dans ce cas, comme la macro \bezout n'a pas grand chose à voir avec la macro \PGCD, merci d'ouvrir une nouvelle discussion. Vu la tournure qu'elle prend, celle-ci a d'ailleurs bien besoin d'être terminée.

  6. #26
    Membre averti
    C'est du condensé de chez condensé !

    J'avoue, j'avais essayé de modifier le script de unbonpetit avec mes très faibles connaissances de tex (ce sont des exercices qui font apprendre mine de rien), et je n'arrivais pas à un résultat esthétique... je me suis abstenu.
    Mais je suis content, ça me fait un script --assez dense-- de plus à méditer

  7. #27
    Invité
    Invité(e)
    Citation Envoyé par unbonpetit Voir le message
    J'ai également aligné les signes "\times", j'ai trouvé ça plus esthétique, j'espère que j'ai bien fait.
    Oui, oui, tu as très bien fait.
    Merci pour ce code.

    Je vais créer une nouvelle discussion pour Bezout.

  8. #28
    Futur Membre du Club
    qui peut envoyé un vrais code source pour bien avoir le calcul d pgcd ??

  9. ###raw>post.musername###
    Membre régulier
    Bonjour,

    Je découvre un peu tardivement cette discussion. Aujourd’hui il existe une version de TeX qui embarque un vrai langage de programmation prévu pour ça, cela s'appelle Lua(La)TeX, pourquoi s'en priver ? Bien sûr les dinosaures vont crier au scandale, comme mon grand-père qui refuse de porter autre chose que des sabots de bois, mais les dinosaures on s'en fout !

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    \documentclass{article}
    \usepackage{luaotfload}
    \usepackage{luatextra}
    \usepackage{amsmath,amssymb,marvosym,stmaryrd,calrsfs}%
    \usepackage{lualatex-math}%patch pour lualatex
     
    \usepackage[math-style=french]{unicode-math}
    \usepackage[frenchb]{babel}
     
    \begin{document}
     
    \begin{luacode}
        Euclide = function(a,b)
        if a < b then a,b = b,a end
        r = math.mod(a,b)
        tex.sprint("\\begin{tabular}{|c|c|c|}\\hline")
        tex.sprint("a&b&r\\tabularnewline\\hline")
        tex.sprint(a .. "&" .. b .. "&" .. r .. "\\tabularnewline\\hline")
        while r > 0 do
            a,b = b,r
            r = math.mod(a,b)
            tex.sprint(a .. "&" .. b .. "&" .. r .. "\\tabularnewline\\hline")
        end
        tex.sprint("\\end{tabular}")
        end
    \end{luacode}
    \newcommand*{\Euclide}[2]{\directlua{Euclide(#1,#2)}}%
     
    Calcul du PGCD : \Euclide{39}{15}%
    \bigskip
     
    Calcul du PGCD : \Euclide{1897}{879}
    \end{document}
      0  0

  10. #30
    Invité
    Invité(e)
    Citation Envoyé par mittag Voir le message
    Bonjour,

    Je découvre un peu tardivement cette discussion. Aujourd’hui il existe une version de TeX qui embarque un vrai langage de programmation prévu pour ça, cela s'appelle Lua(La)TeX, pourquoi s'en priver ? Bien sûr les dinosaures vont crier au scandale, comme mon grand-père qui refuse de porter autre chose que des sabots de bois, mais les dinosaures on s'en fout !
    Les dinosaures ont créé LuaLateX en le programmant avec TeX qui est indispensable pour qui veut créer des packages et pour permettre aux dérivés de TeX d'évoluer.
    Respect aux dinosaures !

  11. #31
    Membre régulier
    Citation Envoyé par AndréC Voir le message
    Les dinosaures ont créé LuaLateX en le programmant avec TeX qui est indispensable pour qui veut créer des packages et pour permettre aux dérivés de TeX d'évoluer.
    Respect aux dinosaures !
    Non, vous confondez format et moteur. LuaTeX n'est pas un format (les formats sont écrits en TeX), mais un moteur (programme indépendant, écrit en C il me semble) au même titre que pdftex et xetex. Chacun de ces trois moteurs reprend évidemment les algorithmes de Knuth qui ont fait la puissance de TeX. Comme xetex, LuaTeX ajoute la gestion native de l'unicode (absent de TeX), mais il ajoute également le langage Lua ainsi que de nouvelles primitives. pdftex n'est plus développé car c'est luatex le successeur.
    http://www.luatex.org/

  12. #32
    Invité
    Invité(e)
    Citation Envoyé par mittag Voir le message
    Non, vous confondez format et moteur. LuaTeX n'est pas un format (les formats sont écrits en TeX), mais un moteur (programme indépendant, écrit en C il me semble) au même titre que pdftex et xetex. Chacun de ces trois moteurs reprend évidemment les algorithmes de Knuth qui ont fait la puissance de TeX. Comme xetex, LuaTeX ajoute la gestion native de l'unicode (absent de TeX), mais il ajoute également le langage Lua ainsi que de nouvelles primitives. pdftex n'est plus développé car c'est luatex le successeur.
    http://www.luatex.org/
    Je confonds leur appellation il est vrai. Et je crois que je n'arriverai jamais à distinguer de mémoire l'appellation du moteur et celle du format.