이미 오래 전에 LaTeX에서 새로 나온 xparse 패키지를 쓰라는 말을 들었다. 이와 함께 expl3인가 하는 것도 있다. 노바 데히님도 호제님도 이를 공부해서 좋은 매크로들을 만들고 있는데 나는 게을러서 읽어볼 엄두도 나지 않았다. 며칠 전에 호제님이 다시 이의 장점을 말씀하셔서 큰 맘 먹고 (매뉴얼은 안 쳐다보고) 이에 대한 간략한 소개 아티클을 찾아 읽었다. 좀 복잡하지만 쓸모도 있는 명령들을 주었기에 그 소개 아티클을 따라서 우리말로 설명을 만들어 보았다. 자주 쓰게 될지는 모르지만 잘 쓰게 된다면 좋겠다.


설명서는 LaTeX으로 편집해서 pdf 파일로 올려놓는다.


xparse_intro.pdf


블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,

이 글에 후속 글 (2)가 있을지 잘 모르겠다. 하지만 우선 붙여 둔다.


오래 동안 조금씩 문서를 만들어야 하는 직업에서 일하면서 여러 가지 에디터나 워드프로세서를 써 봤다. (최소한으로 줄이려고 노력해서 대놓고 쓴 것은 몇 안 되지만...) 내가 에디터를 쓰는 이유는 창작이 주가 아니라 편집이 주된 목적이다. 다시 말하면 내용이 있는 긴 글들 만드는 것이 목적이 아니라 글은 (머리 속에서라도) 대충 만들어져 있는데 이것을 보기 좋게 뽑고 싶은 것이다. 창작글을 쓰는 것을 생각한다면 여기의 논의는 별 관련이 없다. 누군가가 Scrivener 같은 앱을 소개하는 사이트를 보면 좋을 것이다.


내가 만드는 문서는 대부분 짧다 길어야 10쪽를 넘지 않는다. (아주 예외적으로 오래 걸려서 만든 논문 같으면 20쪽 이상 되기도 한다.) 보통 시험 문제지, 간단한 정리 노트 등으로 보기 좋게 만들거나 적절한 배치가 필요한 경우이다. 하지만 분야 특성상 수식이 많이 들어가는 편이다.



이미 예전부터 모든 사람이 이야기하는 것처럼 삶이 편안하려면 욕심을 버린다. 예쁜 문서나 내 머릿속에 있는 바로 그런 문서를 만드는 것은 포기한다. 문서 작성의 방법을 조금 보다 보면 이 대부분의 상황을 보편적인 기호와 편집으로 대신할 수 있다는 것을 안다. (그러니까 옛날 사람들도 표현하고 싶었던 것은 똑같고 단순한 편집방식 만으로 이를 표현하는 방법을 다 만들어 두었다. 심지어는 동양에서도 책을 만드는 방식은 매우 단순하게 복잡한 것을 표현한다.)


이것이 tex이다. 표현하고 싶어하는 것을 문서 형태로 표현하는 모든 방법을 명령으로 정리한 것이고, 실제로 대단히 많지도 않다. LaTeX이나 memoir의 대부분의 명령은 역시 표현 도구라기 보다는 디자인 도구이다. 이것을 다 버리고 최소한으로 살자는 것이 내가 알게 되었던 방법이다. 꼭 써야 할 것에는 다음과 같은 것이 있다. (1) 장절 구분, (2) 수식, (3) 글꼴의 스타일, (4) 리스트 (번호매기기나 불릿), (5) 인용문 (들여쓰기), (6) 그림 넣기, (7) 도표 그리기, (8) 링크 걸기, (9) 각주 붙이기 (10) 코드 삽입 정도.



몇년 전에 도은아빠가 알려준 Scrivener와 mmd는 이에 딱이다. 위에 말한 것처럼 내용 많고 복잡한 글을 쓰는 데는 Scrivener가 딱이지만 나는 이런 글 별로 안 쓴다. 주장이 딱 하나인 것만 쓰니까 이 앱은 별로 쓰게 안 된다. (나중에 소설이나 쓰면 혹시...) 하지만 MarkDown(md) 기법은 위의 사항 중에 수식 정도를 빼면 모든 것을 거의 아무 일도 안 하고 할 수 있다. 나중에 좋은 output을 위해서 md 문서를 tex으로 바꿀 수 있게 되어 있고 이것은 아주 조금 더 발전된 MultiMarkDown(mmd)이란 것을 쓰면 된다. mmd를 쓰면 위의 모든 것을 손쉽게 만들고, 간단히 pdf, html, epub 정도로 저장할 수 있고, 필요하면 한번에 tex으로 바꿔서 멋진 pdf 문서로 만들 수도 있다. 책 수준까지도 장절을 모두 나눌 수 있으니까... md나 mmd란 것은 웹상에서 wiki라는 페이지를 만드는 문법을 거의 그대로 차용하고 있다고 보면 되고 배우기도 아주 쉽다. tex이나 하안글에서 뭔가 하는 것보다는 정말 쉽고 직관적이고 그리고 txt 파일로 아무 포맷 없이 저장하게 된다.


최근에 간단히 만드는 문서는 대부분 이렇게 만들어봤다. 시간도 절약되고 머리도 복잡하지 않다. 내 컴 사양은 몇년 된 MBAir이고 그 위에 TextMate+Marked2로 작성하며 이 상태에서 pdf로 저장하기도 하고 mmd2tex이라는 Fletcher씨가 만들어놓은 명령어로 바로 latex으로 전환한다. 이 모든 것은 도은아빠가 최적화된 방식을 찾고 한글을 넣을 수 있게 조금 modify한 버젼이다. 인터넷을 뒤지면 이것은 올라와 있다. (어디있지?) 이렇게 되면서 내가 쓰게 되는 텍 명령어는 정말 줄어들었다. 수식도 그대로 \\(, \\) 사이에 쓰면 되고 아주 가끔 noindent 정도의 명령이나 vskip 정도를 넣어주면 아주 근사한 문서가 생긴다. mmd가 Scrivener처럼 config 파일을 하나 두고 이 속에 코드 변환 사전을 넣어서 자동으로 변환시켜주게 하는 기능이 생기면 Scrivener는 거의 완전히 필요 없을 것이고 텍도 자유자재가 될 것 같다는 생각이 든다.

블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,

이 글은 며칠 전에 hoze님이 ktug 게시판에 써 주신 글을 보고 적어둔다.


신기술 전파(Diffusion of Innovations)에 대한 이론이 있는가 보다. 깊이 있는 이론이라기보다는 사람들의 성향을 분석하는 지표 정도의 이야기 같기도 하지만 쓸모 있어 보인다. 특히 여러 종류의 사람들이 섞여 있는 사회에서 이런 지표를 가지고 있는 것이 편리하겠다 싶다. 간단히 분류 내용만 정리해 둔다. 이미 hoze님의 글에서 TeX을 사용하는 마음가짐으로 이 분류를 적용해 보셨다. 이것은 위의 링크를 따라가서 보시고 여기서는 원래 분류를 어떤 사이트에서 정의를 옮겨 놓은 것을 간단히 번역해 둔다.


'신기술 전파'라고 하는 말은 내가 쓴 것이고 우리 위키피디아에서는 '혁신의 전파'라는 말을 쓰고 있다. 


우선 이 이론은 시장(market)에서 고객이 새로운 제품을 받아들이는 자세나 정도의 차이를 가지고 구별한 것이다. 따라서 신기술을 적용한 제품이 시장에서 퍼져나가는 것은 단순한 통로를 따르는 것이 아니라 반복되고 서로 겹치는 물결처럼 퍼진다는 이론이다. 이 신기술 제품의 전파 속에서 대부분의 사람들은 다음과 같은 패턴을 보인다: 혁신가(innovator, 2.5%), 얼리 어답터(Early Adopter, 13.5%), 초기 다수자(Early Majority, 34%), 후기 다수자(Late Majority, 34%), 늦깍이(Laggards, 16%). (이것은 한국어 위키피디아의 번역어를 따랐다.) 즉 전체 분포를 표준편차를 경계로 나눈 것이라고 할 수 있다.


혁신가: 혁신가 집단은 새로운 아이디어나 이런 것이 들어간 상품을 맨 먼저 사용해 보는 집단으로 그 수는 매우 적다. 이런 집단의 특징은 도시 중심이고 위험부담을 견뎌낼 자금력이 있으며 변화와 새로운 경험하기를 좋아한다. 이들은 이런 상품에 대한 정보를 얻을 수 있는 정보 창구를 많이 가지고 있다.


얼리 어답터: 혁신가에 이어서 새로운 아이디어나 상품을 사용해보는 비교적 적은 수의 집단이다. 이들은 자신의 직감이나 선견지명에 의지하여 조심스럽게 상품을 선택한다. 이들의 교육수준은 평균 이상이며 이들의 마음을 끌 수 있어야 상품이 성공할 수 있다.


초기 다수자: 이 집단은 대체적으로 새로운 아이디어나 상품을 사용해 보는 다수집단이다. 이 집단 사람들은 보통 이러한 새로운 상품이 실제로 쓸모있게 사용되는지를 확인한 다음에 이를 사용한다. 이 집단 사람들은 혁신자나 얼리 어답터에 비하여 교육수준이 낮으며 사회적 이동성이 적다.


후기 다수자: 이 집단은 새로운 아이디어나 상품을 사용해보는 데서 비교적 소극적인 다수집단이다. 이 집단 사람들은 앞의 집단보다 나이가 더 들었고 교육수준은 더 낮다. 그리고 경제적으로도 평균 이하의 수준에 있기 쉽다. 따라서 새로운 아이디어는 꼭 써야 할 상황이 아니면 안 쓴다. 이 집단은 선전/광고에 별로 영향을 받지 않으며, 주로 친구/이웃의 추천에 의존해서 결정한다.


늦깍이: 이 집단은 가장 늦게 새로운 아이디어에 접하는 집단이다. 이 집단 사람들은 대부분 고령자이며 겅제적 수준도 낮다. 이 집단은 친구/이웃이 거의 유일한 정보 창구이다. 이들은 자신이 꼭 사용해야 할 상황이 하니면 새로운 아이디어를 받아들이려고 하지 않는다.


이러한 분류는 당연히 개략적 분류일 뿐이다. 아래로 내려올수록 경제적으로 낮은 수준에 있다거나 교육적 수준이 낮다는 것도 전체적인 경향일 뿐 개인에 바로 적용되지는 않는다. 그러나 전반적으로 이러한 경향에 놓일 수 밖에 없다는 것도 이해된다.










블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,

우리나라에는 TeX 학회가 있다. 아마 전 세계에 TeX 학회가 있는 나라는 별로 많지 않을 것이다. 이 학회는 매우 부지런해서 다른 학회 수백명의 active한 회원을 가지고도 하지 못하는 일을 한손가락 꼽을 active 임원들만 가지고 모두 다 한다. 최근 10년 동안 해 놓은 일만 보아도 입이 벌어진다고 하지 않을 수 없고, 이 일이 모두 다른 사람들에게 정말 큰 도움이 되는 일이라는 점은 다른 학회와도 많이 다르다.


이 학회는 매 년 학술대회 말고 문서작성 워크숍이라는 것을 연다. 대략 이맘때쯤 하는데 근래에는 대부분 공주대학교에서 열렸다. 전 회장님이 공주대학교에 계시는 관계로 계속해서 이 대학의 지원을 받게 된듯하다. 이 모임은 누구나 참석할 수 있도록 열린 워크숍이다. 하지만 열성 팬이 아니면 별로 참석하지 않는다. 나도 몇 번 이 모임에 참석하였다. 올해도 이 모임이 11월 9일에 공주대학교 구내 백제교육문화관이라는 삐까번쩍한 건물 국제회의실 205호에서 열렸다. 


요즘이 단풍철 막바지란 것을 생각지 않고 2시간 잡고 고속버스를 탔더니 고속도로 버스전용차로가 다 막혀서 같이 서 있어보기는 처음이다. 결국 2시간 30분이 좀 더 걸렸고 강의를 1개 반을 놓쳤다.


이 모임의 후기는 안그래도 "날쌘" Progress 님의 후기가 모든 것을 요약하고 있고 홍페이지에서 내가 찍어 올린 동영상을 보면서 올라와 있는 자료들을 함께 보면 (앞의 한 개 반을 빼고는) 대략 무슨 일이 있었는지 짐작할 수 있을 것이므로 따로 적지는 않는다. 아쉬웠던 점이 있다면 가장 중요한 역할을 하시는 분의 하나인 DeHi님 얼굴을 보지 못한 것 정도...


단지 한 가지 새로운 소식은 이제 한글 TeX인 ko.TeX이 세계 2대 TeX Distribution인 MikTeX과 TeX Live에 모두 탑재가 되었다는 사실이다. 그러니까 이제는 아무데서나 이 대표적인 텍을 (full로) 깔고나면 그 순간에 한글로 컴파일할 수 있다는 말이다. 그리고 업데이트도 바로바로 될 것이다. 이제는 (서양에서는 아니겠지만) unicode가 널리(?) 사용된지도 몇 년 지났고 XeTeX도 제 자리를 잡아가고 있으니 (이제는 pdfLaTeX과 크게 차이도 안나고 에러도 거의 없다.) TeX의 발전이 눈부시다고 하겠다.


초창기의 plain TeX과 여기에 amsppt를 얹어 쓰던 시절에서 LaTeX이 나와서 오랜 동안 TeX계를 평정했는데... 그리고 이 동안에 여러 형태의 한글 텍이 자리를 바꾸었는데 이 모든 것이 모이고 수정되어서, TeX의 새로운 지평을 열게 된 Xe(La)TeX과 Lua(La)TeX에 맞추어졌으니까 한글 사용자로서는 더 바랄 것이 없어보인다. 이제는 한글을 모두 찍을 수 있을 뿐만 아니라 옛한글도 다 찍을 수 있고 동양에서는 한자도 대략 6만자 정도를 감당할 수 있는 상태가 되었고, XeTeX 등이 중국 글꼴을 사용할 수 있게 하여주므로 글꼴이 모자라 한자 자리가 비어 나오거나 하는 것도 이제는 옛말이 되어 간다.


위의 홈페이지의 사진에 얼굴이 비친 많은 분들은 (나는 물론 빼고) 모두 이 TeX의 역사에 초석을 놓은 그리고 지금도 놓고 있는 분들이라고 하겠다. 이분들의 노고에 답하는 것은 KTUG 홈페이지에 열심히 *제대로된* 질문하는 것? 특히 형식을 갖추어 (테스트 파일을 첨부하여) 질문하는 것이 첫번째일 듯하다.


블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,

TeX 초보자의 경험 (1)

TeX 2011. 11. 19. 16:34
TeX을 사용하는 초보자로서 KTUG 홈페이지에 올라오는 질문 가운데 몇 가지에 대한 조언이랄까 아니면 경험담을 적어둔다.

TeX의 초보자가 자주 경험하는 것은 남이 만든 파일의 preamble을 그냥 가져다가 쓰는 것이다. TeX에서 사람들이 만든 (특히 가져다 쓸만한) preamble은 오랜 시간을 걸쳐서 만들었다는 것이다. (혹시 금방 만들었더라도 오랜 경험의 산물이다.) 그러니까 몇 줄 안되는거 같지만 실제는 많은 노하우가 집약되어 있는 것이고 사실 잘 들여다봐야 하는 것이다.

나를 위시하여 많은 사람들이 다른 사람의 preamble을 받아다 쓰면서도 그렇게 만든 이유를 생각해보지 않는다. 이럴 경우에는 적어도 그 preamble의 명령이 내 마음에 들지 않는 식으로 작동하더라도 불평할 수 없다. 그런데 정말 원하지 않는 feature가 있어서 바꾸고 싶으면 어찌 하는가? 물론 만든 사람에게 물어보던가 잘 아는 사람에게 물어보면 된다. 

그러나 이런 식으로는 근본적인 문제를 해결할 수는 없다. 단 한번만 쓸 것이라면 그 내용을 몰라도 되지만 계속해서 사용하는 것이라면 공부해서 알아내는 것이 자신을 위해서도 매우 효율적인 일이 된다. 내가 TeX의 여러 명령어를 배워 쓰는 일이 많지 않으므로 새로운 것을 배워도 잘 기억하지 못한다. 그래도 명령어 작동법을 기회날 때마다 생각해 두면 잘 모르는 새로운 상황에서도 비교적 쉽게 타개해 나갈 수 있다. 다음은 너무나 당연한 것이지만 조금 귀찮아도 꼭 해 두어야 할 것이다.

자신이 얻은 preamble이 있으면, 그리고 이것에서 몇 가지를 고치고 싶은데 어떤 생각으로 만든 것인지 잘 모른다면, 또는 고치고 싶은 feature가 어느 명령에서 생기는지 전혀 감을 잡을 수 없다면 어찌할 것인가? 

우선은 document 부분은 간단히, 내가 원하는 feature가 나타나는 부분만을 남기고 다른 부분을 지운다. (물론 새 파일로 복사해서 시작한다.) 그런 다음 이 파일에서 preamble을 전부 comment out 한다. (%를 붙인다.) 그리고 나서 하나씩 %를 지우며 살려나간다. 찾는 것만이 목적이라면 물론 반만 comment out하고 시행해서 어느쪽 반에 그 feature에 대한 명령이 있는지를 찾는다. 그리고 그쪽 반에서 또 반만 comment out 하고 컴파일 하는 식으로 좁혀나간다.

특히 옵션이 있는 경우 옵션을 하나씩 살려가면서 어느 옵션이 그 feature를 activate하는지를 찾는다. 이 때 한 style이나 class에 옵션이 많다면 옵션 하나가 한 줄을 차지하도록 줄을 바꾸어 나타낸 후 각 줄에 %를 붙였다 떼었다 하는 것이 능률적이다. %를 자리를 맞추어 직접 치는 것보다는 그 문단 앞에 붙이고 떼는 명령(맥이라면 cmd+shift+{, cmd+shift+} 명령 등)을 사용하는 것이 쉽다. (마우스를 쓰지 않고 커서와 명령으로 된다.)

이런 식으로 분석해 보고 그 명령이나 옵션이 무슨 뜻인지를 매뉴얼에서 찾아보면 차츰 style파일을 만든 사람들이 어떤 생각을 하고 있는지에 대한 감이 조금은 생긴다. 젊은 사람이고 조금 자주 쓰는 사람이라면 이렇게만 해도 텍의 언어를 배울 수 있을 것이다. 나이가 들고 명령어를 자주 공부해 쓰지 않는 나 같은 사람에게는 그냥 감을 키우는 수준이지만...

조금 언어에 눈썰미가 있는 사람이면 도사급으로 발돋움하는 것이 어렵지 않을 것이다. 설마 이렇게 되면 남을 도와줘야 해서 안한다는 사람은 없겠지... 
 
블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,
일전에 박교수님의 이야기도 있었고, 안그래도 요즈음의 이과, 특히 수학과의 상황은 논문을 쓰라는 위로 부터의 압박으로 교수, 학생 모두 논문 밖에는 생각을 못하다 보니 교육이 어찌어찌 뒷전이다. 한 번 제대로 조사해 봐야 하겠지만, 요즈음에 쓰여진(written) 수학과 학부/대학원 교과서는 미적분과 선형대수 정도의 수준을 넘어서는 거의 만들어지는 것이 없는 것같다. 이것은 50년 전에 우리 선생님들이 젊던 시절에 나온 고급 교과서들과 비교해 보면 수학자의 수는 20배 이상 늘었는데도 교과서는 오히려 줄어들었다는 느낌을 감출 수 없다. 아마도 이런 추세가 계속되면 분명히 학부 교육은 물론 대학원 기초과목도 퇴보하지 말란 법이 없다.

이런 젼차로 어린 수학자를 어였비 녀겨 교과서를 만들 계획을 가지고 우선 교과서를 쓰는 좋은 포맷을 개발해야겠다는 생각에서 이런 방면의 전문가인 조모 교수님께 TeX으로 쓰는 강의록 class의 개발을 부탁했다. 이것이 만들어지면 내적, 외적으로 수준 급의 강의록이 만들어질 수 있는 기틀이 잡힌다고도 하겠다.

그런데 이 class 개발이 사실 쉬운 일이 아니다. 그냥 amsbook 스타일 정도를 쓰는 우리지만 이보다 조금 나아 보이는 클래스를 개발한다는 것은 사실 생각보다 어려운 일이다. TeX의 달인 조교수님에게도 쉽지 않은 일인 듯, 이 말씀을 드린지 시일이 조금 되었는데 아직 아이디어에 대한 말씀도 없으시니... 이번 학기 말까지만 만들어져도 충분한 일이지만 나이가 들다 보니 조급함도 같이 늘어서 부탁하고 며칠 안되어서 다시 말해볼까 하는 마음이 들지만... 결국 해 주기만 한다면 뭐 시간은 얼마든지 있는 일이어서 포기하시지만 말라는 뜻으로 여기 적어 둔다.

도은아빠도 이 일에 비슷한 정도로 관심을 가지고 계시니 두 분이 함께 논의하면 대단한 작품이 나올지도 모르겠다는 희망이 보인다. 우리글로 책을 쓸 때 일본 책에 비하여 깔끔함이 떨어지는 것이 우리글의 띄어쓰기에 기인하는 것 같다는 분석도 하신다. 그럼에도 불구하고 우리말은 한자보다는 간단하고 일본어보다는 복잡한 형태의 중간적인 입장이므로 좋은 해결책이 있지 않을까 하는 생각도 해본다. 

혹시 띄어쓰기를 없애는 방법은 없을지도 생각해본다. 우리 할머니가 한글을 쓰실 때는 띄어쓰기는 없었다. 그래도 읽는데는 큰 문제가 없었고 지금도 조금만 익숙해지면 괜찮지 않을까? (우리할머니한글쓰실때띄어쓰기없었다. 그래읽는큰문제없었지금조금만익숙해지면괜찮않을까?)

블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,
최근에 웹페이지에 수식을 표현해주는 방식에 변화가 생겼다.
지금까지 내가 사용했던 방법은 시스템에 \( \rm\TeX \)이 깔려있는 데에 위키를 설치하고 거기서 \( \rm \LaTeX \) 이 가능하도록 하는 것이었다.

그런데 MathJax라는 것이 생겼네...

어떤 친구가 html(?) 안에서도 글꼴의 위치를 잡아주고 글꼴을 원격으로 받아오는 Java script를 만들어서 텍의 명령을 알아듣도록 해준 것이다.

우선 춉 사부의 가이드를 따라 이 스킨의 head에 한 줄을 첨가하고 돌려본다. (사부의 페이지 링크: http://chof.tistory.com/1 )

다음 수식이 제대로 보이면 성공하는 것이다. 수식때문에 wordpress의 블로그로 옮길까 하는 것을, 전혀 심각하지 않게(!), 고려하고 있었지만 이대로 잘 된다면 티스토리도 괜찮지 뭐...

수식 테스트

\[ \int_{\Omega} d\omega = \int_{\partial\Omega} \omega \] 

스토크스의 공식.


블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,

HTeX 1.5와 그 이전

TeX 2009. 12. 2. 07:54
예전 TeX에 대하여 도은아빠께서 정리하시는 내용의 글을 읽고 예전 파일을 찾아보았다.
HTeX이 사용되던 시절의 파일은 하드 하나를 없애버려서 거의 가지고 있지 않다.
그러나 이곳 저곳에 복사하여 놓은 것들 가운데 하나를 발견하였다. 파일은 복사하느라고 99년도 날자를 가지고 있지만 실제로 컴파일하여 본 것은 92년도 3월 14일이다. 아마 새학기 강의용으로 만들었던 파일인 것 같은데 한글 코드가 달라서 지금 당장 열리지는 않는다. 단지 log 파일을 읽어보고 92년도의 파일임을 알 수 있다. 도은아빠가 예전 파일을 컴파일할 수 있게 해 보고 있었으니까 혹시 주면 좋아할런지 모르겠다. 내용을 확인하고 주어도 주어야 할텐데...

어쨌든 컴파일 log를 여기 올려둔다. 당시 것은 이렇게 간단했는데...


PS: 그 사이에 도은아빠가 예전 파일을 kotex에서 돌아가게 고쳐놓았다. 예전 명령들은 \let 명령으로 간단하게 지금 latex에서 돌아가도록 고쳤는데 이것을 보니 예전 amsppt용 파일들을 고치는 것이 별로 어렵지 않겠다는 생각이 든다. 별로 남아있지는 않지만 이런 파일들을 고치는 방법을 정리해 둘 필요는 있어보인다. 어느 책을 보면 되는 것인가?
블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,
TeX을 사용하며 될 수 있으면 이것을 권하는 사람이면서도 마음 한 구석에는 조금 찜찜한 점이 있다. 처음 TeX을 사용하기 시작할 때는 호기심이 컸었고, 조금 사용해 보면서 그 장점에 눈이 떠졌지만 오래 보면 역시 프로그램이란 것은 거기서 거기라는 느낌이 아주 없는 것은 아니다.

도은아빠의 커멘트에 따라 LaTeX documents that endure라는 글을 대충 훑어 보았다. 어느 정도 TeX을 사용해본 사람들이면 이 글에 지적된 것을 느끼고 있었을 것이다. 우리 나라의 자랑스런 대표 프로그램인 하안글을 잘 사용하고 있으면서도 될 수 있으면 TeX을 사용하도록 권하는 이유는 작성한 문서가 얼마나 오래동안 사용가능한가 하는 문제 때문이다. 하안글의 가장 못한 점 그리고 일반 워드의 단점이 프로그램이 버젼업 되면 예전에 작성한 파일을 제대로 보여주지 못한다는 것이다.

TeX도 이런 점을 가지고 있다. TeX의 장점 가운데 하나가 오래 전 파일도 그대로(?) 쓸 수 있다는 것이라고 주장하면서도 이것은 정확한 말은 아니라고 해야 하는 것이 실정이다. TeX 파일도 오래 되면 컴파일이 안된다는 것은 조금 사용해본 사람이면 모두 알 것이다. 그래도 여기에 TeX의 장점이 있는가?

TeX은 과연 오래된 파일도 컴파일할 수 있는 시스템을 향하여 가고 있는가?

이것은 그렇기도 하고 아니기도 하다. 맨 처음에 Knuth가 TeX을 만들 당시에는 당연히 이런 생각을 했을 것이다. 그러나 그가 프로그램을 너무 잘 만든 나머지 세상 사람들 너도 나도 macro를 만들기 시작하면서 이 가능성은 희박해지기 시작하였고, TeX 프로그램 자체도 여러 형태로 변형되어 컴파일되면서부터는 아마 전혀 다른 이야기가 되고 있다고 생각된다. 역시 소스를 공개하고 나면 원래의 의도를 지켜주는가는 남들의 몫이다.

문제가 어디에 있는가 하면 TeX의 macro를 작성하는 사람들이 TeX의 변화에 맞추어 macro를 보완해주지도 못하고 변화하는 TeX과 independent하도록 처음부터 완벽한 macro(그런 것은 없을지도 모르지만)를 만들어 주지도 못하는 데 있다.

그러면 무엇이 TeX의 장점인가?

그럼에도 불구하고 TeX을 권하는 데는 몇 가지 점이 있겠다.
  1. 우선 아무리 오래되어도 TeX파일 editing이 불가능하지는 않다. code가 바뀌어도 convert정도는 할 수 있다. 이것은 새 프로그램으로는 열어보아도 알아볼 수 없는 부분이 많은 다른 워드와는 확연히 다른 점이다.
  2. 또 하나는 적어도 기본으로 작성되어 있는 수식 부분은 아무리 오래되어도 사용이 가능하다는 사실이다. 이것은 아마도 Knuth가 처음에 수식에 관한한 거의 완벽한 시스템을 구축한 덕일지도 모른다.
  3. 그리고 또 하나는 보수적인 관점에서는 TeX document를 거의 영구적으로 사용하도록 할 수 있다는 것이다. 이에 대하여 생각해 보자.
오래 사용할 수 있는 TeX 파일

TeX의 장점은 document를 만드는데 분업의 개념을 도입하고 있다는 것이다. 즉 식자, 조판은 engine이 나중에 따로 해 주고, editting 시에는 formatting이 없는 기본 editor를 사용한다. 또 하나는 formatting과 관련된 부분은 명령어를 사용하며 이의 정의는 macro에 따로 저장되어 있다는 것이다. 그러니까 이 세 부분이 모두 똑같으면 TeX document는 계속 사용가능하다는 말이다.

우선 나한테서 가장 먼데 있는 TeX engine은 변한다. 이것은 내가 어쩔 수 없다 하여도 적어도 예전의 기본 명령들은 그대로 유지되도록 노력하고 있다고 생각한다. LaTeX 2.09인가에서 LaTeX2e으로 넘어올 때, 그리고 amstex의 초기 명령 스타일에서 ams+latex꼴의 environment로 넘어올 때 크게 변하기는 했지만 이런 기본 매크로들은 꽤 오래 동안 기본을 지킨다. 이보다 더 밑의 engine은 글쎄 나는 모른다. 조금씩의 차이를 경험하기는 했지만 모양이 조금 달리 나오는 것은 상관없다. 어차피 이것은 기대하지 않으니까. 안되지만 않으면 된다. 이에 더해서 engine의 개수도 많이 늘어났다. 나는 거의 기본 TeX engine을 쓴다고 생각했지만 요즘 기본은 내 생각과는 상관 없이 pdftex이 사용되고 있다. 조만간에 XeTeX 계열을 사용하는 일이 늘어날 것 같다고도 생각된다.

나한테 가장 가까운 document 파일은 이미 만들어졌고 변하지 않는다. 하지만 문제는 이 document를 사용하는 환경이 변한다. 한글 코드가 변하고 저장매체가 변하고 하는 것은 내가 최대한 따라가야 하는 문제이고 이것 때문에 어찌 잘 안된다는 것은 다른 방법이 없다.

가장 문제가 되는 부분은 중간 매크로이다. 기본 매크로 위에서 돌아가는 자잘한 매크로들은 처음에는 별로 사용하지 않았다. preamble이 불과 세 줄 정도이던 적이 얼마 안 되었는데... 지금은 수십줄은 기본이다. 물론 예전에도 내가 shortcut으로 만들어 쓰는 newcommand들이 있었지만... 이 중간매크로는 여러 종류가 있어서 어떤 것은 꽤 오래 동안 작동이 크게 변치 않고 안정적이어서 믿고 쓸만 하지만 어떤 것은 금방 개발이 중단되고 해서 조금 지나면 사용 불가능한 경우도 많다. 아마도 이 부분이 가장 문제가 되는 부분이리라.

해결책은?

해결책은 물론 없다는 것이 눈에 보인다. 위의 세 가지 부분에서 나에게서 먼 부분들은 내가 손댈 수 없는 부분이고 문제의 대부분은 이곳에서 생기기 때문이다. 그래도 내가 조정할 수 있는 부분은 있다. 중간 매크로들을 사용할 것인가 말 것인가는 내가 정하는 것이기 때문이다. 이를 위해서는 필수적으로 욕심을 버려야 한다. TeX의 기본 철학 가운데 하나가 조판이 어떻게 되는가는 신경쓰지 말고 내용을 적는 것에 all-in 하라는 말을 되새기며, TeX의 기본 매크로에서 크게 벗어나지 않는 것만 사용한다는 자세는 나의 document를 가장 오래 사용가능하도록 하는 방법이다. 이상한 매크로를 사용한 독톡한 기호나 format을 포기하면 TeX이 아무리 변해도 이 기본들은 지켜줄 것이기 때문이다.
혹시 environment라는 개념이 변해도 아마 LaTeX3가 나올 때쯤이면 LaTeX2e의 기본적인 명령어들을 LaTeX3 또는 그 차세대 형식으로 자동변환하는 프로그램쯤은 만들어지지 않을까 생각하면 아마도 영구적인 document가 될 것이라는 바램도 있다.

그래도 사용하지 않으면 안 되는 매크로들이 몇 있다.
graphicx라든가 hyperref 쯤은 있으면 좋겠고 이런 것은 매크로에서 벗어나서 standardize된 다음 LaTeX 안에 들어가버리면 좋겠다. \maketitle처럼 \makehyperref 한 명령으로 끝나버리게...

수식이나 본문 글꼴을 변경하는 pxfont와 같은 매크로는 사용해도 괜찮다고 본다. 어차피 문제가 생기면 이 명령 하나만 comment out하면 문제가 하나도 없을 것이니까.

완벽한 책을 만들기 위한 수작업 수준의 많은 매크로들은 완벽한 책을 만들 때는 사용해야 하겠지만 이것은 일회성 document라고 보는 편이 속편할 것이다. 예전에도 한 번 식자한 판본을 나중에 다시 사용하기는 어려웠었고 단지 활자만 디시 사용할 수 있었던 것은 세상 일이 그런 식으로 돌아가기 때문인 것이니까...

내가 내 document에 사용한 여러 매크로들의 명령어들이 있어도 매크로는 빼버리고

\newcommand{\...}{}

를 추가함으로써 사용하지 않은 것으로 바꿀 수 있는 경우는 크게 걱정되지 않는다.


블로그 이미지

그로몹

운영자의 개인적 생각을 모아 두는 곳입니다.

,