수식이 스무 개쯤 들어 있는 워드 문서를 LaTeXFlow Scan 에 올렸는데 결과가 이렇게 나왔습니다.
1
2
3
Scanned 46 paragraphs · 0 equations found
This document contains 20 Word equation objects.
Those are not text, so no delimiter can reach them.
문단은 46 개를 다 읽었고, 수식 개체가 20 개 들어 있다는 것까지 세어서 알려 줍니다. 그런데 변환된 수식은 0 개입니다.
이건 파일이 깨진 것도, 도구가 실패한 것도 아닙니다. 읽을 수 없는 종류의 수식 이라는 뜻입니다. 이 글은 왜 그런지, 그리고 어떻게 읽을 수 있는 형태로 바꿔 오는지를 다룹니다.
1. 같은 화면에 보여도 저장 방식이 다릅니다
워드 문서에서 수식을 넣는 방법은 크게 두 가지입니다.
① 글자로 쓴다. $\frac{1}{2}bh$ 라고 그냥 타이핑합니다. 화면에는 백슬래시와 중괄호가 그대로 보입니다. 보기에는 안 예쁘지만, 이건 문서 입장에서 평범한 글자 입니다.
② 수식 편집기로 넣는다. 워드에서 Alt + = 를 누르거나 삽입 → 수식 을 고르면 수식 입력 상자가 열립니다. 여기 넣은 식은 화면에 조판된 모습으로 예쁘게 나옵니다. 대신 이건 글자가 아니라 문서 안의 별도 개체 입니다.
화면만 보면 ②가 훨씬 낫습니다. 문제는 그 다음 단계입니다. 도구가 읽는 건 ①이고, ②는 애초에 텍스트 흐름 안에 없습니다.
2. docx 안을 열어 보면
.docx 는 사실 압축 파일입니다. 확장자를 .zip 으로 바꿔 풀면 안에 word/document.xml 이 들어 있고, 본문이 전부 거기 XML 로 적혀 있습니다.
글자로 쓴 수식은 이렇게 저장됩니다.
1
2
3
<w:p>
<w:r><w:t>넓이는 $\frac{1}{2}bh$ 입니다.</w:t></w:r>
</w:p>
w:t 가 “텍스트” 입니다. 문단(w:p) 안에 글자 조각(w:r)이 들어 있고, 그 안의 w:t 에 우리가 친 글자가 그대로 있습니다.
수식 편집기로 넣은 식은 이렇게 저장됩니다.
1
2
3
4
5
6
7
8
9
<w:p>
<m:oMath>
<m:f>
<m:num><m:r><m:t>1</m:t></m:r></m:num>
<m:den><m:r><m:t>2</m:t></m:r></m:den>
</m:f>
<m:r><m:t>bh</m:t></m:r>
</m:oMath>
</w:p>
이름표가 전부 m: 으로 시작합니다. 이건 OOXML Math(줄여서 OMML)라는 다른 규격 이고, 분수는 m:f, 분자는 m:num, 분모는 m:den 처럼 구조 자체가 수식 트리로 저장됩니다. 글자에 해당하는 부분도 w:t 가 아니라 m:t 입니다.
3. 도구가 하는 일 — 글자만 이어 붙인다
도구는 문단마다 w:t 조각을 순서대로 이어 붙여 한 줄의 텍스트를 만든 다음, 그 텍스트에서 구분자를 찾습니다.
w:t→ 이어 붙임 ✅m:t→ 대상 아님 ❌
그래서 수식 개체가 들어 있는 문단은 이어 붙인 결과가 빈 문자열이거나 주변 산문뿐 입니다. 구분자를 찾을 텍스트 자체가 없습니다.
여기서 중요한 결론이 나옵니다.
수식 개체는 구분자로 고칠 수 없습니다.
$…$를 어디에 어떻게 붙여도 소용이 없습니다. 구분자는 글자에만 걸 수 있는데, 수식 개체의 내용은 글자 흐름 밖에 있기 때문입니다.
앞선 글에서 다룬 구분자가 없는 문서 와는 원인이 다릅니다. 그쪽은 글자는 있는데 감싸지 않은 경우라 감싸면 해결되고, 이쪽은 감쌀 글자 자체가 없는 경우입니다.
4. 개수는 어떻게 세는가
0 검출 화면이 “수식 개체가 20 개 있습니다” 라고 단정할 수 있는 이유는 간단합니다. 문서 XML 이 이미 문자열로 메모리에 올라와 있어서, 거기서 oMath 로 시작하는 태그를 세면 끝입니다.
세는 규칙에 자잘한 예외가 하나 있습니다. m:oMathPara 라는 태그도 있는데 이건 수식을 담는 바깥 상자 라서 세면 중복입니다. 그래서 태그 이름 뒤에 오는 글자로 둘을 구분해 상자 쪽은 빼고 셉니다.
이 숫자가 있으면 화면이 추측하지 않고 사실을 말할 수 있습니다.
- 수식 개체가 0 개 → “수식 편집기로 넣었다면 구분자가 소용없습니다” 라는 일반 안내
- 수식 개체가 1 개 이상 → “이 문서에 N 개 들어 있습니다” 라는 확정 진단
5. 어디서 이런 문서가 생기나
수식 개체 문서는 대개 다음 네 경로 중 하나로 들어옵니다.
① 워드에서 직접 작성. Alt + = 가 워드의 기본 수식 입력 방식이라, 워드로 쓴 수학 문서는 대부분 여기 해당합니다.
② Google Docs 의 수식 도구. 삽입 → 수식 으로 넣은 식은 Docs 안에서도 개체이고, .docx 로 내보내면 그대로 OOXML 수식 개체가 됩니다.
③ 한글(HWP)에서 내보낸 docx. 한글의 수식 편집기로 만든 식도 .docx 로 내보낼 때 같은 규격으로 변환됩니다. 도구가 세는 기준이 태그라서, 어느 프로그램에서 왔든 똑같이 잡힙니다.
④ 챗봇에게 “docx 파일로 만들어 줘” 라고 시킨 경우. 이게 은근히 많습니다. 파일로 받으면 붙여넣기 한 번을 아낄 것 같지만, 챗봇은 “보기 좋게” 만들려고 수식을 개체로 박아 넣습니다. 결과적으로 변환이 막힙니다. 이 함정은 챗봇 답변으로 문제집 만들기 에서 먼저 다룬 적이 있습니다.
6. 내 문서는 어느 쪽인지 확인하기
파일을 열어 XML 을 뒤지지 않아도 구분할 수 있습니다. 빠른 순서대로 세 가지입니다.
① 커서를 넣어 봅니다. 수식 가운데를 클릭했을 때 커서가 글자와 글자 사이에 깜빡이면 텍스트입니다. 식 전체가 하나의 상자로 잡히고 그 안에서 별도의 입력 모드가 되면 개체입니다.
② 메모장에 붙여 봅니다. 문단을 복사해서 서식이 없는 편집기(메모장, VS Code 등)에 붙여 넣습니다.
- 텍스트 수식 →
$\frac{1}{2}bh$가 그대로 나옵니다. - 수식 개체 → 백슬래시와 중괄호가 사라지고
1 2 bh처럼 숫자·글자만 흩어지거나, 아무것도 안 붙습니다.
이 방법이 확실한 이유는 서식 없는 붙여넣기가 결국 “글자 흐름에 있는 것만” 옮기기 때문입니다. 도구가 읽는 범위와 정확히 같은 기준입니다.
③ 도구에 올려 봅니다. 가장 정확합니다. 올려서 스캔 줄과 안내를 읽으면 문단 수, 감지된 수식 수, 수식 개체 수가 한 번에 나옵니다.
1
2
Scanned 46 paragraphs · 0 equations found
This document contains 20 Word equation objects.
세 숫자의 조합으로 원인이 갈립니다.
| 문단 수 | 감지 수식 | 수식 개체 | 진단 |
|---|---|---|---|
| 정상 | 0 | 0 | 구분자 누락 — 감싸면 해결 |
| 정상 | 0 | N | 수식 개체 — 텍스트로 바꿔야 함 |
| 정상 | 일부 | N | 섞인 문서 — 개체만 남음 |
| 0 에 가까움 | 0 | 0 | 본문이 비었거나 다른 구조에 들어 있음 |
7. 세 가지 형태를 비교하면
같은 수식이 문서 안에서 취할 수 있는 형태는 셋입니다. 각각 잘하는 게 다릅니다.
| 텍스트 LaTeX | 수식 개체 | 변환된 PNG | |
|---|---|---|---|
| 편집 화면 모양 | 원문 그대로 ($\frac{1}{2}$) | 조판된 모습 | 조판된 이미지 |
| 찾기·바꾸기 | 됨 | 어려움 | 안 됨 |
| 이 도구로 변환 | 됨 | 안 됨 | 이미 변환된 상태 |
| 원본 LaTeX 보존 | 원문이 곧 본문 | 원문이라는 개념이 없음 | 대체 텍스트에 보관 |
| 다른 문서로 옮기기 | 복사·붙여넣기로 충분 | 프로그램 간 호환에 좌우 | 이미지라 그대로 옮겨감 |
| 협업자가 열었을 때 | 백슬래시가 보임 | 조판된 모습 | 조판된 모습 |
작성 중에는 텍스트가, 완성본에서는 PNG 가 유리합니다. 수식 개체는 그 중간에서 “작성도 편하고 보기도 좋은” 자리를 노리지만, 문서를 다른 곳으로 옮기는 순간 가장 손이 많이 갑니다.
8. 텍스트로 되돌려 오는 방법
8-1. 수식이 몇 개 안 될 때 — 워드의 LaTeX 표기
최근 버전 워드(Microsoft 365 계열)에는 수식 표기법을 LaTeX 으로 바꾸는 옵션 이 있습니다. 수식을 클릭하면 리본에 수식 탭이 뜨고, 거기서 표기법을 LaTeX 으로 전환하면 개체 안 내용이 \frac{1}{2}bh 같은 LaTeX 문법으로 보입니다.
여기서 한 단계가 더 필요합니다. 표기법만 바뀐 상태는 여전히 개체입니다. 보이는 LaTeX 을 복사해서, 개체를 지우고 그 자리에 텍스트로 붙여 넣어야 합니다. 붙여 넣을 때는 서식 없이 텍스트만 붙이는 옵션(Ctrl + Shift + V, 또는 붙여넣기 옵션의 텍스트만 유지)을 쓰는 편이 안전합니다.
그리고 앞뒤를 구분자로 감쌉니다.
1
넓이는 $\frac{1}{2}bh$ 입니다.
메뉴 이름은 버전마다 조금씩 다릅니다. 확인 방법은 메뉴가 아니라 결과로 하는 편이 확실합니다 — 문단을 클릭했을 때 커서가 글자 사이를 지나다니면 텍스트, 식 전체가 상자로 잡히면 아직 개체입니다.
8-2. 수식이 많을 때 — 한 번에 변환
수십 개를 하나씩 옮기는 건 현실적이지 않습니다. 이럴 때는 문서 변환 도구를 한 번 거치는 편이 빠릅니다. 예를 들어 Pandoc 은 .docx 안의 수식 개체를 LaTeX 문법으로 바꿔 주는 변환 경로를 갖고 있습니다.
1
pandoc paper.docx -o paper.tex
명령줄 도구라 설치가 필요하지만, 개체가 수십 개인 문서라면 손으로 옮기는 시간과 비교가 안 됩니다. 변환된 결과에서 수식 부분을 가져와 원래 문서에 텍스트로 넣거나, 아예 LaTeX 문서로 작업을 이어가는 선택지도 생깁니다.
8-3. 애초에 그렇게 쓰지 않기
가장 확실한 방법은 처음부터 텍스트로 쓰는 것입니다. 워드에서 Alt + = 를 누르는 대신 $\int_0^1 x^2\,dx$ 라고 그냥 타이핑하면 됩니다.
작성 중에는 백슬래시가 그대로 보여서 답답할 수 있지만, 마지막에 도구를 한 번 돌리면 전부 조판된 이미지로 바뀝니다. 편집 중에는 검색·치환이 되고(개체는 안 됩니다), 협업자에게 보낼 때도 원문이 남습니다.
9. 반대 방향 — 변환한 뒤에도 원본은 남습니다
도구로 내보낸 .docx 는 수식이 PNG 이미지로 들어갑니다. 그러면 그 이미지는 다시 “글자가 아닌 것” 아닌가 — 맞습니다. 그래서 각 이미지의 대체 텍스트(alt text)에 원본 LaTeX 을 그대로 넣어 둡니다.
1
AIMATH_FORMULA::v1::\frac{1}{2}bh
이 태그가 붙어 있으면 나중에 LaTeX 을 되찾을 수 있습니다. Google Docs 애드온(Extensions → LatexFlow → Open Equation Panel)에서 같은 규칙을 읽어 이미지를 다시 LaTeX 으로 되돌릴 수 있습니다.
수식 개체와 결정적으로 다른 점이 여기입니다. 개체는 원본 LaTeX 이라는 게 애초에 없어서(수식 트리로 저장되니까) 되돌릴 원문 자체가 없지만, 이쪽은 원문을 들고 다닙니다.
10. 자주 묻는 질문
수식 개체를 그냥 이미지로 바꿔서 쓰면 안 되나요. 됩니다. 다만 그건 이 도구가 해 줄 수 있는 일이 아닙니다. 도구는 LaTeX 텍스트를 받아 렌더하는 흐름이라, 개체를 이미지로 굽는 작업은 워드 쪽 기능(스크린샷·그림으로 붙여넣기)을 쓰셔야 합니다.
개체를 텍스트로 바꾸면 조판이 못생겨지지 않나요. 바꾼 직후 편집 화면에서는 그렇습니다. 도구를 돌리고 나면 다시 조판된 이미지가 됩니다. 못생긴 구간은 “작성 중” 일 때뿐입니다.
수식 개체가 있는 문단에도 후보 카드가 뜨나요. 그 문단의 텍스트에 =, ^, _, \ 중 하나라도 있으면 뜹니다. 예를 들어 “위 식에서 x_1 은 …” 처럼 산문 쪽에 아래첨자 표기가 섞여 있는 경우입니다. 하지만 개체 자체는 카드에서도 손댈 수 없습니다 — 카드에 보이는 건 글자뿐입니다.
섞인 문서는 어떻게 되나요 — 개체도 있고 텍스트 수식도 있으면. 텍스트로 쓴 것만 잡힙니다. 이때는 수식이 0 개가 아니라서 0 검출 화면이 안 뜨고, 따라서 “수식 개체가 N 개 있습니다” 안내도 안 보입니다. 잡힌 수식 수가 문서에서 눈으로 세는 수보다 적다면 이 경우를 의심해 보세요.
PDF 로 받은 문서는요. .docx 만 읽습니다. PDF 는 애초에 문단 구조가 다른 형식이라 지원 대상이 아닙니다.
11. 정리
- 워드·Docs·한글의 수식 편집기로 넣은 식은 글자가 아니라 문서 안의 별도 개체 입니다.
- 도구는 문단의 글자(
w:t)만 이어 붙여 스캔하므로, 개체 안의 내용(m:t)은 닿지 않습니다. - 그래서 구분자로는 절대 고쳐지지 않습니다. 개체를 텍스트로 바꿔 와야 합니다.
- 몇 개면 워드의 LaTeX 표기로 옮기고, 많으면 문서 변환 도구를 한 번 거치는 편이 빠릅니다.
- 0 검출 화면이 개체 개수를 세어 알려 주므로, 원인이 이쪽인지 구분자 누락 인지 바로 구분됩니다.
수식을 예쁘게 넣는 기능과, 그 수식을 나중에 다른 데로 옮기는 일은 서로 다른 요구입니다. 개체는 앞쪽에 최적화돼 있고 텍스트는 뒤쪽에 강합니다. 문서를 어디로 보낼지 정해져 있다면, 그 기준으로 고르시면 됩니다.