Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 ktug, stackexchange, stackoverflow, ctan, overleaf, google.com, sil.org, kopus.org, github.com, .io, i.com, tistory.com 등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
mdframed 추가
2014.03.02 15:08
수고하십니다.
maframed을 사용하여 box 를 같은 모양이지만 title 만 다른 것을 하나 더 추가 하고 싶습니다.
\mdfcreateextratikz 이란 명령이 모든 프레임에 동일하게 적용된다는 것까지는 알앗는데요
title만 다른 mdframed을 2개 만들려면 어떻게 해야하는지 궁금합니다.
댓글 8
-
태준
2014.03.02 16:47
-
nanim
2014.03.02 17:14
\newcommand*\BoxTitle{정리}
다음 명령에서 이 매크로를 사용하여 정의합니다.
\renewrobustcmd\mdfcreateextratikz{%
\node[titlebox1,xshift=\tmplen,anchor=center] at (P-|O) {\raisebox{2\depth}{\mdf@frametitlefont{$\bullet$ {\BoxTitle} $\bullet$}}};}그 다음에 \mdfdefinestyle{myboxstyle} 정의를 하고 새로 두 개의 환경을 만듭니다.
\newenvironment{Boghi}
{\renewcommand*\BoxTitle{보기}
\begin{mdframed}[style=myboxsty]}
{\end{mdframed}}\newenvironment{Jeungmyeong}
{\renewcommand*\BoxTitle{증명}
\begin{mdframed}[style=myboxsty]}
{\end{mdframed}}이제 본문에서 Boghi 환경과 Jeungmyeonjg 환경을 써보십시오. 증명 환경의 이름을 proof로 하고 싶은 충동이 생길지 모릅니다만 proof라는 환경은 LaTeX 기본 환경 가운데 하나이므로 되도록 이름을 다르게 하는 것이 좋습니다.
====
수님께 드리는 말씀입니다만, 애써서 답변을 작성해서 올렸을 때 문제가 해결되었으면 그렇다고 코멘트를 남겨주십시오.
-
태준
2014.03.02 19:56
nanim 님게서 말씀하신 것으로 만들어 보았는데..
에러가 납니다..
검토 부탁드립니다.
-
nanim
2014.03.02 20:26
atletter 사용에 주의하여야 하는 문제입니다.
\makeatletter
\renewrobustcmd\mdfcreateextratikz{%
....\mdf@outerlinewidth@length\relax\tmplen=.1\tmplen},
}
\makeatother -
태준
2014.03.02 22:12
감사합니다.
원하는 결과물을 얻엇습니다.
바쁘신데 도움을 주신 nanim님게 감사드립니다.
-
태준
2014.03.02 23:03
근데.. 궁금한게 생기네요..
\makeatletter
\makeatother
사이에는 어떤 것을 넣어야 하는지 기준이 있나요?
구글링을 해보니... 다음과 같은 말이 있더군요
=======================================
일반적으로 .cls 파일 (class 파일)과 .sty 파일 (style 파일)에는 매크로 이름에 @ 를 사용할 수가 있다고 한다.
반대로, user file, 즉 class나 style 파일이 아닌 일반 문서에서는 @를 매크로 이름에 사용할 수 없다.
즉 @를 매크로 이름에 사용가능하게 한 것은 일종의 macro 보호목적으로써, c++에서 사용되는 namespace나
class의 public, private 지시자와 비슷한 역할을 하기 위한 것으로 보인다.
그런데 부득이하게 user file에서 class나 style file에서 internal purpose로 사용되는 macro에 접근해야할 필요가 생길경우
TeX 컴파일러에게 @를 사용할 수 있게 해주세요라고 알려주는 역할을 하는 것이 위 두개의 명령어가 된다.
stack overflow에 좀 더 상세한 설명이 기술되어 있는데 요약하자면 TeX에서 각 문자에 category code 혹은 catcode라는
일종의 일련번호를 부여했는데, 예를 들어 \ 는 catcode가 0이고 일반 알파벳문제들은 catcode가 11이다.
그리고 @는 catcode가 12로 일반 알파벳문자들과 구분하고 있다는 것을 알 수 있다.
그래서 \makeatletter라고 하면 @의 catcode를 12 -> 11 로 변경시켜 macro 이름에 사용할 수 있게 하는 것이고 볼일이 다 끝나고 나면
\makeatother 명령으로 @의 catcode를 원래대로 11->12 바꾸어 주는 것이다.
그리고 한가지 주의사항이 있는데 class와 style 파일 내부에서는 이 명령어들을 명시적으로 사용하지 않아야한다는 것이다.
왜냐하면 class파일과 style 파일을 불러오면서 내부적으로 \makeatletter와 \makeatother 명령을 불러오기 때문에 오작동의 소지가
있기 때문이다.
=====================================
문서를 작성하면서 새롭게 추가해야할거 많이 생겨서 프림블에서 정의되는 많은 명렁어 중에
어떤 것을 \makeatletter와 \makeatother 사이에 넣아야 할지가 메우 헷갈리기 시작하네요
-
지나가다
2014.03.03 09:02
간단합니다. .cls나 .sty가 아닌 파일에서 매크로를 정의하거나 할 때에 @ 문자가 사용되면 \makeatletter와 \maketoother를 써야하는 것이고 그렇지 않으면 안 쓰면 됩니다. 그런데 안 써도 될 때에 쓰는 것은 문제가 안 되지만, 써야 할 때에 쓰지 않으면 문제가 됩니다.
-
Progress
2014.03.03 17:11
박스 모양이 좋네요.
결과물을 캡처해서 좀 올려주면 좀더 많은 사람들이 활용할 수 있으리라는 생각이 듭니다.
짧은 실력으로 이렇게 해보았는데요..
좀더 나은 방법이 없을까요? 아무래도 이건 아닌듯한데.. ㅡ.ㅡ;;