Markdown에서 Latex 수식을 올바르게 반영한 PDF/HTML 작성 with Mathjax(VScode, markdown-pdf)

3895 단어 MathJaxMarkdownPDF

목적



VScode에서 markdown을 사용하여 수식을 올바르게 표시한 PDF, html 자료를 작성한다.

실행 환경은 Markdown All in Onemarkdown-pdf의 확장 환경을 도입한 VScode(On Windows10)로 합니다.

배경과 도전



Latex 수식을 Markdown에 표시하는 방법은 종종 두 가지로 나눌 수 있습니다. (그 밖에 있으면 가르쳐 주세요.)
  • Katex 사용
  • Mathjax 사용

  • Markdown Preview와 동일한 Katex를 사용하여 표시하려면 이 기사이 도움이됩니다.

    과제로 Katex를 사용한 경우
  • 일부 Latex 기법 (예 : \align)을 사용할 수 없음
  • \newcommand와 같은 매크로 선언을 크게 다시 작성해야 함 참고 예

  • 등 불편이 존재합니다. 한편 Katex가 사용되는 이유로는 렌더링이 빠르다는 것을 들 수 있는 것 같습니다.

    그래서 Katex 대신 Qiita의 수식 표시 등에도 사용되고 있는 Mathjax를 사용하도록 합니다.

    해결책



    template.html의 변경에 의한 변환시의 Mathjax의 유효화를 이용합니다.

    템플릿 파일을 여는 절차는
  • Cmd+Shift+P 명령 팔레트를 호출 Extensions: Open Extensions Folder Enter.
  • yzane.markdown-pdf-x.x.x\template 폴더로 이동합니다.
  • template.html을 열고 다음 문장을 추가한다.
  •   <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({ tex2jax: {inlineMath: [['$', '$']]}, messageStyle: "none" });
        </script>
    

    게다가 장소는 head와 body 사이에 있을 수 있었지만, 아마 어디서나 좋을 것입니다.
    참고로 한 Q&A는 여기.

    만약 너무 변경해서 모르는 경우는, 디폴트의 template를 Github 페이지 로부터 떨어뜨립니다.

    TODO



    우에다 선생님상세 해 확률 로보틱스 수업 슬라이드을 PDF로 하려고 하는데 사용했습니다.

    미리보기에서 결과를 확인할 수 없는 문제


  • Markdown의 미리보기가 Katex 호환 상태로 유지되므로 PDF로 변환 할 때까지 수식이 출력되지 않는 문제가 있습니다.

  • Preview의 외형. (Katex 오류가 발생하는 곳을 볼 수 없음)



    HTML로 변환한 외형


    Mermaid와 puml 쓰기



    사양서 등에서 uml 등을 쓸 때 포함하면 좋다고 생각합니다.
    Preview-enhanced라면 할 수 있으므로 PDF화도 할 수 있을까라고 생각하고 있습니다.

    참고

    무엇보다, 거기까지 요구한다면 asciidoc로 쓰는 편이 좋을지도 모릅니다만…

    좋은 웹페이지 즐겨찾기