ho-tex / pdftexcmds

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

Document that \pdf@mdfivesum must be used with a real brace, not an arbitrary catcode 1 character (at least with pdflatex/xelatex) #7

Open jfbu opened 3 years ago

jfbu commented 3 years ago

The following definition is done under pdflatex:

    \def\pdf@mdfivesum#{\pdfmdfivesum}%

I propose it is documented that this implies the \pdf@mdfivesum can not be used with a catcode 1 [ for example, contrarily to the original primitive.

\documentclass{article}

\usepackage{pdftexcmds}

\begin{document}

% with pdflatex, this has no problem:

\catcode`[ 1 \catcode`] 2

\pdfmdfivesum [freedom is in danger]

% but this fails:

\makeatletter
\catcode`[ 1 \catcode`] 2

\pdf@mdfivesum [freedom is in danger]

\makeatother

\end{document}

gives

$ pdflatex testpdftexcmds
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./testpdftexcmds.tex
LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2021-02-18>
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2021/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
(/usr/local/texlive/2021/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
(/usr/local/texlive/2021/texmf-dist/tex/generic/iftex/iftex.sty)
(/usr/local/texlive/2021/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty))
(/usr/local/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./testpdftexcmds.aux)
! Use of \pdf@mdfivesum doesn't match its definition.
l.18 \pdf@mdfivesum [
                     freedom is in danger]
? 

I encountered this in a real life problem...