Skip to content

engine: an emulated acmart sigconf/sigplan sets two columns, as the format does - #220

Merged
tannevaled merged 1 commit into
mainfrom
acmart-twocolumn
Sep 4, 2026
Merged

engine: an emulated acmart sigconf/sigplan sets two columns, as the format does#220
tannevaled merged 1 commit into
mainfrom
acmart-twocolumn

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

acmart's conference and journal formats — sigconf, sigplan, acmtog, siggraph, sigchi, acmengage — are two-column by nature: the paper never passes [twocolumn], the format sets it, exactly as IEEEtran does (#218). The emulation (used when a paper does not bundle acmart.cls) applied only the single-column geometry floor, so these papers were set one column wide and over-paginated.

This sets two columns for the two-column acmart formats, the way #218 did for IEEEtran. The format is read bare ([sigconf]) or as format=… ([format=sigconf]).

Measured (157 arXiv papers with a tectonic reference)

Σ|err| ≤2pg bias
before 574 96 +36
after 568 98 +30

Two papers change, both improve, none regress; glyph-path counts are stable (no content lost — it repaginates into two columns). This addresses the emulation path; papers that bundle acmart.cls still render single-column (a separate, larger problem — the engine would need to honour the real class's two-column machinery).

This is the largest identified lever on the over-pagination measured in #146 (comment): acmart two-column formats carried +22 of the +36 bias.

Full suite, conformance ratchet, go vet and gofmt green.

🤖 Generated with Claude Code

…ormat does

acmart's conference and journal formats — sigconf, sigplan, acmtog, siggraph,
sigchi, acmengage — are two-column by nature: the paper never passes [twocolumn],
the format sets it, exactly as IEEEtran does (#218). The emulation (used when a
paper does not bundle acmart.cls) applied only the single-column geometry floor,
so these papers were set one column wide and over-paginated.

Set two columns for the two-column acmart formats, the way #218 did for IEEEtran.
The format is read bare ([sigconf]) or as format=… ([format=sigconf]).

Measured over the 157 arXiv papers with a tectonic reference: Σ page error
574 → 568, papers within two pages 96 → 98, bias +36 → +30. Two papers change,
both improve, none regress; glyph-path counts are stable (no content lost, the
content repaginates into two columns). This reaches the emulation path; papers
that bundle acmart.cls still render single-column (a separate, larger problem).

Full suite, conformance ratchet, go vet and gofmt green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit f268de5 into main Sep 4, 2026
18 checks passed
@tannevaled
tannevaled deleted the acmart-twocolumn branch September 4, 2026 13:26
tannevaled added a commit that referenced this pull request Sep 4, 2026
#220 set two columns for acmart's sigconf/sigplan/… formats, but only on the
emulation path (when the paper does not ship acmart.cls). A paper that DOES bundle
the real acmart.cls loads it — single-column in this engine — and missed the column
layout, still over-paginating ~2×.

Move the two-column decision ahead of the class-resolvable check, so it applies
whether the paper bundles the class or not; the emulation geometry floor still
applies only on the unbundled path. The format detection is unchanged
(acmartTwoColumnFormat, reading [sigconf] or [format=sigconf]).

Measured over the 157 arXiv papers with a tectonic reference, on top of #220:
Σ page error 568 → 536, papers within two pages 98 → 102, exact 23 → 24, bias
+30 → -18. Six papers change, all six improve, none regress; content (glyph-path)
counts are stable, so no content is lost — the papers repaginate into two columns.
The real acmart.cls loads without conflict; the e.twoColumn flag drives the page
builder regardless.

Full suite, conformance ratchet, go vet and gofmt green.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant