하루의 기록

소프트웨어 개발과 독서와 이런 저런 관심사 늘어놓기

MathJax 설정

블로그에 수식을 입력이 좀 필요해서 MathJax를 설정하기로 했다. Tex 문법은 잘 몰라서 수식 형식은 AsciiMath를 이용하기로 했다.

AsciiMath를 이용하려면 아래 작업들을 해주어야 한다.

  • MathJax.js?config=AM_HTMLorMML
  • ASCIIMathML.js 파일을 추가

asciimath2jax 전처리기는 디폴트 구분자로 back-tick(`)을 사용하기 때문에 별도로 구분자 설정을 추가했다.

mathjax-config.js
MathJax.Hub.Config({
  asciimath2jax: {
    delimiters: [["$", "$"], ["\\(", "\\)"]],
  },
})

그런 다음 math 태그를 가지고 있는 문서에만 관련 자바스크립트를 로드하도록 하기 위해서 docpad.coffee에 아래와 같은 함수를 추가했다.

docpadConfig = {
    templateData:
      # ...
      getScripts: ->
        result = ["/vendor/jquery.min.js", "/scripts/script.js"]
        if @document.tags? and "math" in @document.tags
          result.push "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=AM_HTMLorMML"
          result.push "/vendor/ASCIIMathML.js"
          result.push "/scripts/mathjax-config.js"
        result
      # ...
}

테스트를 위해 AsciiMath 사이트의 예제 수식을 이용해 보았다.

sum_(i=1)^n i^3=((n(n+1))/2)^2

위 수식의 앞뒤에 $를 삽입하면 아래와 같이 표시된다.

sum(i=1)ni3=((n(n+1))/2)2sum_(i=1)^n i^3=((n(n+1))/2)^2


2019/09/01 업데이트: Gatsby로 전환 후 AsciiMath가 잘 동작하지 않아서 수식 형식을 Tex로 변경

\sum_{i=1}^{n} i^3 = \left({{n(n+1)} \over {2}} \right)^2
i=1ni3=(n(n+1)2)2\sum_{i=1}^{n} i^3 = \left({{n(n+1)} \over {2}} \right)^2
이전 글: 글꼴과 스타일 설정
다음 글: 미루는 습관을 이기는 작은 책
© 2014-2023 Jahyun Oh / Gatsby로 만듬