Skip to content

An emulated IEEEtran sets two columns, as the class does - #218

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

An emulated IEEEtran sets two columns, as the class does#218
tannevaled merged 1 commit into
mainfrom
ieee-twocolumn

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

IEEEtran is two-column by nature: its papers never pass [twocolumn], the class
simply sets two columns (onecolumn is the exception). The engine turned its
two-column builder on only for a [twocolumn] option, and excluded the classes
that "run their own column engine" — right for the real class, wrong for the
emulation, where there is no column engine at all and nothing ever turned the
columns on.

So every emulated IEEEtran paper was set one column wide across the whole text
block
:

2607.20748 pages line width
reference 27 a 252pt IEEEtran column
before 43 477pt on a 648pt page
after 21

Guarded by classFileResolvable: a paper that bundles IEEEtran.cls still gets the
real class and its own columns, untouched.

Measured, 157 arXiv papers with a tectonic reference

before after
page error 583 574
exact 21 23
within 2 pages 93 96

Four papers move; all four improve, two of them to exact.

Tests

The two IEEEtran geometry tests now assert the text block (fullWidth) rather
than the column measure — 504pt is the block, e.hsize is half of it less the
gutter — and one of them asserts the two columns directly. TestTwoColumnClassExclusion
keeps revtex and acmart excluded and says why IEEEtran is the exception: its column
engine lives in the class file, so the exclusion only makes sense when that file is
actually loaded.

🤖 Generated with Claude Code

IEEEtran is two-column BY NATURE: its papers never pass [twocolumn], the class
simply sets two columns (its `onecolumn' option is the exception). The engine
turned its two-column builder on only for a [twocolumn] OPTION, and excluded the
classes that "run their own column engine" — right for the real class, wrong for
the emulation, where there is no column engine at all and nothing ever turned the
columns on.

So every emulated IEEEtran paper was set ONE column wide across the whole text
block: 2607.20748 came out 43 pages against a reference of 27, its lines running
477pt on a 648pt page where a real IEEEtran column is 252pt. With this it is 21.

Guarded by classFileResolvable: a paper that bundles IEEEtran.cls still gets the
real class and its own columns, untouched.

Measured over the 157 arXiv papers with a reference: page error 583 → 574, exact
21 → 23, within 2 pages 93 → 96. Four papers move and all four improve, two of
them to exact.

The two geometry tests now assert the TEXT BLOCK (fullWidth) rather than the
column measure, and the exclusion test says why IEEEtran is the exception.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit 8082ad1 into main Sep 4, 2026
26 of 27 checks passed
@tannevaled
tannevaled deleted the ieee-twocolumn branch September 4, 2026 10:40
tannevaled added a commit that referenced this pull request Sep 4, 2026
…ormat does (#220)

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>
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