xylosper's notebook

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

Xy LaTeX Editor - 텍스트큐브용 LaTeX 편집기 플러그인

2009/02/27 21:56, 글쓴이 xylosper
Hybrid님이 만드신 SitmoLaTeX Display를 보고, 플러그인을 한번 열어보니, 고정된 주소로 렌더링해주는 거라면 뭐든지 가능하겠다 싶어서 CodeCogs의 LaTeX Equation Editor를 이용하여 Xy LaTeX Editor라는 이름으로 텍스트큐브용 LaTeX편집기 플러그인을 만들었습니다.

이 플러그인은 LaTeX 수식을 표시해줄 뿐만 아니라, 글을 작성하고 편집할때 수식의 미리보기와 수식 입력을 도와주는 툴바를 제공합니다.

플러그인을 설치하면 다음과 같이 글 작성창 하단에 두개의 버튼이 생깁니다.
사용자 삽입 이미지
  1. 새 수식 삽입하기
    본문에 새 수식을 삽입하기 위해 수식 에디터를 엽니다.
  2. 선택된 수식 고치기
    본문에서 선택된 수식을 고치기 위해 수식 에디터를 엽니다.
어느 버튼을 누르던 다음과 같은 수식 에디터 창이 열립니다.
사용자 삽입 이미지
버튼에 따른 차이는, 새 수식 삽입하기 버튼은 아무것도 입력되지 않은 창을 띄우고, 선택된 수식 고치리 버튼은 선택된 수식의 내용이 미리 입력되어있다는 점입니다.

적당히 편집후 확인 버튼을 누르면, 새 수식 삽입되거나 수정될 수식이 갱신됩니다.
사용자 삽입 이미지
참고로 글 작성시에 보이는 것은 어디까지나 '미리보기'입니다. 실제로는 수식내용이 그대로 저장되고, 나중에 다시 글을표시할때 이미지로 치환됩니다.

또한 본문에 직접 [tex*]...[tex*](실제론 tex*가 아니라 tex)사이에 수식을 입력해도 실제로 표시될때 이미지로 치환됩니다.

몇가지 설정가능한 부분이 있는데, 그중 다음 두가지는 약간의 설명이 필요할듯 하여 소개합니다.
  1. 자동업데이트 시간
    위에서 설명한 수식 입력후 자동으로 이미지를 갱신해주기 까지의 시간 간격을 밀리초단위로 설정합니다. 0보다 작은 수가 입력되면 자동업데이트기능을 끕니다.
  2. 본문 렌더링 여부
    렌더링 설정부분에서 '글 표시할 때'라는 부분이 있는데, 이부분을 체크해제하면 Xy LaTeX Editor의 미리보기 및 편집기 기능만을 이용하게됩니다. 본문의 수식을 실제로 표시하는 것은 다른 방법을 이용하고 싶은 경우에 체크를 해제하면 됩니다.
마지막으로 사이드바에 CodeCogs 배너를 추가할 수 있는 기능이 있습니다.
플러그인을 적용하면 사이드바 위젯에 CodeCogs배너가 선택가능해집니다.
Xy LaTeX Editor의 수식 렌더링은 전부 CodeCogs에 의해서 생성된 것이며, 실제 이미지또한 CodeCogs에 의해서 제공됩니다.
CodeCogs는 이미지를 제공하는 대신, 다음과 같은 배너를 웹사이트에 달아줄것을 '부탁'하고 있습니다.
CodeCogs - An Open Source Numerical Library
어디까지나 부탁이므로 이를 따를 의무는 없습니다만, 도리로서 되도록이면 본 플러그인을 이용하시는 분들은 (특히 글 표시할때에도 이 플러그인을 이용하시는 경우에는) 사이드바에 배너를 추가해주길 저도 '부탁'드립니다.
실제로 배너가 달린 모습은 제 블로그의 사이드바에서 볼수 있습니다.

한가지 주의사항이 있는데요, 글 표시할때 렌더링을 CodeCogs로 하는 경우, 과다하게 이미지를 가져다 쓰는 경우 블록될수 있다고 경고하고 있습니다. 일일 10,000번이상의 이미지 요청이 예상될경우는 따로 연락을 달라고 합니다. 자세한 것은 CodeCogs홈페이지의 LaTeX Editor Usage Policy를 참고해주세요.
XyLaTeXEditor.tar.gz

Xy LaTeX Editor 다운로드

마지막으로 LaTeX 글이면서 수식이 하나도 없기에, 테스트도 겸해서 몇가지 식을 끄적이고 마칩니다.

\left\{-\frac{\hbar^2}{2m}\nabla^2+V(\vec{r}, t)\right\}\psi(\vec{r}, t) = ih \frac{\partial}{\partial t}\psi(\vec{r},t)
\oint \vec{H}\cdot d\vec{r} = \int \left(\vec{i} + \frac{\partial \vec{D}}{\partial t} \right)\cdot d\vec{S}

u(x,y,z) = -\frac{i}{\lambda}\frac{e^{ikz}}{z} \iint u_0(x_0,y_0)e^{\frac{ik}{2z}\left\{(x-x_0)^2 + (y-y_0)^2\right\}}dx_0dy_0

\begin{align*} E &= \int _0 ^{\infty} f_B(\omega)\hbar \omega D(\omega) d\omega \simeq \frac{3V\hbar}{2\pi^2 v^3}\int_0^{\omega_D} \frac{\omega^3}{e^{\beta \hbar \omega}-1}d\omega \\ C_V &=\frac{\partial E}{\partial T} = 9Nk_B\left(\frac{T}{\Theta}\right)^3\int_0^{\Theta /T}\frac{x^4e^x}{(e^x - 1)^2}dx \\ &\simeq\left\{\begin{matrix} 3Nk_B & (T \gg \Theta)\\ \frac{12}{5}\pi^4Nk_B\left(\frac{T}{\Theta}\right)^3 \propto T^3 & (T \ll \Theta) \end{matrix}\right. \end{align*}
2009/02/27 21:56 2009/02/27 21:56

맨 위로