KTUG마당은 KTUG를 방문하는 모든 이용자가 대화를 나누고 소식을 전하는 곳입니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- Team Blog의 글을 이곳 게시판의 "정보글"로 모았습니다. Team blog는 기고자가 올린 글에 질문을 받는 부담을 줄이기 위하여 댓글을 허용하지 않았습니다. 그러나 이곳 게시판으로 모으면서 댓글을 달 수 있습니다. 게시물을 작성하실 때 댓글을 원하지 않으시면 댓글을 허용하시지 않으시기를 바랍니다. 또한 불필요한 소모성 댓글을 달지 않도록 주의하여 주시기를 바랍니다.
- TeX과 관련된 질문이나 답변은 QnA 마당을 이용하십시오. TeX과 관련된 질문은 지웁니다
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- 사용하는 편집기는 CKeditor입니다. 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한줄을 비웁니다. 글줄만 바꾸려면 shift-enter 를 누르시면 <BR>가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
자유글 SageTeX에 대하여
2010.04.10 19:50
안녕하세요. 김연주입니다.
제가 최근에 Sage라는 사이트( http://www.sagemath.org/index.html )를 알게되었는데요...
웹에서 돌아가는 Mathematica 비슷한 수학프로그램인 것 같습니다.
그런데 이 프로그램을 TeX과 연동해서 사용할 수 있다고 하는데
설치하려고 하니 잘 안됩니다.(역시 이런 종류는 정신건강을 해치는 것 같아요.)
sagetex패키지를 이용해서 tex문서를 작성한 다음
latex을 실행하고
다시 sage를 실행하고(<--- 이 단계가 안됩니다.)
다시 latex을 실행하면 된다고 하는데
sage를 어떻게 실행하는 것인지 잘 모르겠습니다.
제가 사용하는 컴퓨터가 Mac OS X 10.6이고 dmg파일을 다운 받아
Application 폴더에 복사에 넣기까지는 했는데....
그 이후에는 잘 모르겠습니다.
도와주세요.
댓글 9
-
dynamics
2010.04.10 21:04
글쎄요?꼭 그 프로그램을 사용해야 하는 뚜렷한 이유가 있는지요?물론 Freeware기 때문에 설치하여 사용하는데서 문제가 없으나 여러 가지로 불편한 점이 많습니다.Mac을 지원하는 프로그램이기도 하지만 Mac에서 돌아가는 MATLAB이나 Mathematica가더 편리합니다. 어차피 Computer Algebraic System으로 사용하기에는 부족한 점이없을 수 있으나 다양한 예제와 메뉴얼이 쏟아져 나와있는 프로그램이 사용자에게는 더 편합니다.TeX으로 작업하다가 프로그램이 필요하다면 LuaTeX이 더 적당할지도 모릅니다. 그러나 LuaTeX은수학 프로그램이 아니므로 Mathematica와 같은 기능을 바랄 수 없습니다. 한 두가지 내장 명령어로결과를 내는 전용 프로그램과 일일이 프로그래밍하여 결과를 내는 프로그램과는 엄청난 차이가있습니다. 수학전용 프로그램과 문서작업 프로그램인 TeX는 분리해서 사용해야 정신건걍에 좋습니다.두가지 작업을 동시에 하려면 차라리 MathCAD를 사용하는 편이 낫습니다. MathCAD를 설계한 목적 자체가리포트를 작성하면서 수학적인 처리를 하는 목적으로 만들어진 프로그램이니까요.일전에 D. Joyner, "Adventures in Group Theory"를 읽으면서 SAGE를 설치하여 돌려봤지만몇 번 시도하다가 특별한 이점을 발견하지 못해 포기하고 Mathematica로 하기로 했습니다.TeX 때문에 그런 프로그램이 필요한 경우가 있을까요? CAS 중 Mathematica나 Maple은 TeX로인코딩을 하는 기능이 있기는 하나 주객이 무엇인가를 먼저 판단해야겠지요. 잘 알려진 프로그램으로수학적인 처리를 하고 결과는 깔끔하게 TeX으로 정리하는 것이 더 합리적일 수 있습니다. -
dynamics
2010.04.11 07:25
SAGE를 Mac에 설치했을때는 어떤지 모르겠으나, Windows에서는 Python을 돌리고Python에서 SAGE엔진을 돌리기 때문에 Windows에서 LaTeX에 SAGE 코드를 넣어봐야잘 실행이 안될 수 있습니다.SAGE 홈페이지에서는 SUN사의 VirtualBox를 설치하고 가상머신에서 SAGE를 돌리도록권장하고 있습니다. Linux계열의 가상머신을 KAIST에서 다운로드할 수 있습니다(대략 1 GB 정도).가상머신에서 SAGE를 돌려보면 Group Theory에서 제시하고 있는 예제가 모두 잘 됩니다.여기 Linux에서 TeX을 설치하면 SAGE에서 예제로 든 코드가 제대로 실행이 될 듯 합니다.Windows에서 먼저 LaTeX을 실행시키면 코드로 넣은 SAGE가 *.sage로 생성되고 이 파일을SAGE를 이용해서 컴파일하고 컴파일한 결과가 있는 상태에서 LaTeX을 다시 컴파일 하면본문에 SAGE로 실행한 결과가 심어집니다. 흡사 Asymptote 이용 방법과 비슷합니다. SAGE를그냥 계산 결과나 그래픽한 결과로 사용하려면 Asymptote를 사용해도 됩니다.Windows에서 *.sage를 실행하려고 실행파일이나 스크립트를 찾와봐도 적당한 것을 찾기 어려우니까아마 Python에서 쉘을 만들어 실행하기 때문에 LaTeX 에서 직접 이용하기는 무리가 따를 듯 합니다.Windows에서는 *RC3.msi로 설치파일이 있어 SAGE를 실행시킬 수 있으나 홈페이지에서 찾기 힘듭니다.어디 구석에 있는데... 구글에서 찾아서 홈페이지에 있는 설치파일을 찾았습니다. -
gromov
2010.04.11 11:13
Sage라는 프로그램에 대하여는 처음 알았습니다.
아마도 자신들의 소개 처럼 Mathematica, Maple, Matlab 등등의 프로그램에 필적하는 free 프로그램을 지향하는 것 같고 바람직한 활동인 것 같습니다.
이러한 노력에 고마운 생각을 가지면서도 이를 사용하는 사람들이 조금 조심할 점이 있어 보입니다.
이러한 류의 프로그램은 그 속에 많은 algorithm을 가지고 있습니다.
이러한 algorithm은 미리 모두 프로그램 되어 있지 않습니다. (예를 들어 fortan, c 등에서 recipes라고 나와 있는 subroutine이 있습니다만 ...)
따라서 개발하는 사람들이 새로운 알고리듬을 만들어 넣어야 하며 이는 수학을 잘 알아야 어떤 이론을 사용해서 알고리듬을 짜면 좋은지 등을 제대로 알 것입니다.
즉 작은 집단은 이를 제대로 만들기 힘들다는 것입니다.
Mathematica가 U of Illinois 정도의 학교의 수학자들의 힘을 빌어 개발되고 이 수준의 연구를 계속하는 것이 그 프로그램을 유지시키는 힘이라고 봅니다.
그니까, Mathematica 등이 비싸고 버그도 있고 하지만 그쪽을 선호하는 이유는 그 속에 넣은 알고리듬이 신뢰도가 높기 때문입니다.
(간단한 함수등을 이용한 간단한 계산만을 하는 프로그램이라면 이러한 비교에 합당하지 않습니다.)
실제로 Mathematica 등의 프로그램에 들어있는 function들을 보면 순수수학에 전문가가 아니면 그 뜻을 알 수 없는 것이 수두룩합니다. 제가 수학 교수임에도 Mathematica에 나오는 대부분의 수학 이론을 이해하지 못합니다. 단순히 코딩하는 문제가 아님을 알 수 있습니다.
-
dynamics
2010.04.11 12:22
그렇습니다. Freeware를 사용하여 결과를 발표했을 때 신뢰성을 확보하기 어렵습니다.상용프로그램은 세계적으로 수많은 사용자들이 결과를 보고 해당 제작사에 항의하거나버그를 신고하여 계속 지속적인 개선을 하고 있으나 freeware는 그런 과정이 없으므로버그가 발생했을 때 전체 계산 결과에 대한 신뢰도가 떨어집니다.1992년 무렵 Mathematica가 Windows에서 1.44 MB 디스크 3장으로 나왔을 때 (DOS에서 돌때),몇 가지 CAS를 시험한 결과가 있었는데... 한국에서는 사용자도 별로 없었고 프로그램 평가도냉정하게 하지 않는 경향 때문에 결과를 별로 크게 취급하지 않았을 때..비교 대상은 DERIVE, Axiom, Mathematica, Maple 이었고 수학적으로 사람의 판단력이 작용하는몇 가지 경우를 입력해서 나온 결과를 공개한 적이 있었습니다. 역시 Mathematica가 가장 수학자에근접한 결과를 내놓았는데... 지금까지도 처음에 월프램이 만든 엔진이 돌아가고 있으니 매스매티가의성능은 아주 뛰어나다고 할 수 있지요.지금은 Mathematica나 Maple 정도가 CAS로 쓰이고 수치계산용으로 MATLAB이 주류를 이루고 있으니역시 사용자가 시간이 지나가면 해당 프로그램의 유용성이나 신뢰도를 알아간다고 할 수 있겠지요.MATLAB을 견제(?)하기 위한 freeware인 SciLab (ScienceLab ?)를 사용한적이 있는데... 모양도 비슷하고결과도 비슷하고, 답도 비슷하게 나옵니다만 사용을 그만 둔 이유는 신뢰도였습니다. 어떤 결정적인버그가 들어있어 조건이 묘하게 주어졌을 때 그 버그로 인해 결과가 엉뚱하게 나올 가능성이 있기 때문이었습니다.또다른 이유로 Freeware인 Scilab은 MATLAB의 워크스페이스에서 돌아가는 모양과는 비슷하게 나와도전문분야에 사용하는 패키지 지원이 없어 여러가지 명령어를 조합해서 사용해야 하므로 불편합니다.명령어 하나로 해결이 되는 문제를 10가지나 20가지 정도의 명령어를 조합해서 사용해야 한다면전문 프로그래머가 아닌 사람은 당장 불편함을 느낍니다.SAGE는 Group Theory에서 대수부분은 검증을 하였기 때문에 여기에서는 치명적인 버그가 별로 없다고해도 다른 분야에서는 어떻게 될 지 모릅니다. -
ChoF
2010.04.11 17:04
이러한 노력에 고마운 생각을 가지면서도 이를 사용하는 사람들이 조금 조심할 점이 있어 보입니다. (...중략...) 즉 작은 집단은 이를 제대로 만들기 힘들다는 것입니다.
Sage에 들어있는 기능들 대부분이 Sage 개발자들에 의해 만들어 진 것이 아니며, 그들도 결코 바라지 않을 것입니다. 그러니 너무 염려하지 않으셔도 될 듯 합니다.
대신 Sage는 (제가 파악하고 있기로) 오픈소스 진영에서 만든 중요한 수치계산용 라이브러리 및 프로그램들 및 오랜 세월동안 수학자들이 개발해 온 중요한 프로젝트 (예를 들어, GAP 및 Singular)들을 기반으로 하고 있습니다. 아래 Sage's Reference Manual의 목차를 한번 보십시오.
http://www.sagemath.org/doc/reference/index.html
gromov 교수님 같은 수학자가 아니라면 무슨 말을 하는지 반도 이해하지 못할겁니다. 수치해석 전공하는 분이 주위에 계시면 한번 목차를 보여 준 후 무슨 내용인지 한번 물어보십시오. 황당한 얼굴로 바라볼지 모릅니다. 왜냐하면 그분들조차 반도 이해하지 못하기 때문입니다. 차라리 컴맹이라고 놀림을 받는 대수학 전공자들께 보여드리는 것이 나을지 모릅니다.
바로 이것입니다. Sage는 설령 "Mathematica, Maple, MATLAB을 지향"한다고 모토를 가지고 있지만 내용을 찬찬히 살펴보면 그렇지 않습니다. 지금까지 만들어진 오픈소스 진영의 유명한 라이브러리, 프로그램 및 프로젝트들을 한 곳에 모은 것이라고 보는 것이 합당할 듯 합니다. 그렇다면 문제는 이러한 각각의 기능들을 어떻게 엮을 것이냐입니다. 그들의 철학은 Python이라는 걸출한 프로그래밍 언어를 이용해 이를 해내겠다는 것입니다. 만약 Mathematica 프로그래밍 (단순한 사용이 아님)과 Python을 동시에 구현할 수 있는 분이라면 Mathematica 함수를 Python 프로그래밍에서 사용할 수 있는 환경을 상상해 보십시오. 얼마나 매력적일까요? Sage 개발자들의 의도가 여기에 있습니다.
저는 Sage를 이용해 최종 연구 결과를 얻을 수 있는 경우는 많지 않다고 생각합니다. 수치계산을 하는 분들이 MATLAB을 이용해 최종 연구 결과를 얻는 것을 제외하면, Mathematica나 Maple도 상황은 마찬가지입니다. Mathematica가 비록 엄청난 기능들을 가지고 있지만 Mathematica의 심볼릭 연산 기능은 수학 문제를 풀거나 수학 모델을 만들 때 프로토타입 제작용으로 쓰일 뿐입니다. 다시 설명하면, 자신이 예상하는 결과가 어느 정도까지 맞는지 또는 자신의 수학 모델이 어느 정도까지 잘 맞는지 확인하는데 쓰인다는 것입니다. 이러한 확신을 바탕으로 수학자는 증명을 하려고 할테고, 수치계산을 하는 분들은 MATLAB 같은 패키지 또는 Fortran/C로 만들어진 라이브러리를 이용해 시뮬레이션을 시도하겠죠.
Mathematica나 Maple을 쓰지, 왜 굳이 Sage를 쓰려고 하느냐라고 쉽게 이야기하지 말아 주십시오. Mathematica가 가지는 강력한 기능을 사용하기 위해 지불해야 하는 금액이 얼마인지 생각해보십시오. 일반인은 결코 감당하지 못할 금액입니다. 제가 가진 Mathematica 6.0을 업그레이드 조차 하지 못하고 있는 이유도 바로 여기에 있습니다. 저는 Sage의 매력이 바로 여기에 있다고 봅니다. 사용자 인터페이스만 좀 더 편리해지고, 모든 플랫폼에서 동일하게 사용할 수 있다면, 당장이라도 Sage에 달려들고 싶습니다.
-
gromov
2010.04.11 20:28
ChoF 교수님 말씀 잘 알겠습니다.
안그래도 Mathematica 등의 비싼 가격에 대하여 대안이 있으면 하는 것에 가장 우선 순위를 두고 있습니다. 그래서 Linux와 유사하게 이 프로그램이 성공하였으면 하는 바램을 가지게 되었습니다. 아마도 제가 쓴 글은 교수님같은 전문가가 아닌 분들에 대해서 일반적으로 이런 점을 유의하면서 접근하여야 한다는 일반론에 가깝습니다.
저는 프로그래밍에 대하여는 문외한이므로 Python을 사용하는 것의 장점에 대하여는 전혀 이해하지 못합니다. 학창시절에 공부했던 프로그래밍이란 Fortran과 Algol을 맛본 것이 전부이니까요. 따라서 그런 방면에 장점이 있다면 물론 중요하겠습니다만, 제가 지적한 것은 이 프로그램을 지원하는 전문가, 특히 수학자마 많아야 한다는 것이었습니다. 그리고 실제로 많다면 정말 유망한 프로그램이고요.
얼핏 위에 소개해 주신 페이지를 보면 아마도 대수학 분야에서 많은 지원을 하고 있는가봅니다. 저 자신은 심볼릭 계산과 미분방정식 그리고 3차원 그래픽을 사용하기 위하여 Mathematica를 씁니다. 초기 Mathematica 시절부터 대수위상에서는 invariant의 계산을 프로그래밍에 의존하고 있다고 듣고 있습니다. 저의 경우는 물론 계산 보조이지만 제 research의 중요한 부분을 담당하기도 합니다. 최근의 한 논문에서는 반 쯤 결정적인 역할을 하기도 하였습니다.
제가 사용하고 있음에도 저는 특별히 Mathematica를 쓰는 것을 장려하지는 않습니다. (수학 패키지 사용은 학생들에게 장려합니다만.) Sage가 이와 유사한 수준에 올라온다면 아마도 당연히 이것만(!)을 장려할 것입니다. ChoF 교수님이 보시는 바대로라면 머지 않은 장래에 수학계에서 이 프로그램이 중요한 위치를 차지할 것 같습니다. 그렇게 된다면 지난 20년 정도 사용해온 Mathematica를 떠날 수 있을지도 모릅니다. (새로운 언어가 쉽지는 않겠지만요.)
-
ChoF
2010.04.12 11:10
Sage와 Mathematica를 비교하면 거의 대부분의 영역에서 아직 상대가 되지 않는다고 봅니다. 대수학 및 대수기하학 관련 패키지의 경우, Sage에서 제공하는 것이 아니라, 이미 오랜 기간 동안 관련 분야의 수학자들로부터 충분히 검증을 받은 패키지를 가지고 온 것이기 때문에, (제 개인적인 생각으로는) 이 부분에서 Mathematica 보다 뛰어나다고 생각합니다. Macaulay2 ( http://www.math.uiuc.edu/Macaulay2/ )가 없는 것이 약간 아쉽지만요.
아무튼 Sage는 아직 갈 길이 먼 것 같고, 성공할런지 확신도 가지 않습니다. 이미 언급한 사용자 인터페이스 문제와 운영체제 플랫폼 문제의 해결은 수학자들이 쉽게 할 수 있는 것이 아니기 때문입니다. 작년에 UW Madison에서 수학과 교수 한 분과 이야기하다가 교육용으로 쓸 만한 Mathematica 같은 (무료) 프로그램 없냐고 물어보니 Sage를 추천하더군요. 그런데 한국을 지배하고 있는 운영체제인 MS-Windows에서 원만한 사용이 힘들기 때문에 아직 손을 대고 있지 않은 상태입니다. 저도 gromov 교수님처럼 Sage가 잘 되길 (마음으로나마) 바라고 있습니다...
-
yunjkim72
2010.04.11 11:21
답변 너무 감사드립니다.(답변 시간을 확인해보니 혹시 날 새며 하신 것은 아니시죠? ^^ 감동입니다.)저 또한 수학프로그램 따로 TeX 따로 작업해오고 있는데요...그래프에 일일이 파일명 지정해가며 넣는 것이 귀찮아서 Sage로 하면 괜찮을 듯 생각하고 있습니다.답변 중에서 ...Windows에서 먼저 LaTeX을 실행시키면 코드로 넣은 SAGE가 *.sage로 생성되고 이 파일을SAGE를 이용해서 컴파일하고 컴파일한 결과가 있는 상태에서 LaTeX을 다시 컴파일 하면본문에 SAGE로 실행한 결과가 심어집니다. 흡사 Asymptote 이용 방법과 비슷합니다. SAGE를그냥 계산 결과나 그래픽한 결과로 사용하려면 Asymptote를 사용해도 됩니다.위 빨간 색으로 칠한 부분인데요... Sage를 이용해서 컴파일을 어떻게 하나요?
Sage를 터미날에서 실행시키면
sage:
이렇게 나오는데 여기서 명령어를 입력하는 것인가요?
제가 이부분이 안됩니다.
-
yunjkim72
2010.04.11 11:48
찾았습니다. 명령어가 load 였습니다.
sage: load "foo.sage"
이렇게 하니까 실행이 되더군요.
그리고 다시 latex을 실행하면 원하는 tex문서가 만들어집니다.