MathJax가 U+2019(따옴표)가 바로 뒤에 오는 경우 인라인 수식을 렌더링하지 못하지만 U+0027(직선 따옴표)에서는 정상 동작

Discourse에서 인라인 MathJax 렌더링 시 수학 표현 뒤에 따옴표 아포스트로피(U+2019)가 오는 경우 렌더링 문제가 발생합니다. 일부 브라우저나 편집기에서는 스마트 쿼트(smart quotes)로 자동 치환되는 문자입니다.


:white_check_mark: 이 경우 정상적으로 렌더링됩니다:

$\mathbb{R}^2$'s basis

여기에는 직선 ASCII 아포스트로피(U+0027)가 사용되었습니다.

\mathbb{R}^2’s basis


:cross_mark: 이 경우 렌더링이 실패합니다:

$\mathbb{R}^2$’s basis

$\mathbb{R}^2$’s basis

여기에는 따옴표 우측 싱글 쿼트(U+2019)가 사용되었습니다. 이 문자는 모바일 키보드, 리치 텍스트 에디터, 또는 서식이 적용된 소스에서 복사/붙여넣기할 때 자동으로 삽입되기도 합니다.


기대 동작:

두 버전 모두 수식이 정상적으로 렌더링되어야 합니다. 인라인 수학 블록 바로 뒤에 오는 문자가 MathJax 파싱에 영향을 주어서는 안 됩니다.

왜 이것이 중요한가:

  • 유니코드를 비교하지 않는 한 이 문제를 발견하기 어렵습니다.
  • 대부분의 폰트에서 따옴표 아포스트로피는 직선 아포스트로피와 구별이 불가능합니다.
  • 이러한 사소한 서식 차이가 렌더링을 조용히 깨뜨려서는 안 됩니다.
  • 일관되지 않은 동작은 수학이 많이 포함된 게시물 작성 시 사용자 경험을 해칩니다.

TeX가 일반적인 따옴표와 곡선 따옴표를 동일하게 처리할 것이라고 기대하지는 않습니다. 다만, 번거롭긴 하지만 이는 예상되는 동작입니다.

이것이 문제의 원인인 것 같지만, 아마도 제가 나이가 많아서 그런 것일 뿐입니다. :wink:

아, 그러니까 MathJax 엔진은 $…$ 또는 \begin{matrix}\$\$ \\\vdots\\\$\$ \end{matrix} 밖의 내용을 볼 수 있는 건가요?

흠. 사실 10년 전에 LaTeX 사용을 그만뒀기 때문에 답글을 남기지 말았어야 했는데, 여기 있습니다.

닫는 $ 기호 뒤에 공백이 따라야 하고, 일반적인 아포스트로프는 특수한 경우인 것 같습니다.


$\mathbb{R}^2$s basis
$\mathbb{R}^2$’s basis
$\mathbb{R}^2$ ’s basis

$\mathbb{R}^2$s basis
$\mathbb{R}^2$’s basis
\mathbb{R}^2 ’s basis

그래서 제가 생각하는 간단한 해결책은 닫는 $ 기호 뒤에 항상 공백을 넣는 것입니다.

이것이 예상되는 동작이라고 꽤 확신하고, 수십 년 된 제 지식이 여전히 통하는 것에 놀라지만, 그래서 TeX 버전 번호가 $\pi$에 접근하는 것 같습니다.

음, 공백을 넣으면 여전히 그 짜증나는 추가 공백 문제가 있네요. 그리고 닫는 달러 기호 뒤에 점을 찍으면 예상대로 작동합니다.

다시 생각해보니, 아마도 제가 예상되는 동작이 무엇인지 정확히 모르는 것 같고, 제 휴대폰에서 TeX을 렌더링해 보려 할 의향도 없습니다.

수정: 아하. 답은 우리 둘 다 예상했던 것보다 더 복잡한 것 같습니다. TeX and LaTeX math delimiters — MathJax 4.0 documentation 을 참조하세요.

요약하면— 누군가가 달러 기호를 사용할 때마다 수식 렌더링을 시작하고 싶지는 않을 것입니다!