배경
작업지시자 제보 기준으로 samples/3-11월_실전_통합_2022.hwp page 4에서 한컴오피스 2022와 rhwp 웹/VS Code 계열 렌더의 수식 표현식이 다르게 보인다.
기존 #1121은 page 4 전체 시각 차이 개선 이슈였으나, 이번 건은 수식 스크립트 over와 숫자가 붙은 경우의 표현식 오류로 원인이 좁혀져 별도 이슈로 분리한다.
증상
한컴오피스 2022에서는 보기 수식이 분수 형태로 표시되지만 rhwp 렌더에서는 일부 수식이 11over20, 3over5, 13over20, 7over10, 3over4처럼 한 줄 텍스트에 가깝게 표시된다.
초기 재현
소스 수정 없이 확인한 결과:
./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 223
script="11 over20", script="3 over5"
./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 224
script="13 over20", script="7 over10"
./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 225
export-svg 결과에는 over20, over5, over10, over4 문자열이 남아 분수선/분모로 렌더되지 않는다.
반면 pi=214~215의 {8} over {13}, {17} over {26}처럼 over 뒤 공백이 있는 수식은 정상 분수로 렌더된다.
후보 원인
src/renderer/equation/tokenizer.rs::read_command()가 ASCII 알파벳/숫자를 연속으로 읽어 over20을 Command("over20")으로 만든다. 이 때문에 src/renderer/equation/parser.rs의 OVER 중위 연산자 처리가 실행되지 않는다.
기대
11 over20 → 11 over 20과 동일한 분수 AST/렌더 결과.
3 over5, 7 over10, 3 over4도 동일하게 분수로 표시.
overline, overset, overlap 같은 명령어/식별자는 기존 동작 유지.
절차
하이퍼-워터폴 절차를 따른다. 소스 수정 전 수행계획서와 구현계획서 작성 후 작업지시자 승인을 받는다.
배경
작업지시자 제보 기준으로
samples/3-11월_실전_통합_2022.hwppage 4에서 한컴오피스 2022와 rhwp 웹/VS Code 계열 렌더의 수식 표현식이 다르게 보인다.기존 #1121은 page 4 전체 시각 차이 개선 이슈였으나, 이번 건은 수식 스크립트
over와 숫자가 붙은 경우의 표현식 오류로 원인이 좁혀져 별도 이슈로 분리한다.증상
한컴오피스 2022에서는 보기 수식이 분수 형태로 표시되지만 rhwp 렌더에서는 일부 수식이
11over20,3over5,13over20,7over10,3over4처럼 한 줄 텍스트에 가깝게 표시된다.초기 재현
소스 수정 없이 확인한 결과:
./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 223script="11 over20",script="3 over5"./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 224script="13 over20",script="7 over10"./target/release/rhwp dump samples/3-11월_실전_통합_2022.hwp -s 0 -p 225script="3 over4"export-svg결과에는over20,over5,over10,over4문자열이 남아 분수선/분모로 렌더되지 않는다.반면
pi=214~215의{8} over {13},{17} over {26}처럼over뒤 공백이 있는 수식은 정상 분수로 렌더된다.후보 원인
src/renderer/equation/tokenizer.rs::read_command()가 ASCII 알파벳/숫자를 연속으로 읽어over20을Command("over20")으로 만든다. 이 때문에src/renderer/equation/parser.rs의OVER중위 연산자 처리가 실행되지 않는다.기대
11 over20→11 over 20과 동일한 분수 AST/렌더 결과.3 over5,7 over10,3 over4도 동일하게 분수로 표시.overline,overset,overlap같은 명령어/식별자는 기존 동작 유지.절차
하이퍼-워터폴 절차를 따른다. 소스 수정 전 수행계획서와 구현계획서 작성 후 작업지시자 승인을 받는다.