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>처럼 입력하시면 좋습니다.
tikz에서 def명령어 사용시 에러가 납니다.
2023.01.13 11:53
아래 코드의 \fill 부분에 \ftone, \fttwo 로 하면 에러가 나는 반면에 \def에 해당하는 문구로 바꾸면 정상적으로 출력됩니다. 원인이 무엇인지 알고 싶네요.
\documentclass[12pt]{standalone} \usepackage{kotex} \usepackage{mathtools} \usepackage{tikz} \usepackage{tkz-euclide} \usetikzlibrary{calc,math,angles,positioning,intersections,decorations.markings,backgrounds} \tikzmath{% \xmax=3; \xmin=-3; \ymin=-5; \ymax=2; \pp=\xmin+0.2; \qq=\xmax-0.2; \aa=-2; \bb=0; \cc=2; }% \begin{document} \begin{tikzpicture}[yscale=0.4, xscale=1.2, declare function={ F1(\x)=pow(\x,4)-4*pow(\x,2); F2(\x)=0;} ] \draw[line width=0.6pt, -stealth, name path global=lx] (\xmin,0)--(\xmax,0) node {$x$}; \draw[line width=0.6pt, -stealth, name path global=ly] (0,\ymin)--(0,\ymax) node {$y$}; \def\ftone{plot[domain={\aa:\cc},samples=300] (\x,{F1(\x)})} %\ftone 의 정의 \def\fttwo{plot[domain={\cc:\aa}] (\x,{F2(\x)})} %\fttwo 의 정의 \begin{scope} \clip (\xmin,\ymin) rectangle (\xmax,\ymax); \draw[very thick,name path global=f1] plot[domain={\pp:\qq},samples=300] (\x,{F1(\x)}); \draw[thick,name path global=f2] plot[domain={\pp:\qq}] (\x,{F2(\x)}); \end{scope} \begin{scope}[on background layer] \fill[gray!60] (-2,0)--\ftone--\fttwo--cycle; %에러가 나는 부분 %\fill[gray!60] (-2,0)--plot[domain={\aa:\cc},samples=300] (\x,{F1(\x)})--plot[domain={\cc:\aa}] (\x,{F2(\x)})--cycle; %정상적인 출력 \end{scope} \coordinate (O) at (0,0); \coordinate (Ox) at (1,0); \coordinate (Oy) at (0,1); \end{tikzpicture} \end{document}
\fill 명령의 인자 범위에서 좌표 또는 좌표를 동반하는 드로잉 명령을 찾는 위치인데 좌표는 없고 매크로가 남아 있기 때문입니다. 매크로로 묶여 있는 좌표들을 미리 풀어두어야 합니다.