Description
Two independent headings placed on the same y coordinate above two
side-by-side ruled tables can be emitted as one wrapped Markdown heading.
This is the remaining downstream boundary after the geometry and projected
table-line fixes in #392. At the tested head of #392, the two tables are
correctly independent, but their headings are still merged.
Document
The PDF is self-authored and synthetic. It contains no customer, personal, or
project data. Each table has a nearby heading and exactly three rows by two
columns.
Expected output
## Release schedule
| Channel | Status |
|---|---|
| Stable | Ready |
| Preview | Testing |
## Support hours
| Region | Window |
|---|---|
| East | Morning |
| West | Afternoon |
Actual output
At Chengyunlai/liteparse@26b79a6, the tables are separate but the headings
are merged:
## Release schedule Support hours
| Channel | Status |
|---|---|
| Stable | Ready |
| Preview | Testing |
| Region | Window |
|---|---|
| East | Morning |
| West | Afternoon |
Command used
lit parse side-by-side-three-row-tables.pdf \
--no-ocr \
--format markdown \
--output output.md \
--quiet
A/B evidence
The same PDF and public command were run in the same Linux container:
| Version |
Grid geometry |
Markdown tables |
Headings |
main@2fd644a |
one merged component |
one merged table |
merged |
PR #392 before projection fix, 9d740a4 |
two components |
ruled candidates rejected |
merged |
PR #392 with projection fix, 26b79a6 |
two components |
two independent tables |
still merged |
This shows that table-confidence thresholds and fallback are no longer the
remaining problem at 26b79a6.
Root-cause evidence
The projection stage already emits two distinct same-y lines:
[md] ... text="Release schedule"
[MD heading-emit size/outline] h2 ... 'Release schedule'
[md] ... text="Support hours"
Markdown classification then treats Support hours as a wrapped continuation
of Release schedule. continues_heading sees the same font size, bold style,
and region path, while the equal y coordinate produces a negative vertical
gap. It currently has no horizontal or independent-table ownership guard.
Scope and regression constraints
The fix should preserve legitimate wrapped multi-line headings. It should not:
- globally disable heading continuation;
- change ruled-table confidence thresholds;
- change fallback table detection.
Suggested regression coverage:
- same-y headings owned by separate side-by-side tables remain separate;
- a legitimate two-line wrapped heading still merges;
- one page-spanning heading above both tables remains one heading;
- ordinary non-table headings keep current behavior.
Environment
Related: #392, #414
Description
Two independent headings placed on the same y coordinate above two
side-by-side ruled tables can be emitted as one wrapped Markdown heading.
This is the remaining downstream boundary after the geometry and projected
table-line fixes in #392. At the tested head of #392, the two tables are
correctly independent, but their headings are still merged.
Document
8872a0f62295b9116504a1125c658e3f489290ce815981a66a958428c09cf22aThe PDF is self-authored and synthetic. It contains no customer, personal, or
project data. Each table has a nearby heading and exactly three rows by two
columns.
Expected output
Actual output
At
Chengyunlai/liteparse@26b79a6, the tables are separate but the headingsare merged:
Command used
A/B evidence
The same PDF and public command were run in the same Linux container:
main@2fd644a9d740a426b79a6This shows that table-confidence thresholds and fallback are no longer the
remaining problem at
26b79a6.Root-cause evidence
The projection stage already emits two distinct same-y lines:
Markdown classification then treats
Support hoursas a wrapped continuationof
Release schedule.continues_headingsees the same font size, bold style,and region path, while the equal y coordinate produces a negative vertical
gap. It currently has no horizontal or independent-table ownership guard.
Scope and regression constraints
The fix should preserve legitimate wrapped multi-line headings. It should not:
Suggested regression coverage:
Environment
main@2fd644aand PR fix: keep side-by-side ruled tables separate #392 through26b79a6Related: #392, #414