# Mathjax를 4버전으로 업그레이드하기

**URL:** https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669
**Category:** Development
**Tags:** math
**Created:** [11월 23, 2025, 5:57오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669 "2025-11-23T17:57:05Z")
**Posts on this page:** 13
**Page:** 2

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 4, 2026, 1:09오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/22 "2026-01-04T01:09:58Z")

</div>

참고로, 여기 이 개발 버전에서 AI를 활용한 수식 교정이 실제로 작동하는 예시를 보여드립니다:

![ProofreadMathAI](https://global.discourse-cdn.com/meta/original/4X/3/5/7/357014168f93884e54f1621a1224e97fded46d7c.gif)

사용자는 마크다운 에디터에서 특정 수식을 선택(하이라이트)하고 교정을 요청할 수 있습니다. 새 수식 에디터에서도 이 기능을 옵션으로 제공할 수 있으면 좋겠습니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 4, 2026, 4:18오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/23 "2026-01-04T04:18:19Z")

</div>

@sam 새로운 플러그인에서 KaTeX가 제대로 작동하지 않는 것으로 밝혀졌습니다. 확인해 보면, 분명히 폰트 누락 문제이며, 실제로 콘솔에는 여러 폰트(Woff-v2) 파일을 찾을 수 없다는 메시지가 표시됩니다.

폰트는 실제로 스타일 시트와 동일한 레벨에 있는 'fonts’라는 이름의 폴더 안에 존재해야 하는 올바른 위치에 있습니다. 예를 들어, 제 개발 버전에는 이 두 파일이 모두 존재합니다:  
[http://localhost:4200/plugins/discourse-math/katex/katex.min.css](http://localhost:4200/plugins/discourse-math/katex/katex.min.css)  
그리고  
[http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX\_Size2-Regular.woff2](http://localhost:4200/plugins/discourse-math/katex/fonts/KaTeX_Size2-Regular.woff2)

콘솔의 Network 탭을 살펴보면, 브라우저가 다음과 같은 경로를 다운로드하려고 시도하는 것으로 보입니다:  
[http://localhost:4200/t/my-topic/fonts/KaTeX\_Size2-Regular.woff2](http://localhost:4200/t/my-topic/fonts/KaTeX_Size2-Regular.woff2)

즉, 브라우저는 주제 URL과 동일한 레벨에 있는 ‘fonts’ 폴더를 찾고 있는데, 이는 명백히 잘못된 것입니다.

이 모든 것은 `katex-bundle`에 정의된 `loadKaTeX` 함수와 관련이 있을 것 같습니다. 이 함수가 KaTeX를 비표준 방식으로 로드하여 KaTeX가 CSS 파일의 위치를 제대로 파악하지 못하게 만드는 것 같습니다. 하지만 어떻게 수정해야 할지는 잘 모르겠습니다.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [1월 4, 2026, 9:38오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/24 "2026-01-04T21:38:55Z")

</div>

마크, 정말 감사합니다. 커밋을 병합해 두었고, KaTeX 관련 사항은 오늘 확인해 보겠습니다.

> [@mcmcclur](#):
>
> 참고로, 여기 이 개발 버전에서 AI를 활용한 수학 교정 기능이 작동하는 예시가 있습니다:

이것은 교정자 페르소나를 위한 커스텀 프롬프트를 통해 이루어지는 것인가요?

> [@Ethsim2](#):
>
> 그 전에, 현재 단계에서 권장되는 환경이 무엇인지 여쭤보고 싶었습니다. 프로덕션과 유사한 환경에서 초기 테스트를 진행하는 것이 적절한지, 아니면 첫 프로덕션 릴리스까지 개발 환경을 사용하는 것이 더 좋은지 궁금합니다.

걱정하지 마세요. 마크와 제가 이 문제를 잘 처리하고 있습니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 4, 2026, 9:54오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/25 "2026-01-04T21:54:46Z")

</div>

> [@sam](#):
>
> 마크, 정말 감사합니다. 커밋을 병합해 두었고, KaTeX 관련 사항은 오늘 확인해 보겠습니다.

두 가지 모두 훌륭합니다!

> [@sam](#):
>
> 이건 교정자 페르소나를 위한 맞춤형 프롬프트를 통해 이루어지는 건가요?

정말 맞습니다. 제가 원하고자 하는 동작과 "Proofread(교정)"라는 표현이 꽤 비슷해서 운이 좋았다고 할 수 있죠.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [1월 4, 2026, 10:00오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/26 "2026-01-04T22:00:22Z")

</div>

Katex 관련 수정 사항을 방금 push했습니다. 동작 여부를 확인해 주세요. @david에게 확인을 요청해서 안전성을 검증해야 하는데, 스타일시트를 임베딩하고 있기 때문에 CSS 파일을 로드하는 우리의 방식이 CSS 파일 내부의 상대 링크와 호환되지 않습니다.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [1월 5, 2026, 1:53오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/27 "2026-01-05T01:53:42Z")

</div>

참고로, 메인 수학 토픽에서 내용이 좀 묻히고 소란스러워져서 이 내용을 새 전용 토픽으로 옮겼습니다. 이번 업그레이드가 정말 기대되고, 거의 다 된 것 같습니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 5, 2026, 2:32오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/28 "2026-01-05T02:32:06Z")

</div>

> [@sam](#):
>
> KaTeX에 대한 수정 사항을 방금 푸시했습니다. 동작하는지 알려주세요.

저에게 KaTeX는 최신 커밋에서 정상적으로 작동하는 것 같습니다!

일부 테스트가 통과하지 못한 것으로 보이지만, 기능이 모두 갖춰져 있다는 데에는 동의합니다.

저도 정말 설레요! 🚀

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 8, 2026, 2:00오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/29 "2026-01-08T02:00:36Z")

</div>

이 새 버전을 직접 써 보고 싶은 마음이 간지럽거나, (나처럼) 며칠 안에 이걸 사용할 수업이 있어서 _기다릴 수 없는_ 분이라면, 여기에서 독립 설치 버전을 설치할 수 있습니다:

[https://github.com/mcmcclur/discourse-math](https://github.com/mcmcclur/discourse-math)

이것은 [이 커밋](https://github.com/discourse/discourse/pull/36814/commits/573bd992acc80e20bf9019d746a68d2b4cd57c82)를 기반으로 작성한 것으로, 내 생각에는 MathJax를 내부에서 불러오지 않고 CDN에서 로드하도록 수정했습니다.

[제 디스코urs 사이트의 이 게시물](https://discourse.marksmath.org/t/how-do-i-enter-groovy-typeset-mathematics-into-discourse/18)에서 실제 작동하는 모습을 확인할 수 있습니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 8, 2026, 2:08오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/30 "2026-01-08T02:08:43Z")

</div>

이 업그레이드가 단순히 MathJax 업그레이드보다 훨씬 더 큰 의미를 가진다고 강조할 가치가 있다고 생각합니다. 또한 다음과 같은 개선 사항이 포함됩니다.

- [여기서 요청한 대로](https://meta.discourse.org/t/discourse-math/65770/217) LLM과 더 잘 작동하도록 파싱을 완화하고,
- [여기서 보고된](https://meta.discourse.org/t/math-mode-hard-to-use-with-rich-text-editor/378089) 새 리치 에디터 관련 문제를 수정합니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 10, 2026, 12:16오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/31 "2026-01-10T12:16:41Z")

</div>

@sam 와 @david

이 풀 리퀘스트가 병합된 것을 확인했습니다. 또한 두 분 모두 이 작업을 마무리하기까지 상당한 노력을 기울이셨다는 것도 눈치챘습니다. 정말 감사합니다!

현재 제 Discourse 사이트에서 이미 충분히 잘 작동하고 있기 때문에, 당장은 이 버전을 설치할 계획이 없습니다. 다만 몇 가지 질문이 있습니다.

1. **릴리스 일정** 에 대해: 이미 해당 코드가 GitHub의 main 브랜치에 존재하는 것으로 보입니다. 만약 오늘 새 Discourse 인스턴스를 설치한다면, 자동으로 이 새로운 버전의 수식 플러그인이 설치되는 것이 맞나요?
2. \*\*로더(loader)\*\*에 대해: 코드를 살펴본 바로는, 코어에 `loadMathjax`와 `loadKatex` 함수를 정의하려는 계획은 폐기된 것으로 보입니다. 최신 버전은 `loadScript`로 되돌아간 것으로 보이지만, 스크립트가 어디서 로드되는지는 명확하지 않습니다. 맞나요? 그렇다면 그 이유는 무엇인가요?

다시 한번 감사합니다!

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [1월 10, 2026, 1:09오후 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/32 "2026-01-10T13:09:25Z")

</div>

현재 latest-release +17 버전을 수식 처리가 많은 프로덕션 인스턴스에서 사용 중입니다.

Meta에서 [grid]가 이제 제대로 작동하는 것을 보니 정말 좋습니다. 수식이 많은 게시물에 있어 큰 편의성 향상입니다. 필요에 따라 [center]는 타협할 수 있습니다.

참고로, 이전에 [grid] / [details] 내부의 수식 관련 엣지 케이스를 겪은 적이 있으며, 이를 이곳에 문서화해 두었습니다(아직 유용할 수 있다면):

> [@warning \[grid\] 내부 인라인 KaTeX/MathJax $...$는 \[details\]와 함께 사용할 때 BBCode가 새어 나갈 수 있습니다](https://meta.discourse.org/t/inline-katex-mathjax-inside-grid-can-leak-bbcode-when-used-with-details/372802/3?u=ethsim2):
>
> i thought i should at least conculde mathematically accurate information, not ChatGPT waffle grinning_face \frac{1}{r^2 \sin\theta} \left| \begin{matrix} \textcolor{orange}{\hat{r}} & r\hat{\theta} & r\sin\theta\,\hat{\phi} \\ \partial\_r & \boxed{\partial\_\theta} & \boxed{\partial\_\phi} \\ A\_r & \boxed{r A\_\theta} & \boxed{r\sin\theta\, A\_\phi} \end{matrix} \right| \frac{1}{r^2 \sin\theta} \left| \begin{matrix} \textcolor{orange}{\hat{r}} & r\hat{\theta} & r\sin\theta\,\hat{\phi} \\ \p…

MathJax 4 업그레이드에 힘쓰고 계신 모든 분께 다시 한번 감사드립니다. 이러한 세밀한 마무리가 적용되는 것을 보니 정말 좋습니다.

---

<div class="post-metadata">

### Author: ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)
#### Post date: [1월 13, 2026, 10:32오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/33 "2026-01-13T10:32:42Z")

</div>

MathJax의 “Erroneous nesting of equation structures” 오류가 `$$...$$` 내부에서 `\begin{align}...\end{align}`을 사용할 때 발생하고 있습니다. 이는 v4 업그레이드 작업 중에 MathJax가 "수식 환경을 중첩하지 말 것"이라는 규칙을 더 엄격하게 적용하고 있기 때문으로 보입니다.

실제로 Discourse에서 신뢰할 수 있는 패턴은 `$$` 래퍼 안에 `aligned`를 사용하는 것입니다:

```latex
$$
{\large
\begin{aligned}
a &= b \\
  &= c
\end{aligned}
}
$$

```

이 방식은 디스플레이 수식 구조(`align`)를 다른 디스플레이 래퍼(`$$...$$`) 안에 중첩하는 것을 방지하므로, 오류의 원인이 되는 문제를 피할 수 있습니다.

---

<div class="post-metadata">

### Author: ![mcmcclur](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcmcclur/32/115456_2.png) [@mcmcclur](https://meta.discourse.org/u/mcmcclur)
#### Post date: [1월 13, 2026, 10:55오전 UTC](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669/34 "2026-01-13T10:55:25Z")

</div>

@Ethsim2 님의 분석에 동의합니다.

이 동작은 MathJaxV4와 순수 LaTeX 모두와 일치하므로, 여기에는 "버그"가 없다고 생각됩니다. 다만, `align` 대신 `aligned`를 사용하는 것이 더 나은 방법이라는 점은 분명히 짚어둘 가치가 있습니다!

[이전 페이지](https://meta.discourse.org/t/upgrading-mathjax-to-version-4/392669.md?page=1)
