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


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


xparse_intro.pdf


블로그 이미지

그로몹

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

,

우리나라에는 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을 사용하며 될 수 있으면 이것을 권하는 사람이면서도 마음 한 구석에는 조금 찜찜한 점이 있다. 처음 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{\...}{}

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


블로그 이미지

그로몹

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

,