Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
wmf2eps 문제
2021.05.23 15:11
LaTex문제가 아닌 wmf2eps라는 프로그램 문제인데요. 마땅히 질문드릴곳이 없어 부득이하게 여기에 질문드립니다.
저는 매트랩 시뮬레이션 결과를 eps파일로 만들때, 우선 매트랩의 그래프창 메뉴에서 copy figure 메뉴를 선택해 복사한다음 바로 파워포이트에 붙여넣기 하고, 이 페이지만 emp파일로 저장합니다. 그리고나서, wmf2eps에서 이 emf파일을 불러와 eps로 저장하는데요.
이렇게 하면, 시뮬레이션 결과 그래프가 1개만 emf파일로 만들어 esp로 만드는 것은 전혀 문제없이 잘 되는데요, 2개의 매트랩 그래프를 파워포인트에 붙여넣고나서, empf로 저장하면, wmf2eps에서 이 emf파일을 불러올때 저장된 2개의 그래프중에서 1개만 보이고 나머지 그래프는 아예 안보입니다. 동일한 emf파일을 그림판으로 불러와서 보면 2개 그래프 모두 잘 보여집니다.
제 추측으로는, 매트랩 그래프 창메뉴에서 copy figure시, 메타파일로 저장(매트랩 기본설정임)되는데, 2개의 메타파일이 하나의 emf파일로 저장된 경우 wmf2eps 프로그램에서는 1개만 인식하나봅니다.
해결방법이 없을까요?
댓글 15
-
noname
2021.05.24 07:09
-
yihoze
2021.05.24 09:31
호기심에 matlab 시험 버전을 설치해봤습니다. 앞으로 재미삼아 뭔가 설치하는 건 하지 말아야겠다 생각했습니다. 오래 걸리더군요.
아무튼 위키백과에 있는 코드를 복사하여 넣고 돌려봤습니다. 다양한 이미지 포맷이 지원되지만, 설정 방법을 몰라 그럴지도 모르지만, 벡터는 지원되지 않는 것 같더군요. 그렇다면 eps나 pdf로 저장하는 게 별 의미가 없습니다. jpg나 png로 저장하는 게 좋겠습니다.
-
yihoze
2021.05.24 09:53
혹시 질문하신 분은 eps만 tex이 처리할 수 있는 이미지 포맷이라고 알고 계시다면, 한 20년 전에는 그랬습니다만, 그것은 오해입니다. 물론 그렇다고 모든 이미지 포맷들이 지원되는 것은 아닙니다. PDF, JPG, PNG. 이 정도면 충분하겠지요? 이따금 SVG가 지원되면 좋겠다 싶지만 SVG를 EPS나 PDF로 변환하는 것은 어렵지 않으니까 대수로운 문제가 아니라고 봅니다.
-
likesam
2021.05.24 10:12
위에서 noname님과 yihoze님의 댓글에 붙여서, Google에서 matlab save figure vector graphics로 검색하니 여러가지가 검색되네요. https://www.mathworks.com/help/matlab/creating_plots/saving-your-work.html 만 읽어 보셔도 충분할 것 같습니다. -
큰바위
2021.05.24 17:26
\usepackage{matlab}
\begin{matlab}
codes ...
\end{matlab}
이런 형식으로 matlab과 연동하는 방식은 없는 것입니까?
-
yihoze
2021.05.25 09:07
찾아보니 matlab-prettier라는 패키지가 있기는 한데, 그것은 pythontex처럼 코드의 실행 결과를 가져오는 게 아니고, 단지 다른 리스팅 패키지들처럼 매트랩의 소스 코드를 하이라이팅하는 목적으로 만들어진 것으로 보입니다. 제 생각에는, 기술적으로 가능한지는 차치하고, matlab이 상용 소프트웨어이기 때문에 pythotex 같은 패키지가 만들어질 것 같지 않습니다.
-
noname
2021.05.25 15:44
저는 matlab이 없는 관계로, GNU Octave (matlab과 명령어가 98% 호환된다고 하는 프리소프트웨어)로 몇 가지 테스트를 해봤습니다. 테스트에 사용한 코드는 위의 yihoze께서 보여주신 것과 같습니다.
[X,Y] = meshgrid(-10:0.25:10,-10:0.25:10); f = sinc(sqrt((X/pi).^2+(Y/pi).^2)); h = figure(1); surf(X,Y,f); axis([-10 10 -10 10 -0.3 1]) xlabel('{\bfx}') ylabel('{\bfy}') zlabel('{\bfsinc} ({\bfR})') hidden off
그림으로 save하는 방법은 설명할 것도 없이 그냥 잘 됩니다. jpg로 변환해봤는데, 문서에 그냥 includegraphics하는 것으로 충분해보입니다.
matlab2tikz라는 유틸리티가 있어서 테스트해봤습니다. 이름은 matlab2tikz지만 octave에서도 사용 가능합니다. 기본적으로 octave는 matlab의 .m 파일을 실행할 수 있습니다. (github.com/matlab2tikz)
이것은 homebrew로 설치 가능하기는 한데 octave에서 \addpath해주어야 하는 게 조금 귀찮았습니다만, 사용에는 지장이 없었습니다. 이걸로 위의 코드를 변환하면 첨부파일 samp-output.tex과 같은 결과가 얻어집니다. 이것을 \usepackage{gnuplots}한 상태에서 \input하는 것입니다.
다만, 이 그림의 경우 (대부분의 플로팅 결과는 그렇지 않습니다만 이 그림은 좀 복잡한 모양이지요) TeX capacity 에러가 뜹니다. 이 문제를 해결하기 위해서는 (메모리 설정의 영향을 받지 않는) lualatex으로 컴파일하면 됩니다.
matlab2tikz를 이용하는 것은 그림으로 출력하는 방법에 비해서, 폰트를 본문과 일치시킬 수 있다는 중요한 장점이 있지만 처리에 약간 인내심이 필요할 수 있다는 단점도 있어 보입니다.
결론은, eps나 wmf2eps에 의존할 필요가 없다는 것입니다.
-
Progress
2021.05.25 16:09
lualatex으로 조금 뜸들이며 컴파일해보았습니다.
호기심에 저 아름다운 3D 그래프의 속을 들여다보고 싶어서 samp-output.tex의 좌표의 일부(8에서 10까지)를 주석처리하고 컴파일했더니 다음과 같이 나왔습니다. -
큰바위
2021.05.26 08:12
위 matlab 파일을 어떻게 octave 명령으로 tex 파일을 만들 수 있습니까?
octave를 이용해 파일을 run 하면 그래프만 나오고, 그 다음 tex 파일을 만드는 법을 웹을 열심히
찾아봐도 잘 모르겠습니다.
-
noname
2021.05.27 07:02
뭘 궁금해하시는지 잘 모르겠습니다만, 다음은 제가 테스트했던 octave history입니다.
x = -10:0.1:10; plot (x, sinc(x)); matlab2tikz('sincfnplot.tex')
어쨌든 이 주제는 이 글타래와 무관하다고 생각합니다.
-
초보
2021.05.26 00:30
처음 질문올린 사람입니다. 우선 많은 분들께서 좋은 의견들을 주셔서 정말 감사드립니다. 그동안 혼자 논문을 오랫동안 쓰다보니, 제가 너무 무지하게 살았나봅니다. 그럼, 처음 질문과 별개로, 위에서 말씀해주신 내용에 대해 몇가지 추가 질문을 드려도 될까요?
1. 제가 논문쓸때 가장 많이 사용하는 그림들은 (매트랩 그래프 보다는) 사실 파워포인트에서 제가 도형들을 이용해 직접 그린 그림들입니다. 제가 그동안 무지하여 예전에 ESP포멧으로 캡쳐하면 그림선명도가 가장 높다고 잘못알고 있어서, wmf2eps 프로그램으로 캡쳐해 esp를 만들어 사용했던것 같습니다. 답변주신 여러 좋은말씀들을 종합해보면, EPS보다는 PDF, JPG, PNG 정도를 많이들 쓰시고 계시는 것 같은데요. 그림선명도 면에서는 EPS, PDF, JPG, PNG중에 어떤 포멧이 가장 좋을까요?
2. (파워포인트로 도형등의 그림을 그렸다고 가정했을때) 위 1번 질문에서 추천해주신 포멧의 그림파일로 저장하기 위해서는 구체적으로 어떠한 과정을 거쳐 그림파일을 생성하시나요? (예를 들면 파워포인트에서 그림을 그리고난 뒤에 이 페일지 전체를 그림파일로 저장하면 여백까지 모두 저장되므로, 원하는 부분만 snaggit이라는 캡쳐 프로그램으로 캡처해, 그림포멧으로 저장한다던지 등등)
-
noname
2021.05.26 10:16
파워포인트 File 메뉴에 보면 "내보내기"가 있을 겁니다. 여기서 "PDF/XPS로 내보내기"를 선택한 후에 파일 형식을 PDF로 하여 저장할 수 있습니다. 주의할 점은 파일 이름에 공백이나 한글이 들어가지 않게 하는 것입니다.
저장한 후에 cmd창을 열고(탐색기의 주소표시줄을 마우스로 누르고 cmd라고 써넣고 엔터치면 해당 폴더 위치로 cmd가 열립니다) pdfcrop을 다음과 같이 실행하십시오. pdfcrop은 TeX Live에 딸려오는 유틸리티입니다. 저장한 파일 이름이 figure1.pdf라 할 때
pdfcrop figure1.pdf figure1.pdf
(파일 이름을 두 번 써줍니다. 왜 그렇게 하는지는 pdfcrop의 help를 읽어보시기 바랍니다.)
파워포인트로 그린 그림의 "여백제거"라는 한 가지 목적을 위해서라면 이것보다 나은 방법이 있을까요? 화면캡처에 대해 언급하셨는데 부득이한 경우가 아니면 그런 방법은 쓰지 않는 것이 좋습니다.
-
초보
2021.05.26 15:33
noname님, 자세하고 친절한 답변 정말 감사합니다. 말씀하신대로 하니 너무 편하고 좋네요. 이런 신세계를 몰랐던것 같습니다. 염치없지만 몇가지 질문을 더 드려도 될까요?
1. 말씀하신 방법을 100% 잘 이해했는지 모르겠습니다만, 파워포인트를 pdf로 만들때, 파워포인트에 그림이 1장만 저장 되어 있어야 pdf로 변환이 가능한 것인가요? 예를 들어 파워포인트 ppt파일 하나에 5장의 그림이 들어 있고, 그림1개당 1개의 pdf파일로 만드려면, 그림 1개당 ppt파일 1개씩을 만들어 총 5개의 ppt파일이 있어야 각각 pdf로 저장가능한 것인지요? 혹시 파워포인트 ppt파일 하나에 5장의 그림이 있어도 (별도의 ppt를 만들지 않고 이상태로) 그 중에 1장의 그림만 pdf파일로 만드는 방법은 없을까요?
2. 질문 드리는 김에, LaTex 에디터 환경도 여쭤보고 싶습니다. 저는 현재 WinEdt+MikTex를 사용하는데, noname님께선 어떤 프로그램을 사용하시나요? 이것도 제가 무지하게 옛날방식으로 사용하는 것 같아 여쭤봅니다.
-
noname
2021.05.26 16:32
다섯 페이지짜리 pptx가 있다고 하겠습니다. 이것을 앞서 말씀드린 방식으로 내보내기하면 5페이지를 가진 pdf가 만들어집니다.
1. 파워포인트 앱에서 원하는 페이지만 한 쪽짜리 pdf로 만들 수 있습니다.
파일 메뉴에서 "내보내기"를 선택하지 말고, "인쇄"를 선택합니다. 이 상태에서 프린터를 "Microsoft Print to PDF"로 하고, 설정을 "현재 슬라이드 인쇄"로 선택합니다. 이 상태에서 제일 위의 [인쇄] 버튼을 누르면 내보내기할 때와 마찬가지로 파일이름을 지정하여 저장할 수 있습니다. 이 때, ppt는 프린트하기를 원하는 페이지가 열려 있어야 합니다.
2. 여러 페이지 pdf로 내보내기 해둔 후에, 그 중에서 원하는 페이지만 골라내어 별도의 pdf 파일로 만들 수 있습니다.
예를 들어, bonobono.pdf는 5쪽짜리 bonobono.pptx를 내보내기 한 것이라고 합니다. 이 중에서 3페이지만 잘라내어 page3.pdf로 만들려고 합니다. 앞서 말씀드린 방법으로 cmd를 열고,
pdfseparate -f 3 -l 3 bonobono.pdf page3.pdf
이렇게 입력합니다. -f는 first, -l은 last의 첫 글자입니다. (사실 이 유틸리티는 전체 pdf에서 일부를 잘라내는 데 쓰는 것입니다. 여기서는 한 페이지만을 잘라내기 위하여 f와 l에 같은 값을 주었습니다.) 이렇게 만들어진 page3의 여백제거는 pdfcrop으로 할 수 있습니다.
pdfcrop page3.pdf page3.pdf
참고 1. TeX Live에는 당연히 이 유틸리티가 들어 있습니다만, MiKTeX에도 있는지 어떤지 제가 알지 못합니다.
참고 2. 자르는 유틸리티가 있으니 합치는 유틸리티도 있겠지요. pdfunite라는 이름입니다.3. 여러 페이지 pdf의 특정 페이지만을 지정하여 includegraphics할 수 있습니다. 물리적으로 페이지를 잘라내지 않고도 LaTeX 파일에서 사용할 수 있다는 뜻입니다.
문서 소스에서 다음과 같이 코딩하십시오.
\includegraphics[width=\textwidth,page=3]{bonobono.pdf}
=====
MiKTeX + WinEDT 조합은 전통적으로 가장 유명하고 강력한 환경 중 하나일 것입니다. 저 자신은 Windows 이용자조차도 아니기 때문에 뭐라 말씀드리기 어렵습니다만, (MiKTeX을 최신 상태로 업데이트하여 쓰고 계시다면) 문제 없는 것 아닐까 생각합니다.
-
초보
2021.05.26 17:17
noname님, 답변 너무나 감사드립니다. 말씀해주신대로 사용해 보겠습니다.
오늘날 eps나 wmf2eps 등은 뭔가 낡은 방법이라는 느낌이 있습니다. pdf 중심의 방법을 강구해보시는 것은 어떨까요?
matlab 자체에서 pdf export가 가능할 것입니다. 그게 아니라도 일단 파워포인트로 복사해왔으면 파워포인트에서 pdf 인쇄가 가능하지요.
eps 솔루션은 2021년 현재, dvi -> dvips를 이용하여야 하는 상황이 아니라면 "비표준"이라고 봐도 무방할 것입니다.