1 디지털 전환 시대 글쓰기

디지털 전환(Digital Transformation) 전 글쓰기는 착상 후 종이와 연필을 가지고 글을 작성하고 수차례 수정작업을 거쳐 타자기로 탈고를 하고 이를 출판사에 넘겨 책이나 보고서로 고객에게 전달하게 된다.

하지만, 디지털 전환(Digital Transformation) 시대를 맞이하여 글쓰기는 아래한글 혹은 마이크로소프 워드 리브레 Write와 같은 워드 프로세서(Word Processor) 시대를 지나 정말 하드코어한 빔(Vim), 이맥스(Emacs), VS 코드 와 같은 코딩 편집기를 마크다운을 활용하거나 아예 HTML을 직접 코딩하기도 했다. 그 중간에 $\LaTeX$ 을 활용하여 수식이 포함된 학위논문과 저널이나 컨퍼런스에 발표할 논문을 미려한 저작을 하기도 했다. 이를 위해서 $\LaTeX$에 특화된 TeXStudio IDE를 사용해서 생산성을 높이기도 했다. 하지만, RStudio의 Visual R Markdown 편집기가 RStudio v1.4에 포함되어 출시되면서 문서를 생산하는 방식에 혁명적인 변화가 생겼다.

문서 컴파일 위지위그

2 저작방식 패러다임12

위지위그(WYSIWYG: What You See Is What You Get, “보는 대로 얻는다”)는 문서 편집 과정에서 화면에 포맷된 낱말, 문장이 출력물과 동일하게 나오는 방식을 말한다. 이는 편집 명령어를 입력하여 글꼴이나 문장 형태를 바꾸는 방식과 구별된다. 현재 대부분의 워드 프로세서는 위지위그 방식을 쓰고 있으나 HTML이나 TeX는 편집 명령어를 통해 편집하는 방식을 고수하는데 이유는 문서의 호환성, 범용성 때문이다. 하지만, WYSIWYG를 구현하기 위해 필연적으로 쓸모없는 요소가 들어가게 되기 때문에 문제가 생긴다. 이것이 거듭될수록, 날코딩으로 전환해서 최적화를 하려고 해도 답이 없는 상황으로 변하게 된다. 결국, 오늘도 WYSIWYG 제작자는 어떻게든 결과물의 최적화를 위해 갈리고 있다.

WYSIWYG 방식이 본래의 코드 구조를 바로 알아 볼 수 없다는 점을 보완한 위지윔(WYSIWYM: What You See Is What You Mean, “네가 보는 것은 네가 뜻하는 것이다”)은 위지위그가 완벽하지 못하다는 점에서 새로 등장한 용어로 RStudio Visual 마크다운 편집기능이 추가되면서 추구하는 지향점을 나타내는 표현이다. WYSIWYM의 대표적인 사례로 오픈 소스 LaTeX 편집기인 LyX라는 소프트웨어가 이 개념을 채용하였다.

3 워드 프로세서3

워드 프로세서(Word Processor) 는 문서를 제작하는데 사용되는 주요 기능을 시각적으로 잘 배치시켜뒀고 직관적인 인터페이스를 통해 원하는 문서를 제작할 수 있도록 개발된 전용 소프트웨어다. 아래한글도 유사한 방식으로 이와 같은 기능을 제공하고 있는데 좀더 한국적인 상황을 반영하여 예를 들어 정부나 공공기관 문서서식을 많이 담고 있어 양식에 대한 고민없이 해당 업무 글쓰기에 집중할 수 있도록 진화되었다.

  • Tab Ribbon Screen
  • File Tab Save Screen
  • Font Screen
  • Paragraph Screen
  • Modify Style Screen
  • Find Replace Editing Screen
  • Page Layout Screen
  • Page Layout Breaks Screen
  • View Screen
  • Full Screen View Screen
library(tidyverse)
library(slickR)

word_filenames <- fs::dir_ls(path = "fig/", glob = "fig/*.jpg")

word_tbl <- tibble(file_path = word_filenames)

word_tbl <- word_tbl %>% 
  mutate(features = str_remove_all(file_path, pattern = "(fig/word-[0-9][0-9]-)|(\\.jpg)") %>% 
           str_replace_all(., pattern = "-", replacement = " "))

slickR(obj = word_tbl$file_path, width = "100%") %synch%
  ( slickR(word_tbl$features, slideType = 'p') + settings(arrows = FALSE) )

4 Visual R 마크다운 편집기

Visual R 마크다운 기능을 사용하게 되면 과학/기술 문서 작성의 용이성 뿐만 아니라 인용(Citation), literate programming 을 통한 재현가능한 과학문서 구현, Pandoc을 사용하여 R 마크다운 코드 하나로 PDF, HTML, 워드 등 다양한 문서 생성이 가능하다.

4.1 주요기능

Visual R 마크다운 편집기의 주요기능은 다음과 같다.

library(magick)

## toolbar 이미지가 너무 커서 크기 재조정
toolbar <- image_read("fig/visual-edit-toolbar.png") %>% 
  image_scale("320x!")

toolbar %>% 
  image_write(path = "fig/visual-edit-resized-toolbar.png")

## list 이미지가 너무 커서 크기 재조정
list_img <- image_read("fig/visual-edit-list.png") %>% 
  image_scale("500x250!")

list_img %>% 
  image_write(path = "fig/visual-edit-resized-list.png")

## html 이미지가 너무 커서 크기 재조정
html_img <- image_read("fig/visual-edit-html.png") %>% 
  image_scale("800x370!")

html_img %>% 
  image_write(path = "fig/visual-edit-resized-html.png")


## latex 이미지가 너무 커서 크기 재조정
latex_img <- image_read("fig/visual-edit-latex-block.png") %>% 
  image_scale("800x370!")

latex_img %>% 
  image_write(path = "fig/visual-edit-resized-latex.png")

visual_filenames <- fs::dir_ls(path = "fig/", glob = "fig/visual-edit*.png") %>% 
  setdiff("fig/visual-edit-toolbar.png") %>% 
  setdiff("fig/visual-edit-list.png") %>% 
  setdiff("fig/visual-edit-html.png") %>% 
  setdiff("fig/visual-edit-latex-block.png")

visual_tbl <- tibble(file_path = visual_filenames)

visual_tbl <- visual_tbl %>% 
  mutate(features = str_remove_all(file_path, pattern = "(fig/visual-edit-)|(\\.(png)|(jpg)|(gif))") %>% 
           str_replace_all(., pattern = "-", replacement = " "))

slickR(obj = visual_tbl$file_path, height = "400px", width = "100%") %synch%
  ( slickR(visual_tbl$features, slideType = 'p') + settings(arrows = FALSE) )