"! Undefined control sequence. <argument> \fail" after update. But what package?

David Carlisle d.p.carlisle at gmail.com
Thu Jan 6 17:10:36 CET 2022


On Thu, 6 Jan 2022 at 15:31, Zdenek Wagner <zdenek.wagner at gmail.com> wrote:

> Hi,
>
> as default, LaTeX does not trace the error, it just displays the line
> number but not the file and does not show what triggered the error.
> Add the following to the beginning of your main file:
>
> \errorcontextlines=999
>
> It will then show the complete trace of the expansion leading to the
> undefined control sequence.
>
> Zdeněk Wagner
> http://ttsm.icpf.cas.cz/team/wagner.shtml
>
>
while that's true in general it isn't needed here as the undefined command
is already shown explicitly in the file at line  112 (the full log would
show which file)
so increasing errorcontextlines will not give any more information.

this is clearly an intentional cheap way to generate an error message by
the author of this file, intentionally using the undefined command \fail

The code will be something like

\xpatchcmd\something{\oldcode}{\newcode}
{}{\fail}


with the intended behaviour being that \oldcode is replaced by \newcode if
possible or the undefined command \fail raises an error.

For some reason (probably \something being updated and no longer having
\oldcode in its definition) the  patch failed so the last argument is
executed giving the error that \fail is undefined,
which is just shorthand to avoid writing out a full error message to say
the patch failed.

David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://tug.org/pipermail/tex-live/attachments/20220106/1250177e/attachment.html>


More information about the tex-live mailing list.