ChatGPT 에게 “AP Calculus BC 연습 문제 20개 만들어줘” 를 시키고, 답변을 그대로 복사해 docx 에 붙였습니다. 화면에서는 깔끔하게 렌더링되던 수식이 문서에서는 이렇게 들어와 있습니다.
1
[\lim_{x \to 2} \frac{x^2-4}{x-2}]
$ 로 감싸인 것도 아니고 \[ ... \] 도 아닌, 대괄호 안에 LaTeX 가 그대로 남은 형태입니다. 수식 변환 도구는 대개 $...$ $$...$$ \(...\) \[...\] 네 가지를 찾기 때문에, 이 자리는 그냥 지나칩니다.
LaTeXFlow Scan 의 bracket-mode 가 이 자리를 잡아 줍니다. 기본값이 ON 이라 따로 켤 것도 없습니다. 이 글에서는 ChatGPT 답변을 붙인 docx 하나로 그 흐름을 시연하고, 나아가 애초에 이 일이 왜 생기는지, 그리고 다음부터 챗봇에게 어떻게 요청하면 이 자리를 아예 안 만들 수 있는지까지 정리합니다.
1. 문제 — 백슬래시 한 쌍이 빠진 대괄호
1-1. 무엇이 어긋나는가
ChatGPT 가 실제로 내보낸 원문은 정상적인 display 수식입니다. 어긋나는 자리는 답변 화면이 markdown 으로 렌더링되는 과정입니다. 바깥쪽 구분자의 백슬래시가 렌더링에 흡수되어 사라지고, 안쪽 명령어의 백슬래시는 그대로 살아남습니다. 그 상태를 복사해서 붙이면 아래처럼 됩니다.
1
2
ChatGPT 원본: \[\lim_{x \to 2} \frac{x^2-4}{x-2}\]
docx 도착 결과: [\lim_{x \to 2} \frac{x^2-4}{x-2}]
\lim 과 \frac 은 멀쩡한데 바깥 \[ \] 만 [ ] 가 된, 어중간한 상태입니다. 사람 눈에는 여전히 수식으로 보이지만 파서 입장에서는 수식 구분자가 없는 평범한 문장입니다.
1-2. 왜 하필 바깥 백슬래시만 사라지나
처음 이 현상을 봤을 때는 “왜 안쪽 \frac 은 멀쩡하고 바깥 \[ 만 없어질까” 가 잘 이해되지 않았습니다. 답은 백슬래시가 사라진 게 아니라, 챗봇 UI 가 답변을 markdown 으로 한 번 렌더링해서 보여주기 때문 이라는 데 있습니다.
챗봇이 만든 원본 텍스트에서 \[ ... \] 는 “이 구간은 display 수식이다” 라는 신호입니다. 챗봇 화면은 이 신호를 읽어 수식을 예쁘게 그려 주는데, 그리는 순간 \[ 와 \] 라는 구분자 자체는 “이미 역할을 다한 마크업” 이라 화면 표시에서 빠집니다. 우리가 화면에서 드래그해 복사하는 것은 원본 텍스트가 아니라 이 렌더링된 결과 입니다. 그래서 구분자 백슬래시는 딸려 오지 않고, 대괄호라는 껍데기와 그 안에서 실제 수식을 구성하던 \lim · \frac 같은 안쪽 명령어만 남습니다. 안쪽 명령어는 수식 그 자체라 렌더링 결과에도 흔적이 남는 반면, 바깥 구분자는 렌더링이 끝나면 지워지는 안내판인 셈입니다.
여기서 중요한 건 구분자 종류마다 이 “안내판이 지워진 뒤 남는 모양” 이 다르다는 점입니다. 정리하면 이렇습니다.
| 원본 구분자 | 복붙 후 남는 모양 | 복구 가능성 |
|---|---|---|
$ ... $ (인라인) | $ ... $ 그대로 | 손실 없음 — 표준 탐지로 바로 잡힘 |
$$ ... $$ (디스플레이) | $$ ... $$ 그대로 | 손실 없음 — 표준 탐지로 바로 잡힘 |
\[ ... \] (디스플레이) | [ ... ] (바깥 백슬래시만 소실) | 복구 가능 — bracket-mode 가 잡음 |
\( ... \) (인라인) | ( ... ) (바깥 백슬래시만 소실) | 복구 불가 — 아래 참고 |
$ 계열은 markdown 렌더링을 거쳐도 구분자가 그대로 텍스트로 남기 때문에 애초에 문제가 안 됩니다. \[...\] 는 [...] 로 뭉개지지만 대괄호라는 껍데기가 남아 되살릴 여지가 있습니다. 문제는 마지막 줄, \(...\) 입니다.
1-3. 소괄호 인라인 구분자는 왜 되살릴 수 없나
\(...\) 가 렌더링을 거치면 남는 껍데기는 소괄호 ( ... ) 입니다. 그런데 소괄호는 일반 문장에 너무 흔합니다. “함수 f(x)”, “구간 (0, 1)”, “주석 (참고)” 처럼 수식과 무관한 소괄호가 대괄호보다 훨씬 많습니다. 만약 도구가 소괄호를 수식 후보로 본다면 문서 전체가 오탐 덩어리가 됩니다.
그래서 LaTeXFlow 의 bracket 스캐너는 후보의 첫 글자가 대괄호 [ 인 경우만 수식으로 봅니다. 소괄호 ( ) 는 의도적으로 건드리지 않습니다. 결과적으로 \(...\) 에서 유래한 ( ... ) 는 되살릴 방법이 없습니다 — 남은 껍데기가 수식이라고 판단할 근거 자체가 없기 때문입니다. 이것이 위 표에서 \(...\) 만 “복구 불가” 인 이유이고, 다음 절에서 챗봇에게 \(...\) 를 쓰지 말라고 요청하는 이유이기도 합니다.
1-4. 왜 표준 패턴으로는 안 잡히나
수식 탐지는 결국 구분자 매칭입니다. $...$ 는 달러 한 쌍, \[...\] 는 백슬래시가 붙은 대괄호 한 쌍을 찾습니다. 백슬래시가 빠진 [ ... ] 는 이 중 어디에도 해당하지 않습니다.
그렇다고 대괄호 전부를 수식으로 볼 수도 없습니다. 본문에는 [참고] [1] [표 1] 처럼 수식과 무관한 대괄호가 훨씬 많습니다. 문항 20개짜리 답변 하나만 붙여도 이런 대괄호가 수십 개씩 섞입니다. 대괄호를 열되, 산문은 건드리지 않는 기준이 필요합니다.
2. 챗봇에게 어떻게 요청해야 하나
가장 확실한 예방책은 도구를 잘 쓰는 게 아니라 챗봇에게 처음부터 안전한 형식으로 뱉게 하는 것 입니다. 위에서 봤듯 $...$ 계열은 복붙해도 손실이 없으니, 챗봇이 수식을 $ 로 감싸 주기만 하면 bracket-mode 를 쓸 일조차 없습니다.
답변을 받기 전에 이렇게 요청해 두면 됩니다.
모든 수식을 인라인은
$...$, 디스플레이는$$...$$로 감싸서 써 주세요.\(...\)나\[...\]는 쓰지 말아 주세요. 수식을 plain text 로 풀어 쓰지 말고 반드시 LaTeX 로 써 주세요.
세 가지가 핵심입니다.
$...$·$$...$$로 통일 — 복붙 손실이 없는 유일한 형식입니다.\(...\)금지 — 렌더링을 거치면( ... )가 되어 영영 되살릴 수 없습니다(1-3 참고).\[...\]도 가급적 피하는 편이 낫지만, 이쪽은 최악의 경우 bracket-mode 로 복구는 됩니다.- plain text 금지 —
x^2를 “x 제곱” 처럼 말로 풀어 쓰면 LaTeX 가 아예 없어져 어떤 도구로도 수식으로 못 만듭니다.
한 가지 하지 말아야 할 요청이 있습니다. “docx 파일로 만들어 줘” 라고 시키지 마세요. 챗봇이 직접 만든 docx 는 수식을 Word 수식 개체(<m:oMath>)로 넣습니다. LaTeXFlow 는 문서 안의 raw LaTeX 텍스트 를 읽는 도구라, 이렇게 개체로 박힌 수식은 읽지 못합니다. 챗봇에게는 답변을 텍스트로 받아서, 그걸 직접 빈 docx 에 붙이는 편이 오히려 확실합니다.
3. 해결 — bracket-mode
이미 [...] 로 뭉개진 답변을 받아 버렸다면, 그때 쓰는 게 bracket-mode 입니다.
3-1. 도구 첫 화면 — bracket-mode 체크박스
LaTeXFlow Scan 을 열면 dropzone 아래에 체크박스가 하나 있습니다.

“Also detect bracket [\...] equations (common in AI chatbot output)” — 기본값 ON 입니다. 챗봇 답변을 정리하다 이 글에 온 경우라면 손댈 것 없이 그대로 docx 를 끌어다 놓으면 됩니다. 변환은 브라우저 안에서 client-side 로 돌기 때문에 문서가 서버로 올라가지 않습니다.
이 체크박스를 켠다고 $...$ 나 \[...\] 수식이 밀려나지는 않습니다. $ / $$ 스캔, \(\) / \[\] 스캔, 대괄호 스캔이 각각 돌면서 같은 탐지 목록에 결과를 더하는 구조라, 한 문서 안에 여러 형태가 섞여 있어도 함께 잡힙니다. 대체 모드가 아니라 추가 모드 입니다. 기본값이 ON 인 이유도 여기에 있습니다 — 대괄호 수식이 없는 문서라면 켜 두어도 달라지는 게 없습니다.
3-2. 탐지 — 대괄호 안 LaTeX 시그니처
docx 를 올리면 표준 구분자 수식과 함께 대괄호 수식도 Detected Equations 리스트에 올라옵니다.

기준은 단순합니다. 대괄호 안에 LaTeX 시그니처 (\ ^ _ =) 가 있는 경우에만 수식으로 봅니다. [\lim_{x \to 2} \frac{x^2-4}{x-2}] 는 백슬래시와 밑줄이 있어 걸리고, [참고] [1] [표 1] 은 시그니처가 하나도 없어 걸리지 않습니다. 앞 절의 산문은 건드리지 않는다 는 조건이 이 한 줄로 해결됩니다.
리스트에 올라온 카드는 표준 수식과 똑같이 다룰 수 있습니다. 미리보기로 확인하고, Edit LaTeX 로 고치고, 수식이 아닌 게 섞였으면 Skip 으로 뺍니다.
3-3. Render PNG · Export
검토가 끝나면 상단의 Render PNG · Export 를 누릅니다.

선택된 수식이 전부 PNG 로 렌더링되어 원래 자리에 그대로 들어간 새 docx 가 다운로드됩니다. 본문 서식은 그대로 두고 수식 자리만 교체되기 때문에, 챗봇이 나눠 준 문항 번호나 단원 구분은 손상되지 않습니다. 각 PNG 에는 원본 LaTeX 가 alt-text(AIMATH_FORMULA::v1::)로 함께 저장되므로, 나중에 원문을 다시 꺼내 쓸 수도 있습니다.
4. bracket-mode 오탐 다루기
대괄호를 수식 후보로 보는 방식은 편리한 만큼, 이따금 수식이 아닌 대괄호를 잡기도 합니다. 시그니처 필터가 산문 대부분을 걸러 주긴 하지만, 완벽하지는 않습니다. 대표적인 경우가 이렇습니다.
- 인용 번호 —
[1]은 시그니처가 없어 안 걸리지만,[1=본문]처럼 등호가 섞이거나 배열/표 안의 대괄호가 LaTeX 문자와 붙어 있으면 후보로 올라올 수 있습니다. - 배열·좌표 표기 —
[a, b]같은 구간·배열 표기 안에 우연히^_가 끼면 걸립니다.
bracket 탐지가 넓게 잡는 방향으로 설계된 이상 이런 오탐은 감수할 여지가 있는 대신, Review 단계에서 걸러 내라 는 것이 도구의 전제입니다. Detected Equations 리스트에서 수식이 아닌 카드를 찾아 Skip 을 누르면 그 자리는 원문 텍스트 그대로 남고 PNG 로 바뀌지 않습니다. 실제 [1] 인용이나 배열 표기가 잘못 잡혔을 때 이렇게 빼면 됩니다.
닫히지 않은 $ 하나가 남아 구간이 애매하게 잡히는 Ambiguity 도 같은 Review 단계에서 해소합니다 (웹 도구 기준입니다 — Google Docs 애드온에는 홀수 $ 를 따로 잡아 주는 카드가 없습니다). 넓게 잡고 사람이 빼는 흐름이라, “혹시 놓칠까” 보다는 “혹시 더 잡힐까” 를 검토하는 쪽이 맞습니다.
5. 어떤 답변에 bracket-mode 가 필요한가
챗봇 답변이 $...$ $$...$$ 로 오는 경우가 더 흔하고, 그 경우는 bracket-mode 와 무관하게 표준 탐지 경로에서 이미 처리됩니다. 별도로 신경 쓸 자리가 없습니다.
bracket-mode 가 필요한 건 위에서 본 케이스, 즉 markdown 렌더링을 거치면서 바깥 백슬래시가 빠진 채로 복사되는 경우입니다. 답변을 붙인 docx 에 [\frac{...}{...}] 같은 모양이 보인다면 이쪽입니다.
두 경우를 미리 구분할 필요는 없습니다. bracket-mode 가 기본값 ON 이고 두 경로가 동시에 도는 만큼, 답변이 어느 형태로 왔든 docx 를 그대로 끌어다 놓으면 됩니다.
자주 묻는 질문
Q. ChatGPT · Claude · Gemini 마다 결과가 다른가요? 챗봇과 그 설정에 따라 다릅니다. 답변을 화면에 markdown 으로 렌더링하는 UI 라면 어느 챗봇이든 바깥 구분자가 뭉개질 수 있습니다. 어떤 챗봇은 디스플레이 수식을 $$ 로 감싸 내보내는 편이라 복붙 손실이 덜하기도 합니다(예: Gemini). 다만 이는 버전·설정에 따라 바뀔 수 있으니 단정하기보다, 붙여 넣은 docx 에서 [\...] 모양이 보이는지 직접 확인하는 편이 확실합니다. 어느 쪽이든 bracket-mode 가 기본 ON 이라 대응 방법은 같습니다.
Q. \(...\) 는 왜 못 살리나요? \(...\) 는 렌더링을 거치면 소괄호 ( ... ) 만 남는데, 소괄호는 일반 문장에 너무 흔해서 수식 후보로 삼으면 오탐이 폭증합니다. 그래서 스캐너는 첫 글자가 대괄호 [ 인 후보만 봅니다. 결과적으로 \(...\) 에서 나온 ( ... ) 는 복구 근거가 없습니다. 그러니 챗봇에는 인라인도 $...$ 로 요청하세요.
Q. 원본 LaTeX 는 어디에 남나요? Export 된 docx 의 각 수식 PNG 에 alt-text(AIMATH_FORMULA::v1::)로 원본 LaTeX 가 함께 저장됩니다. 이미지로 바뀌어도 원문 수식 텍스트가 사라지지 않습니다.
Q. 오탐이 무서워서 bracket-mode 를 꺼도 되나요? 꺼도 됩니다. 다만 끄면 [\...] 형태가 아예 안 잡혀 수동으로 고쳐야 합니다. 켜 둔 채로 Review 에서 잘못 잡힌 카드만 Skip 하는 편이 대개 손이 덜 갑니다. 대괄호 수식이 없는 문서라면 켜 두어도 결과가 달라지지 않습니다.
Q. 챗봇에게 아예 docx 로 만들어 달라고 하면 안 되나요? 권하지 않습니다. 챗봇이 만든 docx 는 수식을 Word 수식 개체(<m:oMath>)로 넣는데, LaTeXFlow 는 문서 속 raw LaTeX 텍스트를 읽는 도구라 그 개체를 읽지 못합니다. 답변은 텍스트로 받아 빈 docx 에 붙이세요.
수식 문법 자체가 헷갈릴 때는 — LaTeX 시리즈 #1~#12 에 align 환경 / 그리스 문자 / 행렬 / cases 정리가 있습니다.
LaTeX 가 Word 에서 수식 처리 되지 않아, 하나씩 다시 쓰고 계신가요? Docs·Word 파일을 올리면
$...$·$$...$$·\(...\)·\[...\]·[...]로 감싼 수식을 골라 이미지로 바꿔 돌려줍니다. LaTeX 한 번에 검증하고 한 번에 변환하기! 설치 No! 로그인 No! 내 문서로 확인해 보기