Weave.jl을 사용하면 Julia + Markdown → PDF, HTML을 할 수 있습니다!

Weave.jl이란 무엇입니까? &이 기사를 통해 할 수있는 일



Weave.jl
  • Markdown으로 작성된 Julia 코드를 실행합니다.
  • 작성한 코드와 출력 결과는 출력 대상 (HTML, pdf)에 출력합니다.

  • 라는 특징이 있는 패키지입니다. Markdown과 Julia의 융합입니다! (어휘력)
    대학의 보고서, 세미나의 자료와 자신의 생각을 정리한다. . . 등 용도가 떠오르네요!

    Weave.jl을 작성할 때,
  • Markdown을 작성하는 방법
  • Julia의 기본 문법

  • 는 쓸 수 있다(쓰는 방법을 알고 있는 & 쓰는 방법을 조사할 수 있다)라고 하는 전제로 진행합니다.



    환경



    VSCode에서 편집하고 있습니다.
    VSCode의 Julia 환경 구축에 대해서는 이 기사 등을 참조하십시오.

    VSCode의 확장 기능은
  • Julia
  • Markdown Julia

  • 넣고 있습니다.

    mac ↓
    macOS Catalina

    julia ↓
    julia> versioninfo()
    
    Julia Version 1.4.2
    Commit 44fa15b150* (2020-05-23 18:35 UTC)
    Platform Info:
      OS: macOS (x86_64-apple-darwin18.7.0)
      CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
      WORD_SIZE: 64
      LIBM: libopenlibm
      LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
    Environment:
      JULIA_EDITOR = "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"
      JULIA_NUM_THREADS = 
    

    흐름



    1. jmd 파일



    브라우저에서 .jmd 확장자 파일을 준비합니다. (jmd는 아마, julia+markdown이겠지...)
    준비한 .jmd 파일에 다음과 같이 설명합니다.



    코드가 쓰여 있는 부분을 보면 sin(x) 그래프에 cos(x) 그래프를 겹치는 코드군요. 이와 같이, 3개의 그레이브 악센트(`)로 둘러싸인 개소에 코드를 써 갑니다. 출력시에는이 부분에 쓰여진 코드가 실행됩니다.

    이것을 출력합시다.

    2. 실행을 위한 .jl 파일



    그런 다음 실행을 위해 .jl 파일을 준비합니다. 나는 .jmd와 같은 디렉토리에 있었지만 나중에 상대 경로를 넣기 때문에 문제는 없습니다. 준비한 .jl 파일에는 목적에 따라 다음과 같은 코드를 씁니다.

    jmd → HTML을 원하는 사람



    demo.jl
    using Weave
    
    #相対パスを入力
    filename = normpath("demo.jmd")
    
    weave(filename , out_path = :pwd , doctype = "md2html")
    

    jmd → pdf를 원하는 사람



    demo.jl
    using Weave
    
    #相対パスを入力
    filename = normpath("demo.jmd")
    
    # 英語のみでいいとき
    weave(filename , out_path = :pwd , doctype = "md2pdf")
    
    # 日本語を出力したいとき
    weave(filename , out_path = :pwd , doctype = "md2pdf" , template="julia_tex.tpl")
    

    여기서 pdf 변환의 코드에 나온 julia_tex.tpl에 대해서, 이것은 일본어 대응을 위한 파일입니다. .jl 파일과 동일한 디렉토리에 둡니다. 내용은 다음과 같습니다. (쿠로키 씨가 쓴 코드입니다. 여기)

    julia_tex.tpl
    %%
    %% Taken from 
    %% https://github.com/JunoLab/Weave.jl/blob/master/templates/julia_tex.tpl
    %%
    %% I've applied GenKuroki-san's patch
    %% https://gist.github.com/genkuroki/479a1fec113035f05c661675eee8b830
    %%
    
    
    % \documentclass[12pt,a4paper]{article}
    \documentclass[12pt,a4paper,xelatex,ja=standard]{bxjsarticle}
    % \usepackage[a4paper,text={16.5cm,25.2cm},centering]{geometry}
    \geometry{top=1cm, bottom=1cm, left=2cm, right=2cm}
    \usepackage{lmodern}
    \usepackage{amssymb,amsmath}
    \usepackage{bm}
    \usepackage{graphicx}
    \usepackage{microtype}
    \usepackage{hyperref}
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{1.2ex}
    
    \hypersetup
           {   pdfauthor = { {{{:author}}} },
               pdftitle={ {{{:title}}} },
               colorlinks=TRUE,
               linkcolor=black,
               citecolor=blue,
               urlcolor=blue
           }
    
    {{#:title}}
    \title{ {{{ :title }}} }
    {{/:title}}
    
    {{#:author}}
    \author{ {{{ :author }}} }
    {{/:author}}
    
    {{#:date}}
    \date{ {{{ :date }}} }
    {{/:date}}
    
    {{ :highlight }}
    
    \begin{document}
    
    {{#:title}}\maketitle{{/:title}}
    
    \tableofcontents
    
    {{{ :body }}}
    
    \end{document}
    

    3. 실행



    그렇다면 여기까지 설명이 끝나면 실행해 봅시다. VSCode에서는 shift + Enter에서 Julia REPL이 움직입니다. 실행이 성공하면 HTML로 변환한 사람은 HTML 파일, pdf로 변환한 사람은 pdf 파일이 디렉토리에 생성됩니다. pdf 변환 후 이런 느낌 ↓ (이어서 실행 한 HTML 파일도 있습니다)



    어때요, 대단하네요! ! (콧숨)
    제대로 실행된 상태로 pdf로 변환되어 주었어요. HTML로 변환한 사람도 브라우저에서 열어 주면 제대로 표시됩니다. 후 이것 GitHub에 올려 공개할 수 있겠네요, 강하다.



    4. HTML의 일본어 대응 문제



    기사의 끝에, 아직 접하고 있지 않은 「HTML의 일본어 대응화」에 대해 씁니다. 이것은 더 이상 HTML 파일을 직접 편집하는 것이 빠릅니다. 편집기에서 HTML 파일을 열고 두 번째 줄에 있습니다.

    demo.html
    <HTML lang = "en">
    



    demo.html
    <HTML lang = "ja">
    

    다시 작성해 드리겠습니다. 간단 간단.

    마지막으로



    여기까지 읽어 주셔서 감사합니다. 꼭 시도해보십시오.
    Weave.jl을 사용하여 여러 가지 일을 할 수 있을 것 같네요, 저도 상상이 작동합니다.

    여기까지 도착하기 위해서 참고로 한 것은 기사내 링크로 임베드해 주셨습니다. 감사합니다.
    더 똑똑하게 쓰는 기사는 여기입니다.

    좋은 웹페이지 즐겨찾기