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{\...}{}

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


블로그 이미지

그로몹

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

,