아트카프트 시리즈의 디자인크래프트로, 일본 텍스트 배치 주변의 수정 작업을 완료했습니다.
디자인크래프트는 인디자인과 같은 페이지 레이아웃 및 출판 제작을 목표로 하는 오픈 소스 앱입니다. 이번에는 인디자인에서 내보낸 실제 일본 문서를 읽어 들일 때 발생했던 문제를 해결하고 있습니다.
파일이 열리는 것과 원본 문서와 동일하게 글자가 채워지는 것. 그 사이에도 여전히 미세한 차이들이 존재합니다.
이번에 맞서 싸워야 했던 것은 바로 그 차이점 그 자체였습니다.
들어있는 글꼴이 “찾을 수 없습니다.”
InDesign 2026에서 생성한 IDML 파일을 DesignCraft 0.8.0으로 열었을 때, 글꼴 부족 및 텍스트 넘침 문제가 대량으로 발생했습니다.
텍스트의 흐름, 즉 과잉 설정은 문자가 텍스트 영역에 완전히 담기지 않은 상태를 의미합니다.
어떤 문서에서는 인 디자인에서 확인한 결과, 543개의 텍스트 프레임 중 1개만이 튀어나온 것을 보여주었습니다. 디자인 크래프트에서는 이 1개를 27개로 판정했습니다.
가장 먼저 발견된 원인은 글꼴 이름입니다.
IDMLには「游明朝」のような日本語名でフォントが記録されます。一方、DesignCraftのフォント検索は、英語名を照合していました。
따라서 “유명창”과 “유민초”가 같은 폰트라고 연결되지 않았습니다.
폰 자체의 특성뿐만 아니라, 이름의 차이로 인해 검색되지 않는 경우도 발생합니다.
따라서 폰트 메뉴용으로 이미 읽어두었던 각 언어의 이름을 폰트 검색에서도 사용하도록 했습니다. 표시하기 위해 가지고 있던 정보를 문서가 올바르게 열리는 데에도 활용하는 수정입니다.
문장 끝의 마침표가 줄을 바꿔버린다.
다음으로 수정한 것은 끝맺음 마침표와 닫힌 괄호 처리에 관한 것이었습니다.
일본어 텍스트 구성에는 행말의 쉼표 등의 반각 폭을 기준으로 처리하는 설정이 있습니다. 이 부분을 전체 폭으로 처리하면 원래 그 행에 들어가는 글자가 다음 행으로 넘어가게 됩니다.
한 줄이 늘어나면, 그 아래 줄도 함께 움직입니다. 枠의 높이에 여유가 없다면, 결국에는 글자가 넘쳐 흐릅니다.
이번에 IDML의 해당 문자 조합 설정을 읽어내고, 행 끝의 대상이 되는 약물을 반올림 폭으로 취급하는 처리를 추가했습니다.
더 나아가, 단락의 끝이나 강제 개행 바로 직전에서도 해당 텍스트의 처리가 정확하게 개행 판별로 전달되도록 합니다.
마지막 글자의 “후에”, 글자 간격은 필요한가
트래킹, 즉 문자 전체의 자간 차이에 주목할 필요가 있었습니다.
글자와 글자 사이 간격을 넓힌 설정이더라도, 줄의 마지막 글자 뒤에는 다음 글자가 없습니다.
그러나 마지막 빈칸까지 채우려고 하면 글자 자체는 채워지지만 줄 바꿈이 발생합니다.
검증용 문서에서 인디자인의 동작을 확인하고, 마지막 문자의 위치와 원래 폭으로 적합성을 판단하도록 수정했습니다.
이러한 작은 간격의 차이가 문서 전체의 줄 바꿈 위치에 영향을 미칩니다.
유럽어 설정만 일본어에도 적용했어.
또 다른 이유는 커닝 때문이었습니다.
IDML에는 “Metrics - Roman Only” 설정이 있습니다. 르네상스 문자(라틴 문자)에만 메트릭 카르나링을 적용하는 설정이지만, 지금까지의 로딩 방식에서는 일반적인 메트릭 카르나링과 동일하게 취급했습니다.
따라서 일본어 부분에도 글꼴의 문자 페어에 따라 너비 조정이 적용되어 인디자인 측에서는 전체 간격 너비로 정렬된 가나의 너비가 변동되었습니다.
전각 5자체가 칸에 넉넉하게 맞지 않을 경우, 그 차이로 인해 문제가 발생할 수 있습니다.
이번에는 이 설정을 독립적으로 유지하고, 대상 일본어 문자 등에 카르닝을 적용하지 않도록 했습니다. IDML로의 저장 시에도 원 설정이 유지됩니다.
실 문서에서는 쏟아지는 보고서가 53건에서 7건으로 감소했습니다.
PR에 기록된 검증 결과, 전처리 과정을 거치지 않은 12페이지 분량의 일본어 문서에서 다음과 같은 개선 사항이 확인되었습니다.
- 폰트 부족 보고서: 0건
- 텍스트 과다 보고서: 53건 → 7건
다른 9페이지 분량의 문서에서는 긍정적인 보고가 27건에서 19건으로 감소했습니다.
물론, 남아 있는 모든 항목이 진정으로 완전한 상태인지 확인한 것은 아닙니다. 문자 간격 설정 전체, 금지 처리의 마무리 등 아직까지 대응하지 못한 부분도 있습니다.
이번 수정으로 일본어 레이아웃의 호환성이 완전히 완료된 것은 아닙니다.
단순히 실제 문서에서 차이점을 찾아 글꼴 검색, 줄바꿈 처리, 문자 폭 계산까지 원인을 파악했습니다. 재발 확인을 위한 테스트도 추가했습니다.
열리는 그 너머로
이번 수정은 화면에 새로운 버튼이 추가되는 것과는 관련이 없습니다.
그럼에도 불구하고 기존 문서를 가져올 때에는 이러한 부분들이 중요해집니다.
찾아지는 글꼴이 있는 것. 원래 설정이 읽어지는 것. 좁혀야 할 글자가 같은 틀 안에 들어가는 것.
디자인크래프트를 일본 콘텐츠 제작에 활용하기 위해, 실제 문서와 비교하며 이 차이를 하나씩 채워나가고 있습니다.
일본 텍스트 구성 외 부분에도 여전히 상당한 수정이 필요할 것으로 보입니다. 제가 실제로 활용 가능한 범위에 도달하도록 목표를 두고, 앞으로도 시간을 내어 이 리포지토리에 정기적으로 수정 사항을 업데이트할 것입니다.
실제로 사용해 보면서 걸린 부분을 바로잡고 다시 사용하는 과정을 통해 조금씩 실전에 가까워지도록 노력하고 싶습니다.
수정 사항은 PR #1127에 모아두었습니다. 현재 PR 제출 단계입니다.
출처: note 원문
번역: Gemma 3(.44) 초벌 + 교정 32청크
원문 보기 | 출처: note.com