Skip to content

Lenient mode: swallowing an unknown command's arguments is load-bearing (measured) #178

Description

@tannevaled

Three talks in the beamer reference set render one page against tectonic's 9, 5 and 3. They call macros from a preambule.sty the corpus does not ship, and the difference is what happens to the arguments: LaTeX's own error recovery reports Undefined control sequence and then typesets {a}{b} as text, while this engine drops the command and its likely argument block (skipUndefined, engine.go).

Matching LaTeX looked like free fidelity — those three talks alone are 14 of beamer's 42-page error. Measured, it is the opposite.

Measured — keep the arguments instead of swallowing them

pages glyph paths page error exact
beamer, today 1175 205871 42 62/80
beamer, arguments kept 1972 863798 328 2/80
arXiv, today 4416 10283915 651 14/157
arXiv, arguments kept 4373 10262959 654 16/157

beamer's glyph count quadruples and its page error is eight times worse: a class calls its own undefined internals with large arguments — templates, overlay specifications, colour blocks — and typesetting those floods every page with machinery. 183 of the 200 talks repaginate.

The heuristic in skipUndefined is therefore not a convenience but load-bearing, and the three talks stay as they are: their content cannot be recovered without the package they name. Recorded so the experiment is not repeated.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions