| 2006-06-10, 07:41 PM | #1 |
|
Senior Member
![]() ![]() Registered: Mar 2005
My Mac: ibook G4 1.2 GH, 12 inch, 1.2Gb Ram / Macbook core 2 Duo 2.0, 2.0 Gb Ram / iPod touch 8 Gb
Posts: 403
오프라인
|
제가 맥에서 가장 많이 사용하는 프로그램 중의 하나가
바로 Texshop 이라는 LaTeX를 사용할 수 있도록 터미널을 제공하는 프로그램입니다. LaTeX가 모하는 프로그램이냐하면, 일종의 워드프로세서입니다. 다만 보통의 워드프로세서와는 다르게, 코드를 짜서 즉 마우스를 쓰거나 한글처럼 아이콘을 클릭할 필요 없이 모든 것을 키보드로 할 수 있다는 장점이자 단점이 존재하는 프로그램입니다. 그럼 왜 이런 프로그램을 사용하냐하면, 수식을 적을때 상당히 편리하고,, 또, 문서의 형식이나 틀이 딱 정해져 있으므로, 그와 비슷한 유형의 새로운 문서를 만들 때마다 보통의 워드프로세서 처럼 일일이 틀이나 형식을 만들기 위해 조작할 필요가 없다는 겁니다. 물론 제가 틀을 정하는게 아니므로, 수식이나 문서모양이 상당히 이쁘게 잘 나옵니다. 그리고 무엇보다 좋은 점은 공짜라는 것이지요,, 누구나 원하기만 하면 다운받아서 사용할 수 있습니다. -------------------------------- 아무튼 서론이 무척이나 길어졌는데, 제가 며칠전에 LaTeX 작업을 하면서 이상한 현상을 발견했습니다. 그래서 texshop 개발자에게 메일을 보냈는데, 메일을 보고나서 너무 황당하고 재미가 있어서, 응용프로그램 란이 아닌 maclife 란에다가 글을 쓰게 되었습니다. 즉 진짜 버그를 발견한 것이 아니라, 우연한 버그를 발견한 것이지요, texshop 을 사용하시는 분들이 한번 쯤 이 글을 보신다면, 나름대로 유용한 정보를 얻을 수 있을거라고 판단됩니다. --------------------- texshop 에서는 명령어 앞에 `\` 를 붙입니다. 제가 겪은 것은 newtheorem 이라는 명령어 입니다. 어떤 정리를 순서대로 간략히 정리하기에 편리한 명령어이지요, 저는 터미널에서 다음과 같은 작업을 했습니다. 예를 보여드리겠습니다. \newtheorem{ta}{Table} << 이 명령어의 뜻은 'ta' 는 새로운 정리의 이름 Table을 나타냄. \begin{ta} .......... $ \theta $ .... << 그리스 문자 θ를 나타냄,,, ...... \end{ta} ....... \begin{ta} ..... $\theta $.... ..... \end{ta} 이런 식으로 적었습니다. 이것을 compile 시켜서 얻은 제가 기대했던 문서의 모양은 Table 1 ..... θ ...... Table 2 .... θ ..... 였습니다. 하지만, 실제 결과는 Table 1 ..... 1 ..... Table 2 .... 2 .... 였습니다. 그리스 문자 theta가 table의 넘버에 맞쳐서 가더군요,, 참 신기하데요, 보통 LaTeX 에서 수식을 사룡할 때는 $수식$ 을 사용하거나, \begin \end 류의 명령을 사용하고, 그리스 문자 θ 도 수식의 한 종류므로, 이러한 명령어의 틀 속에서 \theta 라는 명령어를 통해서 나타낼 수 있습니다. 당연히 $\theta$ 는 θ를 뜻하고 그렇게 나타나야지요. 그리고 그렇게 나타나왔구요, 그런데 어느날 갑자기 이런 현상이 나타났고, 저는 그 원인을 찾아보기 시작했습니다. 그랬더니 그게 \newtheorem 명령과 관계가 있다는 것을 알아내었고, newtheorem 명령어 옆에 쓰는 줄임말이 'ta' 만 쓰면 그렇게 된다는 것을 알아냈습니다. 즉 \newtheorem{ta}{Table} 에서의 'ta'가 바로 그 문제의 원인이라는 것이지요, 이렇게만 쓰면 theta 가 Table의 number 에 맞춰서 숫자로 표현이 된다는 것입니다. 눈치가 빠르시거나, 아니면 LaTeX 의 고수님들은 지금쯤 이 문제의 원인을 아셨을 거라고 생각됩니다만, 저는 잘 몰랐기에, 이건 버그다고 판단하고, 바로 texshop의 개발자에게 메일을 보냈습니다. 그랬더니 바로 그날 메일이 오더군요,, 다음과 같이,, ------------ I enjoyed your email. It took a while to figure out the answer. This "bug" has nothing to do with TeXShop. You can try that by typesetting a short document from the Terminal. You'll get the same behavior. Here is the explanation. Suppose you have a theorem environment, for example \begin{lemma}{Lemma} Then LaTeX constructs a counter to keep track of the number of the last theorem. This counter is called \thelemma where "lemma" gets replaced by whatever you have named the environment. To test that this is true, typeset the following example: ---------- \documentclass[11pt]{article} \newtheorem{lemma}{Lemma} \begin{document} \begin{lemma} First lemma. \end{lemma} Now consider \thelemma \ and notice that it holds the current lemma number. \begin{lemma} Second lemma. \end{lemma} Consider \thelemma. See what I mean? \end{document} ---------------- And now your bug. If you name an environment "ta", then the analog of "thelemma" is "theta"!!! ----------------- 정말 우연의 일치가 아닌가요? 즉 '\the(줄임말)' 이 newtheorem의 현재 , 즉 바로 직전의 newtheorem의 숫자를 뜻하는 것이었습니다. 저는 우연의 일치로 줄임말을 'ta'로 하였고, 따라서 \theta 가 바로 'ta'라고 하는 newtheorem의 바로 직전이나 지금의 숫자를 지칭하는 말이 되는 것이지요. 그리고 그것이 원래의 theta가 갖는 의미보다 선행되어 사용되기 때문에 그리스 문자 theta라 표현되지 않고, newtheorem의 넘버로 인식되는 것이었습니다. 정말 신기한 우연의 일치라 생각이 들었고, 재미가 있었습니다. 그리고 theta의 새로운 의미도 알게되었지요, the ta 라는 하하하 texshop 쓰시는 분들 이 점 주의하시고, 다른 LaTeX 프로그램에서는 예를 들면 winedit (윈도우용 프로그램), itexmac (Mac 용) 에서도 그러는지도 궁금해지는군요,, 그럼 지금까지 긴 글 읽으시느라 수고하셨습니다. |
|
| 2006-06-10, 11:19 PM | #2 |
|
Veteran Member
![]() ![]() ![]() Registered: Nov 2003
My Mac: 파워북 1.5GHz / iPhone
Posts: 705
오프라인
|
재밌네요 ^^
저자의 말대로 Texshop과는 무관한 레이텍의 문법과 관련된 버그(?) 같습니다.. 그래도 찾아내셔서 고쳤으니 다행이네요. 저런거 이유없이 이상하게 나올때의 그 심정 이해하죠.
__________________
ㅇㅅ 1999, ucb 2000 & 2006 |
|
| 2006-06-11, 06:08 AM | #3 |
|
Senior Member
![]() ![]() Registered: May 2002
My Mac: macmini4G1.25 combo, iBook G3 500 CD, iPodmini 2세대 4G,ipodshuffle 512M
Posts: 385
오프라인
|
저런 재밌는 버그라던지 오타를 발견했을때 기쁨은 이루 말할수 없죠~ 모르는 제가 봐도 재밌는데 ㄲㄲㄲ
__________________
魅咤! Feel so good 좋은느낌 좋은하루 |
|