디지털 글쓰기

R 매뉴얼

R 매뉴얼 한국어 번역을 준비합니다.

저자
소속

1 현황

비엔나 경제 및 경영 대학교(WU, Wirtschaftsuniversität Wien)에서 운영되는 CRAN을 통해서 R 코어 개발팀이 Debian Linux를 근간으로 R 설명서를 배포하고 있다. R 설명서/매뉴얼은 R에 따라 변경되므로 가장 최근에 릴리스된 R 버전(R-release), 패치된 릴리스 버전(R-patched)의 최신 버전, 마지막으로 아직 개발 중인 R 버전(R-devel)에 대한 버전으로 제공된다. 매뉴얼은 좌측 메뉴 Documentation > Manuals을 통해 제공되고 다른 언어로 번역된 것은 아래 Documentation > Contributed를 통해 제공되고 있다.

2 소스코드

최신 R 소스코드는 좌측 메뉴 Software > R Sources을 클릭하게 되면 R Sources
Official releases를 통해 다운로드받아 이용이 가능하다. R-4.3.0.tar.gz 버전 기준 34MB 정도 크기를 갖고 있으며 압축을 풀게 되면 매뉴얼은 다음 R-4.3.0/doc/manual/ 디렉토리 아래 TexInfo 파일 .texi 확장자를 갖고 있어 이를 컴파일하게 되면 HTML, PDF, EPUB 형식으로 변환하여 사용할 수 있다.

library(tidyverse)

fs::dir_tree("../R-4.3.0/doc/manual/")
## ../R-4.3.0/doc/manual/
## ├── dir
## ├── epsf.tex
## ├── images
## │   ├── ecdf.pdf
## │   ├── ecdf.png
## │   ├── fig11.pdf
## │   ├── fig11.png
## │   ├── fig12.pdf
## │   ├── fig12.png
## │   ├── hist.pdf
## │   ├── hist.png
## │   ├── ice.pdf
## │   ├── ice.png
## │   ├── QQ.pdf
## │   └── QQ.png
## ├── ISBN
## ├── Makefile.in
## ├── Makefile.win
## ├── pdfcolor.tex
## ├── quot.sed
## ├── R-admin.texi
## ├── R-data.texi
## ├── R-defs.texi
## ├── R-exts.c
## ├── R-exts.R
## ├── R-exts.texi
## ├── R-FAQ.texi
## ├── R-intro.aux
## ├── R-intro.cp
## ├── R-intro.cps
## ├── R-intro.html
## ├── R-intro.log
## ├── R-intro.pdf
## ├── R-intro.R
## ├── R-intro.texi
## ├── R-intro.toc
## ├── R-intro.vr
## ├── R-intro.vrs
## ├── R-ints.texi
## ├── R-lang.texi
## ├── README
## ├── refman.bot
## ├── refman.top
## ├── resources.texi
## ├── Rfaq.css
## ├── Rman.css
## ├── rw-FAQ.texi
## └── version.texi

3 윈도우 컴파일 환경

R 매뉴얼(.texi)을 컴파일해서 PDF, HTML, EPUB 등 가독성 높은 파일형태로 변환시키기 위해서 다양한 방법이 존재하지만 윈도우 환경에서 VS코드를 통합개발환경(IDE)로 삼아 WSL(Windows Subsystem for Linux)를 터미널로 연결시켜 사용하는 방법이 그다지 노력을 많이 들이지 않는 방법이다.

--no-split 옵션을 주지 않으면 R-intro/ 폴더아래 html 파일들이 작성된다.

.texiR-intro

texi2any --html R-intro.texi

.texi.html

texi2any --html R-intro.texi --no-split

.texi.html

texi2pdf R-intro.texi

4 Texinfo (.texi)

R 매뉴얼은 리눅스 Texinfo 에 따라 작성된다. 1

Texinfo는 한개의 소스 화일을 사용해서 온라인 정보와 인쇄된 출력물을 얻어낼 수 있는 문서화 system이다. 온라인 도움말 및 그외 온라인 정보와 매뉴얼 및 그외 인쇄물을 작성하기 위해 두개의 별도의 문서를 작성하는 대신, 오직 1개의 문서만 작성하면 된다. 문서가 변경되었을때, 오직 1개 문서만 변경하면 된다.

Texinfo를 사용해서, 장(chapter), 절(section), 상호참조(cross reference ), 그리고 색인(index)같은 보통 서적의 특징을 가진 인쇄 문서를 만들 수 있다. 동일한 Texinfo 소스 화일에서 menu에 의해 동작하는 node, menu, 상호참조, 색인이 있는 온라인 Info file을 만들어 낼 수 있다. 인쇄 문서의 장과 절을 온라인 정보의 노드와 일치시킬 수 있다; 그리고 상호참조와 색인을 Info file과 인쇄물에 동시에 이용할 수 있다

인쇄 문서를 만들어 내려면, Texinfo 소스 화일을 TeX typesetting 프로그램으로 처리한다. 이렇게 하면 조판하고, 책이나 보고서로 인쇄할 수 있는 DVI 화일이 만들어 진다. (Texinfo 언어는 TeX의 일반적인 언어인 plain TeX 과는 완전히 다르다는 것에 유의한다.)

Info 파일을 만들려면, Texinfo 소스 화일을 makeinfo 유틸리티로 처리하거나, Emacs의 texinfo-format-buffer 명령을 사용하라; 이렇게 하면 온라인으로 설치할 수 있는 Info 화일이 만들어 진다.

Texinfo 파일은 글과 typesetting and formatting 프로그램이 뭘 해야 할지 알려주는 @-명령(`@’다음에 오는 단어)이 들어 있는 plain ASCII 화일이다. Texinfo는 온라인 도움말과 인쇄된 매뉴얼을 동시에 만드는 데 쓸 수 있다; 게다가 Texinfo는 자유롭게 재배포할 수 있다. 이러한 이유때문에, Texinfo는 GNU 유틸리티와 라이브러리의 문서가 쓰여진 형식이 되었다.

4.1 구조

한개의 Texinfo 파일은 보통 chapter, section, subsection과 같은 것으로 구성된 책과 같이 구조가 짜여진다. 이 구조는 맨위에 root가 있고, chapter, section, subsection, 그리고 subsubsection에 해당하는 level로 된 tree로 (혹은 뒤집어진 tree로) visualize할 수 있다.

여기 각각 두개씩의 section이 있는 세개의 chapter로 구성된 Texinfo 파일을 보여주는 diagram이 있다.

                          Top
                           |
         -------------------------------------
        |                  |                  |
     Chapter 1          Chapter 2          Chapter 3
        |                  |                  |
     --------           --------           --------
    |        |         |        |         |        |
 Section  Section   Section  Section   Section  Section
   1.1      1.2       2.1      2.2       3.1      3.2

이러한 구조를 갖는 Texinfo 파일에서, Chapter 2의 시작부분은 다음과 같다;

@node    Chapter 2,  Chapter 3, Chapter 1, top
@chapter Chapter 2