Skip to content

XeTeX: nested main file produces PDF bytes but SDK returns no PDF #135

Description

@akcorca

During #134/#132 qualification, the existing Node output-preservation harness fails its nested XeTeX cases even in an identical-engine A/A control.

nested/main.tex successfully produces XDV and dvipdfmx reports nested/main.xdv -> nested/main.pdf and bytes written, but the SDK returns success: false and pdf: null. Root documents succeed. This reproduces with the established 2025 engine and the missing-SFD-only build; it is not introduced by the index or warning fix. The prior limitation is also recorded under #118 / compile-performance documentation.

Repro: run scripts/check-output-preservation.mjs with --engine xelatex, identical --baseline and --candidate public roots, and an immutable mirror. Default scope includes both root and nested paths. PR #134 adds --report to retain raw PDFs and complete logs, and explicit --scope root|nested|all to distinguish scoped evidence; the default remains all and still fails this case.

Root comparisons also need deterministic Node-worker clocks: creation dates reside inside compressed PDF object streams. Use node --require ./scripts/lib/fixed-engine-clock.cjs for the diagnostic. An ESM --import preload did not reach CommonJS eval workers in Node 24.18.0; --require does. The fix does not broaden PDF normalization.

Follow-up: identify the actual written/read output paths in XeTeX and dvipdfmx, add a root-to-nested repeated-worker regression, and qualify both annual lines. Do not infer nested support from root-only qualification or relax the default checker to call a missing PDF successful.

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