ho-tex / pdftexcmds

pdftexcmds package for LaTeX
LaTeX Project Public License v1.3c
1 stars 0 forks source link

pdftexcmds: Inconsistent definitions of \pdf@strcmp #1

Closed Skillmon closed 4 years ago

Skillmon commented 5 years ago

The definitions of \pdf@strcmp are inconsistent between pdfLaTeX and XeLaTeX. One would think that they should both be defined to expand to the appropriate primitive (or even let to those), but instead under pdfLaTeX the definition is done with \def\pdf@strcmp#{\pdfstrcmp} and in XeLaTeX with \def\pdf@strcmp{\strcmp}. Why are those defined inconsistently across the two engines, as far as I can see, both primitives have the same rules for their argument (\pdfstrcmp\relax{foo}\relax{foo} and \strcmp\relax{foo}\relax{foo} both work).

davidcarlisle commented 5 years ago

Thanks for the report, I suspect it would be better to use the simple form without # in both cases. (As currently defined the pdftex version does not allow \relax before the first argument but it does before the second.

davidcarlisle commented 4 years ago

@josephwright are you aware of any differences between pdftex and xetex here?

josephwright commented 4 years ago

@davidcarlisle No, the two are the same in implementation (the code is a copy done by me and fixed by Jonathan Kew).

I've noticed the weirdness here before, but really it's very much an edge case: I'm not really sure why Heiko allowed material before the first argument: as these are explicitly macro wrappers, there is no need to cover primitive argument grabbing.

davidcarlisle commented 4 years ago

Thanks l agree it's not a big issue but I'm updating the package this release anyway so I may as well do this

On Wed, 20 Nov 2019, 16:40 Joseph Wright, notifications@github.com wrote:

@davidcarlisle https://github.com/davidcarlisle No, the two are the same in implementation (the code is a copy done by me and fixed by Jonathan Kew).

I've noticed the weirdness here before, but really it's very much an edge case: I'm not really sure why Heiko allowed material before the first argument: as these are explicitly macro wrappers, there is no need to cover primitive argument grabbing.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ho-tex/oberdiek/issues/60?email_source=notifications&email_token=AAJVYART35XLWTNO42PTEJDQUVR6DA5CNFSM4HEBHWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEESUKII#issuecomment-556090657, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJVYAUY4DAN6OKWA4CRJYDQUVR6DANCNFSM4HEBHWEQ .