jekyll에서 마크다운 적용할 때 latex 도 렌더링되게 하기

1 분 소요

latex가 뭔가요?

  • 한글 워드 프로세서(정확한 명칭이 뭔지는 모르겠는데)에서 수식을 써보시면 약간 코딩하듯이 수식을 만들 수 있다는 것을 알 수 있습니다.
  • latex는 문서 조판 언어인데(학술계에서 많이 쓰는), 이 중에서 대부분 수식을 표현하기 위해서 많이 씁니다 라고 말할 수 있겠네요(발음은 라텍스 가 아니라 레이텍 이 맞습니다. 라텍스는 어감이 좀….).
  • 마크다운에서도 latex 을 쓸 수 있는 것으로 알고 있는데, 예전에 쓴 marp의 경우는 latex으로 표현된 부분을 잘 렌더링해줬거든요.
  • 아래처럼 latex의 수식으로 표현하면 알아서 잘 해줬는데, Jekyll에서는 잘 안되는 것 같습니다. 아마도 제가 따로 뭐 설정을 해줘야 하는것 같네요.
$$
\sqrt{3x-1}+(1+x)^2
$$

mathjax??

  • 문법 자체는 latex을 사용하지만, 사실 latex은 로컬에 설치하는 프로그램입니다. 예전에 저도 한번씩 설치는 했었는데 은근히 오류가 많아서 자주 사용안했던 것 같아요. 또 요즘에는 워드에서도 latex으로 변환한다거나 하는 다른 플러그인들이 워낙 많아서 문제없는것 같고.
  • 아무튼 마크다운에서 latex 언어를 이용해 수식을 입력하려면 mathjax를 설치해줘야 한다는 것 같습니다.
  • mathjax: A JavaScript display engine for mathematics that works in all browsers. 라고 하네요.
  • 간단히, 설치만 해주면 됩니다만, html head 부분에 다음 내용을 추가해주면 됩니다.

mathjax 설치하기

  • layout 폴더의 default.html 파일의 head에 아래 코드 부분을 추가하면 됩니다.
  • head에 들어가는 부분은 쉽게 말하면, python에서 import 같은 부분입니다. 이 부분에 다음 내용을 작성해서 붙여넣으면 됩니다. 내용은 저도 모릅니다, 그냥 붙여 넣은거에요 하하핫.
  • 어떤 jekyll theme을 쓰느냐에 따라서 다를 수 있습니다. 참고하시고, 일반 post의 템플릿이 되는 부분에 넣어주시면 됩니다.
<script type="text/javascript" async 
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>

CDN

  • CDN은 Content Delivery Network 의 약자입니다. 파이썬에서 import할 때 보통 로컬에 설치되어 있는 library로부터 내용을 가져온다면, CDN으로 가져오는 것은 사용될때, 그때 웹에서 긁어온다고 생각하시면 될것 같습니다.
  • 단 그렇기 때문에 너무 많은 javascript engine을 가져올 경우에는 과부하가 걸려서 페이지 로딩이 오래 걸리거나 하는 일이 발생하지 않을까 싶습니다.

자 이제 됩니다

  • 그래서 이제 됩니다. 아직은 페이지 로딩에 큰 차이가 없는 것 같네요.
  • dollar sign 사이에 내용을 넣어주시면 됩니다.
  • 더 자세한 활용법은 여기를 참고하세용
$$
\sqrt{3x-1}+(1+x)^2
$$
\[\sqrt{3x-1}+(1+x)^2\]

problem

  • 그런데 이렇게 하고 났더니, tag page 에서도 레이텍이 렌더링되는 문제가 발생했습니다.
    • archieve, category 모두 괜찮은데 tag에서만 이러함.
  • latex error screenshot
  • 내부 소스를 보자!

어디가 문제인가?

  • backtick 으로 제목에서 표현된 부분이 code block으로 표현되는 것이 아니라, latex로 표현되는 것을 알 수 있당.

해결법

  • 제목에 backtick을 쓰지 않는다……ㅠㅠ현재로서는 다른 방법을 못찾겠음…ㅠㅠ

댓글남기기