1 자동화 툴체인 구축 1 2 3 4

pandoc markdown make 툴체인

1.1 make 설치

윈도우 환경 make는 Make for Windows에서 모든 것이 포함된 make-3.81.exe 파일을 다운로드 받아 설치하면된다. 윈도우 환경에서 make를 실행할 경우 …

  • [내컴퓨터 - 속성] 또는 [제어판및 보안] 에서 왼쪽의 ‘고급 시스템 설정’ 으로 들어갑니다.
    • 혹은 Windows 설정에서 “설정 찾기” 검색창에 ’고급 시스템 설정’을 입력합니다.
  • 시스템 속성 창입니다. ‘환경 변수’ 클릭
  • 시스템 변수의 ‘새로 만들기’ 를 클릭하여 시스템 변수를 추가하거나, 사용자 변수에 추가합니다.
  • make -version 명령어를 임의 디렉토리에서 타이핑하게 되면 make가 정상 동작하는 것을 확인할 수 있습니다.

1.2 \(LaTeX\) 설치

윈도우 환경에서 한글이 지원되는 환경을 구축한다는 것은 영문으로 구현하는 것과 전혀 다른 얘기가 될 수 있다. 한글 윈도우 10 환경에서 한글 \(LaTeX\) 환경설정에 대한 자세한 사항은 다음 링크를 참조한다.

데이터 과학: 저작(Authoring) - 한글 LaTeX 윈도우 설치

1.3 pandoc 설치

pandoc은 하스켈(haskell) 언어로 만들어진 문서 변환 프로그램으로 “Pandoc: a universal document converter”로 영미권에서 폭넓게 활용되고 있다. pandoc은 마크다운 등을 입력으로 받아 이를 다양한 형태 문서로 변환시키는 도구다.

입력형식 출력형식
  • HTML
  • LaTeX
  • Textile
  • reStructuredText
  • MediaWiki Markup
  • DocBook XML
  • 마크다운
  • plain text
  • markdown
  • HTML (XHTML, HTML5>)
  • LaTeX
  • PDF (when LaTeX installed)
  • Various HTML/Javascrip based slide shows
  • EPUB
  • Emacs org-mode
  • Rich Text Format (RTF)
  • OpenDocument XML
  • LibreOffice (Open Document Format, ODT)
  • Microsoft Word DOCX
  • MediaWiki markup
  • FictionBook2
  • Textile
  • groff man pages
  • AsciiDoc

Installing pandoc 사이트에서 다운로드 받아 각 환경에 맞춰 설치작업을 수행하면 된다.

2 헬로월드

2.1 pandoc 기반 문서작성 5

pandoc으로 문서를 작성할 경우 다양한 입력형식이 제공되지만, 일반적으로 마크다운(markdown)으로 문서를 저작하고 이를 pandoc 엔진으로 다양한 형태 문서로 뽑아내는 과정을 거친다.

마크다운 Pandoc

hello_world.md 마크다운 문서를 작성한 후에 pandoc -o output.file input.file 형태로 명령어를 전달시키면 워드문서, pdf 문서, html 문서를 자동으로 변환시켜 생성시킬 수 있다.

마크다운 문서 작성에 필요한 기본 문법에 대해서는 다음 웹사이트를 참조한다.

“소프트웨어에 물들다”(2018-05-26) 왕곡초등학교에서 발표한 내용도 참고한다.

pandoc 변환

영문기반 pandoc과는 별개로 한글로 문서를 작성할 경우 추가 작업이 필요한데 pdf 파일 변환의 경우 \(LaTeX\)엔진설정과 폰트 설정을 통해 한글도 문제없이 다양한 형태로 변환이 가능하다.

pdf 문서 변환시 CJK 문제 해결방법 6

한국어가 포함된 CJK 문제에 대해서 \(LaTeX\)엔진을 --latex-engine=xelatex으로 지정하고, CJK 글꼴로 -V CJKmainfont="NanumGothic"을 지정하면 해결이 된다.

pandoc -o hello_world.pdf hello_world.md --latex-engine=xelatex -V CJKmainfont="NanumGothic"

2.2 \(LaTeX\) 기반 논문작성

가장 먼저 \(LaTeX\) 기반 논문작성을 위해서 Karl Broman, “minimal make A minimal tutorial on make”을 참조하여 데이터 과학자에 적합한 형태로 변형을 시켜본다. 그리고 마크다운으로 확장하고, R 마크다운으로 확장하여 RStudio IDE에서 통합작업이 가능하게 작업한다. 7

2.2.1 \(LaTeX\) 헬로 월드

먼저 \(LaTeX\) 기반 텍(Tex)문서로 .tex 확장자를 갖는 파일을 작성한다. 범용 텍스트 편집기를 사용해도 되고 \(LaTeX\)전용 편집기 TexWorks를 본인 운영체제에 맞춰 설치하여 사용해도 된다. \(LaTeX\)을 사용하게 되면 아래한글, 워드와 비교하여 다른 문서편집기와 비교하여 복잡하고 유지보수가 필요한 문서작업 예를 들어 논문작성 등에 강점이 있다. 한글로 문서를 작성하는 경우 추가적으로 oblivoir와 같은 \documentclass 혹은 \documentclassarticle을 지정하고 \usepackage{kotex}를 조합하여 사용한다. 이유는 oblivoir는 한글지원이 내장되어 있다고 보면 쉽다.

Latex 출력물

작업과정은 \(LaTeX\) 기반 텍(Tex)문서 .tex 확장자를 갖는 문서를 작성하고 나서 TeX Users Group 웹사이트에서 TeX Live와 같은 \(LaTeX\) 문서 변환 엔진을 사용해서 .pdf 파일을 다양한 형태 즉, 책/보고서/슬라이드쇼 등 뽑아낸다.

TexWorks 편집기를 TeXLive 2018을 엔진으로 삼아 상기 hello_world.tex 파일명으로 작성하여 컴파일시키면 .pdf 문서를 생성시킨다.

LaTeX 문서변환

2.2.2 최소 \(LaTeX\) 논문작성

TexWorks 편집기 대신 데이터 과학을 염두에 두고 RStudio IDE를 \(LaTeX\) 편집기로 사용한다. 동일하게 .tex 파일을 작성하는데 이번에는 논문 작성에 기본으로 들어가는 요소들을 하나씩 배치시킨다.

  • 한글 사용이 가능한지 확인합니다.
  • 수식 사용이 가능한지 확인합니다.
  • 표 사용이 가능한지 확인합니다.
  • 그림 사용이 가능한지 확인합니다.
  • 참고문헌 사용이 가능한지 확인합니다.

상기 작업을 위해서 다음과 같이 작업 환경을 구축한다.

minimal_latex.tex 파일로 논문이나 보고서 내용을 작성하고 관련된 이미지 파일을 fig 디렉토리 아래 위치시킨다. 참고문헌을 papers.bib 파일에 정리하여 보고서와 논문이 작성될 때 자동 생성시킨다.

minimal_latex.tex 파일에 논문과 보고서 내용을 각 장별로 나눠 작성한다. 문서에는 한글, 수식, 표, 그림 삽입, 참고문헌 사용이 망라되어 있다.

% minimal_latex.tex 파일명
\documentclass[12pt]{article}
\usepackage{kotex}
\usepackage{graphicx}
\setlength{\parskip}{6pt}   % 단락사이 빈여백 공간설정.
\setlength{\parindent}{0pt} % 단락사이 들여쓰기 않함.
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}

\begin{document}

\section{$LaTeX$ 최소 사용법}

매우 단순한 \LaTeX\/ 문서로 \LaTeX\/을 사용하여 문서를 작성합니다.

\begin{itemize}
  \item 한글 사용이 가능한지 확인합니다.
  \item 수식 사용이 가능한지 확인합니다.
  \item 표 사용이 가능한지 확인합니다.
  \item 그림 사용이 가능한지 확인합니다.
  \item 참고문헌 사용이 가능한지 확인합니다.
\end{itemize}

출처: \href{https://en.wikibooks.org/wiki/LaTeX}{위키 책(Book)}

\section{수식}

$x^2 + y^2 = z^2 $ %수학 모드

\section{표}

\begin{center}
  \begin{tabular}{ l | c | r }
    \hline
    1 & 2 & 3 \\ \hline
    4 & 5 & 6 \\ \hline
    7 & 8 & 9 \\
    \hline
  \end{tabular}
\end{center}

\begin{tabular}{ | l | l | r | }
  \hline\noalign{\smallskip}
  \multicolumn{2}{c}{Item} \\
  \cline{1-2}\noalign{\smallskip}
  Animal & Description & Price (\$) \\
  \noalign{\smallskip}\hline\noalign{\smallskip}
  Gnat  & per gram & 13.65 \\
        & each     &  0.01 \\
  Gnu   & stuffed  & 92.50 \\
  Emu   & stuffed  & 33.33 \\
  Armadillo & frozen & 8.99 \\
  \noalign{\smallskip}\hline
\end{tabular}

\section{그림}

\begin{figure}
    \centering
    \includegraphics[width=2cm]{fig/suji.jpg}
    \caption{수지 리즈시절 사진}
    \label{fig:label}
\end{figure}

\section{참고문헌}

상기 수지 사진을 제작하기 위해 사용된 자세한 방법은 \cite{Kopka2003}을 참조한다.

% 참고문헌 삽입
\bibliography{papers}{}
\bibliographystyle{plain}

\end{document}

참고문헌을 담고 있는 papers.bib 파일에는 minimal_latex.tex 파일에서 참고하고 있는 유일한 문서 Kopka2003 책에 대한 정보가 담겨있다.

위와 같이 수지 레전드 리즈시절 이미지, 참고문헌을 준비하고 RStudio에서 컴파일시키면 다음과 같이 .pdf 파일이 자동 생성된다.

RStudio 최소 LaTeX

3 마무리

이상으로 마크다운과 \(LaTeX\)을 중심으로 다양한 문서를 자동생성하는 방식을 살펴봤다. 이런 작업흐름을 갖는 경우와 비교하여 데이터를 중심으로 데이터 분석결과를 담아내는 문서를 생성시킬 경우 불편한 점이 다수 생기게 된다. 이러한 한계를 극복하는 전략으로 RStudio에서 .Rmd 파일을 생성시켜 작업을 추진하는 방법과 make를 활용하여 Makefile에 문서 생성 자동화과정을 담아내는 것을 살펴보자.