You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 8f02e4e
Browse filesBrowse the repository at this point in the historyBrowse files
- 4.22.12 뒤 다섯 라운드를 묶어 낸다: 꼬리말 영역 0 인 구역의 아래쪽 쪽 번호(31), 칸 줄을 쪽에서 갈라 저장한 표의 넘침
여유 해제(32), 첫 줄도 안 드는 갈라 저장 행은 다음 쪽(33), 칸 안 빈 문단의 표에 밀린 줄(34), 쪽을 넘는 칸 안 떠 있는
표(35). 모두 렌더·조판 쪽
- 4.22.12 와 같은 채점기·코퍼스로 잰 결과(suite 문서별 비교 r42212 → r42213, 하락 0): score·PDF 글·PDF 표·별표·기타 포맷·
왕복·생성·OCR·opendataloader-bench 네 모드가 문서별로 같다(ODL 기본값 0.96367). 렌더(한컴 PDF 짝) 글 조각 85,968/90,428 →
86,051/90,433(라운드마다 내린 문서 0, 짝 문서 전체 목록 대조)·그림 3,869 → 3,872/3,976·쪽 수 1,413 → 1,421/1,431(새로
어긋난 문서 0). 조판(12개 폴더 저장본 대조) 본문 76,729·칸 205,015·두 줄+ 24,940 그대로
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7EF2EFJZMeH4dk7Rm2f15
Copy file name to clipboardExpand all lines: CHANGELOG.md
+9-1Lines changed: 9 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [4.22.13] - 2026-10-18
11
+
10
12
### Fixed
11
13
14
+
- 꼬리말 영역이 0 인 구역의 아래쪽 쪽 번호는 아래 여백 가운데 위(기준선 = 쪽 바닥 − 아래 여백/2 − 2.43pt)에 놓는다(렌더). 종전엔 꼬리말 영역이 있을 때처럼 아래 여백 바로 위(쪽 바닥 − 아래 여백 − 2.25pt)에 놓아, 아래 여백 2,834 서식의 쪽 번호가 한컴 PDF 보다 14pt 위에 찍혔다.
12
15
- 칸 줄이 쪽에서 갈라 저장된(칸 안 줄 vertpos 가 되돌아간) 표는 아래 여백으로 넘쳐 한 쪽에 남기지 않는다(렌더). 종전엔 표 전체가 아래 여백 안에서 끝나면 가르지 않아, 한컴이 두 쪽에 걸쳐 저장한 서식 표를 한 쪽에 그리고 갈린 칸 줄을 쪽 밖으로 밀어냈다.
13
16
- 쪽에서 갈라 저장된 행(칸 줄이 되돌아감)의 첫 조각은 첫 줄도 이 쪽 남은 자리에 안 들면 다음 쪽 맨 위에서 시작한다(렌더 — 칸 줄 나눔과 같은 판정). 종전엔 저장된 갈림 자리를 그대로 따라 첫 조각을 쪽 바닥(남은 858) 아래에 그렸다.
14
17
- 칸 안 빈 문단의 위아래 배치 표도 줄이 그 표에 밀려 저장됐으면(줄 = 칸 안 앞 문단 끝 + 바깥 여백 + 표 높이) 줄 위(앞 문단 끝)에 그린다(렌더 — 본문 문단과 같은 판정). 종전엔 칸 안에서는 늘 줄 자리에 그려, 칸 안 표가 제 높이만큼(196~234pt) 아래로 밀렸다.
15
18
- 갈라 저장되지 않은 칸의 줄에 앵커한 떠 있는 표가 쪽을 넘으면 칸 틀을 그 표가 끝나는 쪽까지 잇고 칸 안 표를 다음 쪽에 이어 그린다(렌더). 칸 높이는 떠 있는 표도 행으로 잰 높이까지 센다(쪽을 넘는 표의 저장 `sz` 는 첫 쪽 조각뿐). 종전엔 칸 안 표를 첫 쪽에 다 그려 쪽 밖 행이 잘렸다 — 26행 안쪽 표가 든 세 쪽 서식이 한 쪽.
16
-
- 꼬리말 영역이 0 인 구역의 아래쪽 쪽 번호는 아래 여백 가운데 위(기준선 = 쪽 바닥 − 아래 여백/2 − 2.43pt)에 놓는다(렌더). 종전엔 꼬리말 영역이 있을 때처럼 아래 여백 바로 위(쪽 바닥 − 아래 여백 − 2.25pt)에 놓아, 아래 여백 2,834 서식의 쪽 번호가 한컴 PDF 보다 14pt 위에 찍혔다.
19
+
20
+
### Validation
21
+
22
+
- 4.22.12 와 같은 채점기·코퍼스로 다시 쟀다(`node bench/suite.mjs cmp r42212 r42213`). 다섯 라운드 모두 렌더·조판 쪽만 바꿔 score·PDF 글·PDF 표·별표·기타 포맷·왕복·생성·OCR·opendataloader-bench 네 모드가 문서별로 4.22.12 와 같다(ODL 기본값 0.96367).
23
+
- 렌더(한컴 PDF 짝): 글 조각 1.5pt 안 85,968/90,428 → 86,051/90,433(라운드마다 내린 문서 0 — 짝 문서 전체 목록 대조), 그림 2pt 안 3,869 → 3,872/3,976, 쪽 수 1,413 → 1,421/1,431(새로 어긋난 문서 0).
24
+
- 조판(12개 폴더 저장본 대조) 본문 첫 줄 위치 76,729/78,376·본문+개체 16,336·표 칸 205,015/205,307·칸+개체 6,188·두 줄+ 24,940/25,187·줄 수 306,681 그대로.
Copy file name to clipboardExpand all lines: README-EN.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,7 @@ Extract Markdown for format-preserving patches with `--keep-layout-tables`. Unsu
100
100
101
101
## Validation
102
102
103
-
**4.22.12 verification · 2026-10-18**. Results use fixed corpora and reference criteria.
103
+
**4.22.13 verification · 2026-10-18**. Results use fixed corpora and reference criteria.
104
104
105
105
| Target | Population | Result |
106
106
| --- | --- | --- |
@@ -116,18 +116,19 @@ Extract Markdown for format-preserving patches with `--keep-layout-tables`. Unsu
116
116
117
117
Table structure, cell content and visual fidelity are separate metrics. The nested-table 100% applies only to these 101 tables, not all PDF parsing or page layout. See [benchmark details](docs/benchmarks-en.md) for scope, exclusions and the per-document comparison of every bench.
118
118
119
-
**4.22.12 improvement verification (2026-10-18)**: re-measured against 4.22.11 with the same scorer and corpora, parser output (all four opendataloader-bench modes, PDF text and tables, annexes, OCR, other formats, round trips and generation) is unchanged per document and the reflow saved-file metrics are unchanged, while rendered text spans within 1.5pt of Hancom's PDF rose **85,837/90,418→85,968/90,428** and images **3,866→3,869/3,976**. Text boxes are now placed at their current size (curSz), page-break paragraphs saved pushed down by their own table start a new page, tables with no row matching the table width use the longest path for column boundaries, and text-box content no longer collapses in documents with page-absolute line caches, text boxes without a text-area width, or old Hangul jamo. [Details](docs/benchmarks-en.md)
119
+
**4.22.13 improvement verification (2026-10-18)**: re-measured against 4.22.12 with the same scorer and corpora, parser output (all four opendataloader-bench modes, PDF text and tables, annexes, OCR, other formats, round trips and generation) is unchanged per document and the reflow saved-file metrics are unchanged, while rendered text spans within 1.5pt of Hancom's PDF rose **85,968/90,428→86,051/90,433**, images **3,869→3,872/3,976** and page counts **1,413→1,421/1,431**. Fixed: page numbers in sections without a footer area, page breaks of tables and rows that Hancom saved split across pages, tables in cells that push their anchor line down, and tables in cells that run past the page. [Details](docs/benchmarks-en.md)
120
120
121
121
Merged corner cells are retained within the existing logical grid during empty-row folding. Six number glyphs in the reproduced PDF are now restored; HTML rule rendering and unregistered font glyphs remain [documented limitations](docs/parsing-loss-reproductions.md) (Korean).
122
122
123
-
The external **opendataloader-bench, 200 documents** was verified on the same corpus with the 4.22.12 release candidate: overall **0.964** with defaults, **0.939** with OCR off. [Options and reproduction](docs/benchmarks-en.md#pdf--markdown--opendataloader-bench)
123
+
The external **opendataloader-bench, 200 documents** was verified on the same corpus with the 4.22.13 release candidate: overall **0.964** with defaults, **0.939** with OCR off. [Options and reproduction](docs/benchmarks-en.md#pdf--markdown--opendataloader-bench)
| 4.22.13 | Page-break and in-cell table rendering fixes — page numbers without a footer area, no bottom-margin slack for tables with cells saved split, saved-split rows whose first line does not fit start on the next page, lines pushed by tables in cells, in-cell tables that run past the page (rendered text spans 85,968 → 86,051, images 3,869 → 3,872, page counts 1,413 → 1,421) — parser output and reflow metrics unchanged from 4.22.12 |
131
132
| 4.22.12 | Text-box rendering fixes — current size (curSz), re-layout of page-absolute caches, text boxes without a text-area width, old Hangul jamo widths; page-break paragraphs pushed by their own table; longest-path column boundaries for tables with no row matching the table width (rendered text spans 85,837 → 85,968, images 3,866 → 3,869) — parser output and reflow metrics unchanged from 4.22.11 |
132
133
| 4.22.11 | Rendering fixes — where tables inside split cells restart, float bottoms in the last part of split rows, multi-row cell content heights and the alignment of the last part of split centred cells (rendered text spans 85,496 → 85,837); fixes the 4.21.31 regression that pushed pictures in empty paragraphs off the page — parser output and reflow unchanged from 4.22.10 |
133
134
| 4.22.10 | MCP `parse_document` OCR model arguments (#165); rendering fixes for tables — column boundaries of rows with different cell-width sums, merged-cell row growth, cells saved split after their first line, first rows at the page bottom and next-page parts of split centred cells (rendered text spans 84,468 → 85,496, page counts 1,410 → 1,413) — parser output and reflow unchanged from 4.22.9 |
표 구조 점수와 셀 내용·화면 재현은 별도 지표입니다. 중첩표 100%는 위 101표에 한정하며 전체 PDF·조판의 완전 일치를 뜻하지 않습니다. 채점 범위·제외 기준·전 벤치 문서별 비교는 [벤치마크 상세](docs/benchmarks.md)에 있습니다.
118
118
119
-
**4.22.12 개선 검증(2026-10-18)**: 4.22.11과 같은 채점기·코퍼스로 다시 잰 결과 파서 출력(opendataloader-bench 네 모드·PDF 글·표·별표·OCR·기타 포맷·왕복·생성)은 문서별로 4.22.11과 같고 조판 저장본 대조 지표도 그대로이며, 렌더(한컴 PDF 짝) 글 조각 위치(1.5pt 안) **85,837/90,418→85,968/90,428**, 그림 위치 **3,866→3,869/3,976**으로 개선했습니다. 글상자를 지금 크기(curSz)로 놓고, 제 표에 밀려 저장된 쪽 나누기 문단을 새 쪽에서 시작하고, 칸 너비 합이 표 너비와 같은 행이 없는 표의 열 경계를 가장 긴 길로 그리며, 쪽 좌표로 적힌 조판 캐시·글 영역 폭 없는 글상자·옛한글 자모 폭에서 글상자 글이 무너지던 것을 바로잡았습니다. [상세](docs/benchmarks.md)
119
+
**4.22.13 개선 검증(2026-10-18)**: 4.22.12와 같은 채점기·코퍼스로 다시 잰 결과 파서 출력(opendataloader-bench 네 모드·PDF 글·표·별표·OCR·기타 포맷·왕복·생성)은 문서별로 4.22.12와 같고 조판 저장본 대조 지표도 그대로이며, 렌더(한컴 PDF 짝) 글 조각 위치(1.5pt 안) **85,968/90,428→86,051/90,433**, 그림 위치 **3,869→3,872/3,976**, 쪽 수 **1,413→1,421/1,431**로 개선했습니다. 꼬리말 없는 구역의 쪽 번호 자리, 한컴이 쪽에서 갈라 저장한 표·행의 쪽 넘김, 칸 안 표가 줄을 민 자리, 쪽을 넘는 칸 안 표를 바로잡았습니다. [상세](docs/benchmarks.md)
120
120
121
121
빈 행을 접을 때 기존 논리 격자 안의 병합 모서리 셀을 보존합니다. 재현 PDF의 번호 기호 6종은 복원했으며, HTML 선 출력과 미등록 글꼴 기호는 [남은 한계](docs/parsing-loss-reproductions.md)로 기록했습니다.
122
122
123
-
외부 PDF 벤치 **opendataloader-bench 200문서**는 4.22.12 배포 후보의 동일 코퍼스 재검증에서 기본값 종합 **0.964**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
123
+
외부 PDF 벤치 **opendataloader-bench 200문서**는 4.22.13 배포 후보의 동일 코퍼스 재검증에서 기본값 종합 **0.964**, OCR 끔 **0.939**입니다. [옵션별 결과와 재현 방법](docs/benchmarks.md#pdf--markdown--opendataloader-bench)
124
124
125
125
## 최근 업데이트
126
126
127
-
최신 배포: **[4.22.12](https://github.com/chrisryugj/kordoc/releases/tag/v4.22.12)** · 2026-10-18
127
+
최신 배포: **[4.22.13](https://github.com/chrisryugj/kordoc/releases/tag/v4.22.13)** · 2026-10-18
128
128
129
129
| 버전 | 주요 변경 |
130
130
| --- | --- |
131
+
| 4.22.13 | 쪽 넘김·칸 안 표 렌더 보정 — 꼬리말 0 쪽 번호, 갈라 저장한 칸이 있는 표의 넘침 여유 해제, 첫 줄도 안 드는 갈라 저장 행은 다음 쪽, 칸 안 표에 밀린 줄, 쪽을 넘는 칸 안 표(한컴 PDF 글 조각 위치 85,968 → 86,051, 그림 3,869 → 3,872, 쪽 수 1,413 → 1,421) — 파서 출력·조판 지표는 4.22.12와 같음 |
131
132
| 4.22.12 | 글상자 렌더 보정 — 지금 크기(curSz)·쪽 좌표 캐시 재조판·글 영역 폭 없는 글상자·옛한글 자모 폭, 제 표에 밀린 쪽 나누기 문단, 같은 너비 행 없는 표의 가장 긴 길 열 경계(한컴 PDF 글 조각 위치 85,837 → 85,968, 그림 3,866 → 3,869) — 파서 출력·조판 지표는 4.22.11과 같음 |
132
133
| 4.22.11 | 렌더 보정 — 갈린 칸 안 표의 이어진 쪽 시작·갈린 행 마지막 조각의 개체 바닥·여러 행 칸 내용 높이·갈린 가운데 칸 마지막 조각 정렬(한컴 PDF 글 조각 위치 85,496 → 85,837), 빈 문단 그림이 쪽 아래로 밀리던 4.21.31 회귀 수정 — 파서 출력·조판은 4.22.10과 같음 |
133
134
| 4.22.10 | MCP `parse_document` OCR 모델 인수(#165), 렌더 표 보정 — 행마다 다른 칸 너비의 열 경계·병합 칸 행 성장·갈라 저장한 칸·쪽 바닥 첫 행·갈린 가운데 칸 다음 쪽 조각(한컴 PDF 글 조각 위치 84,468 → 85,496, 쪽 수 1,410 → 1,413) — 파서 출력·조판은 4.22.9와 같음 |
Copy file name to clipboardExpand all lines: docs/benchmarks-en.md
+21-2Lines changed: 21 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,25 @@
2
2
3
3
Scoring rules, reproduction steps and per-option results behind the README [Validation](../README-EN.md#validation) section. Internal corpora are checked by `npm run bench:gate` and mandatory release gates. The external opendataloader-bench is measured separately.
4
4
5
+
## 4.22.13: five page-break and in-cell table rendering rounds · 2026-10-18
6
+
7
+
Re-measured against 4.22.12 with the same scorer and corpora (`node bench/suite.mjs cmp r42212 r42213`). All five rounds changed only rendering and reflow, so parser output (generation included) is the same per document in every bench, and the reflow saved-file metrics are unchanged. No document's rendered spans dropped in any round (compared over the full list of paired documents), and no document newly lost its page count.
| 31 | Bottom page numbers in sections with a zero footer area sit in the middle of the bottom margin (baseline = page bottom − bottom margin/2 − 2.43pt) | +48 |
19
+
| 32 | Tables with cell lines that Hancom saved split across pages no longer stay on one page by overflowing into the bottom margin | +11 (pages +4) |
20
+
| 33 | A saved-split row whose first line does not fit in the room left starts on the next page | 0 (pages +2) |
21
+
| 34 | A top-and-bottom table in an empty cell paragraph is drawn above the line when the line was saved pushed down by that table (from the end of the previous paragraph in the cell) | +24 (images +3) |
22
+
| 35 | When a floating table anchored in an unsplit cell runs past the page, the cell and the table continue to the page where the table ends (cell height counts the floating table's rows) | 0 (pages +2) |
23
+
5
24
## 4.22.12: five text-box and rendering rounds · 2026-10-18
6
25
7
26
Re-measured against 4.22.11 with the same scorer and corpora (`node bench/suite.mjs cmp r42211 r42212`). All five rounds changed only rendering and reflow, so parser output (generation included) is the same per document in every bench, and the reflow saved-file metrics are unchanged. No document's rendered spans dropped in any round.
@@ -184,7 +203,7 @@ The nested-table 100% is limited to this text-layer sample; it does not cover PD
184
203
185
204
[opendataloader-bench](https://github.com/opendataloader-project/opendataloader-bench) scores 200 PDFs (papers, reports, slides, posters, scans) against human-made ground truth for **reading order (NID), table structure (TEDS) and heading hierarchy (MHS)** (1.0 = identical to the ground truth).
186
205
187
-
### Latest separate verification: 4.22.12 release candidate · 2026-10-18
206
+
### Latest separate verification: 4.22.13 release candidate · 2026-10-18
@@ -193,7 +212,7 @@ The nested-table 100% is limited to this text-layer sample; it does not cover PD
193
212
|`ocr: true`| 0.965 | 0.965 | 0.980 | 0.954 |
194
213
|`ocr: false`| 0.939 | 0.940 | 0.937 | 0.934 |
195
214
196
-
Each mode covers 200 documents with no missing predictions. Measured with `node bench/suite.mjs run r42212 --only=odl,odlbest,odlocr,odlfast`; every document is unchanged from 4.22.11 in all four modes (this release changed only rendering and reflow). [4.22.0 results](release-4.22.0.json) · [Earlier version comparisons](quality-campaign-session-2026-10-09.md)
215
+
Each mode covers 200 documents with no missing predictions. Measured with `node bench/suite.mjs run r42213 --only=odl,odlbest,odlocr,odlfast`; every document is unchanged from 4.22.12 in all four modes (this release changed only rendering and reflow). [4.22.0 results](release-4.22.0.json) · [Earlier version comparisons](quality-campaign-session-2026-10-09.md)
197
216
198
217
### Full option sweep: historical results, 2026-09-29
0 commit comments