학교를 졸업하고 나서는 수식을 입력할 일이 그리 많지는 않지만 회사에서 알고리즘 개발 업무를 주로 하다 보니 가끔씩은 수식을 입력할 일들이 생기더군요. 학교에서 논문을 쓸 때는 주로 마이크로소프트 워드 프로그램에서 mathtype 을 사용하곤 했었는데~ 굉장히 편리 했던 기억이 있습니다. 그런데 회사에서는 아시겠지만 이런 소프트웨어들을 잘 사주지 않죠~

그래서 오픈소스 또는 프리웨어로 수식을 입력할 수 있는 툴들을 좀 찾아보니~ 아래와 같이 컴퓨터에 설치 하지 않고 웹에서 수식을 입력하고 이미지를 다운로드 할 수 있는 사이트들이 나오더군요.

http://mathurl.com/

http://www.sciweavers.org/free-online-latex-equation-editor

https://www.codecogs.com/latex/eqneditor.php

http://www.hostmath.com/

사실 이런 툴들은 입력 방식이 비슷할 수 밖에 없는데~ 개인적으론 출력을 이미지 파일 형태로 쉽게 다운로드 받을 수 있는 Sciweavers 가 조금 더 편한 거 같았습니다.

간단하게 수식을 입력해야 되는데 설치한 프로그램을 구매하기는 조금 그렇다 하는 작업을 할 때 이런 웹 기반의 툴들을 사용한다면 편리 할 것입니다.



MATLAB 에디터에서 코드를 작성하고 해당 코드에 대해서 문서를 생성할때 MATLAB 에디터의 퍼블리시 기능을 사용하곤 합니다. MATLAB 퍼블리시에서는 코드에 대해서 html, xml, latex, doc, ppt, pdf 등으로 문서를 생성해 줍니다. 퍼블리시 창에서 작업 폴더나 몇몇 옵션 등을 변경해 줄 수 있지만 사용 방법은 그냥 버튼 하나만 누르면 되기 때문에 뭐 그리 설명할게 없을 것 같습니다.

MATLAB Command Window 에서 문서를 생성하기 위해서는 아래와 같이 publish 명령어를 사용하면 됩니다. 첫 번째 인자로 파일명을 넣어 주고 두 번째 인자로 생성 하고자 하는 문서의 형태를 넣어주면 됩니다.

publish(‘publishTest.m’, ’doc’);

그런데 이렇게 간단한 문서 생성 방법도 코드가 잘못된 경우에는 생성이 잘 안 되는 경우가 있습니다.

바로 아래의 코드 예와 같이 루프문 안에 %% 기호로 된 섹션이 있는 경우에는 문서 생성이 굉장히 오래 걸리는 것을 볼 수가 있었습니다. 따라서 문서 생성을 위해서는 코드의 루프문 안에는 %% 기호를 사용해선 안됩니다.

루프 문 안에 있던 %% 섹션 표시를 % 주석으로 처리하고 문서 생성을 하니 정상적인 속도로 문서가 생성 되더군요.

문서 생성 결과를 보면 %% 로 된 섹션 표시는 하나의 챕터를 표시하는 것을 알 수가 있습니다.

For 문 안에 섹션 표시가 있으면 해당 섹션 부분을 문서의 목차에 계속해서 표시하게 될 것이므로 문제가 될 것입니다. 아마도 publish 기능에 루프 문안의 섹션에 대한 예외 처리는 안되어 있는것으로 생각되네요.




아래 포스팅에서 Wolfram-Alpha 라는 사이트를 통해 인수분해나 그래프 그리는 방법등에 대해 알아봤는데요~



오늘은 추가적으로 미분, 적분을 편하게 도와주는 사이트 들을 조금 소개 드리려 합니다.

  • 적분 사이트로는 아래 주소의 사이트를 발견 했는데


간단하게 다음과 같이 수식을 입력하고



Go 버튼을 누르면 이렇게 결과 수식이 나오더군요.


위 사이트는 정말 수학 공부하기도 좋을것 같은게 수식 밑에 있는 Show steps 버튼을 누르면 다음과 같이 수식 전개 과정도 나옵니다.



마지막에는 그래프도 나오고 아래 포스팅에서 소개 드렸던 maxima 라는 툴과의 비교 그래프도 그려 주므로 더욱 믿을 수 있는 것 같네요.


  • 미분 사이트로는 아래 주소의 사이트가 있습니다.


위 적분 사이트와 비슷한거 보면 같은데서 만든것 같네요.

역시 마찮가지로 수식을 입력한 후에 Go 버튼만 누르면 결과 수식이 나오고~


Show steps 버튼을 누르면 수식 전개 과정도 나옵니다..... 정말 좋네요.



위에 두 사이트는 export 버튼을 누르면 아래 그림과 같이 LaTeX, Maxima, Online calculators 수식으로도 export 할 수 있게 해 줍니다.


요즘 수포자 많다고 하는데 ..... 사실 요즘은 컴퓨터와 인터넷만 있으면 수학 공부하기 정말 좋은 시대라는 생각이 듭니다.

코드에 대한 문서화를 진행하는 경우 Doxygen 을 많이 사용하곤 합니다.

 

Doxygen 을 사용하면~ HTML, Latex, XML, RTF, CHM 등 다양한 형태로 문서를 만들 수 있는데~

 

CHM 파일을 만들때는 HTML Help Workshop and Documentation 라는 프로그램을 더 설치 해 줘야 합니다.

 

HTML Help Workshop and Documentation 다운로드 링크는 다음과 같습니다.

 

https://www.microsoft.com/en-us/download/details.aspx?id=21138

 

그 이외의 설정 방법은 아래 주소에 나와 있으니 간단히 따라 하시면 될 것 같네요.

 

https://codeyarns.com/2010/10/26/doxygen-generating-chm/



MATLAB Symbolic Math Toolbox 를 사용하여 수식을 계산 한 경우 이 수식은 다양한 형태로 표현 가능 합니다.

 

아래에서 소개했던 latex() 함수를 사용하여 latex 형태로 만들 수도 있고~

 

http://iamaman.tistory.com/201

 

pretty() 함수를 사용하여 좀더 보기 좋은 형태로 표현 할 수 도 있습니다.

 

http://iamaman.tistory.com/172

 

이런 다양한 경우 중 오늘은 C code 의 형태로 표현하는 방법에 대해 소개 하려 합니다.

 

http://kr.mathworks.com/help/symbolic/ccode.html;jsessionid=b2c0465dae2d536f7538bfbdb5c3?refresh=true

 

위 주소에 있는 바와 같이 ccode() 함수를 사용하면 됩니다.

 

사용 방법은 굉장히 간단한데요~ 아래 그림과 같이 H 라는 심볼릭 수식에 대해~ ccode(H) 라고 하면 아래와 같이 C code 의 형태로 표현해 줍니다.


 

MATLAB Symbolic Math Toolbox 를 사용하는 경우 아래 포스팅에서 소개한 바와 같이 latex() 함수를 통해 latex 코드가 생성 됩니다.

 

http://iamaman.tistory.com/172

http://iamaman.tistory.com/201

 

워드 등에서는 mathtype 를 활용 하면 latex 으로 나온 수식을 삽입 할 수가 있습니다.

 

그런데 블로그와 같은 웹에서 수식을 표현하고 싶은 경우에는 mathtype 을 사용 할 수는 없죠~ 물론 그림으로 만들어서 넣는 방법도 있지만 그리 편리한 방법은 아닌 것 같습니다.

 

위 포스팅에서 소개했던 아래 코드를 실행해보면~

 

syms a b c d x

f=a*x^2+b*x+c

S=solve(f,x)

latex(S)

 

2차 방정식에 대한 근의 공식과 이에 대한 latex 코드가 다음과 같이 나옵니다.

 

f =

a*x^2 + b*x + c

 

S =

-(b + (b^2 - 4*a*c)^(1/2))/(2*a)

-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

 

ans =

\left(\begin{array}{c} -\frac{b + \sqrt{b^2 - 4\, a\, c}}{2\, a}\\ -\frac{b - \sqrt{b^2 - 4\, a\, c}}{2\, a} \end{array}\right)

 

이렇네 나온 latex 코드는 Mathjax 를 활용하여 블로그에 삽입 가능 합니다.

 

Mathjax의 홈페이지 주소는 아래와 같습니다.

 

https://www.mathjax.org/

 

아래 주소에서 Mathjax 의 다큐멘트를 확인 할 수 있으며~

 

http://docs.mathjax.org/en/latest/start.html

 

위 주소에 있는 아래 코드를 <Head> 와 </Head> 테그 사이에 넣으면 준비 완료 입니다..

 

<script type="text/javascript"

src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">

</script>

 

다음으로 수식을 문단 사이에 입력을 할 때는 $$ 와 $$ 사이에 다음과 같이 수식을 넣습니다. 수식은 latex 또는 MathML 을 넣을 수 있다고 하네요~

 

$$수식$$

 

문장 사이에 수식을 넣고 싶을 때는 다음과 같이 $ 를 하나만 사용한다 하네요~

 

$수식$


물론 이렇게 넣을때는 HTML 모드에서 넣어줘야 합니다.

 

저는 위에 MATLAB 을 통해 만들어진 Latex 코드를 HTML 모드에서 다음과 같이 넣었습니다.

 

$$\left(\begin{array}{c} -\frac{b + \sqrt{b^2 - 4\, a\, c}}{2\, a}\\ -\frac{b - \sqrt{b^2 - 4\, a\, c}}{2\, a} \end{array}\right)$$

 

위와 같이 HTML 모드에서 저장하면 아래와 같이 수식이 표현 됩니다.

 

2차 방정식의 근의 공식이 너무 예쁘게 들어가 있죠~ 초기 로딩이 좀 느리다는 것을 제외 하고는 괜찮네요~

 

 

$$\left(\begin{array}{c} -\frac{b + \sqrt{b^2 - 4\, a\, c}}{2\, a}\\ -\frac{b - \sqrt{b^2 - 4\, a\, c}}{2\, a} \end{array}\right)$$

 

혹시 수식이 너무 많아서 로딩이 너무 오래 걸리는 것 같다 하시는 분들은 아래 사이트들을 통해 Latex 코드를 image 파일로 만들어서 넣어도 될 것 같습니다.

 

http://www.sciweavers.org/free-online-latex-equation-editor

 

 

https://www.codecogs.com/latex/eqneditor.php

 



이전 포스팅에서 Markdown 언어에 대해 소개 드린 적이 있는데요~

  

2014/06/06 - [유틸] - The Wysiwym Markdown Editor


2014/06/03 - [유틸] - 괜찮은 Markdown Editor markable 과 Table 을 쉽게 생성 할 수 있는 tablesgenerator


Markdown 을 비롯한 다양한 markup 문서들을 다양한 형태로 변환해 주는 유틸이 있는데 그게 바로 pandoc 입니다.

 

Pandoc 소개 페이지를 보니 정말 다양한 markup 언어들이 있더군요. 변환 가능한 markup 언어들로 아래 언어들을 소개하는데~ HTML, LaTeX, markdown 등을 제외하고는 모르겠더군요.

 

markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, OPML, Emacs Org-Mode, Haddock

 

아무튼 위 목록과 같은 markup 언어로부터 HTML, Word processor, Ebooks, TeX, PDF, Markdown 등등으로 변환 할 수 있더군요.

 

저는 블로그 API를 주로 사용해서 Word processor 형태로 글을 많이 작성하는데~ 매우 편리합니다.

 

Pandoc 의 홈페이지는 아래 주소와 같고~ 

http://johnmacfarlane.net/pandoc/

 

Windows Binary 는 아래 주소에서 다운로드 할 수 있습니다. 리눅스에서는 그냥 apt-get 과 같은 package 관리자로 설치 할 수 있더군요.

 

https://github.com/jgm/pandoc/releases

 

위 페이지에서 아래 그림과 같이 windows.msi 파일을 다운로드 하고 설치하면 됩니다.

 

설치과정은 일반적인 윈도우 설치과정과 같이 대부분 다음 다음이니 설명 안 드립니다.

 

 

Pandoc 의 사용 방법은 다음 페이지를 보시면 됩니다.

 

http://johnmacfarlane.net/pandoc/README.html

 

대부분 복잡한 옵션 없이 입력과 출력 format 만 설정해 주면 되더군요.

 

저는 위에 말씀 드린데로~ Word processor 를 자주 사용하는 관계로 이전에 아래 글에서 소개한 readme.md 파일을 Word processor로 변환해 봤습니다.

  

2014/06/06 - [유틸] - The Wysiwym Markdown Editor

  

MS 워드로 변환하는 명령어는 다음과 같습니다.

 

Pandoc readme.md –o readme.docx

 

이랬던 readme.md 파일이~

 

이렇게 예쁜 형식의 워드 파일로 변하더군요~ 더없이 편리 하네요~

 

 

아래 주소에서 좀 더 다양한 형식에 대한 변환 예를 볼 수 있습니다.

 

http://johnmacfarlane.net/pandoc/demos.html


Markdown 은 일반 텍스트 문서의 양식을 편집하는 문법입니다. Markdown 에 대한 설명은 아래 주소에 있습니다.

 

http://ko.wikipedia.org/wiki/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4

 

저는 포스팅을 할 때 주로 Blog Api를 사용해곤 하는데~

 

많은 블로거 분들이 Markdown 도 많이들 사용하신다고 하더군요.

 

어떤 건가 궁금해서 저도 한번 사용해 봤습니다.

 

일단 Markdown 을 사용하기 위해서는 Markdown 을 인식하는 에디터가 있어야 할 텐데~

 

검색해서 나오는 많은 툴들이 유료더군요. 일단 제한된 기능에 있어서 무료였던 MarkdownPad 2 을 사용해 보려 햇으나~

 

MarkdownPad 2 에서 table 을 작성해보니 아래와 같이 그지 같이 나오더군요.

 

MarkdownPad 2의 경우 table 기능을 사용하기 위해서는 옵션을 설정해야 하는데… 그러려면 업그레이드를 해야 하더군요. 즉 유료로 전환해야 해서 그냥 안 쓰기로 했습니다.

 

그래서 좀더 찾아보니 웹페이지에서 사용할수 있는 Markdown editor 가 있더군요. 이름은 markable 이고~ 아래 주소에서 사용가능 합니다.

 

http://markable.in/

 

아래와 같이 Try it now 를 누르고 들어가서~

 

MarkdownPad 2 에서 했던것과 동일한 Markdown 문법을 넣어보니 아래 그림과 같이 table 도 제대로 나오고 좋더군요.

 

Markdown 또는 HTML 로 export 를 할 수도 있습니다.

 

자주 사용하게 될 것 같군요~

 

그리고 Markdown 을 사용하다 보면 table 을 만들기가 좀 불편한 감이 있는데 아래 주소의 tablesgenerator 를 사용하면 간단하게 Markdown table 을 만들 수 있습니다.

 

http://www.tablesgenerator.com/Markdown_tables

 

아래 그림과 같이 table 의 내용을 작성하고~ copy to clipboard 를 누르면 clipboard 에 복사가 됩니다.

 

그리고 에디터에 붙여넣기만 하면 되겠죠~

 

위에 소개한 tablesgenerator 사이트에서는 Markdown 뿐만 아니라 Text, HTML, latex, Mediawiki table 도 만들 수 있더군요.

 

다양한 용도로 table 만들 때 유용한 사이트 같네요~


이전 포스팅에서 Symbolic math toolbox 에 대해 간단하게 설명 드린 적이 있습니다.



2011/04/04 - [MATLAB] - MATLAB 수학이 쉬워지는 symbolic math toolbox


오늘은 symbolic math toolbox 를 이용한 latex code 변환과 MathType 이라는 수식입력 프로그램을 이용한 워드프로세서에서의 수식입력에 대해 설명 드리겠습니다.
 

  간단하게 다음과 같은 등차수열의 합을 symbolic math 를 이용하여 계산하고 그 결과를 MathType 을 이용하여 워드에 입력해 보죠.

 

 

  • 아래 코드는 symbolic math 를 이용하여 위 수식에 대해 계산한 것입니다.

 

 

  • latex() 함수를 통해 결과를 latex code 로 표현해 줬습니다.

 

  • 위 결과에서 latex 변환한 부분을 드래그 하고 복사 합니다.

 

  • MathType 프로그램을 열고 붙여 넣기 하면 다음 그림과 같이 됩니다.

 

 

  • MathType 프로그램은 latex code 에 대한 지원을 하기 때문에 위 그림처럼 예쁘게 수식이 나타납니다.

 

  • MathType 의 수식을 워드에 붙여 넣기 하면 아래 식 처럼 등차수열의 합에 대한 수식이 워드에 입력되게 됩니다.

 

  


  1. Cooltime 2011.04.08 00:52 신고

    -0-; 제가 이쪽 분야가 아니라서,,. 뭐라고 적혀 있는지 모르겠네요 ^^;

  2. 김성수 2020.05.14 18:26

    관리자의 승인을 기다리고 있는 댓글입니다

+ Recent posts