kordoc/docs/quality-alternating-2026-10-16.md at main · chrisryugj/kordoc · GitHub
Skip to content

Latest commit

 

History

History
50 lines (35 loc) · 5.92 KB

quality-alternating-2026-10-16.md

File metadata and controls

50 lines (35 loc) · 5.92 KB

조판·PDF 교차 개선 5라운드 — 2026-10-16

기준은 PR158 반영 후 85265b4다. 조판 → PDF → 조판 → PDF → 조판 순서로 다섯 번 수정하고 두 트랙을 비교했다. 정답·평가기·모수는 변경하지 않았고, 새 회귀 테스트를 기존 벤치 점수에 더하지 않았다. 이 변경은 4.22.2에 포함된다.

라운드별 결과

라운드 수정 조판의 직접 효과 기존 PDF 벤치의 효과
1 · 조판 저장된 문단의 쪽·단 좌표 리셋 부분 편집 재현의 위치 오차 48pt→0; 전체 재조판 일치 수 동일 글·표·별표 전부 동일
2 · PDF 다른 제목의 독립된 클립 상자 분리 전체 재조판 일치 수 동일 표 구조 완전 일치 +1, 매칭 +1
3 · 조판 인라인 그림 높이로 어울림 충돌 판정 다중줄 문단 일치 +1; 별도 2022 저장본도 +1 글·표·별표 전부 동일
4 · PDF 연속 번호의 독립된 행 보존 전체 재조판 일치 수 동일 표 구조 완전 일치 +1, 글 읽기 순서도 개선
5 · 조판 고정폭 빈칸의 단어·줄 경계 다중줄 문단 일치 +8, 하락 0 글·표·별표 전부 동일

부분 편집 재현과 전체 재조판은 서로 다른 검사다. 전체 재조판 벤치는 모든 저장 좌표를 제거하므로 1라운드의 혼합 캐시 오류를 측정하지 않는다.

수정 근거와 반례

  1. 부분 편집 위치. 저장된 한 문단이 여러 쪽에 걸쳐 있으면, 이전 쪽에서 가장 낮았던 좌표를 다음 문단에 이어 쓰던 문제다. 좌표가 되돌아간 마지막 쪽·단의 바닥만 이어받되 같은 높이의 줄 조각은 최대 바닥을 유지한다. vpos_reset_midparagraph_fit.hwpx의 끝표식은 67200→62400HU로 저장본과 일치하며 기존 문단 캐시는 그대로다.
  2. 독립 제목 상자. 156775878의 ‘일러두기’와 다음 쪽 ‘목차’가 한 표로 합쳐졌다. 제목 하나와 그 아래 전폭 본문 칸으로 확인되는 두 상자에만 제목 변경 검사를 적용한다. 세로 병합 분류 옆에 작품명·평가항목이 이어지는 자료표는 계속 잇는다.
  3. 큰 인라인 그림. 36645038의 문단 32는 글자 높이 1000HU보다 아래인 1105HU에서 시작하는 어울림 그림과 높이 2885HU 인라인 그림이 겹친다. 줄에 배정된 개체 높이로 폭을 다시 계산하면 저장본의 줄 시작 [0,50]을 복원한다. 그림이 밀려난 줄의 충돌 높이는 유지하고, 다음 줄은 실제 글자 높이와 줄 간격으로 전진한다. 원본의 높이·기준선·가로 폭·다음 줄 위치까지 일치한다.
  4. 독립 번호 행. 행정업무운영 편람 240→241쪽의 ⑤·⑥을 한 행으로 합치던 문제다. 접합 괘선, 같은 열에서 이어지는 네 완성행의 항목 번호, 별도 내용이 있는 옆칸을 함께 확인하여 9행을 보존한다. 칸 안 목록, 번호 건너뜀, 빈 옆칸, 병합 옆칸과 괘선 없는 이어짐은 새행 증거로 쓰지 않는다.
  5. 고정폭 빈칸. fwSpace(U+2005)는 1/4em 폭을 유지하면서 단어 경계로 작동한다. 일반 공백의 압축 대상에는 넣지 않는다. 아직 끝나지 않은 줄에는 끝걸침을 허용하지만 이미 끝난 줄 뒤의 고정폭 빈칸은 다음 줄 머리에 놓는다. NBSP의 단어 묶음 의미는 유지한다.

동일 모수 비교

지표 시작 5라운드 후
조판 다중줄 문단의 모든 줄 시작 일치 25,312/25,581 25,321/25,581
전체 문단 줄 수 일치 311,869/311,942 311,872/311,942
PDF 표 구조 완전 일치 2,285/2,331 2,287/2,331
PDF 표 매칭률 0.998284 0.998713
PDF 표 셀 F1 0.991406 0.991673
PDF 표 셀 내용 완전 일치 0.988200 0.988270
PDF 표 내용 NED 유사도 0.984727 0.985077
PDF 글 읽기 순서 0.99238 0.99239

별도 2022 저장본의 다중줄 문단도 17,035→17,043/17,173으로 개선됐다. 원본 모수와 합산하지 않는다.

중첩표 101개 모든 지표 1, PDF 별표 342/346과 HWP 별표 346/346은 유지된다. 일반 PDF 표 708쌍·2,331표, 글 744쌍, 별표 544개 채점행을 그대로 사용했다. 표 비교의 730개 채점행은 일반 표와 중첩표 결과를 포함하므로 708쌍과 구분한다.

검증 상태

모든 라운드의 원본 조판 문단별 하락은 0이다. 최종 PDF는 글 744개 채점행 중 1개 개선, 표 730개 중 2개 개선, 별표 544개 전부 동일하며 하락은 0이다. 조판 변경 라운드 1·3·5에서 PDF 점수는 전부 같았고, PDF 변경 라운드 2·4에서 조판 점수는 같았다. 두 트랙 간 직접 상승은 확인되지 않았다. PDF 표 행 복원은 같은 문서의 글 읽기 순서도 개선했다.

별도 2022 저장본도 문단별 하락 0이다. PDF 변경 라운드 2·4마다 외부 ODL 200문서×4모드(기본·plain+htmlTables·ocr:true·ocr:false)를 다시 측정했고 문서별 점수가 모두 동일했다. 전체 테스트 3,991개 중 3,982통과·9스킵·실패 0, 타입검사·빌드·reflow 59/59·페이지 10/10을 통과했다. 기계 판독용 결과와 측정 출처

한컴 GUI 시각 검사는 실행하지 않았다. 조판 평가는 저장된 좌표와 수치로 비교했다. 모수와 실패를 제외하거나 평가기를 수정한 것은 없다.

각 라운드의 소스·빌드는 bench/out/alternating-quality-20261016/ 아래에 고정했고, PDF 실행 결과는 bench/out/suite/alternating-20261016-*에 보존한다. 첫 제목 가드는 정상 계속표 2개를 끊어 폐기하고 구조 조건을 좁혔다. 첫 고정폭 빈칸 처리는 이미 끝난 줄 경계 1개가 달라져 수정했다. 이 중간 결과는 최종 성과에 포함하지 않는다. 병렬 실행 시간으로 성능 향상을 주장하지 않는다.