EDRSPIHCRSSRSS

RMarkdown과_La TeX


1. R, Rmarkdown


R마크다운에 대한 이야기를 하기 위해서 R과 마크다운를 쪼개서 이야기를 하면 좋을 것 같다.

1.1. R


참고로 이 부분은 위키피디아 문서의 내용을 LaTeX 유저에게 도움이 될 부분들을 추출해서 변형 가공하였음을 밝힌다.

R은 통계 계산과 그래픽을 위한 프로그래밍 언어이자 소프트웨어 환경이자 프리웨어이다. 뉴질랜드 오클랜드 대학의 로버트 젠틀맨(Robert Gentleman)과 로스 이하카(Ross Ihaka)에 의해 시작되어 현재는 R 코어 팀이 개발하고 있다. 통계 소프트웨어 개발과 자료 분석에 널리 사용되고 있으며, 패키지 개발이 용이해 통계 소프트웨어 개발에 많이 쓰이고 있다. R의 문법과 통계처리 부분은 AT&T 벨 연구소가 개발했던 S를 참고했고, 데이터 처리부분은 스킴으로부터 영향을 받았다.

개발 단계에서부터 통계 프로그래밍 언어로 출발을 해서 기본적으로 다양한 통계 기법과 수치 해석 기법을 지원한다. 또한 사용자가 제작한 패키지를 추가하여 기능을 확장할 수 있다. 핵심적인 패키지는 R와 함께 설치되며, CRAN(the Comprehensive R Archive Network)을 통해 2020년 3월 기준 15,400개 이상의 패키지를 내려 받을 수 있으며, MS 윈도우, 맥 OS 및 리눅스를 포함한 UNIX 플랫폼에서 이용 가능하다.

R의 또 다른 강점은 그래픽 기능으로 수학 기호를 포함할 수 있는 출판물 수준의 그래프를 제공하는 것인데, 이 부분을 가능하게 만드는 것이 바로 R과 LaTeX을 매끄럽게 연결해주는 Rmarkdown이라는 패키지이다.

1.2. Markdown


그렇다면 마크다운이란 무엇인가? 이 문단의 내용 역시 마크다운 위키피디아 내용을 참고, 변형, 가공하였음을 밝힌다.

마크다운(markdown)은 반 텍스트 기반의 경량 마크업 언어다. 반 텍스트로 서식이 있는 문서를 작성하는 데 사용되며, 반 마크업 언어에 비해 문법이 쉽고 간단한 것이 특징이다. HTML과 리치 텍스트(RTF) 등 서식 문서로 쉽게 변환되기 때문에 응용 소프트웨어와 함께 배포되는 README 파이나 온라인 게시물 등에 많이 사용된다.

기본적인 모토는 문서를 작성할 때 서식에 공을 들이는 시간을 없애버리고, 작성자가 작성하는 내용에만 충실하게 만들자는 것에서 시작하였다. 제목1, 제목2를 크기 몇으로 할 것인가보다는 다음과 같이

# 제목 1 *이탤릭체*

이런 식으로 정 기호를 사용하여 서식을 대체한다. 즉, 마크다운 문서는 특정 서식에 대응하는 기호를 포함하고 있는 것이다. 이 위키를 작성할 때 사용하는 서식을 위한 약속들 역시 마크다운의 한가지 버전이다.

1.3. Rmarkdown 이란?


R마크다운은 한글 파을 .hwp 라고 부르는 것처럼 .Rmd 하나의 파 확장자를 칭한다. 이름에서 유추할 수 있듯이 R프로그래밍 언어를 .md (마크다운 파 형식)에 접목시켜 놓은 형태이다. 즉, Rmd에서는 마크다운 문법과 R프로그래밍 언어 코드를 같이 혼합해서 쓸 수 있다.

본문 중에서 반 문장들의 경우에는 마크다운 문법을 사용해서 작성하고, 코드가 들어가고, 코드의 결과가 출력되는 부분들은 코드 청크를 나타내는 기호을 사용하여 다음과 같이 작성한다.

`{r} #코드가 들어감 `

이 후에 결과물을 출력할 때 코드 청크안의 코드를 돌려서 결과값을 문서에 붙여서 보여준다.

1.4. LaTeX과 R마크다운


LaTeX과 R마크다운의 관계는 어떻게 되어있는가에 대한 이해가 결국에는 이 문서의 핵심이 될 텐데, 현재 Rmarkdown에서 결과물을 pdf로 설정을 해놓으면, R마크다운의 본문 부분에 마크다운 문법 뿐 아니라 LaTeX 코드를 사용하여 쓸 수가 있다. 그리고 마크다운으로 작성이 된 서식들이 LaTeX으로 변환(팬독을 통하여)이 되어나온다.

앞에서도 예를 든 위키페이지를 쓸 때 약속이 되어있는 서식

{{굵게}}

을 Pandoc에서 자동으로 레이텍 코드 \textbf{굵게} 로 바꿔주는 것이다. 그리고 R프로그래밍을 사용해서 그린 그래프의 결과물을 자동으로 \includegraphics{} 환경으로 감싸서 내보내준다고 생각하면 편하다.


2. 예제

3. Quarto 예제

  • 2023년 8월 R사용자회 미트업에서 시연한 quarto 단행본 예제
    • @clt_qmd.zip (15.12 KB)
    • KTUG 사설저장소 설정이 되어 있어야 한다.
      > tinytex::tlmgr(args='repository add https://mirror.ischo.org/KTUG/texlive/tlnet ktug')
      > tinytex::tlmgr(args='pinning add ktug "*"')
      
    • RStudio의 Render 버튼을 누르거나, quarto cli로 다음 명령을 실행한다.
      quarto preview clt.qmd