TeX2IDL : New Graphics 체계에 숨어 있는 유용한 수식변환기

IDL 8 버전이 나오면서 가장 큰 변화는 New Graphics 였고, 이는 Object Graphics를 기반으로 한다는 것이 근본적인 특징입니다. 그리고 Object Graphics는 True Type Font를 사용한다는 것이 큰 장점입니다. 

저는 개인적으로 Direct Graphics의 거의 유일한 단점이 구형 Vector Font에 최적화 되어 있다는 것이라고 생각합니다.
물론 Direct Graphics의 Vector Font를 Postscipt로 출력하면 매우 예쁘게 나오고요, Postscript 출력이라면 True Type Font로 최상의 품질로 뽑아 줍니다. 다만 Direct Graphics에서 화면에 뿌릴 때 True Type Font를 사용하면 외곽선이 아주 깨끗하게 나오지 않는 문제가 있습니다. 그래서 Direct Graphics에서 True Type Font를 사용하는 경우가 많지 않은 것이라고 생각합니다.
 Tex2IDL은 New Graphics와 함께 제공되는 함수입니다.
앞에 소개했던 TexToIDL 처럼 수식 입력을 위한 기호체계로 좀 더 편리하게(LaTeX 문법을 이용해서) 변환해 주는 함수라는 점에서 똑같은 목적을 가지고 있습니다. (관련글 : TexToIDL : IDL 그래픽 수학기호 (링크))
TeX2IDL은 New Graphics 체계에서 내부적으로 사용하기 위해 만든 함수이기 때문에, 공식 문서에는 등장하지 않는 함수입니다(물론 여러분의 IDL 8.x에는 이미 들어 있어요. 도움말에 없을 뿐입니다).
TeX2IDL에 대한 이야기를 시작합니다.  New Graphics에서는 이게 됩니다(관련글 : NG 체계에서의 특수문자 사용법 / 이상우의 IDL 블로그 (링크))

New Graphics에서 수식 입력 예 : IDL Online 도움말(Text 함수)에서

New Graphics에서 수식 입력 예 : IDL Online 도움말(Text 함수)에서

수식의 사용법에 대한 예제와 기호 참조표는 도움말에서 Text 함수를 찾아 보시면 되겠습니다.
New Graphics는 이렇게 자체적으로 LaTeX 형식의 수식을 지원합니다. 즉, $와 $ 사이에 수식 기호를 쓰면 되는데, 그 문법이 LaTeX를 흉내낸 거지요. 앞서 소개해 드렸던 TexToIDL을 쓰지 않아요. 내부에 TeX2IDL이라는 함수가 들어 있거든요. (공교롭게도 두 함수를 입으로 읽을 때는 대부분 똑같이 읽을 것 같습니다).
Tex2IDL의 목적이 사실 TexToIDL과 똑같습니다.
IDL> print, tex2idl(‘$\rho^{2\pi}$’)
!Mr!U2!Mp!N
IDL> pp=plot(indgen(10), title=’!Mr!U2!Mp!N’)
New Graphics에서도 Tex2IDL을 따로 한번 거쳐 사용할 수 있습니다. 일반적으로는 이렇게 쓸 필요가 없지만...

New Graphics에서도 Tex2IDL을 따로 한번 거쳐 사용할 수 있습니다. 일반적으로는 이렇게 쓸 필요가 없지만…

물론 New Graphics에서는 Tex2IDL 함수가 언급되지 않아도 $와 $ 사이에 있는 문자열은 자동으로 Tex2IDL을 거쳐서 처리합니다. 그래서 New Graphics 체계를 쓴다면 보통은 Tex2IDL의 존재도 알 필요 없고(공식적으로 쓰라고 제공되는 함수는 아니예요, 도움말에도 안나옵니다), 다음과 같이 사용하는 게 일반적입니다.
IDL> pp2=plot(indgen(10), title=’ABC $\rho^{2\pi}$ DEF’)
$와 $ 사이에 있는 기호만 수식으로 변환됩니다. ABC와 DEF는 그대로 나오죠.

$와 $ 사이에 있는 기호만 수식으로 변환됩니다. ABC와 DEF는 그대로 나오죠.

에이,… 그럼 TeX2IDL은 직접사용할 필요는 없는 거네요.
예, New Graphics를 쓴다면 그렇습니다. 그런데, TeX2IDL의 리턴값은 기존의 Object Graphics 체계에서도 사용할 수 있습니다. 심지어 Direct Graphics 에서도 쓸 수 있습니다. 그래서 소개해 드리는 거예요.
  • New Graphics와 iTools : $ $ 를 이용하면 자동으로 수식으로 처리합니다. 그래서 사실 Tex2IDL을 직접 쓸 필요는 없습니다. 물론 이 부분을 굳이 Tex2IDL로 따로 처리해도 됩니다.
  • Object Graphics와 Direct Graphics : Tex2IDL을 활용하여 수식을 쉽게 그래픽에 넣을 수 있습니다. 제약이 하나 있습니다. New Graphics나 Object Graphics는 True Type Font를 사용한다고 언급했지요? Tex2IDL의 리턴값은 True Type Font에만 적용되는 기호들입니다. Direct Graphics에 적용하고자 할 때는 꼭 True Type Font 설정을 해야 합니다(FONT=1).
Direct Graphics에서 다음과 같이 사용할 수 있지요.
IDL> plot, indgen(10), title=tex2idl(‘\rho^{2\pi}’), FONT=1
Direct Graphics에서는 꼭 FONT=1 설정을 해야 합니다. True Type Font를 의미합니다.

Direct Graphics에서는 꼭 FONT=1 설정을 해야 합니다. True Type Font를 의미합니다.

결론
앞에 소개했던 TexToIDL은 정말 편리한데, True Type Font는 지원하지 않거든요. True Type Font로 수식을 쓰고 싶다면, TeX2IDL을 사용하면 되겠습니다.
Tex2IDL(또는 New Graphics)에서 수식을 입력하는 예제와 참조표는 TEXT 함수의 도움말에 잘 정리되어 있습니다.

Tex2IDL(또는 New Graphics)에서 수식을 입력하는 예제와 참조표는 TEXT 함수의 도움말에 잘 정리되어 있습니다.

정리
TeX2IDL
  • IDL 8.x 이후 내장
  • True Type Font 전용
  • New Graphics 에서는 $$를 이용해 자동처리하므로 사실상 Tex2IDL을 직접 쓸 필요가 없음
TeXToIDL
  • IDL 5.x 부터 사용 가능(다운로드 받아 설치)
  • Vector Font, Hardware Font 전용
  • 참고링크 : http://idl.selab.re.kr/?p=1804