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

맨 위로

2차원 Ising모델 시뮬레이터

2009/02/21 15:51, 글쓴이 xylosper
2차원 Ising모델을 메트로폴리스 알고리즘을 이용한 몬테카를로법으로 시뮬레이션해주는 프로그램입니다.

이번 방학에 연구실 인턴쉽 과제로 '상전이 시뮬레이션'을 받아서, 선생님이 준 자료를 일단 공부해보고, 3월부터 본격적으로 시작하자는 취지였는데, 그냥 심심하고 할일도 없어서 만들어 버렸습니다.

나중에 선생님께 보여드렸을 때, '이게 아니야~'라는 반응이 나오지 않을까 좀 걱정됩니다만...

아무튼 모처럼 만들었으니 공개해봅니다.

1. 온도(J/kT)에 따른 2차원 격자의 상태 시각화 및 스냅샷 기능
2. 온도(1/kT)에 따른 장거리 질서도(평균자화의 절대값), 자화율, 내부 에너지, 비열의 변화 플롯 및 파일 출력 기능
상태 시각화 이미지

격자 상태의 시각화

그래프

각종 상태값의 그래프

이상의 것이 가능합니다. 처음엔 자기장도 고려해서짜볼려고 했는데, 인터페이스도 번잡해지고, 자기장이 들어간다고해서 뭔가 재미있는 결과가 보이지도 않길래 그냥 자기장은 0으로 고정시켜버리고 짰습니다.

참고로 단순히 수치연산을 한게 아니라, 확률적으로 시뮬레이션 한 것이기 때문에 매끄러운 그래프가 나오진 않습니다.

마지막으로 라이센스는 GPL을 따르므로 수정 및 재배포시 소스공개의 의무가 있다는 점 이외에는 자유롭게 이용가능하며, 당연합니다만, 시뮬레이션 결과에 대해서는 어떠한 보장도 하지 않습니다.

다운로드 파일에는 소스코드 및 윈도우용 바이너리가 포함되어있고, Qt를 이용할수 있는 대부분의 플랫폼에서 빌드할 수있습니다(상황에 따라서 ising.pro파일의 INCLUDEPATH 및 LIBS 옵션을 바꿔주세요).
컴파일하기 위해서는 Qt4.4이상 및 Qwt5이상이 필요합니다.

ising.tar.gz

tar.gz 압축 파일

ising.zip

zip 압축 파일


2009/02/21 15:51 2009/02/21 15:51

맨 위로