Contents
1. Introduction
1.1 Markdown을 사용한 문서 제작
Markdown은 매우 직관적으로 문서를 제작할 수 있어서 편하다. 많은 새로운 편집 툴들이 최근에 Markdown을 지원하기 시작했다. 그 이유는 GitHub 덕택으로 여기서 Markdown을 지원하면서 Markdown에 의한 문서 편집을 지워하기 시작했기 때문이다. 이것과 동시에 만일 Redmine에서 사용하고 있는 textile을 함께 사용할 수 있다면 큰 도움이 될 것으로 생각된다.
textile은 레드마인에서 사용되고 있는 Wiki 편집 툴이다. 물론 markdown도 Link Tool을 두고 있기 때문에 굳이 레드마인 없이 Apache 서버를 사용하여 만들 수도 있다. 게다가 markdown은 단순한 text 이므로 이를 사용하고 Open Document를 Pandoc을 사용하여 만들게 되면 쉽게 다른 문서들도 제작이 가능하다. 그러므로 앞으로는 markdown을 사용하여 여러가지 문서를 만들고자 한다.
2. Markdown 사용시 편리함
2.1 Text 파일의 이점
이는 단순한 textfile 이다. 따라서, 너무 쉽게 제작이 가능하다. 두번째는 Subversion 이나 Git을 사용하여 버전 관리가 매우 편리하다. 단순 text 이기 때문에 뭐가 변했는지 쉽게 알 수 있다.
2.2 HTML 파일 제작의 이점
HTML 파일이기 때문에 만일, Apache 서버 내에 내가 외부 발표 문서 환경을 구축하고 여기에 링크를 걸어 버리면 간단하게 외부 발표문서를 만들 수 있다. 무엇보다, 알 마인드와 같은 경우도 동일한 markdown을 사용하고 있기 때문에 HTML 로 발표자료를 만들 수 있다. 이 얼마나 편리한가 !!!
단순하게 스크롤만 계속하면 된다. 그리고 이중으로 HTML과 원본 파일을 띄운 다음 Subversion을 사용하여 데이터를 업데이트 하면 된다.
너무나 단순하고 쉽다.
2.3 수식제작의 이점
수식 제작에서도 이제 Latex 구문을 자유자재로 이용할 수 있다. 일단, 다음을 보자
$$ax^2 + bx + c = 0$$
Latex 구문이 그대로 먹는다. 오오. 다음의 Stochastic Differential 의 기본 구문을 살펴보자
$$df(X_{ t },t)=\frac { \partial f }{ \partial t } + \left( a(x,t)\frac { \partial f }{ \partial x } + \frac { 1 }{ 2 } \sigma^{ 2 } (x,t) \frac { \partial^{ 2 } f }{ \partial x^{ 2 } } \right) dt + \sigma (x,t)\frac { \partial f }{ \partial x } dW_{ t }$$
Google Chrome의 경우에는 Mathjax을 읽어 들일 수 있는 별도의 plug-in을 깔아주면 읽어 들일 수 있다. Firefox의 경우에는 최신 버전은 그냥 잘 읽어 들일 수 있다.
2.4 표 만들기
일단 다음의 데이터를 가져와서 표를 만든다고 가정하자.
| test1 | test 2 |
|--------|--------|
| 98 | 95 |
결론은 다음과 같다.
test1 | test 2 |
---|---|
98 | 95 |
좀 더 멋있게 표를 만들 수도 있다.
Contents | QP | |
---|---|---|
J01 | 22 | 43.5432 |
27 | 43.5432 | |
32 | 43.5432 | |
37 | 43.5432 |
굳이 많은 부분에 대하여 가로 줄로 구분을 가할 필요가 없다. CSV 파일이 잘 만들어졌을 경우 일반 text file에서 쉽표를 | 로 바꾸어 주기만 해도 된다.
2.5 그림 입력
그림 입력은 textile 과 유사하다.
2.6 PDF 변환
가장 좋은 방법은 html 파일을 보이는 그대로 PDF 인쇄 출력을 하는 것이다. 현재까지 가장 확실하며 좋은 방법이다. 일단, html 파일이 보이기 때문에 가장 쉽게 그리고 확실하게 pdf로 만드는 방법이다.
3. 다른 포맷과의 변환 결과
3.1 HTML이 기본
다른 어떤 포맷이라도 Markdown 원본을 변환 했을 때, HTML 만큼의 Quality가 나오는 경우는 없다. 결국, 기본적으로 Markdown 원본은 일단 HTML 로 변경 시키는 것이 가장 좋다. 따라서 본 하루패드를 비롯한 pandoc, 등의 Markdown용 Opensource Utility를 사용하여 파일 변환을 가져오는 것이 가장 좋다.
3.2 pandoc
Markdown이 널리 쓰이면서, 문서 파일 포맷간의 변환을 위하여 사용되는 Tool이 pandoc 이다. pandoc 을 사용하여 HTML 을 다른 문서 포맷으로 변환 시킬때 가장 Quality가 좋다.
3.3 HTML to MS docx
MicroSoft의 최긴 Word 포맷인 docx는 HTML 5 을 지원하는 매우 강력한 Word Processor 이다. 게다가 다른 오픈소스들과의 상생도 잘 되기 때문에 매우 높은 품질의 결과물이 나온다. 즉, HTML을 pandoc을 사용하여 변환 시킬 경우 가장 좋은 결과가 나온다. 단점은 수식이다. HTML에서 변경된 수식이 DOCX에서는 제대로 인식되지 못한다. 따라서 이 경우에는 MathML을 사용하여 다시 해당 수식을 일일이 가져다 붙여야 하는 번거로움이 있다.
3.4 HTML to LibreOffice ODT
Libre Office는 자체적인 완성도만 본다면 현재의 MS word 만큼이나 완성도가 뛰어난 훌륭한 Office 이다. 그러나, 문제는 여전히 MS word 보다는 완성도가 떨어지며 이러한 떨어지는 완성도를 Open Source를 통해 외부에서 만들어지는 확장 기능으로 버티고 있다는 점이다. 덕택에 pandoc으로 HTML을 만들고 이를 ODT로 변환했을 때 완성도가 높지 못하다. 이 점이 가장 안타깝다. HTML 자체를 읽어들일 경우는 원본 HTML 반큼이나 좋은 완성도를 보인다. 그러나 수식의 경우에는 다시 입력을 해야 하며 이 경우에는 MathML을 쓰는 것 보다 (Libre Office 에서의 MathML 지원이 MS 만큼 훌륭하지 못하다.) LaTeX 확장 수식 입력을 쓰는 것이 더 낫다.
더 큰 문제는 LibreOffice 에서 HTML을 읽어 들인 경우 이를 다시 ODT 로 만들 수 없다는 점이다. 결국 답은 HTML 로 만든 다음, pandoc을 통해 odt로 만드는 방법 뿐이며 MS DOCX와 같이 수식을 제대로 인식하지 못하므로 LibreOffice내의 LaTex 편집기를 사용하던가 (이 경우 PNG 포맷) 외부의 Latex 수식 편집 웹을 사용하여 SVG 를 읽어 들이던가 해야 한다.
3.5 HTML to HWP
모든 면에서 가장 좋지 않은 결과가 나왔다. pandoc 이 hwp를 지원하지 않기 때문에 HTML로 결과를 읽어들여야 했고 그 결과, 수식이 깨졌고 표가 깨진다. 결국 수식의 경우에는 그나마 LibreOffice처럼 SVG를 읽어 들이기 때문에 이걸로 대치할 수 있었고 기대했던 MathML 지원은 LibreOffice와 마찬가지로 MML 파일을 읽어 들이는 방식인데다 그나마도 제대로 되지 않았다.
이에 대해서는 한글과 컴퓨터측에 분명히 어떤 수정판을 요구하여야 할 것으로 생각된다. 전반적인 서식이나 스타일에서도 가장 좋지 않은 결과였다. 그러나 이런 결과는 사용자가 서식이나 스타일을 조금 손 보면 되는 수준이기 때문에 큰 하자라고 볼 수는 없다.