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>처럼 입력하시면 좋습니다.
verbatim text 에서 화면 그리기???
2013.11.28 14:48
안녕하세요.. 찾다 찾다 못 찾아서 여기에 글을 남깁니다..
\begin{Verbatim}
10ms
------
\ +--------------+
+-------------+ +-------------+ SY_BDE -->| |
| ATS - | | |--><CylinderNumber> ---+------->| CDrv |
| information |---------->| Cylinder | | | Test- |--->
+-------------+ | Number | | | Interface |
| | | | GDI |
+-------------+ | +--------------+
| |
SY_ZYLZA / | +--------------+
---------- | | |
| | CDrv |
| | Test- |--->
+---->| Interface |
Y_BDE ->0| PFI |
+--------------+
\end{Verbatim}
이런 식으로 verbatim 안에서 돌렸을 때 결과가 밑에 있는 거처럼 나오게 해야하는데..
다른 패키지를 써야하는지.. 아무리 찾아봐도 나오지 않아서 질문합니다.
답변 부탁드리겠습니다.
댓글 15
-
어떤이
2013.11.28 14:53
-
뭬깟
2013.11.28 14:58
지금 테스트 할려고 만들어 놓은 tex 파일올려 드리겠습니다....
-
어떤이
2013.11.28 15:47
첨부하는 소스 참고하십시오. >, <를 >, <로 바로 잡은 것 말고는 별로 고친 것이 없습니다.
-
뭬깟
2013.11.28 16:35
감사합니다만.. 제가 본문에 첨부한 처음 그림처럼 입력하면 하위에 있는 그림처럼 나와야해서여..
따로 뭐 쓰는 package가 있는 해서 질문했습니다...
-
어떤이
2013.11.28 17:32
그런 거라면, 애초에 그림 그리는 패키지를 쓰셔야 합니다. tikz 등이죠. 그런데 그 패키지는 당장 배우시기에는 힘드실 터이니 저라면 다른 그래픽 전문 프로그램으로 그림을 그려서 불러들이겠습니다.
-
뭬깟
2013.11.28 17:55
저희가 지금 xml파일 태그로 저렇게 들어 오는걸 바로 verbatim를 써서 표현할려고 했던건데 그럼 tex 프로그램에서는 본문 하위 그림처럼 나오게 할 수 있는 package는 없다는 거죠????
xml에서 받은걸 그림으로 변환해서 다시 불어와야한다는 말씀인가요????
혹시 저렇게 입력 했을 때 하위 그림처럼 그려줄 만한 프로그램이 알고 있으신 프로그램인 있으시나요????
-
뭬깟
2013.11.28 20:53
-
ischo
2013.11.28 23:46
재미있네요. 그림이 많지 않다면, ditaa로 만든 그림을 includegraphics로 불러들이면 되겠지만,
그림이 매우 많다면, 수작업이 곤란하겠네요. 초고수의 답변을 기다리거나 구글링 해보거나 해야 하겠습니다.
이런 것이 도움이 될지는 모르겠네요... http://tex.stackexchange.c om/questions/25186/ditaa-diagrams-in-tex-latex-document?rq=1
-
샘처럼
2013.11.29 11:44
재미있네요.
제가 아는 한도로는,
말씀하신 ditta용으로 만들어져 있는 text화일을 LaTeX에서 스스로 인식하여 그림으로 변환하여 조판결과물 ( 예를 들면 PDF 화일 )에 뿌려주는 것은 어렵습니다. 이렇게 하려면 그부분을 인식하는 별도의 "환경"을 정의하고, 그 "환경"을 인지하여 외부 실행화일을 돌려주는 별도의 package를 누군가가 만들어 줘야 할 것입니다. 그런데 이런 동작을 하는 패키지는 그 패키지를 만들수 있는 능력이 되시는 분이 필요성을 느끼셔야 만드실 텐데, 아직 그런 것이 없다는 것은 필요성을 느낀 실력자가 없다는 것이겠지요.
그러면, 일반 user로서 할 수 있는 방법은 아래와 같은 순서로 일을 하셔야 합니다.
- 그림준비
- ditta 용 text화일을 만든다.
- ditta를 돌려서 .EPS화일을 얻는다. ( .PNG보다는 .PDF가 더 좋으므로 )
- ps2pdf 등을 이용하여 .EPS를 .PDF로 변환한다.
- LaTeX용 .tex 화일 준비
- 본문을 작성하면서 그림이 들어가야 할 곳에 includegraphics로 그림으로 위에서 만든 .pdf를 넣는다.
- LaTeX을 돌린다.
- 나온 결과를 감상한다.
이것이 현실적인 수순일 듯 합니다.
이것을 자동화 하시려면 스스로 만드시는 것이 빠르실 듯 합니다. 혹은 TeX을 잘 아시고 package와 외부 실행화일을 연동시켜서 일을 하실수 있는 분께 잘 부탁을 하시거나요.
-
뭬깟
2013.11.29 17:34
다들 감사합니다.
우선 샘처럼님이 말씀해주신거처럼 ditaa프로그램과 자바랑 연동이 가능한 jar 파일이 있어서 xml을 읽어서 자바에서 eps파일을 만들어서 불려와야 할 듯합니다.
다들 관심 가져 주셔서 감사합니다....
많은 도움 됐습니다.
-
Progress
2013.12.09 21:00
일단 첨부한 압축 파일을 적당히 풀어놓고 Ditaa_test.tex 파일에 --shell-escape 옵션을 주고 pdflatex 또는 xelatex으로 컴파일해보시지요. 물론 자바가 설치되어 있어야합니다.
% Ditaa_test.tex
\documentclass[a4paper]{article}
\usepackage{graphicx}
\usepackage[hangul]{kotex}
\ifx가가
\setmainhangulfont{HCR Batang LVT}
\setsanshangulfont{HCR Dotum LVT}
\else
\usepackage{dhucs-nanumfont}
\fi
\usepackage{epstopdf}
\begin{document}
\title{셸 이스케이프 명령과 ditaa 그림 연습}
\author{progress}
\maketitle
\section{-{}-shell-escape 옵션을 주기 위해}
\begin{verbatim}
% to get dittadata.eps
\immediate\write18{java -jar DitaaEps.jar -r -o ditaadata.txt}
\begin{figure}
\centering{
\includegraphics[width=.95\textwidth]{ditaadata}
}
\caption{Ditaa로 그린 그림}
\end{figure}
\end{verbatim}
% to get dittadata.eps
\immediate\write18{java -jar DitaaEps.jar -r -o ditaadata.txt}
\begin{figure}[h]
\centering{
\includegraphics[width=.95\textwidth]{ditaadata}
}
\caption{Ditta로 그린 그림}
\end{figure}
\section{컴파일}
\begin{verbatim}
> pdflatex --shell-escape Ditaa_test
또는
> xelatex --shell-escape Ditaa_test
\end{verbatim}
\end{document}
===
- 아시다시피 ditaadata.txt는 Ditta로 불러와 그릴 그림 소스입니다.
- Ditaa_test.tex의 중간에 보면 \immediate\write18{java -jar DitaaEps.jar -r -o ditaadata.txt} 부분이 있습니다. 이를 구현하기 위해 pdflatex 또는 xelatex에 --shell-escape 옵션을 주고 컴파일합니다.
> pdflatex --shell-escape ditta_test
또는
> xelatex --shell-escape ditta_test - 그러면 Ditaa를 실행하여 ditaadata.eps 그림 파일이 생깁니다.
- 그런데 preamble에 \usepakcage{epstopdf}를 주었으므로 pdflatex이든 xelatex이든 eps 그림 파일을 끄떡없이 넣을 수 있습니다.
- 최종 파일은 Ditaa_test.pdf입니다.
===
다른 분께서 일련의 과정을 좀 우아하게 정리해서 만들어주시면 감사하겠습니다.예를 들어 ditaafigure 환경을 사용했을 때 구현될 수 있다면...\begin{ditaafigure}10ms------\ +--------------++-------------+ +-------------+ SY_BDE -->| || ATS - | | |--<CylinderNumber> -----+----->| CDrv || information |---------->| Cylinder | | | Test- |--->+-------------+ | Number | | | Interface || | | | GDI |+-------------+ | +--------------+| |SY_ZYLZA / | +--------------+---------- | | || | CDrv || | Test- |--->+----->| Interface |Y_BDE ->0| PFI |+--------------+\end{ditaafigure}또는\begin{ditaafigure}\input{ditaadata.txt}\end{ditaafigure} -
nanim
2013.12.10 14:48
복잡하게 하자면 한정없이 복잡해지겠지만 간단히 다음과 같이 해보는 방법도 있겠습니다.
\usepackage{sverb}
\newcounter{ditaacnt}
\newenvironment{ditaafig}[1][\empty]{%
\ifx\empty#1\def\OptionStr{.95}\else\def\OptionStr{#1}\fi
\stepcounter{ditaacnt}%
\IfFileExists{\jobname-ditaafig-\theditaacnt.eps}{%
\includegraphics[width=\OptionStr\linewidth]{\jobname-ditaafig-\theditaacnt.eps}}{}
\verbwrite{\jobname-ditaafig-\theditaacnt.txt}
}{%
\endverbwrite
\IfFileExists{\jobname-ditaafig-\theditaacnt.eps}{}{
\immediate\write18{java -jar DitaaEps.jar -r -o \jobname-ditaafig-\theditaacnt.txt}}
}%%%%%% ========
\begin{figure}[h]
\centering
\begin{ditaafig}[.8]
10ms
------
\ +--------------+
+-------------+ +-------------+ SY_BDE -->| |
| ATS - | | |--<CylinderNumber> -----+----->| CDrv |
| information |---------->| Cylinder | | | Test- |--->
+-------------+ | Number | | | Interface |
| | | | GDI |
+-------------+ | +--------------+
| |
SY_ZYLZA / | +--------------+
---------- | | |
| | CDrv |
| | Test- |--->
+----->| Interface |
Y_BDE ->0| PFI |
+--------------+
\end{ditaafig}
\caption{Test ditaa fig}
\end{figure}보시는 대로, \jobname-ditaafit-\theditaacnt.eps 파일이 있으면 포함하고, 없으면 환경의 내용을 ...txt 파일에 쓴 다음 java 컴파일을 하는 것입니다. 두번째 컴파일시에 그림이 들어오겠지요.
-shell-escape가 필요한 건 똑같습니다. 옵션 인자는 width=X\linewidth의 X에 해당합니다. oblivoir라면 sverb도 필요없이 그냥 memoir 명령만으로 충분한데 article이라서...
-
Progress
2013.12.10 15:28
훌륭하네요. 두 번 컴파일하면 다음과 같이 나옵니다.
특정 부분을 외부 파일에 잠깐 썼다가 불러오는 방식, 저는 이런 걸 잘 모르겠더라고요.
* 참고로 Ditaa는 한글 삽입이 안 됩니다. 무슨 방법이 있는지는 모르겠지만.
-
ischo
2013.12.10 15:45
드디어 기다리던 초고수의 답변이... ^^
-
nanim
2013.12.11 13:07
oblivoir 버전입니다. 옵션의 의미를 scale로 바꾸었습니다.
명령행에서 arara test.
이건 실험해 볼 수 있는 파일을 올려주시지 않으면 매우 곤란할 것 같습니다. 본문에 붙이신 소스로는 실험을 할 수가 없네요.