Classes d'équivalence...
dans LaTeX
[large]Bonsoir,
S'il vous plait, comment concevoir des classes d'équivalence identiques à celles qui apparaissent dans la pièce ci-jointe, extraite du livre d'algèbre de Monsieur Michel Queysanne ? Je vous remercie par avance.
Bien cordialement,
Thierry[/large]
S'il vous plait, comment concevoir des classes d'équivalence identiques à celles qui apparaissent dans la pièce ci-jointe, extraite du livre d'algèbre de Monsieur Michel Queysanne ? Je vous remercie par avance.
Bien cordialement,
Thierry[/large]
Le chat ouvrit les yeux, le soleil y entra. Le chat ferma les yeux, le soleil y resta. Voilà pourquoi le soir, quand le chat se réveille, j'aperçois dans le noir deux morceaux de soleil. (Maurice Carême).
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Une bonne solution me semble être d'utiliser unicode-math si tu le peux (compiler par exemple avec lualatex) : La commande 'texdoc unimath-symbols' donne un document fort intéressant.
Autrement, on doit pouvoir mettre \dot par dessus les choses indiquées ici, là... et il y a des commandes \wideparen dans divers packages (fourier, stix, yhmath...). On peut les trouver en faisant 'texdoc symbols-a4'.
Je te remercie beaucoup. J'ai essayé quelques codes via tes liens. Ce qui ne me va pas, ce sont les parenthèses qui ne donnent pas le même résultat que dans la copie jointe. As-tu une solution, s'il te plait ? J'ai abandonné le code lié à "unicode-math" ; je préfère compiler directement pour obtenir un pdf. Pourtant, cela donne un beau résultat.
Amicalement,
Thierry
Sinon, on pourrait dessiner ça avec TikZ mais c'est plus de boulot (et serait plus long à compiler).
Je me rends compte que je n'ai peut-être pas bien compris ton dernier message : tu parles des parenthèses ouvrantes et fermantes ? Peut-être avec la bibliothèque TikZ calligraphy que j'avais utilisée ici. Ça n'est pas aussi simple à utiliser qu'un vrai délimiteur mathématique TeX, mais peut-être que mon environnement 'callibraced' de l'époque peut aider (je ne me souviens plus des détails...).
J'espère que tu vas bien. Voici trois reproductions de ce que je suis parvenu à faire. Je souhaiterais, si cela est possible, rapprocher le symbole $\circ$ de l'arc, ainsi que gérer la taille du symbole choisi. Vois-tu comment procéder. Sinon, je laisse comme ça.
Il y a une production n'ayant aucun sens, suivie de deux codes sources. Si tu souhaites apporter des modifications aux sources, je suis preneur.
Je te remercie par avance pour ton investissement.
Amicalement,
Thierry[/large]
Pour pouvoir essayer des choses, il faudrait :
- un exemple complet minimal que je puisse copier-coller ;
- avoir plus de précisions sur « gérer la taille du symbole choisi », i.e. : s'agit-il du petit cercle ou du petit disque, et faut-il le rendre plus gros ou plus petit ?
Pour le disque (le plus délicat car \dot appelle \mathaccent), il y a des idées ici. D'autre part, \overset d'amsmath est peut-être préférable au \stackrel du noyau LaTeX car cette dernière impose la classe \mathrel, ce qui a des conséquences sur l'espacement autour.Pour changer la position verticale du petit cercle, sans doute \raisebox peut-elle aider.
Voici le code partiel que je viens de modifier dans la feuille de style :
L'appel se fait ainsi :
pour offrir le résultat ci-dessous. Peut-être as-tu une meilleure solution. Je te remercie par avance.
- \ensuremath était mal utilisée ;
- emploi de \NewDocumentCommand pour que \overbow soit \protected ;
- utilisation de \mathpalette pour que la taille soit correcte en indices, sous-indices, exposants, sur-exposants, etc. ;
- utilisation de \mleft et \mright (du package mleftright) pour ne pas avoir l'espacement autour d'un atome Inner produit par \left( .... \right), espacement souvent trop grand (il est inapproprié ici à mon avis) ;
- suppression du every node/.style={} dont je ne saisis pas bien l'utilité (ou plutôt, pourquoi il serait désirable) ;
- définition d'un alias \clEq pour un balisage sémantique de ton code.
Voici une variante avec un \overbow calligraphié, dont l'épaisseur de base et l'amplitude varient en fonction du style mathématique. C'est plus joli, mais plus lent à compiler. Tu noteras qu'un exemple complet minimal commence par \documentclass, contient les appels \usepackage nécessaires et se termine par \end{document}. :-PJe te remercie beaucoup pour ton remarquable investissement. J'aime bien ta seconde solution, mais j'ai une erreur de compilation. Est-ce mon package "Tikz" qui est obsolète ? Je ne vois pas comment le résoudre.
Sinon, ton travail est spectaculaire, comme d'habitude.
Amitiés
Thierry[/large]
C'est sans doute la bibliothèque 'calligraphy' de TikZ qui est trop ancienne chez toi. L'erreur provient de ce que \tl_case:Nnn est utilisée mais non définie, car cette macro a été retirée du code de l3kernel le 14 juillet 2015. Il faudrait mettre à jour ta distribution TeX.
Concernant la lenteur de compilation pour la version calligraphiée : en renonçant à la mise à l'échelle automatique en indices, exposants, etc., on peut diviser par 4 le truc qui prend du temps. En effet, le \mathchoice qui est derrière \mathpalette doit construire les 4 listes mathématiques (en display style, text style, script style et scriptscript style) même si in fine, une seule sera utilisée. Ceci est dû à la manière dont fonctionnent la primitive TeX \over et ses copines \atop, \abovewithdelims, etc. : un des choix de conception les plus critiquables de TeX. Si Knuth avait choisi une syntaxe du type \frac{num}{denom}, il n'y aurait pas eu ce désagrément.
Quatre possibilités :
- ou bien on est sûr que \clEq sera toujours utilisée en display style ou en text style (pas en indice, pas en exposant) ;
- ou bien on se satisfait du fait que ce n'est pas mis à l'échelle dans ces cas-là ;
- ou bien on utilise une version rapide de \clEq pour l'écriture du document et on active la version meilleure-mais-plus-lente lorsqu'un booléen dit « c'est la version finale » ;
- ou bien on accepte la lenteur de la variante calligraphiée.
La solution 3 n'est pas bien compliquée à mettre en œuvre : il faut juste deux variantes, un booléen et un \let ou \NewCommandCopy.NB : tu pourrais mettre ton log sous forme textuelle (p. ex., dans un attachement d'extension .tex si le logiciel du forum refuse .txt).
Je te remercie. J'ai un système Windows XP 32 bits. Donc pas de mise à jour complète de ma distribution pour l'instant. C'est une spécificité informatique que d'améliorer d'un côté et de dégénérer de l'autre ; j'ai connu ça par le passé lorsque je programmais pour une boîte privé.
Merci pour ton investissement,
Amitiés,
Thierry
PS : je vais essayer de garder le code.