Skip to content

fix(styles): 문단 정렬에 한컴의 나눔 정렬(DISTRIBUTE_SPACE)을 받는다 - #205

Merged
airmang merged 1 commit into
mainfrom
fix/paragraph-align-distribute-space
Sep 26, 2026
Merged

airmang merged 1 commit into
mainfrom
fix/paragraph-align-distribute-space

Conversation

@airmang

@airmang airmang commented Sep 26, 2026

Copy link
Copy Markdown
Owner

요약

apply_paragraph_format(alignment=...)가 한컴의 나눔 정렬 DISTRIBUTE_SPACE를 받게 합니다.

지금은 배분 정렬 DISTRIBUTE만 받고 DISTRIBUTE_SPACE는 "unsupported paragraph alignment"로 거부합니다. 한컴이 저장한 문서에 이 값이 있고, python-hwpx도 읽을 때는 그대로 둡니다. 한컴은 두 값을 다르게 그립니다. 배분 정렬은 마지막 줄을 글자 단위로 벌리고, 나눔 정렬은 낱말 단위로 벌립니다.

변경

  • oxml/header_part.py _normalize_paragraph_alignment(): 정렬 별칭 표에 DISTRIBUTE_SPACE를 더했습니다. 대소문자는 가리지 않습니다.
  • tests/test_paragraph_align_distribute_space.py: 테스트 3개를 추가했습니다. 모두 수정 전에 실패합니다.
    • DISTRIBUTE_SPACE와 distribute_space를 받아 hh:align horizontal="DISTRIBUTE_SPACE"로 씁니다.
    • 나눔 정렬과 배분 정렬이 서로 다른 문단 모양이 되고, 저장하고 다시 열어도 그대로입니다.
  • CHANGELOG.md에 고침 항목을 추가했습니다.

검증

  • 새 테스트 3개가 통과합니다.
  • 전체 테스트: 3778개 통과, 14개 건너뜀. 실패 18개는 수정 전 main에서도 이 개발 환경에서 똑같이 실패하는 테스트입니다(심볼릭 링크, 배포 산출물 위생 검사, 줄끝(CRLF)에 기대는 문서 해시 검사처럼 환경에 기대는 것). 최신 main(9209957) 위로 옮긴 뒤 새 테스트와 모듈 경계·크기 테스트, 아래 검사가 통과합니다.
  • ruff(E9,F 전체, E4,E7,E9,F 목록), mypy, pyright, scripts/check_typing_generics_scope.py, scripts/error_code_census.py --check, scripts/check_public_hygiene.py 통과.

🤖 Generated with Claude Code

apply_paragraph_format(alignment=...) knew DISTRIBUTE but refused
DISTRIBUTE_SPACE, Hancom's space distribution (나눔 정렬), as an
unsupported alignment, though documents Hancom writes carry it and
python-hwpx reads it. It is now accepted in any case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@airmang
airmang merged commit bc8f643 into main Sep 26, 2026
13 checks passed
@airmang
airmang deleted the fix/paragraph-align-distribute-space branch September 26, 2026 17:51
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