1. 위지위그 편집기거의 대부분의 사람들은 컴퓨터에서 문서를 작성할 때 마이크로소프트 워드와 같은 프로그램을 쓸 것이다. 워드 같은 프로그램을 아시다시피 위지위그(WYSIWYG, What You See Is What You Get) 편집기라 한다. 실제 종이로 출력될 문서와 같은 (아니면 거의 흡사한) 형태를 직접 보면서 편집하는 툴이다. 초등학교 시절이었던 1989년, 금성사(…)의 장원이라는 워드프로세서가 있었는데 그건 위지위그 방식이 아니었다. 게다가 텍스트 화면에서 편집하는 프로그램이었다. 그러다가 1991년 정도에 접한 새로운 워드프로세서가 있었는데 바로 아래아 한글.
아래아 한글은 그래픽으로 작업을 해서 거기서부터 주는 충격이 대단했다. 그리고 위지위그 편집이 가능했다. 한글에서 편집한 문서를 엄청난 소음과 함께 출력되던 도트 프린터로 출력해서 본 기억이 아직도 난다.
2. 위지위그 편집기위지위그 에디터와 대비되는 대표적인 문서 편집 도구로 LaTeX (레이텍)이 있다. LaTeX은 Knuth 선생이 만든 TeX라는 조판 언어에 기반한다. 이걸 전산학계에서 매우 유명하신 Lamport 선생이 개선한 것이다. 전산학자가 만든 문서 편집 프로그램이니 지극히 프로그래밍적으로 접근한다. LaTeX는 위지위그와는 판이하게 다르게 마치 HTML을 날로 코딩하듯이 특수 조판 기호를 이용해 소스 코드를 작성한다. 그리고 이 소스 파일을 ‘컴파일’한다. 맞다. 코딩할 때 그 컴파일 바로 그것이다. 그러면 이 문서 소스 코드는 DVI, PS(Post Script), PDF 포맷으로 출력된다. 소스 코드에 오류가 있으면 컴파일 에러도 뜬다. 컴파일 경고도 있다. 리눅스에서 작업한다면 Makefile로 컴파일할 수 있다. 위키피디아에 있는 LaTeX의 예를 한 번 보자. \documentclass[12pt]{article}\usepackage{amsmath}\title{\LaTeX}\date{}\begin{document}\maketitle \LaTeX{} is a document preparation system for the \TeX{}typesetting program. ... 생략 .... \LaTeXe. % This is a comment; it will not be shown in the final output. % The following shows a little of the typesetting power of LaTeX: \begin{align}E &= mc^2 \\ m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}} \end{align}\end{document}HTML 날 코딩 해보신 분이라면 그렇게 이상하게 보이지 않을 것이다. \usepackage는 마치 C/C++의 #include, Python의 import와 흡사하다. 키워드/매크로를 사용하고 있으며 무엇보다 복잡한 수식을 명령어로 섞어 표기하는 것이 가장 큰 특징이자 장점이다. 위 소스 코드를 컴파일하면 다음의 출력물이 나온다. ![]() 처음에는 도대체 LaTeX 이거 뭔가 욕하다가 컴파일-출력물 보기에 중독 되기도 한다. Latex이 위지위그에 비해 가지는 장점이 여럿 있다.
이러한 이유로 LaTeX은 특히 논문을 써야 하는 대학원/교수 사이에서 많이 사용된다. 수식이 많은 물리/수학/통계 분야는 당연하고 솔직히 수식도 별로 없는 전통적인 전산학 분야에서도 LaTeX은 논문 편집이 표준이다. 물론 전산학에서도 수식이 많이 나오는 머신 러닝 쪽은 거의 필수이지만. 그런데 다른 전공은 LaTeX을 안 쓰는 경우도 많다. 생물학만 하더라도 (수식이 별로 없으니) 거의 쓰지 않는다고 한다. 하지만 LaTeX도 불편한 점도 많다. 마치 vim과 워드와 같은 차이라고 볼 수 있다. 워드는 전혀 사용법을 몰라도 시간이 지나면 터득이 되지만 vim은 공부를 하지 않으면 아예 전혀 사용할 수도 없다. 누군가 그러지 않았는가. 랜덤 문자열을 얻으려면 vim이나 emacs를 초보자에게 주고 종료시키도록 하면 된다고. LaTeX도 그러하다. 초기 진입 장벽이 상당히 있다. 한편, 위에서 장점이라고 언급한 것도 양날의 검처럼 단점이 동시에 있다.
3. LaTeX와 위지위그의 편리함을 합친다면?이렇게 LaTeX와 위지위그 에디터는 그 장단점이 너무나 뚜렷하다. 분명 어느 한 쪽이 완전히 우세하다고 말 할 수 없다. 그렇다면 자연스럽게 이 두 방식의 절충점을 찾고 싶을 것이다. ![]() 아직까지 아래아 한글 수식 편집기의 명령어가 외워지고 있다니. 수식이 이게 맞던가.. 아래아 한글의 수식 편집기는 위 그림처럼 LaTeX를 연상케 하는 코드로 수식을 편집할 수 있게 한다. 학부 주전공은 물리/역학 수업이 많아서 수식 편집을 많이 했다. 나는 여전히 15년 전에 쓴 아래아 한글의 수식 편집이 손에 익다. 마우스를 손에 거의 댈 필요가 없다. 워드 2007/2010의 수식은 위지위그 방식으로 편리는 하지만 지나치게 마우스 클릭을 많이 해야 해서 대량의 수식이라면 너무 피로하다. 하지만 아래아 한글은 입력 방식은 훌륭하나 정작 출력/인쇄 과정에서 문제를 많이 일으켰던 기억이 난다.
LaTeX의 매우 불편한 재컴파일-미리보기 과정을 진정 위지위그화한 편집기도 있다. 이름이 굉장히 기괴한데 BaKoMa TeX라는 상용 툴이 있다. 러시아계 사람 같은 1인 개발자가 10년 넘게 혼자 만들어서 파는 프로그램이다. 홈페이지 디자인도 너무나 촌스러워 신뢰가 안 가는데 써보면 충격과 공포 그 자체다. 정말 레이텍을 상당한 수준의 위지위그로 만들었다. 글씨를 치면 바로 incremental 컴파일을 해서 진짜 결과물을 보여준다.
주 편집 창에서 편집을 하면 왼쪽 하단에 있는 LaTeX 소스 파일도 알맞게 코드가 생성된다. 반대로 소스 코드를 직접 고쳐도 명시적인 컴파일 없이 즉각 화면에 반영된다. 평가판으로 써보고 너무 좋아서 지금은 구입해서 사용 중이다. 안타깝게도 자잘한 버그가 많아서 불편한 점이 꽤 있으나 문제점을 메일로 보내면 거의 개발자가 24시간 내에 직접 고쳐주고 진단해주기도 한다(...) 진정 장인의 숨결이 느껴지는 소프트웨어이다. 그러나 이런 노력에도 불구 원초적으로 LaTeX가 가지는 한계점으로 정말 워드처럼 편리하게 쓰는 느낌은 들지 않는다. 복잡한 논문을 바로 여기서 작업하기에는 쉽지 않을 수 있다. 그 보다는 이미 작성된 레이텍 파일을 후편집할 때 매우 편리하다. 하지만 이러한 장애를 극복하고 이 정도 수준의 소프트웨어를 만든 것도 대단하다. LaTeX으로 논문 많이 쓰는 사람에겐 무조건 강력 추천한다.
LaTeX의 종결자는 프리젠테이션 파일과 그래프도 LaTeX으로 만드는 것이라고 한다. 각종 실험 그래프도 스크립트를 이용해 LaTeX 혹은 다른 벡터 그래픽 언어로 그릴 수 있다. 나는 그렇게 대량의 데이터를 수집하는 실험을 많이 하지 않아 엑셀 노가다로 해결이 되지만, 스크립트로 결과를 파싱해 프로그래밍적으로 그래프를 그린 뒤 PDF로 뽑아서 보는 친구도 있다. 자명하게 이에 대응되는 위지위그 방식은 파워포인트/엑셀일 것이다. 파워포인트는 대부분의 경우 편리하고 직관적이나 위지위그 방식이 너무나 불편할 때가 종종 있다. ![]() 사실.. 이 글을 쓰게 된 것도 지금 발표용 슬라이드를 만들고 있는데, 위 그림처럼 복잡한 에니메이션을 넣다가 사람 환장할 것 같아 충동적으로 쓰고 있다. 간단한 애니메이션은 우아하게 클릭 클릭으로 해결된다. 그런데 개체가 날라 다니고 텍스트 내용이 바뀌고 등등의 복잡한 애니메이션을 클릭으로 하기란 너무나 고통스럽다. 고치기도 너무 어렵고 몇 픽셀 차이로 어긋나는 것도 잡기가 너무 어렵다. 이럴 때 이런 에니메이션을 스크립트로 처리할 수 있으면 얼마나 좋을까? 그런데 이론적으로는 가능하다. 거의 10년 전인, 2003 년, 회사에서 해야 했던 일이 딱 파워포인트 같은 편집 툴을 만드는 것. 핵심은 undo/redo가 지원되는 C++ 컴포넌트 아키텍처 + GUI 인터페이스를 만드는 것. 처음에는 갈피를 못 잡다가 파워포인트를 열심히 파고 드니 파워포인트의 각 개체가 프로그래밍적으로 접근이 가능함을 알았다. 우리가 눈에 보는 것은 마우스와 키보드의 위지위그지만 실제 내부는 프로그래밍적으로 문서를 만들고 개체를 넣고 수정하고 그런 것이 되는 것이다. 컴포넌트를 조작하는 엔진과 그 엔진에게 명령을 전달하는 GUI 껍데기의 확실한 구분이었다. 이런 접근 방식을 보자마자 어려워 보이던 문제가 쉽게 풀릴 수 있었다. 위 그림을 보면 각 개체마다 이름이 다 있다. 그러니 얼마든지 애니메이션을 프로그래밍 형식으로 제어할 수 있을 것이다. 다만 마이크로소프트가 이런 인터페이스를 노출 안 시킬 뿐. 마찬가지로 워드도 복잡하고 큰 문서를 작성하면 비슷한 난관에 봉착한다. 역시 이럴 때 LaTeX 처럼 편집할 수 있는 모드도 있으면 얼마나 좋을까?
4. 무한한 시간과 돈이 있다면나는 Visual C++를 15년 넘게 쓰고 있는 사람이다. 그런데 리눅스도 많이 쓸 수밖에 없어 vim + Makefile로도 작업을 5-6년간 꽤 했다. 이 판이하게 다른 개발 환경을 보고 있자면 (물론 리눅스에서 이클립스가 있긴 하지만) 너무나 위지위그와 LaTeX의 차이점이 떠오른다. (아 그렇다고 Visual C++을 클릭클릭하는 RAD 툴로 생각하면 큰 오산!) 여기서 어느 방법이 좋다/나쁘다를 논하고 싶지는 않다. 할 말이 너무 많아서… 그러나 하나 확실한 것은 위에서 얘기한 LaTeX와 위지위그의 차이처럼 양 개발 방법론도 매우 뚜렷한 장단점이 있고 어느 한 쪽이 완전히 다른 한 쪽을 제압할 수 있는 것이 아니다. 각 방법론의 장점을 모은다면 분명 나은 개발 환경을 만들 수 있을 것이다. 그런데 각 진영의 사람은 자신의 방식에만 너무 매몰되어있는지 서로의 장점을 잘 모은 도구가 나오지 않고 있다. 너무 아쉬울 뿐이다. 정말 나에게 무한한 시간과 돈이 있다면 소개한 BaKoMa TeX의 1인 개발자처럼 혼자서 Visual Studio + Makefile의 장점을 합친 개발 환경이나 만들고 싶다.
p.s. 윈도우에서의 추천 LaTeX 환경: MiKTeX (윈도우 용 LaTeX 배포) + TeXnicCenter (GUI 편집기) + Sumatra PDF (PDF 뷰어). (PDF 뷰어로 일반 Acrobat을 쓰면 매우 불편한 점이 있다. 편집 중인 PDF가 아크로뱃이 열고 있는 도중에 재컴파일을 하면 아크로뱃은 다시 로딩을 하지 못하거나 컴파일 자체가 잠겨있는 파일이라고 안 된다. 반면, Sumatra PDF 뷰어는 공유 모드로 파일을 읽어서 자동 갱신이 되어 LaTeX 작업에 안성맞춤.)
최근 등록된 덧글
워드의 docx, 파워포인트..
by 나인테일 at 05/19 쓸 때마다, '차라리 이런 게.. by Raymundo at 05/18 LaTeX 쓰면서 ”.toc나 *.. by 아라크넹 at 05/18 지금 회사 전산팀에 있을대 .. by 김아람 at 05/18 TeXworks, TeXstudio .. by 김민장 at 05/18 LyX가 위지위그 스타일이라.. by 김민장 at 05/18 LyX는 어떤가요? 요즘 공.. by 길가던 공대생 at 05/18 얼마전에 KTUG에서 ko.t.. by 死海文書 at 05/17 최근 등록된 트랙백
메뉴릿
이글루 파인더
|