Skip to content

표 HorzRelTo::Page/HorzAlign::Right 좌표 계산 오류 (다단 문서) #347

@planet6897

Description

@planet6897

증상

samples/exam_eng.hwp 페이지 2에서:

  • 좌측 단 하단에 위치해야 할 "이제 듣기 문제가 끝났습니다…" 안내 박스가 우하단으로 잘못 배치됨
  • 우측 단 상단에 불필요한 여백 발생 (위 박스가 컬럼 1을 침범한 결과로 추정)

PDF(samples/exam_eng.pdf)와 SVG 출력이 상이.

원인 분석

src/renderer/layout/table_layout.rs::compute_table_x_position / compute_table_y_position:

  1. L942HorzRelTo::Pagecol_area(컬럼) 기준으로 계산. 동일 시맨틱의 picture_footnote.rs:177body_area 사용. 표 경로만 불일치.
  2. L949HorzAlign::Right에서 + h_offset (그림 경로는 - h_offset). 부호 오류로 페이지 우측을 벗어남.
  3. L994VertRelTo::Page도 동일하게 col_area 기준. 주석은 'body area 기준'이라 적었으나 실제 코드는 col_area 사용.

표가 글앞으로(InFrontOfText) wrap이고 horz=Page=123mm + halign=Right이므로:

  • 정상: body_x + body_w - table_w - h_offset ≒ 31mm
  • 현재: 컬럼 1 안에서 계산 + 부호 오류 → 우하단

영향 범위

  • HorzRelTo::Page + HorzAlign::Right (또는 Center) + 다단 문서 + 표(InFrontOfText/TopAndBottom 등)
  • 단일 단(컬럼=본문) 문서에서는 col_area = body_area라 회귀 없이 동작했을 가능성

수정 방향

compute_table_x_position / compute_table_y_positionbody_area 파라미터 추가, picture_footnote와 동일한 시맨틱으로 통일.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions