R Markdown 환경 구축 및 문제 해결

7123 단어 rmdRRStudioR-Markdown
R의 통합 개발 환경 RStudio를 사용하고 있어 「RMarkdown 되는 편리한 것이 있는 것인가!」라고 하는 것으로 환경 구축을 하면 힘들었기 때문에 비망록&공유를 전혀 기사화했습니다.

환경


  • macOS Mojave 10.14.4
  • texlive 2018 (원래 들어간 TeX)

  • R & RStudio 설치 정보


  • R은 코코에서 .pkg 다운로드, 설치
  • RStudio는 brew cask install rstudio 또는 설치 (참고)

  • 했습니다.

    TinyTeX 설치



    RMarkdown .Rmd에서 pdf로 컴파일하려면 TinyTeX이라는 작은 구성의 TeX Distribution을 사용해야하지만 설치 중에는주의가 필요합니다.

    비틀거림 포인트 1 - 다른 TeX Distribution 포함



    TeX는 tlmgr라는 전용 패키지 관리 도구를 가지고 있지만 여러 Distribution이 설치되어 있습니다. 불확실하고 올바르게 작동하지 않습니다.

    솔루션 - TinyTeX 이외의 Distribution 제거



    별로 신경 쓰지 않을지도 모르지만, 이렇게 해 버리는 것이 추천입니다.
    texlive라면 /usr/local/texlive 이하를 몰래 지워 버리면 거의 끝납니다.

    Main



    TinyTeX를 설치하는 방법에는 두 가지가 있습니다.
    하나는 RStudio 콘솔에서 설치하는 방법 :

    R-console
    install.packages('tinytex')
    tinytex::install_tinytex()
    

    다른 하나는 shell에서 설치하는 방법 :

    curl -sL "https://yihui.name/gh/tinytex/tools/install-unx.sh" | sh
    



    RMarkdown을 빠르게 작성하십시오 (일본어 없음)



    RMarkdown을 작성하기 전에 샘플 파일을 PDF화할 수 있는지 확인해 봅시다.
    RStudio에서 Rmarkdown을 만듭니다.

    작성이 끝나면 Command + Shift + k로 pdf로 컴파일합니다.

    아마 여기에 필요한 라이브러리 등의 설치가 이루어질 것입니다만, 2개 정도 트러블이 일어날 가능성이 있습니다.

    넘어지는 포인트 2 - Font를 찾을 수 없습니까?


    Font TU/lmr/m/n/10=[lmroman10-regular]:mapping=tex-text at 10.0pt not loadable: ...
    

    이 오류는 TinyTeX LoadPath에 지정된 글꼴 (위의 경우 lmroman)을 찾을 수 없음을 의미합니다.

    솔루션 - tlmgr에서 글꼴 설치



    tlmgr install lm
    

    넘어지는 지점 3 - 필요한 라이브러리를 설치했지만 오류가 발생합니다.



    R Markdown의 콘솔에 흐르는 로그를 보면 (기억을 추적하고 있기 때문에 다를지도) :

    R-console
    tlmgr search --file --global '/hogehoge.sty'
    tlmgr install hogehoge
    ...
    ...done mktexlsr
    tlmgr path add
    tlmgr search --file --global '/hogehoge.sty'
    
    ! LaTeX Error : hogehoge.sty not found
    
    tlmgr install 후에 검색을 걸어도 .sty가 없다고 말해 버리는 현상이 있었습니다.

    솔루션 - 패키지 일람표 (불행히도 수동) 업데이트



    sudo mktexlsr
    

    TeX에는 ls-R이라는 패키지 목록 파일이 있었는데, 이를 업데이트하지 않으면 설치를 해도 유효하지 않다는 것이었습니다.
    TinyTeX는 sudo 없이도 실행할 수 있다는 것을 알고 있기 때문에, 이 명령도 sudo가 붙지 않았던 것에 기인한 사건일까 추측했습니다.



    RMarkdown에 일본어 쓰기



    이 기사에서 작성된 것처럼 헤더 부분을 다시 작성하면 됩니다.

    sample.Rmd
    ---
    - output: pdf_document
    + output:
    +   pdf_document: 
    +     latex_engine: xelatex 
    + documentclass: bxjsarticle
    + classoption: xelatex,ja=standard
    + geometry: no
    ---
    

    하지만 아직 복병이 계십니다.

    비틀거림 포인트 4 - Option clash...



    R-console
    ! LaTeX Error : Option clash for package geometry
    

    솔루션 - 템플릿 파일에서 geometry의 로딩 부분을 제거합니다.



    이 기사 참조 ...



    막아당김



    우선 일본어를 제대로 쓸 수 있는 상태까지 반입하는 데 성공했습니다...
    손질했을 때의 참고가 되시면 다행입니다



    RStudio에서 일본어를 입력하면 거동 의심스럽기 때문에 좋아하는 에디터로 편집하여 shell에서 컴파일 할 수 있도록 설정했습니다.
  • Knitr with R Markdown

  • .zshrc
    export PATH=$PATH:/Applications/RStudio.app/Contents/MacOS/pandoc
    function rmd2pdf() { R -q -e "rmarkdown::render('$1', output_format = 'pdf_document')" }
    

    rmd2pdf sample.Rmd
    

    좋은 웹페이지 즐겨찾기