-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Delimit if/else branches with braces instead of \else #36
Conversation
@FrnchFrgg Bonjour Julien, Ci-joint l'essai que j'ai fait. Pour fmtcount à dire vrai je n'ai pas utilisé le HEAD de |
Ce commentaire contient les instructions pour récupérer et installer le HEAD de |
I can reproduce the bug with the minimal example zip you gave. I use LuaLaTeX, cleveref 0.21.4 2018/03/27, fmtcount v3.05 2017/12/24. |
Sorry, I thought that you were a French speaking person. That is why I answered in French. My cleveref version is as follows: « cleveref 2013/12/28 v0.19 Intelligent cross-referencing », that is probably why I could not reproduce the problem, I will update it and see what happens. |
En effet, je suis français. Sauf que je parle tellement anglais sur le net que par réflexe je réponds en anglais... Et en effet, le problème s'est déclaré avec la mise à jour de TeXLive et donc de cleveref. Avec un ancien cleveref, pas de problème, c'est pour cela que j'ai précisé la version dans la pull request initiale. |
OK, j'arrive à reproduire le bogue avec la dernière cleveref (la 0.21.5, dispo sur CTAN), et vous avez vu juste c'est bien le fait que cleveref redéfinisse à Je pense que le souci est plutôt dans cleveref. J'ai fait une modif que je vous joins… |
Et voilà… |
Il y a un problème dans cleveref sans doute, mais il est aussi certain que les constructions avec des booléens primitifs
|
J'avoue que je ne suis pas complètement d'accord avec vos recommandations. Le problème c'est que Vous proposez d'utiliser des noms très peu probables, mais pour moi ça revient à encombrer inutilement la table de hashage de TeX, je préfère utiliser des noms communs pour les variables temporaires pour recycler les ressources mémoire déjà prises. Par ailleurs, je n'étais pas satisfait de la 1re correction de |
@FrnchFrgg Bonsoir, |
Je suis d'accord que le bug vient de cleveref. Cela dit, les concepteurs de LaTεX 2ε et surtout LaTεX 3 ont décidé consciemment d'éviter un maximum les constructions \if \else primitives, justement à cause de ces problèmes. Une bonne manière d'être robuste contre les autres packages mal élevés est d'utiliser des techniques comme @FirstOfTwo en LaTεX2ε ou comme \bool_if:nTF en LaTεX3, qui s'affranchissent de ces problèmes graces aux arguments délimités par accolades. Tel était le but de cette PR. Feel free to ignore it. |
When `cleveref 0.21.4` is loaded together with `fmtcount` 3.05 with the french language, e.g with ``` \documentclass[12pt,french]{article} \usepackage{babel} \usepackage{cleveref} \usepackage{fmtcount} \begin{document} \ordinalstringnum{1} \end{document} ``` the result is ``` Incomplete \ifnum; all text was ignored after line ... ``` This is probably due to a command like \@tempa or similar that cleveref redefines to \iftrue or \iffalse somewhere for its usage, which leads the fast conditional skipping of TeX astray. Use braced arguments and \@firstoftwo/\@secondoftwo instead, which fixes the problem.
@FrnchFrgg J'ai pris ta modif, mais comme master est en plein chantier, j'ai mis le changement vers la branche de maintenance version_3.05+ pour l'instant. Je refusionnerai tout ça dans master au moment de sortir la v4.00 qui comprend l'arabe. |
@FrnchFrgg Merci pour la contrib. |
@FrnchFrgg J'ai versé aujoiurd'hui sur le CTAN une version v3.07 qui prend en compte votre correction. |
Thanks. I am still waiting for an answer from the cleveref maintainer (because making fmtcount more robust doesn't preclude from fixing the bug in the original package) |
When
cleveref 0.21.4
is loaded together withfmtcount
3.05 with the french language, e.g withthe result is
This is probably due to a command like
\@tempa
or similar that cleveref redefines to\iftrue
or\iffalse
somewhere for its usage, which leads the fast conditional skipping of TeX astray. Use braced arguments and\@firstoftwo
/\@secondoftwo
instead, which fixes the problem.